FreeCalypso > hg > freecalypso-tools
view target-utils/libcommon/uartsel.c @ 561:392525355ee7
loadtools/scripts: gtm900.config renamed to gen4.config
It turns out that a GTM900 variant exists with 8 MiB flash, thus -h gen8
needs to be used for GTM900 modules as the general case, and the old
-h gtm900 config is best renamed to -h gen4, although not currently official
for any actual target.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 30 Jan 2020 07:10:20 +0000 |
parents | 2942c5ef76ed |
children |
line wrap: on
line source
/* * uart_select_init() figures out which UART was used to load us * through the boot ROM, and sets things up for us to use the same * UART for our communication. */ #include "types.h" #include "romvars.h" #include "ns16550.h" #include "halt.h" extern struct ns16550_regs *uart_base; static u16 rom_version; static struct boot_rom_vars *rom_vars; static char *uart_name; uart_select_init() { rom_version = *(const u16 *)0x1FFE; switch (rom_version) { case 0x0200: rom_vars = (struct boot_rom_vars *) 0x800504; break; case 0x0300: rom_vars = (struct boot_rom_vars *) 0x800518; break; default: _exit(HALTCODE_BOOTROMVER); } switch (rom_vars->uart_id) { case 0: uart_base = (struct ns16550_regs *) 0xFFFF5800; uart_name = "MODEM"; break; case 1: uart_base = (struct ns16550_regs *) 0xFFFF5000; uart_name = "IrDA"; break; default: _exit(HALTCODE_INVALIDUART); } } print_boot_rom_info() { printf("Loaded via boot ROM v%04X, UART %d (%s) at baud rate #%d\n", rom_version, rom_vars->uart_id, uart_name, rom_vars->baud_rate_code); printf("CLKTCXO input autodetected to be %d MHz\n", rom_vars->clktcxo_13mhz ? 13 : 26); }