cpm_uart_console_write() stuck in waiting for transmitter fifo ready
shawnxjin at gmail.com
Fri Jul 16 08:33:04 EST 2010
> The problem is that after/when the kernel switches to the real console
> from the boot console, printk() calls cpm_uart_console_write() to
> print the first (?) message using the cpm_uart driver. But the
> transmitter buffer never becomes ready. It's shown below with the gdb
> Program received signal SIGSTOP, Stopped (signal).
> 0xc00f3510 in cpm_uart_console_write (co=<value optimized out>,
> s=0xc017703e "console [ttyCPM0] enabled, bootconsole disabled\n",
> count=0x30) at /home/code/linux-188.8.131.52/arch/powerpc/include/asm/io.h:154
> (gdb) next
> (gdb) x/4h bdbase
> 0xfddfa020: 0xffff 0xffff 0xffff 0xffff
> Why would the TxBD be filled with all 0xF? Would it be possible that
> the bdbase actually points somewhere else other than the TxBD?
The virtual address 0xfddfa000 is mapped to 0xfa202000. I suspect that
the TxBD of my MPC870 may not start at 0xfa202020.
I notice that for adder875, ep88xc and mpc885ads, the muram data's reg
= <0 0x1c00> but for mgsuvd, its reg = <0x800 0x1800>. How does the
kernel use muram for 885 family SoCs? How much muram should be
reserved for data?
My RCCR=0x1, meaning the first 512B is for microcode. So the data and
the TxBD should really be starting at 0xfa202200? Then my muram data's
reg should be <0x200 ?>? What size shall I specify?
Scott, you instructed
me to change the buffer address to 0xfa203fb8 from 0xfa202008 for the
bootwrapper's cpm-serial driver, assuming reg=<0 0x1c00>. If I need to
change to the reg not starting at 0x0, how should I accordingly change
this buffer address?
Thanks a lot,
I went back to 2.4.18 kernel and noticed that the
More information about the Linuxppc-dev