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/BEAGLEBK: Firmware installation questions

Part Number: BEAGLEBK

Tool/software: Linux

Hello,

first of all the good news, cross compile on Suse Linux PC works fine ( no error messages ).

I'm using the following script:

#! /bin/bash
export ARCH=arm
export CROSS_COMPILE=<path to>/ti-processor-sdk-linux-am335x-evm-04.03.00.05/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf-
export LD_LIBRARY_PATH=<path to libudev.so.0>:$LD_LIBRARY_PATH 
 make distclean
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tisdk_beaglebk-evm_defconfig
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
 make  zImage
 make  modules
 make ARCH=arm am335x-boneblack.dtb

With menuconfig I check only if AD converters are selected (M), Dallas 1 wire (M) and the PRU units.

Was everything as expected, no need to modify.

The script is running a couple of minutes on I7 PC. No errors.

Now my question:

1.) Do I have to modify am335x-boneblack.dts ?   Expecting it's based on my .config / tisdk_beaglebk-evm_defconfig. 4 AD channels are described. Concerning the PRU I'm unsure, because there is a section for pru, but the pin / mode mapping looks like a HDMI / LCD configuration. Not sure if and how pru1 is described. I need P8_39 .... P8_46 as pruout.

2.) Dallas 1-wire should be handled by a loadable kernel module. Do I have to modify the am335x-boneblack.dts for that?

Have to scp the files from Suse Linux PC to BeagleBone.  zImage and the .dtb to /boot

and the modules?

Thanks for help

Pepito

PS trying to execute the same script directly on BeagleBone ... up to now it still works, will see

  • Does it make sense to rsync processor-sdk-processor-sdk-linux from Suse PC to Beaglebone ( e.g. into /my_kernel/ ) and execute from here
    make modules_install ?
    If hat works, what is the correct order? First zImage and .dtb and then modules?
    ( I have no write access to Suse Linux USB and SD card, for security reasons )
  • Update,

    after I installed 512MB swap  I'm able to make  am335x-boneblack.dtb, make zImage, make modules and make modules_install directly on BeagleBone black.

    It's hard work for BeagleBone, but it works.

    BeagleBone is boots with my kernel.

    uname -a
    Linux am335x-evm 4.9.69 #2 PREEMPT Thu May 24 10:03:16 UTC 2018 armv7l GNU/Linux

    Think the next step is the am335x-boneblack.dts setup for my needs.

    Concerning the setup for pru1 I'm hanging.

    Pepito

  • Pepita,

    Re #1 above, I believe it is best to leave the pins alone in Linux (i.e. nothing in the DTS file) and pin mux them in the PRU.

    On #2, yes, you will need to add a section to the DTS to provide the module anything it needs from Device Tree. There should be a binding document for the driver that describes this. In the least, you'll need to make sure the pin is pin mixed properly. Refer to some of the others nodes in the DT for examples of this.

  • Hi Ron,

    create kernel and modules and install them is no longer an issue, that works fine now, directly on BeagleBone Bk and

    Suse Linux PC.

    Device tree configuration is currently still unclear.

    I was trying with TI PinMux Tool. I'm able to generate .dts file format,

    but it's not complete, isn't it? Was searching documentation how to proceed with output of the TI PinMux Tool,

    didn't find them.

    Thanks and have a good day

    Pepito

  • Pepito,

    Did you find:

    processors.wiki.ti.com/.../Pin_Mux_Utility_for_ARM_MPU_Processors

    This should help explain the process some more.
  • Hi Ron,

    yes, I did. But for Analog Inputs and 1-wire it did not help. BTW, the Tool generate only snippets of an dts file.

    I bet my dts for 1-wire ist not correct. But I  didn't find the failure. Analog in is similar, can load the module, but there are no devices.

    Have a good das

    Pepito

  • Hi Ron,

    1-wire works fine now. Problem: w1_gpio was not compiled / available.

    Now it is ... and it works fine. I'm really happy.

    With the analog inputs I have not so much luck.

    Still not working.

    I add this to my arch/arm/boot/dts/am335x-boneblack-prucape.dtsi

    &tscadc {                                         
            adc {                                                              
                    ti,adc-channels = <4 5 6 7>;    
            };                                         
    };       

    Anything else to do?

    Have a good day

    Pepito

  • Pepito,

    It looks like your last question was resolved here:

    e2e.ti.com/.../692873

    I hope that covers everything. If not, please feel free to post a new question or follow up
  • Correction for future users: you need to be in a privileged mode of operation to change pinmuxing, so you cannot change pinmuxing from the PRU firmware.