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.

questions about “boot Linux kernel on EVM6678L”

Hi all,

About the steps of “boot Linux kernel on EVM6678L

I summarized the boot steps according user guide:

1. install CCS

     update GEL file

2. run script: ./bootblob all

3. power off

    connect Linux host to EVM using XDS100

    keep switch as table 'EVM667x Program_evm'

    power on, init XDS100

    run script <CCS_DIR>/..../dss.sh program_evm.js evm6678l-le "eeprome51, nand"

 

Question:

Q1.  Is there some problem in the above steps?

Q2. In step 3, when run dss.sh script, using: program_evm.js evm6678l-le “eeprom51, nand”

                                                                Or using: program_evm.js evm6678l

Q3. In step 3, init XDS100, how can i know the init is ok? then run the dss script?

        (in other words, after init XDS100, when I run the dss script)

Q4.  After step 3,

        the Linux kernel have been boot ok?

        or the Linux kernel is just flashed into NAND, have not been boot?

        If not been boot, how to boot?

Q5.  When should change switch as table 'EVM667XL NAND BOOT' ?

Thank you ALL very much!

Best Regards

Jerry Yao

  • Hi, Jerry,

    A1: Your steps are very vague. Not sure what you mean "init XDS 100", but running program_evm, you don't need CCS.

    A2: if you type dss.sh program_evm.js, it will print correct syntax. using -le or not does not make any difference. The default is little endian.

    A3: I am not sure where you see this in the User's Guide. Could you point me to the page where it says "init XDS100"?

    A4: The program_evm only program the NAND/NOR depending on what images are specified in the dss command. You will need to follow steps in page 8 of the User's Guide to set the dip switch to boot from NAND.

    A5: Please see A4.

    Rex

  • Hi, Jerry,

    When I say CCS is not needed, I meant that you don't need to run CCS, but you do need to install it for the dss script file. However, you can test the connection before you program evm by bring up CCS and try to connect to the C6678 target. If you can connect, the program evm will be successful. Do exit out of CCS before running program evm.

    Rex

     

  • Hi Rex,

    Thank you so much for your reply in which there is lots of useful information.


    I have tried to program I2C and Nand using XDS100 and XDS560. And there are still some problems.

    Using XDS100, CCS can be connected to 6678. So, I quit CCS and tried to run dss script for programing.

    When programing nand.bin, after 3 hours, it still in programing? I have to quit it.

    Using XDS560 (SEED XDS560 V2), CCS can no be connected to 6678.

    I installed SEEDXDS560V2_LINUX_driver, and run CCS, then setup ccxml file, there is selected item "SEED XDS560V2 USB STM EMULATOR", that meens the driver is OK. But CCS can not be connected to 6678, with noting "init emulator failed". So I didn't try to run dss script.


    The following is my questions about the programing:

    Q1. Using XDS100, how long should the programing NAND cost?

    Q2. Using XDS560, Why CCS can not connect to 6678 using XDS560?

    Q3. Using SEEDXDS560V2, If the CCS can connect to 6678, I will run dss script. Before run dss script, I should excute CMD "export PROGRAM_EVM_TARGET_CONFIG_FILE=????.ccxml"
    In the file program_evm/configs/evm6678/evm6678le-linuxhost.ccxml, there is "Blackhawk XDS560V2-USB Mezzanine Emulator_0", not the "SEED XDS560V2 STM USB EMULATOR"(I used the SEED XDS560). what should I input the ????.ccxml?

    There are still other three questions NOT abouting programing.

    Q4. My board is a little different with EVM6678 about I2C. In my board, there is only eeprom50, and the bus_addr=50. So I need create file eepromewriter_input50.txt and link eeprome50.bin to ../../../product i2crom_0x50_c6678_le.bin.

    How to make i2crom_0x50_c6678_le.bin for my board? it is created from eepromewriter_evm6678l.out or what?


    Q5. If the linux kernel boot ok, where does the kernel run? in DSP inside RAM or other extral ram(such as DDR)?

    Q6. The whole user guide is based on Linux host.
    if i2c bin and i2c txt were both ok, can I copy them to windows host and program into I2C EEPROM in windows host?
    if nand bin and nand txt were both ok, can I copy them to windows host and I program into NAND flash in windows host?

    Thank you very much!

    Best Regards.

    Jerry Yao

  • Hi, Jerry,

    A1: I can't recall how long it takes, but it is very slow.

    A2-3: I am not familiar with SEED emulator, and not sure SEED is supported. At least, it was not tested on C6678. It supports BH XDS560v2 USB Mezzanine, and XDS100.

    A4: IBL source code is under projects/ibl

    A5: It will be external DDR3 memory.

    A6: You will need Windows CCS installed and run dss.bat instead. I have never tried to run it over samba connection.

    Rex

  • Hi Rex,

    Thank you so much for your answer!

    B.R.

    Jerry Yao

  • Hi, Jerry,

    Just want to add that the document says flashing through XDS100 takes 45-60 minutes, but takes more than 3 hours for you. Do you see the following lines when programming the NAND? It should show first flashing blocks, then reading and verifying blocks.

    Reading and verifying block 572 (9355264 bytes of 9437184)
    Reading and verifying block 573 (9371648 bytes of 9437184)
    Reading and verifying block 574 (9388032 bytes of 9437184)
    Reading and verifying block 575 (9404416 bytes of 9437184)
    Reading and verifying block 576 (9420800 bytes of 9437184)
    NAND programming completed successfully
    End programming NAND

    During the verifying process, if it failed, it will reflash, and re-verify up to 3 times ( I believe). Check if the block verification failed. If that is the case, the NAND may be bad.

    Rex

  • Hi Rex,

    Thank you for your information. I found some problem with my nand flash. 

    After fix it, I will program again, and take your reply as reference.

    B.R.

    Jerry

  • Hi Rex,

    One more question about Clock.

    In TI evm , 100M clock is produced by FPGA to DSP.

    In my board, 250M clock is produced by  FPGA to DSP.

    So I modify IBL and I update NAND writer.

    Is these enough? need I modify Linux kernel?

    Thank you very much!

    Jerry

  • Hi, Jerry,

    I think SOC_CLK_DEF in linux-c6x/arch/c6x/platforms/board-evm6678.c needs to change accordingly.

    Rex