Hi Newsgroup,
I am developing a CE 4.2 image for a MIPS based platform, and have a few
problems with getting the image to start up. I think I need to adjust some
of the settings in the CONFIG.BIB file, but haven't found the documentation
to be very clear at this stage. Perhaps I can't do what I want to do.
Our platform is based on the VR4121 processor. This starts executing at
9FC00000. We have 32MB of flash available, from 9E000000 to 9FFFFFFF. The
most obvious configuration needed in the CONFIG.BIB file would be:
MEMORY
NK 9E000000 02000000 RAMIMAGE ;; 32MB length
;; Reset vector is at 9FC00000
RESERVE 9FC00000 00002000
RAM 80006000 00FFA000 RAM ; default 16MB configuration
CONFIG
COMPRESSION=ON
PROFILE=OFF
KERNELFIXUPS=ON
RESETVECTOR=9FC00000
However, this doesn't work as expected--the WinCE image does not startup.
This is because the the VR4121 has a register that controls the size of
available ROM memory, and by default this register is set to indicate 16MB.
Not too difficult to solve, just execute some code that sets this register
appropriately. So, I add the required assembler code to the StartUp
function, and rebuild the kernel. But--and this is what I am looking for
some help with--how do I ensure that this StartUp function gets placed in
the "top" 16MB of flash when I build the ROM image?
If I use the CONFIG.BIB as above, ROMIMAGE.EXE will place StartUp somewhere
such as 9E002D42--which is in the "bottom" 16MB of flash, which the VR4121
can't initially "see." There is the correct instruction at the reset vector
which jumps down to the StartUp.
I thought that my solution would be to locate the StartUp function somewhere
in the top 16MB of flash, and then have that function jump to a known
location, say 9FC10000. Then, if I changed the RESETVECTOR parameter to be
9FC10000, I would get the WinCE supplied jump down to the correct location
for the OS image. Just can't figure out how to do that.
Any help or advice would be appreciated.
Jon Pawley