Part Number: PROCESSOR-SDK-AM437X
Hello E2E community,
I need to implement a bootloader on my AM4377-based custom board. It has SDRAM slightly different from IDK or GPEVM board, it is DDR3L MT41K256M16TW-107 AAT.
The SDRAM timings are different from IDK/GPEVM boards, I use specific gel files and my projects run fine on this board when loaded from CCS. I can prepare the bootable MicroSD card for IDK board and it works like a charm (I put my MLO/app files). But when I take "ti\pdk_am437x_1_0_14\packages\ti\starterware\bootloader" as example, adjust timings, rebuild with this command:
gmake bootloader BUILDCFG=boot PLATFORM=am43xx-evm BOOTMODE=mmcsd
and put the binary with TI header to the SD card:
bootloader_boot_mmcsd_a9host_debug_ti.bin -> MLO
Then nothing is working! My board just keeps complete silent about any attempts to boot from SD card. I don't see any messages! Neither on console nor on serial port.
The SYSBOOT lines on my custom board to select the boot devices are set to the EXACT same values as for IDK_AM437x board.
As shown below, on IDK_AM437x board only signals SYSBOOT[3,4,14] are connected to 3.3VDC, others are grounded.
On my custom board they are routed exactly same way:
I check the CTRL_STS register:
IDK_AM437x board, CTRL_STS (0x44e10040) = 00400318
Custom board, CTRL_STS (0x44e10040) = 00400308
CTRL_STS register on my board is different (1 bit is different), but I tried to set it through CCS to the same value as IDK board and it doesn't change anything.
I'm trying to understand what's wrong with my boot loader and added debug messages to "starterware\bootloader\src\sbl_main.c"
int main(void)
{
uint32_t status;
uint32_t imageSize;
printf("Hello world, from the bootloader!\n"); /* !!! */
status = BOARDInit(NULL);
if(status != S_PASS)
{
printf("** BOARDInit() returns error!\n"); /* !!! */
return 1;
}
But I don't see any messages during board boot.
** My questions **
1. How do I debug the boot loader?
2. Where should I set the breakpoint?
3. Even if my SDRAM timings are wrong, I still have to see at least printf() messages, why don't I see them?
Any help will be very appreciated as I'm really stuck and not sure how to resolve this issue and make my custom board boot from MMCSD.
Thanks a lot!




