===============================================================================
UEFI Firmware Project for Intel Atom(R) Processor E3900 Series platforms
Open Source Release, Version 0.71, Aug 30th, 2018
================================================================================

================================================================================
                                  DISCLAIMER
================================================================================
This release note as well as the software described in it is furnished under
license and may only be used or copied in accordance with the terms of the
license. The information in this manual is furnished for informational use only,
is subject to change without notice, and should not be construed as a commitment
by Intel Corporation. Intel Corporation assumes no responsibility or liability
for any errors or inaccuracies that may appear in this document or any software
that may be provided in association with this document.
Except as permitted by such license, no part of this document may be reproduced,
stored in a retrieval system, or transmitted in any form or by any means without
the express written consent of Intel Corporation.

================================================================================
                               ADDITIONAL DISCLAIMER
================================================================================
This release is open source UEFI firmware for the following platforms based on
the Intel Atom(R) Processor E3900 Series processor:
* Leaf Hill Customer Reference Board (CRB), FAB D
* MinnowBoard 3 Module Pre-production Board
* UP Squared Board 
 (UP Squared English Website: http://www.up-board.org/upsquared/)
 (UP Squared Chinese Website: http://www.up-china.net/)

This open source UEFI firmware also supports Intel Atom(R) Processor A3900 Series,
Intel Pentium(R) Processor N4200 and Intel Celeron(R) Processor N3350 (Apollo Lake).

NOTE REGARDING UP SQUARED PLATFORM: The firmware provided by this project for the
UP Squared maker board is not based on the official manufacturer's firmware. This
project is for experimentation and is not supported by the manufacturer (Aaeon).
Flashing this firmware on the UP Squared will void the manufacturer's warranty.
Thanks to Aaeon for their cooperation and providing platform porting information. 

================================================================================
                                    INDEX 
================================================================================
1.  FILE LIST
2.  HOW TO COMPILE PROJECT SOURCE
3.  TEST ENVIRONMENT
4.  SUPPORTED (NEW) FEATURES AND CHANGES IN RELEASE
5.  HOW TO UPDATE THE PLATFORM BIOS FIRMWARE IMAGE
6.  KNOWN ISSUES
7.  MISC

================================================================================
1.                                FILE LIST
================================================================================
1) IntelAtomE3900-0.71-ReleaseNotes.txt
   Release notes for open source firmware for Intel Atom(R) Processor E3900
   Series processor (this document).

2) IntelAtomE3900-0.71-BuildInstructions.txt
   Build instructions for the open source firmware UEFI for Intel Atom(R)
   Processor E3900 Series processor (how to download & compile code).

3) IntelAtomE3900-0.71-Binary.Objects.zip
   Binary objects required to build project from source. See Section 2 ("HOW TO
   COMPILE PROJECT SOURCE") for more information.

4) MinnowBoard3-0.71-FirmwareImages.zip   
   Pre-compiled UEFI firmware images for MinnowBoard 3 Module Pre-production Board:
   a. M3MODULC.I32.0071.D01.1809030740.bin (UEFI IA32 firmware, debug mode)
   b. M3MODULC.I32.0071.R01.1809030750.bin (UEFI IA32 firmware, release mode)
   c. M3MODULC.X64.0071.D01.1809030759.bin (UEFI x64 firmware, debug mode)
   d. M3MODULC.X64.0071.R01.1809030810.bin (UEFI x64 firmware, release mode)  
   
5) LeafHill-0.71-FirmwareImages.zip
   Pre-compiled UEFI firmware images for Leaf Hill CRB FAB D:
   a. LEAFHILD.X64.0071.D01.1809040132.bin (UEFI x64 firmware, debug mode)
   b. LEAFHILD.X64.0071.R01.1809030849.bin (UEFI x64 firmware, release mode)

6) UpSquared-0.71-FirmwareImages.zip
   Pre-compiled UEFI firmware images for UP Squared Board:
   a. UPBOARDA.X64.0071.D01.1809030917.bin (UEFI x64 firmware, debug mode)
   b. UPBOARDA.X64.0071.R01.1809030927.bin (UEFI x64 firmware, release mode) 
   
