Module Name: src Committed By: snj Date: Tue Sep 29 23:53:14 UTC 2009
Modified Files: src/sys/arch/x86/include [netbsd-5]: bus.h isa_machdep.h src/sys/arch/x86/x86 [netbsd-5]: bus_space.c Log Message: Pull up following revision(s) (requested by bouyer in ticket #1040): sys/arch/x86/include/bus.h: revision 1.18 sys/arch/x86/include/isa_machdep.h: revision 1.7 sys/arch/x86/x86/bus_space.c: revision 1.21 Apply patch proposed on port-amd64/port-i386, allowing to use a 64bit bus_addr_t on i386PAE kernels: change bus_addr_t to be a paddr_t (so its size follows paddr_t depending on options PAE) remplace bus_addr_t with vaddr_t where the value is used as a virtual address. Difference with the proposed patch: cast to uintmax_t and use %jx in printf() as suggested by Joerg. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.16.10.1 src/sys/arch/x86/include/bus.h cvs rdiff -u -r1.6 -r1.6.6.1 src/sys/arch/x86/include/isa_machdep.h cvs rdiff -u -r1.20.4.1 -r1.20.4.2 src/sys/arch/x86/x86/bus_space.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/x86/include/bus.h diff -u src/sys/arch/x86/include/bus.h:1.16 src/sys/arch/x86/include/bus.h:1.16.10.1 --- src/sys/arch/x86/include/bus.h:1.16 Mon Apr 28 20:23:40 2008 +++ src/sys/arch/x86/include/bus.h Tue Sep 29 23:53:14 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: bus.h,v 1.16 2008/04/28 20:23:40 martin Exp $ */ +/* $NetBSD: bus.h,v 1.16.10.1 2009/09/29 23:53:14 snj Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 2001 The NetBSD Foundation, Inc. @@ -77,11 +77,11 @@ /* * Bus address and size types */ -typedef u_long bus_addr_t; -typedef u_long bus_size_t; +typedef paddr_t bus_addr_t; +typedef paddr_t bus_size_t; typedef int bus_space_tag_t; -typedef u_long bus_space_handle_t; +typedef vaddr_t bus_space_handle_t; int _x86_memio_map(bus_space_tag_t t, bus_addr_t addr, bus_size_t size, int flags, bus_space_handle_t *bshp); Index: src/sys/arch/x86/include/isa_machdep.h diff -u src/sys/arch/x86/include/isa_machdep.h:1.6 src/sys/arch/x86/include/isa_machdep.h:1.6.6.1 --- src/sys/arch/x86/include/isa_machdep.h:1.6 Fri Jun 27 11:03:13 2008 +++ src/sys/arch/x86/include/isa_machdep.h Tue Sep 29 23:53:14 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: isa_machdep.h,v 1.6 2008/06/27 11:03:13 cegger Exp $ */ +/* $NetBSD: isa_machdep.h,v 1.6.6.1 2009/09/29 23:53:14 snj Exp $ */ /*- * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc. @@ -202,19 +202,19 @@ * function definitions, invoked through the softc. */ -extern u_long atdevbase; /* kernel virtual address of "hole" */ +extern vaddr_t atdevbase; /* kernel virtual address of "hole" */ /* * Given a kernel virtual address for some location * in the "hole" I/O space, return a physical address. */ -#define ISA_PHYSADDR(v) ((void *) ((u_long)(v) - atdevbase + IOM_BEGIN)) +#define ISA_PHYSADDR(v) ((bus_addr_t)(v) - atdevbase + IOM_BEGIN) /* * Given a physical address in the "hole", * return a kernel virtual address. */ -#define ISA_HOLE_VADDR(p) ((void *) ((u_long)(p) - IOM_BEGIN + atdevbase)) +#define ISA_HOLE_VADDR(p) ((void *) ((vaddr_t)(p) - IOM_BEGIN + atdevbase)) /* Index: src/sys/arch/x86/x86/bus_space.c diff -u src/sys/arch/x86/x86/bus_space.c:1.20.4.1 src/sys/arch/x86/x86/bus_space.c:1.20.4.2 --- src/sys/arch/x86/x86/bus_space.c:1.20.4.1 Wed Sep 16 03:45:45 2009 +++ src/sys/arch/x86/x86/bus_space.c Tue Sep 29 23:53:14 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: bus_space.c,v 1.20.4.1 2009/09/16 03:45:45 snj Exp $ */ +/* $NetBSD: bus_space.c,v 1.20.4.2 2009/09/29 23:53:14 snj Exp $ */ /*- * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: bus_space.c,v 1.20.4.1 2009/09/16 03:45:45 snj Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bus_space.c,v 1.20.4.2 2009/09/29 23:53:14 snj Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -199,8 +199,8 @@ if (error) { if (extent_free(ex, bpa, size, EX_NOWAIT | (ioport_malloc_safe ? EX_MALLOCOK : 0))) { - printf("x86_memio_map: pa 0x%lx, size 0x%lx\n", - bpa, size); + printf("x86_memio_map: pa 0x%jx, size 0x%jx\n", + (uintmax_t)bpa, (uintmax_t)size); printf("x86_memio_map: can't free region\n"); } } @@ -286,8 +286,8 @@ if (error) { if (extent_free(iomem_ex, bpa, size, EX_NOWAIT | (ioport_malloc_safe ? EX_MALLOCOK : 0))) { - printf("x86_memio_alloc: pa 0x%lx, size 0x%lx\n", - bpa, size); + printf("x86_memio_alloc: pa 0x%jx, size 0x%jx\n", + (uintmax_t)bpa, (uintmax_t)size); printf("x86_memio_alloc: can't free region\n"); } } @@ -464,8 +464,9 @@ ok: if (extent_free(ex, bpa, size, EX_NOWAIT | (ioport_malloc_safe ? EX_MALLOCOK : 0))) { - printf("x86_memio_unmap: %s 0x%lx, size 0x%lx\n", - (t == X86_BUS_SPACE_IO) ? "port" : "pa", bpa, size); + printf("x86_memio_unmap: %s 0x%jx, size 0x%jx\n", + (t == X86_BUS_SPACE_IO) ? "port" : "pa", + (uintmax_t)bpa, (uintmax_t)size); printf("x86_memio_unmap: can't free region\n"); } } @@ -510,7 +511,7 @@ bus_space_set_multi_1(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, uint8_t v, size_t c) { - bus_addr_t addr = h + o; + vaddr_t addr = h + o; if (t == X86_BUS_SPACE_IO) while (c--) @@ -524,7 +525,7 @@ bus_space_set_multi_2(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, uint16_t v, size_t c) { - bus_addr_t addr = h + o; + vaddr_t addr = h + o; BUS_SPACE_ADDRESS_SANITY(addr, uint16_t, "bus addr"); @@ -540,7 +541,7 @@ bus_space_set_multi_4(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, uint32_t v, size_t c) { - bus_addr_t addr = h + o; + vaddr_t addr = h + o; BUS_SPACE_ADDRESS_SANITY(addr, uint32_t, "bus addr"); @@ -556,7 +557,7 @@ bus_space_set_region_1(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, uint8_t v, size_t c) { - bus_addr_t addr = h + o; + vaddr_t addr = h + o; if (t == X86_BUS_SPACE_IO) for (; c != 0; c--, addr++) @@ -570,7 +571,7 @@ bus_space_set_region_2(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, uint16_t v, size_t c) { - bus_addr_t addr = h + o; + vaddr_t addr = h + o; BUS_SPACE_ADDRESS_SANITY(addr, uint16_t, "bus addr"); @@ -586,7 +587,7 @@ bus_space_set_region_4(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, uint32_t v, size_t c) { - bus_addr_t addr = h + o; + vaddr_t addr = h + o; BUS_SPACE_ADDRESS_SANITY(addr, uint32_t, "bus addr"); @@ -603,8 +604,8 @@ bus_size_t o1, bus_space_handle_t h2, bus_size_t o2, size_t c) { - bus_addr_t addr1 = h1 + o1; - bus_addr_t addr2 = h2 + o2; + vaddr_t addr1 = h1 + o1; + vaddr_t addr2 = h2 + o2; if (t == X86_BUS_SPACE_IO) { if (addr1 >= addr2) { @@ -638,8 +639,8 @@ bus_size_t o1, bus_space_handle_t h2, bus_size_t o2, size_t c) { - bus_addr_t addr1 = h1 + o1; - bus_addr_t addr2 = h2 + o2; + vaddr_t addr1 = h1 + o1; + vaddr_t addr2 = h2 + o2; BUS_SPACE_ADDRESS_SANITY(addr1, uint16_t, "bus addr 1"); BUS_SPACE_ADDRESS_SANITY(addr2, uint16_t, "bus addr 2"); @@ -676,8 +677,8 @@ bus_size_t o1, bus_space_handle_t h2, bus_size_t o2, size_t c) { - bus_addr_t addr1 = h1 + o1; - bus_addr_t addr2 = h2 + o2; + vaddr_t addr1 = h1 + o1; + vaddr_t addr2 = h2 + o2; BUS_SPACE_ADDRESS_SANITY(addr1, uint32_t, "bus addr 1"); BUS_SPACE_ADDRESS_SANITY(addr2, uint32_t, "bus addr 2");