Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page provides an overview of the Image Selector tool that is used to control the boot process for the Certified Ubuntu image.

Table of Contents

Table of Contents
excludeTable of Contents

Introduction

The Image Selector (ImgSel) utility is a lightweight application that runs as the first payload in the boot process of an AMD-Xilinx evaluation board. The utility reads board-level metadata to determine which board it is running on, configures the AMD-Xilinx device to use the correct primary payload, and then reboots the board into the selected payload.

...

Device Family

GitHub Source Code

Zynq UltraScale+ MPSoC

https://github.com/Xilinx/embeddedsw/tree/master/lib/sw_apps/imgsel

Versal ACAP

Source Code Coming Soon

Overview of Operation

The ImgSel utility makes use of several key hardware capabilities found in the Zynq UltraScale+ and Versal Adaptive SoC device families. Chief among these capabilities is the multiboot capability. The multi-boot feature combines the Golden Image Search and Fallback capabilities along with a dedicated hardware register to allow the user to specify a specific image (filename or flash offset) to be loaded during the next boot.

...

The Certified Ubuntu images utilize ImgSel-based boot extensively. The boot process for this image is described in detail here.

Board-Level Metadata (FRU Data)

Regardless of the device family, the board-level metadata is stored in an attached I2C EEPROM device. While it is possible for the metadata to contain much data than ImgSel requires, the

Zynq UltraScale+ MPSoC Boards (ZCU10x Boards)

The traditional Zynq UltraScale+ MPSoC boards in the ZCU10x family use a bespoke EEPROM data format. The metadata is stored in the layout described in the table below.

EEPROM Offset (Hex)

Field Name

Field Data Type

Field Length (bytes)

Field Example (ASCII)

Field Example (Hex)

0x00

Board Serial Number

ASCII

32

881437311925-10426

0x3838313433373331313932352D3130343236

0x20

Ethernet MAC ID

Binary

6

10203040506

0x10203040506

0xD0

Board Name

ASCII

16

ZCU102 (5 spaces)

0x5a43553130322020202020

0xE0

Board Revision

ASCII

6

1.1 (2 spaces)

0x312E31

Kria & Versal ACAP Boards

Kria SOM and Versal ACAP boards utilize the standard IPMI Information Storage Definition 1.0 format. The mapping of this data is described in detail on the Kria SOM EEPROM github.io page. This general format of this data is the same for both Kria SOM and Versal ACAP boards.

In general, Kria SOM boards follow the basic layout shown below.

Version 1 (K26 production SOM, KV260 SOM)

Record Area

Record Type

Record Start

Record End

Common Header

IPMI Standard

0x00

0x07

Board Info Area

IPMI Standard

0x08

0x67

DC Load MultiRecord

IPMI Standard

0x68

0x79

SOM MAC Addr MultiRecord

IPMI OEM Record

0x7A

0x88

SOM Memory Config MultiRecord

IPMI OEM Record

0x9B

0xF6

Version 2 (KR260 SOM)

Record Area

Record Type

Record Start

Record End

Common Header

IPMI Standard, refer to table 8-1 in IPMI Spec

0x00

0x07

Board Info Area

IPMI Standard, refer to table 11-1 in IPMI Spec

0x08

0x67

DC Load MultiRecord

IPMI Standard, refer to table 16-1 and 18-4 in IPMI Spec

0x68

0x79

SOM MAC Addr MultiRecord

IPMI OEM Record, refer to table in MAC Addr MultiRecords

0x7A

0x88

SOM Memory Config MultiRecord

IPMI OEM Record, refer to table in Memory Config MultiRecord

0x89

0xE4

For users designing their own Kria SOM carrier board, please consult the Kria SOM EEPROM Design Guide on github.io. This page details information such as the expected I2C address of the EEPROM and other relevant information.

Related Links