Index: cpu/arm920t/imx/serial.c =================================================================== RCS file: /home/cvsroot/Projects/u-boot/cpu/arm920t/imx/serial.c,v retrieving revision 1.2 diff -p -u -r1.2 serial.c --- cpu/arm920t/imx/serial.c 25 Feb 2007 01:31:08 -0000 1.2 +++ cpu/arm920t/imx/serial.c 5 Mar 2007 16:29:07 -0000 @@ -32,6 +32,8 @@ #error "define CONFIG_IMX_SERIAL1, CONFIG_IMX_SERIAL2 or CONFIG_IMX_SERIAL_NONE" #endif +DECLARE_GLOBAL_DATA_PTR; + struct imx_serial { volatile uint32_t urxd[16]; volatile uint32_t utxd[16]; @@ -93,11 +95,14 @@ int serial_init (void) /* Set clocks */ base->ucr4 |= UCR4_REF16; - /* Configure FIFOs */ - base->ufcr = 0xa81; + /* Configure FIFOs and baud rate prescale divider */ + base->ufcr = (2 << UFCR_TXTL_SHF) | \ + (5 << UFCR_RFDIV_SHF) | \ + (1 << UFCR_RXTL_SHF); + /* note: the following assumes PERCLK2 is set to be 16MHz! */ /* Set the numerator value minus one of the BRM ratio */ - base->ubir = (CONFIG_BAUDRATE / 100) - 1; + base->ubir = (gd->baudrate / 100) - 1; /* Set the denominator value minus one of the BRM ratio */ base->ubmr = 10000 - 1; Index: include/asm-arm/arch-imx/imx-regs.h =================================================================== RCS file: /home/cvsroot/Projects/u-boot/include/asm-arm/arch-imx/imx-regs.h,v retrieving revision 1.2 diff -p -u -r1.2 imx-regs.h --- include/asm-arm/arch-imx/imx-regs.h 25 Feb 2007 01:35:19 -0000 1.2 +++ include/asm-arm/arch-imx/imx-regs.h 5 Mar 2007 16:29:07 -0000 @@ -515,6 +515,7 @@ #define UCR4_OREN (1<<1) /* Receiver overrun interrupt enable */ #define UCR4_DREN (1<<0) /* Recv data ready interrupt enable */ #define UFCR_RXTL_SHF 0 /* Receiver trigger level shift */ +#define UFCR_RFDIV_SHF 7 /* Reference Freequency divider shift */ #define UFCR_RFDIV (7<<7) /* Reference freq divider mask */ #define UFCR_TXTL_SHF 10 /* Transmitter trigger level shift */ #define USR1_PARITYERR (1<<15) /* Parity error interrupt flag */