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/AM3351: TI PSDK changes in kernel for custom board

Part Number: AM3351
Other Parts Discussed in Thread: UNIFLASH

Tool/software: Linux

Hi,

We have designed a custom board referenced from BeagleBone Black. We are porting TI Linux PSDK-5.00 for our custom board. We were able to boot SPL and U-boot. Porting linux kernel, we have currently made the changes in device tree files. These changes were almost same as the device tree changes made in U-boot. Apart from this, I understand that changes in tisdk_am335x-evm_defconfig are required. Kindly refer to any TI wiki which lists changes required in the defconfig file for a custom board referenced from Beaglebone Black. Also, please let me know any other changes which might be relevant for us.

 

Another question – Our custom board has boot sequence MMC1(EMMC)->MMC0->UART0->USB0

Using Uniflash, I will flash the kernel code on EMMC through USB0. Once I flash the EMMC, will I be able to use USB0 again to flash the EMMC if there is a code change required? 

Thanks!

  • Hi Apurva,

    Apurva Ankleshwaria89 said:
    Apart from this, I understand that changes in tisdk_am335x-evm_defconfig are required. Kindly refer to any TI wiki which lists changes required in the defconfig file for a custom board referenced from Beaglebone Black.

    This is not a mandatory step. Note that all AM335x TI boards (EVM, StarterKit, ICE, BBB) are using one common defconfig file:

    linux-kernel/arch/arm/configs/tisdk_am335x-evm_defconfig

    You will need to change defconfig file if you want to add a feature/driver that is not enabled by default or to remove a feature/driver that is not needed for your custom board. And defconfig file is not edited directly, but you will need to change it through menuconfig, then you should use your .config file.

    See also below pointers regarding porting to custom board:

    Apurva Ankleshwaria89 said:

    Another question – Our custom board has boot sequence MMC1(EMMC)->MMC0->UART0->USB0

    Using Uniflash, I will flash the kernel code on EMMC through USB0. Once I flash the EMMC, will I be able to use USB0 again to flash the EMMC if there is a code change required? 

    I will check this one and come back to you.

    Regards,
    Pavel

  • Hi Pavel,

    Thanks for your response. Few additional points regarding the second question:

    1. Even though MMC0 is part of boot sequence, we don't have anything connected to it

    2. The boot sequence is hard wired. 

    Thanks!

  • Hi Pavel,

    Awaiting your response on the second question.

    Thanks!
  • Apurva,

    I checked the Uniflash user guide (link below).

    It is assumed that the flash on the target board is blank, or needs to be overwritten. Therefore, the target board has nothing that it can execute except the bootloader stored in the ROM on the AM335x/AM437x SoC. So, the ROM bootloader will use either USB or Ethernet to request files served by Uniflash on the Host PC and once transferred, executed on the target board.

    The image to write the flash on the target board, which is composed of the SPL, U-Boot, and debrick or flasher files indicated. These will be pulled over by the bootloader in ROM when the target board is powered on (assuming the boot settings are set up to boot from USB or Ethernet).

    Per mine understanding, the above means that you need to be in USB boot mode when trying to reflash the eMMC through Uniflash USB.

    Regards,

    Pavel

  • Yes. That is my understanding too. So does that mean that if USB boot mode is further down in the sequence(after EMMC), we can never reflash EMMC?

    Can we stop the boot process during U-boot and erase the EMMC before the kernel gets booted. Once EMMC erased, we can flash EMMC again through Uniflash. Would that work?
  • Apurva,

    Apurva Ankleshwaria89 said:
    Yes. That is my understanding too. So does that mean that if USB boot mode is further down in the sequence(after EMMC), we can never reflash EMMC?

    I think yes

    Apurva Ankleshwaria89 said:
    Can we stop the boot process during U-boot and erase the EMMC before the kernel gets booted. Once EMMC erased, we can flash EMMC again through Uniflash. Would that work?

    If you can erase the MLO/SPL (1st stage bootloader, minimal bootloader) from u-boot prompt or from user space, then when you reboot, the boot flow will skip eMMC and proceed to the next boot devices in the list. This should work.

    Regards,
    Pavel