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.

Linux/PROCESSOR-SDK-AM57X: Compiling the SDK

Part Number: PROCESSOR-SDK-AM57X
Other Parts Discussed in Thread: TMDXIDK5718, TMDSEVM572X, BEAGLEBOARD-X15, AM5728, PMP

Tool/software: Linux

Hi Team,

We have procured TMDXIDK5718 and TMDSEVM572X development boards from TI.

I have downloaded ti-processor-sdk-linux-am57xx-evm-03.03.00.04-Linux-x86-Install.bin and able to run it successfully on Ubuntu 14.04. I have used the setup.sh for installing necessary packages, thanks for making things easy.

My interest is to use same kernel source for two different CPU variants that is AM571x & AM572x.

Following are my questions:

1) How do I choose  the LOADADDR for kernel compilation,

from the u-boot/include/configs/am57xx.h I did not get details about LOADADDR, please help.

2) I have chosen tisdk_am57xx-evm_defconfig for building kernel, from the .config I see it is for SMP kernel that is AM572x, is this the right one?

3) How about kernel config for AM571x based EVM ?? Its just to disable SMP or through u-boot parameters

4) am57xx_evm_defconfig is the right config for building u-boot.

5) I read kernel image files should be part of rfs instead of boot FAT partition, correct me if I am wrong.

