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.

Linux/AM5728: SDK customization

Part Number: AM5728

Tool/software: Linux

hi all,

i need to edit in pinmux with pinmux tool (to disable ethernet device) and built a new SD card image from SDK 15.00.00.15 with this modification, so please how to do it ? 

thank you,

  • Hello Walid,

    You can find the Ethernet pinmuxes in <Processor SDK>/board-support/u-boot-<version>/board/ti/am57xx/mux_data.h file. To disable the interface, change the &mac status to disabled in <Processor SDK>/board-support/u-boot-<version>/am57xx-beagle-x15-common.dtsi and <Processor SDK>/board-support/linux-<version>/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi or better remove all the Ethernet related stuff in these device trees. Type make u-boot_clean && make u-boot from the top Processor SDK directory to rebuild the U-Boot and copy the generated MLO, u-boot.img from U-Boot directory to SD card's boot partition. Type make linux-dtbs to compile the Linux dtbs and copy your board's dtb from <Processor SDK>/board-support/linux-<version>/arch/arm/boot/dts/ to SD card's /rootfs/boot/ partition. If you want to change the Ethernet pinmuxes instead of disabling them, please refer to the AM57xx IO Configuration Requirements here

    Best regards,
    Kemal

  • Hello Kemal,


    i did this procedure and i checked when i do ifconfig under linux that thte eth0 and the eth1 are not displayed but when i run my code on DSP without launching linux (with CCS) ethernet communication works normally but when i launches the code on DSP and linux is launched the connection is failed
    Do you have an idea how to fix this behavior?
    i thought he has a relationship with source table no?
  • Hello Walid,

    If we assume that the ARM cores are the masters and are running Linux, but you want one of the slave DSP cores to communicate over ethernet, then you do NOT want to change your ethernet pinmuxing in uboot. That is because the pinmuxing done in uboot will apply for both the ARM Linux cores and the DSP cores.

    However, you should still disable all ethernet related stuff in the Linux device tree files so that Linux does not get in the way while your DSP is trying to communicate over ethernet.

    Regards,
    Nick
  • Hello Nick,

    thank you for your reply.

    Yes this is what i did, I disabled all ethernet related stuff in the Linux device tree files but still not working. As i said when i run my code on DSP without launching linux (with CCS) ethernet communication works normally but when i launches the code on DSP.

    Do you have any suggestions for checking other things?

    Regards,
    Walid

  • Hello Walid,

    Could you verify that your pinmuxing in uboot is properly set up to enable ethernet communication?

    Regards,
    Nick
  • Hello Nick,

    Yes the pinmuxing in uboot is properly set up to enable ethernet communication.

    Regards,
    Walid

  • Hello

    Any information please?

    Best regards
  • Hello,

    If the ARM is running Linux, the DSP image will need to be loaded using remoteproc. Remoteproc parses system resources and configures the DSP MMU. If you're loading over CCS, this step will be missed.

    Please take a look at the following guide which shows how to add IPC and a resource table to an existing DSP application:
    software-dl.ti.com/.../How_to_Guides.html

    If you have any questions please let us know.
  • Hello Sahin,

    Thank you for your reply. I have another question, i try to check the gmac configuration and compare this configuration when dsp is launched without a15 (with ccs) and when  dsp is launched by a15 (linux) how can i do it?

  • You can connect to the DSP through CCS after it has already been loaded by Linux. Just make sure to not run any GEL files or connect to the A15.

    You can add a "breakpoint" to your code by putting in a while loop:

    {
    volatile int foo = 1;
    while (foo);
    }

    and then connect, load symbols, and change "foo" to 0 to continue. The program counter, memory windows, registers, call stack, and ROV can be viewed at this point too.

    Also, the IPUs and DSPs auto-idle by default so you will need to disable auto-suspend, please refer to the following documents for instructions on how to do this.

  • Hello Sahin,

    thank you very much, now it's clear and i can dump gmac configuration.

    My problem that when i start the code of tcp/ip communication with launched just the DSP1 from CCS, it works normally but when i start it from linux (A15) (linux launch DSP1 and start the code) i have an error "No route to host" do you have an idea what register/adress that i have to check it and compare in the two cases to find the problem? 

    knowing that i disabled eth0 and eth1 from device tree of linux so the two ethernet device are free and not used by A15.

    i need your help to know what can i check to find the problem. thank you