Page 1
Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide May 2017 Document Number: 329687-011US...
Page 2
You may not use or facilitate the use of this document in connection with any infringement or other legal analysis concerning Intel products described herein. You agree to grant Intel a non-exclusive, royalty-free license to any patent claim thereafter drafted which includes subject matter disclosed herein.
15.2 To Create a Secure Boot SD/eMMC ..................49 16.0 Enabling the OpenOCD Debugger ......................51 Appendix A Related ............................Documents ..............................52 Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide Document Number: 329687-011US...
Page 4
Tools ................................53 Figures Figure 1. Updating Process from Release 1.0.x to Release 1.2.1 ..............37 Tables Table 1. Related Documents ............................52 Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide May 2017 Document Number: 329687-011US...
About this Document This document, the Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide, is divided into two major sections: Part 1 of 2 - Building the BSP Software contains instructions for installing and configuring the Intel®...
Programming Flash on the Board Using Serial Interface .............. 36 11.0 Programming Flash on the Board Using DediProg ................42 12.0 Booting the Board From SD Card ......................43 Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide Document Number: 329687-011US...
A DediProg* SF100 SPI Flash Programmer (or equivalent) and the associated flashing software (see Section An Intel® Galileo IDE (Intel® Galileo Gen 2 board only; refer to Appendix A User Guide details) Remove all previous versions of the software before installing the current version.
Downloading Software Download the BSP sources zip file from the following location: https://downloadcenter.intel.com/download/23197/Intel-Quark-BSP If you are using an Intel® Quark™ Reference Design board, see your Intel representative Note: for the appropriate software download URL. This release is comprised of: ...
Building the EDKII Software You need to build the open source EDKII firmware for the Intel® Quark™ SoC. Additional details may be found here: www.tianocore.sourceforge.net https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II Dependencies Linux* build environment dependencies: Python 2.6 or 2.7 (Python 3.x not supported) ...
The following steps are performed one time to prepare the EDKII workspace directory with the required source code before commencing the actual firmware build. 1. Create the EDKII workspace directory and extract the contents of the Intel® Quark™ SoC EDKII BSP into this directory.
[PlatformName] Name of the platform package you want to build. Example usage: Create a build for an Intel® Quark™ SoC platform based on GCC version 4.6: For release 1.2 onwards: ./buildallconfigs.sh GCC46 /usr/bin/ QuarkPlatform For release 1.1 and earlier: ./buildallconfigs.sh GCC46 QuarkPlatform...
-clean Delete the build files/folders -d32 Create a DEBUG build -r32 Create a RELEASE build GCC4x Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide Document Number: 329687-011US...
Page 14
TPM (Trusted Platform Module) and UEFI Secure Boot, refer to the Intel® Quark™ SoC X1000 UEFI Firmware Writer’s Guide. Linux example usage: Create a RELEASE build with UEFI Secure Boot and TPM support for an Intel® Quark™ SoC platform based on GCC version 4.6: For release 1.2 onwards: ./quarkbuild.sh -r32 GCC46 /usr/bin/ QuarkPlatform -...
EDKII Firmware Build Standalone Output Files Section 8 Creating a Flash Image for the Board [Linux* build environment only] is not required if the user only requires EDKII firmware in the SPI Flash on Intel® Quark™ SoC Open SKU silicon.
Page 16
To change the default UEFI Capsule flags for the EDKII standalone builds the Note: quarkbuild.bat or quarkbuild.sh files must be changed. § Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide May 2017 Document Number: 329687-011US...
To build GRUB, first open a new terminal session, extract the grub package, and run the gitsetup.py script. The script downloads all the upstream code required for grub and applies the patch. Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide...
Page 18
You may find answers about proxy settings here: https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy The required output from this build process is the work/efi/grub.efi file. § Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide May 2017 Document Number: 329687-011US...
The setup.sh script takes no parameters. Note: When this scripts runs successfully, it will add additional folders such as bitbake, meta- yocto, repo-ext, etc. Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide Document Number: 329687-011US...
SPI flash or for SD/USB/eMMC (memory media). The output is different for each target. Starting from Intel® Quark™ v1.1 release, it is possible to perform both (memory media Note: and SPI) build methods from the same directory. However, the user should take note of the DISTRO setting in conf/local.conf file.
108 # 109 # Notes: 110 # (1) If you wish to build an image for the Galileo's on- board SPI flash you Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide Document Number: 329687-011US...
Page 22
112 # (2) If you wish to build an image (Linux kernel, grub and root file-system) that 113 # is stored on SD card, you need to set DISTRO to iot- devkit-multilibc Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide May 2017 Document Number: 329687-011US...
grub.efi Intel® Quark™ Linux on the SPI image uses uclibc, which is a C library optimized for embedded systems. This enables a very small Linux footprint that can fit into 8Mb SPI flash together with the UEFI bootloader and Grub OS loader.
Page 24
SD card, you need to set DISTRO to iot- devkit-multilibc 114 #DISTRO ?= "iot-devkit-spi" 115 #DISTRO ?= "iot-devkit-multilibc" 116 DISTRO ?= "quark-fast" Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide May 2017 Document Number: 329687-011US...
Page 25
Next we need to include “meta-intel-quark-fast” to the BBLAYERS setting in conf/bblayer.conf as the example shown in "meta-intel-quark- fast/conf/bblayer.conf.sample". e.g. BBLAYERS ?= " \ ..${BBPATH}/../meta-intel-iot-devkit \ ${BBPATH}/../meta-intel-quark-fast \ ..The bitbake target for image-fast is: # bitbake image-fast The output files are found in ./tmp-fast/deploy/images/quark and include the following components: ...
Now the fast boot partition is successfully created on the SD card or eMMC, it should be able to boot directly on your Intel® Quark™ X1000 platform. The default size of fast boot partition is 64Mb, it can be configured through the “--size”...
Page 27
More information can be found here: http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var- SRC_URI http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#platdev- appdev-devshell § Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide Document Number: 329687-011US...
In order to build a cross toolchain capable of being installed on a different machine or in a different area to the current build directory, a cross toolchain installer is required. Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide...
Page 29
Instructions about adding a package to the Linux* build are found in Section 5.2 of the Yocto Project Development Manual: http://www.yoctoproject.org/docs/1.7/dev-manual/dev-manual.html#usingpoky- extend-customimage Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide Document Number: 329687-011US...
Page 30
See Section 5.3 of the Yocto Project Development Manual for more detail on writing a new recipe: http://www.yoctoproject.org/docs/1.7/dev-manual/dev-manual.html#new-recipe- writing-a-new-recipe § Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide May 2017 Document Number: 329687-011US...
[sections] with associated address offsets, file names, and parameters. Each section must reference a valid file, so it is necessary to update the paths or create symbolic links to the valid files. Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide...
Page 32
FVMAIN.fv – board-specific recovery file. See Section 14 for an overview of capsule recovery. If you are using the Intel® Galileo board, refer to the Intel® Galileo Board User Guide for details. For other boards, contact your Intel representative for details.
(such as Intel® Galileo board) that have only one Ethernet port. For the Intel® Galileo board, MAC 0 is the only MAC wired out. The default MAC 0 address value in the platform-data.ini file is invalid and must be set to the value allocated to your system, typically this is identified on a sticker.
Page 34
#replace with MAC address from sticker on board Next, run the script as follows: # cd spi-flash-tools/platform-data/ # ./platform-data-patch.py -p sample-platform-data.ini \ -i ../../sysimage_*/sysimage.CP-8M-release/Flash-missingPDAT.bin Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide May 2017 Document Number: 329687-011US...
Page 35
8.0), to allow the UEFI Secure boot system to be recovered. By default EDKII firmware will not update the MAC address in the platform data area if programming an EDKII capsule (refer to the Intel® Quark™ SoC X1000 UEFI Firmware Writer’s Guide). §...
The BSP provides a mechanism to update SPI flash contents based on EDKII capsules. These capsules contain a BIOS, bootloader, and compressed Linux* run-time system sufficient to boot a Quark-based board, such as the Intel® Galileo board. The capsule update mechanism can be triggered from an EDKII shell (Section 10.1.1) or...
Page 37
The system is now updated with the interim firmware of release 1.1. 4. The user can now update to release 1.2.1 EDKII firmware using the release 1.2.1 capsule file, Flash.cap. Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide...
5. Power on the board. Enter the EFI shell before grub starts by pressing F7. 6. The serial console displays a boot device selection box (below). Select UEFI Internal Shell. Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide May 2017...
Page 39
You must use version 1.01 or later. 9. Enter the following command: CapsuleApp.efi Flash.cap You must enter the full filename of the Flash.cap file. Note: Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide Document Number: 329687-011US...
Page 40
10. When the update completes, the board will automatically reboot. You will see a display similar to this: 11. Updating to release 1.2.1 requires additional steps in Section 10.1. Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide May 2017 Document Number: 329687-011US...
0.8.0 are not used due to known issues: /sys/firmware/efi/capsule_update /sys/firmware/efi/capsule_path The capsule update method for release 0.9.0 and later uses the following corrected entries: /sys/firmware/efi_capsule/capsule_update /sys/firmware/efi_capsule/capsule_path § Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide Document Number: 329687-011US...
4. Select raw file format. 5. Select the Prog icon to flash the image onto the board. 6. Optionally select the Verify icon to verify that the image flashed correctly. Intel recommends that you disconnect the programmer before booting the system. Note: §...
You can also use this procedure to boot your board from a USB stick or eMMC. If you are using an Intel® Galileo board, this setup allows you to save your Arduino* sketch to the board, so it will be able to repeat sketches after board power-down. This also enables a persistent /sketch folder and rootfs.
Page 44
SD association: https://www.sdcard.org/downloads/formatter_4/ It is not recommended to use normal operating system tools to format flash memory devices. § Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide May 2017 Document Number: 329687-011US...
The BSP software provides a mechanism to update SPI flash contents based on EDKII capsules. These capsules contain a BIOS, bootloader, and compressed Linux* run- time system sufficient to boot a Quark-based board, such as the Intel® Galileo board. Capsule update is comprised of the following high-level steps: ...
USB key with this file to the board booting the board in recovery mode If you are using the Intel® Galileo board, refer to the Intel® Galileo Board User Guide Note: for details. For other boards, contact your Intel representative for details on how to boot in recovery mode.
Key key.pem file. During development, all assets are signed with the default key that is stored in the config directory. The default key cannot be used in a production system; it is not secure due to its inclusion in the release package. Contact your Intel representative for details.
The screenshots below show an example SD card with signature files: Copy signature files core-image-minimal-initramfs-quark.cpio.gz.csbh and bzImage.csbh to the root directory. Copy grub.cbsh to the /boot/grub/ directory. Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide Document Number: 329687-011US...
Page 50
§ Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide May 2017 Document Number: 329687-011US...
16.0 Enabling the OpenOCD Debugger Complete instructions for using the OpenOCD debugger can be found in the Source Level Debug using OpenOCD/GDB/Eclipse on Intel® Quark™ SoC X1000 Application Note, refer to Appendix § Intel® Quark™ SoC X1000 Board Support Package (BSP)
Table 1. Related Documents Document Name Number Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User 329687 Guide (this document) Intel® Quark™ SoC X1000 Software Release Notes 330232 Intel® Quark™ SoC X1000 Secure Boot Programmer’s Reference Manual 330234 Intel®...
Page 53
0x00010001 ==> update the MAC addresses (default: 0x00010000) CAPSULE_SVN - update CAPSULE_SVN when changing KEYS for UEFI Secure Boot Systems (default = 0) Example: KEYFILE=/path/to/key.pem ../spi-flash-tools/Makefile Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide Document Number: 329687-011US...
Page 54
SPI Flash Tools PDAT_INI ==> name of test system pdata .ini file (defaults to platform-data.ini if not given) § Intel® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide May 2017 Document Number: 329687-011US...