Alder Lake Platforms
Note
12th Generation Intel® Core™ Processor, formally known as Alder Lake family.
Supported Boards
SBL supports various platforms corresponding to Alder Lake-S, Alder Lake-P, Alder Lake-PS, Alder Lake-N, Arizona Beach (AZB) and Amston Lake Processors.
Each Alder Lake board is assigned with a unique platform ID.
Board
Platform ID
SPI Programmer
UART
PLAT
ADL-S DDR4
0x0017
J1G2
U6J1
adls
ADL-S DDR5
0x001B
J1G2
U6J1
adls
ADL-P DDR5
0x0012
J1C1
J9J3
adlp
ADL-P LPDDR5
0x0013
J1C1
J9J3
adlp
ADL-P LPDDR4
0x0010
J1C1
J9J3
adlp
ADL-PS DDR5 RVP
0x000B
J25
J109
adlps
ADL-PS DDR5 CRB
0x000D
J31
J34
adlps
ADL-N DDR5 CRB
0x000A
J2E2
J9A1
adln
AZB LPDDR5 CRB
0x0009
J30
J32
azb
ASL DDR5 CRB
0x000A
J2E2
J9A1
adln
Debug UART
For Alder 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 Alder Lake platform:
python BuildLoader.py build <PLAT>
<PLAT> = adlp, adls, adlps, adln, azb
Note
adln platform option supports both ADL-N and ASL platforms.
The output images are generated under Outputs
directory.
Stitching
Gather Alder Lake IFWI firmware image
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 Alder Lake.
Note
StitchLoader.py
currently does not support stitching with boot guard feature enabled.
To stitch with Boot Guard enabled, please use StitchIfwi.py
.
Stitch SBL images into downloaded BIOS image:
python Platform/AlderlakeBoardPkg/Script/StitchLoader.py -i <BIOS_IMAGE_NAME> -s Outputs/<plat>/SlimBootloader.bin -o <SBL_IFWI_IMAGE_NAME>
where -i = Input file, -o = Output file, plat = adls/adlp
For example, to stitch SBL IFWI image sbl_adls_ifwi.bin
from ADL-S downloaded firmware images:
python Platform/AlderlakeBoardPkg/Script/StitchLoader.py -i xxxx.bin -s Outputs/adls/SlimBootloader.bin -o sbl_adls_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_adlx_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:
The alignment/polarity when connecting Dediprog to the board.
The power to the board is turned off while the programmer is connected (even when not in use).
The programmer is set to update the flash from offset 0x0.
Capsule image for Alder 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 Alder 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 Alder 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:
Copy
FwuImage.bin
into root directory on FAT partition of a USB keyBoot and press any key to enter SBL shell
Type command
fwupdate
from shellSBL 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 ...
Booting Yocto Linux
You may need to change boot options to boot from USB. See Change Boot Options.
Download Yocto Linux
Create bootable USB key. For example: In Windows, Rufus can be used. In Linux, etcher app can be used.
Boot the bootable OS image from USB key on the board.
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.