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/AM5728: How to create bootable SD card for AM572x EVM with examples?

Part Number: AM5728
Other Parts Discussed in Thread: SYSBIOS,

Tool/software: TI-RTOS

Hello,

I've downloaded the latest RTOS SDK (http://software-dl.ti.com/processor-sdk-rtos/esd/AM57X/latest/index_FDS.html) I've successfully built it the DSS bare metal example (displayDssBareMetal) and have the output file DisplayDss_main_bm.oa15fg

I want to put that code on a SD card and run the code, but I can't find any instructions. Have I missed it or not yet found the right keywords for the search?

Thanks,

Scott

  • Hi,

    See the approach used with the diagnostics:
     

    Best Regards,
    Yordan

  • Hello,

    Yes, I see that documentation. It ends up creating an SD card that contains basically the same as the supplied sd_card_img image. However, those instructions don't mention how to add my own image to the SD card. (In this case the supplied displayDssBareMetal which created DisplayDss_main_bm.oa15fg.)

    Did I overlook those steps in the instructions?

    Thanks,

    Scott

  • Scott,

    DisplayDss_main_bm.oa15fg =====> This is oa15fg file extension looks to be an object file, not the executable. What you need to load and run on A15 is the executable with extension xa15fg.

    If you want to run it from the SD card, you also need to use the executable as the starting one, convert it into an "APP" file and boot it with a MLO. Please check: http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_Foundational_Components.html#am57x Also see: 4.6.3.2.6. Test Application. There is also a post script for each CCS project to convert an .out file into APP, syntax: 

    ${TI_PDK_INSTALL_DIR}/packages/pdkAppImageCreate.bat ${TI_PDK_INSTALL_DIR}/packages ${CG_TOOL_ROOT} ${PROJECT_LOC}/${ConfigName} ${ProjName} AM572x arm

    Note, the converted APP for DSS may not work properly due to the DSS clock is not enable by bootloader (in CCS load case, it is enabled by CCS GEL file). See https://e2e.ti.com/support/processors/f/791/t/814725

    Regards, Eric

  • Hello Eric,

    The answer provided some useful information, but it still doesn't run.

    I can successfully build "pdk_am57xx_1_0_15/packages/ti/drv/vps/examples/dss/displayDssBareMetal".

    I can combine it with SBL, copy the MLO and app to an SD card and boot it. However, the code appears to crash.

    Through trial and error I determined the displayDssBareMetal startup code isn't compatible with SBL. 

    If I explicitly call main in DisplayDss_main_bm.c, it works but very little is functional because calling main directly completely bypasses the required startup.

    It appears the displayDssBareMetal example code should be used instead of the SBL code. Both sources start with basic board startup (as expected) However, I can't find any documentation how to use displayDssBareMetal instead of SBL. I've tried replacing the SBL code with displayDssBareMetal, but the result is far too big.

    I've tried running vps_examples_DisplayDssBareMetal_a15_0_release.xa15fg on a running system, but it crashes. Using GDB I've again determined that code is trying to initialize the board but this causes problems since the board is already initialized.

    My goal is to display an image in u-boot. I need the DSS initialization sequence. The technical reference manual section 11.1.4 "Display Subsystem Programming Guide" has some information but surprisingly not enough to initialize the graphics output. The displayDssBareMetal example code should have the information, but it's layers and layers of hardware independent code that is at best very difficult to reverse engineer. If I could get that code running, I would have a starting point. I can't find documentation how to run example the example code. Documentation to initialize the DSS would be best.

    Thanks,

    Scott

  • Scott,

    Your goal is to display an image in U-boot and I thought there is no DSS support in existing u-boot so you are looking a way for it. There is bare metal DSS code in Processor SDK RTOS as you tried to combine into U-boot and found it is difficult. There should also Linux kernel code to setup DSS and not sure if you explore the possibility of that. Let me check with my colleague if any recommended way for this.

    Regards, Eric

  • Scott,

    Please see this thread for more information:

    https://e2e.ti.com/support/processors/f/791/t/684233?tisearch=e2e-sitesearch&keymatch=uboot%20logo

    As you'll see and may have already discovered, Display in U-Boot is currently not supported as a use case. However, I believe many have been able to get it to work without support using the referenced document and patches. I believe the patches in particular will be very useful to you and provide the DSS init information you are seeking.

    This is really the best we can do at this time to support display in U-Boot.

  • Hello Eric,

    Please read the question before providing unrelated answers. Yes, I'm trying to display an image in u-boot. I know that's not currently supported with existing code. The link you provided is for a very old kernel. Many of the suggested changes are already implemented in the current code. However, the missing part is how to initialize the display subsystem. The Technical Reference Manual doesn't provide this information, so I'm trying to use example "displayDssBareMetal" code.

    For this question, I've asked how to run the provided example code on an EVM. Is this supported or documented?

    Also, because the "bare metal" contains it's own hardware initialization, the code needs to run without CSS or SBL. Is this supported or documented?

    Thanks,

    Scott

  • Scott,

    Sorry for the confusion! We tried to help explaining that DSS support is not available in U-boot. 

    "For this question, I've asked how to run the provided example code on an EVM. Is this supported or documented? Also, because the "bare metal" contains it's own hardware initialization, the code needs to run without CSS or SBL. Is this supported or documented?"

    All the documentation is here for DSS (part of VPS driver):http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_device_drv.html#vps-drivers. The  displayDssBareMetal is tested by loading the out file standalone with JTAG/CCS approach. The GEL file is used. There is no SBL used for this case.

    Regards, Eric 

  • Hi Eric,

    I've tried the instructions here: software-dl.ti.com/.../index_device_drv.html

    This is supposed to build & run the displayDssBareMetal example on an am572x evm using CSS, but it doesn't work. The PC doesn’t start at either the correct starting point “Entry” or even “main”. CCS can’t find the correct starting address “Entry” in the symbol tables. The file “csl_a15_init.asm” doesn’t appear in the map, which contains “Entry”.

    It shouldn't take so much time and effort to run a supplied program example on an EVM. There should be complete and correct instructions somewhere, I just haven't found it yet.

    Thanks,

    Scott

  • Hi,

    It is a surprise that displayDssBareMetal example doesn't work as it is. This is tested by our system test team daily before release. Please confirm the info below I can try:

    • Processor SDK RTOS 6.0 release, pdk_am57xx_1_0_15
    • displayDssBareMetal
    • A15 CPU
    • AM572x GP EVM
    • Application built with "gmake vps", tested with CCS/JTAG approach

    Instruction: http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_device_drv.html#vps-drivers

    Regards, Eric

  • Hi Eric,

    I'm using
       ti-processor-sdk-rtos-am57xx-evm-06.00.00.07
       CCS9.0.1.00004_win64
       pdk_am57xx_1_0_15/packages/ti/drv/vps/examples/dss/displayDssBareMetal
       core A15
       SOC AM572X
       AM57XX IDK EVM (board says rev 1.3b)

    Section6.31.5 gives steps to build the code, but no information how to execute the .xa15fg file.

    Section 6.31.7 gives the steps to load the project in CCS, build, and execute. Following these steps shows warnings during the build and CCS can't run the code.

    There are no instructions or hints about building the example outside of CCS and loading with CCS/JTAG. I just search for "jtag" on the web page and it's not there.

    Thanks,

    Scott

  • Hi Eric,

    Why is this question marked "resolved"?

    Using the supplied instructions and the supplied example code, it doesn't yet run on an EVM.
    This problem should be fixed before this question is marked "resolved".

    Thanks,

    Scott

  • I'm working with Scott on this, and also cannot get it to build properly.  Note that we are building from the CCS project, not from the shell ("gmake vsp"), so maybe this accounts for why it is not building for us. 

    It appears the issue is with the linker command file.  The undeclared memory regions are defined in C:\TI\pdk_am57xx_1_0_15\packages\ti\build\am572x\config_arm572x_a15.bld.   And this is included by the XDC tools, as I see it in the build output.  But I can’t figure out why these sections are not found.

    Here is my build log.  Do you see any issue?


    **** Build of configuration Debug for project vps_displayDssBareMetal_idkAM572x_armExampleProject ****

    "C:\\TI\\ccs901\\ccs\\utils\\bin\\gmake" -k -j 8 all -O

    Building file: "C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/examples/ccsprojects/common/bios/utils/bspCommonBIOS_a15.cfg"
    Invoking: XDCtools
    "C:/TI/ccs901/xdctools_3_55_00_11_core/xs" --xdcpath="C:/TI/bios_6_75_02_00/packages;C:/TI/pdk_am57xx_1_0_15/packages;C:/TI/edma3_lld_2_12_05_30E/packages;C:/TI/ipc_3_50_03_05/packages;C:/TI/ndk_3_60_00_13/packages;C:/TI/uia_2_30_01_02/packages;" xdc.tools.configuro -o configPkg -t gnu.targets.arm.A15F -p ti.platforms.evmAM572X -r debug -b "C:/TI/pdk_am57xx_1_0_15/packages/ti/build/am572x/config_am572x_a15.bld" -c "C:/TI/ccs901/ccs/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major-win32" -v "C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/examples/ccsprojects/common/bios/utils/bspCommonBIOS_a15.cfg"
    #
    # making package.mak (because of package.bld) ...
    C:/TI/ccs901/xdctools_3_55_00_11_core/xs -Dxdc.path="C:/TI/bios_6_75_02_00/packages;C:/TI/pdk_am57xx_1_0_15/packages;C:/TI/edma3_lld_2_12_05_30E/packages;C:/TI/ipc_3_50_03_05/packages;C:/TI/ndk_3_60_00_13/packages;C:/TI/uia_2_30_01_02/packages;C:/TI/ccs901/xdctools_3_55_00_11_core/packages;.." -Dxdc.root=C:/TI/ccs901/xdctools_3_55_00_11_core -Dxdc.hostOS=Windows -Dconfig.importPath=".;C:/TI/bios_6_75_02_00/packages;C:/TI/pdk_am57xx_1_0_15/packages;C:/TI/edma3_lld_2_12_05_30E/packages;C:/TI/ipc_3_50_03_05/packages;C:/TI/ndk_3_60_00_13/packages;C:/TI/uia_2_30_01_02/packages;C:/TI/ccs901/xdctools_3_55_00_11_core/packages;..;C:/TI/ccs901/xdctools_3_55_00_11_core;C:/TI/ccs901/xdctools_3_55_00_11_core/etc" -Dxdc.bld.targets="" -DTOOLS= -f C:/TI/ccs901/xdctools_3_55_00_11_core/packages/xdc/bld/bld.js ./config.bld package.bld package.mak
    #
    # generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
    C:/TI/ccs901/xdctools_3_55_00_11_core/xs -Dxdc.path="C:/TI/bios_6_75_02_00/packages;C:/TI/pdk_am57xx_1_0_15/packages;C:/TI/edma3_lld_2_12_05_30E/packages;C:/TI/ipc_3_50_03_05/packages;C:/TI/ndk_3_60_00_13/packages;C:/TI/uia_2_30_01_02/packages;C:/TI/ccs901/xdctools_3_55_00_11_core/packages;.." -Dxdc.root=C:/TI/ccs901/xdctools_3_55_00_11_core -Dxdc.hostOS=Windows -Dconfig.importPath=".;C:/TI/bios_6_75_02_00/packages;C:/TI/pdk_am57xx_1_0_15/packages;C:/TI/edma3_lld_2_12_05_30E/packages;C:/TI/ipc_3_50_03_05/packages;C:/TI/ndk_3_60_00_13/packages;C:/TI/uia_2_30_01_02/packages;C:/TI/ccs901/xdctools_3_55_00_11_core/packages;..;C:/TI/ccs901/xdctools_3_55_00_11_core;C:/TI/ccs901/xdctools_3_55_00_11_core/etc" -Dxdc.bld.targets="" -DTOOLS= -f xdc/services/intern/cmd/build.xs -m package/package.xdc.dep -i package/package.xdc.inc package.xdc
    #
    # configuring bspCommonBIOS_a15.xa15fg from package/cfg/bspCommonBIOS_a15_pa15fg.cfg ...
    C:/TI/ccs901/xdctools_3_55_00_11_core/xs -Dxdc.path="C:/TI/bios_6_75_02_00/packages;C:/TI/pdk_am57xx_1_0_15/packages;C:/TI/edma3_lld_2_12_05_30E/packages;C:/TI/ipc_3_50_03_05/packages;C:/TI/ndk_3_60_00_13/packages;C:/TI/uia_2_30_01_02/packages;C:/TI/ccs901/xdctools_3_55_00_11_core/packages;.." -Dxdc.root=C:/TI/ccs901/xdctools_3_55_00_11_core -Dxdc.hostOS=Windows -Dconfig.importPath=".;C:/TI/bios_6_75_02_00/packages;C:/TI/pdk_am57xx_1_0_15/packages;C:/TI/edma3_lld_2_12_05_30E/packages;C:/TI/ipc_3_50_03_05/packages;C:/TI/ndk_3_60_00_13/packages;C:/TI/uia_2_30_01_02/packages;C:/TI/ccs901/xdctools_3_55_00_11_core/packages;..;C:/TI/ccs901/xdctools_3_55_00_11_core;C:/TI/ccs901/xdctools_3_55_00_11_core/etc" -Dxdc.bld.targets="" -DTOOLS= xdc.cfg bspCommonBIOS_a15.xa15fg package/cfg/bspCommonBIOS_a15_pa15fg.cfg package/cfg/bspCommonBIOS_a15_pa15fg
    # !!! Current build BOARD is evmAM572x !!!
    SoC Type is am572x
    SoC Type is am572x
    generating custom ti.sysbios library makefile ...
    Linking with library C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/./lib/am572x/a15/release/vps_examples_utility.aa15fg
    Linking with library C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/./lib/am572x/a15/release/fvid2.aa15fg
    Linking with library C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/./lib/am572x/a15/release/vps_boards.aa15fg
    Linking with library C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/./lib/am572x/a15/release/vps_osal_tirtos.aa15fg
    Linking with library C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/./lib/am572x/a15/release/vps_platforms.aa15fg
    Linking with library C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/./lib/am572x/a15/release/vpsdrv.aa15fg
    Linking with library C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/./lib/am572x/a15/release/vpslib.aa15fg
    Linking with library C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/./lib/am572x/a15/release/vps_devices.aa15fg
    Linking with library C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/./lib/am572x/a15/release/vps_common.aa15fg
    Inside EDMA3 Drv Sample getLibs
    will link with ti.sdo.edma3.drv.sample:lib/tda2xx-evm/a15/debug/edma3_lld_drv_sample.aa15fg
    Linking with library ti.board:./lib/evmAM572x/a15/release/ti.board.aa15fg
    Linking with library C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/pm/./lib/am572x/a15/release/pm_hal.aa15fg
    Linking with library C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/pm/./lib/am572x/a15/release/pm_lib.aa15fg
    Linking with library C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/pm/./lib/am572x/a15/release/pm_rtos.aa15fg
    Linking with library ti.drv.i2c:./lib/am572x/a15/release/ti.drv.i2c.aa15fg
    Linking with library ti.drv.uart:./lib/am572x/a15/release/ti.drv.uart.aa15fg
    Linking with library ti.drv.mmcsd:./lib/am572x/a15/release/ti.drv.mmcsd.aa15fg
    Linking with library ti.osal:./lib/tirtos/am572x/a15/release/ti.osal.aa15fg
    Inside EDMA3 Drv getLibs
    will link with ti.sdo.edma3.drv:lib/a15/debug/edma3_lld_drv.aa15fg
    Inside EDMA3 RM getLibs
    will link with ti.sdo.edma3.rm:lib/tda2xx-evm/a15/debug/edma3_lld_rm.aa15fg
    Linking with library ti.csl:./lib/am572x/a15/release/ti.csl.aa15fg
    Starting build of library sources ...
    Build of libraries done.
    C:/TI/ccs901/xdctools_3_55_00_11_core/bin/sed 's"^\"\(package/cfg/bspCommonBIOS_a15_pa15fgcfg.cmd\)\""\"C:/Users/a0828166/Documents/workspace_v9-AM57x/vps_displayDssBareMetal_idkAM572x_armExampleProject/Debug/configPkg/\1\""' package/cfg/bspCommonBIOS_a15_pa15fg.xdl > linker.cmd
    C:/TI/ccs901/xdctools_3_55_00_11_core/bin/setdate -r:max package/cfg/bspCommonBIOS_a15_pa15fg.h compiler.opt compiler.opt.defs
    C:/TI/ccs901/xdctools_3_55_00_11_core/bin/rm -f package/cfg/bspCommonBIOS_a15_pa15fg.oa15fg
    #
    # cla15fg package/cfg/bspCommonBIOS_a15_pa15fg.c ...
    C:/TI/ccs901/ccs/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major-win32/bin/arm-none-eabi-gcc -c -MD -MF package/cfg/bspCommonBIOS_a15_pa15fg.oa15fg.dep -x c -Wunused -Wunknown-pragmas -ffunction-sections -fdata-sections -mcpu=cortex-a15 -mfpu=neon -mfloat-abi=hard -mabi=aapcs -g -Dfar= -D__DYNAMIC_REENT__ -D_DEBUG_=1 -Dxdc_cfg__xheader__='"configPkg/package/cfg/bspCommonBIOS_a15_pa15fg.h"' -Dxdc_target_name__=A15F -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_bld__profile_debug -Dxdc_bld__vers_1_0_7_2_1 -g -I. -IC:/TI/bios_6_75_02_00/packages -IC:/TI/pdk_am57xx_1_0_15/packages -IC:/TI/edma3_lld_2_12_05_30E/packages -IC:/TI/ipc_3_50_03_05/packages -IC:/TI/ndk_3_60_00_13/packages -IC:/TI/uia_2_30_01_02/packages -IC:/TI/ccs901/xdctools_3_55_00_11_core/packages -I.. -IC:/TI/bios_6_75_02_00/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/newlib-nano -IC:/TI/bios_6_75_02_00/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include -o package/cfg/bspCommonBIOS_a15_pa15fg.oa15fg package/cfg/bspCommonBIOS_a15_pa15fg.c
    Finished building: "C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/examples/ccsprojects/common/bios/utils/bspCommonBIOS_a15.cfg"

    Building file: "C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/examples/dss/displayDssBareMetal/src/DisplayDss_main_bm.c"
    Invoking: GNU Compiler
    "C:/TI/ccs901/ccs/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major-win32/bin/arm-none-eabi-gcc.exe" -c -mcpu=cortex-a15 -mtune=cortex-a15 -marm -mfloat-abi=hard -Dam5728 -Dcore0 -DUSE_BIOS -DMAKEFILE_BUILD -DNDEBUG -DTRACE_ENABLE -DASSERT_ENABLE -DVPS_VIP_BUILD -DVPS_VPE_BUILD -DVPS_DSS_BUILD -DVPS_VIP1_BUILD -DVPS_VIP2_BUILD -DVPS_VIP3_BUILD -DVPS_CAPT_BUILD -DVPS_DISP_BUILD -DSOC_AM572x -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=A15F -UVPS_ISS_BUILD -UVPS_SIMCOP_BUILD -UVPS_ISS_ISP_DEF -I"C:/Users/a0828166/Documents/workspace_v9-AM57x/vps_displayDssBareMetal_idkAM572x_armExampleProject" -I"C:/TI/ccs901/ccs/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major-win32/arm-none-eabi/include/newlib-nano" -I"C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps" -I"C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/examples/dss/displayDssBareMetal/src" -I"C:/TI/ccs901/ccs/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major-win32/arm-none-eabi/include" -Og -ffunction-sections -fdata-sections -g -gdwarf-3 -gstrict-dwarf -Wall -c -Wimplicit -Wunused -Wunknown-pragmas -MMD -MP -MMD -MP -MF"DisplayDss_main_bm.d" -MT"DisplayDss_main_bm.o" @"configPkg/compiler.opt" -o"DisplayDss_main_bm.o" "C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/examples/dss/displayDssBareMetal/src/DisplayDss_main_bm.c"
    Finished building: "C:/TI/pdk_am57xx_1_0_15/packages/ti/drv/vps/examples/dss/displayDssBareMetal/src/DisplayDss_main_bm.c"

    Building target: "vps_displayDssBareMetal_idkAM572x_armExampleProject.out"
    Invoking: GNU Linker
    "C:/TI/ccs901/ccs/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major-win32/bin/arm-none-eabi-gcc.exe" -mtune=cortex-a15 -marm -Dam5728 -Dcore0 -DUSE_BIOS -DMAKEFILE_BUILD -DNDEBUG -DTRACE_ENABLE -DASSERT_ENABLE -DVPS_VIP_BUILD -DVPS_VPE_BUILD -DVPS_DSS_BUILD -DVPS_VIP1_BUILD -DVPS_VIP2_BUILD -DVPS_VIP3_BUILD -DVPS_CAPT_BUILD -DVPS_DISP_BUILD -DSOC_AM572x -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=A15F -UVPS_ISS_BUILD -UVPS_SIMCOP_BUILD -UVPS_ISS_ISP_DEF -Og -ffunction-sections -fdata-sections -g -gdwarf-3 -gstrict-dwarf -Wall -Wimplicit -Wunused -Wunknown-pragmas -MMD -MP -mfloat-abi=hard -Wl,-Map,"vps_displayDssBareMetal_idkAM572x_armExampleProject.map" -nostartfiles -static -Wl,--gc-sections -L"C:/TI/bios_6_75_02_00/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/hard" -L"/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu" -Wl,--defsym,CORE0=1 -Wl,--defsym,STACKSIZE=0x10000 -Wl,--defsym,HEAPSIZE=0x400 --specs=nano.specs -o"vps_displayDssBareMetal_idkAM572x_armExampleProject.out" "./DisplayDss_main_bm.o" -Wl,-T"configPkg/linker.cmd" -Wl,--start-group -lrdimon -lgcc -lm -lnosys -lc -Wl,--end-group
    c:/ti/ccs901/ccs/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major-win32/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe:configPkg/linker.cmd:83: warning: memory region `APP_UNCACHED_DATA_BLK3_MEM' not declared
    c:/ti/ccs901/ccs/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major-win32/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe:configPkg/linker.cmd:84: warning: memory region `APP_CACHED_DATA_BLK1_MEM' not declared
    c:/ti/ccs901/ccs/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major-win32/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe:configPkg/linker.cmd:85: warning: memory region `APP_CACHED_DATA_BLK2_MEM' not declared
    c:/ti/ccs901/ccs/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major-win32/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe:configPkg/linker.cmd:86: warning: memory region `APP_CODE_MEM' not declared
    Finished building target: "vps_displayDssBareMetal_idkAM572x_armExampleProject.out"

    C:/TI/pdk_am57xx_1_0_15/packages/pdkAppImageCreate.bat C:/TI/pdk_am57xx_1_0_15/packages C:/TI/ccs901/ccs/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major-win32 C:/Users/a0828166/Documents/workspace_v9-AM57x/vps_displayDssBareMetal_idkAM572x_armExampleProject/Debug vps_displayDssBareMetal_idkAM572x_armExampleProject AM572x arm
    Parsing the input object file, C:/Users/a0828166/Documents/workspace_v9-AM57x/vps_displayDssBareMetal_idkAM572x_armExampleProject/Debug/vps_displayDssBareMetal_idkAM572x_armExampleProject.out.
    File conversion complete!
    Number of Input Files 1

    **** Build Finished ****

  • All,

    It doesn't matter how the code is built or how it's executed. I just need to get the example program running on the EVM. The problem is right now it doesn't run.

    I can successfully built it on linux and the xa15fg  can start working on a fully booted system (with a regular kernel) However, it crashes because it's trying to initialize the hardware and it's already initialized.

    I can also build using CCS, but that doesn't work either. It doesn't even start correctly, even when I force the starting point to "main". The correct starting point is "Entry", but that's not available in the CCS build.

    I'm trying to run the displayDssBareMetal example to reverse engineer the correct DSS initialization sequence, since the TRM doesn't contain enough information.

    Thanks,

    Scott

  • Hi Scott and Hendrix,

    I didn't marked the question "resolved", you see I am still following up. Sorry for the confusion!

    Note, CCS projects are only available for vps_loopbackExample_idkAM571/2/4x_arm/dsp/m4ExampleProject. That is, the vps_displayDssBareMetal_idkAM572x_armExampleProject has to be built by "make vps" command. How to build VPS examples are documented in the VPS driver user guide: http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_device_drv.html#vps-drivers

    6.31.5. Building VPS examples

    • VPS examples and dependent libraries are built from the top level pdk makefile after the environment setup is done using the pdksetupenv.sh(bat) file.
    • cd <pdk>/packages
    • pdksetupenv.bat (sh)
    • make vps  : to build vps examples under <pdk>/ti/packages/binary folder
    • make vps_clean : to clean the vps and vps examples.

    Certainly you can try to create CCS project to build that. But you need to refer to the makefile (or the make build log) to understand all the compiler/ linker options, XDC options, pre-defined symbols, platforms, build configuration files. Missing some of them may cause the out file didn't work.

    For your current build log, at least "-p ti.platforms.evmAM572X" is wrong, this platform should be "-p ti.platforms.idkAM572X".

    My suggestion is to use what we tested/explained in the user guide, using "make vps" to build it, to make sure the .out file worked. Then, checking how the CCS project didn't work.

    Regards, Eric 

  • Hi Eric,

    I followed the instructions to build the displayDssBareMetal example. It builds successfully on the linux command line.

    Section 6.31.6 says to load it into CCS, which is documented in section 6.31.7. That is where it doesn't run.

    Thanks,

    Scott

  • Scott,

    For how to load an application into CCS, you need several steps:

    1) create a CCS target connection to the AM572x IDK EVM (there used to be a link, but now it is removed)

    2) Connect to A15_0 core, open UART port

    3) Load and run

    Let me know if you are familiar with step 1). If not, I can provide the steps.

    Regards, Eric 

  • Hi Eric,

    I can successfully connect to the IDK, connect to core A15_0, load, and run the "hello world" sample.

    The same steps don't work for the displayDssBareMetal example, which is built by CCS.

    Thanks,

    Scott

  • Scott,

    You need to run the  displayDssBareMetal example built by makefile, to make sure it works before trying if CCS build work or not. If the makefile build doesn't work, then I need find a board to reproduce.

    Regards, Eric

  • Hi Eric,

    I have been trying to run the displayDssBareMetal example for far too long.

    There are no instructions or even hints what to do with the output files from the makefile build process. The file vps_examples_DisplayDssBareMetal_a15_0_release.xa15fg is a standard elf executable that just crashes when run from the regular command line (after booting into a normal kernel) Running it in GDB shows the problem is illegal instructions. If it's truly a "bare metal" program, it should run without any other program. (i.e. from MLO, u-boot, or even SBL.) If the "bare metal" code requires the kernel to be up and running, I could access the frame buffer directly and not have to figure out the DSS initialization sequence.

    There are instructions to run the displayDssBareMetal example, from CCS, but following those directions don't run, either.

    At this point I still have example code that cannot run on an EVM board. The code was probably tested on target hardware at some point, but we can't find anyone who knows how to run the code.

    Scott

  • Hi,

    All the RTOS driver example binary files are ran just as simple as you ran a "hello world". You don't need any Linux, don't need SBL, just connect SOC, load and run, unless we documented it with special running instructions.

    I will find an EVM to test it.

    Regards, Eric

  • Hi,

    I found an AM572x IDK EVM and ran the program and didn't see any issue. Steps:

    1. Find an empty SD card and format it as FAT32

    2. Copy pdk_am57xx_1_0_15\packages\ti\drv\vps\docs\test_inputs\dss_input_files.rar into the SD card and unzip. Note, you need to put the files under dss_input_files folder. There are two files:

    • display_yuyv422_prog_packed_1920_1080.tigf
    • display_bgr888_prog_packed_1920_1080.tigf

    will be read from SD card during test. If your SD card  \dss_input_files folder doesn't have them, you can load it from CCS scripting console or UART console, following the UART prompt.

    3. Insert SD card into IDKAM572x EVM SD slot

    4. Connect A15_0 using standard JTAG target connection (as you run "hello world")

    5. Load  pdk_am57xx_1_0_15\packages\ti\binary\vps_examples_DisplayDssBareMetal\bin\idkAM572x\vps_examples_DisplayDssBareMetal_a15_0_release.xa15fg into A15_0 and run (binary also attached for your reference)

    6. You will see below from UART console:

    DISP_DSS_APP: DisplayDSS Bare Metal Sample Application - STARTS !!!
    *** VPDMA Firmware Loading... ***
    VPDMA Firmware Address = 0xa0011fc0
    VPDMA Load Address = 0x4897d004
    VPDMA Firmware Version = 0x4d0001b8
    VPDMA List Busy Status = 0x00000000
    *** VPDMA Firmware Load Success ***

    *** VPDMA Firmware Loading... ***
    VPDMA Firmware Address = 0xa0011fc0
    VPDMA Load Address = 0x4899d004
    VPDMA Firmware Version = 0x4d0001b8
    VPDMA List Busy Status = 0x00000000
    *** VPDMA Firmware Load Success ***

    *** VPDMA Firmware Loading... ***
    VPDMA Firmware Address = 0xa0011fc0
    VPDMA Load Address = 0x489bd004
    VPDMA Firmware Version = 0x4d0001b8
    VPDMA List Busy Status = 0x00000000
    *** VPDMA Firmware Load Success ***

    *** VPDMA Firmware Loading... ***
    VPDMA Firmware Address = 0xa0011fc0
    VPDMA Load Address = 0x489dd004
    VPDMA Firmware Version = 0x4d0001b8
    VPDMA List Busy Status = 0x00000000
    *** VPDMA Firmware Load Success ***


    Build time : [04:12:13 Jul 8 2019]
    FVID2 Version : [FVID_02_01_00_01]
    BSP Version : [PDK_01_10_00_xx]
    Platform : [EVM]
    SOC : [AM572X]
    SOC Revision : [ES2.0]
    FT Revision : [2]
    Package : [UNKNOWN]
    Core : [A15]
    Board Detected : [AM57XX IDK EVM]
    EEPROM Base Board Name: [AM572IDK]
    Base Board Revision : [REV 1.3A]
    Daughter Card Revision: [REV A]

    Load 4 YUV422I_YUYV video frames of size 1920x1080 to location: 0x0x80200000
    Trying to Load buffer from SD card.
    Loading File display_yuyv422_prog_packed_1920_1080.tigf from SD Card...
    File Size: 16588800 bytes, Time Taken: 9159 ms!!
    Load 4 BGR24_888 video frames of size 1920x1080 to location: 0x0x811d2000
    Trying to Load buffer from SD card.
    Loading File display_bgr888_prog_packed_1920_1080.tigf from SD Card...
    File Size: 24883200 bytes, Time Taken: 14342 ms!!
    DISP_DSS_APP: DispApp_init() - DONE !!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console): ===============> select 14 or your other choices:
    14
    0
    DISP_DSS_APP: HANDLES 1: RUN COUNT 30: INPUT:1 !!!
    Display Create Status: VENC Standard: CUSTOM, Width: 1920, Height: 1200
    Display Create Status: Minimum Number of Buffers to Prime: 1
    DISP_DSS_APP: Display create complete!!
    DISP_DSS_APP: Starting display ... !!!
    DISP_DSS_APP: Display in progress ... DO NOT HALT !!!
    DISP_DSS_APP: Stopping display ... DONE !!!

    Execution Statistics
    ====================

    Execution time : 30.0 s
    Total field Count : 0 (0 fields/sec)
    Avg CPU Load : 0 %

    Display Instance 0 Statistics
    ==============================
    Display Inst 0 Status: Number of request queued : 1758
    Display Inst 0 Status: Number of request dequeued: 1754
    Display Inst 0 Status: Displayed frame count : 1754
    Display Inst 0 Status: Frame repeat count : 0

    Dispaly Controller Error Status
    ==============================
    LCD1 SyncLost count : 0
    LCD2 SyncLost2 count : 0
    LCD3 SyncLost3 count : 0
    TV SyncLost count : 0
    OCP Error count : 0


    DISP_DSS_APP: Display delete complete!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    1
    DISP_DSS_APP: HANDLES 1: RUN COUNT 30: INPUT:36 !!!
    Display Create Status: VENC Standard: CUSTOM, Width: 1920, Height: 1200
    Display Create Status: Minimum Number of Buffers to Prime: 1
    DISP_DSS_APP: Display create complete!!
    DISP_DSS_APP: Starting display ... !!!
    DISP_DSS_APP: Display in progress ... DO NOT HALT !!!
    DISP_DSS_APP: Stopping display ... DONE !!!

    Execution Statistics
    ====================

    Execution time : 30.1 s
    Total field Count : 0 (0 fields/sec)
    Avg CPU Load : 0 %

    Display Instance 3 Statistics
    ==============================
    Display Inst 3 Status: Number of request queued : 1760
    Display Inst 3 Status: Number of request dequeued: 1756
    Display Inst 3 Status: Displayed frame count : 1756
    Display Inst 3 Status: Frame repeat count : 0

    Dispaly Controller Error Status
    ==============================
    LCD1 SyncLost count : 0
    LCD2 SyncLost2 count : 0
    LCD3 SyncLost3 count : 0
    TV SyncLost count : 0
    OCP Error count : 0


    DISP_DSS_APP: Display delete complete!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    2
    DISP_DSS_APP: HANDLES 2: RUN COUNT 30: INPUT:1 !!!
    Display Create Status: VENC Standard: CUSTOM, Width: 1920, Height: 1200
    Display Create Status: Minimum Number of Buffers to Prime: 1
    Display Create Status: VENC Standard: CUSTOM, Width: 1920, Height: 1200
    Display Create Status: Minimum Number of Buffers to Prime: 1
    DISP_DSS_APP: Display create complete!!
    DISP_DSS_APP: Starting display ... !!!
    DISP_DSS_APP: Display in progress ... DO NOT HALT !!!
    DISP_DSS_APP: Stopping display ... DONE !!!

    Execution Statistics
    ====================

    Execution time : 30.1 s
    Total field Count : 0 (0 fields/sec)
    Avg CPU Load : 0 %

    Display Instance 0 Statistics
    ==============================
    Display Inst 0 Status: Number of request queued : 1759
    Display Inst 0 Status: Number of request dequeued: 1755
    Display Inst 0 Status: Displayed frame count : 1755
    Display Inst 0 Status: Frame repeat count : 0

    Display Instance 3 Statistics
    ==============================
    Display Inst 3 Status: Number of request queued : 1759
    Display Inst 3 Status: Number of request dequeued: 1755
    Display Inst 3 Status: Displayed frame count : 1755
    Display Inst 3 Status: Frame repeat count : 0

    Dispaly Controller Error Status
    ==============================
    LCD1 SyncLost count : 0
    LCD2 SyncLost2 count : 0
    LCD3 SyncLost3 count : 0
    TV SyncLost count : 0
    OCP Error count : 0


    DISP_DSS_APP: Display delete complete!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    3
    DISP_DSS_APP: HANDLES 3: RUN COUNT 30: INPUT:1 !!!
    Display Create Status: VENC Standard: CUSTOM, Width: 1920, Height: 1200
    Display Create Status: Minimum Number of Buffers to Prime: 1
    Display Create Status: VENC Standard: CUSTOM, Width: 1920, Height: 1200
    Display Create Status: Minimum Number of Buffers to Prime: 1
    Display Create Status: VENC Standard: CUSTOM, Width: 1920, Height: 1200
    Display Create Status: Minimum Number of Buffers to Prime: 1
    DISP_DSS_APP: Display create complete!!
    DISP_DSS_APP: Starting display ... !!!
    DISP_DSS_APP: Display in progress ... DO NOT HALT !!!
    DISP_DSS_APP: Stopping display ... DONE !!!

    Execution Statistics
    ====================

    Execution time : 30.1 s
    Total field Count : 0 (0 fields/sec)
    Avg CPU Load : 0 %

    Display Instance 0 Statistics
    ==============================
    Display Inst 0 Status: Number of request queued : 1759
    Display Inst 0 Status: Number of request dequeued: 1755
    Display Inst 0 Status: Displayed frame count : 1755
    Display Inst 0 Status: Frame repeat count : 0

    Display Instance 1 Statistics
    ==============================
    Display Inst 1 Status: Number of request queued : 1759
    Display Inst 1 Status: Number of request dequeued: 1755
    Display Inst 1 Status: Displayed frame count : 1755
    Display Inst 1 Status: Frame repeat count : 0

    Display Instance 3 Statistics
    ==============================
    Display Inst 3 Status: Number of request queued : 1759
    Display Inst 3 Status: Number of request dequeued: 1755
    Display Inst 3 Status: Displayed frame count : 1755
    Display Inst 3 Status: Frame repeat count : 0

    Dispaly Controller Error Status
    ==============================
    LCD1 SyncLost count : 0
    LCD2 SyncLost2 count : 0
    LCD3 SyncLost3 count : 0
    TV SyncLost count : 0
    OCP Error count : 0


    DISP_DSS_APP: Display delete complete!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    4
    DISP_DSS_APP: Skipping test case 4!!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    5
    DISP_DSS_APP: Skipping test case 5!!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    6
    DISP_DSS_APP: Skipping test case 6!!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    7
    DISP_DSS_APP: Skipping test case 7!!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    8
    DISP_DSS_APP: Skipping test case 8!!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    9
    DISP_DSS_APP: Skipping test case 9!!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    10
    DISP_DSS_APP: HANDLES 4: RUN COUNT 60: INPUT:1 !!!
    Display Create Status: VENC Standard: CUSTOM, Width: 1920, Height: 1200
    Display Create Status: Minimum Number of Buffers to Prime: 1
    Display Create Status: VENC Standard: CUSTOM, Width: 1920, Height: 1200
    Display Create Status: Minimum Number of Buffers to Prime: 1
    Display Create Status: VENC Standard: CUSTOM, Width: 1920, Height: 1200
    Display Create Status: Minimum Number of Buffers to Prime: 1
    Display Create Status: VENC Standard: CUSTOM, Width: 1920, Height: 1200
    Display Create Status: Minimum Number of Buffers to Prime: 1
    DISP_DSS_APP: Display create complete!!
    DISP_DSS_APP: Starting display ... !!!
    DISP_DSS_APP: Display in progress ... DO NOT HALT !!!
    DISP_DSS_APP: Stopping display ... DONE !!!

    Execution Statistics
    ====================

    Execution time : 60.2 s
    Total field Count : 0 (0 fields/sec)
    Avg CPU Load : 0 %

    Display Instance 0 Statistics
    ==============================
    Display Inst 0 Status: Number of request queued : 3516
    Display Inst 0 Status: Number of request dequeued: 3512
    Display Inst 0 Status: Displayed frame count : 3512
    Display Inst 0 Status: Frame repeat count : 0

    Display Instance 1 Statistics
    ==============================
    Display Inst 1 Status: Number of request queued : 3516
    Display Inst 1 Status: Number of request dequeued: 3512
    Display Inst 1 Status: Displayed frame count : 3512
    Display Inst 1 Status: Frame repeat count : 0

    Display Instance 2 Statistics
    ==============================
    Display Inst 2 Status: Number of request queued : 3516
    Display Inst 2 Status: Number of request dequeued: 3512
    Display Inst 2 Status: Displayed frame count : 3512
    Display Inst 2 Status: Frame repeat count : 0

    Display Instance 3 Statistics
    ==============================
    Display Inst 3 Status: Number of request queued : 3516
    Display Inst 3 Status: Number of request dequeued: 3512
    Display Inst 3 Status: Displayed frame count : 3512
    Display Inst 3 Status: Frame repeat count : 0

    Dispaly Controller Error Status
    ==============================
    LCD1 SyncLost count : 0
    LCD2 SyncLost2 count : 0
    LCD3 SyncLost3 count : 0
    TV SyncLost count : 0
    OCP Error count : 0


    DISP_DSS_APP: Display delete complete!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    11
    DISP_DSS_APP: HANDLES 1: RUN COUNT 30: INPUT:1 !!!
    Display Create Status: VENC Standard: 1080P60, Width: 1920, Height: 1080
    Display Create Status: Minimum Number of Buffers to Prime: 1
    DISP_DSS_APP: Display create complete!!
    DISP_DSS_APP: Starting display ... !!!
    DISP_DSS_APP: Display in progress ... DO NOT HALT !!!
    DISP_DSS_APP: Stopping display ... DONE !!!

    Execution Statistics
    ====================

    Execution time : 30.1 s
    Total field Count : 0 (0 fields/sec)
    Avg CPU Load : 0 %

    Display Instance 1 Statistics
    ==============================
    Display Inst 1 Status: Number of request queued : 1760
    Display Inst 1 Status: Number of request dequeued: 1756
    Display Inst 1 Status: Displayed frame count : 1756
    Display Inst 1 Status: Frame repeat count : 0

    Dispaly Controller Error Status
    ==============================
    LCD1 SyncLost count : 0
    LCD2 SyncLost2 count : 0
    LCD3 SyncLost3 count : 0
    TV SyncLost count : 0
    OCP Error count : 0


    DISP_DSS_APP: Display delete complete!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    12
    DISP_DSS_APP: HANDLES 1: RUN COUNT 30: INPUT:1 !!!
    Display Create Status: VENC Standard: CUSTOM, Width: 1920, Height: 1080
    Display Create Status: Minimum Number of Buffers to Prime: 1
    DISP_DSS_APP: Display create complete!!
    DISP_DSS_APP: Starting display ... !!!
    DISP_DSS_APP: Display in progress ... DO NOT HALT !!!
    DISP_DSS_APP: Stopping display ... DONE !!!

    Execution Statistics
    ====================

    Execution time : 30.1 s
    Total field Count : 0 (0 fields/sec)
    Avg CPU Load : 0 %

    Display Instance 1 Statistics
    ==============================
    Display Inst 1 Status: Number of request queued : 881
    Display Inst 1 Status: Number of request dequeued: 877
    Display Inst 1 Status: Displayed frame count : 877
    Display Inst 1 Status: Frame repeat count : 0

    Dispaly Controller Error Status
    ==============================
    LCD1 SyncLost count : 0
    LCD2 SyncLost2 count : 0
    LCD3 SyncLost3 count : 0
    TV SyncLost count : 0
    OCP Error count : 0


    DISP_DSS_APP: Display delete complete!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    13
    DISP_DSS_APP: HANDLES 1: RUN COUNT 150: INPUT:1 !!!
    Display Create Status: VENC Standard: CUSTOM, Width: 1920, Height: 1200
    Display Create Status: Minimum Number of Buffers to Prime: 1
    DISP_DSS_APP: Display create complete!!
    DISP_DSS_APP: Starting display ... !!!
    DISP_DSS_APP: Display in progress ... DO NOT HALT !!!
    DISP_DSS_APP: Stopping display ... DONE !!!

    Execution Statistics
    ====================

    Execution time : 150.5 s
    Total field Count : 0 (0 fields/sec)
    Avg CPU Load : 0 %

    Display Instance 0 Statistics
    ==============================
    Display Inst 0 Status: Number of request queued : 8787
    Display Inst 0 Status: Number of request dequeued: 8783
    Display Inst 0 Status: Displayed frame count : 8783
    Display Inst 0 Status: Frame repeat count : 0

    Dispaly Controller Error Status
    ==============================
    LCD1 SyncLost count : 0
    LCD2 SyncLost2 count : 0
    LCD3 SyncLost3 count : 0
    TV SyncLost count : 0
    OCP Error count : 0


    DISP_DSS_APP: Display delete complete!!

    --------------------------------------
    Select test to run as per below table:
    --------------------------------------

    0: DSS Video1 (YUY422I) -> DPI1 -> LCD
    1: DSS GFX (BGR888) -> DPI1 -> LCD
    2: DSS Video1 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    3: DSS Video1,2 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    4: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080P60
    5: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60(TDM)
    6: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720P60
    7: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9: DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10: DSS Video1,2,3 (YUV422I) + GFX (BGR888) -> DPI1 -> LCD
    11: DSS Video2 (YUY422I) -> TV -> HDMI@1080P60
    12: DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13: DSS Video1 (YUY422I) -> DPI1 -> LCD (RT Param Test)
    14: Auto Run

    100: EXIT

    Enter Test to Run (in UART console):
    Freeing YUYV422 Field Merged Buffer...
    Freeing BGR24 Field Merged Buffer...

    Regards, Eric

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/vps_5F00_examples_5F00_DisplayDssBareMetal_5F00_a15_5F00_0_5F00_release.xa15fg

  • Hello Eric,

    As I said before, I can run the "hello world" program without any problems. However, the example code does not run using CCS.

    I tried using the vps_examples_DisplayDssBareMetal_a15_0_release.xa15fg linked from above, and it does the exact same thing when I try to run the xa15fg file I built.

    I start CCS and "Launch selected configuration". (The exact same one that works with "hello world") I connect to A15_0. I select Run, Load, then Load Program. The middle pane on the screen then displays "Break at address "0x3ff04" with no debug information available, or outside of program code."

    There is no way to changed the PC to the correct entry point "Entry" because that symbol isn't available in the executable. The code doesn't run if I force it to start at "main". How do you work around the errors shown in step #5 (above)?

    If there isn't documentation for the DSS initialization sequence for the AM5728 and there isn't a working example, how are customers supposed to use the chip's features? It should not take so much time & effort to build supplied code and run it on an EVM.

    I also was looking through the displayDssBareMetal code example. It looks like that code just plays videos. What about the basics - just initialize everything needed for the frame buffer (or something similar) to be able to set individual pixels? I don't see anything in the VPS / DSS code or documentation for that.

    Scott

  • Scott,

    There is no issue for me on step 5. I just load it, it went to main(), then I can run. From building the example to run it, my experience is smooth. Also, we got little complain about using the VPS driver examples from forum.

    I am not sure if any other driver examples worked on your set-up? I only knew "hello world" worked and VPS didn't work. How about anything simple like GPIO? I2C? UART? Do you have any GEL initialization setup for the EVM?

    DSS initialization needs to check the AM572x TRM, the code will not document that. The available documentations are:

    • pdk_am57xx_1_0_15\packages\ti\drv\vps\docs\training
    • pdk_am57xx_1_0_15/packages/ti/drv/vps/docs/doxygen/html/index.html

    Regards, Eric

  • Hi Eric,

    I'm glad it executes for you but it doesn't work for me using CCS. I did get the code working using the secondary boot loader.

    As I've said before, the TRM doesn't have the graphics initialization sequence. That is why I'm trying to reverse engineer the information.

    The "training" link contains documents that describe the available functionary but without enough detail to actually implement the code. (Or even references where to look next)

    The doxygen index.html contains links to multiple web pages that have superficial information about various functions. You need to open each link individually and manually search the sub-pages. Again, there are not examples or enough information how to actually implement code.

    I'm not buried deep in the code and TRM, trying to figure out the frame buffer memory layout so I can set individual pixels without playing a video.

    Scott

  • Scott,

    See the AM572x TRM (http://www.ti.com/lit/ug/spruhz6k/spruhz6k.pdf): 11.1.4 Display Subsystem Programming Guide for the DSS initialization sequence.

    Regards, Eric

  • Eric,

    I have read through the TRM. Section 11.1.4 has the start of the information, but it has links to sections without enough details. For example, the first line says "Configure the DPLL_PER..." and a link to chapter 3. That's about 1200 pages (starting at page 419 and ends on 1633)

    Scott