Apollo Lake CRB Boards

Note

Intel Atom® Processor E3900 is formally known as Apollo Lake platform.

Board ID Assignments

SBL supports the following board variations based on Apollo Lake platform. Each board is assigned a unique platform ID by reading a set of GPIO pins (25, 26 and 30).

Board Platform ID
Oxbox Hill 6
Leaf Hill 7
Juniper Hill 8

See Dynamic Platform ID Detection for more details.

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

See Configuration Editor for more details.

Debug UART

For Apollo Lake platform, LPSS UART Port 2 is the debug UART configured in SBL.

Building

To build:

python BuildLoader.py build apl

The output images are generated under Outputs directory.

See Getting Started With QEMU on how to building SBL.

Stitching

Stitch SBL images with factory BIOS image using the stitch tool:

python Platform/ApollolakeBoardPkg/Script/StitchLoader.py -i <BIOS_IMAGE> -s Outputs/apl/Stitch_Components.zip -o <SBL_IFWI_IMAGE>

Download Apollo Lake platform firmware images.

For example, stitching SBL IFWI image sbl_lfh_ifwi.bin from Apollo Lake platform firmware images downloaded:

python Platform/ApollolakeBoardPkg/Script/StitchLoader.py -i LEAFHILD.X64.0070.R01.1805070352.bin -s Outputs/apl/Stitch_Components.zip -o sbl_lfh_ifwi.bin

See Stitch Tool on how to stitching the flashing IFWI image with SBL.

Flashing

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

Booting Yocto Linux

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

  1. Download Apollo Lake platform Yocto image.

  2. Create bootable USB key

  3. Copy initrd.lz and vmlinuz.efi to root directory on USB

    Rename initrd.lz to initrd; Rename vmlinuz.efi to vmlinuz

  4. Create config.cfg in root directory with the following content:

file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash nomodeset
  1. Boot from USB key.