Part Number: PROCESSOR-SDK-AM335X
Other Parts Discussed in Thread: SYSBIOS
We have a device application that we are porting from the Processor RTOS SDK to the Processor Linux SDK. We would like to have the ability to optionally boot into either a SYSBIOS application or Linux Kernel via u-boot environment variable setting.
We have validated the hello_world standalone application that can be built along with U-Boot we are able to run this successfully. Our SYSBIOS application runs fine when loaded in CCS over JTAG and also by loading the .bin image with the Starterware Secondary Bootloader (SBL). However using the go or bootelf commands with the SYSBIOS application hangs with no sign of life and eventually the device resets.
Below is the output of the readelf command for the ELF headers of the hello_world application and the UART_BasicExample that ships with the RTOS SDK. I am trying to determine if there is something specific about the way the SYSBIOS application is linked that is preventing it from running after loading all the sections and jumping to the entrypoint address. Any advice would be helpful. I have validated the that U-Boot has performed the ddr and pll initialization with the same values as the GEL and SBL. The Linux kernel from the SDK Linux boots fine.
jmattfeld@sv-lvg01:~$ readelf -l -h hello_world ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: ARM Version: 0x1 Entry point address: 0x80000001 Start of program headers: 52 (bytes into file) Start of section headers: 71228 (bytes into file) Flags: 0x5000200, Version5 EABI, soft-float ABI Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 2 Size of section headers: 40 (bytes) Number of section headers: 16 Section header string table index: 15 Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align LOAD 0x000000 0x7fff0000 0x7fff0000 0x10243 0x10243 R E 0x10000 GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10 Section to Segment mapping: Segment Sections... 00 .text .rodata 01 jmattfeld@sv-lvg01:~/ti/pdk.../Release(pdk-svice-revd)$ readelf -l -h UART_BasicExample_sviddsAM335x_armExampleProject.out ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: ARM Version: 0x1 Entry point address: 0x80000000 Start of program headers: 52 (bytes into file) Start of section headers: 860668 (bytes into file) Flags: 0x5000400, Version5 EABI, hard-float ABI Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 2 Size of section headers: 40 (bytes) Number of section headers: 23 Section header string table index: 22 Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align EXIDX 0x020440 0x80010440 0x80010440 0x00008 0x00008 R 0x4 LOAD 0x010000 0x80000000 0x80000000 0x18000 0x29108 RWE 0x10000 Section to Segment mapping: Segment Sections... 00 .ARM.exidx 01 .c_int00 .text .rodata .vectors .ARM.exidx .data ti.sysbios.family.arm.a8.mmuTableSection .bss .stack