Subject: Re: another bus_space question
To: John F. Woods <jfw@funhouse.com>
From: John F. Woods <jfw@funhouse.com>
List: current-users
Date: 07/06/1998 10:16:54
> The theoretical question: the bus_space_map functionality, at least
> on the i386 port, does not really match the underlying hardware. On
> an ISA or EISA bus, if a card uses 0x388 through 0x38B, it also uses
> all the other duplicates of that range, and no other driver should be
> able to map the mirrored ports; of course, that means that *my* driver
> would (at best) have to stand on its head to map those ports as well.
And it turns out that reserving ISA-inspired mirror addresses would simply
prevent the PAS driver from working: the PAS software-configurable addressing
uses one fixed-address register to set the floating address, and that fixed
address is 0x9A01 -- which is a "mirror" of 0x0201, the joystick port. I
assume they figure that if anything accidently decodes 0x9A01, it will be
the joystick, which is pretty harmless to perform spurious writes to. But
needless to say, it would be hard to have both a joystick and a PAS if
bus_space_map assumed that the owner of 0x0201 also owned 0x9A01.
If only Microsoft had stuck to their guns on the PC98 spec (they wanted to
outlaw ISA...).