[OpenBIOS] OpenBIOS and ppc64?
tarl-b2 at tarl.net
Fri Oct 1 00:34:37 CEST 2010
On 2010-9-30 6:25 PM, Alexander Graf wrote:
> So how does the firmware tell the OS that a device is on a 64 bit physical address if it only knows about 32 bit wide cells?
In general, the /memory node's "reg" and "available" properties tell you how
big your physical memory addressing is. The root node's ("/") #address-cells
and #size-cells tells you how to read those two properties.
If you have a 32-bit virtual addressing range, you'll obviously need some kind
of MMU/IOMMU to address anything above ffff.ffff .
For IO, in particular PCI/PCIX/PCIE, you'll see that the root IO node has a
ranges property indicating where the physical addressing of the IO chunks are
(IO, mem32, mem64).
Oh, and one confusion I occasionally hear about - "cells" strictly speaking
refers to the native size of values on the stack (and thus the size operated
on with ! and @). The same term "cell" is used for items in a property, but
1275 defines that property cells are explicitly 32-bits. A 64-bit address in a
property is by definition two property-cells long.
More information about the OpenBIOS