2016-01-07 20:24:24 +01:00
<!DOCTYPE html>
< html >
< head >
< title > Quark™ SoC< / title >
< / head >
< body >
< h1 > Intel® Quark™ SoC< / h1 >
< table >
< tr >
< 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 >
< td >
2016-02-02 16:55:38 +01:00
The Quark™ SoC code was developed using the
< a target = "_blank" href = "../Board/galileo.html" > Galileo Gen 2< / a >
board:
< ul >
2016-02-03 16:28:22 +01:00
< li > < a target = "_blank" href = "../development.html" > Overall< / a > development< / li >
2016-02-02 16:55:38 +01:00
< li > < a target = "_blank" href = "soc.html" > SoC< / a > support< / li >
< li > < a target = "_blank" href = "../fsp1_1.html" > FSP 1.1< / a > integration< / li >
< li > < a target = "_blank" href = "../Board/board.html" > Board< / a > support< / li >
< / ul >
2016-01-07 20:24:24 +01:00
< / td >
< / tr >
< / table >
< hr >
< h1 > Quark™ Documentation< / h1 >
< ul >
< 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 >
< 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 >
< li > < a target = "_blank" href = "http://www.intel.com/content/www/us/en/embedded/products/quark/specifications.html" > Specifications< / a > :
< ul >
< li > < a target = "_blank" href = "http://ark.intel.com/products/79084/Intel-Quark-SoC-X1000-16K-Cache-400-MHz" > X1000< / a >
- < a target = "_blank" href = "http://www.intel.com/content/www/us/en/search.html?keyword=X1000" > Documentation< / a > :
< ul >
< li > < a target = "_blank" href = "http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/quark-x1000-datasheet.pdf" > Datasheet< / a > < / li >
< 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 >
< 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 >
< / ul >
< / li >
< / ul >
< / li >
< / ul >
< hr >
2016-02-28 15:22:47 +01:00
< h1 > < a name = "CorebootPayloadPkg" > Quark™ EDK2 CorebootPayloadPkg< / a > < / h1 >
2016-02-10 20:12:50 +01:00
< p >
Build Instructions:
< / p >
< ol >
< li > Set up < a href = "#BuildEnvironment" > build environment< / a > < / li >
2016-02-21 02:44:35 +01:00
< li > For the Galileo Gen 2, replace the following lines in
CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc:
< pre > < code > gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|FALSE
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x03F8
< / code > < / pre >
with:
< pre > < code > #
# Quark configuration
#
gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber|1
#
# Specify Galileo HSUART1 serial port
#
[PcdsPatchableInModule.common]
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialPciDeviceInfo|{0xff}
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|TRUE
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0xA0019000
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|4
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|44236800
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate|921600
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialLineControl|3 # 8-bits, no parity
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseHardwareFlowControl|FALSE
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialDetectCable|FALSE
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialFifoControl|1 # Enable FIFO
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize|16
< / code > < / pre >
< / li >
2016-02-10 20:12:50 +01:00
< li > Build Instructions:
< ul >
2016-02-21 02:44:35 +01:00
< li > Linux (assumes GCC48):
< ol type = "A" >
< li > Edit Conf/tools_def.txt to add " -march=i586" to the IA32_CC_FLAGS
for the GCC compiler being used:
< pre > < code > *_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os -march=i586< / code > < / pre >
< / li >
< li >
2016-02-10 20:12:50 +01:00
< pre > < code > build -p CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc -a IA32 -t GCC48 -b DEBUG -DDEBUG_PROPERTY_MASK=0x27 -DDEBUG_PRINT_ERROR_LEVEL=0x80000042
2016-02-21 02:44:35 +01:00
ls Build/CorebootPayloadPkgIA32/DEBUG_GCC48/FV/UEFIPAYLOAD.fd
2016-02-10 20:12:50 +01:00
< / code > < / pre >
2016-02-21 02:44:35 +01:00
< / li >
< / ol >
2016-02-10 20:12:50 +01:00
< / li >
< li > Windows:
< pre > < code > build -p CorebootPayloadPkg\CorebootPayloadPkgIa32.dsc -a IA32 -t VS2012x86 -b DEBUG -DDEBUG_PROPERTY_MASK=0x27 -DDEBUG_PRINT_ERROR_LEVEL=0x80000042
2016-02-21 02:44:35 +01:00
dir Build\CorebootPayloadPkgIA32\DEBUG_VS2012x86\FV\UEFIPAYLOAD.fd
2016-02-10 20:12:50 +01:00
< / code > < / pre >
< / li >
< / ul >
< / li >
2016-02-21 02:44:35 +01:00
< li > In the .config for coreboot, set the following Kconfig values:
2016-01-07 20:24:24 +01:00
< ul >
2016-02-10 20:12:50 +01:00
< li > CONFIG_PAYLOAD_ELF=y< / li >
< li > CONFIG_PAYLOAD_FILE="path to UEFIPAYLOAD.fd"< / li >
< / ul >
< / li >
< li > Build coreboot< / li >
< li > Copy the image build/coreboot.rom into flash< / li >
< / ol >
< hr >
< h1 > < a name = "BuildEnvironment" > Quark™ EDK2 Build Environment< / a > < / h1 >
< p >
Use the following steps to setup a build environment:
< / p >
< ol >
< li > Get the EDK2 sources:
< ol type = "A" >
2016-01-07 20:24:24 +01:00
< li > EDK2: git clone < a target = "_blank" href = "https://github.com/tianocore/edk2.git" > https://github.com/tianocore/edk2.git< / a > < / li >
< 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 >
< 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 >
< 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 >
2016-02-10 20:12:50 +01:00
< / ol >
2016-01-07 20:24:24 +01:00
< / li >
2016-02-10 20:12:50 +01:00
< li > Set up a build window:
< ul >
< li > Linux:
2016-02-08 22:57:47 +01:00
< pre > < code > export WORKSPACE=$PWD
export PACKAGES_PATH="$PWD/edk2:$PWD/FatPkg:$PWD/edk2-non-osi"
cd edk2
export WORKSPACE=$PWD
. edksetup.sh
< / code > < / pre >
2016-02-10 20:12:50 +01:00
< / li >
< li > Windows:
2016-01-07 20:24:24 +01:00
< pre > < code > set WORKSPACE=%CD%
set PACKAGES_PATH=%WORKSPACE%\edk2;%WORKSPACE%\FatPkg;%WORKSPACE%\edk2-non-osi
set EDK_TOOLS_BIN=%WORKSPACE%\edk2-BaseTools-win32
cd edk2
edksetup.bat
< / code > < / pre >
2016-02-10 20:12:50 +01:00
< / li >
< / ul >
< / li >
< / ol >
< p >
EDK2 Documentation:
< / p >
< ul >
< li > Build < a target = "_blank" href = "https://github.com/tianocore-docs/Docs/raw/master/Specifications/Build_Spec_1_26.pdf" > V1.26< / a > < / li >
< 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 >
< li > DEC < a target = "_blank" href = "https://github.com/tianocore-docs/Docs/raw/master/Specifications/DEC_Spec_1_25.pdf" > V1.25< / a > < / li >
< li > DSC < a target = "_blank" href = "https://github.com/tianocore-docs/Docs/raw/master/Specifications/DSC_Spec_1_26.pdf" > V1.26< / a > < / li >
2016-03-04 01:08:29 +01:00
< li > < a target = "_blank" href = "https://github.com/tianocore/tianocore.github.io/wiki/UEFI-Driver-Writer's-Guide" > Driver Writer's Guide< / a > < / li >
2016-02-10 20:12:50 +01:00
< li > Expression Syntax < a target = "_blank" href = "https://github.com/tianocore-docs/Docs/raw/master/Specifications/ExpressionSyntax_1.1.pdf" > V1.1< / a > < / li >
< li > FDF < a target = "_blank" href = "https://github.com/tianocore-docs/Docs/raw/master/Specifications/FDF_Spec_1_26.pdf" > V1.26< / a > < / li >
< li > INF < a target = "_blank" href = "https://github.com/tianocore-docs/Docs/raw/master/Specifications/INF_Spec_1_25.pdf" > V1.25< / a > < / li >
< li > PCD < a target = "_blank" href = "https://github.com/tianocore-docs/Docs/raw/master/Specifications/PCD_Infrastructure.pdf" > PCD< / a > V0.55< / li >
< 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 >
< li > VRF < a target = "_blank" href = "https://github.com/tianocore-docs/Docs/raw/master/Specifications/VFR_1_9.pdf" > V1.9< / a > < / li >
< / ul >
< hr >
< h1 > Quark™ FSP< / h1 >
< p >
Documentation:
< / p >
< ul >
< 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 >
< / ul >
< hr >
< h1 > Quark™ EDK2 BIOS< / h1 >
< p >
Build Instructions:
< / p >
< ol >
< li > Set up < a href = "#BuildEnvironment" > build environment< / a > < / li >
< li > Build the image:
< ul >
< li > Linux:
< pre > < code > build -p QuarkPlatformPkg/Quark.dsc -a IA32 -t GCC48 -b DEBUG -DDEBUG_PROPERTY_MASK=0x27 -DDEBUG_PRINT_ERROR_LEVEL=0x80000042
ls Build/Quark/DEBUG_GCC48/FV/Quark.fd
< / code > < / pre >
< / li >
< li > Windows:
< pre > < code > build -p QuarkPlatformPkg/Quark.dsc -a IA32 -t VS2012x86 -b DEBUG -DDEBUG_PROPERTY_MASK=0x27 -DDEBUG_PRINT_ERROR_LEVEL=0x80000042
dir Build\Quark\DEBUG_VS2012x86\FV\Quark.fd
< / code > < / pre >
< / li >
< / ul >
2016-01-07 20:24:24 +01:00
< / li >
2016-02-10 20:12:50 +01:00
< / ol >
< p >
Documentation:
< / p >
< ul >
2016-03-04 01:08:29 +01:00
< li > < a target = "_blank" href = "https://github.com/tianocore/edk2/tree/master/QuarkPlatformPkg" > EDK II firmware for Intel® Quark™ SoC X1000 based platforms< / a > < / li >
2016-02-10 20:12:50 +01:00
< 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 >
2016-01-07 20:24:24 +01:00
< / ul >
< hr >
2016-03-04 01:08:29 +01:00
< p > Modified: 29 February 2016< / p >
2016-01-07 20:24:24 +01:00
< / body >
< / html >