Project

General

Profile

Actions

Support #594

open

"[EMERG] FspMemoryInit error, status=0x80000007" on Dell Optiplex 5040 SFF (0T7D40) using optiplex_3050 port code

Added by Walter Sonius 1 day ago. Updated about 12 hours ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
04/28/2025
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
Dell Optiplex 5040 SFF
Affected OS:

Description

To further test the "deguard", just tried to flash this unsupported optiplex_3050 code on the Dell Optiplex 5040 SFF and results in this error.

[EMERG] FspMemoryInit error, status=0x80000007

The Dell Optiplex 3050 micro shares the same OEM BIOS file as the Optiplex 3050 SFF. Since the later board looks very similar tot the Optiplex 5040 SFF except for these obvious differences:

2 DDR4 (DDR4-sodimm on the micro) slots vs 4 DDR3L slots
1 PCIe 1x length (closed) vs 4x length (open) black slots
2 SATA (black missing) vs 3 SATA connectors
2 USB3 vs 4 USB3 back ports
1 DisplayPort vs 2 DisplayPorts
0 serial vs 1 serial port
0 VGA vs 1 VGA(using motherboard header)
0 PS2 vs 2 PS2 ports
B250 chipset vs Q170 chipset

I took the gamble and flashed the 3050 micro port, just by adding the "Flash descriptor", "ME" and "Igbe" regions of the working Optiplex 5040 SFF deguarded ROM and only inserting pci 1f6 and peg0 to the devicetree.cb all other code is untouched.

...
    device domain 0 on
+       device ref peg0     on
+           register "Peg0MaxLinkWidth" = "Peg0_x16"
+
+           # Configure PCIe clockgen in PCH
+           register "PcieRpClkReqSupport[0]"   = "1"
+           register "PcieRpClkReqNumber[0]"    = "0"
+           register "PcieRpClkSrcNumber[0]"    = "0"
+       end
        device ref igpu on
            register "PrimaryDisplay" = "Display_iGFX"
        end
...
...
        device ref hda on end
        device ref smbus on end
+       device pci 1f.6 on end # GbE          <--- Extra port which contains I219-V but disabled also works on Asrock H110 Pro BTC+
    end
...

The boards serial output works and it detects RAM only in 2 of 4 slots that resemble the 3050 SFF. Also correct sizes 2GB, 4GB, 8GB and variants including DDR3 vs DDR3L gets correctly detected. Different CPU's will also run Skylake i3-6100T, Kabylake G3950 and Coffeelake G4900T.

[NOTE ]  coreboot-25.03-324-geffd1ffdad73-dirty Mon Apr 28 05:44:45 UTC 2025 x86_32.
[DEBUG]  CPU: Intel(R) Core(TM) i3-6100T CPU @ 3.20GHz
[DEBUG]  CPU: ID 506e3, Skylake H R0, ucode: 000000ef
[DEBUG]  CPU: AES supported, TXT NOT supported, VT supported
[DEBUG]  MCH: device id 190f (rev 07) is Skylake-S (2 Core)
[DEBUG]  PCH: device id a146 (rev 31) is Q170
[DEBUG]  IGD: device id 1912 (rev 06) is Skylake DT GT2
[WARN ]  PMC: Duplicate GPE DW register values detected; using default GPE route frr
[DEBUG]  FMAP: Found "FLASH" version 1.1 at 0x750000.
[DEBUG]  FMAP: base = 0x0 size = 0x1000000 #areas = 8
[DEBUG]  FMAP: area COREBOOT found @ 750200 (9108992 bytes)
[INFO ]  CBFS: mcache @0xfef04e00 built for 16 files, used 0x364 of 0x4000 bytes
[INFO ]  CBFS: Found 'fallback/romstage' @0x9d1c0 size 0xd0f0 in mcache @0xfef04e8c
[DEBUG]  BS: bootblock times (exec / console): total (unknown) / 87 ms


