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.

RTOS/AM3358: PocketBeagle SD card boot

Part Number: AM3358


Tool/software: TI-RTOS

Hello,

I am trying to boot into my own boot-loader on the new PocketBeagle. The PocketBeagle uses the AM3358 Chip and has an on-board SD card reader. I have been able to boot into the linux distro that is suggested by the beagle board website. Now I want to boot into my own code. 

According to the manual section 26.1.6 (26.1.8.5 for SD booting), I can boot into this code from an SD card with the FAT filesystem if I name the file MLO. Now, if I got my registers right in the assembly code, then the USR0, USR1, USR2, and USR3 LEDs on the PocketBeagle should light up. (See here USR to PIN Mappings) This is because the GPIO1_21, 22, 23, and 24 pins correspond to those 4 LEDs, and those are the pins that I am (trying to) set high.

But the LEDs do not light up. So I'm doing something wrong, but I can't figure it out. Am I mistaken to think that I can simply run code in the MLO stages? Or do I somehow need to specify the U-Boot file and finish the boot procedure?

My assembly code and make file can be found here

https://stackoverflow.com/questions/48433672/how-can-i-boot-bare-metal-from-sd-card-on-pocketbeagle

I have tried the starterware with no success... I can't even get it to compile without a million different failures.

Any help understanding this process is appreciated. If there are learning materials I can get to help me learn the boot process, please let me know. 

Edit: See first reply for more info.

Edit 2: Solved the issue. Solution posted on stack overflow link above.

  • Edit:

    I now tried booting in Raw Mode (Per Manual Section 26.1.8.5.5).

    Attached is the assembled code in a hex form, as well as the assembly file. I used HxD to write the binary to the first <xx> bytes of memory on my SD card. (This means it doesn't have a file system).

    I created a TOC as per the manual; this can be seen by looking at the first 512 bytes of the hex file. 

    I'm at the point where I think my gcc compiler isn't working... but I don't really know how to check. I looked at the code it produced from a decompiler, and it was accurate, so the compiled code is correctly targetting ARM. I am setting the enabled register, and setting the register high. Why isn't this outputting high?

    40 00 00 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 48 53 45 54 54 49 4E 47 53 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF C1 C0 C0 C0 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 00 00 00 00 04 2F 40 50 00 9F E5 05 1D A0 E3 01 00 80 E0 48 10 9F E5 00 10 80 E5 3C 00 9F E5 4D 1F A0 E3 01 00 80 E0 00 10 A0 E3 00 10 80 E5 28 00 9F E5 65 1F A0 E3 01 00 80 E0 00 10 E0 E3 00 10 80 E5 01 28 A0 E3 01 20 42 E2 00 00 52 E3 F6 FF FF 0A 00 10 A0 E3 00 10 80 E5 F3 FF FF EA 00 C0 04 48 01 01 01 01 00 00 00 00 00 00 00 00
    boot.asm

  • PocketBeagle is not supported by TI. Please direct your questions to www.beagleboard.com