correct, the 64-bit "flat" physical addresses are mapped with a shift:
they are shifted down into negative addresses, starting at:
earth4:~/tip> grep PAGE_OFFSET include/asm-x86/page_64.h
#define __PAGE_OFFSET _AC(0xffff880000000000, UL)
i.e. physical address zero is mapped to "minus 120 terabytes". [we do
this on the 64-bit kernel to get out of the way of the application
address space, which goes from the usual zero.]
All in one, 0xffff88000100f000 is a regular kernel address that
corresponds to the physical address of 0x100f000 - i.e. 16 MB plus
15*4KB.
correct - these resource descriptors are in the "physical address" space
(system RAM, chipset decoded addresses, device decoded addresses, etc.).
fed00000-fed003ff means that your HPET hardware sits at physical address
4275044352, or just below 4GB. That is the usual place for such non-RAM
device memory - it does not get in the way of normal RAM.
the resource descriptor is really a kernel internal abstraction - it's
just a memory buffer we put the hpet address into. It's in essence used
for /proc/iomem output, not much else. So it _should_ not have any
effects.
the real difference is likely that the hpet hardware is activated on
your box - and apparently is causing problems.
:-/
Just to make sure: on a working kernel, do you get the HPET messages?
I.e. does the hpet truly work in that case?
Ingo
--