[NOTE ]  coreboot-25.03-324-geffd1ffdad73-dirty Mon Apr 28 05:44:45 UTC 2025 x86_32.
[WARN ]  HECI: CSE device 16.0 is disabled
[DEBUG]  pm1_sts: 0900 pm1_en: 0000 pm1_cnt: 00001c00
[DEBUG]  gpe0_sts[0]: 00000000 gpe0_en[0]: 00000000
[DEBUG]  gpe0_sts[1]: 00000000 gpe0_en[1]: 00000000
[DEBUG]  gpe0_sts[2]: 00000000 gpe0_en[2]: 00000000
[DEBUG]  gpe0_sts[3]: 00000000 gpe0_en[3]: 00000000
[DEBUG]  TCO_STS:   0000 0001
[DEBUG]  GEN_PMCON: d0050200 00003008
[DEBUG]  GBLRST_CAUSE: 00000002 00000000
[DEBUG]  prev_sleep_state 0 (S0)
[DEBUG]  FMAP: area COREBOOT found @ 750200 (9108992 bytes)
[INFO ]  CBFS: Found 'fspm.bin' @0xcddc0 size 0x63000 in mcache @0xfef0503c
[DEBUG]  FMAP: area RW_MRC_CACHE found @ 700000 (65536 bytes)
[NOTE ]  MRC: no data in 'RW_MRC_CACHE'
[DEBUG]  SPD @ 0x50
[INFO ]  SPD: module type is DDR3
[INFO ]  SPD: module part number is HMT41GU6MFR8C-PB  
[INFO ]  SPD: banks 8, ranks 2, rows 16, columns 10, density 4096 Mb
[INFO ]  SPD: device width 8 bits, bus width 64 bits
[INFO ]  SPD: module size is 8192 MB (per channel)
[DEBUG]  SPD @ 0x52
[INFO ]  SPD: module type is DDR3
[INFO ]  SPD: module part number is HMT41GU6MFR8C-PB  
[INFO ]  SPD: banks 8, ranks 2, rows 16, columns 10, density 4096 Mb
[INFO ]  SPD: device width 8 bits, bus width 64 bits
[INFO ]  SPD: module size is 8192 MB (per channel)
[EMERG]  FspMemoryInit error, status=0x80000007

Kabylake just with one Dimm inserted:

[NOTE ]  coreboot-25.03-324-geffd1ffdad73-dirty Mon Apr 28 05:44:45 UTC 2025 x86_32 bootblock starting (log level: 7)...
[DEBUG]  CPU: Intel(R) Celeron(R) CPU G3950 @ 3.00GHz
[DEBUG]  CPU: ID 906e9, Kabylake H B0, ucode: 000000f7
[DEBUG]  CPU: AES supported, TXT NOT supported, VT supported
[DEBUG]  MCH: device id 590f (rev 06) is Kabylake-S
[DEBUG]  PCH: device id a146 (rev 31) is Q170
[DEBUG]  IGD: device id 5902 (rev 04) is Kaby Lake DT GT1F
[WARN ]  PMC: Duplicate GPE DW register values detected; using default GPE route from MISCCFG register
[DEBUG]  FMAP: Found "FLASH" version 1.1 at 0x750000.
[DEBUG]  FMAP: base = 0x0 size = 0x1000000 #areas = 8
[DEBUG]  FMAP: area COREBOOT found @ 750200 (9108992 bytes)
[INFO ]  CBFS: mcache @0xfef04e00 built for 16 files, used 0x364 of 0x4000 bytes
[INFO ]  CBFS: Found 'fallback/romstage' @0x9d1c0 size 0xd0f0 in mcache @0xfef04e8c
[DEBUG]  BS: bootblock times (exec / console): total (unknown) / 88 ms

