Minnowboard:MaxBios

The MinnowBoard MAX uses a UEFI system level firmware, and provides both the UEFI shell, and a typical BIOS style menu interface.

= UEFI Version =

Publicly released versions

 * http://firmware.intel.com/projects/minnowboard-max : Max Entry Point
 * MNW2MAX1.X64.0076.R01.1412081258
 * New GOP (graphics) driver
 * Better Network booting indicators
 * Better serial console feedback during boot


 * MNW2MAX1.X64.0073.R02.1409160934
 * Fixed the firmware (NVRAM) stallin issue which caused some board brickings
 * Fixed some HDMI monitors from being able to initialize


 * MNW2CRB1.X64.0071.R30.1408131301
 * Initial public release

How to tell your firmware version

 * Get to the UEFI menu
 * Either boot to the UEFI shell and type:   Shell> exit
 * Hit F2 during boot
 * The 3rd line down will be the firmware version
 * will look something like: MNW2CRB1.X64.0071.R30.1408131301

Decoding the Version String
= Updating =

This is a VERY abbreviated version of the updating process, you should refer to the official documentation (that is unfortunately contained in a zip file) at http://firmware.intel.com/sites/default/files/MinnowMax_documentation.zip

fs0: FirmwareUpdate.efi MNW2_IFWI_X64_D_2014_07_18_1654_SecEnabled.bin
 * 1) take a fat32 usb stick, unzip and copy the two files in the zip to that.
 * 2) boot up the MinnowBoard MAX without any other storage installed. This should get you to the UEFI shell.  If that doesn't work hit F2 while booting and use the boot manager to select the efi shell
 * 3) at the shell type:

Tab completion works, as well as you want to check what the you are on the right drive.

This will run for a while, and will shut the board down. Just power it back on (pressing SW1 should power it back up) and you are done, the board is usable normally.

= 32-bit vs. 64-bit UEFI =

UEFI, our primary boot firmware, is very different than a traditional BIOS or even the firmware in other non-x86 embedded systems. It is more commonly found in servers, desktops and laptops, which has advantages and disadvatnages

One of the things in the specification defines is that a 64-bit OS will have a 64-bit firmware, a 32-bit OS will have a 32-bit firmware. This is a HUGE change from the traditional BIOS perspective, which could and did handle both simultaneously. This isn't a huge difference from most of the embedded world, as there hasn't been a lot of hardware that supports both 32-bit and 64-bit.

But to be very clear here:

Support matrix of firmware and OS:
Running in an unsupported configuration may not even boot, but at the least will lead to very odd system interactions. Having a single firmware with UEFI that supports both is not possible.

UEFI Further reading

 * UEFI Website
 * Wikipedia: UEFI
 * Microsoft's What is UEFI
 * How To Geek explains UEFI

Switching from 64-bit to 32-bit

 * 1) Verify you are on a 64-bit Firmware
 * 2) Boot the MinnowBoard MAX, hitting F2 or at the UEFI shell typing Shell> exit
 * 3) Look at the 3rd line on the screen, it should say something similar to: MNW2MAX1.X64.0073.R02.1409031643
 * 4) Verify that the second grouping says X64.  If it says I32 you have a 32-bit firmware, please skip down to the next section if you want to convert back to 64-bit
 * 5) Snag a copy of the firmware you want to use from:
 * 6) https://uefidk.com/content/minnowboard-max
 * 7) Verify that the firmware you downloaded has X32 in the firmware name
 * 8) Unzip the firmware to somewhere convenient
 * 9) Using the FirmwareUpdateX64.efi flash the 32-bit firmware
 * 10) the X64 in this case refers to the efi program you are running *NOT* to the firmware itself

Switching from 32-bit to 64-bit

 * 1) Verify you are on a 32-bit Firmware
 * 2) Boot the MinnowBoard MAX, hitting F2 or at the UEFI shell typing Shell> exit
 * 3) Look at the 3rd line on the screen, it should say something similar to: MNW2MAX1.I32.0073.R02.1409031643
 * 4) Verify that the second grouping says I32.  If it says X64 you have a 64-bit firmware, please skip down to the previous section if you want to convert back to 32-bit
 * 5) Snag a copy of the firmware you want to use from:
 * 6) https://uefidk.com/content/minnowboard-max
 * 7) Verify that the firmware you downloaded has X64 in the firmware name
 * 8) Unzip the firmware to somewhere convenient
 * 9) Using the FirmwareUpdateIA32.efi flash the 64-bit firmware
 * 10) the IA32 in this case refers to the efi program you are running *NOT* to the firmware itself

