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

Minnowboard

Minnowboard (Credit: Intel)

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.

  1. 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
    
  2. Clone and build the GRUB repository using the script in Zephyr tree, type:

    $ cd $ZEPHYR_BASE
    $ ./boards/x86/common/scripts/build_grub.sh i386
    
  3. 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.

  1. 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 the zephyr.elf file.

  2. Use one of these cables for serial output:

    http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm

  3. Format a microSD as FAT

  4. Create the following directories

    efi

    efi/boot

    kernel

  5. Copy the kernel file build/zephyr/zephyr.strip to the $SDCARD/kernel folder.

  6. Copy your built version of GRUB to $SDCARD/efi/boot/bootia32.efi

  7. 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 flashing and updating the firmware documented at the MinnowBoard firmware website.