Windows 7 - Windows CE Config.bib

Asked By wamba.kuet on 08-Jul-08 11:02 PM
Hi Folks,

I am here to clarify a few questions that I have regarding config.bib
and OEMAddressTable in Windows CE. I have been working on application
software for a few years but only recently transitioned to do some
work on the BSP layer. The following are my questions. I kindly
apologize if you think the question is too trivial or basic for this

1. From the documentation on MSDN I can gather that Windows CE has a
OEMAddressTable which specifies virtual to physical address mapping.
Virtual memory mapping range is from 0x80000000 to 0x9FFFFFFF. A
second virtual address range from 0xA0000000 to 0xBFFFFFFF is
automatically mapped for each entry in the OEMAddressTable. My
question here is in Windows CE we have a 4 Gb virtual address space
with kernel VA space on the top 2 Gb and application space in the
bottom 2 Gb. In this table we only specify a physical address mapping
for the cached and non-cached parts of the VA for the kernel? How does
this mapping map back for PA space for the application's VA?

2. The Config.bib file specifies a mapping between memory region and
type (RAMIMAGE, RAM etc). My first question here is is this VA or PA
that is specified here? Second, there is also an option to specify
NANDIMAGE? So is NANDIMAGE for allowing XIP execution form Nand Flash?
Also if some one can give some explanation as to how the
OEMAddressTable ties to Config.bib will be very helpful.

- Kuete Yves

eshwar. replied on 08-Jul-08 11:02 PM
Sorry to post again but if someone knows the answer to this kindly let
me know. Thanks.
Silver replied on 07-Jul-08 12:55 PM
1) OEMAddressTable specifies the KSEG0 and KSEG1 addresses for the kernel
only. KSEG1 addresses are implied. The kernel will use that information to
provide application space mappings to the memory as it loads them.

See here for the layout:


2) Config.bib uses VA.
NANDIMAGE carves a hole into memory where XIP can occur for an associated
bin file.

How do config.bib and OEMAddresstable tie together?
The regions in the config.bib should be mapped somewhere in the
OEMAddressTable - beyond that it is down to you. In general the RAM is
mapped in as a contiguous lump, then the various bus socaces and register