= UEFI Shell =

The simplest way to get to the UEFI shell is to:
 * 1) Make sure that the MinnowBoard MAX is powered down
 * 2) Disconnect all bootable media
 * 3) USB drives
 * 4) SATA drives
 * 5) SD cards
 * 6) Power on the MinnowBoard MAX

At this point you should get a screen that looks very similar to the one at right. This is the UEFI Shell, there are a number of commands that can be done here, and the system can be explored in great depth from this interface.

Places to find more information about UEFI shell and it's commands:
 * https://software.intel.com/en-us/articles/uefi-shell
 * http://www.sysadminshare.com/2012/01/efi-shell-commands.html

No bootable devices found
If you boot to the UEFI shell and you get the following (or similar)

EFI Shell version 2.40 [1.0] Current running mode 1.1.2 map: Cannot find required map name. Press ESC in 1 seconds to skip startup.nsh, any other key to continue. Shell>

Then your boot, for some reasons, failed to detect any bootable media attached. Double check your connections and then run:

Shell> connect -r Shell> map -r

If that doesn't work, reboot.

= BIOS menu = The BIOS menu gives a more traditional way to configure the basic firmware parameters on the system, set the GPIO pinmux states and perform the typical tasks one would expect to do in these menus.

To get to it: exit You should now get a screen that looks like the following:
 * 1) Key-press way
 * 2) Press F2 during bootup to jump directly to it. Prior to powering on the board, start holding down F2, and continue holding it down until you see the BIOS menu. This will not work over the serial console, it's necessary to actually plug a keyboard into the Minnowboard Max.
 * 3) UEFI Shell way
 * 4) Follow the steps to get to the UEFI Shell (above)
 * 5) Type the following:

This is the main menu on the BIOS menu

= BIOS Menu Tree =

Continue
This just continues the boot process

Select Language
This adjusts the language that the bios is displayed in

Boot Manager
This adjusts the basic boot options, including what to boot to.

EFI Internal Shell
This will boot to the UEFI shell

Device Manager
This allows for the configuration of specific devices on the system

System Setup
Configure System Settings

Main
Contains:
 * Bios Information
 * IFWI Version
 * BIOS Version
 * BIOS Vendor
 * Core Version
 * Build Time
 * Processor Information
 * Type
 * SKU Type
 * Speed
 * Family/Model/Step
 * Microcode Revision
 * Number of Cores
 * 64-bit capability
 * System Date
 * System Time

Platform Information

 * Platform firmware Information
 * VLV SOC
 * MRC Version
 * PUNIT FW Patch
 * PMC FW Patch
 * KSC FW
 * TXE FW Version
 * GOP
 * CPU Flavor
 * Board ID
 * Fab ID
 * Memory Information
 * Total Memory
 * Memory Speed
 * L1 Data Cache
 * L1 Instruction Cache
 * L2 Cache RAM

