+
+ +
+

Arrow Lake Platforms

+
+

Note

+

15th Generation Intel® Core™ Processor, formally known as Arrow Lake family.

+
+
+

Supported Boards

+

SBL supports various platforms corresponding to Arrow Lake-H , Arrow Lake-U and Arrow Lake-S.

+

Each Arrow Lake board is assigned with a unique platform ID.

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Board

Platform ID

SPI Programmer

UART

PLAT

ARL-H/U DDR5 RVP

0x0018

J1G2

J9B2

arlh / arlu

ARL-H/U DDR5 CRB

0x001A

J3H2

J7A1

arlh / arlu

ARL-H/U LPDDR5

0x0019

J1G2

J9B2

arlh / arlu

ARL-S DDR5 RVP S02

0x0017

J2B4

J6J3

arls

ARL-S DDR5 RVP S03

0x0016

J122198

J6J3

arls

ARL-S DDR5 RVP S04

0x0015

Flash on SPI Socket

J6J3

arls

+
+
+
+

Debug UART

+

For Arrow Lake platforms, serial port connector location can be found from the above table for each supported target board.

+
+

Note

+

Configure host PuTTY or minicom to 115200bps, 8N1, no hardware flow control.

+
+
+
+

Building

+

To build SBL for any Arrow Lake platform:

+
python BuildLoader.py build <PLAT>
+
+<PLAT> = arlh / arlu / arls
+
+
+

Note: The output images are generated under Outputs directory.

+
+
+

Stitching

+
    +
  1. Gather Arrow Lake IFWI firmware image

  2. +
+
+

Users can either download the full IFWI image if the IFWI image release is available or read the existing IFWI image on the board using SPI programmer. +This image contains additional firmware ingredients that are required boot on Arrow Lake.

+
+
+

Note

+

StitchLoader.py currently does not support stitching with boot guard feature enabled. +To stitch with Boot Guard enabled, please use StitchIfwi.py.

+
+
    +
  1. Stitch SBL images into downloaded BIOS image:

    +
    python Platform/ArrowlakeBoardPkg/Script/StitchLoader.py -i <BIOS_IMAGE_NAME> -s Outputs/<plat>/SlimBootloader.bin -o <SBL_IFWI_IMAGE_NAME>
    +
    +
    +
  2. +
+
+

where -i = Input file, -o = Output file, plat = arlh, arlu or arls

+
+

For example, to stitch SBL IFWI image sbl_arlh_ifwi.bin from ARL-H downloaded firmware images:

+
python Platform/ArrowlakeBoardPkg/Script/StitchLoader.py -i xxxx.bin -s Outputs/arlh/SlimBootloader.bin -o sbl_arlh_ifwi.bin
+
+
+

For more details on stitch tool, see Stitch Tool on how to stitch the IFWI image with SBL.

+
+
+

Flashing

+

Flash the generated sbl_arlh_ifwi.bin to the target board using a DediProg SF100 or SF600 programmer.

+
+

Note

+

Refer the table above to identify the connector on the target board for SPI flash programmer. When using such device, please ensure:

+
    +
  1. The alignment/polarity when connecting Dediprog to the board.

  2. +
  3. The power to the board is turned off while the programmer is connected (even when not in use).

  4. +
  5. The programmer is set to update the flash from offset 0x0.

  6. +
+
+
+
+

Capsule image for Arrow Lake

+

The Slimbootloader.bin image generated from the build steps above can be used to create a capsule image. +Please refer to Build Tool on generating SBL image.

+

For all Arrow Lake platforms, the below command can be used:

+
python ./BootloaderCorePkg/Tools/GenCapsuleFirmware.py -p BIOS Outputs/<plat>/SlimBootloader.bin -k <Keys> -o FwuImage.bin
+
+
+

For more details on generating capsule image, please refer Generating capsule.

+
+
+

Triggering Firmware Update

+

SBL for Arrow Lake uses BIT16 of PMC I/O register (Over-Clocking WDT Control (OC_WDT_CTL) - Offset 54h) to trigger firmware update. When BIT16 is set, SBL will set the boot mode to FLASH_UPDATE. +Please refer to Firmware Update on how to trigger firmware update flow. +Below is an example:

+

To trigger firmware update in SBL shell:

+
    +
  1. Copy FwuImage.bin into root directory on FAT partition of a USB key

  2. +
  3. Boot and press any key to enter SBL shell

  4. +
  5. Type command fwupdate from shell

    +

    SBL will reset the platform and initiate firmware update flow. The platform will reset multiple times to complete the update process.

    +

    A sample boot messages from console:

    +
    Shell> fwupdate
    +...
    +============= Intel Slim Bootloader STAGE1A =============
    +...
    +============= Intel Slim Bootloader STAGE1B =============
    +...
    +BOOT: BP0
    +MODE: 18
    +...
    +============= Intel Slim Bootloader STAGE2 =============
    +...
    +Jump to payload
    +...
    +Starting Firmware Update
    +...
    +=================Read Capsule Image==============
    +...
    +................
    +Finished     1%
    +...
    +Finished    99%
    +...
    +...
    +
    +Reset required to proceed with the firmware update.
    +
    +============= Intel Slim Bootloader STAGE1A =============
    +...
    +============= Intel Slim Bootloader STAGE1B =============
    +...
    +BOOT: BP1
    +MODE: 18
    +...
    +============= Intel Slim Bootloader STAGE2 =============
    +...
    +=================Read Capsule Image==============
    +...
    +................
    +Finished     1%
    +...
    +Finished    99%
    +Updating 0x002B1000, Size:0x0A000
    +...............
    +Finished   100%
    +Set next FWU state: 0x7C
    +Firmware Update status updated to reserved region
    +Set next FWU state: 0x77
    +Reset required to proceed with the firmware update.
    +...
    +==================== OS Loader ====================
    +
    +Starting Kernel ...
    +
    +
    +
  6. +
+
+
+

Booting Yocto Linux

+

You may need to change boot options to boot from USB. See Change Boot Options.

+
    +
  1. Download Yocto Linux

  2. +
  3. Create bootable USB key. For example: In Windows, Rufus can be used. In Linux, etcher app can be used.

  4. +
  5. Boot the bootable OS image from USB key on the board.

  6. +
+

See Platform ID Detection using GPIOs for more details.

+

To customize board configurations in *.dlt file, make sure to specify PlatformId to the corresponding values for the board.

+

See Configuration Tools for more details.

+
+
+ + +
+