[NOTE ]  coreboot-25.03-324-geffd1ffdad73-dirty Mon Apr 28 05:44:45 UTC 2025 x86_32 romstage starting (log level: 7)...
[WARN ]  HECI: CSE device 16.0 is disabled
[DEBUG]  pm1_sts: 0800 pm1_en: 0000 pm1_cnt: 00001c00
[DEBUG]  gpe0_sts[0]: 00000000 gpe0_en[0]: 00000000
[DEBUG]  gpe0_sts[1]: 00000000 gpe0_en[1]: 00000000
[DEBUG]  gpe0_sts[2]: 00000000 gpe0_en[2]: 00000000
[DEBUG]  gpe0_sts[3]: 00000000 gpe0_en[3]: 00000000
[DEBUG]  TCO_STS:   0000 0001
[DEBUG]  GEN_PMCON: d0040200 0000700a
[DEBUG]  GBLRST_CAUSE: 00000000 00000000
[DEBUG]  prev_sleep_state 5 (S5)
[DEBUG]  FMAP: area COREBOOT found @ 750200 (9108992 bytes)
[INFO ]  CBFS: Found 'fspm.bin' @0xcddc0 size 0x63000 in mcache @0xfef0503c
[DEBUG]  FMAP: area RW_MRC_CACHE found @ 700000 (65536 bytes)
[NOTE ]  MRC: no data in 'RW_MRC_CACHE'
[INFO ]  No memory dimm at address A4
[DEBUG]  SPD @ 0x50
[INFO ]  SPD: module type is DDR3
[INFO ]  SPD: module part number is HMT41GU6MFR8C-PB  
[INFO ]  SPD: banks 8, ranks 2, rows 16, columns 10, density 4096 Mb
[INFO ]  SPD: device width 8 bits, bus width 64 bits
[INFO ]  SPD: module size is 8192 MB (per channel)
[EMERG]  FspMemoryInit error, status=0x80000007

Coffeelake with just 1 Dimm inserted:

[NOTE ]  coreboot-25.03-324-geffd1ffdad73-dirty Mon Apr 28 05:44:45 UTC 2025 x86_32 bootblock starting (log level: 7)...
[DEBUG]  CPU: Intel(R) Celeron(R) G4900T CPU @ 2.90GHz
[DEBUG]  CPU: ID 906eb, Unknown, ucode: 000000f5
[DEBUG]  CPU: AES supported, TXT NOT supported, VT supported
[DEBUG]  MCH: device id 3e0f (rev 08) is Unknown
[DEBUG]  PCH: device id a146 (rev 31) is Q170
[DEBUG]  IGD: device id 3e93 (rev 00) is Unknown
[WARN ]  PMC: Duplicate GPE DW register values detected; using default GPE route from MISCCFG register
[DEBUG]  FMAP: Found "FLASH" version 1.1 at 0x750000.
[DEBUG]  FMAP: base = 0x0 size = 0x1000000 #areas = 8
[DEBUG]  FMAP: area COREBOOT found @ 750200 (9108992 bytes)
[INFO ]  CBFS: mcache @0xfef04e00 built for 16 files, used 0x364 of 0x4000 bytes
[INFO ]  CBFS: Found 'fallback/romstage' @0x9d1c0 size 0xd0f0 in mcache @0xfef04e8c
[DEBUG]  BS: bootblock times (exec / console): total (unknown) / 86 ms


[NOTE ]  coreboot-25.03-324-geffd1ffdad73-dirty Mon Apr 28 05:44:45 UTC 2025 x86_32 romstage starting (log level: 7)...
[WARN ]  HECI: CSE device 16.0 is disabled
[DEBUG]  pm1_sts: 0800 pm1_en: 0000 pm1_cnt: 00001c00
[DEBUG]  gpe0_sts[0]: 00000000 gpe0_en[0]: 00000000
[DEBUG]  gpe0_sts[1]: 00000000 gpe0_en[1]: 00000000
[DEBUG]  gpe0_sts[2]: 00000000 gpe0_en[2]: 00000000
[DEBUG]  gpe0_sts[3]: 00000000 gpe0_en[3]: 00000000
[DEBUG]  TCO_STS:   0000 0001
[DEBUG]  GEN_PMCON: d0040200 0000700a
[DEBUG]  GBLRST_CAUSE: 00000000 00000000
[DEBUG]  prev_sleep_state 5 (S5)
[DEBUG]  FMAP: area COREBOOT found @ 750200 (9108992 bytes)
[INFO ]  CBFS: Found 'fspm.bin' @0xcddc0 size 0x63000 in mcache @0xfef0503c
[DEBUG]  FMAP: area RW_MRC_CACHE found @ 700000 (65536 bytes)
[NOTE ]  MRC: no data in 'RW_MRC_CACHE'
[INFO ]  No memory dimm at address A4
[DEBUG]  SPD @ 0x50
[INFO ]  SPD: module type is DDR3
[INFO ]  SPD: module part number is HMT41GU6MFR8C-PB  
[INFO ]  SPD: banks 8, ranks 2, rows 16, columns 10, density 4096 Mb
[INFO ]  SPD: device width 8 bits, bus width 64 bits
[INFO ]  SPD: module size is 8192 MB (per channel)
[EMERG]  FspMemoryInit error, status=0x80000007

