[OpenBIOS] [RFC 2/3] ppc64: Switch to 64-bit cell size

Segher Boessenkool segher at kernel.crashing.org
Sat May 28 17:53:09 CEST 2011


>> I thought ppc64 OpenFirmware uses 32bit cells?
>
> That's what I thought, too... but Segher said otherwise in January, 
> and Tarl said the internal cell size (that I'm trying to change here) 
> were different from the guest-visible 32-bit cell size. Through the 
> use of prog_arg_t the CIF is supposed to remain 32-bit.

There are (at least) three different things here:

1) The Forth cell size.  Since a normal pointer fits a cell, it is very
inconvenient and restrictive to use 32-bit cells; most obvious is that
you have to have everything you address in the low 4GB of address space
(which is doable in virtual mode, however many workarounds you need; but
totally forget about it in real mode);

2) The device tree 32-bit integer size.  Those are 32-bit integers, not
cells, although they are often called cells.  They are big-endian 
always.
They are not aligned at all, you should not assume you can access them
with a single load/store, always go through some load/store-unaligned
wrapper;

3) The client interface item size.  You can have a 32-bit client 
interface,
or a 64-bit client interface, or both.  Linux uses the 32-bit client
interface always.


Segher




More information about the OpenBIOS mailing list