# HG changeset patch # User Mychaela Falconia # Date 1583368042 0 # Node ID 4e1d7ce0ee71ba4b7aca9c4b7af7448bca1d159a # Parent c71e3156170a3da368059232ecdcea3ffa691636 frbl/reconst/boot.c: perfect match to TCS211 boot.obj diff -r c71e3156170a -r 4e1d7ce0ee71 frbl/reconst/boot.c --- a/frbl/reconst/boot.c Wed Mar 04 23:58:05 2020 +0000 +++ b/frbl/reconst/boot.c Thu Mar 05 00:27:22 2020 +0000 @@ -74,11 +74,11 @@ * Main ******************************************************************************/ -uint32 uart; +uint32 uart_base; void jump(uint32, uint32); -void putchar(uint8 ch); +static void putchar(uint8 ch); uint8 getchar(void); void uart_init(UBYTE dlh, UBYTE dll); void hardware_init(uint16 *code); @@ -95,18 +95,18 @@ hardware_init(&chip_id_code); - uart = UART_BASE_MODEM; + uart_base = UART_BASE_MODEM; uart_init(0, 0x07); // baudrate = 115200kbps - uart = UART_BASE_IRDA; + uart_base = UART_BASE_IRDA; uart_init(0, 0x07); // baudrate = 115200kbps #ifdef TESTBOOT while (1) { - uart = UART_BASE_MODEM; - if ((REGISTER_8_READ(uart + UART_LSR) & STAT_RXRDY)) + uart_base = UART_BASE_MODEM; + if ((REGISTER_8_READ(uart_base + UART_LSR) & STAT_RXRDY)) break; - uart = UART_BASE_IRDA; - if ((REGISTER_8_READ(uart + UART_LSR) & STAT_RXRDY)) + uart_base = UART_BASE_IRDA; + if ((REGISTER_8_READ(uart_base + UART_LSR) & STAT_RXRDY)) break; } while (getchar() != 0xAA) @@ -118,13 +118,13 @@ #endif while (1) { - uart = UART_BASE_MODEM; + uart_base = UART_BASE_MODEM; putchar(PROTO_HELLO); - if ((REGISTER_8_READ(uart + UART_LSR) & STAT_RXRDY)) + if ((REGISTER_8_READ(uart_base + UART_LSR) & STAT_RXRDY)) break; - uart = UART_BASE_IRDA; + uart_base = UART_BASE_IRDA; putchar(PROTO_HELLO); - if ((REGISTER_8_READ(uart + UART_LSR) & STAT_RXRDY)) + if ((REGISTER_8_READ(uart_base + UART_LSR) & STAT_RXRDY)) break; } while (1) { @@ -133,6 +133,11 @@ case PROTO_VERSION: putchar(BOOTLOADER_VERSION); break; +/* FreeCalypso reconstruction of TCS211 boot.obj */ + case PROTO_HARDWARE: + putchar('0'); + break; +/* end FC reconstruction */ case PROTO_QUERY: ch = getchar(); if (ch == PROTO_QUERY_CHIP) { @@ -171,7 +176,7 @@ // Insert convenient tracing here... #endif // Start the program we loaded. - jump(uart, addr.i); + jump(uart_base, addr.i); break; default: putchar(PROTO_ERROR); @@ -187,14 +192,14 @@ asm("$jump:"); asm(" bx r1"); -void putchar(uint8 ch) +static void putchar(uint8 ch) { - PUTCHAR_FUNCTION_CODE(uart) + PUTCHAR_FUNCTION_CODE(uart_base) } uint8 getchar(void) { - GETCHAR_FUNCTION_CODE(uart) + GETCHAR_FUNCTION_CODE(uart_base) } @@ -315,38 +320,38 @@ /* * Set the UART in reset mode. */ - REGISTER_8_WRITE(uart + UART_MDR1, CMD_UART_RESET); + REGISTER_8_WRITE(uart_base + UART_MDR1, CMD_UART_RESET); /* * FIFO configuration */ - REGISTER_8_WRITE(uart + UART_LCR, CMD_EFR_EN); - BIT_SET (uart + UART_EFR, ENHANCED_EN); - REGISTER_8_WRITE(uart + UART_LCR, CMD_FCR_MCR_EN); - REGISTER_8_WRITE(uart + UART_FCR, CMD_FIFO_EN); + REGISTER_8_WRITE(uart_base + UART_LCR, CMD_EFR_EN); + BIT_SET (uart_base + UART_EFR, ENHANCED_EN); + REGISTER_8_WRITE(uart_base + UART_LCR, CMD_FCR_MCR_EN); + REGISTER_8_WRITE(uart_base + UART_FCR, CMD_FIFO_EN); /* * Speed configuration */ - REGISTER_8_WRITE(uart + UART_LCR, CMD_EFR_EN); - REGISTER_8_WRITE(uart + UART_DLL, my_dll); - REGISTER_8_WRITE(uart + UART_DLH, my_dlh); + REGISTER_8_WRITE(uart_base + UART_LCR, CMD_EFR_EN); + REGISTER_8_WRITE(uart_base + UART_DLL, my_dll); + REGISTER_8_WRITE(uart_base + UART_DLH, my_dlh); /* * Character format configuration */ - REGISTER_8_WRITE(uart + UART_LCR, CMD_CHAR8_STOP1_NOPAR); + REGISTER_8_WRITE(uart_base + UART_LCR, CMD_CHAR8_STOP1_NOPAR); /* * Modem configuration */ - REGISTER_8_WRITE(uart + UART_MDR1, CMD_UART_MODE); + REGISTER_8_WRITE(uart_base + UART_MDR1, CMD_UART_MODE); /* * Flush Rx buffer */ - while ((REGISTER_8_READ(uart + UART_LSR) & STAT_RXRDY)) - ch = (REGISTER_8_READ(uart + UART_RHR)); + while ((REGISTER_8_READ(uart_base + UART_LSR) & STAT_RXRDY)) + ch = (REGISTER_8_READ(uart_base + UART_RHR)); }