Matthew Dharm (firstname.lastname@example.org) writes:
> > As I understand 0xfc00000c is the physical address. Thus you cannot
> > reach it via KSEG0/1 (although you may use XKPHYS to get there in the
> > 64-bit mode). Still ioremap() already handles the case mapping the area
> > requested in the KSEG2 space, so it should work just fine.
> This is the case. The board itself has up to 1G of SDRAM. Most of the
> boards we sell have a minimum of 512MB. So our I/O (PCI, external devices,
> etc.) all have physical addresses in the high-end of the address space.
Well, next time, get your board designers to think before they map...
It's generally better to map some DRAM low (for boot ROMs and other
stupid programs you don't want to make big-address aware), then remap
the whole DRAM to some very high address for Linux. Much better than
forcing you to use the TLB (or XKPHYS, if you've a 64-bit CPU) to get
> 64-bit mode would be great...
Bear in mind that there *isn't a 64-bit mode*. Privileged code (which
is everything except Linux applications) can always run 64-bit
instructions; all addresses are 64-bits really, it's just the
sign-extension of the registers which makes you think you've got
32-bit pointers. Usually a 64-bit CPU can access XKPHYS any time
it can access I/O registers.
MIPS Technologies (UK) - formerly Algorithmics
The Fruit Farm, Ely Road, Chittering, CAMBS CB5 9PH, ENGLAND
phone: +44 1223 706200 / fax: +44 1223 706250 / direct: +44 1223 706205