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
|
||||
#################
|
||||
|
||||
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
|
||||
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
|
||||
* https://wiki.zephyrproject.org/view/Galileo_Gen1_Gen2
|
Loading…
Add table
Add a link
Reference in a new issue