mpc755, sandpoint port and 1Gb of ram

Michael J. Accetta mja at laurelnetworks.com
Wed Jul 2 12:21:08 EST 2003


Hello all,

We have a custom board built around the mpc755 and patterned after the
Sandpoint reference design using the MontaVista Pro 3.0 distribution.
This is a base 2.4.18 kernel which, according to the MV web, page includes the
2.4.17 linuxppc code.  When 1Gb ram is used, CONFIG_HIGHMEM is required
to access the top 256Mb.  However, the sandpoint port does

   io_block_mapping(0xfe000000, 0xfe000000, 0x02000000, _PAGE_IO);

whichs maps all of virtual 0xfexxxxxx to physical 0xfexxxxxx.  This call
ends up using BAT#0 to map the entire block.  However, the CONFIG_HIGHMEM
support in the base ppc port sets PKMAP_BASE to 0xfe000000 and expects
these virtual addresses to be available for dynamic mapping via kmap()
of high memory.  The conflicting mapping in the BAT takes precedence,
wreaking havoc with any accesses to high memory.  In our case NFS mounts
of the root file system was the first high memory user and init could
not be found.

I've made a stab at fixing this by configuring PKMAP_BASE down to 0xfc000000
and things now seem to work fine.  Is this a correct solution?  Are there
likely to be any negative side effects of this approach?  Are there
better solutions?

Mike Accetta
Laurel Networks, Inc.

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list