Please help me with your inputs.

  • The software team have been notified. They will respond here.
  • Hi Biser
    Thank you, waiting for inputs from SW team.
  • Hi,

    1). This is defined in ti_armv7_common.h:
    #define DEFAULT_LINUX_BOOT_ENV \
    "loadaddr=0x82000000\0" \
    "kernel_addr_r=0x82000000\0" \
    "fdtaddr=0x88000000\0" \
    "fdt_addr_r=0x88000000\0" \
    "rdaddr=0x88080000\0" \
    "ramdisk_addr_r=0x88080000\0" \
    "scriptaddr=0x80000000\0" \
    "pxefile_addr_r=0x80100000\0" \
    "bootm_size=0x10000000\0" \
    "boot_fdt=try\0"
    2). Yes, tisdk_am57xx-evm_defconfig is the correct file for building the kernel.

    3). Use tisdk_am57xx-evm_defconfig file.

    4). See the top level Rules.make (ti-processor-sdk-linux-am57xx-evm-03.03.00.04/Rules.make):
    #u-boot machine
    UBOOT_MACHINE=am57xx_evm_config

    This is the include/configs/am57xx_evm.h file.

    5). Yes, kernel image & device tree file are located in the rootfs /boot folder.

    Best Regards,
    Yordan
  • Hi Yordan,

    Thanks for your response. I have received TMDSEVM572X and able to boot to the Matrix UI app with the pre-loaded images on the SD card.

    Now my main aim is to use the kernel, dtb & u-boot images generated from source compilation. I have replaced the MLO & u-boot.img in "boot" partition of the uSD card with the images generated from source compilation.

    I see kernel stops booting, it just stops at the final print "Starting kernel ..." Following is the boot-log

    U-Boot SPL 2016.05-00319-g8d0b2ca-dirty (May 03 2017 - 17:22:03)
    DRA752-GP ES2.0
    Trying to boot from MMC1
    reading args
    spl_load_image_fat_os: error reading image args, err - -1
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img


    U-Boot 2016.05-00319-g8d0b2ca-dirty (May 03 2017 - 17:22:03 +0530)

    CPU  : DRA752-GP ES2.0
    Model: TI AM5728 BeagleBoard-X15
    Board: AM572x EVM REV A.3A
    DRAM:  2 GiB
    MMC:   no pinctrl for sdr104
    no pinctrl for ddr50
    no pinctrl for sdr50
    no pinctrl for sdr25
    no pinctrl for sdr12
    OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading uboot.env

    ** Unable to read "uboot.env" from mmc0:1 **
    Using default environment

    SCSI:  SATA link 0 timeout.
    AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
    flags: 64bit ncq stag pm led clo only pmp pio slum part ccc apst
    scanning bus for devices...
    Found 0 device(s).
    Net:   
    Warning: ethernet@48484000 using MAC address from ROM
    eth0: ethernet@48484000
    Hit any key to stop autoboot:  0
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    reading uEnv.txt
    607 bytes read in 4 ms (147.5 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc0 ...
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    3395008 bytes read in 181 ms (17.9 MiB/s)
    ** File not found /boot/am57xx-evm-reva3.dtb **
    Kernel image @ 0x82000000 [ 0x000000 - 0x33cdc0 ]

    Starting kernel ...

    Here are my questions:

    1) I have realized that u-boot is looking for rootfs//boot/am57xx-evm-reva3.dtb file, I have copied this file from kernel/arch/arm/boot/dts folder to rootfs/boot of uSD card.

    after this I do not see the print "** File not found /boot/am57xx-evm-reva3.dtb **" but kernel booting stops after the print "Starting kernel ..."

    Do I need to modify any console port changes ?? please give your inputs.

    U-Boot SPL 2016.05-00319-g8d0b2ca-dirty (May 03 2017 - 17:22:03)
    DRA752-GP ES2.0
    Trying to boot from MMC1
    reading args
    spl_load_image_fat_os: error reading image args, err - -1
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img


    U-Boot 2016.05-00319-g8d0b2ca-dirty (May 03 2017 - 17:22:03 +0530)

    CPU  : DRA752-GP ES2.0
    Model: TI AM5728 BeagleBoard-X15
    Board: AM572x EVM REV A.3A
    DRAM:  2 GiB
    MMC:   no pinctrl for sdr104
    no pinctrl for ddr50
    no pinctrl for sdr50
    no pinctrl for sdr25
    no pinctrl for sdr12
    OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading uboot.env

    ** Unable to read "uboot.env" from mmc0:1 **
    Using default environment

    SCSI:  SATA link 0 timeout.
    AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
    flags: 64bit ncq stag pm led clo only pmp pio slum part ccc apst
    scanning bus for devices...
    Found 0 device(s).
    Net:   
    Warning: ethernet@48484000 using MAC address from ROM
    eth0: ethernet@48484000
    Hit any key to stop autoboot:  0
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    reading uEnv.txt
    607 bytes read in 3 ms (197.3 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc0 ...
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    3395008 bytes read in 180 ms (18 MiB/s)
    103020 bytes read in 65 ms (1.5 MiB/s)
    Kernel image @ 0x82000000 [ 0x000000 - 0x33cdc0 ]
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 8ffe3000, end 8ffff26b ... OK

    Starting kernel ...

    2) I have figured it out that pre-loaded images on the uSD card shipped along with EVM are using "am57xx-evm-es2plus.dtb", but compiling the kernel source doesn't generate this file. I am using the kernel source from TI-SDK. I have built kernel for tisdk_am57xx-evm_defconfig, do I need to choose different config??

    3) What is the right machine model of EVM ?

    Machine model: TI AM572x EVM ES2+

    or

    Model: TI AM5728 BeagleBoard-X15

    Please provide your inputs at the earliest.

    Thanks & Regards,

    Vamshi G.

  • Hi,

    1). What is your board revision? It is possible that the reva3 dtb is NOT for your board, this is a very common case, when booting stops at Starting kernel...
    2).
    I have built kernel for tisdk_am57xx-evm_defconfig, do I need to choose different config??

    No, you shouldn't use another defconfig file.
    3). Again see which revision is your board and look for a similar dtb. If none, then you need to use the coomon dts file: am57xx-evm.dts

    Best Regards,
    Yordan
  • Hi Yordan,

    1) Below are the details, are these sufficient for the question board version? if not please let me know from where I can find it.
    CPU : DRA752-GP ES2.0
    Model: TI AM5728 BeagleBoard-X15

    Board: AM572x EVM REV A.3A

    2) You have asked me to build kernel for the config tisdk_am57xx-evm_defconfig, but I see in the dts folder there is not file named am57xx-evm-es2plus.dtb, how to resolve this? as the pre-loaded images on SD are using the mentioned file.

  • Let me jump here...
    I see comments regarding TI boards as well as X15 from Beagleboard.org..
    Just to be sure....your questions are related to TI EVM /IDK or Beagleboard X15?
  • Thanks for coming to help me out, I can say I have purchased this board www.ti.com/.../TMDSEVM572X which is from TI. When I build the u-boot source provided along with the SDK & run it see the following prints

    U-Boot 2016.05-00319-g8d0b2ca-dirty (May 03 2017 - 18:16:36 +0530)

    CPU : DRA752-GP ES2.0
    Model: TI AM5728 BeagleBoard-X15
    Board: AM572x EVM REV A.3A

    please help me confirm what board it is.

    Thanks.
  • thanks for your reply...OK, you have our TI EVM TMDSEVM572x. Yordan will help you from here.
  • Thank you, I am waiting for inputs from Yordan
  • Hi Yordan,

    I have built the following from the source provided with SDK.

    u-boot => am57xx_evm_config

    kernel => tisdk_am57xx-evm_defconfig

    cross compiler => arm-linux-gnueabi-

    build-root => filesystem

    dtb-file = > am57xx-evm.dtb

    I am able to boot to shell, I am afraid because of the following reasons

    1) USB hub on TMDSEVM572X is not getting detected

    2) Following prints from U-boot are bit worry, I did not see these prints with the pre-loaded images received with EVM

    MMC:   no pinctrl for sdr104

    no pinctrl for ddr50

    no pinctrl for sdr50

    no pinctrl for sdr25

    no pinctrl for sdr12

    3) I am still looking for build configurations where I can generate the proper image files (u-boot, am57xx-evm-es2plus.dtb, zImage) to replicate the pre-loaded images functionality received along with EVM

    Please help me. I will be not available for next week. I will be polling this page for inputs from you.

    Thanks in advance.

    VamshiG

  • Dear Team,

    Any update on this post, please help me at the earliest
  • Hi,

    The cross compiler you use is wrong. You should use arm-linux-ghueabihf- NOT arm-linux-gnueabi-

    1) USB hub on TMDSEVM572X is not getting detected

    Do you have all usb drivers insmod-ed in your kernel?

    2) Following prints from U-boot are bit worry, I did not see these prints with the pre-loaded images received with EVM

    This is strange.. Can you try rebuilding your u-boot using the top-level Makefile. Steps for building are:
    cd ~/ti-processor-sdk-linux-am57xx-evm-03.03.00.04
    make u-boot_clean
    make u-boot

    3) I am still looking for build configurations where I can generate the proper image files (u-boot, am57xx-evm-es2plus.dtb, zImage) to replicate the pre-loaded images functionality received along with EVM

    Again try using the toplevel makefile:
    cd ~/ti-processor-sdk-linux-am57xx-evm-03.03.00.04
    make u-boot_clean
    make u-boot ===> This builds u-boot
    make linux_clean
    make linux ===> this builds linux kernel.

    I've verified this to work for my GP EVM.

    Best Regards,
    Yordan
  • Thanks for your response, I will try your steps on 19th of May (right now, I ma in business trip), and update the observation here.
  • Hi Yordan,

    I followed the steps mentioned above, I have prepared boot micro SD card with the tisdk-rootfs-image-am57xx-evm.tar.xz provided with the SDK, with Kernel, U-boot & MLO built from the source compiled. I am able to boot fine to the Matrix GUI application.

    I have the following questions:

    1) I still see the below prints in u-boot, worried about the prints in red

    U-Boot SPL 2016.05-00319-g8d0b2ca-dirty (May 23 2017 - 11:45:11)

    DRA752-GP ES2.0

    Trying to boot from MMC1

    reading args

    spl_load_image_fat_os: error reading image args, err - -1

    reading u-boot.img

    reading u-boot.img

    reading u-boot.img

    reading u-boot.img

    U-Boot 2016.05-00319-g8d0b2ca-dirty (May 23 2017 - 11:45:11 +0530)

    CPU  : DRA752-GP ES2.0

    Model: TI AM5728 BeagleBoard-X15

    Board: AM572x EVM REV A.3A

    DRAM:  2 GiB

    MMC:   no pinctrl for sdr104

    no pinctrl for ddr50

    no pinctrl for sdr50

    no pinctrl for sdr25

    no pinctrl for sdr12

    OMAP SD/MMC: 0, OMAP SD/MMC: 1

    reading uboot.env

    Please give your inputs

    2) I have tried to use the custom root file-system generated using buildroot, I have prepared boot micro SD card with buildroot file-system, I see USB hub is not getting detected. I understand some of the modules are not loaded in this case. Do I need to load a set of modules in sequence during the system boot using a script?

    Waiting for your inputs,

    Thank & regards

    Vamshi G.

  • Hi Yordan,

    Any inputs on my previous response would be a great help.

    Waiting for your inputs. Thanks in advance.
  • Hi,

    The debug prints in 1) shouldn't be a problem.

    2). Yes you should insmod the device drivers in order, because there are dependencies between some of them.
    You can use modprobe --show-depends <module>; you can check the Used by column in lsmod output, you can use modifo, depmod -n or you can cat /lib/modules/4.4.32-gadde2ca9f8/modules.dep, /lib/modules/4.4.32-gadde2ca9f8/modules.order

    Best Regards,
    Yordan
  • Hi Yordan,

    Thanks for your response, I see the following list of modules installed after booting the pre-built images on uSD card.
    Module Size Used by
    bluetooth 314427 2
    ipv6 319670 26
    gdbserverproxy 4597 0
    cryptodev 36165 1
    cmemk 30509 0
    usb_storage 46211 0
    xhci_plat_hcd 4517 0
    xhci_hcd 102954 1 xhci_plat_hcd
    usbcore 191845 3 usb_storage,xhci_plat_hcd,xhci_hcd
    dwc3 60550 0
    joydev 8618 0
    rpmsg_rpc 19680 0
    virtio_rpmsg_bus 12427 1 rpmsg_rpc
    udc_core 11572 1 dwc3
    ahci_platform 2880 1
    libahci_platform 8445 1 ahci_platform
    evdev 9585 3
    libahci 27461 2 libahci_platform,ahci_platform
    gpio_keys 8446 0
    st_drv 18535 0
    omapdrm_pvr 343250 0
    extcon_usb_gpio 2842 0
    libata 195836 3 libahci,libahci_platform,ahci_platform
    leds_gpio 3497 0
    snd_soc_simple_card 7015 0
    snd_soc_omap_hdmi_audio 4541 0
    omap_wdt 4121 0
    phy_omap_usb2 5693 2
    rtc_palmas 5019 0
    palmas_pwrbutton 3483 0
    extcon_palmas 5509 0
    ti_vip 25729 0
    pixcir_i2c_ts 6695 0
    mt9t11x 14669 0
    snd_soc_tlv320aic3x 41480 1
    rtc_ds1307 9182 0
    ti_vpe 42041 0
    dwc3_omap 4516 0
    ti_vpdma 14682 2 ti_vip,ti_vpe
    extcon 13349 4 dwc3,extcon_palmas,dwc3_omap,extcon_usb_gpio
    rtc_omap 7449 0
    omap_rng 4533 0
    rng_core 8050 2 omap_rng
    debugss_kmodule 6702 0
    omap_remoteproc 7509 4
    remoteproc 27139 2 omap_remoteproc,rpmsg_rpc
    virtio 7364 2 remoteproc,virtio_rpmsg_bus
    virtio_ring 11848 2 remoteproc,virtio_rpmsg_bus
    root@am57xx-evm:~#


    Please let me know what all the modules sufficient for USB 3.0 hub for attaching SCSI devices.

    Thanks & Regards,
    Vamshi G.