Devices with 36-bit paddr on 32-bit system

Marcel Moolenaar marcel at xcllnt.net
Tue Aug 25 15:56:00 UTC 2015


> On Aug 24, 2015, at 11:44 PM, Justin Hibbits <jrh29 at alumni.cwru.edu> wrote:
> 
> With my work porting FreeBSD to PowerPC e500mc and e5500, I have
> devices in my device tree mapped well above the 4GB mark
> (0xffexxxxxx), and have no idea how to properly address them for
> resources in rman.  Do we already have a solution to support this?
> Part of the problem is the powerpc nexus does a straight convert to
> vm_offset_t of rman_get_start() (itself returning a u_long), and
> vm_offset_t is not necessarily equal to vm_paddr_t (on Book-E powerpc
> vm_offset_t is 32-bits, vm_paddr_t is 64-bits).

I think the best solution is to represent a resource address
space with a type other than u_long. It makes sense to have
it use bus_addr_t or vm_paddr_t for example. Such a change
comes at a high price for sure, but you’ll fix it once and
for all. I don’t think you should kluge your way out of this...

--
Marcel Moolenaar
marcel at xcllnt.net

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-arch/attachments/20150825/e225b8ff/attachment.bin>


More information about the freebsd-arch mailing list