CPM_UART should allocate DPRAM for SMCx parameter RAM on MPC82xx
Laurent Pinchart
laurent.pinchart at tbox.biz
Wed Jun 7 22:34:08 EST 2006
Hi everybody,
the move to platform devices introduced a bug in the CPM_UART SMC driver.
Unlike SCC and FCC, the SMC parameter ram is not at a fixed location. A
pointer to the parameter ram is instead stored at PROFF_SMCx_BASE.
The SMC platform device resources (in arch/ppc/syslib/pq2_devices.c) reserves
the memory resource PROFF_SMCx_BASE - PROFF_SMCx_BASE+1. The CPM UART driver
considers that value as the SMC parameter ram offset. It should instead
allocate 64 bytes (on a 64 bytes boundary) of DPRAM for its parameter ram,
and store the offset at PROFF_SMCx_BASE.
I'm not sure how to fix the problem as it seems that the platform device
support is not complete yet (cpm_uart_init_portdesc is still used to
initialize the console). A possible workaround is to set the pram resource to
0x0000-0x003f and 0x0040-0x007f instead of 0x87fc-0x87fd and 0x88fc-0x88fd
for SMC1 and SMC2. This will not work if cpm_uart_init_portdesc is not
called.
Laurent Pinchart
More information about the Linuxppc-embedded
mailing list