9elements QA has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/37579 )
Change subject: vendorcode/intel: Remove Ice Lake FSP Bindings
......................................................................
Patch Set 15:
Automatic boot test returned (PASS/FAIL/TOTAL): 3/0/3
Emulation targets:
EMULATION_QEMU_X86_Q35 using payload TianoCore : SUCCESS : https://lava.9esec.io/r/544
EMULATION_QEMU_X86_Q35 using payload SeaBIOS : SUCCESS : https://lava.9esec.io/r/543
EMULATION_QEMU_X86_I440FX using payload SeaBIOS : SUCCESS : https://lava.9esec.io/r/542
Please note: This test is under development and might not be accurate at all!
--
To view, visit https://review.coreboot.org/c/coreboot/+/37579
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I7d5520dcd30f4a68af325125052e16e867e91ec9
Gerrit-Change-Number: 37579
Gerrit-PatchSet: 15
Gerrit-Owner: Mimoja <coreboot(a)mimoja.de>
Gerrit-Reviewer: Aamir Bohra <aamir.bohra(a)intel.com>
Gerrit-Reviewer: Angel Pons <th3fanbus(a)gmail.com>
Gerrit-Reviewer: Christoph Pomaska <github(a)slrie.de>
Gerrit-Reviewer: David Guckian <david.guckian(a)intel.com>
Gerrit-Reviewer: Edward O'Callaghan <quasisec(a)chromium.org>
Gerrit-Reviewer: Mimoja <coreboot(a)mimoja.de>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Patrick Georgi <pgeorgi(a)google.com>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: Philipp Deppenwiese <zaolin.daisuki(a)gmail.com>
Gerrit-Reviewer: Subrata Banik <subrata.banik(a)intel.com>
Gerrit-Reviewer: Vanessa Eusebio <vanessa.f.eusebio(a)intel.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: 9elements QA <hardwaretestrobot(a)gmail.com>
Gerrit-CC: Aaron Durbin <adurbin(a)chromium.org>
Gerrit-Comment-Date: Tue, 11 Feb 2020 09:21:47 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
HAOUAS Elyes has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/38351 )
Change subject: sb/intel/lynxpoint: Comment conflicting use of _ADR and _HID
......................................................................
sb/intel/lynxpoint: Comment conflicting use of _ADR and _HID
Change-Id: I45cf2b8d455aa4d288de1ac53cf9ae801f758a9a
Signed-off-by: Elyes HAOUAS <ehaouas(a)noos.fr>
---
M src/southbridge/intel/lynxpoint/acpi/serialio.asl
1 file changed, 8 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/51/38351/1
diff --git a/src/southbridge/intel/lynxpoint/acpi/serialio.asl b/src/southbridge/intel/lynxpoint/acpi/serialio.asl
index 9323b91..14af1e0 100644
--- a/src/southbridge/intel/lynxpoint/acpi/serialio.asl
+++ b/src/southbridge/intel/lynxpoint/acpi/serialio.asl
@@ -123,6 +123,7 @@
Device (SDMA)
{
// Serial IO DMA Controller
+ // FIXME: Device object requires either a _HID or _ADR, but not both
Name (_HID, "INTL9C60")
Name (_UID, 1)
Name (_ADR, 0x00150000)
@@ -160,6 +161,7 @@
Device (I2C0)
{
// Serial IO I2C0 Controller
+ // FIXME: Device object requires either a _HID or _ADR, but not both
Name (_HID, "INT33C2")
Name (_CID, "INT33C2")
Name (_UID, 1)
@@ -242,6 +244,7 @@
Device (I2C1)
{
// Serial IO I2C1 Controller
+ // FIXME: Device object requires either a _HID or _ADR, but not both
Name (_HID, "INT33C3")
Name (_CID, "INT33C3")
Name (_UID, 1)
@@ -324,6 +327,7 @@
Device (SPI0)
{
// Serial IO SPI0 Controller
+ // FIXME: Device object requires either a _HID or _ADR, but not both
Name (_HID, "INT33C0")
Name (_CID, "INT33C0")
Name (_UID, 1)
@@ -362,6 +366,7 @@
Device (SPI1)
{
// Serial IO SPI1 Controller
+ // FIXME: Device object requires either a _HID or _ADR, but not both
Name (_HID, "INT33C1")
Name (_CID, "INT33C1")
Name (_UID, 1)
@@ -413,6 +418,7 @@
Device (UAR0)
{
// Serial IO UART0 Controller
+ // FIXME: Device object requires either a _HID or _ADR, but not both
Name (_HID, "INT33C4")
Name (_CID, "INT33C4")
Name (_UID, 1)
@@ -464,6 +470,7 @@
Device (UAR1)
{
// Serial IO UART1 Controller
+ // FIXME: Device object requires either a _HID or _ADR, but not both
Name (_HID, "INT33C5")
Name (_CID, "INT33C5")
Name (_UID, 1)
@@ -502,6 +509,7 @@
Device (SDIO)
{
// Serial IO SDIO Controller
+ // FIXME: Device object requires either a _HID or _ADR, but not both
Name (_HID, "INT33C6")
Name (_CID, "PNP0D40")
Name (_UID, 1)
--
To view, visit https://review.coreboot.org/c/coreboot/+/38351
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I45cf2b8d455aa4d288de1ac53cf9ae801f758a9a
Gerrit-Change-Number: 38351
Gerrit-PatchSet: 1
Gerrit-Owner: HAOUAS Elyes <ehaouas(a)noos.fr>
Gerrit-Reviewer: HAOUAS Elyes <ehaouas(a)noos.fr>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-MessageType: newchange
Marshall Dawson has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/38713 )
Change subject: Documentation/soc/amd/family17: Update to match current design
......................................................................
Documentation/soc/amd/family17: Update to match current design
The Picasso no longer intends to implement a hybrid romstage,
opting instead for a more traditional bootblock/romstage/ramstage.
Update the documentation to reflect this. Clarify additional
details that have come to light since the last revision.
Signed-off-by: Marshall Dawson <marshalldawson3rd(a)gmail.com>
Change-Id: I6c98c007ddb8a4a05810f19e4215bde719de7bb8
---
M Documentation/soc/amd/family17h.md
1 file changed, 58 insertions(+), 32 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/13/38713/1
diff --git a/Documentation/soc/amd/family17h.md b/Documentation/soc/amd/family17h.md
index 9608b57..71ce8f0 100755
--- a/Documentation/soc/amd/family17h.md
+++ b/Documentation/soc/amd/family17h.md
@@ -51,8 +51,13 @@
* Embedded Firmware Structure - Signature and pointers used by the
PSP to locate the PSP Directory Table and BIOS Directory Table; these
items are generated during coreboot build and are located in the SPI ROM
-* Verstage - The code to verify the firmware contained in the
-writable section of the SPI ROM
+* vboot - The generic technology name for verifying/choosing a RW A/B
+or fallback RO path.
+* verstage - The code (vboot) to verify the firmware contained in the
+writable section of the SPI ROM, traditionally run on the AP processor,
+and in some cases a separate stage added to coreboot
+* vboot app - A portion of vboot technology designed and compiled
+to run on the PSP
* APCB - AMD PSP Customization Block - A binary containing PSP and
system configuration preferences (analogous to v5 BUILDOPT_ options),
and generated by APCBTool to be added to coreboot/utils later
@@ -102,15 +107,15 @@
the SPI ROM
* PSP verifies and executes the PSP off-chip bootloader
* ChromeOS systems:
- * Off-chip bootloader attempts to locate verstage via the RO BIOS
+ * Off-chip bootloader attempts to locate vboot app via the RO BIOS
Directory Table
- * If verstage is not found, booting continues with ABLs below
- * Verstage initializes, setting up GPIOs, UART if needed,
+ * If vboot app is not found, booting continues with ABLs below
+ * vboot app initializes, setting up GPIOs, UART if needed,
communication path to the EC, and the SPI controller for direct access
to the flash device.
- * Verstage verifies the RW sections (as is typically performed by
+ * vboot app verifies the RW sections (as is typically performed by
the main processor)
- * Verstage locates the Embedded Firmware Directory within the
+ * vboot app locates the Embedded Firmware Directory within the
verified FMAP section and passes a pointer to the PSP bootloader. If
the verification fails, it passes a pointer to the RO header to the
bootloader.
@@ -166,37 +171,55 @@
code that is position-dependent must be linked to run at the final
destination.
-## Initial coreboot Implementation
+## Implementation for coreboot
-Supporting Picasso doesn’t fit well with many of the coreboot
-assumptions. Initial porting shall attempt to fit within existing
-coreboot paradigms and make minimal changes to common code.
+Supporting Picasso doesn’t fit perfectly with many of the coreboot
+assumptions about x86 processors. Changes are introduced primarily
+into arch/x86 to accommodate a processor starting in DRAM and at a
+nontraditional reset vector.
-### CAR and bootblock
+### CAR and early stages
-The coreboot bootblock contains features Picasso doesn’t require or
-can’t use, and is assumed to execute in an unusable location.
-Picasso’s requirement for bootblock in coreboot will be eliminated.
+The traditional coreboot bootblock and romstage rely on cache-as-RAM
+and a linker script that positions temporary storage accordingly. A
+substitute for the DCACHE variables, called EARLYRAM, is introduced.
+Like DCACHE, this allows for a consistent mapping of early regions
+required across multiple stages prior to cbmem coming online.
+Examples are the _preram_cbmem_console and _timestamp.
-### Hybrid romstage
+Due to Picasso's unique nature of starting with DRAM enabled, no
+early stages run as execute-in-place (XIP). All post-bootblock
+stages are copied from the BIOS flash into DRAM for faster
+performance, and these regions are marked reserved later in POST.
-Picasso’s x86 reset state doesn’t meet the coreboot expectations
-for jumping directly to ramstage. The primary feature of romstage is
-also not needed, however there are other important features that are
-typically in romstage that Picasso does need.
+Unlike CAR-based systems, and because Picasso does not run early
+stages as XIP, its early stages are not constrained in their use
+of .bss or .data sections. All stages' .bss is zeroed, and all
+.data sections are fully R/W at load time.
-The romstage architecture is designed around the presence of CAR.
-Several features implement ROMSTAGE_CBMEM_INIT_HOOK, expecting to move
-data from CAR to cbmem. The hybrid romstage consumes DRAM for the
-purpose of implementing the expected CAR storage. This region as well
-as the DRAM where romstage is decompressed must be reserved and
-unavailable to the OS.
+### bootblock
-The initial Picasso port implements a hybrid romstage that contains the
-first instruction fetched at the reset vector. It minimally configures
-flat protected mode, initializes cbmem, then loads the next stage.
-Future work will consider breaking the dependencies mentioned above
-and/or potentially loading ramstage directly from the PSP.
+Picasso uses a bootblock that mirrors a traditional bootblock as much
+as possible. Because the image is loaded by the PSP, the bootblock is
+not restricted to the top of the BIOS flash device. The compressed
+image is added into the PSP's amdfw.rom build.
+
+### vboot app and verstage
+
+Development is currently underway for the vboot app, and potentially
+an x86-based verstage companion. This document shall be updated once
+the design is finalized and functioning. Support for the PSP honoring
+the presence of the vboot app is available only in certain SKUs.
+
+### romstage and postcar
+
+A traditional romstage is maintained for Picasso. The primary reason for
+this choice is to remain compatible with coreboot conventions and
+to support the FSP 2.0 driver. Picasso's romstage uses an
+fsp_memory_init() call to glean the memory map from AGESA. (See below.)
+fsp_memory_init() brings cbmem online before returning to the caller.
+
+No postcar stage is required or supported.
## AGESA v9 on Picasso
@@ -211,6 +234,9 @@
reference code with EDK II source to create a modular image with
discoverable entry points. coreboot source already contains knowledge
of FSP, how to parse it, integrate it, and how to communicate with it.
+Picasso's FSP is compatible with rev. 2.0 of the External Architecture
+Specification. Deviations, e.g., no FSP-T support, shall be published
+in an Integration Guide.
## Footnotes
@@ -221,4 +247,4 @@
2. [PSP Integration](psp_integration.md)
3. [https://www.amd.com/system/files/TechDocs/44065_Arch2008.pdf](https://www.a…
4. [https://en.wikichip.org/wiki/amd/cores/picasso](https://en.wikichip.org/wik…
-5. [https://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-…
+5. [https://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-…
\ No newline at end of file
--
To view, visit https://review.coreboot.org/c/coreboot/+/38713
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I6c98c007ddb8a4a05810f19e4215bde719de7bb8
Gerrit-Change-Number: 38713
Gerrit-PatchSet: 1
Gerrit-Owner: Marshall Dawson <marshalldawson3rd(a)gmail.com>
Gerrit-MessageType: newchange
Marshall Dawson has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/37847 )
Change subject: Documentation/soc/amd: Add PSP integration information
......................................................................
Documentation/soc/amd: Add PSP integration information
Change-Id: I05187365158eb5c055be0d4a32f41324d2653f71
Signed-off-by: Marshall Dawson <marshalldawson3rd(a)gmail.com>
---
M Documentation/soc/amd/family15h.md
M Documentation/soc/amd/family17h.md
M Documentation/soc/amd/index.md
A Documentation/soc/amd/psp_integration.md
4 files changed, 373 insertions(+), 9 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/47/37847/1
diff --git a/Documentation/soc/amd/family15h.md b/Documentation/soc/amd/family15h.md
index fc41e91..5a8f95d 100644
--- a/Documentation/soc/amd/family15h.md
+++ b/Documentation/soc/amd/family15h.md
@@ -47,3 +47,4 @@
3. [Models 30h-3Fh BKDG](https://www.amd.com/system/files/TechDocs/49125_15h_Models_30h-3Fh_BK…
4. [Models 60h-6Fh BKDG](https://www.amd.com/system/files/TechDocs/50742_15h_Models_60h-6Fh_BK…
5. [Models 70h-7Fh BKDG](https://www.amd.com/system/files/TechDocs/55072_AMD_Family_15h_Models…
+6. [PSP Integration](psp_integration.md)
diff --git a/Documentation/soc/amd/family17h.md b/Documentation/soc/amd/family17h.md
index dc3de13..9608b57 100755
--- a/Documentation/soc/amd/family17h.md
+++ b/Documentation/soc/amd/family17h.md
@@ -18,8 +18,8 @@
(a.k.a. PSP) in system initialization is addressed here. AMD has
historically required an NDA for access to the PSP
specification<sup>1</sup>. coreboot relies on util/amdfwtool to build
-the structures and add various other firmware to the final image. The
-Family 17h PSP design guide adds a new BIOS Directory Table, similar to
+the structures and add various other firmware to the final image<sup>2</sup>.
+The Family 17h PSP design guide adds a new BIOS Directory Table, similar to
the PSP Directory Table.
Support in coreboot for modern AMD products is based on AMD’s
@@ -29,12 +29,12 @@
tables, and other features.
AGESA for products earlier than Family 17h is known as v5 or
-Arch2008<sup>2</sup>. Also note that coreboot currently contains both
+Arch2008<sup>3</sup>. Also note that coreboot currently contains both
open source AGESA and closed source implementations (binaryPI) compiled
from AGESA.
The first AMD Family 17h device ported to coreboot is codenamed
-“Picasso”<sup>3</sup>, and will be added to soc/amd/picasso.
+“Picasso”<sup>4</sup>, and will be added to soc/amd/picasso.
## Additional Definitions
@@ -207,7 +207,7 @@
Given the UEFI nature of modern AGESA, and the existing open source
work from Intel, Picasso shall support AGESA via an FSP-like prebuilt
-image. The Intel Firmware Support Package<sup>4</sup> combines
+image. The Intel Firmware Support Package<sup>5</sup> combines
reference code with EDK II source to create a modular image with
discoverable entry points. coreboot source already contains knowledge
of FSP, how to parse it, integrate it, and how to communicate with it.
@@ -218,7 +218,7 @@
for AMD Family 17h Processors” (PID #55758) and “AMD Platform
Security Processor BIOS Architecture Design Guide” (PID #54267) for
earlier products
-2. [https://www.amd.com/system/files/TechDocs/44065_Arch2008.pdf](https://www.a…
-3. [https://en.wikichip.org/wiki/amd/cores/picasso](https://en.wikichip.org/wik…
-4. [https://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-…
-
+2. [PSP Integration](psp_integration.md)
+3. [https://www.amd.com/system/files/TechDocs/44065_Arch2008.pdf](https://www.a…
+4. [https://en.wikichip.org/wiki/amd/cores/picasso](https://en.wikichip.org/wik…
+5. [https://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-…
diff --git a/Documentation/soc/amd/index.md b/Documentation/soc/amd/index.md
index 80413b0..e4fa6c9 100644
--- a/Documentation/soc/amd/index.md
+++ b/Documentation/soc/amd/index.md
@@ -6,6 +6,7 @@
- [Family 15h](family15h.md)
- [Family 17h](family17h.md)
+- [Platform Security Processor Integration](psp_integration.md)
## amd_blobs Repository License
diff --git a/Documentation/soc/amd/psp_integration.md b/Documentation/soc/amd/psp_integration.md
new file mode 100755
index 0000000..ebfb074
--- /dev/null
+++ b/Documentation/soc/amd/psp_integration.md
@@ -0,0 +1,362 @@
+# AMD Platform Security Processor (PSP) Firmware Integration Guide
+
+This document describes the integration of modules into PSP tables. Further
+details of each Platform Security Processor (PSP) firmware or PSP functionality
+are beyond the scope, and may be found in AMD NDA publications.
+
+## Platform Security Processor (PSP) Overview
+
+The Platform Security Processor (PSP) is an isolated security processor that
+runs independently from the main cores of the platform. Security-sensitive
+components may run without being affected by the commodity or untrusted
+software running as the main system workload. PSP executes its own firmware
+and shares the SPI flash storage that is used by BIOS.
+
+## Embedded Firmware Structure
+
+PSP identifies its important tables by first locating the Embedded Firmware
+Structure. The following physical addresses are read to find the structure:
+* 0xfffa0000
+* 0xfff20000
+* 0xffe20000
+* 0xffc20000
+* 0xff820000
+* 0xff020000
+
+Most coreboot implementations provide flexibility to position the structure in
+any of the eligible locations. Below are typical definitions within the
+structure (for all families combined). Individual features supported vary by
+family and model.
+
+ +--------------+---------------+------------------+----------------------------+
+ | Field Name | Offset (Hex) | Size (In Bytes) | Description/Purpose |
+ +--------------+---------------+------------------+----------------------------+
+ | Signature | 0x00 | 4 | 0x55aa55aa |
+ |--------------|---------------|------------------|----------------------------|
+ | IMC FW | 0x04 | 4 | Integrated Micro |
+ | | | | Controller: unsupported |
+ | | | | but functional in some |
+ | | | | systems |
+ |--------------|---------------|------------------|----------------------------|
+ | GbE FW | 0x08 | 4 | Gigabit Ethernet |
+ |--------------|---------------|------------------|----------------------------|
+ | xHCI FW | 0x0c | 4 | xHCI firmware |
+ |--------------|---------------|------------------|----------------------------|
+ | PSP Dir Tbl | 0x10 | 4 | Pointer to PSP Directory |
+ | | | | Table (early devices) |
+ |--------------|---------------|------------------|----------------------------|
+ | PSP Dir Tbl | 0x14 | 4 | Pointer to PSP Directory |
+ | | | | Table (later devices and |
+ | | | | is combo capable) |
+ |--------------|---------------|------------------|----------------------------|
+ | BIOS Dir Tbl | 0x18 | 4 | Pointer to BIOS Directory |
+ | | | | Table for models n |
+ |--------------|---------------|------------------|----------------------------|
+ | BIOS Dir Tbl | 0x1c | 4 | Pointer to BIOS Directory |
+ | | | | Table for models nn |
+ |--------------|---------------|------------------|----------------------------|
+ | BIOS Dir Tbl | 0x1c | 4 | Pointer to BIOS Directory |
+ | | | | Table for models nnn |
+ |--------------|---------------|------------------|----------------------------|
+ | … | | | ... |
+ +--------------+---------------+------------------+----------------------------+
+
+## PSP Directory Table
+
+The PSP Directory Table allows PSP to find and load various images. A second
+level table may be generated to allow for updates without the risk of
+corrupting the primary table. Certain models support a combo type table,
+allowing secondary tables to be referenced by device ID. No coreboot
+implementations currently use combo tables.
+
+### PSP Directory Table Header
+
+ +--------------+---------------+------------------+----------------------------+
+ | Field Name | Offset (Hex) | Size (In Bytes) | Description/Purpose |
+ +--------------+---------------+------------------+----------------------------+
+ | PSP Cookie | 0x00 | 4 | PSP cookie "$PSP" to |
+ | | | | recognize the header. |
+ | | | | Cookie “$PL2” for level 2 |
+ |--------------|---------------|------------------|----------------------------|
+ | Checksum | 0x04 | 4 | 32-bit CRC value of header |
+ | | | | below this field and |
+ | | | | including all entries |
+ |--------------|---------------|------------------|----------------------------|
+ | Total Entries| 0x08 | 4 | Number of PSP Directory |
+ | | | | entries in the table |
+ |--------------|---------------|------------------|----------------------------|
+ | Reserved | 0x0C | 4 | Reserved - Set to zero |
+ +--------------+---------------+------------------+----------------------------+
+
+### PSP Directory Table Entries
+
+ +--------------+---------------+------------------+----------------------------+
+ | Field Name | Offset (Hex) | Size (In Bits) | Description/Purpose |
+ +--------------+---------------+------------------+----------------------------+
+ | Type | 0x00 | 8 | Entry type (see below) |
+ |--------------|---------------|------------------|----------------------------|
+ | Sub Program | 0x01 | 8 | Specifies sub program |
+ |--------------|---------------|------------------|----------------------------|
+ | Reserved | 0x02 | 16 | Reserved - set to 0 |
+ |--------------|---------------|------------------|----------------------------|
+ | size | 0x02 | 32 | Size of PSP entry in bytes |
+ |--------------|---------------|------------------|----------------------------|
+ | Location / | 0x08 | 64 | Location: Physical Address |
+ | Value | | | of SPIROM location where |
+ | | | | corresponding PSP entry |
+ | | | | located. |
+ | | | | |
+ | | | | Value: 64-bit value for the|
+ | | | | PSP Entry |
+ +--------------+---------------+------------------+----------------------------+
+
+### PSP Directory Table Types
+
+**0x00**: AMD public key
+* Public key used by on-chip bootcode to verify the signature of PSP boot
+ loader firmware, read from SPIROM.
+
+**0x01**: PSP boot loader firmware
+* Second stage boot loader firmware to be loaded by on-chip bootcode.
+
+**0x02**: PSP SecureOS firmware
+* Off-chip PSP boot loader will be overwritten in SRAM by the Secure/Trusted
+ OS during initial boot up.
+* PSP SecureOS performs:
+ * Initialization of OS internal structures and instantiates the fTPM as a
+ trusted application
+ * Sets up CPU/BIOS-PSP interface registers
+ * Enters steady state idling and waiting for commands
+ * In steady state, on notification, prepares for S3 state
+ * Verify and loading GFX Firmware
+
+**0x03**: PSP recovery boot loader firmware
+* Recovery PSP boot loader image, loaded by on-chip bootcode in case of
+ failure in loading PSP boot loader.
+
+**0x08**: SMU off-chip firmware
+
+**0x12**: SMU off-chip firmware section 2
+* Power Management firmware, responsible for system power/clock management.
+
+**0x09**: Secure Debug unlock public key
+* Public key token used during Secure Debug unlock process to verify message
+ payload from AMD server.
+
+**0x0b**: Soft fuse chain
+* Refer to documentation for definitions.
+
+**0x0c**: PSP trustlet binaries
+* Optional file to enable fTPM.
+
+**0x13**: PSP Secure Debug unlock debug image
+* Secure Debug unlock firmware image, used to unlock the device.
+
+**0x21**: Wrapped iKEK
+* Intermediate Key Encryption Key, used to decrypt encrypted firmware images.
+ This is mandatory in order to support encrypted firmware.
+
+**0x24**: Security policy binary
+* A security policy is applied to restrict the untrusted access to security
+ sensitive regions.
+
+**0x25**: MP2 firmware
+* The MP2 of the SMU, also known as the Sensor Fusion Integration is used to
+ aggregate the data from various sensors such as accelerometer, gyrometer,
+ ambient light sensor, orientation sensor, etc. This is off-chip firmware
+ for Sensor Fusion Processor (SFP) subsystem of the SMU.
+
+**0x28**: System driver
+* Driver executing on top of SecureOS.
+
+**0x30 - 0x37**: PSP AGESA binaries
+* AGESA Boot Loaders (ABLs) are a set of binary images executed by the PSP.
+ They are responsible for initializing APU silicon components (including but
+ not limited to APU memory interface) on S5, S4 and S3, prior to the release
+ of the main cores.
+
+**0x3a**: Whitelist
+* Optional image containing a signed whitelist of serial number(s).
+
+**0x40**: Pointer to secondary table
+* Pointer to PSP Directory Table level 2.
+
+**0x52**: PSP boot loader usermode OEM application
+* Supported only in certain SKUs.
+
+**0x22**: PSP Token Unlock data
+* Used to support time-bound Secure Debug unlock during boot. This entry may
+ be omitted if the Token Unlock debug feature is not required.
+
+### Firmware Version of Binaries
+
+Every firmware binary contains 256 Bytes of PSP Header, which includes firmware
+version. The version is located at offset 0x60 from the start of binary.
+
+For example, in the PSP BootLoader:
+
+ 0000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
+ 0000010: 2450 5331 c0e1 0000 0100 0000 0000 0000 $PS1............
+ 0000020: 5c0a ddb8 b279 4846 e154 aa4c ed7d 414d \....yHF.T.L.}AM
+ 0000030: 0100 0000 0000 0000 60bb a67e 1a43 4c6b ........`..~.CLk
+ 0000040: 9807 bc8d fdb4 1f40 0000 0000 0000 0000 .......@........
+ 0000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
+ 0000060: 7401 0800 ffff ffff 0001 0000 c0e3 0000 t...............
+ 0000070: 0000 0000 0000 0000 0000 0000 0100 0000 ................
+ 0000080: 4766 9186 9d5f e909 492d 491d d9ee 8e6c Gf..._..I-I....l
+ 0000090: 0000 0000 0000 0000 0000 0000 0000 0000 ................
+ 00000a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
+ 00000b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
+ 00000c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
+ 00000d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
+ 00000e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
+ 00000f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
+
+The PSP BootLoader version is 00.08.01.74.
+
+Note that only Firmware binary images have versions. Key tokens are not
+versioned, as there will not be multiple keys. Keys are unique to processor
+family.
+
+### BIOS Directory Table Entry Types
+
+All x86 accessible components (both executable and data blobs) are found via
+the BIOS Directory Table. A second level table may be generated to allow for
+updates without the risk of corrupting the primary table.
+
+The BIOS Directory table structure is slightly different from PSP Directory:
+* Multiple instances of firmware components are allowed for one specific type
+* The type field is further structured to reflect attributes of BIOS
+ components such as "Region Type", "Reset Image", "Copy Image", "Read Only",
+ allowing design flexibility
+* The "Destination Address" field is added for specific entries that are
+ expected to be copied from boot media to specific memory location
+
+### BIOS Directory Table Header
+
+ +--------------+---------------+------------------+----------------------------+
+ | Field Name | Offset (Hex) | Size (In Bytes) | Description/Purpose |
+ +--------------+---------------+------------------+----------------------------+
+ | BIOS Cookie | 0x00 | 4 | BIOS cookie "$BHD" to |
+ | | | | recognize the header. |
+ | | | | Cookie “$BL2” for level 2 |
+ |--------------|---------------|------------------|----------------------------|
+ | Checksum | 0x04 | 4 | 32 bit CRC value of header |
+ | | | | below this field and |
+ | | | | including all entries |
+ |--------------|---------------|------------------|----------------------------|
+ | Total Entries| 0x08 | 4 | Number of BIOS Directory |
+ | | | | entries in the table |
+ |--------------|---------------|------------------|----------------------------|
+ | Reserved | 0x0C | 4 | Reserved - Set to zero |
+ +--------------+---------------+------------------+----------------------------+
+
+### BIOS Directory Table Entries
+
+ +--------------+---------------+------------------+----------------------------+
+ |Field name Offset (Hex) Size (In Bits) Description/Purpose |
+ +--------------+---------------+------------------+----------------------------+
+ | Type | 0x00 | 8 | Entry type (see below) |
+ |--------------|---------------|------------------|----------------------------|
+ | Region Type | 0x01 | 8 | Setup the memory region's |
+ | | | | security attribute for the |
+ | | | | BIOS entry |
+ |--------------|---------------|------------------|----------------------------|
+ | Reset Image | 0x02 | 1 | Boolean value to define the|
+ | | | | BIOS entry is a reset |
+ | | | | binary image |
+ |--------------|---------------|------------------|----------------------------|
+ | Copy Image | 0x02 | 1 | Define the binary image of |
+ | | | | the BIOS entry is for |
+ | | | | copying over to the memory |
+ | | | | region |
+ |--------------|---------------|------------------|----------------------------|
+ | Read Only | 0x02 | 1 | Setup the memory region for|
+ | | | | the BIOS entry to read only|
+ |--------------|---------------|------------------|----------------------------|
+ | Compressed | 0x02 | 1 | Compressed using zlib |
+ | | | | |
+ |--------------|---------------|------------------|----------------------------|
+ | Instance | 0x02 | 4 | Specify the Instance of an |
+ | | | | entry |
+ |--------------|---------------|------------------|----------------------------|
+ | Sub Program | 0x03 | 3 | Specify the SubProgram, |
+ | | | | reference Section |
+ |--------------|---------------|------------------|----------------------------|
+ | Reserved | 0x03 | 5 | Reserved - Set to zero |
+ |--------------|---------------|------------------|----------------------------|
+ | Size | 0x04 | 32 | Memory Region Size |
+ |--------------|---------------|------------------|----------------------------|
+ | Source | 0x08 | 64 | Physical Address of SPIROM |
+ | Address | | | location where the data for|
+ | | | | the corresponding entry is |
+ | | | | located |
+ |--------------|---------------|------------------|----------------------------|
+ | Destination | 0x10 | 64 | Destination Address of |
+ | Address | | | memory location where the |
+ | | | | data for the corresponding |
+ | | | | BIOS Entry is copied |
+ +--------------+---------------+------------------+----------------------------+
+
+### BIOS Directory Table Entry Types
+
+**0x60**: APCB data
+* Source field points to the AGESA PSP Customization Block (APCB) data.
+
+**0x68**: Backup copy of APCB data
+* Source field points to the backup copy of AGESA PSP Customization Block
+ (APCB) data.
+
+**0x61**: APOB data
+* Location field points to the AGESA PSP Output Block (APOB) data.
+
+**0x62**: BIOS reset image
+* Source field points to BIOS binary image in flash. Destination points to
+ DRAM.
+
+**0x63**: APOB data NV
+* Source field points to AGESA PSP Output Block (APOB) data NV copy. This
+ data is written by coreboot and consumed by PSP ABLs during S3 resume.
+
+**0x64**: PMU firmware (instruction)
+* Source field points to the instruction portion of Phy Microcontroller Unit
+ firmware.
+
+**0x65**: PMU firmware (data)
+* Source field points to the data portion of Phy Microcontroller Unit
+ firmware.
+
+**0x66**: x86 microcode patch
+* Source field points to the microcode patch.
+
+**0x6a**: MP2 FW config file
+* Source field points to the MP2 FW configuration file.
+
+**0x70**: Pointer to secondary table
+* Pointer to BIOS Directory Table level 2.
+
+## Tools
+
+### amdcompress
+
+cbfstool/amdcompress is a helper for creating the BIOS Reset Image (BIOS
+Directory Table type 0x62). This is the code PSP uncompresses into DRAM at the
+location where it will release the x86 for execution. Typical usage is for
+amdcompress to convert an elf file’s program section into a zlib compressed
+image.
+
+### amdfwtool
+
+All images requiring PSP functionality rely on the amdfwtool utility.
+amdfwtool takes image names as command-line arguments, as well as the size of
+the flash device, and intended location of the Embedded Firmware Structure.
+Its output is a monolithic image with correctly positioned headers, pointers,
+structures, and the firmware images passed in. The file, typically named
+amdfw.rom, may then added directly into the coreboot image.
+
+## External Reference
+
+* NDA document #55758: "AMD Platform Security Processor BIOS Architecture
+ Design Guide for AMD Family 17h Processors"
+* NDA document #54267 “AMD Platform Security Processor BIOS Architecture
+ Design Guide: For all devices earlier than Family 17h
\ No newline at end of file
--
To view, visit https://review.coreboot.org/c/coreboot/+/37847
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I05187365158eb5c055be0d4a32f41324d2653f71
Gerrit-Change-Number: 37847
Gerrit-PatchSet: 1
Gerrit-Owner: Marshall Dawson <marshalldawson3rd(a)gmail.com>
Gerrit-MessageType: newchange
Wim Vervoorn has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/38744 )
Change subject: arch/x86/acpi: Change message in acpi_write_dbg2_pci_uart to BIOS_DEBUG
......................................................................
arch/x86/acpi: Change message in acpi_write_dbg2_pci_uart to BIOS_DEBUG
When acpi_write_dbg2_pci_uart called and no pci uart is available the
functions prints "Device not found" as an error. This is not correct.
Change the error level to BIOS_DEBUG so coreboot reports the device is
not available but doesn't flag this as an error.
BUG=N/A
TEST=build
Change-Id: I14567bcfcf5a6ff427e418d15bc2675ae7a28f53
Signed-off-by: Wim Vervoorn <wvervoorn(a)eltan.com>
---
M src/arch/x86/acpi.c
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/44/38744/1
diff --git a/src/arch/x86/acpi.c b/src/arch/x86/acpi.c
index 2f793b4..6dab373 100644
--- a/src/arch/x86/acpi.c
+++ b/src/arch/x86/acpi.c
@@ -946,7 +946,7 @@
acpi_addr_t address;
if (!dev) {
- printk(BIOS_ERR, "%s: Device not found\n", __func__);
+ printk(BIOS_DEBUG, "%s: Device not found\n", __func__);
return current;
}
if (!dev->enabled) {
--
To view, visit https://review.coreboot.org/c/coreboot/+/38744
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I14567bcfcf5a6ff427e418d15bc2675ae7a28f53
Gerrit-Change-Number: 38744
Gerrit-PatchSet: 1
Gerrit-Owner: Wim Vervoorn <wvervoorn(a)eltan.com>
Gerrit-MessageType: newchange
Martin Roth has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/38810 )
Change subject: Makefile.inc: Ignore _HID & _ADR conflicts in Broadwell & Lynxpoint
......................................................................
Makefile.inc: Ignore _HID & _ADR conflicts in Broadwell & Lynxpoint
We haven't been able to update IASL in 8 months because of this
conflict. Ignoring it doesn't make things any worse than they are now.
Signed-off-by: Martin Roth <martin(a)coreboot.org>
Change-Id: Iced2e55e9f2aa7a262a5c1ffeff32af78acfa35e
---
M Makefile.inc
1 file changed, 9 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/10/38810/1
diff --git a/Makefile.inc b/Makefile.inc
index 4ca173b..584fa34 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -261,7 +261,16 @@
# Redundant offset remarks are not useful in any way and are masking useful
# ones that might indicate an issue so it is better to hide them.
REDUNDANT_OFFSET_REMARK = 2158
+# Ignore _HID & _ADR coexisting in Intel Lynxpoint and Broadwell ASL code.
+# See cb:38803 & cb:38802
+# "Multiple types (Device object requires either a _HID or _ADR, but not both)"
+MULTIPLE_TYPES_WARNING = 3073
+
+ifeq ($(CONFIG_SOUTHBRIDGE_INTEL_LYNXPOINT)$(SOC_INTEL_BROADWELL),y)
+IGNORED_IASL_WARNINGS = -vw $(EMPTY_RESOURCE_TEMPLATE_WARNING) -vw $(REDUNDANT_OFFSET_REMARK) -vw $(MULTIPLE_TYPES_WARNING)
+else
IGNORED_IASL_WARNINGS = -vw $(EMPTY_RESOURCE_TEMPLATE_WARNING) -vw $(REDUNDANT_OFFSET_REMARK)
+endif
define asl_template
$(CONFIG_CBFS_PREFIX)/$(1).aml-file = $(obj)/$(1).aml
--
To view, visit https://review.coreboot.org/c/coreboot/+/38810
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Iced2e55e9f2aa7a262a5c1ffeff32af78acfa35e
Gerrit-Change-Number: 38810
Gerrit-PatchSet: 1
Gerrit-Owner: Martin Roth <martinroth(a)google.com>
Gerrit-MessageType: newchange