[parisc-linux] (read|write)[bwl]
Matthew Wilcox
matthew@wil.cx
Thu, 1 Mar 2001 19:54:22 +0000
right now we do rsm / foo / mtsm in order to read/write gsc space.
the rsm/mtsm turns off address translation. this is cripplingly slow
on PA8x00 series processors.
proposal 1:
leave gsc_* macros alone. people can continue to use these if they want.
they should be aware these are slow though.
stop aliasing (read,write)[bwl] to the gsc_* variants. they should
just dereference the address passed to them.
write an ioremap() function which provides a logical map to that area
of address space.
proposal 2:
direct-map the entire 0xfxxx'xxxx address space into the kernel's address
space. ioremap becomes a NOP, gsc_* go away and (read,write)[bwl] become
as trivial as before.
i suspect we want proposal 1 on PA1.1 and proposal 2 on PA2.0. This leads
to proposal 3 which should allow modules to work for either architecture:
gsc_* stay as calls to _gsc_*, (read,write)[bwl] become the direct memory
dereferences. ioremap is a function call. On PA2.0, the gsc space is
permanently mapped, the ioremap function does nothing and _gsc_* don't
mess with the system mask. On PA1.1, we construct page table entries
for the io area upon calls to ioremap, and _gsc_* still mess with the
system mask.
Suggestions?
--
Revolutions do not require corporate support.