Hi,
AM5728 sdk rtos diagnostic boot images APP and MLO are built and copied into SDcard and its working fine on EVM, where as same SDcard not booting in custom hardware. Am i missing something please let me know asap!!!
Chethan
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.
Hi,
AM5728 sdk rtos diagnostic boot images APP and MLO are built and copied into SDcard and its working fine on EVM, where as same SDcard not booting in custom hardware. Am i missing something please let me know asap!!!
Chethan
Hi Rahul,
Thanks for your reply!!!
1. Yes our custom hardware design is based on GP EVM (TI_AM572xEVM_REV_A3a).
2. For custom platform i'm generating board library using PINMUXTOOL there i have done with boardPadDelayInit.c, now as per the below
http://processors.wiki.ti.com/index.php/Processor_SDK_RTOS_Board_Support#Custom_Board_Addition
This point confusing me and i tried to do the IO timings but unable to generate the file, please explain this part briefly. How to generate the file and explain its necessary?
3. As per your first statement "In order to test the diagnostics on a custom platform you will need to modify the board library, SBL source to account for these changes." What i suppose to do with SBL source and how can i do that??
Thanks and regards,
Chethan
Hi,
I'm building Custom Board Library as steps given in the following link
http://processors.wiki.ti.com/index.php/Processor_SDK_RTOS_Board_Support#Custom_Board_Addition
4. Create build makefile infrastructure for new board under <ti/board/build>. Please refer existing board makefiles for reference.
5.Update top level makefile <ti/board/makefile> for additional support of new boards.
And how to link SBL with the custom boar library
Please help with this its like block in my task!!
Regards,
Chethan
Chethan,
In the SBL code, if you look at the makefile for evmAM572x(pdk_am57xx_1_0_4\packages\ti\boot\sbl\board\evmAM572x\build), the board library is linked to the EVM board library using the variable BOARD_LIB as shown below:
BOARD_LIB = "$(PDK_INSTALL_PATH)/ti/board/lib/$(BOARD)/a15/release/ti.board.aa15fg"
Change this MACRO to point to the board library that you have created an rebuild the SBL.
Regards,
Rahul
Thanks rahul!!!!
Because of 12 hours difference somehow i manged to do R&D and the do the stuff, now i'm stuck in MLO build stage please tell me how can i do this i reffered few related links but its clear to me.
Chethan
Hi Rahul,Rahul Prabhu said:
Chethan,
In the SBL code, if you look at the makefile for evmAM572x(pdk_am57xx_1_0_4\packages\ti\boot\sbl\board\evmAM572x\build), the board library is linked to the EVM board library using the variable BOARD_LIB as shown below:
BOARD_LIB = "$(PDK_INSTALL_PATH)/ti/board/lib/$(BOARD)/a15/release/ti.board.aa15fg"
Change this MACRO to point to the board library that you have created an rebuild the SBL.
Regards,
Rahul
Chethan,
Did you rebuild the AM5728_SDR board library. Board library can be build using the command from pdk_1_x_x\packages folder
make -C ./ti/board all
If you have then you should see the board library file ti.board.aa15fg created under the path $(PDK_INSTALL_PATH)/ti/board/lib/AM5728_SDR/a15/release/ti.board.aa15fg" similar to what we have under $(PDK_INSTALL_PATH)/ti/board/lib/evmAM572x/a15/release/ti.board.aa15fg
Regards,
Rahul
PS: Make sure you have renamed the file src_files_evmAM572x.mk to src_files_AM5728_SDR.mk and also that all the files you have modified are listed as src files in the make file.
Rahul,
No i haven't do that there only stuck, i don't no how to proceed further that is the main reason i raised the question.
Please assume that i had only created AM5728_SDR folder under ../../../ti/board/src with no pinmuxing files(contains default files of ../../ti/board/srcevmAM572x).
Please explain that step by step.
Chethan
Chethan,
Ok. Thanks for your patience. Stepping back a little, here is my take on experience with creating a custom board library.
Step1: Ensure your custom board library build is setup correctly:
* Create a board library folder under pdk_1_x_x\packages\ti\board\src\. In your case it is "AM5728_SDR"
* Copy all your files from the boaard that your custom board is based on. In your case evmAM572x.
* Modify the build files src_files_<custom board name>.mk and add the the custom board to the pdk_am57xx_1_0_4\packages\ti\board\build\makefile.mk target.
* GO to pdk_1_x_x\packages directory and test the build by running
make ./ti/board all
this should generate a file ti.board.aa15fg
$(PDK_INSTALL_PATH)/ti/board/lib/<custom board>/a15/release/ti.board.aa15fg
Please confirm if you are having having any issues to getting to this step and post the error log so that we can analyze the issue.
Step 2: Test linking the board library with exisiting examples for evmAM572x.
* Since all files in evmAM57xx were copied to the custom board library folder, at the moment your custom board library should be same as evmAM57xx board library. You can verify this by linking custom board library to existing LLD or diagnostics examples in the SDK and testing it on the EVM
* Now modify the source files in your custom board library area to match the clocking, pinmuxing, DDR and power management changes. List of files to chnage is provided either
* Rebuild the custom board library as in step 1 using make ./ti/board all
Step 3 : Test on custom hardware.
* Now that all off your custom board changes are in place, you should be able to link it to the unit tests/diagnostics by modifying the link step in the make files to use the modified custom board library instead of ti.board.aafg library from evmAM572x area.
* Note if the peripheral instance, interrupts required are different then you may need to make corresponding changes to the unit tests.
Regards,
Rahul
Rahul,
As your suggestion i have followed the steps but custom board library is not generating.
1. Created separate folder in ../../../ti/board/src/AM5728_SDR and copied all file from evmAM572x folder
2. Modified file names too, like evmAM572x_clock.c to sdrAM572x_clock.c (I think this is not necessary but i tried this method also)
3. Modified the build files in ../../../ti/board/src/AM5728_SDR/src_files_evmAM572x.mk
SRCDIR += src/AM5728_SDR src/AM5728_SDR/device src/AM5728_SDR/include
INCDIR += src/AM5728_SDR src/AM5728_SDR/device src/AM5728_SDR/include
# Common source files across all platforms and cores
SRCS_COMMON += sdrAM5728.c sdrAM5728_lld_init.c sdrAM5728_pinmux.c sdrAM5728_clock.c sdrAM5728_ddr.c sdrAM5728_info.c sdrAM5728_pll.c
SRCS_COMMON += pmic_device.c enet_phy.c boardPadDelayDevice.c boardPadDelayInit.c iodelay_config.c
ifeq ($(CORE),$(filter $(CORE), c66x))
SRCS_ASM_COMMON += iodelay_stack_C66.asm
endif
PACKAGE_SRCS_COMMON = src/AM5728_SDR/src_files_evmAM572x.mk
4. And executed the following command
../../../packages/ make ./ti/board all After execution file ti.board.aa15fg not created
$(PDK_INSTALL_PATH)/ti/board/lib/<custom board>/a15/release/ti.board.aa15fg
Obseravtion:
chethan@chethan:~/ti/pdk_am57xx_1_0_3/packages$ ls -lrt ti/board/lib/
total 12
drwxr-xr-x 5 chethan chethan 4096 Sep 21 15:24 idkAM571x
drwxr-xr-x 5 chethan chethan 4096 Sep 21 15:24 idkAM572x
drwxr-xr-x 5 chethan chethan 4096 Sep 21 15:24 evmAM572x
Please note: Here default evm's board library also not updating please have a look at date and timings.
Please guide me where i'm making mistake.
Regards,
Chethan
Chethan,
Sorry for the delayed response. I check the latest SDK build setup files and realized that there has been some change in the build structure that may be causing the issue that you are seeing. With the new SDK, you are also required to
* Copy files from evmAM572x to customAM572x folder. Modify the file src_files_customAM572x.mk
* update line 92 in Rules.make (under pdk_x_X_x\packages\ti\build)
* add CFLAGS_GLOBAL_<customAM572x> = -DSOC_AM572x to build_config.mk (under pdk_x_X_x\packages\ti\build\makerules)
* Add custom platform to Line 56 on platform.mk (under pdk_x_X_x\packages\ti\build\makerules)
*Check for changes in makefile.mk under pdk_x_X_x\packages\ti\board\build\
* Also check line 92 in board.h, config.bld, package.bld files under (under pdk_x_X_x\packages\ti\board)
In order to test this setup, I have created a "customAM572x" board library and provided all my files for your reference. To check all files, you can look for files modified on 21st November in this package.
what will also help, you reduce build times since you are using evmAM572x and customAM572x is to use the following setting in pdkSetupEnv.sh(line 191)
export LIMIT_SOCS="am572x"
export LIMIT_BOARDS="evmAM572x customAM572x"
Hope this helps.
Regards,
Rahul
PS: It is Holiday week in the US, so my responses may be slightly delayed. I appreciate your patience on this issue.
Hi Rahul,
Since i'm using SDK 3.0 you meant to say, i should use SDK 3.1 and follow the above steps??? or SDK 3.0 is enough please confirm this. I tried the above steps in SDK 3.0 and no custom board created.
$(PDK_INSTALL_PATH)/ti/board/lib/<custom board>/a15/release/ti.board.aa15fg not generating.
I will try on SDK 3.1 once sdk build completed.
I had thoroughly referred your attachment and those steps, but AM5728_MARS is not generating.
Let me know what is happening?
Chethan
Chethan,
Do you even see the custom board library build while building or does the make only build evmAM572x and idkAM57xx board libraries.
Did you add customAM572x to the pdkSetup.sh file as I had mentioned. after you add that platform, you need to call setup.sh from root folder for the changes to take effect. Please make sure that you don`t miss any .mk file changes or makefile changes. I am able to modify the build files from ProcSDK RTOS 3.0 and generate the custom board library. The first thing to check would be to see why the build is not invoking
Can you use a diff function and compare your files with the files I have provided from PRocSDK 3.0 and see if you missed something.pdk_packages_ti.zip
Regards,
Rahul
Rahul,
Thanks for your concern!!! i'm on leave will have discussion on this topic in coming days.
Chethan
I am building a custom board for the C66 on the AM5728 using pdk_am57xx_1_0_5. I thought I would add the changes I made to help anyone in the future. The process is fairly involved and took me the better part of an entire day. Note that I also added a custom platform, so some of the changes are needed for that also.
1) In pdksetupenv.bat:
@REM if not defined LIMIT_BOARDS set LIMIT_BOARDS=evmAM572x idkAM571x idkAM572x
if not defined LIMIT_BOARDS set LIMIT_BOARDS=myCustomBoard
2) In packages\ti\board\build\makefile.mk
changed
ifeq ($(BOARD),$(filter $(BOARD), evmAM572x idkAM571x idkAM572x))
to
ifeq ($(BOARD),$(filter $(BOARD), myCustomBoard evmAM572x idkAM571x idkAM572x))
3) In packages\ti\build\makerules\platform.mk
Added the following lines:
ifeq ($(BOARD),$(filter $(BOARD), myCustomBoard))
PLATFORM_XDC = "evmAM572XCustom"
endif
4) In packages\ti\board\src
Create new directory myCustomBoard copied from evmAM572x
5) In packages\ti\board\src\myCustomBoard
Rename file src_files_evmAM572x.mk to src_files_myCustomBoard.mk. This file will need a bit of work depending on what elements of board you need for your platform. I left all the files evmAM572x_*.c but modified as needed.
6) In packages\ti\board\src\src_files_lld.mk, I added the following lines:
ifeq ($(BOARD),$(filter $(BOARD), myCustomBoard))
SRCDIR += $(PDK_INSTALL_PATH)/ti/drv/uart/soc/am572x \
$(PDK_INSTALL_PATH)/ti/drv/spi/soc/am572x
INCDIR += $(PDK_INSTALL_PATH)/ti/drv/uart/soc/am572x \
$(PDK_INSTALL_PATH)/ti/drv/spi/soc/am572x
# Common source files across all platforms and cores
SRCS_COMMON += UART_soc.c
endif
In my board the C66 does not use the I2C and I have a custom SPI_soc.c, so those were removed. I think you still need to add this code for your custom board.
7) In packages\ti\board\board.h, I added the lines:
#if defined (myCustomBoard)
#include <ti/board/src/myCustomBoard/include/board_cfg.h>
#endif
8) In packages\ti\board\board_component.mk, I changed the lines:
board_lib_BOARDLIST = myCustomBoard evmAM335x icev2AM335x skAM335x bbbAM335x evmAM437x idkAM437x skAM437x evmAM572x idkAM571x idkAM572x evmK2H evmK2K evmK2E evmK2L evmK2G iceK2G \
#board_lib_tda2xx_CORELIST = a15_0 ipu1_0 c66x
board_lib_tda2xx_CORELIST = c66x
#board_lib_am572x_CORELIST = c66x a15_0 ipu1_0
board_lib_am572x_CORELIST = c66x
I did not want to build any A15 or IPU.
9) In packages\ti\board\config.bld, I added the following lines:
var myCustomBoard= {
name: "myCustomBoard",
ccOpts: "-DevmAM572x -DSOC_AM572x",
targets: [C66LE],
lldFiles: ["$(PDK_INSTALL_PATH)/ti/drv/uart/soc/am572x/UART_soc.c",
"$(PDK_INSTALL_PATH)/ti/drv/spi/soc/am572x/SPI_soc.c"]
}
Again, this was to limit to the C66 and remove I2C.
10) In packages\ti\board\package.bld, I added the following line:
Pkg.otherFiles[Pkg.otherFiles.length++] = "src/myCustomBoard/src_files_myCustomBoard.mk";
To build:
In c:\ti\pdk_am57xx_1_0_5\packages, first run pdksetupenv.bat
To make just the board: gmake board