--- trunk/src/devices/dev_au1x00.c 2007/10/08 16:19:23 20 +++ trunk/src/devices/dev_au1x00.c 2007/10/08 16:19:37 22 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2005 Anders Gavare. All rights reserved. + * Copyright (C) 2004-2006 Anders Gavare. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -25,7 +25,7 @@ * SUCH DAMAGE. * * - * $Id: dev_au1x00.c,v 1.14 2005/11/13 00:14:08 debug Exp $ + * $Id: dev_au1x00.c,v 1.16 2006/01/01 13:17:16 debug Exp $ * * Au1x00 (eg Au1500) pseudo device. See aureg.h for bitfield details. * @@ -52,6 +52,7 @@ int console_handle; int uart_nr; int irq_nr; + int in_use; uint32_t int_enable; uint32_t modem_control; }; @@ -68,9 +69,7 @@ * * Interrupt Controller. */ -int dev_au1x00_ic_access(struct cpu *cpu, struct memory *mem, - uint64_t relative_addr, unsigned char *data, size_t len, - int writeflag, void *extra) +DEVICE_ACCESS(au1x00_ic) { struct au1x00_ic_data *d = extra; uint64_t idata = 0, odata = 0; @@ -190,9 +189,7 @@ * * UART (Serial controllers). */ -int dev_au1x00_uart_access(struct cpu *cpu, struct memory *mem, - uint64_t relative_addr, unsigned char *data, size_t len, - int writeflag, void *extra) +DEVICE_ACCESS(au1x00_uart) { struct au1x00_uart_data *d = extra; uint64_t idata = 0, odata = 0; @@ -264,9 +261,7 @@ * * Programmable Counters. */ -int dev_au1x00_pc_access(struct cpu *cpu, struct memory *mem, - uint64_t relative_addr, unsigned char *data, size_t len, - int writeflag, void *extra) +DEVICE_ACCESS(au1x00_pc) { struct au1x00_pc_data *d = extra; uint64_t idata = 0, odata = 0; @@ -341,10 +336,15 @@ d2->uart_nr = 2; d2->irq_nr = 2; d3->uart_nr = 3; d3->irq_nr = 3; - d0->console_handle = console_start_slave(machine, "AU1x00 port 0"); - d1->console_handle = console_start_slave(machine, "AU1x00 port 1"); - d2->console_handle = console_start_slave(machine, "AU1x00 port 2"); - d3->console_handle = console_start_slave(machine, "AU1x00 port 3"); + /* Only allow input on the first UART, by default: */ + d0->console_handle = console_start_slave(machine, "AU1x00 port 0", 1); + d1->console_handle = console_start_slave(machine, "AU1x00 port 1", 0); + d2->console_handle = console_start_slave(machine, "AU1x00 port 2", 0); + d3->console_handle = console_start_slave(machine, "AU1x00 port 3", 0); + d0->in_use = 1; + d1->in_use = 0; + d2->in_use = 0; + d3->in_use = 0; d_pc->irq_nr = 14;