wiki:Boards/MinnowMax

Version 4 (modified by Chris Johns, on 03/22/16 at 06:39:51) (diff)

Update grub.cfg details.

Minnow Max

Table of Contents

  1. Minnow Max
    1. Booting RTEMS

The Minnow Max is a is a compact and affordable open source hardware reference platform that puts the power of a 64-bit Intel®. For more detail about the platform and what is offers head over the their web site http://wiki.minnowboard.org/MinnowBoard_Wiki_Home

The current status of RTEMS is not known at this point in time it has not been loaded. The effort so far is to get a suitable PXE based bootloader to load RTEMS.

Booting RTEMS

The section details how to boot RTEMS on a Minnow Max board. We are going to boot RTEMS over the network using the Minnow Max's UFEI firmware's PXE loader.

32-bit UEFI Firmware

Current RTEMS support for Intel is 32bit so we need to change the default 64bit UEFI bootloader MinnowMax boards ship with to the 32bit UEFI firmware. After that we need to build a EFI Grub2 PXE boot loader.

The Minnow Max wiki page for UEFI is http://wiki.minnowboard.org/UEFI. The links seem to have moved and the main site for UEFI firmware is http://firmware.intel.com/projects/minnowboard-max. Head over to this page and download the lastest 'Firmware Download' 32-bit Release. Download the instructions and follow what is asked and loading the 64bit Firmware Updater and the 32-bit UEFI image onto a USB stick and installing into the board. Start the board and at the UEFI Shell prompt run the Updater application giving it the firmware the first option.

Grub2

We use Grub as a second stage loader to load RTEMS. We get the UEFI PXE loader to load Grub2 and we configure Grub2 to download RTEMS and run it.

You need Linux to build Grub. If depends on gcc and operating systems like FreeBSD do not provide gcc as a default these days.

Get the Grub2 source from ftp://ftp.gnu.org/gnu/grub/, unpack and build.

$ mkdir grub2
$ cd grub2
$ wget ftp://ftp.gnu.org/gnu/grub/grub-2.00.tar.xz
$ tar Jxf grub-2.00.tar.xz
$ mkdir build
$ cd build
../grub-2.00/configure --with-platform=efi --target=i386 \
     --prefix=../mb-max --disable-werror --disable-nls \
     --without-libiconv-prefix --disable-grub-mkfont
$ make
$ make install

Create a Grub2 configuration file. Grub2 will look in $prefix/grub.cfg for the configuration and the $prefix is (memdisk)/boot/grub so we need to place the configuration in this directory it will not be found by default:

$ cd ..
$ mkdir boot/grub
$ vi boot/grub/grub.cfg

The file contains:

TDB

Make a boot image:

./mb-max/bin/i386-grub-mkstandalone -O i386-efi -o boot32.efi grub.cfg