Matthew Dharm (mdharm@momenco.com) 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 at I/O. > 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. -- Dominic Sweetman, 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 http://www.algor.co.uk