Texas Instruments AM64x SKEVM

Building

When building the Cortex R5 u-boot, it builds for all different variants:

  • hs-fs (High Security/Field Securable) also known as SK-AM64B: This is a SoC/board state before a customer has blown the keys in the device. i.e. the state at which HS device leaves TI factory. In this state, the device protects the ROM code, TI keys and certain security peripherals. In this state, device do not force authentication for booting, however DMSC is locked.
  • hs (High Security/Security Enforced) also known as SK-AM64B: This is a SoC/board state after a customer has successfully blown the keys and set “customer keys enable”. In HS-SE device all security features are enabled. All secrets within the device are fully protected and all of the security goals are fully enforced. The device also enforces secure booting.
  • gp (General Purpose) variant also known as SK-AM64: This is a SoC/board state where there is no device protection and authentication is not enabled for booting the device.

The default variant is the hs-fs. To boot an image on the others variants without pre-flash files manipulations on the target file-system we need to change the SYSFW_SUFFIX variable. The following changes the default to gp so the image produced boots on that variant:

echo 'SYSFW_SUFFIX:am64xx-evm-k3r5 = "gp"' >> meta-subscriber-overrides/conf/machine/include/lmp-factory-custom.inc

Preparation

Ensure you replace the <factory> placeholder below with the name of your Factory.

Download necessary files from https://app.foundries.io/factories/<factory>/targets

  1. Click the latest Target with the platform-devel trigger.

    ../../_images/generic-steps-1.png
  2. Expand the run in the Runs section (by clicking on the + sign) which corresponds with the name of the board and download the Factory image for that machine.

    E.g: lmp-factory-image-am64xx-evm.wic.gz
    ../../_images/am64xx-sk-steps-2.png
  3. Extract the file lmp-factory-image-am64xx-evm.wic.gz:

    gunzip lmp-factory-image-am64xx-evm.wic.gz
    

Hardware Preparation

Set up the board for booting from MMC1 - SDCard:

  1. Ensure that the power is off (remove cable from J8)
../../_images/am64xx-sk-top.png

Fig. 84 AM64xx-sk top view

  1. Put the am64xx-sk into boot from SDCard Mode:
../../_images/am64xx-sk-switches.png

Fig. 85 Switch settings

Flashing

Now, flash the lmp-factory-image-am64xx-evm.wic.gz retrieved from the previous section to an SD Card. This contains the system image that the device will boot.

  1. Determine the disk you want to flash by finding the device with the SIZE that matches your flash drive in the list below. Be sure to ignore partitions (where TYPE is part). Save the NAME for your flash drive to be used in a later step as the disk path. e.g: /dev/mmcblk0, /dev/sdb:

    lsblk -po +MODEL
    

    Example Output:

    $ lsblk -po +MODEL
    NAME             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT                 MODEL
    /dev/mmcblk0     179:0    0  29.8G  0 disk
    ├─/dev/mmcblk0p1 179:1    0  41.6M  0 part /mnt/boot
    └─/dev/mmcblk0p2 179:2    0  29.8G  0 part /mnt/otaroot
    /dev/zram0       254:0    0    26G  0 disk /out
    /dev/nvme0n1     259:0    0 953.9G  0 disk                            SSDPEKKF010T8 NVMe INTEL 1024GB
    
  2. Flash the disk.

    Replace <system-image> with the path to your system image.
    Replace /dev/mmcblk<X> with your chosen disk path.
gunzip -c <system-image> | sudo dd of=/dev/mmcblk<X> bs=4M iflag=fullblock oflag=direct status=progress
  1. Determine the disk you want to flash by finding the device with the SIZE that matches your flash drive in the list below. Be sure to ignore partitions (lines without the * in the SIZE). Save the IDENTIFIER for your flash drive to be used in a later step as the disk path. e.g: /dev/disk3:

    diskutil list
    

    Example Output:

    $ diskutil list
    /dev/disk3 (internal, physical):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:     FDisk_partition_scheme                        *15.5 GB    disk3
       1:             Windows_FAT_32 boot                    45.7 MB    disk3s1
       2:                      Linux                         15.5 GB    disk3s2
    
  2. Flash the disk.

    Replace <system-image> with the path to your system image.
    Replace /dev/disk<X> with your chosen disk path.
gunzip -c <system-image> | sudo dd of=/dev/disk<X> bs=4M

Windows has no dd like tool built into the operating system to flash your image to disk. In this case, we recommend you download and use either Win32 Disk Imager or Rufus.

Note

Your system image is in a compressed wic.gz format. To follow these next steps, you must extract it using a tool like 7zip which will leave you with a .wic image file.

Using Rufus

  1. Download and run Rufus.
  2. Select your disk.
  3. SELECT your <system-image>.
  4. START the flash procedure.

Using Win32 Disk Imager

  1. Download and run Win32 Disk Imager as Administrator.
  2. Click the blue folder icon.
  3. Select your <system-image>
  4. Select your disk via the Device dropdown.
  5. Click Write
  6. Wait for the image to finish writing, and a Write Successful dialog will appear.
  1. Remove the flash drive from the host and insert/connect it into the board.
  2. Power on the board to boot the new image.
../../_images/am64xx-sk-bottom.png

Fig. 86 SDCard location