Re: Serial core problems on embedded PPC

7 messages, 5 authors, 2002-08-02 · open the first message on its own page

Re: Serial core problems on embedded PPC

From: Russell King <hidden>
Date: 2002-07-29 08:56:56

On Mon, Jul 29, 2002 at 02:08:24PM +1000, David Gibson wrote:
I've been trying to get the new serial core stuff working on a PPC 4xx
machine (an EP405 board, specifically).  This is proving more
difficult than I expected.
It's vital that you mention the kernel version you're using; some of
these problems sound like 2.5.28.
In 8250.c, it appears that in order for a port to be used for the
serial console it must be defined "old style" with SERIAL_PORT_DFNS,
rather than being registered with register_serial() (because
serial8250_console_setup() indexs into the serial8250_ports array)).
This presents a small problem for 4xx, since it's serial ports are
memory mapped and the new old_serial_port structure can't represent
these.
There is no easy solution for this.  Alan said we must not drop support
for serial console initialisation early on in the kernel setup, which
means before the memory subsystems are initialised.
I added support for these into 8250.c, but ran into further troubles.
I suspect a 2.5.28 kernel; please confirm and we'll that it from there.
The current plethora of similar-but-not-the-same structures describing
serial ports (serial_state, serial_struct, uart_port, old_serial_port)
is also rather confusing.  I'm guessing some of these are deprecated
and remain only as an aid to transition, but I'm not sure which.
I don't see there being an easy way to kill this off:

1. serial_struct is a userspace API.
2. old_serial_port glues asm/serial.h into 8250.c; asm/serial.h can't be
   changed because (mainly) ppc uses it elsewhere.  Other architectures
   seem to do the same sort of thing.

Unless ppc and others are willing to put up with major breakage when I
change asm/serial.h, I don't see this getting cleaned up.  Comments on
this area welcome.

--
Russell King (rmk@arm.linux.org.uk)                The developer of ARM Linux
             http://www.arm.linux.org.uk/personal/aboutme.html


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

Re: Serial core problems on embedded PPC

From: Tom Rini <hidden>
Date: 2002-07-29 14:41:00

On Mon, Jul 29, 2002 at 10:00:10AM +0100, Russell King wrote:
Unless ppc and others are willing to put up with major breakage when I
change asm/serial.h, I don't see this getting cleaned up.  Comments on
this area welcome.
Well, what changes do you have in mind?

--
Tom Rini (TR1265)
http://gate.crashing.org/~trini/

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

symbol card with orinoco_cs on mpc823

From: shaowei dai <hidden>
Date: 2002-08-02 06:01:52

Hello,

Has anybody tried orinodo_cs 0.11b or 0.12b with success on symbol
Spectrum24 High rate11M card on mpc platform?
I've tried 2.4.18-pre3 and 2.4.19-rc3 kernel with orinoco driver. It works
fine with intersil card. But
when i try it on symbol card, it always crashes. After tracing down i find
it is caused by hermes_init(). It seems the
call to hermes_write_regn(hw,INTEN,0)  cause the crash. The ksymoops also
suggest this function. It is just an io write. What can be wrong? And most
strange thing is why it doesn't cause any trouble in normal intersil  card.

Any ideas is greatly appreciate!

regards
David


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

Re: symbol card with orinoco_cs on mpc823

From: David Gibson <hidden>
Date: 2002-08-02 06:23:24

On Fri, Aug 02, 2002 at 02:01:52PM +0800, shaowei dai wrote:
Hello,

Has anybody tried orinodo_cs 0.11b or 0.12b with success on symbol
Spectrum24 High rate11M card on mpc platform?
I've tried 2.4.18-pre3 and 2.4.19-rc3 kernel with orinoco driver. It works
fine with intersil card. But
when i try it on symbol card, it always crashes. After tracing down i find
it is caused by hermes_init(). It seems the
call to hermes_write_regn(hw,INTEN,0)  cause the crash. The ksymoops also
suggest this function. It is just an io write. What can be wrong? And most
strange thing is why it doesn't cause any trouble in normal intersil  card.
That's wierd - it is just a register write, so this sounds like a
low-level problem.  Is something about the card confusing the PCMCIA
system so it's reporting the wrong IO addresses?  Or maybe the timing
is a little bit different and something in the slot driver can't cope.

--
David Gibson			| For every complex problem there is a
david@gibson.dropbear.id.au	| solution which is simple, neat and
				| wrong.
http://www.ozlabs.org/people/dgibson

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

Re: symbol card with orinoco_cs on mpc823

From: Matthew Locke <hidden>
Date: 2002-08-02 06:36:49

On Thursday, August 1, 2002, at 11:23 PM, David Gibson wrote:
On Fri, Aug 02, 2002 at 02:01:52PM +0800, shaowei dai wrote:
quoted
Hello,

