Module Name: src Committed By: simonb Date: Wed Aug 12 12:56:30 UTC 2009
Modified Files: src/sys/arch/mips/conf: files.sibyte src/sys/arch/mips/sibyte/dev: sbmac.c sbobio.c sbobiovar.h sbscd.c sbscdvar.h sbscn.c sbtimer.c sbwdog.c src/sys/arch/mips/sibyte/include: sb1250_regs.h src/sys/arch/sbmips/conf: GENERIC Log Message: Remove many magic numbers for addresses and interrupt numbers, and use constants defined in SiByte/Broadcom standard header files. Switch from using offsets for locators to actual addresses. Tested on a swarm (my rhone is dead, but should be OK there too). To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/arch/mips/conf/files.sibyte cvs rdiff -u -r1.32 -r1.33 src/sys/arch/mips/sibyte/dev/sbmac.c cvs rdiff -u -r1.16 -r1.17 src/sys/arch/mips/sibyte/dev/sbobio.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/mips/sibyte/dev/sbobiovar.h \ src/sys/arch/mips/sibyte/dev/sbscdvar.h cvs rdiff -u -r1.14 -r1.15 src/sys/arch/mips/sibyte/dev/sbscd.c cvs rdiff -u -r1.28 -r1.29 src/sys/arch/mips/sibyte/dev/sbscn.c cvs rdiff -u -r1.13 -r1.14 src/sys/arch/mips/sibyte/dev/sbtimer.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/mips/sibyte/dev/sbwdog.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/mips/sibyte/include/sb1250_regs.h cvs rdiff -u -r1.74 -r1.75 src/sys/arch/sbmips/conf/GENERIC Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/mips/conf/files.sibyte diff -u src/sys/arch/mips/conf/files.sibyte:1.5 src/sys/arch/mips/conf/files.sibyte:1.6 --- src/sys/arch/mips/conf/files.sibyte:1.5 Sat Oct 25 15:05:00 2003 +++ src/sys/arch/mips/conf/files.sibyte Wed Aug 12 12:56:29 2009 @@ -3,12 +3,12 @@ ### # System Control/Debug -device sbscd {[offset = -1], [intr[2] = {-1,-1}]} +device sbscd {[addr = -1], [intr[2] = {-1,-1}]} attach sbscd at zbbus file arch/mips/sibyte/dev/sbscd.c sbscd # On-board I/O (slow I/O bridge) -device sbobio {[offset = -1], [intr[2] = {-1,-1}]} +device sbobio {[addr = -1], [intr[2] = {-1,-1}]} attach sbobio at zbbus file arch/mips/sibyte/dev/sbobio.c sbobio Index: src/sys/arch/mips/sibyte/dev/sbmac.c diff -u src/sys/arch/mips/sibyte/dev/sbmac.c:1.32 src/sys/arch/mips/sibyte/dev/sbmac.c:1.33 --- src/sys/arch/mips/sibyte/dev/sbmac.c:1.32 Wed Mar 18 17:06:45 2009 +++ src/sys/arch/mips/sibyte/dev/sbmac.c Wed Aug 12 12:56:29 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sbmac.c,v 1.32 2009/03/18 17:06:45 cegger Exp $ */ +/* $NetBSD: sbmac.c,v 1.33 2009/08/12 12:56:29 simonb Exp $ */ /* * Copyright 2000, 2001, 2004 @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sbmac.c,v 1.32 2009/03/18 17:06:45 cegger Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sbmac.c,v 1.33 2009/08/12 12:56:29 simonb Exp $"); #include "bpfilter.h" #include "opt_inet.h" @@ -2284,7 +2284,7 @@ /* Determine controller base address */ - sc->sbm_base = (sbmac_port_t) sap->sa_base + sap->sa_locs.sa_offset; + sc->sbm_base = sap->sa_locs.sa_addr; eaddr = sc->sbm_hwaddr; Index: src/sys/arch/mips/sibyte/dev/sbobio.c diff -u src/sys/arch/mips/sibyte/dev/sbobio.c:1.16 src/sys/arch/mips/sibyte/dev/sbobio.c:1.17 --- src/sys/arch/mips/sibyte/dev/sbobio.c:1.16 Fri Nov 11 06:27:09 2005 +++ src/sys/arch/mips/sibyte/dev/sbobio.c Wed Aug 12 12:56:29 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sbobio.c,v 1.16 2005/11/11 06:27:09 simonb Exp $ */ +/* $NetBSD: sbobio.c,v 1.17 2009/08/12 12:56:29 simonb Exp $ */ /* * Copyright 2000, 2001 @@ -33,13 +33,14 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sbobio.c,v 1.16 2005/11/11 06:27:09 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sbobio.c,v 1.17 2009/08/12 12:56:29 simonb Exp $"); #include <sys/param.h> #include <sys/device.h> #include <sys/systm.h> #include <machine/locore.h> +#include <mips/sibyte/include/sb1250_int.h> #include <mips/sibyte/include/sb1250_regs.h> #include <mips/sibyte/include/sb1250_scd.h> #include <mips/sibyte/include/zbbusvar.h> @@ -56,49 +57,115 @@ static int sbobio_print(void *, const char *); static const char *sbobio_device_type_name(enum sbobio_device_type type); +/* + * XXXsimonb: + * DUART register addresses seem to offset by 0x100 for some + * reason I can't fathom so we just can't use A_DUART for the + * address of the DUART. Eg, + * A_DUART_CHANREG(0, 0) = 0x0010060000 + * and R_DUART_MODE_REG_1 = 0x100 (first reg in the duart) + * but the 1125/1250 manual says the DUART starts at + * 0x0010060100. + * We define our own R_DUART_REGBASE to R_DUART_MODE_REG_1 + * so that we can use a symbolic name to refer to the start + * of the duart register space. + */ + static const struct sbobio_attach_locs sb1250_rev1_sbobio_devs[] = { - { 0x0000, {6,-1}, SBOBIO_DEVTYPE_SMBUS }, - { 0x0008, {7,-1}, SBOBIO_DEVTYPE_SMBUS }, - { 0x0100, {8,9}, SBOBIO_DEVTYPE_DUART }, - { 0x0400, {10,-1}, SBOBIO_DEVTYPE_SYNCSERIAL }, - { 0x0800, {11,-1}, SBOBIO_DEVTYPE_SYNCSERIAL }, + { A_SMB_0, + { K_INT_SMB_0, -1 }, + SBOBIO_DEVTYPE_SMBUS }, + { A_SMB_1, + { K_INT_SMB_1, -1 }, + SBOBIO_DEVTYPE_SMBUS }, + { A_DUART_CHANREG(0, R_DUART_REGBASE), + { K_INT_UART_0, K_INT_UART_1 }, + SBOBIO_DEVTYPE_DUART }, + { A_SER_BASE_0, + { K_INT_SER_0, -1 }, + SBOBIO_DEVTYPE_SYNCSERIAL }, + { A_SER_BASE_1, + { K_INT_SER_1, -1 }, + SBOBIO_DEVTYPE_SYNCSERIAL }, #if 0 - { 0x1000, {-1,-1}, SBOBIO_DEVTYPE_GBUS, }, /* XXXCGD ??? */ + { A_IO_EXT_BASE, + { -1, -1 }, + SBOBIO_DEVTYPE_GBUS }, #endif - { 0x4000, {19,-1}, SBOBIO_DEVTYPE_MAC, }, - { 0x5000, {20,-1}, SBOBIO_DEVTYPE_MAC, }, - { 0x6000, {21,-1}, SBOBIO_DEVTYPE_MAC, }, + { A_MAC_BASE_0, + { K_INT_MAC_0, -1 }, + SBOBIO_DEVTYPE_MAC }, + { A_MAC_BASE_1, + { K_INT_MAC_1, -1 }, + SBOBIO_DEVTYPE_MAC }, + { A_MAC_BASE_2, + { K_INT_MAC_2, -1 }, + SBOBIO_DEVTYPE_MAC }, }; static const int sb1250_rev1_sbobio_dev_count = sizeof sb1250_rev1_sbobio_devs / sizeof sb1250_rev1_sbobio_devs[0]; static const struct sbobio_attach_locs sb1250_sbobio_devs[] = { - { 0x0000, {6,-1}, SBOBIO_DEVTYPE_SMBUS }, - { 0x0008, {7,-1}, SBOBIO_DEVTYPE_SMBUS }, - { 0x0100, {8,9}, SBOBIO_DEVTYPE_DUART }, - { 0x0400, {10,-1}, SBOBIO_DEVTYPE_SYNCSERIAL }, - { 0x0800, {11,-1}, SBOBIO_DEVTYPE_SYNCSERIAL }, + { A_SMB_0, + { K_INT_SMB_0, -1 }, + SBOBIO_DEVTYPE_SMBUS }, + { A_SMB_1, + { K_INT_SMB_1, -1 }, + SBOBIO_DEVTYPE_SMBUS }, + { A_DUART_CHANREG(0, R_DUART_REGBASE), + { K_INT_UART_0, K_INT_UART_1}, + SBOBIO_DEVTYPE_DUART }, + { A_SER_BASE_0, + { K_INT_SER_0, -1 }, + SBOBIO_DEVTYPE_SYNCSERIAL }, + { A_SER_BASE_1, + { K_INT_SER_1, -1 }, + SBOBIO_DEVTYPE_SYNCSERIAL }, #if 0 - { 0x1000, {-1,-1}, SBOBIO_DEVTYPE_GBUS, }, /* XXXCGD ??? */ + { A_IO_EXT_BASE, + { -1, -1 }, + SBOBIO_DEVTYPE_GBUS }, #endif - { 0x4000, {19,61}, SBOBIO_DEVTYPE_MAC, }, - { 0x5000, {20,62}, SBOBIO_DEVTYPE_MAC, }, - { 0x6000, {21,63}, SBOBIO_DEVTYPE_MAC, }, + { A_MAC_BASE_0, + { K_INT_MAC_0, K_INT_MAC_0_CH1 }, + SBOBIO_DEVTYPE_MAC }, + { A_MAC_BASE_1, + { K_INT_MAC_1, K_INT_MAC_1_CH1 }, + SBOBIO_DEVTYPE_MAC }, + { A_MAC_BASE_2, + { K_INT_MAC_2, K_INT_MAC_2_CH1 }, + SBOBIO_DEVTYPE_MAC }, }; static const int sb1250_sbobio_dev_count = sizeof sb1250_sbobio_devs / sizeof sb1250_sbobio_devs[0]; static const struct sbobio_attach_locs sb112x_sbobio_devs[] = { - { 0x0000, {6,-1}, SBOBIO_DEVTYPE_SMBUS }, - { 0x0008, {7,-1}, SBOBIO_DEVTYPE_SMBUS }, - { 0x0100, {8,9}, SBOBIO_DEVTYPE_DUART }, - { 0x0400, {10,-1}, SBOBIO_DEVTYPE_SYNCSERIAL }, - { 0x0800, {11,-1}, SBOBIO_DEVTYPE_SYNCSERIAL }, + { A_SMB_0, + { K_INT_SMB_0, -1 }, + SBOBIO_DEVTYPE_SMBUS }, + { A_SMB_1, + { K_INT_SMB_1, -1 }, + SBOBIO_DEVTYPE_SMBUS }, + { A_DUART_CHANREG(0, R_DUART_REGBASE), + { K_INT_UART_0, K_INT_UART_1 }, + SBOBIO_DEVTYPE_DUART }, + { A_SER_BASE_0, + { K_INT_SER_0, -1 }, + SBOBIO_DEVTYPE_SYNCSERIAL }, + { A_SER_BASE_1, + { K_INT_SER_1, -1 }, + SBOBIO_DEVTYPE_SYNCSERIAL }, #if 0 - { 0x1000, {-1,-1}, SBOBIO_DEVTYPE_GBUS, }, /* XXXCGD ??? */ + { A_IO_EXT_BASE, + { -1, -1 }, + SBOBIO_DEVTYPE_GBUS }, #endif - { 0x4000, {19,61}, SBOBIO_DEVTYPE_MAC, }, - { 0x5000, {20,62}, SBOBIO_DEVTYPE_MAC, }, + { A_MAC_BASE_0, + { K_INT_MAC_0, K_INT_MAC_0_CH1 }, + SBOBIO_DEVTYPE_MAC }, + { A_MAC_BASE_1, + { K_INT_MAC_1, K_INT_MAC_1_CH1 }, + SBOBIO_DEVTYPE_MAC }, }; static const int sb112x_sbobio_dev_count = sizeof sb112x_sbobio_devs / sizeof sb112x_sbobio_devs[0]; @@ -167,10 +234,9 @@ for (i = 0; i < devcount; i++) { memset(&sa, 0, sizeof sa); - sa.sa_base = A_PHYS_IO_SYSTEM; sa.sa_locs = devs[i]; - locs[SBOBIOCF_OFFSET] = devs[i].sa_offset; + locs[SBOBIOCF_ADDR] = devs[i].sa_addr; locs[SBOBIOCF_INTR + 0] = devs[i].sa_intr[0]; locs[SBOBIOCF_INTR + 1] = devs[i].sa_intr[1]; @@ -189,11 +255,11 @@ if (pnp) aprint_normal("%s at %s", sbobio_device_type_name(sap->sa_locs.sa_type), pnp); - aprint_normal(" offset 0x%lx", (long)sap->sa_locs.sa_offset); + aprint_normal(" addr 0x%x", sap->sa_locs.sa_addr); for (i = 0; i < 2; i++) { if (sap->sa_locs.sa_intr[i] != SBOBIOCF_INTR_DEFAULT) - aprint_normal("%s%ld", i == 0 ? " intr " : ",", - (long)sap->sa_locs.sa_intr[i]); + aprint_normal("%s%d", i == 0 ? " intr " : ",", + sap->sa_locs.sa_intr[i]); } return (UNCONF); } Index: src/sys/arch/mips/sibyte/dev/sbobiovar.h diff -u src/sys/arch/mips/sibyte/dev/sbobiovar.h:1.2 src/sys/arch/mips/sibyte/dev/sbobiovar.h:1.3 --- src/sys/arch/mips/sibyte/dev/sbobiovar.h:1.2 Fri Feb 7 17:38:49 2003 +++ src/sys/arch/mips/sibyte/dev/sbobiovar.h Wed Aug 12 12:56:29 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sbobiovar.h,v 1.2 2003/02/07 17:38:49 cgd Exp $ */ +/* $NetBSD: sbobiovar.h,v 1.3 2009/08/12 12:56:29 simonb Exp $ */ /* * Copyright 2000, 2001 @@ -46,13 +46,12 @@ /* autoconfiguration match information for zbbus children */ struct sbobio_attach_locs { - sbobio_offset sa_offset; + sbobio_offset sa_addr; u_int sa_intr[2]; enum sbobio_device_type sa_type; }; +/* XXX can probably just get away without separate sbobio_attach_locs ? */ struct sbobio_attach_args { struct sbobio_attach_locs sa_locs; - - long sa_base; }; Index: src/sys/arch/mips/sibyte/dev/sbscdvar.h diff -u src/sys/arch/mips/sibyte/dev/sbscdvar.h:1.2 src/sys/arch/mips/sibyte/dev/sbscdvar.h:1.3 --- src/sys/arch/mips/sibyte/dev/sbscdvar.h:1.2 Fri Feb 7 17:38:49 2003 +++ src/sys/arch/mips/sibyte/dev/sbscdvar.h Wed Aug 12 12:56:29 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sbscdvar.h,v 1.2 2003/02/07 17:38:49 cgd Exp $ */ +/* $NetBSD: sbscdvar.h,v 1.3 2009/08/12 12:56:29 simonb Exp $ */ /* * Copyright 2000, 2001 @@ -45,13 +45,12 @@ /* autoconfiguration match information for zbbus children */ struct sbscd_attach_locs { - sbscd_offset sa_offset; + sbscd_offset sa_addr; u_int sa_intr[2]; enum sbscd_device_type sa_type; }; +/* XXX can probably just get away without separate sbscd_attach_locs ? */ struct sbscd_attach_args { struct sbscd_attach_locs sa_locs; - - long sa_base; }; Index: src/sys/arch/mips/sibyte/dev/sbscd.c diff -u src/sys/arch/mips/sibyte/dev/sbscd.c:1.14 src/sys/arch/mips/sibyte/dev/sbscd.c:1.15 --- src/sys/arch/mips/sibyte/dev/sbscd.c:1.14 Mon Jun 16 08:36:51 2008 +++ src/sys/arch/mips/sibyte/dev/sbscd.c Wed Aug 12 12:56:29 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sbscd.c,v 1.14 2008/06/16 08:36:51 cegger Exp $ */ +/* $NetBSD: sbscd.c,v 1.15 2009/08/12 12:56:29 simonb Exp $ */ /* * Copyright 2000, 2001 @@ -33,12 +33,15 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sbscd.c,v 1.14 2008/06/16 08:36:51 cegger Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sbscd.c,v 1.15 2009/08/12 12:56:29 simonb Exp $"); #include <sys/param.h> #include <sys/device.h> #include <sys/systm.h> +#include <mips/sibyte/include/sb1250_int.h> +#include <mips/sibyte/include/sb1250_regs.h> +#include <mips/sibyte/include/sb1250_scd.h> #include <mips/sibyte/include/zbbusvar.h> #include <mips/sibyte/dev/sbscdvar.h> @@ -55,15 +58,31 @@ static const struct sbscd_attach_locs sb1250_sbscd_devs[] = { #if 0 - { 0x20000, {-1,-1}, SBSCD_DEVTYPE_ICU, }, + { A_IMR_CPU0_BASE, + { -1, -1 }, + SBSCD_DEVTYPE_ICU }, #endif - { 0x20050, {0,-1}, SBSCD_DEVTYPE_WDOG, }, - { 0x20150, {1,-1}, SBSCD_DEVTYPE_WDOG, }, - { 0x20070, {2,-1}, SBSCD_DEVTYPE_TIMER, }, - { 0x20078, {3,-1}, SBSCD_DEVTYPE_TIMER, }, - { 0x20170, {4,-1}, SBSCD_DEVTYPE_TIMER, }, - { 0x20178, {5,-1}, SBSCD_DEVTYPE_TIMER, }, - { 0x1FFA0, {-1,-1}, SBSCD_DEVTYPE_JTAGCONS, }, + { A_SCD_WDOG_0, + { K_INT_WATCHDOG_TIMER_0, -1 }, + SBSCD_DEVTYPE_WDOG }, + { A_SCD_WDOG_1, + { K_INT_WATCHDOG_TIMER_1, -1 }, + SBSCD_DEVTYPE_WDOG }, + { A_SCD_TIMER_0, + { K_INT_TIMER_0, -1 }, + SBSCD_DEVTYPE_TIMER }, + { A_SCD_TIMER_1, + { K_INT_TIMER_1, -1 }, + SBSCD_DEVTYPE_TIMER }, + { A_SCD_TIMER_2, + { K_INT_TIMER_2, -1 }, + SBSCD_DEVTYPE_TIMER }, + { A_SCD_TIMER_3, + { K_INT_TIMER_3, -1 }, + SBSCD_DEVTYPE_TIMER }, + { A_SCD_JTAG_BASE + 0x1FFA0, /* XXX magic number for jtag addr */ + { -1, -1 }, + SBSCD_DEVTYPE_JTAGCONS }, /* XXX others */ }; static const int sb1250_sbscd_dev_count = __arraycount(sb1250_sbscd_devs); @@ -90,10 +109,9 @@ for (i = 0; i < sb1250_sbscd_dev_count; i++) { memset(&sa, 0, sizeof sa); - sa.sa_base = 0x10000000; /* XXXCGD */ sa.sa_locs = sb1250_sbscd_devs[i]; - locs[SBSCDCF_OFFSET] = sb1250_sbscd_devs[i].sa_offset; + locs[SBSCDCF_ADDR] = sb1250_sbscd_devs[i].sa_addr; locs[SBSCDCF_INTR + 0] = sb1250_sbscd_devs[i].sa_intr[0]; locs[SBSCDCF_INTR + 1] = @@ -114,11 +132,11 @@ if (pnp) aprint_normal("%s at %s", sbscd_device_type_name(sap->sa_locs.sa_type), pnp); - aprint_normal(" offset 0x%lx", (long)sap->sa_locs.sa_offset); + aprint_normal(" addr 0x%x", sap->sa_locs.sa_addr); for (i = 0; i < 2; i++) { if (sap->sa_locs.sa_intr[i] != -1) - aprint_normal("%s%ld", i == 0 ? " intr " : ",", - (long)sap->sa_locs.sa_intr[i]); + aprint_normal("%s%d", i == 0 ? " intr " : ",", + sap->sa_locs.sa_intr[i]); } return (UNCONF); } Index: src/sys/arch/mips/sibyte/dev/sbscn.c diff -u src/sys/arch/mips/sibyte/dev/sbscn.c:1.28 src/sys/arch/mips/sibyte/dev/sbscn.c:1.29 --- src/sys/arch/mips/sibyte/dev/sbscn.c:1.28 Sat Mar 14 15:36:10 2009 +++ src/sys/arch/mips/sibyte/dev/sbscn.c Wed Aug 12 12:56:29 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sbscn.c,v 1.28 2009/03/14 15:36:10 dsl Exp $ */ +/* $NetBSD: sbscn.c,v 1.29 2009/08/12 12:56:29 simonb Exp $ */ /* * Copyright 2000, 2001 @@ -109,7 +109,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sbscn.c,v 1.28 2009/03/14 15:36:10 dsl Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sbscn.c,v 1.29 2009/08/12 12:56:29 simonb Exp $"); #define SBSCN_DEBUG @@ -276,7 +276,7 @@ struct sbobio_attach_args *sap = aux; int i; - sc->sc_addr = sap->sa_base + sap->sa_locs.sa_offset; + sc->sc_addr = sap->sa_locs.sa_addr; printf("\n"); for (i = 0; i < 2; i++) Index: src/sys/arch/mips/sibyte/dev/sbtimer.c diff -u src/sys/arch/mips/sibyte/dev/sbtimer.c:1.13 src/sys/arch/mips/sibyte/dev/sbtimer.c:1.14 --- src/sys/arch/mips/sibyte/dev/sbtimer.c:1.13 Tue Jan 8 14:38:47 2008 +++ src/sys/arch/mips/sibyte/dev/sbtimer.c Wed Aug 12 12:56:29 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sbtimer.c,v 1.13 2008/01/08 14:38:47 simonb Exp $ */ +/* $NetBSD: sbtimer.c,v 1.14 2009/08/12 12:56:29 simonb Exp $ */ /* * Copyright 2000, 2001 @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sbtimer.c,v 1.13 2008/01/08 14:38:47 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sbtimer.c,v 1.14 2009/08/12 12:56:29 simonb Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -92,12 +92,12 @@ const char *comment = ""; sc->sc_flags = device_cfdata(&sc->sc_dev)->cf_flags; - sc->sc_addr_icnt = (uint64_t *)MIPS_PHYS_TO_KSEG1(sa->sa_base + - sa->sa_locs.sa_offset + R_SCD_TIMER_INIT); - sc->sc_addr_cnt = (uint64_t *)MIPS_PHYS_TO_KSEG1(sa->sa_base + - sa->sa_locs.sa_offset + R_SCD_TIMER_CNT); - sc->sc_addr_cfg = (uint64_t *)MIPS_PHYS_TO_KSEG1(sa->sa_base + - sa->sa_locs.sa_offset + R_SCD_TIMER_CFG); + sc->sc_addr_icnt = (uint64_t *)MIPS_PHYS_TO_KSEG1(sa->sa_locs.sa_addr + + R_SCD_TIMER_INIT); + sc->sc_addr_cnt = (uint64_t *)MIPS_PHYS_TO_KSEG1(sa->sa_locs.sa_addr + + R_SCD_TIMER_CNT); + sc->sc_addr_cfg = (uint64_t *)MIPS_PHYS_TO_KSEG1(sa->sa_locs.sa_addr + + R_SCD_TIMER_CFG); printf(": "); if ((sc->sc_flags & SBTIMER_CLOCK) != 0) { Index: src/sys/arch/mips/sibyte/dev/sbwdog.c diff -u src/sys/arch/mips/sibyte/dev/sbwdog.c:1.7 src/sys/arch/mips/sibyte/dev/sbwdog.c:1.8 --- src/sys/arch/mips/sibyte/dev/sbwdog.c:1.7 Thu Jan 12 04:40:50 2006 +++ src/sys/arch/mips/sibyte/dev/sbwdog.c Wed Aug 12 12:56:29 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sbwdog.c,v 1.7 2006/01/12 04:40:50 simonb Exp $ */ +/* $NetBSD: sbwdog.c,v 1.8 2009/08/12 12:56:29 simonb Exp $ */ /* * Copyright (c) 2002 Wasabi Systems, Inc. @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sbwdog.c,v 1.7 2006/01/12 04:40:50 simonb Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sbwdog.c,v 1.8 2009/08/12 12:56:29 simonb Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -94,7 +94,7 @@ struct sbscd_attach_args *sa = aux; sc->sc_wdog_period = SBWDOG_DEFAULT_PERIOD; - sc->sc_addr = MIPS_PHYS_TO_KSEG1(sa->sa_base + sa->sa_locs.sa_offset); + sc->sc_addr = MIPS_PHYS_TO_KSEG1(sa->sa_locs.sa_addr); printf(": %d second period\n", sc->sc_wdog_period); Index: src/sys/arch/mips/sibyte/include/sb1250_regs.h diff -u src/sys/arch/mips/sibyte/include/sb1250_regs.h:1.8 src/sys/arch/mips/sibyte/include/sb1250_regs.h:1.9 --- src/sys/arch/mips/sibyte/include/sb1250_regs.h:1.8 Tue Aug 11 12:34:06 2009 +++ src/sys/arch/mips/sibyte/include/sb1250_regs.h Wed Aug 12 12:56:30 2009 @@ -305,6 +305,7 @@ #define R_DUART_CMD 0x150 #define R_DUART_RX_HOLD 0x160 #define R_DUART_TX_HOLD 0x170 +#define R_DUART_REGBASE R_DUART_MODE_REG_1 /* Added for NetBSD */ #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480) #define R_DUART_FULL_CTL 0x140 Index: src/sys/arch/sbmips/conf/GENERIC diff -u src/sys/arch/sbmips/conf/GENERIC:1.74 src/sys/arch/sbmips/conf/GENERIC:1.75 --- src/sys/arch/sbmips/conf/GENERIC:1.74 Fri Mar 6 20:31:51 2009 +++ src/sys/arch/sbmips/conf/GENERIC Wed Aug 12 12:56:30 2009 @@ -1,10 +1,10 @@ -# $NetBSD: GENERIC,v 1.74 2009/03/06 20:31:51 joerg Exp $ +# $NetBSD: GENERIC,v 1.75 2009/08/12 12:56:30 simonb Exp $ include "arch/sbmips/conf/std.sbmips" options INCLUDE_CONFIG_FILE # embed config file in kernel binary -#ident "GENERIC-$Revision: 1.74 $" +#ident "GENERIC-$Revision: 1.75 $" #options LOCKDEBUG # XXX XXX XXX XXX #options DEBUG # extra kernel debugging support @@ -138,16 +138,16 @@ sbscd* at zbbus? busid ? sbobio* at zbbus? busid ? -#sbicu* at sbscd? offset ? -sbwdog* at sbscd? offset ? intr ? -sbtimer0 at sbscd? offset ? intr ? flags 0x01 # clock -#sbtimer1 at sbscd? offset ? intr ? flags 0x02 # statclock -sbtimer* at sbscd? offset ? intr ? - -sbmac* at sbobio? offset ? -sbscn* at sbobio? offset ? -#sbgbus* at sbobio? offset ? -smbus* at sbobio? offset ? +#sbicu* at sbscd? addr ? +sbwdog* at sbscd? addr ? intr ? +sbtimer0 at sbscd? addr ? intr ? flags 0x01 # clock +#sbtimer1 at sbscd? addr ? intr ? flags 0x02 # statclock +sbtimer* at sbscd? addr ? intr ? + +sbmac* at sbobio? addr ? +sbscn* at sbobio? addr ? +#sbgbus* at sbobio? addr ? +smbus* at sbobio? addr ? xirtc* at smbus? chan ? dev ? # Xicor X1241 RTC m41t81rtc* at smbus? chan ? dev ? # ST M41T81 RTC