Tiger Lake RVP Board

Note

11th Generation Intel® Core Processor is formally known as Tiger Lake platform.

Supported Boards

SBL supports TGL UP3 DDR4 and TGL UP3 DDRLP4 platforms.

Building

To build SBL for Tiger Lake platform:

python BuildLoader.py build tgl

The output images are generated under Outputs directory.

Stitching

  1. Gather Tiger Lake IFWI firmware image

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

Note

StitchLoader.py currently only supports stitching with boot guard feature disabled. To stitch with Boot Guard enabled, please use StitchIfwi.py.

  1. Stitch SBL images into downloaded BIOS image:

    python Platform/TigerlakeBoardPkg/Script/StitchLoader.py -i <BIOS_IMAGE_NAME> -s Outputs/tgl/SlimBootloader.bin -o <SBL_IFWI_IMAGE_NAME>
    
    where -i = Input file, -o = Output file.
    

For example, stitching SBL IFWI image sbl_tgl_ifwi.bin from Tiger Lake firmware images downloaded:

python Platform/TigerlakeBoardPkg/Script/StitchLoader.py -i xxxx.bin -s Outputs/tgl/SlimBootloader.bin -o sbl_tgl_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_tgl_ifwi.bin to the target board using DediProg SF100 or SF600 programmer.

Note

Please check the alignment/polarity when connecting Dediprog to the board. Please power off the board before connecting the Dediprog.

Note

Please set the dediprog to flash the ifwi binary from offset 0

Note

The connector labelled J4H2 on the target board is for DediProg.

Note

Please disconnect Deidprog before powering up the board again.

Slimbootloader binary for capsule image

Please refer to the build command above or Build Tool.

slimbootloader binary generated in outputs\tgl\slimbootloader.bin can be used for generating capsule image

Capsule image for Tiger Lake

To generate capsule image for Tiger Lake platform:

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

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

Triggering Firmware 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. Boot and press any key to enter SBL shell

  3. Type command fwupdate from shell

    Observe SBL resets the platform and performs update flow. It resets 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
    BoardID: 0x01
    PlatformName: TGLU_DDR
    ...
    ============= Intel Slim Bootloader STAGE2 =============
    ...
    Jump to payload
    ...
    Starting Firmware Update
    ...
    =================Read Capsule Image==============
    ...
    CapsuleImage: 0x7770A010, CapsuleSize: 0x99128C
    HASH verification for usage (0x00000400) with Hash Alg (0x1): Success
    SignType (0x2) SignSize (0x100)  SignHashAlg (0x1)
    RSA verification for usage (0x00000400): Success
    Set next FWU state: 0x7F
    Get current FWU state: 0x7F
    ...
    Updating 0x00891000, Size:0x10000
    ................
    Finished     1%
    ...
    Finished    99%
    Updating 0x002B1000, Size:0x0A000
    ...............
    Finished   100%
    Set next FWU state: 0x7E
    Reset required to proceed with the firmware update.
    
    ============= Intel Slim Bootloader STAGE1A =============
    ...
    ============= Intel Slim Bootloader STAGE1B =============
    ...
    BOOT: BP1
    MODE: 18
    BoardID: 0x01
    PlatformName: TGLU_DDR
    ...
    ============= Intel Slim Bootloader STAGE2 =============
    ...
    =================Read Capsule Image==============
    ...
    CapsuleImage: 0x7770A010, CapsuleSize: 0x99128C
    HASH verification for usage (0x00000400) with Hash Alg (0x1): Success
    SignType (0x2) SignSize (0x100)  SignHashAlg (0x1)
    RSA verification for usage (0x00000400): Success
    Get current FWU state: 0x7E
    ...
    Updating 0x00891000, Size:0x10000
    ................
    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 ...
    

Debug UART

For Tiger Lake, serial port connector is labelled J4A1 on board

Note

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

Booting Yocto Linux

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

  1. Download Yocto Linux

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

  3. Boot the bootable OS image from USB key on the board.

Board ID Assignments

Each TGL UP3 RVP board is assigned with a unique platform ID

Board

Platform ID

Tiger Lake UP3 DDR4

0x01

Tiger Lake UP3 LPDDR4

0x03

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.