view target-utils/libcommon/uartsel.c @ 853:ae254ffeaec3

AT command interface works! The cause of the breakage was the same Nucleus API issue with NU_Create_Timer() which we encountered at the very beginning of this project with Riviera timers: the code in uartfax.c from TCS211 was passing 0 as the initial dummy value for the timer duration, and our FreeNucleus version doesn't like it. The fix is the same: pass 1 as the initial dummy value instead.
author Space Falcon <falcon@ivan.Harhan.ORG>
date Thu, 30 Apr 2015 01:46:26 +0000
parents 40f607bb0a2c
children a7b0b426f9ca
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 boot_rom_vars rom_vars;

struct ns16550_regs *uart_base;
char *uart_name;

uart_select_init()
{
	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);
	}
}