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.

AM4378: PRU and SPI0 NOR Flash Pin Mapping.. uBoot Partitions..

Part Number: AM4378
Other Parts Discussed in Thread: SYSCONFIG

Hi Team AM4,

My Customer has the following questions..

Our team needs clarification regarding the use of SPI0 NOR Flash. Appreciate your response on this.

Presently we are using SPI0 NOR Flash for booting the board. We are also in need of using PRU ICSSS 0 UART for our serial communication in addition to the other existing UARTS. But this is creating conflicts with the pins where we are looking for swapping SPI0 NOR Flash to some other pins. Here, instead of utilizing default SPI0 pins for NOR Flash where MLO is stored for booting the device, we want to use alternative SPI0 pins (SPI0_CS0; AD25, SPI0_d1; AB25, SPI0_SCLK; AE21) for interfacing the SPI NOR Flash. We want to understand if the Boot ROM can detect the SPI NOR flash if we move the SPI NOR flash to alternative SPI0 pins.

Since we have SPI0 default pins conflicting with PRU ICSS 0, we are also evaluating alternative approach to drop the SPI NOR flash and load MLO in eMMC boot0/boot1 partition. This is not the first FAT partition of the eMMC (FAT32). This is the boot area provided by the eMMC vendor to store the bootloader/boot config data. We want to understand whether the present TI uBoot is supporting boot0/boot1 partitions along with secure boot implementation.

 Also, we observed that it takes around 10 to 15 seconds to load the MLO from SPI0 NOR Flash. Is there a way to optimize this?

Our team need a clarification regarding the use of SPI0 NOR Flash. Appreciate your response on this.

Thanks, Merril

  • For SPI boot, the ROM code configures the pin-mux registers to use the pins defined in table 5-34 from the TRM shown below. Unfortunately this is hard coded and there aren't any options to change it.

    I took a quick look using the sysconfig tool at https://dev.ti.com/sysconfig and you're right, there are direct conflicts with the PRUICSS0 UART pins. I don't see any pin-muxing options to get around this. I did see that PRUICSS1 UART doesn't have conflicts but that of course depends on if you are already using those pins for something else.

    I don't think I've seen it done before but perhaps there's a way to boot from SPI0, then later on after boot, reconfigure the pins for PRUICSS0 UART and then at that point use the UART. This would likely require a board change to somehow add an external mux controlled by a GPIO to ensure there's no conflicts between the UART and SPI NOR flash when in one mode or the other. 

    I'll have to let our Linux experts answer the questions related to eMMC boot but I will say, eMMC is a common way to boot and store your filesystem. I'd first look over the U-Boot documentation in our SDK. The following section describes the eMMC partitioning

    https://software-dl.ti.com/processor-sdk-linux/esd/AM437X/07_03_00_005/exports/docs/linux/Foundational_Components/U-Boot/UG-Memory.html

  • Hi TI Linux Experts,

    Any Update?

    Thanks, Merril

  • Hello Merril

    Looks like this thread was misassigned. I have assigned it to a new owner.

    We will likely need some time to get back, expect a reply some time next week if not sooner.

    Regards

    Mukul