note that accessing 64bit physical addresses is quite simple and do-able in a 32 bit kernel. the ultrasparc does this often when it is running in 32 bit mode. infact, that is why we added paddr_t, to allow it to address ranges outside a normal 32 bit address. user-space has no idea about this, of course, as it should not.