forked from Imagelibrary/rtems
bsp/lpc32xx: Fix console baud configuration
This commit is contained in:
@@ -43,24 +43,33 @@ RTEMS_BSPOPTS_HELP([LPC32XX_UART_1_BAUD],[baud for UART 1])
|
|||||||
RTEMS_BSPOPTS_SET([LPC32XX_UART_2_BAUD],[*],[])
|
RTEMS_BSPOPTS_SET([LPC32XX_UART_2_BAUD],[*],[])
|
||||||
RTEMS_BSPOPTS_HELP([LPC32XX_UART_2_BAUD],[baud for UART 2])
|
RTEMS_BSPOPTS_HELP([LPC32XX_UART_2_BAUD],[baud for UART 2])
|
||||||
|
|
||||||
|
RTEMS_BSPOPTS_SET([LPC32XX_UART_3_BAUD],[*],[115200])
|
||||||
|
RTEMS_BSPOPTS_HELP([LPC32XX_UART_3_BAUD],[baud for UART 3])
|
||||||
|
|
||||||
|
RTEMS_BSPOPTS_SET([LPC32XX_UART_4_BAUD],[*],[115200])
|
||||||
|
RTEMS_BSPOPTS_HELP([LPC32XX_UART_4_BAUD],[baud for UART 4])
|
||||||
|
|
||||||
|
RTEMS_BSPOPTS_SET([LPC32XX_UART_5_BAUD],[*],[115200])
|
||||||
|
RTEMS_BSPOPTS_HELP([LPC32XX_UART_5_BAUD],[baud for UART 5])
|
||||||
|
|
||||||
|
RTEMS_BSPOPTS_SET([LPC32XX_UART_6_BAUD],[*],[115200])
|
||||||
|
RTEMS_BSPOPTS_HELP([LPC32XX_UART_6_BAUD],[baud for UART 6])
|
||||||
|
|
||||||
RTEMS_BSPOPTS_SET([LPC32XX_UART_7_BAUD],[*],[])
|
RTEMS_BSPOPTS_SET([LPC32XX_UART_7_BAUD],[*],[])
|
||||||
RTEMS_BSPOPTS_HELP([LPC32XX_UART_7_BAUD],[baud for UART 7])
|
RTEMS_BSPOPTS_HELP([LPC32XX_UART_7_BAUD],[baud for UART 7])
|
||||||
|
|
||||||
RTEMS_BSPOPTS_SET([LPC32XX_CONFIG_U3CLK],[*],[])
|
RTEMS_BSPOPTS_SET([LPC32XX_CONFIG_U3CLK],[*],[0x00001386])
|
||||||
RTEMS_BSPOPTS_HELP([LPC32XX_CONFIG_U3CLK],[clock configuration for UART 3])
|
RTEMS_BSPOPTS_HELP([LPC32XX_CONFIG_U3CLK],[clock configuration for UART 3])
|
||||||
|
|
||||||
RTEMS_BSPOPTS_SET([LPC32XX_CONFIG_U4CLK],[*],[])
|
RTEMS_BSPOPTS_SET([LPC32XX_CONFIG_U4CLK],[*],[0x00001386])
|
||||||
RTEMS_BSPOPTS_HELP([LPC32XX_CONFIG_U4CLK],[clock configuration for UART 4])
|
RTEMS_BSPOPTS_HELP([LPC32XX_CONFIG_U4CLK],[clock configuration for UART 4])
|
||||||
|
|
||||||
RTEMS_BSPOPTS_SET([LPC32XX_CONFIG_U5CLK],[*],[0x00001386U])
|
RTEMS_BSPOPTS_SET([LPC32XX_CONFIG_U5CLK],[*],[0x00001386])
|
||||||
RTEMS_BSPOPTS_HELP([LPC32XX_CONFIG_U5CLK],[clock configuration for UART 5])
|
RTEMS_BSPOPTS_HELP([LPC32XX_CONFIG_U5CLK],[clock configuration for UART 5])
|
||||||
|
|
||||||
RTEMS_BSPOPTS_SET([LPC32XX_CONFIG_U6CLK],[*],[])
|
RTEMS_BSPOPTS_SET([LPC32XX_CONFIG_U6CLK],[*],[0x00001386])
|
||||||
RTEMS_BSPOPTS_HELP([LPC32XX_CONFIG_U6CLK],[clock configuration for UART 6])
|
RTEMS_BSPOPTS_HELP([LPC32XX_CONFIG_U6CLK],[clock configuration for UART 6])
|
||||||
|
|
||||||
RTEMS_BSPOPTS_SET([LPC32XX_CONFIG_UART_CLKMODE],[*],[0x00000200U])
|
|
||||||
RTEMS_BSPOPTS_HELP([LPC32XX_CONFIG_UART_CLKMODE],[clock mode configuration for UARTs])
|
|
||||||
|
|
||||||
RTEMS_BSPOPTS_SET([LPC32XX_DISABLE_MMU],[*],[])
|
RTEMS_BSPOPTS_SET([LPC32XX_DISABLE_MMU],[*],[])
|
||||||
RTEMS_BSPOPTS_HELP([LPC32XX_DISABLE_MMU],[disable MMU])
|
RTEMS_BSPOPTS_HELP([LPC32XX_DISABLE_MMU],[disable MMU])
|
||||||
|
|
||||||
|
|||||||
@@ -42,10 +42,40 @@ static void lpc32xx_uart_set_register(uint32_t addr, uint8_t i, uint8_t val)
|
|||||||
reg [i] = val;
|
reg [i] = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef LPC32XX_UART_3_BAUD
|
||||||
|
static bool lpc32xx_uart_probe_3(int minor)
|
||||||
|
{
|
||||||
|
LPC32XX_UARTCLK_CTRL |= 1U << 0;
|
||||||
|
LPC32XX_U3CLK = LPC32XX_CONFIG_U3CLK;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef LPC32XX_UART_4_BAUD
|
||||||
|
static bool lpc32xx_uart_probe_4(int minor)
|
||||||
|
{
|
||||||
|
LPC32XX_UARTCLK_CTRL |= 1U << 1;
|
||||||
|
LPC32XX_U4CLK = LPC32XX_CONFIG_U4CLK;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef LPC32XX_UART_6_BAUD
|
||||||
|
static bool lpc32xx_uart_probe_6(int minor)
|
||||||
|
{
|
||||||
|
LPC32XX_UARTCLK_CTRL |= 1U << 3;
|
||||||
|
LPC32XX_U6CLK = LPC32XX_CONFIG_U6CLK;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* FIXME: Console selection */
|
/* FIXME: Console selection */
|
||||||
|
|
||||||
console_tbl Console_Configuration_Ports [] = {
|
console_tbl Console_Configuration_Ports [] = {
|
||||||
#ifdef LPC32XX_CONFIG_U5CLK
|
#ifdef LPC32XX_UART_5_BAUD
|
||||||
{
|
{
|
||||||
.sDeviceName = "/dev/ttyS5",
|
.sDeviceName = "/dev/ttyS5",
|
||||||
.deviceType = SERIAL_NS16550,
|
.deviceType = SERIAL_NS16550,
|
||||||
@@ -54,7 +84,7 @@ console_tbl Console_Configuration_Ports [] = {
|
|||||||
.pDeviceFlow = NULL,
|
.pDeviceFlow = NULL,
|
||||||
.ulMargin = 16,
|
.ulMargin = 16,
|
||||||
.ulHysteresis = 8,
|
.ulHysteresis = 8,
|
||||||
.pDeviceParams = (void *) 1,
|
.pDeviceParams = (void *) LPC32XX_UART_5_BAUD,
|
||||||
.ulCtrlPort1 = LPC32XX_BASE_UART_5,
|
.ulCtrlPort1 = LPC32XX_BASE_UART_5,
|
||||||
.ulCtrlPort2 = 0,
|
.ulCtrlPort2 = 0,
|
||||||
.ulDataPort = LPC32XX_BASE_UART_5,
|
.ulDataPort = LPC32XX_BASE_UART_5,
|
||||||
@@ -62,20 +92,20 @@ console_tbl Console_Configuration_Ports [] = {
|
|||||||
.setRegister = lpc32xx_uart_set_register,
|
.setRegister = lpc32xx_uart_set_register,
|
||||||
.getData = NULL,
|
.getData = NULL,
|
||||||
.setData = NULL,
|
.setData = NULL,
|
||||||
.ulClock = 16,
|
.ulClock = 16 * LPC32XX_UART_5_BAUD,
|
||||||
.ulIntVector = LPC32XX_IRQ_UART_5
|
.ulIntVector = LPC32XX_IRQ_UART_5
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
#ifdef LPC32XX_CONFIG_U3CLK
|
#ifdef LPC32XX_UART_3_BAUD
|
||||||
{
|
{
|
||||||
.sDeviceName = "/dev/ttyS3",
|
.sDeviceName = "/dev/ttyS3",
|
||||||
.deviceType = SERIAL_NS16550,
|
.deviceType = SERIAL_NS16550,
|
||||||
.pDeviceFns = &ns16550_fns,
|
.pDeviceFns = &ns16550_fns,
|
||||||
.deviceProbe = NULL,
|
.deviceProbe = lpc32xx_uart_probe_3,
|
||||||
.pDeviceFlow = NULL,
|
.pDeviceFlow = NULL,
|
||||||
.ulMargin = 16,
|
.ulMargin = 16,
|
||||||
.ulHysteresis = 8,
|
.ulHysteresis = 8,
|
||||||
.pDeviceParams = (void *) 1,
|
.pDeviceParams = (void *) LPC32XX_UART_3_BAUD,
|
||||||
.ulCtrlPort1 = LPC32XX_BASE_UART_3,
|
.ulCtrlPort1 = LPC32XX_BASE_UART_3,
|
||||||
.ulCtrlPort2 = 0,
|
.ulCtrlPort2 = 0,
|
||||||
.ulDataPort = LPC32XX_BASE_UART_3,
|
.ulDataPort = LPC32XX_BASE_UART_3,
|
||||||
@@ -83,20 +113,20 @@ console_tbl Console_Configuration_Ports [] = {
|
|||||||
.setRegister = lpc32xx_uart_set_register,
|
.setRegister = lpc32xx_uart_set_register,
|
||||||
.getData = NULL,
|
.getData = NULL,
|
||||||
.setData = NULL,
|
.setData = NULL,
|
||||||
.ulClock = 16,
|
.ulClock = 16 * LPC32XX_UART_3_BAUD,
|
||||||
.ulIntVector = LPC32XX_IRQ_UART_3
|
.ulIntVector = LPC32XX_IRQ_UART_3
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
#ifdef LPC32XX_CONFIG_U4CLK
|
#ifdef LPC32XX_UART_4_BAUD
|
||||||
{
|
{
|
||||||
.sDeviceName = "/dev/ttyS4",
|
.sDeviceName = "/dev/ttyS4",
|
||||||
.deviceType = SERIAL_NS16550,
|
.deviceType = SERIAL_NS16550,
|
||||||
.pDeviceFns = &ns16550_fns,
|
.pDeviceFns = &ns16550_fns,
|
||||||
.deviceProbe = NULL,
|
.deviceProbe = lpc32xx_uart_probe_4,
|
||||||
.pDeviceFlow = NULL,
|
.pDeviceFlow = NULL,
|
||||||
.ulMargin = 16,
|
.ulMargin = 16,
|
||||||
.ulHysteresis = 8,
|
.ulHysteresis = 8,
|
||||||
.pDeviceParams = (void *) 1,
|
.pDeviceParams = (void *) LPC32XX_UART_4_BAUD,
|
||||||
.ulCtrlPort1 = LPC32XX_BASE_UART_4,
|
.ulCtrlPort1 = LPC32XX_BASE_UART_4,
|
||||||
.ulCtrlPort2 = 0,
|
.ulCtrlPort2 = 0,
|
||||||
.ulDataPort = LPC32XX_BASE_UART_4,
|
.ulDataPort = LPC32XX_BASE_UART_4,
|
||||||
@@ -104,20 +134,20 @@ console_tbl Console_Configuration_Ports [] = {
|
|||||||
.setRegister = lpc32xx_uart_set_register,
|
.setRegister = lpc32xx_uart_set_register,
|
||||||
.getData = NULL,
|
.getData = NULL,
|
||||||
.setData = NULL,
|
.setData = NULL,
|
||||||
.ulClock = 16,
|
.ulClock = 16 * LPC32XX_UART_4_BAUD,
|
||||||
.ulIntVector = LPC32XX_IRQ_UART_4
|
.ulIntVector = LPC32XX_IRQ_UART_4
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
#ifdef LPC32XX_CONFIG_U6CLK
|
#ifdef LPC32XX_UART_6_BAUD
|
||||||
{
|
{
|
||||||
.sDeviceName = "/dev/ttyS6",
|
.sDeviceName = "/dev/ttyS6",
|
||||||
.deviceType = SERIAL_NS16550,
|
.deviceType = SERIAL_NS16550,
|
||||||
.pDeviceFns = &ns16550_fns,
|
.pDeviceFns = &ns16550_fns,
|
||||||
.deviceProbe = NULL,
|
.deviceProbe = lpc32xx_uart_probe_6,
|
||||||
.pDeviceFlow = NULL,
|
.pDeviceFlow = NULL,
|
||||||
.ulMargin = 16,
|
.ulMargin = 16,
|
||||||
.ulHysteresis = 8,
|
.ulHysteresis = 8,
|
||||||
.pDeviceParams = (void *) 1,
|
.pDeviceParams = (void *) LPC32XX_UART_6_BAUD,
|
||||||
.ulCtrlPort1 = LPC32XX_BASE_UART_6,
|
.ulCtrlPort1 = LPC32XX_BASE_UART_6,
|
||||||
.ulCtrlPort2 = 0,
|
.ulCtrlPort2 = 0,
|
||||||
.ulDataPort = LPC32XX_BASE_UART_6,
|
.ulDataPort = LPC32XX_BASE_UART_6,
|
||||||
@@ -125,7 +155,7 @@ console_tbl Console_Configuration_Ports [] = {
|
|||||||
.setRegister = lpc32xx_uart_set_register,
|
.setRegister = lpc32xx_uart_set_register,
|
||||||
.getData = NULL,
|
.getData = NULL,
|
||||||
.setData = NULL,
|
.setData = NULL,
|
||||||
.ulClock = 16,
|
.ulClock = 16 * LPC32XX_UART_6_BAUD,
|
||||||
.ulIntVector = LPC32XX_IRQ_UART_6
|
.ulIntVector = LPC32XX_IRQ_UART_6
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -263,35 +263,12 @@ static BSP_START_TEXT_SECTION void stop_dma_activities(void)
|
|||||||
|
|
||||||
static BSP_START_TEXT_SECTION void setup_uarts(void)
|
static BSP_START_TEXT_SECTION void setup_uarts(void)
|
||||||
{
|
{
|
||||||
uint32_t uartclk_ctrl = 0;
|
|
||||||
|
|
||||||
#ifdef LPC32XX_CONFIG_U3CLK
|
|
||||||
uartclk_ctrl |= 1U << 0;
|
|
||||||
LPC32XX_U3CLK = LPC32XX_CONFIG_U3CLK;
|
|
||||||
#endif
|
|
||||||
#ifdef LPC32XX_CONFIG_U4CLK
|
|
||||||
uartclk_ctrl |= 1U << 1;
|
|
||||||
LPC32XX_U4CLK = LPC32XX_CONFIG_U4CLK;
|
|
||||||
#endif
|
|
||||||
#ifdef LPC32XX_CONFIG_U5CLK
|
|
||||||
uartclk_ctrl |= 1U << 2;
|
|
||||||
LPC32XX_U5CLK = LPC32XX_CONFIG_U5CLK;
|
|
||||||
#endif
|
|
||||||
#ifdef LPC32XX_CONFIG_U6CLK
|
|
||||||
uartclk_ctrl |= 1U << 3;
|
|
||||||
LPC32XX_U6CLK = LPC32XX_CONFIG_U6CLK;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef LPC32XX_CONFIG_UART_CLKMODE
|
|
||||||
LPC32XX_UART_CLKMODE = LPC32XX_CONFIG_UART_CLKMODE;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
LPC32XX_UARTCLK_CTRL = uartclk_ctrl;
|
|
||||||
LPC32XX_UART_CTRL = 0x0;
|
LPC32XX_UART_CTRL = 0x0;
|
||||||
LPC32XX_UART_LOOP = 0x0;
|
LPC32XX_UART_LOOP = 0x0;
|
||||||
|
|
||||||
#ifdef LPC32XX_CONFIG_U5CLK
|
#ifdef LPC32XX_UART_5_BAUD
|
||||||
/* Clock is already set in LPC32XX_U5CLK */
|
LPC32XX_UARTCLK_CTRL |= 1U << 2;
|
||||||
|
LPC32XX_U5CLK = LPC32XX_CONFIG_U5CLK;
|
||||||
BSP_CONSOLE_UART_INIT(0x01);
|
BSP_CONSOLE_UART_INIT(0x01);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user