.. _gpmrb: Gordon Peak MRB ############### Overview ******** The Intel Gordon Peak Module Reference Board (GP MRB) is used in the automotive industry for the development of in-vehicle applications such as heads-up displays and entertainment systems. .. figure:: img/gpmrb.jpg :width: 500px :align: center :alt: Gordon Peak MRB Gordon Peak MRB Hardware ******** .. include:: ../../../../soc/x86/apollo_lake/doc/supported_features.txt Building and Running Zephyr *************************** Use the following procedure to boot a Zephyr application on the Gordon Peak MRB. Build Zephyr Application ======================== Build a Zephyr application; for instance, to build the ``hello_world`` application for the GP MRB: .. zephyr-app-commands:: :zephyr-app: samples/hello_world :board: gpmrb :goals: build This will create a standard ELF binary application file named :file:`zephyr.elf`, and the same binary with debugging information removed named :file:`zephyr.strip`. Because of the limited firmware flash area on board, we'll use the smaller, stripped version. Move the stripped application to your home directory for use in the next steps: .. code-block:: console $ cp zephyr/zephyr.strip ~ Get the Leaf Hill Firmware Files ================================ The Slim Bootloader (see the next step) requires binary firmware images specific to the GP MRB: in this instance, the "Leaf Hill" firmware. This can be downloaded from Intel: .. code-block:: console $ cd $ wget https://firmware.intel.com/sites/default/files/leafhill-0.70-firmwareimages.zip $ unzip leafhill-0.70-firmwareimages.zip There will now be two files named :file:`LEAFHILD.X64.0070.D01.1805070344.bin` and :file:`LEAFHILD.X64.0070.R01.1805070352.bin` or similar in your home directory, which are the debug (``D``) and release (``R``) versions of the binary packages, respectively. Make note of the release (:file:`*R01*`) file name for the next step. Build Slim Bootloader ===================== Zephyr runs as a direct payload of the Slim Bootloader (SBL). For more complete information on SBL, including comprehensive build instructions, see the `Slim Bootloader `_ site. .. code-block:: console $ cd $ git clone https://github.com/slimbootloader/slimbootloader.git $ cd slimbootloader $ python BuildLoader.py clean $ python BuildLoader.py build apl -p ~/zephyr.strip Now that the SBL has been built with the Zephyr application as the direct payload, we need to "stitch" together SBL with the board firmware package. Be sure to replace the release filename with the one noted in the previous step: .. code-block:: console $ python Platform/ApollolakeBoardPkg/Script/StitchLoader.py \ -i ~/LEAFHILD.X64.0070.R01.1805070352.bin \ -s Outputs/apl/Stitch_Components.zip \ -o ~/sbl.bin Now the file :file:`sbl.bin` in your home directory contains a firmware image with SBL and the Zephyr application, ready to flash to the GP MRB. Flash the Image =============== Connect the IOC to the GP MRB and connect the USB cable to your development machine. Then, using the Intel Platform Flash tools supplied with your board, flash the firmware: .. code-block:: console $ sudo /opt/intel/platformflashtool/bin/ias-spi-programmer --write ~/sbl.bin .. note:: Refer to the instructions with the IOC and/or GP MRB for further information on flashing the firmware. Launch Zephyr ============= Connect to UART 2 on the GP MRB and press the "ignition" button. After initialization messages, you will see the Zephyr banner: .. code-block:: console ***** Booting Zephyr OS v1.14.0-rc3-1254-g2a086e4c13ef ***** Hello World! gpmrb You are running a Zephyr application on your Gordon Peak MRB.