Port-ofppc archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
more on the isa IO panic
Ok.. let me try to explain the way the ofwoea_map_space function works, in the
context of isa. It's possible I made some incorrect assumptions here.. but I'm
hoping it's correct..
1) We first look for the primary PCI bus, and gather it's ranges. On the B50,
this is:
01000000 00000000 00000000 fe000000 00000000 00c00000
02000000 00000000 80000000 80000000 00000000 7d000000
02000000 00000000 00000000 fd000000 00000000 01000000
So, thats a 0xc00000 sized IO space at 0xfe000000, and two mem regions.
2) then we try to lookup the isa ranges. Unfortunately, the isa ranges aren't
as helpful.
00000001 00000000 01005800 00000000 00000000 00010000
00000000 00000000 02005800 00000000 00000000 01000000
>From what I can decode here, this is an ioregion of 0x10000 in size, and a
memregion of 0x1000000. The memory region is simple, as it matches up
perfectly with the second mem region of the pci bus. It's the io region that
I'm not sure about.
3) ofwoea_map_space() then looks for the first iorange on the pcibus, and maps
up the isa_io_size (0x10000) for iospace. In the above example, it's doing:
struct powerpc_bus_space genppc_isa_io_space_tag = {
.pbs_flags = _BUS_SPACE_LITTLE_ENDIAN|_BUS_SPACE_IO_TYPE,
.pbs_offset = 0xfe000000,
.pbs_base = 0x00000000,
.pbs_limit = 0x10000,
};
The questions I have regarding this are:
1) is the isa io space really at 0xfe000000, and if so, is it the first
0x10000, or maybe the last, or somewhere in between?
on the B50 in question:
ethernet has IO at 0xbff801
scsi has IO at 0xbffc01
So my assumption is that it's at the front, but I could be off there.
2) where is the panic occurring? Is bus_space_init returning an error, or is
the error happening earlier in the process? (perhaps while finding the ranges?)
---
Tim Rightnour <root%garbled.net@localhost>
NetBSD: Free multi-architecture OS http://www.netbsd.org/
Genecys: Open Source 3D MMORPG: http://www.genecys.org/
Home |
Main Index |
Thread Index |
Old Index