This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

WINCE 7 RAM reduction

Other Parts Discussed in Thread: AM3517

I am having trouble booting Win CE 7 on a custom board which has half the RAM of the reference board.

I started with BSP_WINCE_ARM_A8_02_30_00 on the Logic PD Zoom AM3517 eXperimenter Kit, and we got our first board to come up OK based on that design. Then we spun the design into a lower cost version which has half of the DRAM (2 512bit DDR2 (x16) instead of 2 1Gbit DDR2 (x16)).

I made the following changes to the OS design and can get past XLDR/Bootloader which is flashed into NAND, but when I download the OS to the board, it either hangs just after calling OEMEnumExtensionDRAM, or (with other changes) it goes on further to load drivers then gets debug check issues in the virtual memory management. The modifications listed below result in the 'hang after OEMEnumExtensionDRAM'

Can anyone see what I might have done wrong, or missed?

-----------------------------------------------------------------------
Changes to addrtab_cfg.inc
-----------------------------------------------------------------------

    DCD     0x80000000, 0x80000000, 128     ; SDRAM ;; was 256

    DCD     0x8C300000, 0x08000000,   1     ; NAND Registers (FIFO)  ;; was 0x9C300000


-----------------------------------------------------------------------
Changes to bsp.inc
-----------------------------------------------------------------------
Changed 8FExxxxxx to 87Exxxxxx in the following places:

BSP_PTES_PA             EQU     (0x87EE0000)

IMAGE_EBOOT_STACK_CA    EQU     (0x87EE4000)



-----------------------------------------------------------------------
Changes to image_cfg.h
-----------------------------------------------------------------------

#define DEVICE_RAM_SIZE                0x08000000 // was 0x10000000


#define IMAGE_WINCE_CODE_SIZE          0x027FE000 // was 0x04FFE000
#define IMAGE_WINCE_RAM_CA             0x82800000 // was 0x85000000
#define IMAGE_WINCE_RAM_SIZE           0x01000000 // was 0x03800000
#define IMAGE_WINCE_DISPLAY_CA         0x87000000 // was 0x8F000000


#define IMAGE_WINCE_RAM_DISK_CA_HEX    84000000 // was 8C000000   //

#define IMAGE_EBOOT_CODE_CA            0x87E00000 // was 0x8FE00000

#define IMAGE_EBOOT_DATA_CA            0x87E80000 // was 0x8FE80000


-----------------------------------------------------------------------
Changes to \bootloader\xldr\platform.c
-----------------------------------------------------------------------

#define    EMIF4_CFG_IBANK            0x2 // was 0x3


-----------------------------------------------------------------------
Changes to \bootloader\eboot\nand\ebootnand.bib
-----------------------------------------------------------------------

Changed 8FExxxxxx to 87Exxxxxx in the following places:

    EBOOTND    87E00000  00040000  RAMIMAGE
    RAM        87E80000  00050000  RAM
    STACK      87EE0000  00020000  RESERVED

    ROMSTART=87E00000


  • Hi,

    Is there a file with the name image_cfg.inc?

    Make sure your config.bib specified to load the OS in the first 128MB region.

    Hope you have taken care of configuring SDRAM for 128MB in EBOOT or X-Loader.

    Regards,

    GSR

  • Thanks for your response 1258021. 

    I'm out of the office at the moment but will check back on that tomorrow.

    The OS seems to launch, which to me implies that I got the "right half" of the 256.  Or that it wrapped around - in which case I think the whole image would be relocated to the lower half.

    --Jason

  • I rolled back to earlier code and re-applied these changes and now it works. 

    I must have broken something somewhere else.

    Thanks for looking anyway!

      --Jason