On Mon, 26 Apr 2010, David Daney wrote: > > If using CKSEG0 as the ebase, CKSEG0 is defined as 0xffffffff80000000, > > then we get the address: 0x97ffffff80000100, is this address ok? > > I don't think so. We should fix TO_UNCAC() so that it works with CKSEG0 > addresses. It should be at physical address 0. So > TO_UNCAC(0xffffffff80000000), should yield 0x9000000000000000 A 0xffffffff80000000 -> 0xffffffffa0000000 translation would make more sense IMHO. Of course the use of XKPHYS addresses rather than CKSEG ones is preferable for 64-bit kernels in the first place, but then if the compatibility address space has been chosen for some reason (perhaps a virtual address stored in a structure defined by a peripheral is limited to 32 bits; I've seen such cases in DMA descriptor rings for example (not that code doing such things couldn't be converted to use cookies of some sort)), then I think it'll be safer to stick to the space. Maciej