@@ -48,21 +48,26 @@ management registers in [BKDG for AMD Family 16h Models 30h-3Fh Processors, 5274
48
48
Registers of interest were those with ` Cold reset ` value, as they were remembered
49
49
through resets and transitions to/from S5, but not after full power cycle. The most
50
50
important one is PMxC0 S5/Reset Status:
51
+
51
52
> This register shows the source of previous reset.
53
+
52
54
This register is also defined in AGESA headers in coreboot repository:
53
- ` #define FCH_PMIOxC0_S5ResetStatus 0xFED803C0ul `
55
+
56
+ ```
57
+ #define FCH_PMIOxC0_S5ResetStatus 0xFED803C0ul
58
+ ```
54
59
55
60
Reading content of PMxC0 right before printing sign of life after different ways
56
61
of (re)booting the platform resulted in the following values:
57
62
58
63
| Entering/leaving S5 | PMxC0 during SOL | Bits set |
59
64
| ---------------------| ------------------| ------------------------------|
60
- | rte_ctrl -rel * | 0x00000800 | SlpS3ToLtdPwrGdEn |
61
- | poff/pon ** | 0x40200402 | SleepReset, FourSecondPwrBtn |
62
- | thermal/pon ** | 0x40200401 | SleepReset, ThermalTrip |
65
+ | full power cycle * | 0x00000800 | SlpS3ToLtdPwrGdEn |
66
+ | hold PWR button ** | 0x40200402 | SleepReset, FourSecondPwrBtn |
67
+ | thermal/power on ** | 0x40200401 | SleepReset, ThermalTrip |
63
68
| reboot | 0x40080400 | DoReset |
64
- | rte_ctrl - reset | 0x40010400 | UsrReset |
65
- | halt/pon | 0x40200400 | SleepReset |
69
+ | reset button | 0x40010400 | UsrReset |
70
+ | halt/power on | 0x40200400 | SleepReset |
66
71
| | 0x001003FF | S5ResetStatus_All_Status |
67
72
68
73
\* ) not S5, included for completeness
@@ -73,6 +78,7 @@ platform is reset and during second boot PMxC0 has the same value as after `rebo
73
78
Table is stripped from some common bits that don't seem to affect the problem:
74
79
- 0x40000000 - reserved
75
80
- 0x00000400 - PwrGdDwnBeforeSlp3 - [ BKDG, p. 932] ( https://support.amd.com/techdocs/52740_16h_models_30h-3fh_bkdg.pdf ) :
81
+
76
82
> ** PwrGdDwnBeforeSlpS3** . Read-write. Cold reset: 0. BIOS: 1.
77
83
> 1=Delay SLP_S3 by 64 μs and also qualify the FCH PwrGood with SLP_S3;
78
84
> This allows internal logic to put signals into correct states before
0 commit comments