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.

IBL build problem

Other Parts Discussed in Thread: TEST2Has anyone successfully re-compiled the IBL on a Windows machine? I tried to recompile the IBL of MCSDK 2.1.2.5, using freshly downloaded MinGW tools: 1) update setupenvMsys.sh as follows: export C6X_BASE_DIR='"C:/Programme/Texas Instruments/C6000 Code Generation Tools 7.4.1"' export C6X_BASE_DIR_MSYS=/c/Programme/Texas\ Instruments/C6000\ Code\ Generation\ Tools\ 7\.4\.1 2) Start a MinGW sheell and change to the build directory: mcsdk_2_01_02_05/tools/boot_loader/src/ibl/make 3) set up the environment source setupenvMsys.sh 4) start the build for the 6657 EVM: make evm_c6657_i2c ENDIAN=little I2C_BUS_ADDR=0x51 During compilation I get a couple of errors: 1) calling sed seems to loose one '\' character somewhere (maybe the shell?). sed: -e expression #1, char 8: unterminated `s' command Changing the SED expression in mcsdk_2_01_02_05/tools/boot_loader/ibl/src/make/c64x/makeeco.mk from "s/\\/\//g" to 's/\\/\//g' removes this error. 2) comparing the freshly generated dependency file against a previous version fails because the file is not yet present. Checking command line dependencies diff: cdefdep: No such file or directory The command that causes this is located in many makefiles: ./ibl/src/device/c64x/make/makefile ./ibl/src/driver/c64x/make/makefile ./ibl/src/ecc/c64x/make/makefile ./ibl/src/ethboot/c64x/make/makefile ./ibl/src/hw/c64x/make/makefile ./ibl/src/interp/c64x/make/makefile ./ibl/src/main/c64x/make/makefile ./ibl/src/nandboot/c64x/make/makefile ./ibl/src/norboot/c64x/make/makefile ./ibl/src/test/test2/makestage2 ./ibl/src/util/ecc-test/Makefile ./ibl/src/util/i2cConfig/makestg2 ./ibl/src/util/romparse/Makefile @echo $(TARGET) > cdefdep.tmp @sh -c 'if diff -q cdefdep.tmp cdefdep ; then echo same ; else cp cdefdep.tmp cdefdep ; fi ' I guess this can be safely ignored?? 3) Dependency generation for assembly files relies on the variable $(MAKEDEP) to be set q -I -a -ele.oa -o$.da ../../../device/c64x/c64x.s /bin/sh: q: command not found MAKEDEP is set up to $(MAKEDEPPATH) in mcsdk_2_01_02_05/tools/boot_loader/ibl/src/make/c64x/makedefs.mk. I've replaced this with a call to the assembler using the -apd option. How should this be done regularly? regards Guenter
  • We are using mcsdk 2.1.2.6 (IBL 1.0.0.16) with EVM6678 and we've made the following changes in order to properly clean/build the IBL:

    1) ibl/src/make/c64x/makeeco.mk

    * change "s/\\/\//g" to 's/\\/\//g' (use single quotation marks)

    * remove "-o$$.$(ADEPEXT)" from GGAMAKEDEP definition as cl6x always use <source_file_name>.ppa as output file when generating dependencies

    2) ibl/src/make/c64x/makedefs.mk

    * MAKEDEP = $(AS)

    * MAKEDEP_OPT = -q -apd $(CPUFLAGS)

    * ADEPEXT = ppa

    3) ibl/src/make/Makefile

    * add find ../ -name *.ppa | xargs rm -f to the "clean" target

    4) ibl/src/make/makestg2

    * add $(RM) i2crom.ccs ibl_le.b ibl.b to the "spiRom" target actions (c.f. i2crom target)

    * add rm -rf ibl_$(TARGET)/spiRom*.ccs to the "cleant" target actions

    5) ibl/src/util/i2cConfig/makestg2

    * add @rm -f $(CLEAN_INTERMEDIATES) to the "clean2" target actions

    Windows-specific changes:

    1) ibl\src\util\bconvert\makefile

    * add rm -rf bconvert.exe bconvert64x.exe to the "clean" target actions

    2) ibl\src\util\romparse\Makefile

    * add rm -rf romparse.exe to the "clean" target actions

    3) setupenvMsys.sh

    * add PATH=/bin:$PATH so that "find" refers to msys's "find" and not Windows native "find.exe"

    Hope it helps,

    Dmitry

  • This solution came close, but didn't work for me, Dmitry.

    Part of the remaining problem is that CPUFLAGS results in arguments that have nothing to do with cl6x. In particular, the -ele.oa argument that gets generated seems to spark a whole lot of confusion in the compiler trying to do a makedep. The "le" means "little endian", and I think that's irrelevant at that stage.

    After trying various tactics to make this work, I hit on what I think is the correct one: in your MCSDK folder, throw the ibl directory for 2.1.2.6 out the window, and use the one from 2.1.2.5, which builds just fine.

    Hope this helps,

    Bill Z.