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.

AMIC110: How to build bootloader for AMIC110 ICE board with DDR?

Part Number: AMIC110

#1. How to build the Processor RTOS SDK booloader for different board? 

#2. I want to use AMIIC110 ICE with DDR3 enabled, how to build the bootloader for that?

  • Tony,

    We have a common bootloader for all AM335x and AMIC110  boards. AMIC110 ICE is a cut down version of AM335xICEv2 board.

    The AMIC110 ICE bootloader is same as am335x-evm bootloader binary that we provide as part of the SDK. The common bootloader finds the board ID from I2C EEPROM and performs clocking, pinmux, DDR configuration accordingly.  The board ID that TI programs on AM335x GP EVM, AM335x ICEv2, AMIC110  ICE allows us to provide this single bootloader for all platforms.   For DDRless environment, we had to create a separate build due to lower footprint requirement

    The build procedure for AM335x bootloader (same for amic110) is provided here:

    We provide prebuilt, version of the bootloader at location  pdk_am335x_1_0_13\packages\ti\starterware\binary\bootloader\bin\am335x-evm\gcc.

    IF you want to build from source, here is a reference build log for bootloader for mcspi being built in the latest SDK:

    C:\ti\AM335X~2\pdk_am335x_1_0_13\packages\ti\starterware>gmake bootloader BUILDCFG=boot BOOTMODE=mcspi PLATFORM=am335x-evm PROFILE=release -s KW_BUILD=no
    # Making am335x-evm:a8host:release:device...
    # Compiling am335x-evm:a8host:release:device: qspi_flash.c
    # Compiling am335x-evm:a8host:release:device: lcd_device.c
    # Compiling am335x-evm:a8host:release:device: pixcir_tsc.c
    # Compiling am335x-evm:a8host:release:device: camera_device.c
    # Compiling am335x-evm:a8host:release:device: enet_phy_device.c
    # Compiling am335x-evm:a8host:release:device: nand_device.c
    # Compiling am335x-evm:a8host:release:device: pmic_device.c
    # Compiling am335x-evm:a8host:release:device: pmic_device_tps65910.c
    # Compiling am335x-evm:a8host:release:device: pmic_device_tps65217.c
    # Compiling am335x-evm:a8host:release:device: pmic_device_tps65218.c
    # Compiling am335x-evm:a8host:release:device: clock_synthesizer.c
    #
    # Archiving am335x-evm:a8host:release:device_boot
    #
    # Making am335x-evm:a8host:release:board...
    # Compiling am335x-evm:a8host:release:board: board.c
    # Compiling am335x-evm:a8host:release:board: dcard.c
    dcard.c: In function 'DCARDGetDCardList':
    dcard.c:141:12: warning: 'pDCardList' may be used uninitialized in this function [-Wmaybe-uninitialized]
         return pDCardList;
                ^~~~~~~~~~
    dcard.c: In function 'DCARDGetData':
    dcard.c:247:20: warning: 'pDCardList' may be used uninitialized in this function [-Wmaybe-uninitialized]
             pDCardData = pDCardList[dCardId];
             ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
    dcard.c: In function 'DCARDGetDevDCardId':
    dcard.c:190:12: warning: 'dCardId' may be used uninitialized in this function [-Wmaybe-uninitialized]
         return (dCardId);
                ^
    # Compiling am335x-evm:a8host:release:board: platform.c
    # Compiling am335x-evm:a8host:release:board: pinmux.c
    # Compiling am335x-evm:a8host:release:board: am335x/board_am335x.c
    # Compiling am335x-evm:a8host:release:board: am335x/dcard_am335x.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_gpevm.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_evmsk.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_beaglebone.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_beagleboneblack.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_icev1.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_icev2.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_amic110.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_custom.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_gpevm_pinmux_data.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_evmsk_pinmux_data.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_beaglebone_pinmux_data.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_beagleboneblack_pinmux_data.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_icev1_pinmux_data.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_icev2_pinmux_data.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_amic11x_pinmux_data.c
    # Compiling am335x-evm:a8host:release:board: am335x/am335x_lcd4_dcard.c
    #
    # Archiving am335x-evm:a8host:release:board_boot
    #
    # Making am335x-evm:a8host:release:utils...
    # Compiling am335x-evm:a8host:release:utils: console_utils_uart.c
    # Compiling am335x-evm:a8host:release:utils: console_utils.c
    # Compiling am335x-evm:a8host:release:utils: agraph.c
    # Compiling am335x-evm:a8host:release:utils: i2c_utils.c
    # Compiling am335x-evm:a8host:release:utils: ascii_utils.c
    # Compiling am335x-evm:a8host:release:utils: ramdiskutils.c
    # Compiling am335x-evm:a8host:release:utils: time_utils.c
    # Compiling am335x-evm:a8host:release:utils: dmtimer_utils.c
    # Compiling am335x-evm:a8host:release:utils: display_utils.c
    display_utils.c: In function 'DISPLAYUtilsConfig':
    display_utils.c:97:14: warning: comparison between pointer and integer
         if (NULL != frmBufAddr)
                  ^~
    # Compiling am335x-evm:a8host:release:utils: display_utils_lcdc.c
    #
    # Archiving am335x-evm:a8host:release:utils_boot
    #
    # Making am335x-evm:a8host:release:soc...
    # Compiling am335x-evm:a8host:release:soc: armv7a/gcc/cp15.S
    # Compiling am335x-evm:a8host:release:soc: armv7a/gcc/exceptionhandler.S
    # Compiling am335x-evm:a8host:release:soc: armv7a/gcc/sbl_init.S
    # Compiling am335x-evm:a8host:release:soc: soc.c
    # Compiling am335x-evm:a8host:release:soc: armv7a/startup.c
    # Compiling am335x-evm:a8host:release:soc: armv7a/gcc/cpu.c
    # Compiling am335x-evm:a8host:release:soc: am335x/am335x_chipdb.c
    # Compiling am335x-evm:a8host:release:soc: am335x/hw_am335x_chipdb.c
    # Compiling am335x-evm:a8host:release:soc: am335x/hw_am335x_chipdb_baseaddr.c
    # Compiling am335x-evm:a8host:release:soc: am335x/hw_am335x_chipdb_interrupt.c
    # Compiling am335x-evm:a8host:release:soc: am335x/intc.c
    # Compiling am335x-evm:a8host:release:soc: cache_arm.c
    # Compiling am335x-evm:a8host:release:soc: mmu_arm.c
    # Compiling am335x-evm:a8host:release:soc: am335x/am335x_control.c
    # Compiling am335x-evm:a8host:release:soc: am335x/am335x_prcm.c
    #
    # Archiving am335x-evm:a8host:release:soc_boot
    #
    # Making am335x-evm:a8host:release:dal...
    # Compiling am335x-evm:a8host:release:dal: i2c.c
    # Compiling am335x-evm:a8host:release:dal: uart.c
    # Compiling am335x-evm:a8host:release:dal: gpio.c
    # Compiling am335x-evm:a8host:release:dal: mcspi.c
    # Compiling am335x-evm:a8host:release:dal: gpmc.c
    # Compiling am335x-evm:a8host:release:dal: elm.c
    # Compiling am335x-evm:a8host:release:dal: qspi.c
    # Compiling am335x-evm:a8host:release:dal: edma.c
    # Compiling am335x-evm:a8host:release:dal: hs_mmcsd.c
    # Compiling am335x-evm:a8host:release:dal: dmtimer.c
    # Compiling am335x-evm:a8host:release:dal: epwm.c
    # Compiling am335x-evm:a8host:release:dal: vpfe.c
    # Compiling am335x-evm:a8host:release:dal: dss.c
    # Compiling am335x-evm:a8host:release:dal: dss_coefficients.c
    # Compiling am335x-evm:a8host:release:dal: wdt.c
    # Compiling am335x-evm:a8host:release:dal: ecap.c
    # Compiling am335x-evm:a8host:release:dal: tsc_adc_ss.c
    # Compiling am335x-evm:a8host:release:dal: rtc.c
    # Compiling am335x-evm:a8host:release:dal: dal_misc.c
    # Compiling am335x-evm:a8host:release:dal: dcan.c
    # Compiling am335x-evm:a8host:release:dal: cpsw.c
    # Compiling am335x-evm:a8host:release:dal: cpsw_ale.c
    # Compiling am335x-evm:a8host:release:dal: mdio.c
    # Compiling am335x-evm:a8host:release:dal: mailbox.c
    # Compiling am335x-evm:a8host:release:dal: pruss.c
    # Compiling am335x-evm:a8host:release:dal: lcdc.c
    #
    # Archiving am335x-evm:a8host:release:dal_boot
    #
    # Compiling am335x-evm:a8host:release:bootloader: ./src/sbl_copy.c
    # Compiling am335x-evm:a8host:release:bootloader: ./src/sbl_main.c
    # Compiling am335x-evm:a8host:release:bootloader: ../examples/gpio/gpio_app.c
    # Compiling am335x-evm:a8host:release:bootloader: ./src/sbl_mcspi.c
    ./src/sbl_mcspi.c: In function 'SBLMcspiCopy':
    ./src/sbl_mcspi.c:208:11: warning: unused variable 'num_bin' [-Wunused-variable]
      uint32_t num_bin;
               ^~~~~~~
    # Compiling am335x-evm:a8host:release:bootloader: ./src/am335x/sbl_am335x_platform.c
    ./src/am335x/sbl_am335x_platform.c: In function 'SBLPlatformConfig':
    ./src/am335x/sbl_am335x_platform.c:144:5: warning: implicit declaration of function 'enableModule' [-Wimplicit-function-declaration]
         enableModule(SOC_CM_PER_REGS, CM_PER_TIMER4_CLKCTRL,
         ^~~~~~~~~~~~
    # Compiling am335x-evm:a8host:release:bootloader: ./src/am335x/sbl_am335x_platform_ddr.c
    # Compiling am335x-evm:a8host:release:bootloader: ./src/am335x/sbl_am335x_platform_pll.c
    # Linking into C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/bin/am335x-evm/gcc/bootloader_boot_mcspi_a8host_release.out...
    #
    C:/ti/AM335X~2/gcc-arm-none-eabi-6-2017-q1-update/bin/arm-none-eabi-gcc -mfloat-abi=hard -e Entry -u Entry -u __aeabi_uidiv -u __aeabi_idiv -Wl,--gc-sections --specs=nano.specs -LC:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/device/lib/am335x-evm/a8/release/gcc -LC:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/board/lib/am335x-evm/a8/release/gcc -LC:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/utils/lib/am335x-evm/a8/release/gcc -LC:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/soc/lib/am335x-evm/a8/release/gcc -LC:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/dal/lib/am335x-evm/a8/release/gcc -LC:/ti/AM335X~2/gcc-arm-none-eabi-6-2017-q1-update/arm-none-eabi/lib/hard -LC:/ti/AM335X~2/gcc-arm-none-eabi-6-2017-q1-update/arm-none-eabi/lib/hard/libc_nano.a -LC:/ti/AM335X~2/gcc-arm-none-eabi-6-2017-q1-update/arm-none-eabi/lib/hard/libm.a -LC:/ti/AM335X~2/gcc-arm-none-eabi-6-2017-q1-update/arm-none-eabi/lib/hard/librdimon_nano.a -LC:/ti/AM335X~2/gcc-arm-none-eabi-6-2017-q1-update/arm-none-eabi/lib/hard/libg_nano.a C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/obj/am335x-evm/a8host/release/gcc/boot_mcspi/sbl_copy_boot.o C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/obj/am335x-evm/a8host/release/gcc/boot_mcspi/sbl_main_boot.o C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/obj/am335x-evm/a8host/release/gcc/boot_mcspi/gpio_app_boot.o C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/obj/am335x-evm/a8host/release/gcc/boot_mcspi/sbl_mcspi_boot.o C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/obj/am335x-evm/a8host/release/gcc/boot_mcspi/sbl_am335x_platform_boot.o C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/obj/am335x-evm/a8host/release/gcc/boot_mcspi/sbl_am335x_platform_ddr_boot.o C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/obj/am335x-evm/a8host/release/gcc/boot_mcspi/sbl_am335x_platform_pll_boot.o -Wl,-T C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/examples/gcc/am335x_boot.lds -o C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/bin/am335x-evm/gcc/bootloader_boot_mcspi_a8host_release.out -Wl,--start-group -ldevice_boot -lboard_boot -lutils_boot -lsoc_boot -ldal_boot -lstdc++ -lgcc -lm -lc -lrdimon -Wl,--end-group -Wl,-Map=C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/bin/am335x-evm/gcc/bootloader_boot_mcspi_a8host_release.out.map
    # C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/bin/am335x-evm/gcc/bootloader_boot_mcspi_a8host_release.out created.
    #
    # Generating C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/bin/am335x-evm/gcc/bootloader_boot_mcspi_a8host_release.bin...
    # C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/bin/am335x-evm/gcc/bootloader_boot_mcspi_a8host_release.bin created.
    #
    # Generating C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/bin/am335x-evm/gcc/bootloader_boot_mcspi_a8host_release_ti.bin...
    
    # C:/ti/AM335X~2/pdk_am335x_1_0_13/packages/ti/starterware/binary/bootloader/bin/am335x-evm/gcc/bootloader_boot_mcspi_a8host_release_ti.bin created.
    #
    
    C:

    Regards,

    Rahul