diff --git a/fsbl/plat/cv181x/bl2/bl2_main.c b/fsbl/plat/cv181x/bl2/bl2_main.c index a4f1aec18..fcc0c8e2e 100644 --- a/fsbl/plat/cv181x/bl2/bl2_main.c +++ b/fsbl/plat/cv181x/bl2/bl2_main.c @@ -46,8 +46,34 @@ int dec_verify_image(const void *image, size_t size, size_t dec_skip, struct fip } #endif +// Start of addition +#define UART_DLL 0x04140000 +#define UART_DLH 0x04140004 +#define UART_LCR 0x0414000C + +void set_baudrate() +{ + // 14 for 115200, 13 for 128000 + int baud_divisor = 14; + + // set DLAB to 1 to set dll and dlh + *(volatile uint32_t*)(UART_LCR) |= (uint32_t)0x80; + + // set divisor + *(volatile uint32_t*)(UART_DLL) = (uint32_t)(baud_divisor & 0xff); + *(volatile uint32_t*)(UART_DLH) = (uint32_t)((baud_divisor >> 8) & 0xff); + + // set DLAB back to 0 + *(volatile uint32_t*)(UART_LCR) &= (uint32_t)(~0x80); +} +// End of addition + void bl2_main(void) { + // Start of addition + set_baudrate(); + // End of addition + enum CHIP_CLK_MODE mode; uint32_t v = p_rom_api_get_boot_src();