Changes between Version 123 and Version 124 of pcn


Ignore:
Timestamp:
05/22/2024 09:04:03 PM (4 months ago)
Author:
Ryan Erbstoesser
Comment:

update 101

Legend:

Unmodified
Added
Removed
Modified
  • pcn

    v123 v124  
    906906== PCN101 - Venice Migration to Boot firmware on eMMC boot0 hardware partition ==
    907907* Date: 05-17-2024
    908 * Gateworks standard product Venice boards with a manufacturing date of 2023-11-06 or more recent now have boot firmware that is programmed onto the eMMC boot0 hardware partition instead of the eMMC user hardware partition used prior to this date. The operating system is still programmed into the eMMC user hardware partition. Please contact Gateworks support with any questions.
     908* Gateworks standard product Venice boards with a manufacturing date of 2023-11-06 or more recent now have boot firmware that is programmed onto the eMMC boot0 hardware partition instead of the eMMC user hardware partition used prior to this date. The operating system is still programmed into the eMMC user hardware partition.
     909
     910eMMC FLASH devices have multiple 'hardware partitions' per the JEDEC specification. The 'boot0' and 'boot1' hardware partitions are smaller than the 'user' hardware partition and are intended to be used for boot firmware. Often, depending on the FLASH manufacturer specific details of the device, the boot0 and boot1 hardware partitions will also use single-bit memory cells vs multi-bit memory cells used on user and thus be more robust. The boot0 and boot1 hardware partitions are always fairly small in size compared to the 'user' hardware partition.
     911
     912Putting boot firmware on the boot0 or boot1 hardware partition provides the advantage of greater separation between your boot firmware and your OS. The IMX8M based Venice product family supports IMX8MM (mini), IMX8MP (plus), and IMX8MN (nano) SoC's which each require different binary incompatible boot firmware. By not having the boot firmware on the user hardware partition it allows distributing binary-compatible OS software (not including boot firmware) via a compressed disk image.
     913
     914For these reasons Gateworks Venice boards with a manufacturing date of 2023-11-06 or more recent have boot firmware that is programmed onto the eMMC boot0 hardware partition instead of the eMMC user hardware partition used prior to this date. This involves both programming the OS and boot firmware on the respective hardware partitions (user and boot0 respectively) as well as setting the partition config register such that the eMMC has boot0 active on power-up to boot from it.
     915
     916While Gateworks recommends using boot0 for boot firmware is is ultimately up to the user to decide but note that where you put the boot firmware depends both on the SoC as well as the hardware partition:
     917imx8mm user/boot0/boot1: 33K
     918imx8mp/imx8mn user: 32K
     919imx8mp/imx8mn boot0/boot1: 0K
     920
     921Modern Gatework boot firmware will determine what hardware partition the device booted from and set some env variables (bootpart and bootblk) that are used in the U-Boot ‘update_firmware’ boot script to make the firmware update process from U-Boot handle this.
     922
     923If you want to ‘change’ what hardware partition your board is booting from you need to program the boot firmware into the correct SoC-specific and partition-specific offset (above) as well as set the eMMC partition config register specifying what partition is active on power-up. This is easiest done by using the Gateworks JTAG adapter and programming method with a JTAG image as the image contains details such as what partition and offset to program the image to as well as how to configure the partition configuration. So if you run into trouble by setting the partition configuration register wrong or by putting the boot firmware in the wrong place the easiest recovery is to flash the latest Gateworks boot firmware (see https://dev.gateworks.com/venice/images/).
     924
     925The implications of this change are that it could change the firmware image you provide to Gateworks if you have a Gateworks special or custom build where we flash your custom firmware onto the boards. When providing Gateworks with firmware images for custom and special builds where we program on customer firmware it is important to provide one of the following to us:
     926- A compressed disk image intended for the eMMC user hardware partition that has both your boot firmware as well as your OS firmware indicating the eMMC will boot from user. In this case the test fixture will configure the eMMC to boot from user
     927- A JTAG binary image containing your boot firmware, the boot partition configuration (the –partconf argument to mkimage_jtag), and OS firmware
     928- A JTAG binary image containing your boot firmware and partition config as well as a compressed disk image to be installed on user
     929
     930Modern versions of the Venice U-Boot bootloader will tell you what hardware partition the board is booting from via the ‘Trying to boot from eMMC boot0’ message displayed early in boot by the SPL (in this case indicating boot0 is used).
     931
     932For details on determining the boot partition and changing it please see:
     933https://trac.gateworks.com/wiki/venice/boot#eMMCbootpartition
     934
     935
     936For more information on eMMC and hardware partitions see:
     937https://trac.gateworks.com/wiki/MMC#emmc
     938
     939
     940Please contact Gateworks support with any questions.