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.

PROCESSOR-SDK-AM335X: Dual boot SYSBIOS or Linux SDK via U-Boot

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