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.
Hi all,
Iam trying to get our customized hardware to run. The board has an OMAP-L138 on it and a SPI1 connected external flash.
The steps I've done so far:
* Compiled a simple hello world program which shall toggle a pin (located in IRAM).
* Created the AIS binary boot image according to the bootloader pdf sprab41d.pdf
* flashed the boot image at address 0 into the external SPI1 flash, read it back and compared it to the generated one (it should be equal).
Now if a reset happens the omap rom code seems to read out the whole image from SPI1 flash (I can see this via a SPI logic analyzer) but doesn't start the application.
This is only the simple case: My final goal is to get an application working which is located in an external SRAM (connected to EMIFA). This already runs using the gel file and JTAG emulator. For this I also have to configure PSCs, PINMUXs and SDRAM within the AISgen tool for the bootloader image. This is the next step. I've tried it before but than the omap rom code aborts on the stage where it configures the PSC controller (I can also see this via the SPI logic analyzer Iam using) because the SPI communication then just interrupts nearly at the image offset where the PSC configuration is located.
Can you help me on this issue? I've attached my AISgen cfg for the both (simple and final) cases. If you need additional information please let me know.
Thanks for your help.
Kind Regards,
Steve
Boot Mode=SPI0 Flash Boot Speed=2 Flash Width=0 Flash Timing=3ffffffc Configure Peripheral=True Configure PLL0=True Configure SDRAM=False Configure PLL1=False Configure DDR2=False Configure LPSC=False Configure Pinmux=False Enable CRC=False Specify Entrypoint=False Enable Sequential Read=False Use 4.5 Clock Divider=False Use DDR2 Direct Clock=False Use mDDR=True ROM ID=2 Device Type=1 Input Clock Speed=20 Clock Type=0 PLL0 Pre Divider=1 PLL0 Multiplier=15 PLL0 Post Divider=1 PLL0 Div1=1 PLL0 Div3=3 PLL0 Div7=6 PLL1 Multiplier=20 PLL1 Post Divider=2 PLL1 Div1=1 PLL1 Div2=2 PLL1 Div3=3 Entrypoint=11808560 SDRAM SDBCR=4521 SDRAM SDTMR=31114620 SDRAM SDRSRPDEXIT=7 SDRAM SDRCR=30e DDR2 PHY=0 DDR2 SDCR=0 DDR2 SDCR2=0 DDR2 SDTIMR=0 DDR2 SDTIMR2=0 DDR2 SDRCR=0 LPSC0 Enable=3+ LPSC0 Disable= LPSC0 SyncRst= LPSC1 Enable=3+ LPSC1 Disable= LPSC1 SyncRst= Pinmux=5:11000000+6:10111111+7:10000+8:11111111+9:11111111+11:11111111+12:11111111+13:80+ App File String=D:\cc_workspace\hello_world_simple\Release\hello_world_simple.out; AIS File Name=D:\cc_workspace\hello_world_simple\Release\hello_world_simple.bin
Boot Mode=SPI0 Flash Boot Speed=2 Flash Width=0 Flash Timing=3ffffffc Configure Peripheral=True Configure PLL0=True Configure SDRAM=True Configure PLL1=False Configure DDR2=False Configure LPSC=True Configure Pinmux=True Enable CRC=False Specify Entrypoint=False Enable Sequential Read=False Use 4.5 Clock Divider=False Use DDR2 Direct Clock=False Use mDDR=True ROM ID=2 Device Type=1 Input Clock Speed=20 Clock Type=0 PLL0 Pre Divider=1 PLL0 Multiplier=15 PLL0 Post Divider=1 PLL0 Div1=1 PLL0 Div3=3 PLL0 Div7=6 PLL1 Multiplier=20 PLL1 Post Divider=2 PLL1 Div1=1 PLL1 Div2=2 PLL1 Div3=3 Entrypoint=40008560 SDRAM SDBCR=4521 SDRAM SDTMR=31114620 SDRAM SDRSRPDEXIT=7 SDRAM SDRCR=30e DDR2 PHY=0 DDR2 SDCR=0 DDR2 SDCR2=0 DDR2 SDTIMR=0 DDR2 SDTIMR2=0 DDR2 SDRCR=0 LPSC0 Enable=0+1+2+3+4+5+9+10+11+12+15+ LPSC0 Disable= LPSC0 SyncRst= LPSC1 Enable=0+1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+24+25+26+27+28+29+30+31+ LPSC1 Disable= LPSC1 SyncRst= Pinmux=5:11000000+6:10111111+7:10000+8:11111111+9:11111111+11:11111111+12:11111111+13:80+ App File String=H:\laser\boot\kleiser_20110921\aisgen\hello_world_simple.out AIS File Name=H:\laser\boot\kleiser_20110921\aisgen\hello_world_simple.bin
Hi Steve, thanks for the detailed information.
Have you had a chance to check out this wiki: http://processors.wiki.ti.com/index.php/OMAP-L138_Bootloader
It covers the basics of exactly what you are trying to do. If that doesn't help, print out the output of the debug GEL file and we can see what the issue is.
Jeff