7) FirmwareUpdateUtilities.zip
   a. FirmwareUpdateX64.efi
   b. FirmwareUpdateIA32.efi

================================================================================
2.                    HOW TO COMPILE PROJECT SOURCE
================================================================================
Please refer to the file IntelAtomE3900-0.71-BuildInstructions.txt for this
project's build instructions. This file describes how do download the components
necessary to compile release and debug firmware images.

Supported operating systems, compilers, and tools are listed below:  

 Microsoft Windows* System Configuration:
  Microsoft Windows* 7 Ultimate 64-bit
  Microsoft Windows* 10 Enterprise 64-bit
  Microsoft Visual Studio .NET* 2013/2015

 Linux System Configuration:
  Ubuntu 16.04 64-bit
  bash shell
  gcc version 5

 Python* 2.7.10
 NASM 2.12.02
 IASL compiler 2016-09-30

================================================================================
3.                             TEST ENVIRONMENT
================================================================================
1) Platforms: MinnowBoard 3 Module Pre-production Board, FAB C
              Leaf Hill CRB, FAB D
              UP Squared
2) Storage Devices: EMMC,
                    USB drive,
                    SATA drive,
                    Micro SD card
3) Display Devices: HDMI, Display Port 
4) Input Devices: USB Keyboard and USB Mouse
5) OS: Linux (Yocto* build) version:
       binary\core-image-minimal-intel-corei7-64.hddimg image from
       http://downloads.yoctoproject.org/releases/yocto/yocto-2.2/machines/intel-corei7-64/intel-corei7-64-6.0-morty-2.2.tar.bz2
6) OS: Microsoft Windows* 10
       Windows* 10 32bit ISO
         17134.1.180410-1804.rs4_release_CLIENT_BUSINESS_VOL_x86FRE_en-us.iso 
       Windows* 10 64bit ISO
         17134.1.180410-1804.rs4_release_CLIENT_BUSINESS_VOL_x64FRE_en-us.iso
7) OS: Ubuntu* version:
       Ubuntu* 18.04.1 LTS ubuntu-18.04.1-desktop-amd64.iso from 
       http://releases.ubuntu.com/18.04.1/

================================================================================
4.                SUPPORTED (NEW) FEATURES AND CHANGES IN RELEASE
================================================================================
Supported Features:
1) Firmware supports booting from eMMC, USB, and SATA storage devices
2) USB OTG device mode
3) SD card
4) MOR (Memory Overwrite Request)
5) UEFI Secure Boot
6) FastBoot
7) Firmware Update Tool
8) SPI Flash Write Protection
9) fTPM2.0
10) ACPI S3
11) Ubuntu* installation with SATA HDD
12) ACPI SSDT table tool
13) Processor Power Management
14) Key-M M2 Connector
15) 64bit GCC build
16) Add code to detect Board ID
17) Source Level Debug
18) HDMI audio
19) Updated FSP to FSP MR3
20) Add Ubuntu boot loader file path \\EFI\\UBUNTU\\GRUBX64.EFI into known OS loader list. 
21) Display Minnowboard 3 QR code in UEFI Shell (MinnowBoard 3 ONLY)
22) Update Intel FCE (Firmware Configuration Editor) version to 0.33.
23) Add UNDI driver for AX88179 USB-to-LAN adapter
24) Add control method power button
25) HD audio
26) SMBus host controller DXE driver added (Leaf Hill FAB D ONLY)
27) Upgrade core to UDK2018
28) Upgrade Intel(R) FSP to FSP MR5
29) Change BDS from IntelFrameworkModulePkg to MdeModulePkg
30) Add memory test code
31) Add library instance of PlatformBootManagerLib

