Won’t boot from eMMC

Forums Devices Won’t boot from eMMC

Tagged: 

Viewing 3 reply threads
  • Author
    Posts
    • #12036
      Bill RussellBillR
      Participant

        Our custom board is based off the Red board.
        eMMC works in general, but can’t boot off it, only SD card.
        Our TF-A device tree has the same definitions as Red Board’s device tree for sdmmc2.

        Using these trusted boot images which work fine when used for SD card boot:
        fsbl1 = tf-a.stm32
        fsbl2 = tf-a.stm32
        ssbl = u-boot.stm32

        I have followed the procedure from the relevant readme’s such as:
        https://github.com/ARM-software/u-boot/blob/master/board/st/stm32mp1/README,
        using Step 7 “Prepare SD card” but instead doing it to /dev/mmcblk2 for eMMC while running off SD card.

        Our chip is Rev Z, which I understand fixes a eMMC boot errata. Our eMMC is Micron 16GB.

      • #12037
        Bill RussellBillR
        Participant

          eMMC info from u-boot, in case its of use:

          OSD32MP> mmc dev 1
          switch to partitions #0, OK
          mmc1(part 0) is current device
          OSD32MP> mmc info
          Device: STM32 SD/MMC
          Manufacturer ID: 13
          OEM: 14e
          Name: S0J56
          Bus Speed: 52000000
          Mode: MMC High Speed (52MHz)
          Rd Block Len: 512
          MMC version 5.1
          High Capacity: Yes
          Capacity: 14.8 GiB
          Bus Width: 8-bit
          Erase Group Size: 512 KiB
          HC WP Group Size: 8 MiB
          User Capacity: 14.8 GiB WRREL
          Boot Capacity: 31.5 MiB ENH
          RPMB Capacity: 4 MiB ENH

        • #12038
          Bill RussellBillR
          Participant

            I followed directions to instead do it from u-boot and it will boot now.
            I was unaware that eMMC has some dedicated boot partitions.

            a) prepare GPT on eMMC,
            example with 2 partitions, bootfs and rootfs:

            # setenv emmc_part “name=ssbl,size=2MiB;name=bootfs,type=linux,bootable,size=64MiB;name=rootfs,type=linux,size=512”
            # gpt write mmc 1 ${emmc_part}

            b) copy SPL on eMMC on first boot partition
            (SPL max size is 256kB, with LBA 512, 0x200)

            # ext4load mmc 0:4 0xC0000000 tf-a.stm32
            # mmc dev 1
            # mmc partconf 1 1 1 1
            # mmc write ${fileaddr} 0 200
            # mmc partconf 1 1 1 0

            b) copy U-Boot in first GPT partition of eMMC

            # ext4load mmc 0:4 0xC0000000 u-boot.stm32
            # mmc dev 1
            # part start mmc 1 1 partstart
            # part size mmc 1 1 partsize
            # mmc write ${fileaddr} ${partstart} ${partsize}

            To boot from eMMC, select BootPinMode = 0 1 0 and reset.

          • #12043
            Neeraj Kumar Reddy DantuNeeraj Dantu
            Moderator

              BillR,

              Glad you are able to resolve your problem. As you indicated, eMMC and SD card have different partition layouts. Please see https://wiki.st.com/stm32mpu-ecosystem-v2/wiki/STM32CubeProgrammer_flashlayout for reference.

              Best,
              Neeraj

          Viewing 3 reply threads
          • You must be logged in to reply to this topic.