FreeCalypso > hg > freecalypso-tools
view target-utils/libcommon/uartsel.c @ 1012:11391cb6bdc0
patch from fixeria: doc change from SE K2x0 to K2xx
Since their discovery in late 2022, Sony Ericsson K200 and K220 phones
were collectively referred to as SE K2x0 in FreeCalypso documentation.
However, now that SE K205 has been discovered as yet another member
of the same family (same PCBA in different case), it makes more sense
to refer to the whole family as SE K2xx.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 23 Sep 2024 12:23:20 +0000 (10 months ago) |
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); }