New Features and Changes:
1) Add VT-d DMA remapping for DMA protection (disabled by default)
2) Add MinnowBoard3 Module Pre-production Board FAB C support
3) Add UP Squared board support
4) For other minor changes, please refer to commit logs on GitHub:
   https://github.com/tianocore/edk2-platforms/tree/devel-IntelAtomProcessorE3900

================================================================================
5.                 HOW TO UPDATE THE PLATFORM BIOS FIRMWARE IMAGE
================================================================================
Use a hardware-based SPI programmer to program the firmware image:
1) As an example, please refer to the "Flashing MinnowBoard Max with Dediprog SF-100
   in Windows" document at firmware.intel.com:
   https://firmware.intel.com/sites/default/files/Flashing_MinnowBoard_MAX_with_Dediprog_SF100_in-Windows.pdf

Use Firmware Update tool to update BIOS image (make sure BIOS Lock is disabled):
1) Instructions for updating 64-bit BIOS image when executing within a 64-bit 
   environment:
   a. Copy "FirmwareUpdateX64.efi" file and target Bios image file to storage 
      device (SD Card, USB disk, or SATA).
   b. Enter UEFI shell.
   c. Navigate to the storage device by typing the "fsX:" command under UEFI 
      shell ("X" portion is replaced by the identifier of the storage device 
      being used, for example, fs0:).
   d. Type the following command to update 64bit bios image:

        FirmwareUpdateX64.efi <TargetX64BiosImageFileName>

   e. The system will automatically shutdown after the update is complete.

2) Instructions for updating 32-bit BIOS image when executing within a 64-bit 
   environment:
   a. Copy "FirmwareUpdateX64.efi" file and target Bios image file to storage 
      device (SD Card, USB disk, or SATA).
   b. Enter UEFI shell.
   c. Navigate to the storage device by typing the "fsX:" command under UEFI 
      shell ("X" portion is replaced by the identifier of the storage device 
      being used, for example, fs0:).
   d. Type the following command to update 32bit bios image:

        FirmwareUpdateX64.efi <TargetIA32BiosImageFileName>

   e. The system will automatically shutdown after the update is complete.

3) Instructions for updating 64-bit BIOS image when executing within a 32-bit 
   environment:
   a. Copy "FirmwareUpdateIA32.efi" file and target Bios image file to storage 
      device (SD Card, USB disk, or SATA).
   b. Enter UEFI shell.
   c. Navigate to the storage device by typing the "fsX:" command under UEFI 
      shell ("X" portion is replaced by the identifier of the storage device 
      being used, for example, fs0:).
   d. Type the following command to update 64bit bios image:

        FirmwareUpdateIA32.efi <TargetX64BiosImageFileName>

   e. The system will automatically shutdown after the update is complete.

4) Instructions for updating 32-bit BIOS image when executing within a 32-bit 
   environment:
   a. Copy "FirmwareUpdateIA32.efi" file and target Bios image file to storage 
      device (SD Card, USB disk, or SATA).
   b. Enter UEFI shell.
   c. Navigate to the storage device by typing the "fsX:" command under UEFI 
      shell ("X" portion is replaced by the identifier of the storage device 
      being used, for example, fs0:).
   d. Type the following command to update 32bit bios image:

        FirmwareUpdateIA32.efi <TargetIA32BiosImageFileName>

   e. The system will automatically shutdown after the update is complete.

================================================================================
6.                                KNOWN ISSUES
================================================================================
1) Intel(R) Boot Guard 2.0 is not enabled by default. Please contact your Intel
   Representative to obtain the required tools and instructions.
2) eMMC is not stable when running at HS400 on Leaf Hill FAB D and MinnowBoard 3
   Module (pre-production board). Current version downgrades eMMC host to HS200.
3) UP Squared: The second PCIe RealTek NIC is disabled due to installer issue
   with Microsoft* Windows 10.

================================================================================
7.                                   MISC
================================================================================
1) Virus scanned by McAfee VirusScan Enterprise 8.8.0, Virus Definitions 9007, 
   no virus detected.

* Other names and brands may be claimed as the property of others.

[END OF RELEASE NOTES]