Intel Quark SoC X1000 Software User's Manual

Board support package (bsp)
Hide thumbs Also See for Quark SoC X1000:
Table of Contents

Advertisement

Quick Links

Intel® Quark™ SoC X1000 Board Support
Package (BSP)
Build and Software User Guide
May 2017
Document Number: 329687-011US

Advertisement

Table of Contents
loading

Summary of Contents for Intel Quark SoC X1000

  • 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.
  • Page 3: Table Of Contents

    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...
  • Page 5: Revision History

     Updated Section 9 Platform Data Tool (corrected platform- data.ini filename).  Updated Section 14, Capsule Recovery (added DediProg information).  Updated with trademarked term: Intel® Quark™ SoC. 04 March 2014 General updates for software release 1.0.0 including:  Added Section 13 Capsule Update.
  • Page 6: About This Document

    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®...
  • Page 7: Part 1 Of 2 - Building The Bsp Software

    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...
  • Page 8: Before You Begin

    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.
  • Page 9: Downloading Software

    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: ...
  • Page 10: Building The Edkii Software

    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) ...
  • Page 11: Pre-Build Setup

    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.
  • Page 12: Building All The Edkii Firmware Validated Build Configurations [Linux Build Environment Only]

     [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...
  • Page 13: Building A Single Edkii Firmware Build Configuration

     -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 -...
  • Page 15: Edkii Firmware Build Standalone Output Files

    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...
  • Page 17: Building The Grub Os Loader [Linux* Build Environment Only]

    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...
  • Page 19: Creating A File System And Building The Kernel Using Yocto Project

    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...
  • Page 20: Build A Full-Featured Linux For Sd Card, Usb Stick Or Emmc

    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.
  • Page 21: Build A Small Linux For Spi Flash

    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...
  • Page 23: Build A Fast Boot Linux For Sd Card Or Emmc

     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: ...
  • Page 26: Applying A Custom Patch To The Linux Kernel Using Yocto Project (Optional)

    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...
  • Page 28: Building The Linux* Cross Compile Toolchain Using Yocto Project* [Linux Build Environment Only]

    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...
  • Page 31: Creating A Flash Image For The Board [Linux* Build Environment Only]

    [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.
  • Page 33: Platform Data Tool

    (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). §...
  • Page 36: Programming Flash On The Board Using Serial Interface

    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...
  • Page 38: Programming Flash Using Uefi Shell

    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...
  • Page 41: Programming Flash Using Linux* Run-Time System

    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...
  • Page 42: Programming Flash On The Board Using Dediprog

    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: §...
  • Page 43: Booting The Board From Sd Card

    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...
  • Page 45: Part 2 Of 2 - Using The Bsp Software

    Capsule Recovery ............................47 15.0 Signing Files (Secure SKU only) [Linux* build environment only] ..........48 16.0 Enabling the OpenOCD Debugger ......................51 Intel® Quark™ SoC X1000 Board Support Package (BSP) May 2017 Build and Software User Guide Document Number: 329687-011US...
  • Page 46: Capsule Update

    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: ...
  • Page 47: Capsule Recovery

    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.
  • Page 48: Signing Files (Secure Sku Only) [Linux* Build Environment Only]

    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.
  • Page 49: To Create A Secure Boot Sd/Emmc

    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...
  • Page 51: Enabling The Openocd Debugger

    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)
  • Page 52: Appendix A ...................................................................................................................................... Related Documents

    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...

Table of Contents