Instead of using the UBL or U-Boot I want to write my program into the SPI Flash and execute it from the external mDDR.
Using AISgen for this task works as long as the program is executed from the internal RAM. As soon as I change the linker settings to use the external RAM the program does not boot.
The Bootloader documentation states that the entry-point and the memory addresses are extracted from the ELF/COFF file. It also states that the mDDR has to be configured manually with AISgen if the linker uses mDDR locations.
So I configured the mDDR and PLL1 settings in AISgen and those settings seem to work as with the internal RAM version I am able to write/read to the mDDR addresses (if I disable the "Configure DDR" checkbox in AISgen the memory is not accessable by the program).
Maybe the code of the SPI Flash is not copied correctly to the mDDR locations? I am using the "AISgen for D800K006 Bootloader v 1.7c". The board is a LogicPD Zoom eXperimenter kit with an AM1808 (device type: d800k004).
The device AISgen config is here:
0361.ARM-mDDR132MHz.zip
The DDR part is (mDDR, 132 MHz):
DRPYC1R: 0x000000C4
SDCR: 0x0A034622
SDCR2: 0x00000000
SDTIMR1: 0x184929C8
SDTIMR2: 0x380FC700
SDRCR: 0x00000407
The PLL0 und PSC configurations do not seem to be necessary as the internal RAM version of my program is able to access the mDDR without these sections too.
The AIS output file is flashed with "sfh_OMAP-L138.exe -flash_noubl ...". The version of the tool is 1.67.
Thanks for your help.