CPM uart

Marco Schramel Schramel.Linux at go.bartec.de
Thu Apr 14 17:26:01 EST 2005


Hi,

on my target (MPC8270, 2.4.25) SCC1, SCC2 and SCC3 will work fine as ttyS0 .. ttyS2 with console at ttyS0.

It works with this code in arch/ppc/8260_io/uart.c
#define CONFIG_SERIAL_CONSOLE_PORT	0

#define SCC_NUM_BASE	0	/* SCC base tty "number" */
#define SCC_IDX_BASE	        0  	/* table index */
static struct serial_state rs_table[] = {
	/* UART CLK   PORT          IRQ      FLAGS  NUM   */
	{ 0,     0, PROFF_SCC1, SIU_INT_SCC1,   0, SCC_NUM_BASE},          /* SCC1 ttyS0 */
	{ 0,     0, PROFF_SCC2, SIU_INT_SCC2,   0, SCC_NUM_BASE + 1},    /* SCC2 ttyS1 */
	{ 0,     0, PROFF_SCC3, SIU_INT_SCC3,   0, SCC_NUM_BASE +2},     /* SCC3 ttyS2 */


Now i need the two SMC's.
I changed the source to:
#define CONFIG_SERIAL_CONSOLE_PORT	2
#define SCC_NUM_BASE	2	/* SCC base tty "number" */
#define SCC_IDX_BASE  	2	/* table index */
static struct serial_state rs_table[] = {
	/* UART CLK   PORT          IRQ      FLAGS  NUM   */
	{ 0,     0, PROFF_SMC1, SIU_INT_SMC1,   0, 0},    /* SMC1 ttyS0 */
	{ 0,     0, PROFF_SMC2, SIU_INT_SMC2,   0, 1},    /* SMC2 ttyS1 */	
	{ 0,     0, PROFF_SCC1, SIU_INT_SCC1,   0, SCC_NUM_BASE},    /* SCC1 ttyS2 */
	{ 0,     0, PROFF_SCC2, SIU_INT_SCC2,   0, SCC_NUM_BASE + 1},    /* SCC2 ttyS3 */
	{ 0,     0, PROFF_SCC3, SIU_INT_SCC3,   0, SCC_NUM_BASE + 2},    /* SCC3 ttyS4 */
and passed the bootloader the correct console=ttyS2.

During booting kernel hangs on initializing ttyS2 forever.

What could be wrong ? I only changed the io port configuration in the init function.

Thanks in advance
Marco





---------
Marco Schramel



More information about the Linuxppc-embedded mailing list