Lee Leahy | c1e4f89 | 2016-01-07 11:24:24 -0800 | [diff] [blame] | 1 | <!DOCTYPE html> |
| 2 | <html> |
| 3 | <head> |
| 4 | <title>Quark™ SoC</title> |
| 5 | </head> |
| 6 | <body> |
| 7 | |
| 8 | <h1>Intel® Quark™ SoC</h1> |
| 9 | <table> |
| 10 | <tr> |
| 11 | <td><a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/images/embedded/16x9/edc-quark-block-diagram-16x9.png"><img alt="Quark Block Diagram" src="http://www.intel.com/content/dam/www/public/us/en/images/embedded/16x9/edc-quark-block-diagram-16x9.png" width=500></a></td> |
| 12 | <td> |
Lee Leahy | 05c0215 | 2016-02-02 07:55:38 -0800 | [diff] [blame] | 13 | The Quark™ SoC code was developed using the |
| 14 | <a target="_blank" href="../Board/galileo.html">Galileo Gen 2</a> |
| 15 | board: |
| 16 | <ul> |
Lee Leahy | e8424cf | 2016-02-03 07:28:22 -0800 | [diff] [blame] | 17 | <li><a target="_blank" href="../development.html">Overall</a> development</li> |
Lee Leahy | 05c0215 | 2016-02-02 07:55:38 -0800 | [diff] [blame] | 18 | <li><a target="_blank" href="soc.html">SoC</a> support</li> |
| 19 | <li><a target="_blank" href="../fsp1_1.html">FSP 1.1</a> integration</li> |
| 20 | <li><a target="_blank" href="../Board/board.html">Board</a> support</li> |
| 21 | </ul> |
Lee Leahy | c1e4f89 | 2016-01-07 11:24:24 -0800 | [diff] [blame] | 22 | </td> |
| 23 | </tr> |
| 24 | </table> |
| 25 | |
| 26 | |
| 27 | |
| 28 | <hr> |
| 29 | <h1>Quark™ Documentation</h1> |
| 30 | <ul> |
| 31 | <li><a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/images/embedded/16x9/edc-quark-block-diagram-16x9.png">Block Diagram</a></li> |
| 32 | <li>Intel® 64 and IA-32 Architectures <a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf">Software Developer Manual</a></li> |
| 33 | <li><a target="_blank" href="http://www.intel.com/content/www/us/en/embedded/products/quark/specifications.html">Specifications</a>: |
| 34 | <ul> |
| 35 | <li><a target="_blank" href="http://ark.intel.com/products/79084/Intel-Quark-SoC-X1000-16K-Cache-400-MHz">X1000</a> |
| 36 | - <a target="_blank" href="http://www.intel.com/content/www/us/en/search.html?keyword=X1000">Documentation</a>: |
| 37 | <ul> |
| 38 | <li><a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/quark-x1000-datasheet.pdf">Datasheet</a></li> |
| 39 | <li><a target="_blank" href="http://www.intel.com/content/dam/support/us/en/documents/processors/quark/sb/intelquarkcore_devman_001.pdf">Developer's Manual</a></li> |
| 40 | <li><a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/intel-quark-product-brief-v3.pdf">Product Brief</a></li> |
| 41 | </ul> |
| 42 | </li> |
| 43 | </ul> |
| 44 | </li> |
| 45 | </ul> |
| 46 | |
| 47 | |
| 48 | |
| 49 | <hr> |
Lee Leahy | db7410e | 2016-02-10 11:12:50 -0800 | [diff] [blame] | 50 | <h1>Quark™ EDK2 CorebootPayloadPkg</h1> |
| 51 | <p> |
| 52 | Build Instructions: |
| 53 | </p> |
| 54 | <ol> |
| 55 | <li>Set up <a href="#BuildEnvironment">build environment</a></li> |
Lee Leahy | c7a9433 | 2016-02-20 17:44:35 -0800 | [diff] [blame] | 56 | <li>For the Galileo Gen 2, replace the following lines in |
| 57 | CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc: |
| 58 | <pre><code> gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|FALSE |
| 59 | gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x03F8 |
| 60 | </code></pre> |
| 61 | with: |
| 62 | <pre><code># |
| 63 | # Quark configuration |
| 64 | # |
| 65 | gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber|1 |
| 66 | |
| 67 | # |
| 68 | # Specify Galileo HSUART1 serial port |
| 69 | # |
| 70 | [PcdsPatchableInModule.common] |
| 71 | gEfiMdeModulePkgTokenSpaceGuid.PcdSerialPciDeviceInfo|{0xff} |
| 72 | gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|TRUE |
| 73 | gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0xA0019000 |
| 74 | gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|4 |
| 75 | |
| 76 | gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|44236800 |
| 77 | gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate|921600 |
| 78 | gEfiMdeModulePkgTokenSpaceGuid.PcdSerialLineControl|3 # 8-bits, no parity |
| 79 | gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseHardwareFlowControl|FALSE |
| 80 | gEfiMdeModulePkgTokenSpaceGuid.PcdSerialDetectCable|FALSE |
| 81 | gEfiMdeModulePkgTokenSpaceGuid.PcdSerialFifoControl|1 # Enable FIFO |
| 82 | gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize|16 |
| 83 | </code></pre> |
| 84 | </li> |
Lee Leahy | db7410e | 2016-02-10 11:12:50 -0800 | [diff] [blame] | 85 | <li>Build Instructions: |
Lee Leahy | c1e4f89 | 2016-01-07 11:24:24 -0800 | [diff] [blame] | 86 | <ul> |
Lee Leahy | c7a9433 | 2016-02-20 17:44:35 -0800 | [diff] [blame] | 87 | <li>Linux (assumes GCC48): |
| 88 | <ol type="A"> |
| 89 | <li>Edit Conf/tools_def.txt to add " -march=i586" to the IA32_CC_FLAGS |
| 90 | for the GCC compiler being used: |
| 91 | <pre><code>*_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os -march=i586</code></pre> |
| 92 | </li> |
| 93 | <li> |
Lee Leahy | db7410e | 2016-02-10 11:12:50 -0800 | [diff] [blame] | 94 | <pre><code>build -p CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc -a IA32 -t GCC48 -b DEBUG -DDEBUG_PROPERTY_MASK=0x27 -DDEBUG_PRINT_ERROR_LEVEL=0x80000042 |
Lee Leahy | c7a9433 | 2016-02-20 17:44:35 -0800 | [diff] [blame] | 95 | ls Build/CorebootPayloadPkgIA32/DEBUG_GCC48/FV/UEFIPAYLOAD.fd |
Lee Leahy | db7410e | 2016-02-10 11:12:50 -0800 | [diff] [blame] | 96 | </code></pre> |
Lee Leahy | c7a9433 | 2016-02-20 17:44:35 -0800 | [diff] [blame] | 97 | </li> |
| 98 | </ol> |
Lee Leahy | db7410e | 2016-02-10 11:12:50 -0800 | [diff] [blame] | 99 | </li> |
| 100 | <li>Windows: |
| 101 | <pre><code>build -p CorebootPayloadPkg\CorebootPayloadPkgIa32.dsc -a IA32 -t VS2012x86 -b DEBUG -DDEBUG_PROPERTY_MASK=0x27 -DDEBUG_PRINT_ERROR_LEVEL=0x80000042 |
Lee Leahy | c7a9433 | 2016-02-20 17:44:35 -0800 | [diff] [blame] | 102 | dir Build\CorebootPayloadPkgIA32\DEBUG_VS2012x86\FV\UEFIPAYLOAD.fd |
Lee Leahy | db7410e | 2016-02-10 11:12:50 -0800 | [diff] [blame] | 103 | </code></pre> |
| 104 | </li> |
| 105 | </ul> |
| 106 | </li> |
Lee Leahy | c7a9433 | 2016-02-20 17:44:35 -0800 | [diff] [blame] | 107 | <li>In the .config for coreboot, set the following Kconfig values: |
Lee Leahy | db7410e | 2016-02-10 11:12:50 -0800 | [diff] [blame] | 108 | <ul> |
| 109 | <li>CONFIG_PAYLOAD_ELF=y</li> |
| 110 | <li>CONFIG_PAYLOAD_FILE="path to UEFIPAYLOAD.fd"</li> |
| 111 | </ul> |
| 112 | </li> |
| 113 | <li>Build coreboot</li> |
| 114 | <li>Copy the image build/coreboot.rom into flash</li> |
| 115 | </ol> |
| 116 | |
| 117 | |
| 118 | |
| 119 | <hr> |
| 120 | <h1><a name="BuildEnvironment">Quark™ EDK2 Build Environment</a></h1> |
| 121 | <p> |
| 122 | Use the following steps to setup a build environment: |
| 123 | </p> |
| 124 | <ol> |
| 125 | <li>Get the EDK2 sources: |
| 126 | <ol type="A"> |
Lee Leahy | c1e4f89 | 2016-01-07 11:24:24 -0800 | [diff] [blame] | 127 | <li>EDK2: git clone <a target="_blank" href="https://github.com/tianocore/edk2.git">https://github.com/tianocore/edk2.git</a></li> |
| 128 | <li>EDK2-FatPkg: git clone <a target="_blank" href="https://github.com/tianocore/edk2-FatPkg.git">https://github.com/tianocore/edk2-FatPkg.git</a> FatPkg</li> |
| 129 | <li>EDK2-non-osi: git clone <a target="_blank" href="https://github.com/tianocore/edk2-non-osi.git">https://github.com/tianocore/edk2-non-osi.git</a></li> |
| 130 | <li>Win32 BaseTools: git clone <a target="_blank" href="https://github.com/tianocore/edk2-BaseTools-win32.git">https://github.com/tianocore/edk2-BaseTools-win32.git</a></li> |
Lee Leahy | db7410e | 2016-02-10 11:12:50 -0800 | [diff] [blame] | 131 | </ol> |
Lee Leahy | c1e4f89 | 2016-01-07 11:24:24 -0800 | [diff] [blame] | 132 | </li> |
Lee Leahy | db7410e | 2016-02-10 11:12:50 -0800 | [diff] [blame] | 133 | <li>Set up a build window: |
| 134 | <ul> |
| 135 | <li>Linux: |
Lee Leahy | 1c85fea | 2016-02-08 13:57:47 -0800 | [diff] [blame] | 136 | <pre><code>export WORKSPACE=$PWD |
| 137 | export PACKAGES_PATH="$PWD/edk2:$PWD/FatPkg:$PWD/edk2-non-osi" |
| 138 | cd edk2 |
| 139 | export WORKSPACE=$PWD |
| 140 | . edksetup.sh |
Lee Leahy | 1c85fea | 2016-02-08 13:57:47 -0800 | [diff] [blame] | 141 | </code></pre> |
Lee Leahy | db7410e | 2016-02-10 11:12:50 -0800 | [diff] [blame] | 142 | </li> |
| 143 | <li>Windows: |
Lee Leahy | c1e4f89 | 2016-01-07 11:24:24 -0800 | [diff] [blame] | 144 | <pre><code>set WORKSPACE=%CD% |
| 145 | set PACKAGES_PATH=%WORKSPACE%\edk2;%WORKSPACE%\FatPkg;%WORKSPACE%\edk2-non-osi |
| 146 | set EDK_TOOLS_BIN=%WORKSPACE%\edk2-BaseTools-win32 |
| 147 | cd edk2 |
| 148 | edksetup.bat |
Lee Leahy | c1e4f89 | 2016-01-07 11:24:24 -0800 | [diff] [blame] | 149 | </code></pre> |
Lee Leahy | db7410e | 2016-02-10 11:12:50 -0800 | [diff] [blame] | 150 | </li> |
| 151 | </ul> |
Lee Leahy | c1e4f89 | 2016-01-07 11:24:24 -0800 | [diff] [blame] | 152 | </li> |
Lee Leahy | db7410e | 2016-02-10 11:12:50 -0800 | [diff] [blame] | 153 | </ol> |
| 154 | |
| 155 | <p> |
| 156 | EDK2 Documentation: |
| 157 | </p> |
| 158 | <ul> |
| 159 | <li>Build <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/Build_Spec_1_26.pdf">V1.26</a></li> |
| 160 | <li>Coding Standards <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/CCS_2_1_Draft.pdf">V2.1</a></li> |
| 161 | <li>DEC <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/DEC_Spec_1_25.pdf">V1.25</a></li> |
| 162 | <li>DSC <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/DSC_Spec_1_26.pdf">V1.26</a></li> |
| 163 | <li>Expression Syntax <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/ExpressionSyntax_1.1.pdf">V1.1</a></li> |
| 164 | <li>FDF <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/FDF_Spec_1_26.pdf">V1.26</a></li> |
| 165 | <li>INF <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/INF_Spec_1_25.pdf">V1.25</a></li> |
| 166 | <li>PCD <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/PCD_Infrastructure.pdf">PCD</a>V0.55</li> |
| 167 | <li>UNI <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/UNI_File_Spec_v1_2_Errata_A.pdf">V1.2 Errata A</a></li> |
| 168 | <li>VRF <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/VFR_1_9.pdf">V1.9</a></li> |
Lee Leahy | c1e4f89 | 2016-01-07 11:24:24 -0800 | [diff] [blame] | 169 | </ul> |
| 170 | |
| 171 | |
| 172 | |
| 173 | <hr> |
Lee Leahy | db7410e | 2016-02-10 11:12:50 -0800 | [diff] [blame] | 174 | <h1>Quark™ FSP</h1> |
| 175 | <p> |
| 176 | Documentation: |
| 177 | </p> |
| 178 | <ul> |
| 179 | <li>Intel® Firmware Support Package External Architecture Specification <a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/fsp-architecture-spec-v1-1.pdf">V1.1</a></li> |
| 180 | </ul> |
| 181 | |
| 182 | |
| 183 | |
| 184 | <hr> |
| 185 | <h1>Quark™ EDK2 BIOS</h1> |
| 186 | <p> |
| 187 | Build Instructions: |
| 188 | </p> |
| 189 | <ol> |
| 190 | <li>Set up <a href="#BuildEnvironment">build environment</a></li> |
| 191 | <li>Build the image: |
| 192 | <ul> |
| 193 | <li>Linux: |
| 194 | <pre><code>build -p QuarkPlatformPkg/Quark.dsc -a IA32 -t GCC48 -b DEBUG -DDEBUG_PROPERTY_MASK=0x27 -DDEBUG_PRINT_ERROR_LEVEL=0x80000042 |
| 195 | ls Build/Quark/DEBUG_GCC48/FV/Quark.fd |
| 196 | </code></pre> |
| 197 | </li> |
| 198 | <li>Windows: |
| 199 | <pre><code>build -p QuarkPlatformPkg/Quark.dsc -a IA32 -t VS2012x86 -b DEBUG -DDEBUG_PROPERTY_MASK=0x27 -DDEBUG_PRINT_ERROR_LEVEL=0x80000042 |
| 200 | dir Build\Quark\DEBUG_VS2012x86\FV\Quark.fd |
| 201 | </code></pre> |
| 202 | </li> |
| 203 | </ul> |
| 204 | </li> |
| 205 | </ol> |
| 206 | |
| 207 | <p> |
| 208 | Documentation: |
| 209 | </p> |
| 210 | <ul> |
| 211 | <li>Intel® Quark™ SoC X1000 <a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/guides/quark-x1000-uefi-firmware-writers-guide.pdf">UEFI Firmware Writer's Guide</a></li> |
| 212 | </ul> |
| 213 | |
| 214 | |
| 215 | |
| 216 | <hr> |
Lee Leahy | c7a9433 | 2016-02-20 17:44:35 -0800 | [diff] [blame] | 217 | <p>Modified: 20 February 2016</p> |
Lee Leahy | c1e4f89 | 2016-01-07 11:24:24 -0800 | [diff] [blame] | 218 | </body> |
| 219 | </html> |