Has anybody tried orinodo_cs 0.11b or 0.12b with success on symbol
Spectrum24 High rate11M card on mpc platform?
I've tried 2.4.18-pre3 and 2.4.19-rc3 kernel with orinoco driver. It
works
fine with intersil card. But
when i try it on symbol card, it always crashes. After tracing down i
find
it is caused by hermes_init(). It seems the
call to hermes_write_regn(hw,INTEN,0)  cause the crash. The ksymoops
also
suggest this function. It is just an io write. What can be wrong? And
most
strange thing is why it doesn't cause any trouble in normal intersil
card.
That's wierd - it is just a register write, so this sounds like a
low-level problem.  Is something about the card confusing the PCMCIA
system so it's reporting the wrong IO addresses?  Or maybe the timing
is a little bit different and something in the slot driver can't cope.
I would guess timing.  I have seen problems between different cards with
the same chipset fail on 8xx.  Usually timing is the culprit.
--
David Gibson			| For every complex problem there is a
david@gibson.dropbear.id.au	| solution which is simple, neat and
				| wrong.
http://www.ozlabs.org/people/dgibson

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

Re: symbol card with orinoco_cs on mpc823

From: shaowei dai <hidden>
Date: 2002-08-02 07:01:23

Thanks David and Matthew.

I also tried to enlarge the setup/hold/strobe parameter in m8xx_pcmcia.c by
double the ADJ to 360.
But it remains the same. Maybe i'll try to set the parameter manually.

regards

----- Original Message -----
From: "Matthew Locke" <redacted>
To: "David Gibson" <redacted>
Cc: <redacted>
Sent: Friday, August 02, 2002 2:36 PM
Subject: Re: symbol card with orinoco_cs on mpc823

On Thursday, August 1, 2002, at 11:23 PM, David Gibson wrote:
quoted
On Fri, Aug 02, 2002 at 02:01:52PM +0800, shaowei dai wrote:
quoted
Hello,

Has anybody tried orinodo_cs 0.11b or 0.12b with success on symbol
Spectrum24 High rate11M card on mpc platform?
I've tried 2.4.18-pre3 and 2.4.19-rc3 kernel with orinoco driver. It
works
fine with intersil card. But
when i try it on symbol card, it always crashes. After tracing down i
find
it is caused by hermes_init(). It seems the
call to hermes_write_regn(hw,INTEN,0)  cause the crash. The ksymoops
also
suggest this function. It is just an io write. What can be wrong? And
most
strange thing is why it doesn't cause any trouble in normal intersil
card.
That's wierd - it is just a register write, so this sounds like a
low-level problem.  Is something about the card confusing the PCMCIA
system so it's reporting the wrong IO addresses?  Or maybe the timing
is a little bit different and something in the slot driver can't cope.
I would guess timing.  I have seen problems between different cards with
the same chipset fail on 8xx.  Usually timing is the culprit.
quoted
--
David Gibson | For every complex problem there is a
david@gibson.dropbear.id.au | solution which is simple, neat and
| wrong.
http://www.ozlabs.org/people/dgibson

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

Re: Serial core problems on embedded PPC

From: David Gibson <hidden>
Date: 2002-07-30 01:13:42

On Mon, Jul 29, 2002 at 10:00:10AM +0100, Russell King wrote:
On Mon, Jul 29, 2002 at 02:08:24PM +1000, David Gibson wrote:
quoted
I've been trying to get the new serial core stuff working on a PPC 4xx
machine (an EP405 board, specifically).  This is proving more
difficult than I expected.
It's vital that you mention the kernel version you're using; some of
these problems sound like 2.5.28.
Sorry.  I'm working off the linuxppc-2.5 BK tree, which is currently
at 2.5.29.
quoted
In 8250.c, it appears that in order for a port to be used for the
serial console it must be defined "old style" with SERIAL_PORT_DFNS,
rather than being registered with register_serial() (because
serial8250_console_setup() indexs into the serial8250_ports array)).
This presents a small problem for 4xx, since it's serial ports are
memory mapped and the new old_serial_port structure can't represent
these.
There is no easy solution for this.  Alan said we must not drop support
for serial console initialisation early on in the kernel setup, which
means before the memory subsystems are initialised.
quoted
I added support for these into 8250.c, but ran into further troubles.
I suspect a 2.5.28 kernel; please confirm and we'll that it from there.
2.5.29 based BK, actually.
quoted
The current plethora of similar-but-not-the-same structures describing
serial ports (serial_state, serial_struct, uart_port, old_serial_port)
is also rather confusing.  I'm guessing some of these are deprecated
and remain only as an aid to transition, but I'm not sure which.
I don't see there being an easy way to kill this off:

1. serial_struct is a userspace API.
Ok.
2. old_serial_port glues asm/serial.h into 8250.c; asm/serial.h can't be
   changed because (mainly) ppc uses it elsewhere.  Other architectures
   seem to do the same sort of thing.
I think PPC's use of asm/serial.h in the bootloader needs to go away
anyway.  Could old_serial_port at least change base_baud to baud_base
to match serial_struct and serial_state.  That way a designated
initializer will work in either context.
Unless ppc and others are willing to put up with major breakage when I
change asm/serial.h, I don't see this getting cleaned up.  Comments on
this area welcome.
Well, the machines I'm working on are totally broken now, so...

--
David Gibson			| For every complex problem there is a
david@gibson.dropbear.id.au	| solution which is simple, neat and
				| wrong.
http://www.ozlabs.org/people/dgibson

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help