CPU Configuration
Hyperthreading Supprt: (Chip doesn't support it)

CPU Power Management
&lt;no options&gt;

Uncore Configuration

 * GOP Configuration
 * GOP Driver Enable / Disable Enabled: will unload VBIOS; Disabled it will load VBIOS
 * GOP Brightness Level 20/40/60/80/100/120/140/160/180/200/220/240/255 Sets the GOP brightness
 * IGD Configuration (Integrated Graphics Device)
 * Integrated Graphics Device Enable / Disable Enable or disabled the integrated graphics. NOTE: If you disable this, the only way to turn it back on is via the serial port
 * Primary Display IGD / Auto / PCIe
 * RC6 (Render Standby) Enable / Disable
 * PAVC LITE Mode / Disable / SERPENT Mode
 * DOP CG Enable / Disable
 * GTT Size 2MB / 1MB
 * Aperture Size 256MB / 128MB / 512MB
 * DVMT Pre-Allocated 64M / 96M / 128M / 160M / 192M / 224M / 256M / 288M / 320M / 352M / 384M / 416M / 448M / 480M / 512M
 * DVMT Total Gfx Mem 256M / 128M / MAX
 * IGD Turbo Auto / Enable / Disable
 * IGD - LCD Control
 * Force Lid Status Auto / OFF / ON
 * BIA Auto / Disabled / Level 1 / Level 2 / Level 3 / Level 4 / Level 5
 * ALS Support Disable / Enable
 * LCD Panel Type Auto / 640x480 / 800x600 / 1024x768 / 1280x1024 / 1366x768 / 1680x1050 / 1920x1200 / 1280x800
 * IGD Boot Type Auto / VGA Port / HDMI / DP Port B / DB Port C / eDP / DSI PORT A / DSI PORT C
 * Panel Scaling Auto / Centering / Stretching
 * GMCH BLC Control PWM-Inverted / GMBus-Inverted / PWM-Normal / GMBus-Normal
 * ISP PCI Device Configuration
 * ISP Enable / Disable Enable / Disable
 * ISP PCI Device Selection ISP PCI Device as B0D2F0 / Disable / ISP PCI Device as B0D3F0

South Cluster Configuration
The South Cluster can be thought of like an old south bridge chipset.

PCI Express Configuration

 * PCIe 0 Speed Auto / Gen1 / Gen2 UNUSED
 * PCIe 1 Speed Auto / Gen1 / Gen2 UNUSED
 * PCIe 2 Speed Auto / Gen1 / Gen2 Gigabit Ethernet
 * PCIe 3 Speed Auto / Gen1 / Gen2 High Speed Connector
 * PCI Express Root Port 1 Enable / Disable
 * PCI Express Root Port 2 Disable / Enable
 * PCI Express Root Port 3 Enable / Disable
 * PCI Express Root Port 4 Disable / Enable

USB Configuration

 * USB Controller Auto Mode Enable / Disable
 * XHCI Controller Enable / Disable NOTE: This series of options is only available if Disable is selected for the previous setting
 * HSIC #0 Disable / Enable
 * XHCI Mode Enable / Disable
 * USB2 Link Power Management Enable / Disable
 * USB OTG Support Disable / PCI Mode NOTE: The Baytrail-I (which the MinnowBoard MAX uses) does not have an OTG capable port
 * USB VBUS ON / OFF / Auto
 * EHCI Controller Disable / Enable This is normally greyed out
 * USB RMH Mode Enable / Disable This is normally greyed out
 * USB EHCI debug Disable / Enable This is normally greyed out
 * USB Per-Port Control Enable / Disable This is dependent on USB Controller Auto Mode being disabled
 * USB Port #0 Enable / Disable This is dependent on USB Controller Auto Mode being disabled
 * USB Port #1 Enable / Disable This is dependent on USB Controller Auto Mode being disabled
 * USB Port #2 Enable / Disable This is dependent on USB Controller Auto Mode being disabled
 * USB Port #3 Enable / Disable This is dependent on USB Controller Auto Mode being disabled

Audio Configuration

 * LPE Audio Support Disable / LPE Audio PCI mode / LPE Audio ACPI mode NOTE: Audio is available via I2S, but requires a codec chip to be useful. This is intended to be resolved in a later lure.
 * Audio Controller Enable / Disable
 * Azalia VCi Enable Enable / Disable
 * Azalia Docking Support Enable Disable / Enable
 * Azalia PME Enable Enable / Disable
 * Azalia HDMI Codec Enable / Disable

SATA Drives

 * Chipset-SATA Controller Configuration
 * Chipset SATA Enable / Disable
 * SATA Test Mode Disable / Enable
 * Chipset SATA Mode AHCI / IDE
 * SATA Port 0 &#91;Not Installed&#93; NOTE: This is the port pinned out, when a drive is present it's name will be populated
 * SATA Port 1 &#91;Not Installed&#93; NOTE: Not used, not pulled out from the SOC
 * SATA Port 0 Hot Plug Enable / Disable
 * Capability
 * SATA Port 1 Hot Plug Enable / Disable Note: This port is not used on the MinnowBoard MAX
 * Capability

LPSS & SCC Configuration
This is used to configure the various Low-speed pin connections on the MinnowBoard MAX


 * LPSS & SCC Devices Mode PCI Mode / ACPI Mode
 * SCC Configuration
 * SCC eMMC Boot Controller Auto Detect / Disable / eMMC 4.41 / eMMC 4.5
 * eMMC Secure Erase Disable / Enable
 * SCC eMMC45 Support Enable / Disable Greyed out
 * DDR50 Capability Support Enable / Disable Greyed out
 * HS200 Capability Support Enable / Disable Greyed out
 * Re Tune Timer Value 8 Greyed out
 * SCC SDIO Support Enable / Disable
 * SCC SD Card Support Enable / Disable
 * SDR25 Capability Support for SDCard Disable / Enable Greyed out
 * DDR50 Capability Support for SDCard Enable / Disable Greyed out
 * LPSS 1 Configuration
 * LPSS DMA #1 Support Enable / Disable
 * LPSS HSUART #1 Support Disable / Enable Note: Controls the state of Low-speed pins #6, #8, #10, #12
 * LPSS HSUART #1 FlowCtrl Enable / Disable Note: This is only available when HSUART #1 is on
 * LPSS HSUART #2 Support Disable / Enable Note: Controls the state of Low-speed pins #17, #19. HSUART #2 does not have hardware FlowControl due to lack of CTS/RTS lines being pulled out
 * LPSS HSUART #2 FlowCtrl Enable / Disable Note: This is only available when HSUART #2 is on Note: Hardware Flow Control is not available, since CTS / RTS are not pulled out and available
 * LPSS PWM #1 Support Disable / Enable Note: Controls the state of Low-speed pin #22
 * LPSS PWM #2 Support Disable / Enable Note: Controls the state of Low-speed pin #24
 * LPSS SPI Support Disable / Enable Note: Controls the state of Low-speed pins #5, #7, #9, #11
 * LPSS 2 Configuration
 * LPSS DMA #2 Support Enable / Disable
 * LPSS I2C #5 Support Enable / Disable Note: This is what's used on the Low-speed pins #13, #15
 * LPSS I2C #6 Support Enable / Disable Note: This is what's used for the High Speed I2C pins
 * I2C Devices Configuration
 * I2C Touch Device Address 'Auto / 0x4B / 0x4A
 * SAR Sensor Enable / Disable

ISCT Configuration
Intel Smart Connect Technlogy, this probably doesn't work with the MinnowBoard MAX, your mileage may vary and this is currently untested.


 * ISCT Configuration
 * ISCT Configuration Disable / Enable
 * Options Available upon Enable
 * ISCT Notification Control Enable / Disable
 * ISCT WLAN Power Control Enable / Disable
 * ISCT WWAN Power Control Disable / Enable
 * ISCT Sleep Duration Value Format Seconds
 * ISCT RF Kill Support Physical Switch / Soft Switch Note: The MinnowBoard MAX does not explicitly provide either of these switches, Your Mileage May Vary
 * WLAN Card Presence
 * NGFF Card Inserted NO / YES Note: The MinnowBoard MAX does not specifically support NGFF
 * UHPAM Card Inserted NO / YES

Miscellaneous Configuration

 * Miscellaneous Configuration
 * High Precision Timer Enable / Disable
 * State After G3 S0 State / S5 State
 * Clock Spread Spectrum Disable / Enable
 * UART Interface Selection Internal UART / SuperIO UART
 * PCU UART Com 1 Enable / Disable
 * BIOS Read/Write Protection Disable / Enable
 * PCI MMIO Size 2GB / 0.75GB / 1GB / 1.25GB / 1.5GB
 * PCI Express Dynamic Clock Gating Disable / Enable

Boot

 * Fast Boot Disable / Enable
 * UEFI Security Boot Disable / Enable
 * Silent Boot Disable / Enable
 * BootTime Log Enable / Disable
 * Latest BootTime No Record Note: Greyed out

Security Configuration

 * TXE Configuration
 * TXE FW Version Greyed Out
 * TXE FW Capabilities Greyed Out
 * TXE FW Features Greyed Out
 * TXE FW OEM Tag Greyed Out
 * TXE Firmware Mode Greyed Out
 * TXE Temporary Disable Greyed Out
 * TXE File System Integrity Value
 * TPM Configuration
 * PTT Disable Greyed Out
 * Discrete TPM Enable / Disable
 * Password Setting
 * Setup Administrator Password Text box, no default value
 * User Password Text box, no default value
 * Intel&reg; Anti-Theft Technology Configuration
 * Intel&reg; ATAM Disable / Enable
 * Intel&reg; AT Platform PBA Enable / Disable

Thermal

 * Processor Participant
 * Critical Trip Piint 90 C / 15 C / 23 C / 31 C / 39 C / 47 C / 55 C / 63 C / 71 C / 79 C / 85 C / 87 C
 * Passive Trip Point  85 C  / 15 C / 23 C / 31 C / 39 C / 47 C / 55 C / 63 C / 71 C / 79 C / 87 C / 90 C
 * Active Trip Points Disable / Enable
 * Dynamic Platform & Thermal Framework
 * DPTF Disable / Enable
 * Enabling DPTF allows for the following options:
 * CPU Sensor PArticipants
 * Critical 70 C / 25 C / 35 C / 40 C / 45 C / 50 C / 55 C / 60 C / 65 C / 75 C / 80 C / 85 C / 90 C / 95 C / 100 C / 105 C / 110 C / 115 C / 120 C / 125 C
 * Passive 60 C / 25 C / 35 C / 40 C / 45 C / 50 C / 55 C / 65 C / 70 C / 75 C / 80 C / 85 C / 90 C / 95 C / 100 C / 105 C / 110 C / 115 C / 120 C / 125 C
 * Ambient Sensor Participants
 * Critical 60 C / 25 C / 35 C / 40 C / 45 C / 50 C / 55 C / 65 C / 70 C / 75 C / 80 C / 85 C / 90 C / 95 C / 100 C / 105 C / 110 C / 115 C / 120 C / 125 C
 * Passive 43 C / 25 C / 35 C / 40 C / 45 C / 50 C / 55 C / 60 C / 65 C / 70 C / 75 C / 80 C / 85 C / 90 C / 95 C / 100 C / 105 C / 110 C / 115 C / 120 C / 125 C
 * DDR Sensor Participants
 * Critical 81 C / 25 C / 35 C / 40 C / 45 C / 50 C / 55 C / 60 C / 65 C / 70 C / 75 C / 80 C / 85 C / 90 C / 95 C / 100 C / 105 C / 110 C / 115 C / 120 C / 125 C
 * Passive 62 C / 25 C / 35 C / 40 C / 45 C / 50 C / 55 C / 60 C / 61 C / 65 C / 70 C / 75 C / 80 C / 85 C / 90 C / 95 C / 100 C / 105 C / 110 C / 115 C / 120 C / 125 C
 * Scenario Design Power
 * Brand String N2805/06 / N3510/20 / N2910/20 / N2810/15/20 / J2850/2900 / J1850/1900 / J1750/1800

System Component

 * System Power and Performance (PnP) Configuration
 * SoC PnP Setting Auto Detect / Disable / Ax Stepping / Bx Stepping
 * CFIO/GPIO PnP Setting Disable / Enable
 * LPC PnP Setting Disable / Enable
 * FSA ON OFF / ON

Debug Configuration

 * ACPI Memory Debug Switch
 * ACPI Memory Debug Enable / Disable
 * ExI Disable / Enable
 * WITT Configuration
 * Enable WITT Disable / Enable
 * Enable UTS(Uart Test Suite) Disable / Enable
 * Lakemore Configuration:
 * Memory Allocation Size 0 KiB / 16000 KiB / 8000 KiB / 1000 KiB / 128 KiB
 * PDM/Dfx Setting PDM On / Perf Mode / Power Save / Debug Reserved
 * PDM Msg Output Disable / Main Memory / IO - TBD
 * Enable DB2 Table Enable / Disable
 * PM Weights Enable / Disable
 * Disable Codec ALC-262 NO / YES

Secure Boot Configuration
Set Secure Boot information


 * Current SecureBoot State Disabled Option Greyed Out
 * Attempt Secure Boot &#91; &#93; / &#91;X&#93;
 * Secure Boot Mode Standard Mode / Custom Mode
 * Custom Secure Boot Options
 * PK Options
 * Enrolll PK
 * Enroll PK Using File
 * Delete PK
 * KEK Options
 * Enroll KEK
 * Enroll KEK using File
 * Signature GUID
 * Commit Changes and Exit
 * Discard Changes and Exit
 * Delete KEK
 * DB Options
 * Enroll Signature
 * Enroll Signature Using File
 * Signature GUID
 * Commit Changes and Exit
 * Discard Changes and Exit
 * Delete Signature
 * DBX Options
 * Enroll Signature
 * Enroll Signature Using File
 * Signature GUID
 * Commit Changes and Exit
 * Discard Changes and Exit
 * Delete Signature

Network Device List

 * Network Device List
 * MAC:--:--:--:--:--:--
 * Realtek PCIe GBE Family Controller (MAC:--:--:--:--:--:--)
 * Basic information about the Gigabit Ethernet
 * IPv4 Network Configuration
 * Configured &#91; &#93; / &#91;X&#93;
 * Enable DHCP &#91; &#93; / &#91;X&#93;
 * Local IP Address __
 * Local NetMask __
 * Local IP Gateway __
 * Save Changes and Exit

Boot Options

 * Go Back To Main Page

Add Boot Option
There will be a list of bootable options here

Delete Boot Option

 * EFI Internal Shell &#91; &#93; / &#91;X&#93;
 * EFI USB Device &#91; &#93; / &#91;X&#93;
 * Commit Changes and Exit
 * Discard Changes and Exit

Change Boot Order

 * Change the order &lt;EFI Internal Shell&gt; &lt;EFI USB Device&gt;
 * Commit Changes and Exit
 * Discard Changes and Exit

Driver Options

 * Go Back To Main Page

Add Driver Options

 * Add Driver Option Using File

Delete Driver Option

 * Commit Changes and Exit
 * Discard Changes and Exit

Change Driver Order

 * Commit Changes and Exit
 * Discard Changes and Exit

Console Options

 * Go Back To Main Page

Console Input Device Select

 * UEFI Path for Serial &#91;X&#93; / &#91; &#93;
 * Commit Changes and Exit
 * Discard Changes and Exit

Console Output Device Select

 * UEFI Path ACPI Address &#91;X&#93; / &#91; &#93;
 * UEFI Path Serial Address &#91;X&#93; / &#91; &#93;
 * Commit Changes and Exit
 * Discard Changes and Exit

Console Standard Error Device Select

 * UEFI Path ACPI Address &#91; &#93; / &#91;X&#93;
 * UEFI Path Serial Address &#91; &#93; / &#91;X&#93;
 * Commit Changes and Exit
 * Discard Changes and Exit

Console Output Mode Select

 * Set Console Output Mode 100 x 31 / 80 x 25
 * Commit Changes and Exit
 * Discard Changes and Exit

COM Attribute Setup Page

 * Go Back To Main Page

Set COM Attributes

 * Set COM Baud Rate 115200 / 57600 / 38400 / 19200 / 9600 / 7200 / 4800 / 3600 / 2400 / 1800 / 1200 / 600 / 300 / 150 / 134 / 110 / 75 / 50
 * Set COM Data Bits 8 / 5 / 6 / 7
 * Set COM Parity None / Even / Odd / Mark / Space
 * Set COM Stop Bits One / One and A Half / Two
 * Set COM Terminal Type PC_ANSI / VT_100 / VT_100_PLUS / VT_UTF8
 * Set COM Flow Control None / Hardware
 * Commit Changes and Exit
 * Discard Changes and Exit

Boot From File

 * UEFI Path

Set Boot Next Value

 * Boot Next Value NONE / EFI Internal Shell / EFI USB Device
 * Commit Changes and Exit
 * Discard Changes and Exit

Set Time Out Value

 * Auto Boot Time-out &#91;5&#92; / Range: 0-65535 seconds. 0 is no wait, 65535 is wait for key press
 * Commit Changes and Exit
 * Discard Changes and Exit