MinnowBoard Max¶
Overview¶
The MinnowBoard is an Intel® Atom™ processor based board which introduces Intel® Architecture to the small and low cost embedded market for the developer and maker community. It has exceptional performance, flexibility, openness and standards
The MinnowBoard board configuration supports the following:
HPET
Advanced Programmed Interrupt Controller (APIC)
NS16550 UART
Hardware¶
Supported Features¶
This board configuration supports the following hardware features:
Interface |
Controller |
Driver/Component |
---|---|---|
HPET |
on-chip |
system clock |
APIC |
on-chip |
interrupt controller |
NS16550 UART |
on-chip |
serial port |
The kernel currently does not support other hardware features on this platform.
HPET System Clock Support¶
This board uses a system clock frequency of 25 MHz.
Note
The LOAPIC timer may be used instead of the HPET. To do so, set SYS_CLOCK_HW_CYCLES_PER_SEC to a custom value that is tied to the host system speed.
Serial Port¶
This board uses a single serial communication channel
with a NS16550 serial driver that operates in polling mode.
For an interrupt-driven driver, enable the
CONFIG_UART_INTERRUPT_DRIVEN
kernel configuration option.
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 Atom 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.
Known Problems or Limitations¶
The following platform features are unsupported:
Isolated Memory Regions
Serial port in Direct Memory Access (DMA) mode
Serial Peripheral Interface (SPI) flash
General-Purpose Input/Output (GPIO)
Inter-Integrated Circuit (I2C)
Ethernet
Supervisor Mode Execution Protection (SMEP)
Creating a GRUB2 Boot Loader Image from a Linux Host¶
If you are having problems running an application using the preinstalled copy of GRUB, follow these steps to test on supported boards using a custom GRUB.
Install the requirements to build GRUB on your host machine.
On Ubuntu, type:
$ sudo apt-get install bison autoconf libopts25-dev flex automake \ pkg-config gettext autopoint
On Fedora, type:
$ sudo dnf install gnu-efi bison m4 autoconf help2man flex \ automake texinfo gettext-devel
Clone and build the GRUB repository using the script in Zephyr tree, type:
$ cd $ZEPHYR_BASE $ ./boards/x86/common/scripts/build_grub.sh i386
Find the binary at
$ZEPHYR_BASE/boards/x86/common/scripts/grub/bin/grub_i386.efi
.
Preparing the Boot Device¶
Prepare either an SD-micro card or USB flash drive to boot the Zephyr application image on the board. The following instructions apply to both devices.
Build a Zephyr application; for instance, to build the
hello_world
application on the minnowboard:# From the root of the zephyr repository west build -b minnowboard samples/hello_world
Note
A stripped project image file named
zephyr.strip
is automatically created in the build directory after the application is built. This image has removed debug information from thezephyr.elf
file.Use one of these cables for serial output:
Format a microSD as FAT
Create the following directories
efi
efi/boot
kernel
Copy the kernel file
build/zephyr/zephyr.strip
to the$SDCARD/kernel
folder.Copy your built version of GRUB to
$SDCARD/efi/boot/bootia32.efi
Create
$SDCARD/efi/boot/grub.cfg
containing the following:set default=0 set timeout=10 menuentry "Zephyr Kernel" { multiboot /kernel/zephyr.strip }
Booting Zephyr on the MinnowBoard¶
The MinnowBoard by default will be running a 64bit firmware. To boot Zephyr, you will need to replace the 64bit firmware with the 32bit variant. Please follow the instructions for updating the firmware documented at the MinnowBoard firmware website. Look for the Firmware Download section and find Firmware Flash Images release. The ZIP file will contain the binary images, update utilities, and instructions. Extract the files and prepare a bootable USB. Follow the release instructions on Flash Update. You can also check out the MinnowBoard firmware development website for more information.