Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/hpcsh Use COM_REGMAP instead of hd64461uart_{read, w...
details: https://anonhg.NetBSD.org/src/rev/f97f213c9504
branches: trunk
changeset: 754809:f97f213c9504
user: kiyohara <kiyohara%NetBSD.org@localhost>
date: Thu May 13 18:21:32 2010 +0000
description:
Use COM_REGMAP instead of hd64461uart_{read,write}_1().
diffstat:
sys/arch/hpcsh/conf/std.hpcsh | 4 +-
sys/arch/hpcsh/dev/hd64461/hd64461uart.c | 53 +++++++++++++------------------
2 files changed, 26 insertions(+), 31 deletions(-)
diffs (133 lines):
diff -r 0d938e256218 -r f97f213c9504 sys/arch/hpcsh/conf/std.hpcsh
--- a/sys/arch/hpcsh/conf/std.hpcsh Thu May 13 18:19:18 2010 +0000
+++ b/sys/arch/hpcsh/conf/std.hpcsh Thu May 13 18:21:32 2010 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: std.hpcsh,v 1.9 2008/02/02 06:09:11 uwe Exp $
+# $NetBSD: std.hpcsh,v 1.10 2010/05/13 18:21:32 kiyohara Exp $
#
# standard, required NetBSD/hpcsh 'options'
@@ -9,3 +9,5 @@
options IOM_RAM_BEGIN=0x0c000000
makeoptions DEFTEXTADDR="0x8c001000"
+
+options COM_REGMAP
diff -r 0d938e256218 -r f97f213c9504 sys/arch/hpcsh/dev/hd64461/hd64461uart.c
--- a/sys/arch/hpcsh/dev/hd64461/hd64461uart.c Thu May 13 18:19:18 2010 +0000
+++ b/sys/arch/hpcsh/dev/hd64461/hd64461uart.c Thu May 13 18:21:32 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: hd64461uart.c,v 1.26 2010/05/13 18:07:40 kiyohara Exp $ */
+/* $NetBSD: hd64461uart.c,v 1.27 2010/05/13 18:21:33 kiyohara Exp $ */
/*-
* Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hd64461uart.c,v 1.26 2010/05/13 18:07:40 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hd64461uart.c,v 1.27 2010/05/13 18:21:33 kiyohara Exp $");
#include "opt_kgdb.h"
@@ -59,6 +59,18 @@
#include <hpcsh/dev/hd64461/hd64461uartvar.h>
#include <hpcsh/dev/hd64461/hd64461uartreg.h>
+#define HD64461UART_INIT_REGS(regs, tag, hdl, addr) \
+ do { \
+ int i; \
+ \
+ regs.cr_iot = tag; \
+ regs.cr_ioh = hdl; \
+ regs.cr_iobase = addr; \
+ regs.cr_nports = COM_NPORTS; \
+ for (i = 0; i < __arraycount(regs.cr_map); i++) \
+ regs.cr_map[i] = com_std_map[i] << 1; \
+ } while (0)
+
STATIC struct hd64461uart_chip {
struct hpcsh_bus_space __tag_body;
bus_space_tag_t io_tag;
@@ -83,9 +95,6 @@
hd64461uart_match, hd64461uart_attach, NULL, NULL);
STATIC void hd64461uart_init(void);
-STATIC uint8_t hd64461uart_read_1(void *, bus_space_handle_t, bus_size_t);
-STATIC void hd64461uart_write_1(void *, bus_space_handle_t, bus_size_t,
- uint8_t);
#define CONMODE ((TTYDEF_CFLAG & ~(CSIZE | CSTOPB | PARENB)) | CS8) /* 8N1 */
#ifndef COMCN_SPEED
@@ -109,11 +118,12 @@
void
hd64461uartcninit(struct consdev *cp)
{
+ struct com_regs regs;
hd64461uart_init();
- comcnattach(hd64461uart_chip.io_tag, 0x0, COMCN_SPEED, COM_FREQ,
- COM_TYPE_NORMAL, CONMODE);
+ HD64461UART_INIT_REGS(regs, hd64461uart_chip.io_tag, 0x0, 0x0);
+ comcnattach1(®s, COMCN_SPEED, COM_FREQ, COM_TYPE_NORMAL, CONMODE);
hd64461uart_chip.console = 1;
/* Don't stop to suply AFECK */
@@ -125,6 +135,7 @@
int
hd64461uart_kgdb_init(void)
{
+ struct com_regs regs;
if (strcmp(kgdb_devname, "hd64461uart") != 0)
return 1;
@@ -134,8 +145,9 @@
hd64461uart_init();
- if (com_kgdb_attach(hd64461uart_chip.io_tag, 0x0, kgdb_rate,
- COM_FREQ, COM_TYPE_NORMAL, CONMODE) != 0) {
+ HD64461UART_INIT_REGS(regs, hd64461uart_chip.io_tag, NULL, 0x0);
+ if (com_kgdb_attach1(®s,
+ kgdb_rate, COM_FREQ, COM_TYPE_NORMAL, CONMODE) != 0) {
printf("%s: KGDB console open failed.\n", __func__);
return 1;
}
@@ -171,9 +183,9 @@
if (!sc->sc_chip->console)
hd64461uart_init();
- bus_space_map(sc->sc_chip->io_tag, 0, 8, 0, &ioh);
+ bus_space_map(sc->sc_chip->io_tag, 0x0, 8, 0, &ioh);
csc->sc_frequency = COM_FREQ;
- COM_INIT_REGS(csc->sc_regs, sc->sc_chip->io_tag, ioh, 0);
+ HD64461UART_INIT_REGS(csc->sc_regs, sc->sc_chip->io_tag, ioh, 0x0);
/* switch port to UART */
@@ -210,23 +222,4 @@
hd64461uart_chip.io_tag = bus_space_create(
&hd64461uart_chip.__tag_body, "HD64461 UART I/O",
HD64461_UART_REGBASE, 0); /* no extent */
-
- /* override bus_space_read_1, bus_space_write_1 */
- hd64461uart_chip.io_tag->hbs_r_1 = hd64461uart_read_1;
- hd64461uart_chip.io_tag->hbs_w_1 = hd64461uart_write_1;
}
-
-STATIC uint8_t
-hd64461uart_read_1(void *t, bus_space_handle_t h, bus_size_t ofs)
-{
-
- return *(volatile uint8_t *)(h + (ofs << 1));
-}
-
-STATIC void
-hd64461uart_write_1(void *t, bus_space_handle_t h, bus_size_t ofs,
- uint8_t val)
-{
-
- *(volatile uint8_t *)(h + (ofs << 1)) = val;
-}
Home |
Main Index |
Thread Index |
Old Index