* MPC83xx console : no output after handover @ 2009-03-31 20:30 Matthew L. Creech 2009-03-31 20:45 ` Gary Thomas 2009-03-31 21:48 ` Scott Wood 0 siblings, 2 replies; 9+ messages in thread From: Matthew L. Creech @ 2009-03-31 20:30 UTC (permalink / raw) To: linuxppc-dev (Sorry if this is a dupe, but I think my first attempt was filtered out) Hi, I'm trying to get Linux booting on a custom board based on the MPC8313 ERDB, but there's no output after the console is transferred. I get the following: Using MPC831x RDB machine description Linux version 2.6.29 (mlcreech@lap) (gcc version 4.3.2 (Sourcery G++ Lite 4.3-50 ) ) #2 PREEMPT Tue Mar 31 14:54:27 EDT 2009 console [udbg0] enabled ... (normal boot output) ... Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0xe0004500 (irq = 16) is a 16550A console handover: boot [udbg0] -> real [ttyS0] serial8250.0: ttyS1 at MMIO 0xe0004600 (irq = 17) is a 16550A If I boot with "console=udbg0,115200", then it gets much further along before printing "turn off boot console udbg0". So presumably the kernel is booting beyond this point, but my console isn't printing any output. I traced from that last line back up the call stack to the end of drivers/serial/8250.c:serial8250_init(), and everything seems okay (it returns 0, and pritnk() still works fine at that point). I'm not sure where to go from there to figure out where the problem lies. Could someone point me in the right direction, or suggest what might cause a console problem like this? Thanks! -- Matthew L. Creech ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: MPC83xx console : no output after handover 2009-03-31 20:30 MPC83xx console : no output after handover Matthew L. Creech @ 2009-03-31 20:45 ` Gary Thomas 2009-03-31 21:03 ` Matthew L. Creech 2009-03-31 21:48 ` Scott Wood 1 sibling, 1 reply; 9+ messages in thread From: Gary Thomas @ 2009-03-31 20:45 UTC (permalink / raw) To: Matthew L. Creech; +Cc: linuxppc-dev Matthew L. Creech wrote: > (Sorry if this is a dupe, but I think my first attempt was filtered out) Nope, it made it. > Hi, > > I'm trying to get Linux booting on a custom board based on the MPC8313 > ERDB, but there's no output after the console is transferred. I get > the following: > > Using MPC831x RDB machine description > Linux version 2.6.29 (mlcreech@lap) (gcc version 4.3.2 (Sourcery G++ Lite 4.3-50 > ) ) #2 PREEMPT Tue Mar 31 14:54:27 EDT 2009 > console [udbg0] enabled > > ... (normal boot output) ... > > Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled > serial8250.0: ttyS0 at MMIO 0xe0004500 (irq = 16) is a 16550A > console handover: boot [udbg0] -> real [ttyS0] > serial8250.0: ttyS1 at MMIO 0xe0004600 (irq = 17) is a 16550A > > If I boot with "console=udbg0,115200", then it gets much further along > before printing "turn off boot console udbg0". So presumably the > kernel is booting beyond this point, but my console isn't printing any > output. I traced from that last line back up the call stack to the > end of drivers/serial/8250.c:serial8250_init(), and everything seems > okay (it returns 0, and pritnk() still works fine at that point). I'm > not sure where to go from there to figure out where the problem lies. > Could someone point me in the right direction, or suggest what might > cause a console problem like this? What does your command line (boot args) when it fails? It should probably have something like "console=ttyS0,115200" in it. -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: MPC83xx console : no output after handover 2009-03-31 20:45 ` Gary Thomas @ 2009-03-31 21:03 ` Matthew L. Creech 2009-03-31 21:26 ` Gary Thomas 0 siblings, 1 reply; 9+ messages in thread From: Matthew L. Creech @ 2009-03-31 21:03 UTC (permalink / raw) To: Gary Thomas; +Cc: linuxppc-dev On Tue, Mar 31, 2009 at 4:45 PM, Gary Thomas <gary@mlbassoc.com> wrote: > > What does your command line (boot args) when it fails? =A0It should > probably have something like "console=3DttyS0,115200" in it. > Yes, that's what I'm using. It also seems to be the default if none is supplied. For the sake of completeness, here's a full dump: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Using MPC831x RDB machine description Linux version 2.6.29 (mlcreech@lap) (gcc version 4.3.2 (Sourcery G++ Lite 4= .3-50 ) ) #3 PREEMPT Tue Mar 31 15:10:02 EDT 2009 console [udbg0] enabled setup_arch: bootmem mpc831x_rdb_setup_arch() arch: exit Zone PFN ranges: DMA 0x00000000 -> 0x00008000 Normal 0x00008000 -> 0x00008000 Movable zone start PFN for each node early_node_map[1] active PFN ranges 0: 0x00000000 -> 0x00008000 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 Kernel command line: root=3D/dev/mtdblock1 init=3D/bin/sh console=3DttyS0,1= 15200 IPIC (128 IRQ sources) at fdffd700 PID hash table entries: 512 (order: 9, 2048 bytes) clocksource: timebase mult[7800001] shift[22] registered Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 126236k/131072k available (3260k kernel code, 4692k reserved, 136k = data, 98k bss, 160k init) SLUB: Genslabs=3D12, HWalign=3D32, Order=3D0-3, MinObjects=3D0, CPUs=3D1, N= odes=3D1 Calibrating delay loop... 66.30 BogoMIPS (lpj=3D33152) Mount-cache hash table entries: 512 net_namespace: 708 bytes NET: Registered protocol family 16 bio: create slab <bio-0> at 0 Freescale Elo / Elo Plus DMA driver NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 2, 16384 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered NET: Registered protocol family 1 WDT driver for MPC8xxx initialized. mode:reset timeout=3D65535 (32 seconds) fsl-elo-dma e00082a8.dma: Probe the Freescale DMA driver for fsl,elo-dma co= ntrol ler at e00082a8... fsl-elo-dma e00082a8.dma: #0 (fsl,elo-dma-channel), irq 71 fsl-elo-dma e00082a8.dma: #1 (fsl,elo-dma-channel), irq 71 fsl-elo-dma e00082a8.dma: #2 (fsl,elo-dma-channel), irq 71 fsl-elo-dma e00082a8.dma: #3 (fsl,elo-dma-channel), irq 71 squashfs: version 4.0 (2009/01/31) Phillip Lougher Registering unionfs 2.5.1 (for 2.6.29-rc2) yaffs Mar 31 2009 02:31:59 Installing. msgmni has been set to 246 alg: No test for stdrng (krng) io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered (default) io scheduler cfq registered Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0xe0004500 (irq =3D 16) is a 16550A console handover: boot [udbg0] -> real [ttyS0] serial8250.0: ttyS1 at MMIO 0xe0004600 (irq =3D 17) is a 16550A =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D (nothing after this) Thanks --=20 Matthew L. Creech ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: MPC83xx console : no output after handover 2009-03-31 21:03 ` Matthew L. Creech @ 2009-03-31 21:26 ` Gary Thomas 2009-03-31 22:22 ` Matthew L. Creech 0 siblings, 1 reply; 9+ messages in thread From: Gary Thomas @ 2009-03-31 21:26 UTC (permalink / raw) To: Matthew L. Creech; +Cc: linuxppc-dev Matthew L. Creech wrote: > On Tue, Mar 31, 2009 at 4:45 PM, Gary Thomas <gary@mlbassoc.com> wrote: >> What does your command line (boot args) when it fails? It should >> probably have something like "console=ttyS0,115200" in it. >> > > Yes, that's what I'm using. It also seems to be the default if none > is supplied. > > For the sake of completeness, here's a full dump: > > ============ > Using MPC831x RDB machine description > Linux version 2.6.29 (mlcreech@lap) (gcc version 4.3.2 (Sourcery G++ Lite 4.3-50 > ) ) #3 PREEMPT Tue Mar 31 15:10:02 EDT 2009 > console [udbg0] enabled > setup_arch: bootmem > mpc831x_rdb_setup_arch() > arch: exit > Zone PFN ranges: > DMA 0x00000000 -> 0x00008000 > Normal 0x00008000 -> 0x00008000 > Movable zone start PFN for each node > early_node_map[1] active PFN ranges > 0: 0x00000000 -> 0x00008000 > Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 > Kernel command line: root=/dev/mtdblock1 init=/bin/sh console=ttyS0,115200 > IPIC (128 IRQ sources) at fdffd700 > PID hash table entries: 512 (order: 9, 2048 bytes) > clocksource: timebase mult[7800001] shift[22] registered > Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) > Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) > Memory: 126236k/131072k available (3260k kernel code, 4692k reserved, 136k data, > 98k bss, 160k init) > SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 > Calibrating delay loop... 66.30 BogoMIPS (lpj=33152) > Mount-cache hash table entries: 512 > net_namespace: 708 bytes > NET: Registered protocol family 16 > > bio: create slab <bio-0> at 0 > Freescale Elo / Elo Plus DMA driver > NET: Registered protocol family 2 > IP route cache hash table entries: 1024 (order: 0, 4096 bytes) > TCP established hash table entries: 4096 (order: 3, 32768 bytes) > TCP bind hash table entries: 4096 (order: 2, 16384 bytes) > TCP: Hash tables configured (established 4096 bind 4096) > TCP reno registered > NET: Registered protocol family 1 > WDT driver for MPC8xxx initialized. mode:reset timeout=65535 (32 seconds) > fsl-elo-dma e00082a8.dma: Probe the Freescale DMA driver for fsl,elo-dma control > ler at e00082a8... > fsl-elo-dma e00082a8.dma: #0 (fsl,elo-dma-channel), irq 71 > fsl-elo-dma e00082a8.dma: #1 (fsl,elo-dma-channel), irq 71 > fsl-elo-dma e00082a8.dma: #2 (fsl,elo-dma-channel), irq 71 > fsl-elo-dma e00082a8.dma: #3 (fsl,elo-dma-channel), irq 71 > squashfs: version 4.0 (2009/01/31) Phillip Lougher > Registering unionfs 2.5.1 (for 2.6.29-rc2) > yaffs Mar 31 2009 02:31:59 Installing. > msgmni has been set to 246 > alg: No test for stdrng (krng) > io scheduler noop registered > io scheduler anticipatory registered > io scheduler deadline registered (default) > io scheduler cfq registered > Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled > serial8250.0: ttyS0 at MMIO 0xe0004500 (irq = 16) is a 16550A > console handover: boot [udbg0] -> real [ttyS0] > serial8250.0: ttyS1 at MMIO 0xe0004600 (irq = 17) is a 16550A > ============ The fact that you get the ttyS1 line printed is interesting. At this point, the kernel is switching from raw console I/O (only suitable for bring-up messages) to the general serial driver (interrupt driven, etc). I'm curious about what the ttyS1 driver is causing to break... A couple of things you could try: * Disable ttyS1 (take it out of your device tree) * Look at the console log when this happens. Look in your system map for the symbol '__log_buf', e.g. c031ca54 b __log_buf This will get stored at physical location '0x31ca54' and will often contain data that didn't get a chance to print, for example if you have stuck interrupts that prevent the console from working. I'd just run it to this point and then examine the memory - either using a BDI if one is attached, or press RESET (I hope you have one!) and then look using your boot loader (uBoot, RedBoot, ...) -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: MPC83xx console : no output after handover 2009-03-31 21:26 ` Gary Thomas @ 2009-03-31 22:22 ` Matthew L. Creech 2009-04-01 18:53 ` Matthew L. Creech 0 siblings, 1 reply; 9+ messages in thread From: Matthew L. Creech @ 2009-03-31 22:22 UTC (permalink / raw) To: Gary Thomas; +Cc: linuxppc-dev On Tue, Mar 31, 2009 at 5:26 PM, Gary Thomas <gary@mlbassoc.com> wrote: > > The fact that you get the ttyS1 line printed is interesting. =A0At > this point, the kernel is switching from raw console I/O (only > suitable for bring-up messages) to the general serial driver > (interrupt driven, etc). =A0I'm curious about what the ttyS1 driver > is causing to break... > > A couple of things you could try: > =A0* Disable ttyS1 (take it out of your device tree) I tried taking ttyS1 out - the results are no different (other than the fact that "console handover" is now the last line that prints). My debug printk()s at the end of 8250_init() show up, which would seem to imply that ttyS0 was initialized correctly, so I'm not sure what else could be stomping on it. > =A0* Look at the console log when this happens. =A0Look in your system > =A0 =A0map for the symbol '__log_buf', e.g. > =A0 =A0 =A0 c031ca54 b __log_buf > =A0 =A0This will get stored at physical location '0x31ca54' and will > =A0 =A0often contain data that didn't get a chance to print, for example > =A0 =A0if you have stuck interrupts that prevent the console from working= . > =A0 =A0I'd just run it to this point and then examine the memory - either > =A0 =A0using a BDI if one is attached, or press RESET (I hope you have on= e!) > =A0 =A0and then look using your boot loader (uBoot, RedBoot, ...) > I think I can get my hands on a BDI tomorrow, so I'll give this a try then. Thanks for the reply --=20 Matthew L. Creech ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: MPC83xx console : no output after handover 2009-03-31 22:22 ` Matthew L. Creech @ 2009-04-01 18:53 ` Matthew L. Creech 2009-04-02 10:52 ` Gary Thomas 0 siblings, 1 reply; 9+ messages in thread From: Matthew L. Creech @ 2009-04-01 18:53 UTC (permalink / raw) To: Gary Thomas; +Cc: linuxppc-dev It turned out that the normally-initialized 8250 driver was getting stomped on by my device tree's serial driver (which is also an 8250) - apparently CONFIG_SERIAL_8250[_CONSOLE] and CONFIG_SERIAL_OF_PLATFORM don't play well together. Disabling the latter fixed my problem. Thanks for the help, and sorry for the noise. -- Matthew L. Creech ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: MPC83xx console : no output after handover 2009-04-01 18:53 ` Matthew L. Creech @ 2009-04-02 10:52 ` Gary Thomas 2009-04-02 15:20 ` Matthew L. Creech 0 siblings, 1 reply; 9+ messages in thread From: Gary Thomas @ 2009-04-02 10:52 UTC (permalink / raw) To: Matthew L. Creech; +Cc: linuxppc-dev Matthew L. Creech wrote: > It turned out that the normally-initialized 8250 driver was getting > stomped on by my device tree's serial driver (which is also an 8250) - > apparently CONFIG_SERIAL_8250[_CONSOLE] and CONFIG_SERIAL_OF_PLATFORM > don't play well together. Disabling the latter fixed my problem. > > Thanks for the help, and sorry for the noise. > Can you share what you had and what you changed it to? I'm running on very similar systems and may face this exact problem soon. Thanks -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: MPC83xx console : no output after handover 2009-04-02 10:52 ` Gary Thomas @ 2009-04-02 15:20 ` Matthew L. Creech 0 siblings, 0 replies; 9+ messages in thread From: Matthew L. Creech @ 2009-04-02 15:20 UTC (permalink / raw) To: Gary Thomas; +Cc: linuxppc-dev On Thu, Apr 2, 2009 at 6:52 AM, Gary Thomas <gary@mlbassoc.com> wrote: > > Can you share what you had and what you changed it to? =A0I'm > running on very similar systems and may face this exact problem > soon. > > Thanks > I don't actually have a platform-specific bus, but I misread the help text for CONFIG_SERIAL_OF_PLATFORM and thought that it applied to any system whose serial port was configured via the DTS file. So I had: CONFIG_SERIAL_8250=3Dy CONFIG_SERIAL_8250_CONSOLE=3Dy ... CONFIG_SERIAL_OF_PLATFORM=3Dy The result was that my console's serial port was initialized correctly by the 8250 driver, but then of_platform_serial_probe() immediately stomped on it. (Not sure what it was doing exactly, I just traced through far enough to see that printk() worked before serial8250_register_port() was called in of_serial.c, and not afterward). The "fix" for me was simply to disable CONFIG_SERIAL_OF_PLATFORM, as it's unnecessary in my case. --=20 Matthew L. Creech ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: MPC83xx console : no output after handover 2009-03-31 20:30 MPC83xx console : no output after handover Matthew L. Creech 2009-03-31 20:45 ` Gary Thomas @ 2009-03-31 21:48 ` Scott Wood 1 sibling, 0 replies; 9+ messages in thread From: Scott Wood @ 2009-03-31 21:48 UTC (permalink / raw) To: Matthew L. Creech; +Cc: linuxppc-dev On Tue, Mar 31, 2009 at 04:30:26PM -0400, Matthew L. Creech wrote: > (Sorry if this is a dupe, but I think my first attempt was filtered out) No, it's a dupe. :-) > I'm trying to get Linux booting on a custom board based on the MPC8313 > ERDB, but there's no output after the console is transferred. I get > the following: [snip] > Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled > serial8250.0: ttyS0 at MMIO 0xe0004500 (irq = 16) is a 16550A > console handover: boot [udbg0] -> real [ttyS0] > serial8250.0: ttyS1 at MMIO 0xe0004600 (irq = 17) is a 16550A Make sure that u-boot for your board (or whatever you're using) is properly filling in the clock-frequency property of the serial port nodes. -Scott ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-04-02 15:20 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-03-31 20:30 MPC83xx console : no output after handover Matthew L. Creech 2009-03-31 20:45 ` Gary Thomas 2009-03-31 21:03 ` Matthew L. Creech 2009-03-31 21:26 ` Gary Thomas 2009-03-31 22:22 ` Matthew L. Creech 2009-04-01 18:53 ` Matthew L. Creech 2009-04-02 10:52 ` Gary Thomas 2009-04-02 15:20 ` Matthew L. Creech 2009-03-31 21:48 ` Scott Wood
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).