diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2009-07-01 21:56:39 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2009-07-01 21:56:39 +0000 |
commit | 120e4235c1e0f40a9d9a2b0db84f1dbc97912bc3 (patch) | |
tree | 502c4209de3d0aba95950eeb456805f7630a5771 /sys/arch/sgi/pci | |
parent | 0d94a2f192e73199851c56fe6342bcdb84e8fb9a (diff) |
The widget mapping code has been written back when I was only working on
Octane support. The Octane being a single-node system, address space is
ludicrous enough to allow the whole address space of every widget to be
directly accessible in whole, using the address bits reserved to nasid.
However, on IP27 and IP35, things do not work this way - while we still have
the low 16MB address space of each widget available (the so-called
``short window''), access to other parts of the wiget address space is done
through translation slots (IOTTE) at the Hub I/O space level, on a per-node
basis.
Given the imminent release lock, give up completely on ``large'' mappings
of widgets, and restrict ourselves to short window operation, all the time
(thus reinforcing the use of devio registers to map pci resources on xbridge).
A proper interface to request mappings of specific widget areas, either
directly on Octane, or through IOTTE if available on Origin, will appear
post-release.
No functional change (except from silently repairing Octane support which the
previous xbridge commit silently broke).
Diffstat (limited to 'sys/arch/sgi/pci')
-rw-r--r-- | sys/arch/sgi/pci/ioc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/arch/sgi/pci/ioc.c b/sys/arch/sgi/pci/ioc.c index 01a21ea1e39..a19240806f4 100644 --- a/sys/arch/sgi/pci/ioc.c +++ b/sys/arch/sgi/pci/ioc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ioc.c,v 1.17 2009/06/21 18:03:15 miod Exp $ */ +/* $OpenBSD: ioc.c,v 1.18 2009/07/01 21:56:37 miod Exp $ */ /* * Copyright (c) 2008 Joel Sing. @@ -182,12 +182,13 @@ ioc_attach(struct device *parent, struct device *self, void *aux) sc->sc_mem_bus_space->bus_base = memh; sc->sc_mem_bus_space->_space_read_1 = xbow_read_1; sc->sc_mem_bus_space->_space_read_2 = xbow_read_2; + sc->sc_mem_bus_space->_space_read_raw_2 = xbow_read_raw_2; sc->sc_mem_bus_space->_space_write_1 = xbow_write_1; sc->sc_mem_bus_space->_space_write_2 = xbow_write_2; + sc->sc_mem_bus_space->_space_write_raw_2 = xbow_write_raw_2; - /* XXX undo IP27 xbridge weird mapping */ - if (sys_config.system_type != SGI_OCTANE) - sc->sc_mem_bus_space->_space_map = xbow_space_map_short; + /* XXX undo xbridge mapping games */ + sc->sc_mem_bus_space->_space_map = xbow_space_map; sc->sc_memt = sc->sc_mem_bus_space; sc->sc_memh = memh; |