doc: Move Galileo board info to wiki.
Moved the Galileo Gen1 and Gen1 info from galileo.rst to the Zephyr wiki. Change-Id: I2210ab98429efb55be5ef3e47096842dfdbce16e Signed-off-by: Evan Couzens <evanx.couzens@intel.com> Signed-off-by: viggo.jf.intel.com <evanx.couzens@intel.com>
This commit is contained in:
parent
dc0c97731e
commit
2e81b5dd04
1 changed files with 3 additions and 369 deletions
|
@ -3,373 +3,7 @@
|
||||||
Galileo Gen1/Gen2
|
Galileo Gen1/Gen2
|
||||||
#################
|
#################
|
||||||
|
|
||||||
Overview
|
The board documentation for the Galileo Gen1 and Gen2 has been moved
|
||||||
********
|
to the Zephyr project wiki:
|
||||||
|
|
||||||
Developers can use the galileo board configuration
|
* https://wiki.zephyrproject.org/view/Galileo_Gen1_Gen2
|
||||||
to build a Zephyr Kernel that runs on a Galileo Development Board (Gen 1 or Gen 2).
|
|
||||||
|
|
||||||
This board configuration enables kernel support for the board's Quark SoC,
|
|
||||||
along with the following devices:
|
|
||||||
|
|
||||||
* High Precision Event Timer (HPET)
|
|
||||||
|
|
||||||
* Peripheral Component Interconnect (PCI) bus query
|
|
||||||
|
|
||||||
* Serial Ports in Polling and Interrupt Driven Modes
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
This board configuration may work with similar boards that are not officially
|
|
||||||
supported.
|
|
||||||
|
|
||||||
Supported Boards
|
|
||||||
****************
|
|
||||||
|
|
||||||
This section provides information about the physical characteristics of boards
|
|
||||||
that the galileo board configuration supports.
|
|
||||||
Subsections contain detailed information on pin names, jumper settings, memory mappings,
|
|
||||||
and board component layout.
|
|
||||||
|
|
||||||
Pin Names
|
|
||||||
=========
|
|
||||||
|
|
||||||
For a component layout diagram showing pin names, see page 46 of the
|
|
||||||
`Intel® Quark SoC X1000 Datasheet`_.
|
|
||||||
|
|
||||||
See also the `Intel® Galileo Datasheet`_.
|
|
||||||
|
|
||||||
For the Galileo Board Connection Diagram see page 9 of the `Intel® Galileo Board User Guide`_.
|
|
||||||
|
|
||||||
|
|
||||||
Jumpers & Switches
|
|
||||||
==================
|
|
||||||
|
|
||||||
The kernel uses the Galileo default jumper settings except for the IOREF jumper,
|
|
||||||
which must be set to match the external operating voltage of either 3.3 V or 5 V.
|
|
||||||
|
|
||||||
The Galileo default switch settings are:
|
|
||||||
|
|
||||||
+--------+--------------+
|
|
||||||
| Jumper | Setting |
|
|
||||||
+========+==============+
|
|
||||||
| IOREF | 3.3V or 5V |
|
|
||||||
+--------+--------------+
|
|
||||||
| VIN | 5V Jumpered |
|
|
||||||
+--------+--------------+
|
|
||||||
|
|
||||||
For more information, see page 14 of the
|
|
||||||
`Intel® Galileo Board User Guide`_.
|
|
||||||
|
|
||||||
|
|
||||||
Memory Mappings
|
|
||||||
===============
|
|
||||||
|
|
||||||
The galileo board configuration uses default hardware memory map
|
|
||||||
addresses and sizes.
|
|
||||||
|
|
||||||
For a list of memory mapped registers, see page 868 of the
|
|
||||||
`Intel® Quark SoC X1000 Datasheet`_.
|
|
||||||
|
|
||||||
|
|
||||||
Component Layout
|
|
||||||
================
|
|
||||||
|
|
||||||
See page 3 of the Intel® Galileo Datasheet for a component layout
|
|
||||||
diagram. Click the link to open the `Intel® Galileo Datasheet`_.
|
|
||||||
|
|
||||||
|
|
||||||
For a block diagram, see page 38 of the `Intel® Quark SoC X1000 Datasheet`_.
|
|
||||||
|
|
||||||
|
|
||||||
Supported Features
|
|
||||||
******************
|
|
||||||
|
|
||||||
The galileo board configuration supports the following hardware features:
|
|
||||||
|
|
||||||
* HPET
|
|
||||||
|
|
||||||
* PCI bus
|
|
||||||
|
|
||||||
* Advanced Programmed Interrupt Controller (APIC)
|
|
||||||
|
|
||||||
* Serial Ports in Polling and Interrupt Driven Modes
|
|
||||||
|
|
||||||
* Ethernet in Interrupt Driven Mode
|
|
||||||
|
|
||||||
+-----------+------------+-----------------------+
|
|
||||||
| Interface | Controller | Driver/Component |
|
|
||||||
+===========+============+=======================+
|
|
||||||
| HPET | on-chip | system clock |
|
|
||||||
+-----------+------------+-----------------------+
|
|
||||||
| PCI | on-chip | PCI library |
|
|
||||||
+-----------+------------+-----------------------+
|
|
||||||
| APIC | on-chip | interrupt controller |
|
|
||||||
+-----------+------------+-----------------------+
|
|
||||||
| UART | on-chip | serial port-polling; |
|
|
||||||
| | | serial port-interrupt |
|
|
||||||
+-----------+------------+-----------------------+
|
|
||||||
| Ethernet | on-chip | Ethernet |
|
|
||||||
+-----------+------------+-----------------------+
|
|
||||||
|
|
||||||
The kernel currently does not support other hardware features.
|
|
||||||
See the `Intel® Quark Core Hardware Reference Manual`_ for a
|
|
||||||
complete list of Galileo board hardware features, and the
|
|
||||||
`Intel® Quark Software Developer Manual for Linux`_
|
|
||||||
|
|
||||||
|
|
||||||
PCI
|
|
||||||
===
|
|
||||||
|
|
||||||
PCI drivers assume that IO regions and IRQs for devices are
|
|
||||||
preconfigured identically by the firmware on all supported devices.
|
|
||||||
This configuration is specified in the Kconfig file for the Intel
|
|
||||||
Quark X1000 SoC. The PCI library supports dynamically enumerating PCI
|
|
||||||
devices, but that support is disabled by default.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
The PCI library does not support 64-bit devices.
|
|
||||||
Memory address and size storage only require 32-bit integers.
|
|
||||||
|
|
||||||
Serial Port Polling Mode Support
|
|
||||||
================================
|
|
||||||
|
|
||||||
The polling mode serial port allows debug output to be printed.
|
|
||||||
|
|
||||||
For more information, see `Intel® Quark SoC X1000 Datasheet`_,
|
|
||||||
section 18.3.3 FIFO Polled-Mode Operation
|
|
||||||
|
|
||||||
|
|
||||||
Serial Port Interrupt Mode Support
|
|
||||||
==================================
|
|
||||||
|
|
||||||
The interrupt mode serial port provides general serial communication
|
|
||||||
and external communication.
|
|
||||||
|
|
||||||
For more information, see `Intel® Quark SoC X1000 Datasheet`_, section 21.12.1.4.5 Poll Mode
|
|
||||||
|
|
||||||
|
|
||||||
Interrupt Controller
|
|
||||||
====================
|
|
||||||
|
|
||||||
The galileo board configuration uses the kernel's static
|
|
||||||
Interrupt Descriptor Table (IDT) to program the
|
|
||||||
Advanced Programmable Interrupt Controller (APIC)
|
|
||||||
interrupt redirection table.
|
|
||||||
|
|
||||||
Interrupts
|
|
||||||
----------
|
|
||||||
|
|
||||||
+-----+-------+---------+--------------------------+
|
|
||||||
| IRQ | Name | Remarks | Used by Zephyr Kernel |
|
|
||||||
+=====+=======+=========+==========================+
|
|
||||||
| 17 | INTB | UART | serial port when used in |
|
|
||||||
| | | | interrupt mode |
|
|
||||||
+-----+-------+---------+--------------------------+
|
|
||||||
| 20 | timer | HPET | timer driver |
|
|
||||||
+-----+-------+---------+--------------------------+
|
|
||||||
|
|
||||||
HPET System Clock Support
|
|
||||||
=========================
|
|
||||||
|
|
||||||
Galileo uses HPET timing with legacy-free timer support. The galileo platform
|
|
||||||
configuration uses HPET as a system clock timer.
|
|
||||||
|
|
||||||
Ethernet Support
|
|
||||||
================
|
|
||||||
|
|
||||||
The Ethernet driver allocates a Direct Memory Access (DMA)-accessible
|
|
||||||
pair of receive and transmit buffers and descriptors. The driver
|
|
||||||
operates the network interface in store-and-forward mode and enables
|
|
||||||
the receive interrupt.
|
|
||||||
|
|
||||||
For more information, see `Intel® Quark SoC X1000 Datasheet`_,
|
|
||||||
section 15.0 10/100 Mbps Ethernet
|
|
||||||
|
|
||||||
Procedures
|
|
||||||
**********
|
|
||||||
|
|
||||||
Use the following procedures for booting an image on a Galileo board.
|
|
||||||
|
|
||||||
* `Creating a GRUB2 Boot Loader Image from a Linux Host`_
|
|
||||||
|
|
||||||
* `Preparing the Boot Device`_
|
|
||||||
|
|
||||||
* `Booting the Galileo Board`_
|
|
||||||
|
|
||||||
|
|
||||||
Creating a GRUB2 Boot Loader Image from a Linux Host
|
|
||||||
====================================================
|
|
||||||
|
|
||||||
If you are having problems running an application using the default GRUB
|
|
||||||
of the hardware, follow these steps to test on Galileo2 boards using a custom
|
|
||||||
GRUB.
|
|
||||||
|
|
||||||
#. Install the requirements to build GRUB on your host machine.
|
|
||||||
|
|
||||||
On Ubuntu, type:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ sudo apt-get install bison autoconf libopts25-dev flex automake
|
|
||||||
|
|
||||||
On Fedora, type:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ sudo dnf install gnu-efi bison m4 autoconf help2man flex \
|
|
||||||
automake texinfo
|
|
||||||
|
|
||||||
#. Clone and build the GRUB repository using the script in Zephyr tree, type:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ cd $ZEPHYR_BASE
|
|
||||||
$ ./scripts/build_grub.sh
|
|
||||||
|
|
||||||
#. Find the binary at :file:`$ZEPHYR_BASE/scripts/grub/bin/grub.efi`.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Preparing the Boot Device
|
|
||||||
=========================
|
|
||||||
|
|
||||||
Prepare either an SD-micro card or USB flash drive to boot the Zephyr
|
|
||||||
application image on a Galileo board. The following instructions apply to both
|
|
||||||
devices.
|
|
||||||
|
|
||||||
|
|
||||||
#. Set the board configuration to Galileo by changing the
|
|
||||||
:command:`make` command that is executed in the app directory
|
|
||||||
(e.g. :file:`$ZEPHYR_BASE/samples/hello_world/nanokernel`) to:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ make BOARD=galileo
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
A stripped project image file named :file:`zephyr.strip` is
|
|
||||||
automatically created when the project is built. This image has
|
|
||||||
removed debug information from the :file:`zephyr.elf` file.
|
|
||||||
|
|
||||||
#. Use one of these cables for serial output:
|
|
||||||
|
|
||||||
`<http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm>`_
|
|
||||||
|
|
||||||
#. Format a microSD as FAT
|
|
||||||
|
|
||||||
#. Create the following directories
|
|
||||||
|
|
||||||
:file:`efi`
|
|
||||||
|
|
||||||
:file:`efi/boot`
|
|
||||||
|
|
||||||
:file:`kernel`
|
|
||||||
|
|
||||||
#. Copy the kernel file :file:`outdir/zephyr.strip` to the :file:`$SDCARD/kernel` folder.
|
|
||||||
|
|
||||||
#. Copy your built version of GRUB to :file:`$SDCARD/efi/boot/bootia32.efi`
|
|
||||||
|
|
||||||
#. Create :file:`$SDCARD/efi/boot/grub.cfg` containing the following:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
set default=0
|
|
||||||
set timeout=10
|
|
||||||
|
|
||||||
menuentry "Zephyr Kernel" {
|
|
||||||
multiboot /kernel/zephyr.strip
|
|
||||||
}
|
|
||||||
|
|
||||||
Booting the Galileo Board
|
|
||||||
=========================
|
|
||||||
|
|
||||||
Boot the Galileo board from the boot device using GRUB2
|
|
||||||
with the firmware present in the on-board flash.
|
|
||||||
|
|
||||||
|
|
||||||
Steps
|
|
||||||
-----
|
|
||||||
|
|
||||||
1. Insert the prepared boot device (micro-SD card or USB flash
|
|
||||||
drive) into the Galileo board.
|
|
||||||
|
|
||||||
2. Connect the board to the host system using the serial cable and
|
|
||||||
configure your host system to watch for serial data. See
|
|
||||||
`<https://software.intel.com/en-us/articles/intel-galileo-gen-2-board-assembly-using-eclipse-and-intel-xdk-iot-edition>`_
|
|
||||||
for the gen. 2 board,
|
|
||||||
`<https://software.intel.com/en-us/articles/intel-galileo-gen-1-board-assembly-using-eclipse-and-intel-xdk-iot-edition>`_
|
|
||||||
for the gen. 1 board, or the Getting Started guide that you
|
|
||||||
received with the board.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
On Windows, PuTTY has an option to set up configuration for
|
|
||||||
serial data. Use a baud rate of 115200 and the SCO keyboard
|
|
||||||
mode. The keyboard mode option is in a submenu of the Terminal
|
|
||||||
menu on the left side of the screen.
|
|
||||||
|
|
||||||
3. Power on the Galileo board.
|
|
||||||
|
|
||||||
4. When the following output appears, press :kbd:`F7`:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
Press [Enter] to directly boot.
|
|
||||||
Press [F7] to show boot menu options.
|
|
||||||
|
|
||||||
5. From the menu that appears, select :guilabel:`UEFI Misc Device` to
|
|
||||||
boot from a micro-SD card. To boot from a USB flash drive, select
|
|
||||||
the menu entry that desribes that particular type of USB flash
|
|
||||||
drive.
|
|
||||||
|
|
||||||
GRUB2 starts and a menu shows entries for the items you added
|
|
||||||
to the file :file:`grub.cfg`.
|
|
||||||
|
|
||||||
6. Select the image you want to boot and press :guilabel:`Enter`.
|
|
||||||
|
|
||||||
When the boot process completes, you have finished booting the
|
|
||||||
Zephyr application image.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
If the following messages appear during boot, they can be safely
|
|
||||||
ignored::
|
|
||||||
|
|
||||||
WARNING: no console will be available to OS
|
|
||||||
error: no suitable video mode found.
|
|
||||||
|
|
||||||
Known Problems and Limitations
|
|
||||||
******************************
|
|
||||||
|
|
||||||
At this time, the kernel does not support the following:
|
|
||||||
|
|
||||||
* Isolated Memory Regions
|
|
||||||
* Serial port in Direct Memory Access (DMA) mode
|
|
||||||
* Supervisor Mode Execution Protection (SMEP)
|
|
||||||
|
|
||||||
Bibliography
|
|
||||||
************
|
|
||||||
|
|
||||||
1. `Intel® Galileo Datasheet`_, Order Number: 329681-001US
|
|
||||||
|
|
||||||
.. _Intel® Galileo Datasheet:
|
|
||||||
http://www.intel.com/newsroom/kits/quark/galileo/pdfs/Intel_Galileo_Datasheet.pdf
|
|
||||||
|
|
||||||
2. `Intel® Galileo Board User Guide`_.
|
|
||||||
|
|
||||||
.. _Intel® Galileo Board User Guide:
|
|
||||||
http://download.intel.com/support/galileo/sb/galileo_boarduserguide_330237_001.pdf
|
|
||||||
|
|
||||||
3. `Intel® Quark SoC X1000 Datasheet`_, Order Number: 329676-001US
|
|
||||||
|
|
||||||
.. _Intel® Quark SoC X1000 Datasheet:
|
|
||||||
https://communities.intel.com/servlet/JiveServlet/previewBody/
|
|
||||||
21828-102-2-25120/329676_QuarkDatasheet.pdf
|
|
||||||
|
|
||||||
4. `Intel® Quark Core Hardware Reference Manual`_.
|
|
||||||
|
|
||||||
.. _Intel® Quark Core Hardware Reference Manual:
|
|
||||||
http://caxapa.ru/thumbs/497461/Intel_Quark_Core_HWRefMan_001.pdf
|
|
||||||
|
|
||||||
5. `Intel® Quark Software Developer Manual for Linux`_.
|
|
||||||
|
|
||||||
.. _Intel® Quark Software Developer Manual for Linux:
|
|
||||||
http://www.intel.com/content/dam/www/public/us/en/documents/manuals/quark-x1000-linux-sw-developers-manual.pdf
|
|
Loading…
Add table
Add a link
Reference in a new issue