No Dimms at all inserted or other 2 unsupported banks used

[NOTE ]  coreboot-25.03-324-geffd1ffdad73-dirty Mon Apr 28 05:44:45 UTC 2025 x86_32 bootblock starting (log level: 7)...
[DEBUG]  CPU: Intel(R) Celeron(R) G4900T CPU @ 2.90GHz
[DEBUG]  CPU: ID 906eb, Unknown, ucode: 000000f5
[DEBUG]  CPU: AES supported, TXT NOT supported, VT supported
[DEBUG]  MCH: device id 3e0f (rev 08) is Unknown
[DEBUG]  PCH: device id a146 (rev 31) is Q170
[DEBUG]  IGD: device id 3e93 (rev 00) is Unknown
[WARN ]  PMC: Duplicate GPE DW register values detected; using default GPE route from MISCCFG register
[DEBUG]  FMAP: Found "FLASH" version 1.1 at 0x750000.
[DEBUG]  FMAP: base = 0x0 size = 0x1000000 #areas = 8
[DEBUG]  FMAP: area COREBOOT found @ 750200 (9108992 bytes)
[INFO ]  CBFS: mcache @0xfef04e00 built for 16 files, used 0x364 of 0x4000 bytes
[INFO ]  CBFS: Found 'fallback/romstage' @0x9d1c0 size 0xd0f0 in mcache @0xfef04e8c
[DEBUG]  BS: bootblock times (exec / console): total (unknown) / 86 ms


[NOTE ]  coreboot-25.03-324-geffd1ffdad73-dirty Mon Apr 28 05:44:45 UTC 2025 x86_32 romstage starting (log level: 7)...
[WARN ]  HECI: CSE device 16.0 is disabled
[DEBUG]  pm1_sts: 0800 pm1_en: 0000 pm1_cnt: 00001c00
[DEBUG]  gpe0_sts[0]: 00000000 gpe0_en[0]: 00000000
[DEBUG]  gpe0_sts[1]: 00000000 gpe0_en[1]: 00000000
[DEBUG]  gpe0_sts[2]: 00000000 gpe0_en[2]: 00000000
[DEBUG]  gpe0_sts[3]: 00000000 gpe0_en[3]: 00000000
[DEBUG]  TCO_STS:   0000 0001
[DEBUG]  GEN_PMCON: d0040200 0000700a
[DEBUG]  GBLRST_CAUSE: 00000000 00000000
[DEBUG]  prev_sleep_state 5 (S5)
[DEBUG]  FMAP: area COREBOOT found @ 750200 (9108992 bytes)
[INFO ]  CBFS: Found 'fspm.bin' @0xcddc0 size 0x63000 in mcache @0xfef0503c
[DEBUG]  FMAP: area RW_MRC_CACHE found @ 700000 (65536 bytes)
[NOTE ]  MRC: no data in 'RW_MRC_CACHE'
[INFO ]  No memory dimm at address A0
[INFO ]  No memory dimm at address A4
[EMERG]  FspMemoryInit error, status=0x80000007

Will upload autoport logs soon, anyone already some obvious edits/hints to the existing optiplex_3050 code get me past this [EMERG] FspMemoryInit error, status=0x80000007 error?


