summaryrefslogtreecommitdiff
path: root/util/amdfwtool/amdfwtool.c
diff options
context:
space:
mode:
authorZheng Bao <zheng.bao@amd.corp-partner.google.com>2021-10-14 16:14:09 +0800
committerFelix Held <felix-coreboot@felixheld.de>2023-01-27 19:52:41 +0000
commitdd4c5421d11af8e50d1ded86d94107d5bec27098 (patch)
treec8449a23047d3e058f2952f5927ff23ac717c02b /util/amdfwtool/amdfwtool.c
parent6e8c509d7d37d1115fbacccffa3ee7fe2b26e1b6 (diff)
amdfwtool: Update and extend PSP header format description
The comment in the header amdfwtool.c was written long time ago and is needed to get updated. Change-Id: I6f64c9a240503f9d0bf240916c1066944fa39d27 Signed-off-by: Zheng Bao <fishbaozi@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/55602 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Diffstat (limited to 'util/amdfwtool/amdfwtool.c')
-rw-r--r--util/amdfwtool/amdfwtool.c37
1 files changed, 30 insertions, 7 deletions
diff --git a/util/amdfwtool/amdfwtool.c b/util/amdfwtool/amdfwtool.c
index f9d53d0ae5..3c317de3fc 100644
--- a/util/amdfwtool/amdfwtool.c
+++ b/util/amdfwtool/amdfwtool.c
@@ -1,13 +1,17 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
- * ROMSIG At ROMBASE + 0x20000:
+ * ROMSIG At ROMBASE + 0x[0,2,4,8]20000:
* 0 4 8 C
* +------------+---------------+----------------+------------+
* | 0x55AA55AA |EC ROM Address |GEC ROM Address |USB3 ROM |
* +------------+---------------+----------------+------------+
- * | PSPDIR ADDR|PSPDIR ADDR |<-- Field 0x14 could be either
- * +------------+---------------+ 2nd PSP directory or PSP COMBO directory
+ * | PSPDIR ADDR|PSPDIR ADDR(C) | BDT ADDR 0 | BDT ADDR 1 |
+ * +------------+---------------+----------------+------------+
+ * | BDT ADDR 2 | | BDT ADDR 3(C) | |
+ * +------------+---------------+----------------+------------+
+ * (C): Could be a combo header
+ *
* EC ROM should be 64K aligned.
*
* PSP directory (Where "PSPDIR ADDR" points)
@@ -24,10 +28,29 @@
* +------------+---------------+----------------+------------+
* | |
* | |
- * | Other PSP Firmware |
+ * | Other PSP Firmware |
+ * | |
+ * +------------+---------------+----------------+------------+
+ * | 40 | size | Base address | Reserved |---+
+ * +------------+---------------+----------------+------------+ |
+ * :or 48(A/B A): size : Base address : Reserved : |
+ * + - - + - - + - - + - - + |
+ * : 4A(A/B B): size : Base address : Reserved : |
+ * +------------+---------------+----------------+------------+ |
+ * (A/B A) & (A/B B): Similar as 40, pointing to PSP level 2 |
+ * for A/B recovery |
+ * |
+ * |
+ * +------------+---------------+----------------+------------+ |
+ * | '2LP$' | Fletcher | Count | Reserved |<--+
+ * +------------+---------------+----------------+------------+
+ * | |
* | |
+ * | PSP Firmware |
+ * | (2nd-level is not required on all families) |
* | |
* +------------+---------------+----------------+------------+
+ * BIOS Directory Table (BDT) is similar
*
* PSP Combo directory
* +------------+---------------+----------------+------------+
@@ -35,15 +58,15 @@
* +------------+---------------+----------------+------------+
* | R e s e r v e d |
* +------------+---------------+----------------+------------+
- * | ID-Sel | PSP ID | PSPDIR ADDR | | 2nd PSP directory
+ * | ID-Sel | PSP ID | PSPDIR ADDR | | 1st PSP directory
* +------------+---------------+----------------+------------+
- * | ID-Sel | PSP ID | PSPDIR ADDR | | 3rd PSP directory
+ * | ID-Sel | PSP ID | PSPDIR ADDR | | 2nd PSP directory
* +------------+---------------+----------------+------------+
* | |
* | Other PSP |
* | |
* +------------+---------------+----------------+------------+
- *
+ * BDT Combo is similar
*/
#include <commonlib/bsd/helpers.h>