Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Prevent duplicate bus_space_map for TURBOchannel?



2016-05-04 8:02 GMT+02:00 Martin Husemann <martin%duskware.de@localhost>:
> You could create a special tc@vs-bus_space that maps the vs space upfront and
> submaps part of that to tc-callers (but I have not looked at the vax bus space
> implementation, so this might be more tricky than it looks)

In theory, it shouldn't be necessary to submap, as the generic TC
stuff just wants to exclusively parse the option ROM header (starting
at slot offset 0x3e0, or 0x3c03e0 for "proto" options) *once*, while
the usual registers etc. for the tc-callers are at different
locations, e. g. 0x000, ... So I thought it would be cleanest for the
TC part to map this and unmap it when done.

In practice, IIRC VAX mappings are in 512 byte granularity, so there
can be overlapping regions. For the ROM header alone, while ranging
from 0x3e0 to 0x47f only, two pages with addresses 0x200 to 0x5ff must
be mapped etc. Again, I think it would be cleanest if mapped and
unmapped before the tc-callers take over, preventing an overlapping
map altogether. But I have no experience (yet) in tweaking the code in
an acceptable way. :/
Something as ugly as #ifdef __vax__ in tc.c is possible of course (and
I do that now as temporary fix), but there must be a more elegant
solution...?

Regards,
Felix


Home | Main Index | Thread Index | Old Index