summaryrefslogtreecommitdiff
path: root/Platform/ReadMe.MD
blob: 024e5b7dd8d2286222237a1866faf99fba101b23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# UEFI Firmware Project for Intel Atom(R) Processor E3900 Series platforms

This codebase is designed for Intel Atom(R) Processor E3900 Series platforms (formerly Apollo Lake). https://www.intel.com/content/www/us/en/embedded/products/apollo-lake/overview.html

## Download Official Releases

Please refer to the release notes to download official releases (source code and binary images). Information is available at https://firmware.intel.com/projects/minnowboard3

## Download the Latest Source Code

Official source releases are recommended since they have passed stability testing. Use the directions below to download the latest code.
```
1. Create a new directory for use as your WORKSPACE (e.g. "C:\MyWorkspace").

2. Download the following repositories and required files to the WORKSPACE:

edk2 repository
    git clone -b vUDK2018 https://github.com/tianocore/edk2.git

edk2-platforms repository
    git clone https://github.com/tianocore/edk2-platforms.git -b devel-IntelAtomProcessorE3900

Intel(R) Firmware Support Package(Intel(R) FSP)
   1.git clone -b ApolloLake https://github.com/IntelFsp/FSP.git
   2.cd FSP
   3.git checkout a57c66616e78b471515a1e1862796bf61d3824d8
   4.Copy the ApolloLakeFspBinPkg to the folder
     "C:\MyWorkspace\edk2-platforms\Silicon\BroxtonSoC\BroxtonFspPkg".

3. Download UEFI UNDI driver:
   1.Install UEFI UNDI driver for Intel i210 Ethernet Controller
   Download PREBOOT.EXE Version 21.1 from the "Intel® Ethernet Connections 
   Boot Utility, Preboot Images, and EFI Drivers" page.
     https://downloadcenter.intel.com/download/19186/Intel-Ethernet-Connections-Boot-Utility-Preboot-Images-and-EFI-Drivers

   Windows user:
   a. Install PREBOOT.EXE into the default folder (C:\Intel21.1).
   b. Copy the UEFI x64 PCI-E gigabit driver (C:\Intel21.1\APPS\EFI\EFIx64\E7320X3.EFI) 
      to the platform package directory below, create the folder if it does not exist:
      "C:\MyWorkspace\edk2-platforms\Platform\BroxtonPlatformPkg\Common\Binaries\UNDI\I210PcieUndiDxe"

   Linux user:
   a. Use command "unzip PREBOOT.EXE" to extract UEFI x64 PCI-E gigabit driver 
      (preboot/APPS/EFI/EFIx64/E7320X3.EFI)
   b. Copy E7320X3.EFI to platform package directory below, create the folder
      if it does not exist:
      "~/src/MyWorkspace/edk2-platforms/Platform/BroxtonPlatformPkg/Common/Binaries/UNDI/I210PcieUndiDxe"

   2.Install UNDI driver for AX88179 USB-to-LAN adapter
   a. Download AX88179_178A_UEFI_V2.7.0.zip from http://www.asix.com.tw/FrootAttach/driver/AX88179_178A_UEFI_V2.7.0.zip.
   b. Unzip AX88179_178A_UEFI_V2.7.0.zip to get AX88179_178A_UEFI_V2.7.0_X64.efi and AX88179_178A_UEFI_V2.7.0_IA32.efi.
   C. Copy AX88179_178A_UEFI_V2.7.0_X64.efi and AX88179_178A_UEFI_V2.7.0_IA32.efi to below directory, create the folder
      if it does not exist:
      Windows user: "C:\MyWorkspace\edk2-platforms\Platform\BroxtonPlatformPkg\Common\Binaries\UNDI\AX88179\"
      Linux user: "~/src/MyWorkspace/edk2-platforms/Platform/BroxtonPlatformPkg/Common/Binaries/UNDI/AX88179/"

4. Follow the instructions found in the "OpenSSL-HOWTO.txt" file located in the Workspace
   (e.g. "C:\MyWorkspace\edk2-platforms\Core\CryptoPkg\Library\OpensslLib\OpenSSL-HOWTO.txt")
   to install the OpenSSL* source code and enable the CryptoPkg module.   

5. Download Platform Binary Object Modules
   a. Download the "MinnowBoard_v3-0.69-Binary.Objects.zip" from the project page:
      https://firmware.intel.com/projects/minnowboard3

   b. Unzip and copy the two folders (MinnowBoard3, MinnowBoard3Next) into
      the directory below, and create the folder if it does not exist:
      "C:\MyWorkspace\edk2-platforms\Platform\BroxtonPlatformPkg\Board\"
```

## **Windows Build Instructions**

### Pre-requisites

* Microsoft Visual Studio
  - Install C compiler (Visual Studio .NET* VS2013/VS2015) on the build machine.
* ASL compiler: Available from http://www.acpica.org
  - Unzip and copy ```iasl.exe``` into ```C:\MyWorkspace\edk2-platforms\Platform\BroxtonPlatformPkg\Common\Tools\Iasl```.
* NASM assembler:  Available from: http://www.nasm.us/
  - Unzip the 32-bit & 64-bit versions of nasm.exe to the directories listed below
  ```
  C:\MyWorkspace\edk2-platforms\Platform\BroxtonPlatformPkg\Common\Tools\nasm\Win32
  C:\MyWorkspace\edk2-platforms\Platform\BroxtonPlatformPkg\Common\Tools\nasm\Win64
  ```
* Python 2.7.10:  Available from: https://www.python.org/downloads/release/python-2710/
  - Install Python and make sure that a file with the extension of ".py" will be opened by Python.exe.

### Build

1. Open command window, goto the workspace dir, e.g. c:\MyWorkspace.
2. Type "cd edk2-platforms".
3. Build
   ```
      Examples:      
       To build release version 32-bit BIOS for Minnowboard 3 FAB B with VS2013,
         BuildBIOS.bat /vs13 /B /IA32 Broxton Release
            
       To build release version 64-bit BIOS for Minnowboard 3 FAB B with VS2013,
         BuildBIOS.bat /vs13 /B /x64 Broxton Release
   ```
## **Linux Build Instructions**

### Pre-requisites

* Linux System Configuration
  - Ubuntu 16.04 64-bit
  - GCC version 5
* Use below command to install required packages:
    ```
      # sudo apt-get update
      # sudo apt-get install nasm 
      # sudo apt-get install iasl
      # sudo apt-get install build-essential
      # sudo apt-get install uuid-dev
	```

### Build

1. Open a command prompt, goto the platform package "MyWorkspace/edk2-platforms".
2. Build
   ```
   - Type "./BuildBIOS.sh /B Broxton Release" to build a release version.
   - Type "./BuildBIOS.sh /B Broxton Debug" to build a debug version.
   ```
   
## **Related Materials**
  
   http://minnowboard.org/ -- Open Source Hardware Project

   https://firmware.intel.com/projects/minnowboard3 -- Release notes, pre-built release/debug binaries, build instructions, and binary objects required to compile firmware.