Module Name: src Committed By: kiyohara Date: Sun Mar 14 10:03:49 UTC 2010
Modified Files: src/sys/arch/powerpc/oea: ofw_consinit.c ofwoea_machdep.c Log Message: Fix isa(4) support for ofw. ofw not initialized bus_space for isa(4). It tested on ofppc(PegasosII). To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/powerpc/oea/ofw_consinit.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/powerpc/oea/ofwoea_machdep.c 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/powerpc/oea/ofw_consinit.c diff -u src/sys/arch/powerpc/oea/ofw_consinit.c:1.9 src/sys/arch/powerpc/oea/ofw_consinit.c:1.10 --- src/sys/arch/powerpc/oea/ofw_consinit.c:1.9 Wed Mar 10 18:36:05 2010 +++ src/sys/arch/powerpc/oea/ofw_consinit.c Sun Mar 14 10:03:49 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: ofw_consinit.c,v 1.9 2010/03/10 18:36:05 kiyohara Exp $ */ +/* $NetBSD: ofw_consinit.c,v 1.10 2010/03/14 10:03:49 kiyohara Exp $ */ /*- * Copyright (c) 2007 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ofw_consinit.c,v 1.9 2010/03/10 18:36:05 kiyohara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ofw_consinit.c,v 1.10 2010/03/14 10:03:49 kiyohara Exp $"); #include <sys/param.h> #include <sys/buf.h> @@ -219,9 +219,9 @@ return; } -#if NAKBD > 0 memset(name, 0, sizeof(name)); OF_getprop(OF_parent(node), "name", name, sizeof(name)); +#if NAKBD > 0 if (strcmp(name, "adb") == 0) { printf("console keyboard type: ADB\n"); akbd_cnattach(); @@ -229,8 +229,6 @@ } #endif #if NADBKBD > 0 - memset(name, 0, sizeof(name)); - OF_getprop(OF_parent(node), "name", name, sizeof(name)); if (strcmp(name, "adb") == 0) { printf("console keyboard type: ADB\n"); adbkbd_cnattach(); @@ -238,9 +236,7 @@ } #endif #if NPCKBC > 0 - memset(name, 0, sizeof(name)); - OF_getprop(OF_parent(node), "name", name, sizeof(name)); - if (strcmp(name, "keyboard") == 0) { + if (strcmp(name, "isa") == 0) { printf("console keyboard type: PC Keyboard\n"); pckbc_cnattach(&genppc_isa_io_space_tag, IO_KBD, KBCMDP, PCKBC_KBD_SLOT); Index: src/sys/arch/powerpc/oea/ofwoea_machdep.c diff -u src/sys/arch/powerpc/oea/ofwoea_machdep.c:1.19 src/sys/arch/powerpc/oea/ofwoea_machdep.c:1.20 --- src/sys/arch/powerpc/oea/ofwoea_machdep.c:1.19 Wed Mar 10 18:36:05 2010 +++ src/sys/arch/powerpc/oea/ofwoea_machdep.c Sun Mar 14 10:03:49 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: ofwoea_machdep.c,v 1.19 2010/03/10 18:36:05 kiyohara Exp $ */ +/* $NetBSD: ofwoea_machdep.c,v 1.20 2010/03/14 10:03:49 kiyohara Exp $ */ /*- * Copyright (c) 2007 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ofwoea_machdep.c,v 1.19 2010/03/10 18:36:05 kiyohara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ofwoea_machdep.c,v 1.20 2010/03/14 10:03:49 kiyohara Exp $"); #include "opt_ppcarch.h" #include "opt_compat_netbsd.h" @@ -167,6 +167,8 @@ sizeof(model_name)); model_init(); } + /* Initialize bus_space */ + ofwoea_bus_space_init(); ofwoea_consinit(); @@ -583,6 +585,10 @@ */ if (range == -1) { /* we found a rangeless isa bus */ + if (iomem == RANGE_IO) + size = 0x10000; + else + size = 0x1000000; } DPRINTF("found isa stuff\n"); for (i=0; i < range; i++) @@ -595,7 +601,10 @@ DPRINTF("found IO\n"); tag->pbs_offset = list[i].addr; tag->pbs_limit = size; - error = bus_space_init(tag, name, NULL, 0); + error = bus_space_init(tag, name, + ex_storage[exmap], + sizeof(ex_storage[exmap])); + exmap++; return error; } } else { @@ -605,7 +614,10 @@ DPRINTF("found mem\n"); tag->pbs_offset = list[i].addr; tag->pbs_limit = size; - error = bus_space_init(tag, name, NULL, 0); + error = bus_space_init(tag, name, + ex_storage[exmap], + sizeof(ex_storage[exmap])); + exmap++; return error; } }