Files

autoport-logs-dell5040sff.zip (394 KB) autoport-logs-dell5040sff.zip autoport logs dell5040sff Walter Sonius, 04/29/2025 06:00 AM
Actions #2

Updated by Matt DeVillier about 16 hours ago

Walter Sonius wrote:

[INFO ] No memory dimm at address A0
[INFO ] No memory dimm at address A4
[EMERG] FspMemoryInit error, status=0x80000007


Will upload autoport logs soon, anyone already some obvious edits/hints to the existing [optiplex_3050 code](https://github.com/coreboot/coreboot/tree/main/src/mainboard/dell/optiplex_3050) get me past this [EMERG]  FspMemoryInit error, status=0x80000007 error?

the fact that it's not finding your DIMMs is the main issue I'd say

Actions #3

Updated by Walter Sonius about 15 hours ago ยท Edited

Sorry the missing styling lett the last Log block look the same as the previous, but you quoted the situation correctly when no RAM modules or 1/2 RAM modules were installed in the unupported 0x51 and 0x53 slots. It was also used to portray that the error is the same as having no RAM at all.

Will add these 0x51 and 0x53 the next build.

The main differences for these board are DDR3 vs DDR4 and Kconfig mentions specific:

config DIMM_SPD_SIZE
    default 512 # DDR4

First I thought it was a minimal RAM module size and just a #commented reference but now I think that coreboot might search for more SPD eeprom bytes compared to the smaller eeprom used on the DDR3/DDR3L modules to complete 512?

Will try to remove this whole DIMM_SPD_SIZE block or lower the value to 256/128 changes and report back, thanks for the input sofar.

Actions #4

Updated by Matt DeVillier about 15 hours ago

Walter Sonius wrote in #note-3:

Sorry the missing styling lett the last Log block look the same as the previous, but you quoted the situation correctly when no RAM modules or 1/2 RAM modules were installed in the unupported 0x51 and 0x53 slots. It was also used to portray that the error is the same as having no RAM at all.

Will add these 0x51 and 0x53 the next build.

The main differences for these board are DDR3 vs DDR4 and Kconfig mentions specific:

config DIMM_SPD_SIZE
  default 512 # DDR4

First I thought it was a minimal RAM module size and just a #commented reference but now I think that coreboot might search for more SPD eeprom bytes compared to the smaller eeprom used on the DDR3/DDR3L modules to complete 512?

Will try to remove this whole DIMM_SPD_SIZE block or lower the value to 256/128 changes and report back, thanks for the input sofar.

DDR3 has a SPD size of 256, which is the default so you do not need to override at the mainboard level (just remove the incorrect override)

Actions #5

Updated by Walter Sonius about 14 hours ago

Still the same error after removing the DIMM_SPD_SIZE from Kconfig, but this time a warning just strikes me but it was already there on my previous attempts but maybe unrelated.

...
[WARN ]  PMC: Duplicate GPE DW register values detected; using default GPE route from MISCCFG register
...
[DEBUG]  gpe0_sts[0]: 00000000 gpe0_en[0]: 00000000
[DEBUG]  gpe0_sts[1]: 00000000 gpe0_en[1]: 00000000
[DEBUG]  gpe0_sts[2]: 00000000 gpe0_en[2]: 00000000
[DEBUG]  gpe0_sts[3]: 00000000 gpe0_en[3]: 00000000
...

Will try to enable some debug flags for the next build.

Actions #6

Updated by Walter Sonius about 12 hours ago

Rookie mistake, removing it from Kconfig did not remove it from .config when rebuilding it was still 512 there. However after removing it from .config and checked that after making it was back again but this time with the correct value of 256 the error is still the same.

Adding the SPD values 0x51 0x53 to romstage.c indeed brings a corresponding A2 and A6 response for missing DIMMs. Swapping the DIMMs from A0 and A4 to A2 and A6 detects DIMMs but still gives the same error.

Actions

Also available in: Atom PDF