| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| # Accounts on coreboot.org | ||
|
|
||
| There are a number of places where you can benefit from creaating an account | ||
| in our community. Since there is no single sign-on system in place (at this | ||
| time), they come with their own setup routines. | ||
|
|
||
| ## Gerrit code review | ||
| We exchange and review patches to the code using our [Gerrit code review | ||
| system](https://review.coreboot.org). | ||
|
|
||
| It allows logging in with a Google or GitHub account using OAuth2 as well | ||
| as with any OpenID provider that you may already use. | ||
|
|
||
| On the [settings screen](https://review.coreboot.org/settings) you can register | ||
| all your email addresses you intend to use in the context of coreboot | ||
| development so that commits with your email address in them are associated with | ||
| you properly. | ||
|
|
||
| ### https push access | ||
| When using the https URLs to git repositories, you can push with the "HTTP | ||
| Credentials" you can have Gerrit generate for you on that page. By default, | ||
| git uses `$HOME/.netrc` for http authentication data, so add a line there | ||
| stating: | ||
|
|
||
| machine review.coreboot.org login $your-user-name password $your-password | ||
|
|
||
| ### Gerrit user avatar | ||
| To setup an avatar to show in Gerrit, clone the avatars repository at | ||
| https://review.coreboot.org/gerrit-avatars.git and add a file named | ||
| $your-user-ID.jpg (the user ID is a number shown on the [settings screen](https://review.coreboot.org/settings)). | ||
| The image must be provided in JPEG format, must be square and have at most 50000 | ||
| bytes. | ||
|
|
||
| After you push for review, the system will automatically verify your change | ||
| and, if adhering to these constraints, approve it. You can then immediately | ||
| submit it. | ||
|
|
||
| ## Issue tracker | ||
| We have an [issue tracker](https://ticket.coreboot.org) that is used for | ||
| coreboot and related code, such as libpayload, as well as for the project's | ||
| infrastructure. | ||
|
|
||
| It can be helpful to refer to issues we track there in commit messages: | ||
|
|
||
| Fixes: https://ticket.coreboot.org/issues/$id |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,6 @@ | ||
| # coreboot architecture | ||
|
|
||
| ## Overview | ||
| ![][architecture] | ||
|
|
||
| [architecture]: comparision_coreboot_uefi.svg | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
|
|
||
| Contents: | ||
|
|
||
| * [Intel IFD Binary Extraction](binary_extraction.md) | ||
| * [IFD Layout](layout.md) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,66 @@ | ||
| # IFD Layout | ||
|
|
||
| A coreboot image for an Intel SoC contains two separate definitions of the | ||
| layout of the flash. The Intel Flash Descriptor (IFD) which defines offsets and | ||
| sizes of various regions of flash and the [coreboot FMAP](../lib/flashmap.md). | ||
|
|
||
| The FMAP should define all of the of the regions defined by the IFD to ensure | ||
| that those regions are accounted for by coreboot and will not be accidentally | ||
| modified. | ||
|
|
||
| ## IFD mapping | ||
|
|
||
| The names of the IFD regions in the FMAP should follow the convention of | ||
| starting with the prefix `SI_` which stands for `silicon initialization` as a | ||
| way to categorize anything required by the SoC but not provided by coreboot. | ||
|
|
||
| |IFD Region index|IFD Region name|FMAP Name|Notes| | ||
| |---|---|---|---| | ||
| |0|Flash Descriptor|SI_DESC|Always the top 4KB of flash| | ||
| |1|BIOS|SI_BIOS|This is the region that contains coreboot| | ||
| |2|Intel ME|SI_ME|| | ||
| |3|Gigabit Ethernet|SI_GBE|| | ||
| |4|Platform Data|SI_PDR|| | ||
| |8|EC Firmware|SI_EC|Most Chrome OS devices do not use this region; EC firmware is stored BIOS region of flash| | ||
|
|
||
| ## Validation | ||
|
|
||
| The ifdtool can be used to manipulate a firmware image with a IFD. This tool | ||
| will not take into account the FMAP while modifying the image which can lead to | ||
| unexpected and hard to debug issues with the firmware image. For example if the | ||
| ME region is defined at 6 MB in the IFD but the FMAP only allocates 4 MB for the | ||
| ME, then when the ME is added by the ifdtool 6 MB will be written which could | ||
| overwrite 2 MB of the BIOS. | ||
|
|
||
| In order to validate that the FMAP and the IFD are compatible the ifdtool | ||
| provides --validate (-t) option. `ifdtool -t` will read both the IFD and the | ||
| FMAP in the image and for every non empty region in the IFD if that region is | ||
| defined in the FMAP but the offset or size is different then the tool will | ||
| return an error. | ||
|
|
||
| Example: | ||
|
|
||
| ```console | ||
| foo@bar:~$ ifdtool -t bad_image.bin | ||
| Region mismatch between bios and SI_BIOS | ||
| Descriptor region bios: | ||
| offset: 0x00400000 | ||
| length: 0x01c00000 | ||
| FMAP area SI_BIOS: | ||
| offset: 0x00800000 | ||
| length: 0x01800000 | ||
| Region mismatch between me and SI_ME | ||
| Descriptor region me: | ||
| offset: 0x00103000 | ||
| length: 0x002f9000 | ||
| FMAP area SI_ME: | ||
| offset: 0x00103000 | ||
| length: 0x006f9000 | ||
| Region mismatch between pd and SI_PDR | ||
| Descriptor region pd: | ||
| offset: 0x003fc000 | ||
| length: 0x00004000 | ||
| FMAP area SI_PDR: | ||
| offset: 0x007fc000 | ||
| length: 0x00004000 | ||
| ``` |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,80 @@ | ||
| # Padmelon board | ||
|
|
||
| ## Specs (with Merlin Falcon SOC) | ||
|
|
||
| * Two 260-pin DDR4 SO-DIMM slots, 1.2V DDR4-1333/1600/1866/2133 SO-DIMMs | ||
| Supports 4GB, 8GB and 16GB DDR4 unbuffered ECC (Merlin Falcon)SO-DIMMs | ||
| * Can use Prairie Falcon, Brown Falcon, Merlin Falcon, though coreboot | ||
| code is specific for Merlin Falcon SOC. Some specs will change if not | ||
| using Merlin Falcon. | ||
| * One half mini PCI-Express slot on back side of mainboard | ||
| * One PCI Express® 3.0 x8 slot | ||
| * Two SATA3 ports with 6Gb/s data transfer rate | ||
| * Two USB 2.0 ports at rear panel | ||
| * Two USB 3.0 ports at rear panel | ||
| * Dual Gigabit Ethernet from Realtek RTL8111F Gigabit controller | ||
| * 6-channel High-Definition audio from Realtek ALC662 codec | ||
| * One soldered down SPI flash with dediprog header | ||
|
|
||
| ## Mainboard | ||
|
|
||
| ![mainboard][padmelon] | ||
|
|
||
| Three items are marked in this picture | ||
| 1. dediprog header | ||
| 2. memory dimms, address 0xA0 and 0xA4 | ||
| 3. SATA cables connected to motherboard | ||
|
|
||
| ## Back panel | ||
|
|
||
| ![back panel][padmelon_io] | ||
|
|
||
| * The lower serial port is UART A (debug serial) | ||
|
|
||
| ## Flashing coreboot | ||
|
|
||
| ```eval_rst | ||
| +---------------------+--------------------+ | ||
| | Type | Value | | ||
| +=====================+====================+ | ||
| | Socketed flash | no | | ||
| +---------------------+--------------------+ | ||
| | Model | Macronix MX256435E | | ||
| +---------------------+--------------------+ | ||
| | Size | 8 MiB | | ||
| +---------------------+--------------------+ | ||
| | Flash programing | dediprog header | | ||
| +---------------------+--------------------+ | ||
| | Package | SOIC-8 | | ||
| +---------------------+--------------------+ | ||
| | Write protection | No | | ||
| +---------------------+--------------------+ | ||
| ``` | ||
|
|
||
| ## Technology | ||
|
|
||
| ```eval_rst | ||
| +---------------+------------------------------+ | ||
| | Fan control | Using fintek F81803A | | ||
| +---------------+------------------------------+ | ||
| | CPU | Merlin Falcon (see reference)| | ||
| +---------------+------------------------------+ | ||
| ``` | ||
|
|
||
| ## Description of pictures within this document | ||
|
|
||
| ```eval_rst | ||
| +----------------------------+----------------------------------------+ | ||
| |padmelon.jpg | Motherboard with components identified | | ||
| +----------------------------+----------------------------------------+ | ||
| |padmelon_io.jpg | Back panel picture | | ||
| +----------------------------+----------------------------------------+ | ||
| ``` | ||
|
|
||
| ## Reference | ||
|
|
||
| [Merlin Falcon BKDG][merlinfalcon] | ||
|
|
||
| [merlinfalcon]: ../../../soc/amd/family15h.md | ||
| [padmelon]: padmelon.jpg | ||
| [padmelon_io]: padmelon_io.jpg |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,61 @@ | ||
| # X11 LGA1151 series | ||
|
|
||
| The [Supermicro X11 LGA1151 series] are mostly the same boards with some minor differences in | ||
| internal and external interfaces like available PCIe slots, NICs (1 GbE, 10 GbE), IPMI, RAID | ||
| Controller etc. | ||
|
|
||
| ## Supported boards | ||
|
|
||
| - [X11SSH-TF](x11ssh-tf/x11ssh-tf.md) | ||
|
|
||
| ## Required proprietary blobs | ||
|
|
||
| - [Intel FSP2.0] | ||
| - Intel ME | ||
|
|
||
| ## De-blobbing | ||
|
|
||
| - [Intel FSP2.0] can not be removed as long as there is no free replacement | ||
| - Intel ME can be cleaned using me_cleaner (~4.5 MB more free space) | ||
| - Intel Ethernet Controller Firmware can be removed when it's extended functionality is not | ||
| needed. For more details refer to the respective datasheet (e.g 333016-008 for I210). | ||
| - Boards with [AST2400] BMC/IPMI: Firmware can be replaced by [OpenBMC] | ||
|
|
||
| ## Flashing coreboot | ||
|
|
||
| Look at the [flashing tutorial] and the board-specific section. | ||
|
|
||
| ## Known issues | ||
|
|
||
| These issues apply to all boards. Have a look at the board-specific issues, too. | ||
|
|
||
| - Intel SGX causes secondary APs to crash (disabled for now) when HT is enabled (Fix is WIP CB:35312) | ||
| - TianoCore doesn't work with Aspeed NGI, as it's text mode only (Fix is WIP CB:35726) | ||
|
|
||
| ## ToDo | ||
|
|
||
| - Fix issues above | ||
| - Fix issues in board specific sections | ||
| - Fix TODOs mentioned in code | ||
| - Add more boards! :-) | ||
|
|
||
| ## Technology | ||
|
|
||
| ```eval_rst | ||
| +------------------+--------------------------------------------------+ | ||
| | CPU | Intel Kaby Lake | | ||
| +------------------+--------------------------------------------------+ | ||
| | PCH | Intel C232/C236 | | ||
| +------------------+--------------------------------------------------+ | ||
| | Coprocessor | Intel SPS (server version of the ME) | | ||
| +------------------+--------------------------------------------------+ | ||
| ``` | ||
|
|
||
| ## Extra links | ||
|
|
||
| [Supermicro X11 LGA1151 series]: https://www.supermicro.com/products/motherboard/Xeon3000/#1151 | ||
| [OpenBMC]: https://www.openbmc.org/ | ||
| [flashrom]: https://flashrom.org/Flashrom | ||
| [flashing tutorial]: ../../../../flash_tutorial/ext_power.md | ||
| [Intel FSP2.0]: ../../../../soc/intel/fsp/index.md | ||
| [AST2400]: https://www.aspeedtech.com/products.php?fPath=20&rId=376 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,90 @@ | ||
| # Supermicro X11SSH-TF | ||
|
|
||
| This section details how to run coreboot on the [Supermicro X11SSH-TF]. | ||
|
|
||
| ## Flashing coreboot | ||
|
|
||
| The board can be flashed externally using *some* programmers. The CH341 was found working, while | ||
| Dediprog didn't detect the chip. | ||
|
|
||
| The flash IC can be found between the two PCIe slots near the southbridge: | ||
|  | ||
|
|
||
| ## BMC (IPMI) | ||
|
|
||
| This board has an ASPEED [AST2400], which has BMC/[IPMI] functionality. The BMC firmware resides | ||
| in a 32 MiB SOIC-16 chip in the corner of the mainboard near the [AST2400]. This chip is an | ||
| [MX25L25635F]. | ||
|
|
||
| ## Tested and working | ||
|
|
||
| - USB ports | ||
| - Ethernet | ||
| - SATA ports | ||
| - RS232 external | ||
| - ECC DRAM detection | ||
| - PCIe slots | ||
| - M.2 2280 NVMe slot | ||
| - BMC (IPMI) | ||
| - VGA on Aspeed | ||
| - TPM on TPM expansion header | ||
|
|
||
| ## Known issues | ||
|
|
||
| See general issue section. | ||
|
|
||
| ## ToDo | ||
|
|
||
| - Fix TODOs mentioned in code | ||
|
|
||
| ## Technology | ||
|
|
||
| ```eval_rst | ||
| +------------------+--------------------------------------------------+ | ||
| | CPU | Intel Kaby Lake | | ||
| +------------------+--------------------------------------------------+ | ||
| | PCH | Intel C236 | | ||
| +------------------+--------------------------------------------------+ | ||
| | Coprocessor | Intel SPS (server version of the ME) | | ||
| +------------------+--------------------------------------------------+ | ||
| | Super I/O | ASPEED AST2400 | | ||
| +------------------+--------------------------------------------------+ | ||
| | Ethernet | 2x Intel® X550 10GBase-T Ethernet | | ||
| | | 1x dedicated BMC | | ||
| +------------------+--------------------------------------------------+ | ||
| | PCIe slots | 1x 3.0 x8 | | ||
| | | 1x 3.0 x2 (in x4) | | ||
| | | 1x 3.0 M.2 2260 x4 (Key M, with S-ATA) | | ||
| +------------------+--------------------------------------------------+ | ||
| | USB slots | 2x USB 2.0 (ext) | | ||
| | | 2x USB 3.0 (ext) | | ||
| | | 1x USB 3.0 (int) | | ||
| | | 1x dual USB 3.0 header | | ||
| | | 2x dual USB 2.0 header | | ||
| +------------------+--------------------------------------------------+ | ||
| | SATA slots | 8x SATA III | | ||
| +------------------+--------------------------------------------------+ | ||
| | Other slots | 1x RS232 (ext) | | ||
| | | 1x RS232 header | | ||
| | | 1x TPM header | | ||
| | | 1x Power SMB header | | ||
| | | 6x PWM Fan connector | | ||
| | | 2x I-SGPIO | | ||
| | | 2x S-ATA DOM Power connector | | ||
| | | 1x XDP Port | | ||
| | | 1x External BMC I2C Header (for IPMI card) | | ||
| | | 1x Chassis Intrusion Header | | ||
| +------------------+--------------------------------------------------+ | ||
| ``` | ||
|
|
||
| ## Extra links | ||
|
|
||
| - [Supermicro X11SSH-TF] | ||
| - [Board manual] | ||
|
|
||
| [Supermicro X11SSH-TF]: https://www.supermicro.com/en/products/motherboard/X11SSH-TF | ||
| [Board manual]: https://www.supermicro.com/manuals/motherboard/C236/MNL-1783.pdf | ||
| [AST2400]: https://www.aspeedtech.com/products.php?fPath=20&rId=376 | ||
| [IPMI]: ../../../../drivers/ipmi_kcs.md | ||
| [MX25L25635F]: https://media.digikey.com/pdf/Data%20Sheets/Macronix/MX25L25635F.pdf | ||
| [N25Q128A]: https://www.micron.com/~/media/Documents/Products/Data%20Sheet/NOR%20Flash/Serial%20NOR/N25Q/n25q_128mb_3v_65nm.pdf |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,49 @@ | ||
| # AMD Family 15h [SOC|Processors] | ||
|
|
||
| ## Abstract | ||
|
|
||
| Family 15h is a line of AMD x86 products first introduced in 2011. The initial | ||
| microarchitecture, codenamed "Bulldozer", introduced the concept of a "Compute | ||
| Unit" (CU) where some parts of the processor are shared between two cores and | ||
| some parts are unique for each core. Family 15h offerings matured into various | ||
| models with increased performance and features targeting Enterprise, Client, | ||
| and Embedded designs. Notice that a particular model can address more than one | ||
| market(see models references below). | ||
|
|
||
| ## Introduction | ||
|
|
||
| The first CU designs were 2 x86 cores with separate integer processors but | ||
| sharing cache, code branch prediction engine and floating point processor. A die | ||
| can have up to 8 CU. The floating point processor is composed of two symmetrical | ||
| 128-bit FMAC. Provided each x86 core is doing 128-bit floating point arithmetic, | ||
| they both do floating point simultaneously. If one is doing 256-bit floating | ||
| point, the other x86 core can't do floating point simultaneously. Later models | ||
| changed how resources were shared, and introduced other performance improvements. | ||
|
|
||
| Family 15h products range from SOCs to 3-chip solutions. Devices designed to | ||
| contain on-die graphics (including headless) are commonly referred to as APUs, | ||
| not CPUs. | ||
|
|
||
| Later SOCs include a Platform Security Processor (PSP), a small ARM processor | ||
| responsible for security related measures: For example, if secure boot is | ||
| enabled, the cores will not exit reset until the BIOS image within the SPI | ||
| flash is authenticated through its OEM signature, thus ensuring that only OEM | ||
| produced BIOS can run the platform. | ||
|
|
||
| Support in coreboot for modern AMD products is based on AMD’s reference code: | ||
| AMD Generic Encapsulated Software Architecture (AGESA™). AGESA contains the | ||
| code for enabling DRAM, configuring proprietary core logic, assistance with | ||
| generating ACPI tables, and other features. | ||
|
|
||
| While coreboot contains support for most models, some implementations use a | ||
| separate cpu/north/south bridge directory structure. Newer products for models | ||
| 60h-6Fh (Merlin Falcon) and 70h-7Fh (Stoney Ridge) rely on modern SOC directory | ||
| structure. | ||
|
|
||
| ## References | ||
|
|
||
| 1. [Models 00h-0Fh BKDG](https://www.amd.com/system/files/TechDocs/42301_15h_Mod_00h-0Fh_BKDG.pdf) | ||
| 2. [Models 10h-1Fh BKDG](https://www.amd.com/system/files/TechDocs/42300_15h_Mod_10h-1Fh_BKDG.pdf) | ||
| 3. [Models 30h-3Fh BKDG](https://www.amd.com/system/files/TechDocs/49125_15h_Models_30h-3Fh_BKDG.pdf) | ||
| 4. [Models 60h-6Fh BKDG](https://www.amd.com/system/files/TechDocs/50742_15h_Models_60h-6Fh_BKDG.pdf) | ||
| 5. [Models 70h-7Fh BKDG](https://www.amd.com/system/files/TechDocs/55072_AMD_Family_15h_Models_70h-7Fh_BKDG.pdf) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| # Tutorial | ||
|
|
||
| * [Part 1: Starting from scratch](part1.md) | ||
| * [Part 2: Submitting a patch to coreboot.org](part2.md) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,4 @@ | ||
| # Tutorial, part 2: Submitting a patch to coreboot.org | ||
|
|
||
| ## Part 1: Setting up an account at coreboot.org | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -14,16 +14,6 @@ | |
| #ifndef ARCH_ARM_PCI_OPS_H | ||
| #define ARCH_ARM_PCI_OPS_H | ||
|
|
||
| #include <device/pci_mmio_cfg.h> | ||
|
|
||
| #endif | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,7 +19,7 @@ PHDRS | |
| to_load PT_LOAD; | ||
| } | ||
|
|
||
| #if ENV_BOOTBLOCK | ||
| ENTRY(_start) | ||
| #else | ||
| ENTRY(stage_entry) | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -14,16 +14,6 @@ | |
| #ifndef ARCH_MIPS_PCI_OPS_H | ||
| #define ARCH_MIPS_PCI_OPS_H | ||
|
|
||
| #include <device/pci_mmio_cfg.h> | ||
|
|
||
| #endif | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,7 +19,7 @@ PHDRS | |
| to_load PT_LOAD; | ||
| } | ||
|
|
||
| #if ENV_BOOTBLOCK | ||
| ENTRY(_start) | ||
| #else | ||
| ENTRY(stage_entry) | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,4 @@ | ||
| /* | ||
| * This file is part of the GNU C Library. | ||
| * | ||
| * This program is free software; you can redistribute it and/or | ||
|
|
||