Project

General

Profile

Actions

Support #581

open

success new variant "compaq_pro_6300_sff" for hp/snb_ivb_desktops compatible with "compaq_8300_elite_sff" template

Added by Walter Sonius 14 days ago. Updated about 21 hours ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
board support
Target version:
Start date:
03/15/2025
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
Affected OS:

Description

Successful flash and coreboot SeaBIOS functioning of a HP "compaq_pro_6300_sff" with a unchanged "compaq_8300_elite_sff" template using coreboot (24.12-758-g1e7ba810c6bb) and SeaBIOS (version rel-1.16.3-0-ga6ed6b70).

These two HP Compaq devices are extremely similar, they use the same OEM proprietary BIOS upgrade files. Hardware wise the only 3 noticeable differences are that the "compaq_8300_elite_sff" comes with a Q77 chipset, SuperIO NPCD378 and J32 labeled 16x length "white" PCI-E slot versus a Q75 chipset, SuperIO NPCD379HAKFX with the J32 labeled slot populated with a limited physical 1x length "black" PCI-E slot on the "compaq_pro_6300_sff".

Flashing from OEM proprietary BIOS 3.08revA enabling the FDO jumper on the motherboard as described for the compaq_8300_elite_sff works by booting with "iomem=relaxed" kernel parameter and specifying the specific 16MB chip 25Q128A: flashrom -p internal -w cbtest.rom -c "MT25QL128"

Tested and Working:
Poweron/Poweroff/Reboot
CPU i3-3220 / e3-1225v2
RAM 1x 2x 4x populated slots total of 4GB/8GB/16GB/24GB (both 1.35v and 1.5v modules mixed with ECC)
Serial port (including coreboot)
PS2 keyboard (including SeaBIOS)
PS2 mouse
SATA 3 ports (blue/white/white)
USB 2.0 4x front & 2x back ports
USB 3.0 4x back ports
Ethernet 1Gbit/100Mbit
Display port works in SeaBIOS and OS
VGA port only works in OS!
PCI using realtek RTL8169 1Gb
PCIE 3.0 16x using 2.0 8x 10Gb intel X540-AT2 / using 1.0 16x Nvidia Geforce 6200 LE (also works in SeaBIOS)
PCIE 2.0 1x using 2.0 1x 2.5Gb realtek RTL8125
PCIE 2.0 1x using 1.0 1x 1Gb intel 82574L (SeaBIOS loads option rom)
Audio built-in speaker (plays music in OS compared to legacy bleep pc-speaker)
Audio front panel 3.5 mm headphone jack (auto disables built-in Speakers and selects Headphones)
Audio front panel 3.5 mm headphone&mic jack (only microphone works with 4 pin 3.5mm combi mic/headphone)
Audio back panel 3.5mm green jack (manually select Line Out and it works)
Sensors CPU and 2 motherboard sensors
SuperIO
Booting USB / SATA(HDD/DVD)
OS: Fedora-mate Linux kernel 6.11.4 / 6.13.6, KDE neon Linux kernel 6.8.0-52
Flashrom: needs additional parameters compared to OEM BIOS both for read/write depending on flashrom version?

flashrom -p internal:boardmismatch=force,ich_spi_mode=hwseq -w test.rom -c "Opague flash chip"

Tested not Working:
RAM ECC functioning (see coreboot log)
SATA port black
Wakeonlan, it just auto wakes from itself so cannot verify...
iGPU multigpu with PCIE nvidia geforce 6200 le, only PCIE nvidia geforce works and iGPU gets disabled.

What to do next to get this "compaq_pro_6300_sff" variant officially supported?

*Supply more logs/info?
*Fill a bug for the ECC not working or first get this variant supported as is?
*Fill a bug that VGA doesn't work in SeaBIOS?
*Fill a bug/ticket on the flashrom support list for the difference in parameters needed pre/post flash?

https://support.hp.com/us-en/drivers/hp-compaq-pro-6300-small-form-factor-pc/model/5232884
https://support.hp.com/in-en/drivers/hp-compaq-elite-8300-small-form-factor-pc/model/5232855

Walter Sonius


Files

cb-log-hp-compaq_pro_6300_sff.txt (51.8 KB) cb-log-hp-compaq_pro_6300_sff.txt Walter Sonius, 03/15/2025 10:05 AM
hp-compaq-pro-6300-oem-and-coreboot-autoport.zip (266 KB) hp-compaq-pro-6300-oem-and-coreboot-autoport.zip Walter Sonius, 03/16/2025 09:37 AM
cb-pull97add0a-log-ed2k-hp-compaq_pro_6300_sff-mt-deselect-vga-vga-working.txt (47.7 KB) cb-pull97add0a-log-ed2k-hp-compaq_pro_6300_sff-mt-deselect-vga-vga-working.txt Walter Sonius, 03/17/2025 02:24 PM
cb-pull97add0a-log-ed2k-hp-compaq_pro_6300_sff-mt-deselect-vga-dp-hdmi-working.txt (47.8 KB) cb-pull97add0a-log-ed2k-hp-compaq_pro_6300_sff-mt-deselect-vga-dp-hdmi-working.txt Walter Sonius, 03/17/2025 02:24 PM
cb-pull97add0a-log-sb-hp-compaq_pro_6300_sff-mt.txt (54.6 KB) cb-pull97add0a-log-sb-hp-compaq_pro_6300_sff-mt.txt Walter Sonius, 03/17/2025 02:24 PM
cb-pull264053a-log-ed2k-mcb2408-hp-compaq_pro_6300_sff-mt-me-S.txt (46.1 KB) cb-pull264053a-log-ed2k-mcb2408-hp-compaq_pro_6300_sff-mt-me-S.txt Walter Sonius, 03/18/2025 11:08 AM
hp-compaq-pro_6300_sff-oem-siot1c11-autoport.zip (174 KB) hp-compaq-pro_6300_sff-oem-siot1c11-autoport.zip Walter Sonius, 03/20/2025 06:11 PM
hp-compaq-8200_elite_sff-usao-oem-siot1c11-autoport.zip (360 KB) hp-compaq-8200_elite_sff-usao-oem-siot1c11-autoport.zip Walter Sonius, 03/20/2025 06:36 PM
hp-compaq-8300_elite_sff-oem-UEFI-siot1c11-autoport.zip (167 KB) hp-compaq-8300_elite_sff-oem-UEFI-siot1c11-autoport.zip Walter Sonius, 03/20/2025 10:54 PM
hp-compaq-pro_6300_sff-oem-UEFI-siot1c11-autoport-4xsata-5xsata.zip (518 KB) hp-compaq-pro_6300_sff-oem-UEFI-siot1c11-autoport-4xsata-5xsata.zip Walter Sonius, 03/22/2025 09:09 AM
autoport-pro6300-8200elite-sff-vtd-iommu-dmar.zip (506 KB) autoport-pro6300-8200elite-sff-vtd-iommu-dmar.zip Walter Sonius, 03/22/2025 09:27 PM
autoport-pro6300-8200elite-sff-vtd-iommu-dmar-all-pci-sata-pop.zip (531 KB) autoport-pro6300-8200elite-sff-vtd-iommu-dmar-all-pci-sata-pop.zip Walter Sonius, 03/23/2025 07:32 AM
cb-log-hp-compaq_8200_elite_sff_usao-sata0x17-early-usb.txt (63.9 KB) cb-log-hp-compaq_8200_elite_sff_usao-sata0x17-early-usb.txt Walter Sonius, 03/24/2025 08:28 PM
Actions #1

Updated by Keith Hui 13 days ago · Edited

Walter Sonius wrote:

What to do next to get this "compaq_pro_6300_sff" variant officially supported?

*Supply more logs/info?
*Fill a bug for the ECC not working or first get this variant supported as is?
*Fill a bug that VGA doesn't work in SeaBIOS?
*Fill a bug/ticket on the flashrom support list for the difference in parameters needed pre/post flash?

https://support.hp.com/us-en/drivers/hp-compaq-pro-6300-small-form-factor-pc/model/5232884
https://support.hp.com/in-en/drivers/hp-compaq-elite-8300-small-form-factor-pc/model/5232855

Walter Sonius

If I read your report right, you got an unmodified coreboot for compaq_8300_elite_sff variant to boot and achieved partial but useful functionality. Great!

Usually to get support added for a new variant you would actually submit a patch via gerrit (see Documentation/ for details). However, if you would like someone else do it, please bundle up all the logs generated by autoport, one set while running vendor firmware (hope you got a backup) and another while running coreboot, and post them somewhere. With those I may be able to spin something up, as changes should be minimal, but timelines are not guaranteed, as most of us who work on ivybridge boards do it for free.

Actions #3

Updated by Walter Sonius 13 days ago

Keith Hui wrote in #note-1:
...

If I read your report right, you got an unmodified coreboot for compaq_8300_elite_sff variant to boot and achieved partial but useful functionality. Great!

Correct, almost everything works except the 4th black sata port and haven't tested the blue Audio jack line-in on the back. Will try the 4th sata port on OEM 3.08 firmware and report back.

Usually to get support added for a new variant you would actually submit a patch via gerrit (see Documentation/ for details). However, if you would like someone else do it, please bundle up all the logs generated by autoport, one set while running vendor firmware (hope you got a backup) and another while running coreboot, and post them somewhere. With those I may be able to spin something up, as changes should be minimal, but timelines are not guaranteed, as most of us who work on ivybridge boards do it for free.

Thank you for letting me know that gerrit is the preferred way of uploading/discussing new board support instead of the ticket. If you would see fit to spin up this variant, I can test the gerrit branch/pull request and will report back.

Note on the confusing naming of this particular model. This HP device comes with 3 stickers on the device, 2 of them note the wording order "pro_6300_sff" and 1 the "6300_pro_sff". Also autoports detects it as hp_compaq_pro_6300_sff compared to the hp_compaq_8300_elite_sff.

Therefor I think that "hp_compaq_pro_6300_sff" with "pro" preceding the model number vs "elite" trailing after the model number would be the right variant name?

Actions #4

Updated by Walter Sonius 13 days ago

  • Related links updated (diff)
Actions #5

Updated by Walter Sonius 13 days ago

  • Related links updated (diff)
Actions #6

Updated by Walter Sonius 13 days ago

  • Related links updated (diff)
Actions #7

Updated by Walter Sonius 13 days ago

  • Related links updated (diff)

The 4th black SATA port does indeed work on the OEM 3.08revA firmware but not using the current 8300_elite template.
A quick compare of the devicetree generated by autoport shows that 8300_elite uses [register "sata_port_map" = "0xf"] while autoport on OEM firmware detects [register "sata_port_map" = "0x6"].
Will try to hack this single change in code and compile new version and let you know if 4th sata port works.

Further testing shows both onboard USB headers are also working in both OEM and current coreboot 8300_elite template with a total of 14 ports. Also the blue line-in 3,5mm jack is also working on OEM and current coreboot 8300_elite template using Audacity on line-in-0 port(reports mic0,mic1,linein0,line1).

The only thing not tested is the onboard parallel-port header.

Actions #8

Updated by Keith Hui 12 days ago

Patch up: https://review.coreboot.org/c/coreboot/+/86869

Until you can set yourself up there, I'll also check this issue for reports.

  • For the VGA port, you may want to try commenting "select GFX_GMA_ANALOG_I2C_HDMI_B" in Kconfig. See if removing it makes the VGA port work in SeaBIOS.
  • The black SATA port is eSATA; you'll need the right cable. I made the sata_port_map change in the patch. Please test.
  • Check your coreboot log that "early_usb_init: USB00: USBIR_TXRX_GAIN_MOBILE_LOW is an invalid setting for desktop!" no longer appears.
  • WOL and iGPU+dGPU has been a long standing chipset issue that does need to be addressed, but they're bigger issue than just one board.
  • Please also test edk2 payload. If you aren't set up for UEFI booting, try a live Linux distro.

Updated by Walter Sonius 12 days ago · Edited

Keith Hui wrote in #note-8:

Patch up: https://review.coreboot.org/c/coreboot/+/86869

Until you can set yourself up there, I'll also check this issue for reports.

Thanks a lot for the "pro_6300_sff/mt" variant, if its ok with you I'll finish this port on the ticker tracker for now.

Current comments from now on are for Keith its variant.

  • For the VGA port, you may want to try commenting "select GFX_GMA_ANALOG_I2C_HDMI_B" in Kconfig. See if removing it makes the VGA port work in SeaBIOS.

Did a straight build from your pull first, and the VGA port was still not working on SeaBIOS. For the 2nd build I removed this "select GFX_GMA_ANALOG_I2C_HDMI_B" in Kconfig and went straight to ed2k mrchromebox version 24_08 and now we have working VGA or DP (to DP and to HDMI/DVI) output with the White Rabbit during EDK2 Tiancore! Not sure if the Samsung TV used HDMI or DVI on the DP but DP to DP on HP ZDisplay is also working fine. Still have to reflash to confirm SeaBIOS VGA output.

  • The black SATA port is eSATA; you'll need the right cable. I made the sata_port_map change in the patch. Please test.

Already tried the single "0xf" to "0x6" hack on the previous 8300_elite_sff template but it also didn't work on yours. The sata port is however a normal internal sata connector, but maybe the protocol is e-sata? It works however with the OEM 3.08revA firmware, but not in SeaBIOS nor EDK2 with your current pro_6300_sff/mt template. Have tried both CD/DVD and HDD. In a couple of months a 8300-elite-sff is available to me at the office then I can confirm if the 4th port is even working on the original 8300-elite-sff.

  • Check your coreboot log that "early_usb_init: USB00: USBIR_TXRX_GAIN_MOBILE_LOW is an invalid setting for desktop!" no longer appears.

Its gone, check the new uploaded logs for your build with SeaBIOS and EDK2 both VGA and DP.

  • WOL and iGPU+dGPU has been a long standing chipset issue that does need to be addressed, but they're bigger issue than just one board.

Suspend was working on the previous 8300 template firmware, just had to disable all the fake wakeup events and then it went to sleep. It only woke by power button.
The same applies for your current pro_6300_sff/mt template, suspend works with following adjustments.

#looked for anything with enabled and disabled it all with echo, than sleep works
cat /proc/acpi/wakeup
Device S-state Status Sysfs node
HDEF S4 *disabled pci:0000:00:1b.0
EHC1 S4 *enabled pci:0000:00:1d.0
EHC2 S4 *enabled pci:0000:00:1a.0
XHC S4 *enabled pci:0000:00:14.0
L050 S3 *disabled pnp:00:08
L060 S3 *enabled pnp:00:09
*disabled serio:serio0
PCIB S4 *disabled pci:0000:00:1e.0

LAN adapter on PCI 19.0 is BTW missing in this /proc/acpi/wakeup list, maybe needed for WOL?

#maybe disabling one of the following items is enough still have to restest
neon@neon:~$ sudo -s
root@neon:/home/neon# echo EHC1 > /proc/acpi/wakeup
root@neon:/home/neon# echo EHC2 > /proc/acpi/wakeup
root@neon:/home/neon# echo XHC > /proc/acpi/wakeup
root@neon:/home/neon# echo L060 > /proc/acpi/wakeup
root@neon:/home/neon# exit

neon@neon:~$ cat /proc/acpi/wakeup
Device S-state Status Sysfs node
HDEF S4 *disabled pci:0000:00:1b.0
EHC1 S4 *disabled pci:0000:00:1d.0
EHC2 S4 *disabled pci:0000:00:1a.0
XHC S4 *disabled pci:0000:00:14.0
L050 S3 *disabled pnp:00:08
L060 S3 *disabled pnp:00:09
*enabled serio:serio0
PCIB S4 *disabled pci:0000:00:1e.0

  • Please also test edk2 payload. If you aren't set up for UEFI booting, try a live Linux distro.

Already mentioned EDK2 is working including VGA output and DP(HDMI/DVI) output :-)

Didn't mention before but the "Power LED" and "Hdd LED" on the front are also working as expected.

Also 4 onboard temp sensors from jc42 vs the 2 sensors reported earlier work. The original oem firmware has a additional "acpitz-acpi-0" temp sensor, but still Superio HWM fan speed or voltage monitoring are absent both in original oem and this coreboot firmware port.

Haven't retested any PCI(e) devices yet but all USB and audio ports still work. Will keep you updated and thanks alot for this quick response!

Actions #10

Updated by Walter Sonius 12 days ago · Edited

Just confirming that SeaBIOS (version rel-1.16.3-0-ga6ed6b70) is also working with VGA output if "select GFX_GMA_ANALOG_I2C_HDMI_B" in Kconfig is removed just like the EDK2 tianocore UEFI results.

Also retested all PS2 ports (keyboard & mouse) and PCI and PCIe devices again including a PCIe 3.0 8x HP p420 HBA which was correctly detected as 8Gt 8x length.

However during testing of the SATA ports, there might be a regression since the 1st blue port also doesn't work anymore... only the white ones 2 and 3. That might be because of the 0xf to 0x6 port map change? Is 3 ports better than 2 instead of 4?

Just a few notes to correct and summarize the upcoming "compaq_pro_6300_series.md":
https://review.coreboot.org/c/coreboot/+/86869/3/Documentation/mainboard/hp/compaq_pro_6300_series.md
*The 6.8.0-52 kernel tested was part of KDE neon(ubuntu 24.04) not Fedora.
*The SuperIO only works with serial and ps2 ports not HWM fan nor voltage monitoring.
*VGA output both SeaBIOS / EDK2 and OS can be removed from known issues
*4 motherboard jc42 temperature sensors compared to 2
*suspend s3 and wake from power button works
*LEDs power and hdd work as expected

Apart from the SATA ports, this board seems kinda complete is 2 SATA ports enough to finish your pull?

Actions #11

Updated by Walter Sonius 12 days ago · Edited

Mmmm very interesting... Wake On LAN its working for onboard ethernet 82579LM currently. However note that the PCI slot is occupied with a RTL8169 (no cable), the PCIe J32 1x slot has a 82574L (no cable) and the lowest PCIe 1x slot has a RTL8125 (no cable) all doing nothing...

I also didn't have to disable the fake wake events in /proc/acpi/wakeup, maybe because the machine was on for a longer time and fell asleep itself instead of me forcing it?

Other connections alive are, USB 2.0 connections back(lower for USB keyboard upper for 8GB flashdrive KDE NEON live) lowest USB 3 port in back with USB 2.0 mouse, serial port, VGA port.

My guess is that these other PCI(e) devices doing nothing keep on some bus/power states during sleep which allows to wakeup up via the onboard ethernet? Will measure the Watt usage during 2nd sleep wake on lan event and let you know, previously without all the PCI(e) devices it was around 15Watt idle and 0Watt sleep.

Confirmed, its standby power in suspend is around ~3watt with Wake On Lan compared to ~0/1watt without working Wake On Lan. Will try again with only one PCIe ethernet adapter inserted (82579LM) in the system.

More interesting, wake on lan is now functioning while there is not a single extra PCI(e) card inserted and suspend power usage is around 0/1 watt. Its the SeaBIOS build btw that I'm running with KDE Neon Live from USB. The last thing I will try is boot with Displayport compared to VGA and see if the machine will wake, otherwise I have no idea why it didn't work with Wake On Lan in first place...

Even with Displayport instead of VGA and without a serial cable connected Wake On Lan is still working. Will try EDK2 tianocore UEFI again tomorrow to verify Wake On Lan is working 100%.

Actions #12

Updated by Keith Hui 12 days ago · Edited

Walter Sonius wrote in #note-10:

Just confirming that SeaBIOS (version rel-1.16.3-0-ga6ed6b70) is also working with VGA output if "select GFX_GMA_ANALOG_I2C_HDMI_B" in Kconfig is removed just like the EDK2 tianocore UEFI results.

Also retested all PS2 ports (keyboard & mouse) and PCI and PCIe devices again including a PCIe 3.0 8x HP p420 HBA which was correctly detected as 8Gt 8x length.

However during testing of the SATA ports, there might be a regression since the 1st blue port also doesn't work anymore... only the white ones 2 and 3. That might be because of the 0xf to 0x6 port map change? Is 3 ports better than 2 instead of 4?

Great news about VGA port! The patch has been updated with this and SATA regression fixed. ESATA only differs in the connector shape; the protocol is same - actually SATA itself is supposed to be hotplug compatible if I understand right.

Just a few notes to correct and summarize the upcoming "compaq_pro_6300_series.md":
https://review.coreboot.org/c/coreboot/+/86869/3/Documentation/mainboard/hp/compaq_pro_6300_series.md
*The 6.8.0-52 kernel tested was part of KDE neon(ubuntu 24.04) not Fedora.
*The SuperIO only works with serial and ps2 ports not HWM fan nor voltage monitoring.
*VGA output both SeaBIOS / EDK2 and OS can be removed from known issues
*4 motherboard jc42 temperature sensors compared to 2
*suspend s3 and wake from power button works
*LEDs power and hdd work as expected

Apart from the SATA ports, this board seems kinda complete is 2 SATA ports enough to finish your pull?

We can work towards a solution later, but with VGA and blue SATA port fixed I think it's good enough for merging.

Actions #13

Updated by Walter Sonius 11 days ago · Edited

Final closing notes for patch4 264053a:

The earlier confirmed 3 SATA ports are working again Blue/White/White, Black still broken.

VGA and Displayport are working without any edits to the code!

The Wake On Lan feature is working perfectly with S3 suspend to RAM both on SeaBIOS and EDK2(mcb 2408) it doesn't need to disable false wake events mentioned earlier for the previous 8300_elite_sff based attempt. Wak On Lan even works now on (warm) boots (system shutdown before) not sure if that is called S5 or some special S4 mode(did not hibernate) but it just consumes around ~0-1 Watt!
Suspend to ram S3, can also be woken from USB keyboard (not mouse) and offcourse Power Button.
The Power LED also blinks in Suspend compared to continues on in normal operating mode.
The only thing blocking S3 suspend to RAM as in instantly waking after sleep is having a PS2 keyboard connected!

All testing has been done with a non updated but active and normal functioning ME/TXE firmware version 8.1.31.1351 (generation 2) from the OEM firmware, see earlier coreboot logs and new log with ME disabled!

Just tried corna me_cleaner with option -S on the current running whole firmware file, reflashed and cold(first) boot seems a little bit slower with first a instant powerdown after poweron but than it continues itself powering on and booting. The operating systems just complaines about "mei_me" issues but that is expected and when waking from suspend the system notices that the mei pci device is not there. I'm aware that also during coreboot build there is an option to do the ME neutering, but since that is not default it may not be needed to test?

sudo dmesg | grep mei
[   11.901493] mei_me 0000:00:16.0: wait hw ready failed
[   11.902658] mei_me 0000:00:16.0: hw_start failed ret = -62 fw status = 1C020191 120A0150
[   11.903810] mei_me 0000:00:16.0: H_RST is set = 0x80000015
[   13.949486] mei_me 0000:00:16.0: wait hw ready failed
[   13.950650] mei_me 0000:00:16.0: hw_start failed ret = -62 fw status = 1C020191 120A0150
[   13.951802] mei_me 0000:00:16.0: H_RST is set = 0x80000015
[   15.998474] mei_me 0000:00:16.0: wait hw ready failed
[   15.998994] mei_me 0000:00:16.0: hw_start failed ret = -62 fw status = 1C020191 120A0150
[   15.999498] mei_me 0000:00:16.0: reset: reached maximal consecutive resets: disabling the device
[   15.999968] mei_me 0000:00:16.0: reset failed ret = -19
[   16.000433] mei_me 0000:00:16.0: link layer initialization failed.
[   16.000904] mei_me 0000:00:16.0: init hw failure.
[   16.004749] mei_me 0000:00:16.0: initialization failed.
#after wake from lan
[  334.141317] pci 0000:00:16.0: Unable to change power state from D0 to D0, device inaccessible

The multi-gpu iGPU+dedicated support, not even sure if its supported for this specific chipset but I got that working already on a "Asrock H110 Pro BTC+" with coreboot which well be next variant adventure. Also don't have any recent opensource supported GPU's to fit in this low profile case, otherwise I would continue testing.

For ECC RAM I will fill a separate bug if this pro_6300_sff/mt variant is officially merged.

Still would recommend a note in the "compaq_pro_6300_series.md" about using flashrom while on coreboot firmware, both needed for -r read and -w write. Will continue that as a seperate issue in the flashrom tracker soon, but coreboot/flashrom new enthousiasts might panic if they cannot reflash again with simple syntax so this is the fix:
flashrom -p internal:boardmismatch=force,ich_spi_mode=hwseq -w test.rom -c "Opaque flash chip"

Thanks Keith, Martin and the Mr Jenkins ;-) for completing this pull request, you earn all the credits to the code and don't need to mention me.

Yours Sincerely

Walter

Actions #14

Updated by Walter Sonius 11 days ago

This will really finish it ;-)

4th Black SATA port Fixed by using portmap "0x3f" hinted from "z220_cmt_workstation" instead of "0xf". Portmap "0x10" only made the 4th black port working and broke all three others...

https://review.coreboot.org/c/coreboot/+/35829

Angel Pons did start this particular pro_6300 port more than 5 years ago but I haven't noticed it in the WIP(can be closed). At that time the port had issues with CPU FAN to loud continuously but as of today with your current template it behaves silent just as the OEM firmware.

Actions #15

Updated by Paul Menzel 11 days ago

First, thank you for your thorough testing.

Walter Sonius wrote in #note-14:

4th Black SATA port Fixed by using portmap "0x3f" hinted from "z220_cmt_workstation" instead of "0xf". Portmap "0x10" only made the 4th black port working and broke all three others...

What about 0x1f, which would be 0001 1111 (binary)? This would still hint, that there are five and not five ports. You could test the other iterations, and check if all other three ports keep working.

Actions #16

Updated by Keith Hui 10 days ago

Walter Sonius wrote in #note-14:

This will really finish it ;-)

4th Black SATA port Fixed by using portmap "0x3f" hinted from "z220_cmt_workstation" instead of "0xf". Portmap "0x10" only made the 4th black port working and broke all three others...

Great news! Patch has been updated with 0x3f (see below).

Paul Menzel wrote in #note-15:

First, thank you for your thorough testing.

What about 0x1f, which would be 0001 1111 (binary)? This would still hint, that there are five and not five ports. You could test the other iterations, and check if all other three ports keep working.

This is the "ports implemented" map, and 0x3f enables all 6 SATA ports 7-series PCHs could ever have. Boards are supposed to zero the bits for ports that aren't actually on the board, but based on what Walter said, one of the ports between ports 0-3 is also not implemented - this board only has 4 SATA ports. To get at the correct value all six bits (ie. 0x01-0x20) will need to be tested to find out which port is which - and we now know port 4 (or the fifth) is black, port 0 is blue (for it supports 6Gbps and with its Q75 PCH it must be port 0) and port 5 is not implemented because that bit being 0 didn't break any physical port. But I'll wait for Walter's report before finalizing this value.

Walter Sonius wrote in #note-13:

The Wake On Lan feature is working perfectly with S3 suspend to RAM both on SeaBIOS and EDK2(mcb 2408) it doesn't need to disable false wake events mentioned earlier for the previous 8300_elite_sff based attempt. Wak On Lan even works now on (warm) boots (system shutdown before) not sure if that is called S5 or some special S4 mode(did not hibernate) but it just consumes around ~0-1 Watt!
Suspend to ram S3, can also be woken from USB keyboard (not mouse) and offcourse Power Button.
The Power LED also blinks in Suspend compared to continues on in normal operating mode.
The only thing blocking S3 suspend to RAM as in instantly waking after sleep is having a PS2 keyboard connected!

Sweet. These can be left for later, and WOL actually works.

All testing has been done with a non updated but active and normal functioning ME/TXE firmware version 8.1.31.1351 (generation 2) from the OEM firmware, see earlier coreboot logs and new log with ME disabled!

Just tried corna me_cleaner with option -S on the current running whole firmware file, reflashed and cold(first) boot seems a little bit slower with first a instant powerdown after poweron but than it continues itself powering on and booting. The operating systems just complaines about "mei_me" issues but that is expected and when waking from suspend the system notices that the mei pci device is not there. I'm aware that also during coreboot build there is an option to do the ME neutering, but since that is not default it may not be needed to test?

There is a config option to hide the ME if it fails. Turn it on if you neuter ME and all should be well.

For ECC RAM I will fill a separate bug if this pro_6300_sff/mt variant is officially merged.

All manuals only mention non-ECC memory, and knowing that with an i3 CPU you won't get ECC, and I have a feeling the ECC lines may not even be wired. I am 95% confident ECC is not supported on this model at all.

Still would recommend a note in the "compaq_pro_6300_series.md" about using flashrom while on coreboot firmware, both needed for -r read and -w write. Will continue that as a seperate issue in the flashrom tracker soon, but coreboot/flashrom new enthusiasts might panic if they cannot reflash again with simple syntax so this is the fix:
flashrom -p internal:boardmismatch=force,ich_spi_mode=hwseq -w test.rom -c "Opaque flash chip"

At this point coreboot is by geeks for geeks, although more layman-friendly documentation is always a good thing.

Thanks Keith, Martin and the Mr Jenkins ;-) for completing this pull request, you earn all the credits to the code and don't need to mention me.

Mr. Jenkins is a QC bot. ;-)

Actions #17

Updated by Keith Hui 10 days ago

One more thing Walter.

In mainboard/hp/snb_ivb_desktops/devicetree.cb, can you try changing

register "gen1_dec" = "0x00fc0601" to
register "gen1_dec" = "0x00fc0a01"

and report back if HWM and fan would work?

It's a hint from https://review.coreboot.org/c/coreboot/+/79745

Actions #18

Updated by Walter Sonius 10 days ago

Paul Menzel wrote in #note-15:

What about 0x1f, which would be 0001 1111 (binary)? This would still hint, that there are five and not five ports. You could test the other iterations, and check if all other three ports keep working.

Also patched 0x3f to 0x1f and all 4 sata ports are still functioning would this be preferred like the WIP 8300_cmt variant, or do all other values need to be tested 0x3 0x7 0x10-0x20?

Keith Hui wrote in #note-17:

One more thing Walter.

In mainboard/hp/snb_ivb_desktops/devicetree.cb, can you try changing

register "gen1_dec" = "0x00fc0601" to
register "gen1_dec" = "0x00fc0a01"

Changed this from "6>a" but didn't notice any difference in "lm-sensors" output nor sensors-detect. Do I have to do some foo modprobe a certain module since nct6775 force_id=0x0b00 or 1c11 won't do anything or patch certain gpio.c as in the 8300 cmt variant? The superiotool from the coreboot/util just fails at the beginning with a false ASPEED detected.

sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +31.0°C  (high = +85.0°C, crit = +105.0°C)
Core 0:        +30.0°C  (high = +85.0°C, crit = +105.0°C)
Core 1:        +21.0°C  (high = +85.0°C, crit = +105.0°C)
Core 2:        +20.0°C  (high = +85.0°C, crit = +105.0°C)
Core 3:        +28.0°C  (high = +85.0°C, crit = +105.0°C)

jc42-i2c-0-1a
Adapter: SMBus I801 adapter at 0400
temp1:        +25.2°C  (low  =  +0.0°C)                  ALARM (HIGH, CRIT)
                       (high =  +0.0°C, hyst =  +0.0°C)
                       (crit =  +0.0°C, hyst =  +0.0°C)

jc42-i2c-0-18
Adapter: SMBus I801 adapter at 0400
temp1:        +26.5°C  (low  =  +0.0°C)                  ALARM (HIGH, CRIT)
                       (high =  +0.0°C, hyst =  +0.0°C)
                       (crit =  +0.0°C, hyst =  +0.0°C)

jc42-i2c-0-1b
Adapter: SMBus I801 adapter at 0400
temp1:        +22.0°C  (low  =  +0.0°C)                  ALARM (HIGH, CRIT)
                       (high =  +0.0°C, hyst =  +0.0°C)
                       (crit =  +0.0°C, hyst =  +0.0°C)

jc42-i2c-0-19
Adapter: SMBus I801 adapter at 0400
temp1:        +24.2°C  (low  =  +0.0°C)                  ALARM (HIGH, CRIT)
                       (high =  +0.0°C, hyst =  +0.0°C)
                       (crit =  +0.0°C, hyst =  +0.0°C)

Perhaps Riku Viitanen could clarify what - Super I/O: fan speeds stay in control means?

There is a config option to hide the ME if it fails. Turn it on if you neuter ME and all should be well.

Can confirm that both the ME neutering option and the hide MEI device on error option selected in make menuconfig also work as expected, ME disabled and no more dmesg errors.

Actions #19

Updated by Keith Hui 9 days ago

Walter Sonius wrote in #note-18:

Paul Menzel wrote in #note-15:

What about 0x1f, which would be 0001 1111 (binary)? This would still hint, that there are five and not five ports. You could test the other iterations, and check if all other three ports keep working.

Also patched 0x3f to 0x1f and all 4 sata ports are still functioning would this be preferred like the WIP 8300_cmt variant, or do all other values need to be tested 0x3 0x7 0x10-0x20?

Only three values remain to be tested: 0x1d, 0x17, 0x1b. Test them in this order. If my understanding is correct, one of them will leave all SATA ports working, which will be the final value we need. My bet is on 0x1d, but I don't know for sure.

Keith Hui wrote in #note-17:

One more thing Walter.

In mainboard/hp/snb_ivb_desktops/devicetree.cb, can you try changing

register "gen1_dec" = "0x00fc0601" to
register "gen1_dec" = "0x00fc0a01"

Changed this from "6>a" but didn't notice any difference in "lm-sensors" output nor sensors-detect. Do I have to do some foo modprobe a certain module since nct6775 force_id=0x0b00 or 1c11 won't do anything or patch certain gpio.c as in the 8300 cmt variant? The superiotool from the coreboot/util just fails at the beginning with a false ASPEED detected.


Perhaps Riku Viitanen could clarify what `- Super I/O: fan speeds stay in control` means? 

These LPC bus port decodes are from your logs. But the output here says the temp sensors are on the SMBus, meaning the ports aren't doing anything.

I have a patch that modifies superiotool to be able to dump NPCD378:
https://review.coreboot.org/c/coreboot/+/82627

Will be interesting to see if it can get some info out of an NPCD379. Just patch, build, and run - under vendor firmware please. You may have to hack it further to force its hands.

Actions #20

Updated by Walter Sonius 9 days ago

Keith Hui wrote in #note-19:

Only three values remain to be tested: 0x1d, 0x17, 0x1b. Test them in this order. If my understanding is correct, one of them will leave all SATA ports working, which will be the final value we need. My bet is on 0x1d, but I don't know for sure.

Will test these remaining three values and report.

Perhaps Riku Viitanen could clarify what - Super I/O: fan speeds stay in control means?

https://review.coreboot.org/c/coreboot/+/26050
I might understand what Riku meant, on the Libreboot website I found notice on the "8200_elite_sff" referring to psu_fan_lvl=3 which can be set by nvram variable. I checked the current hp/snb_ivb_desktops code and all is already there for all other variants as well. However its missing the build option to enable nvram.

sudo nvramtool -a
nvramtool: CMOS option table not found in coreboot table.  Apparently, the coreboot installed on this system was built without selecting CONFIG_USE_OPTION_TABLE.

Where do I enable this during coreboot compile since it isn't mentioned under general "CONFIG_USE_OPTION_TABLE" or is it the new radio button "Option backend to use (Use CMOS for configuration values)"?

These LPC bus port decodes are from your logs. But the output here says the temp sensors are on the SMBus, meaning the ports aren't doing anything.
I have a patch that modifies superiotool to be able to dump NPCD378:
https://review.coreboot.org/c/coreboot/+/82627

Will be interesting to see if it can get some info out of an NPCD379. Just patch, build, and run - under vendor firmware please. You may have to hack it further to force its hands.

Will rerun autoport but with this updated superiotool code on OEM firmware.

Might as well get the autoport data for the "8200_elite_sff" and the "8300_elite_sff" runing OEM firmware this Thursday or Friday night if that might improve the overall code (cannot flash these models since there in use)?

Actions #21

Updated by Keith Hui 9 days ago

Walter Sonius wrote in #note-20:

Perhaps Riku Viitanen could clarify what - Super I/O: fan speeds stay in control means?

https://review.coreboot.org/c/coreboot/+/26050
I might understand what Riku meant, on the Libreboot website I found notice on the "8200_elite_sff" referring to psu_fan_lvl=3 which can be set by nvram variable. I checked the current hp/snb_ivb_desktops code and all is already there for all other variants as well. However its missing the build option to enable nvram.

sudo nvramtool -a
nvramtool: CMOS option table not found in coreboot table.  Apparently, the coreboot installed on this system was built without selecting CONFIG_USE_OPTION_TABLE.

Where do I enable this during coreboot compile since it isn't mentioned under general "CONFIG_USE_OPTION_TABLE" or is it the new radio button "Option backend to use (Use CMOS for configuration values)"?

That is it. You can double check .config afterwards that it is indeed enabled.

These LPC bus port decodes are from your logs. But the output here says the temp sensors are on the SMBus, meaning the ports aren't doing anything.
I have a patch that modifies superiotool to be able to dump NPCD378:
https://review.coreboot.org/c/coreboot/+/82627

Will be interesting to see if it can get some info out of an NPCD379. Just patch, build, and run - under vendor firmware please. You may have to hack it further to force its hands.

Will rerun autoport but with this updated superiotool code on OEM firmware.

A reminder: Run the patched superiotool on its own first and make sure it produces useful outputs.

Might as well get the autoport data for the "8200_elite_sff" and the "8300_elite_sff" runing OEM firmware this Thursday or Friday night if that might improve the overall code

Yes please! Looking forward to your logs.

Another favour to ask: Can you check the markings on your system boards (63, 82 and 83s) if they say "Edison" on the board?

Updated by Walter Sonius 9 days ago · Edited

Only three values remain to be tested: 0x1d, 0x17, 0x1b. Test them in this order.

original board sata-port names and color:
SATA0(blue)SATA1(white)SATA2(white)ESATA(black)
0x6    12
0x10     e
0xf   012
0x3f  012e ok
0x1f  012e ok
0x1d  0 2e
0x17  012e ok
0x1b  01 e

Which one would be preferred 0x1f, 0x17 or 0x3f for all SATA ports? Also tried flashing the "8200_elite_sff_usao" which used 0xf and off-course only the first three ports 0blue1lightblue2white work, last is also called ESATA and black and didn't work with 0xf.

"Option backend to use (Use CMOS for configuration values)"

sudo nvramtool -a
boot_option = Fallback
reboot_counter = 0x0
debug_level = Debug
psu_fan_lvl = 0x3
nmi = Enable
power_on_after_fail = Enable
sata_mode = AHCI
# Bad value -> gfx_uma_size = 0x7   <-----------------------------

sudo nvramtool -Y
entries
0 120 r 0 reserved_memory
384 1 e 4 boot_option
388 4 h 0 reboot_counter
395 4 e 6 debug_level
400 3 h 0 psu_fan_lvl
408 1 e 1 nmi
409 2 e 7 power_on_after_fail
421 1 e 9 sata_mode
432 3 e 11 gfx_uma_size
448 128 r 0 vbnv
896 32 r 0 mrc_scrambler_seed
928 32 r 0 mrc_scrambler_seed_s3
960 16 r 0 mrc_scrambler_seed_chk
984 16 h 0 check_sum

enumerations
1 0 Disable
1 1 Enable
2 0 Enable
2 1 Disable
4 0 Fallback
4 1 Normal
6 0 Emergency
6 1 Alert
6 2 Critical
6 3 Error
6 4 Warning
6 5 Notice
6 6 Info
6 7 Debug
6 8 Spew
7 0 Disable
7 1 Enable
7 2 Keep
9 0 AHCI
9 1 IDE
11 0 32M
11 1 64M
11 2 96M
11 3 128M
11 4 160M
11 5 192M
11 6 224M

checksums
checksum 392 415 984

sudo nvramtool -e psu_fan_lvl
Parameter psu_fan_lvl requires a 3-bit unsigned integer.

sudo nvramtool -w psu_fan_lvl=6

sudo nvramtool -a
boot_option = Fallback
reboot_counter = 0x0
debug_level = Debug
psu_fan_lvl = 0x6
nmi = Enable
power_on_after_fail = Enable
sata_mode = AHCI
# Bad value -> gfx_uma_size = 0x7 <----------------

Not sure how to set change the psu_fan_lvl its value jet and force it probably restart/poweroff?

Can also confirm that power_on_after_fail = Enable is now also working! After all the previous flash attempts and pulling the power-cord it now turns on itself by just reconnecting the power cord, previously I had to also push the power-button again or do a wake_on_lan(also works from cold state)!

What to do about the # Bad value -> gfx_uma_size = 0x7 does it conflict with coreboot already setting a 32MB sized uma size?

A reminder: Run the patched superiotool on its own first and make sure it produces useful outputs.

Only set aspeed.c from 0x00 to 0x99 and infineon.c 0x0b to 0x88 to disable false positives for superiotool, just check the new autoport logs its working!

Another favour to ask: Can you check the markings on your system boards (63, 82 and 83s) if they say "Edison" on the board?

For the "compaq_pro_6300_sff" it is called "EDISON REV A", will look for the "8200_elite_sff_usao" and "8300_elite_sff" whats written on their boards tonight.

Actions #23

Updated by Walter Sonius 8 days ago · Edited

Board names:
8300_elite_sff is indeed "EDISON REV A" and has NPCD379HAKFX <----- In the initial top post it was reported as 378 but its really 379!
8200_elite_sff is "BACH REV.A" and has NPCD378HAKFX

Actions #24

Updated by Keith Hui 7 days ago

Walter Sonius wrote in #note-23:

Board names:
8300_elite_sff is indeed "EDISON REV A" and has NPCD379HAKFX
8200_elite_sff is "BACH REV.A" and has NPCD378HAKFX

Got the logs. Thanks. It also prompts me to revert the LPC decode change - vendor places the I/O ports at 0xa??, coreboot uses 0x6??, but all the configs are otherwise present.

Patch updated with SATA map as 0x17. (pounds gavel :) )
Ports Implemented register of SATA controller reads 0x05. Vendor BIOS apparently check all ports for connected drives and disable ports not occupied. If you feel like it, can you connect something to all SATA ports and see if this value change?

# Bad value -> gfx_uma_size = 0x7 <----------------

It's the cmos.layout. It does not have value 0x7. Of course it would complain.
Try adding that value and test. You can copy from mainboard/asus/p8x7x-series/variants/p8z77-m/cmos.layout, which has all possible values.

If it works, we'll send out a separate patch, since that file is shared by all variants.

Actions #25

Updated by Walter Sonius 7 days ago · Edited

Got the logs. Thanks. It also prompts me to revert the LPC decode change - vendor places the I/O ports at 0xa??, coreboot uses 0x6??, but all the configs are otherwise present.

Only tested this with the 0x..6.. > 0x..a.. edit on the generic "devicetree.db" for all variants, not in the "overridetree.cb" like you did in patch6 does that still count as the same?

Patch updated with SATA map as 0x17. (pounds gavel :) )
Ports Implemented register of SATA controller reads 0x05. Vendor BIOS apparently check all ports for connected drives and disable ports not occupied. If you feel like it, can you connect something to all SATA ports and see if this value change?

New logs with 4x sata devices connected at same time during boot and OS while logging.

To make matters more "interesting" the OEM pro_6300 v308 BIOS also has options "enable e-SATA" and "e-SATA max speed 1.5/3.0", which were disabled for all previous testing until now they are enabled and set to 3.0Gbit and called 5xsata vs 4xsata for previous attempts. The so called black e-SATA port did work in the OEM bios just fine with this setting being disabled all the time. So maybe its related to the e-sata "hotswap feature" or there might be a unpopulated e-SATA header on the motherboard...

The OEM BIOS lists it SATA ports numbers and names as 0blue-1white-2white-4black esata so you were right all time.

It's the cmos.layout. It does not have value 0x7. Of course it would complain.

Still not sure how to alter this, since coreboot make menuconfig shows 32MB maybe that value gets derived from the generic "cmos.default" for the variants? But not sure where it gets value "0x7" from than, if I look a the ASUS example I would think that value 0x0 means 32MB and value 0x7 means 256MB?

PS: Also got confirmation from a local seller that the "Z220 SFF model" also used the "EDISON REV A" board inside, he was however unable to read the superio chip used. Very tempted to flash this Z220 firmware to this pro_6300_sff since I found a 16MB bios file but will do that after you are fine with the current patches.
https://ftp.hp.com/pub/softpaq/sp97001-97500/sp97120.tgz
A other seller confirmed that "Z220 CMT" uses boardname "WULAI REV:1.00" with a SuperIO chip from NUVOTON NPCD379HAKFX, but that board is really different, bigger more slots and ports.

Actions #26

Updated by Walter Sonius 7 days ago

Also did some autoport dumps with "VTd" IOMMU/DMAR enabled in the OEM HP BIOSes of 8200_elite_sff and pro_6300_sff?

Actions #27

Updated by Walter Sonius 6 days ago

More IOMMU groups, populated all PCI(e) devices and SATA for additional autoport logs with VTd for both 8200_elite_sff and pro_6300_sff on OEM firmware. Remember 82574L is PCIe slot and 82579LM is onboard just to be sure.

Not sure if I need to open a separate report for my 8200_sff_usao that used coreboot with SeaBIOS 8200_elite_sff but altering SATA portmap from 0xf, 0x17 also makes 4th black ESATA port working on this model. Also good news about this port that VGA and DP work out of the box with no code changes. Also flashrom behaves same pre/post coreboot flash, beside from the part that the pre coreboot you'll need additional parameters to workaround the limited 2MB protected regions from the OEM firmware.

Actions #28

Updated by Walter Sonius 5 days ago

Coreboot serial log for "hp_8200_elite_sff" showing: [ERROR] early_usb_init: USB00: USBIR_TXRX_GAIN_MOBILE_LOW is an invalid setting for desktop!
Probably expected since you fixed it for this "pro_6300_sff" and made a pr for the "8300_elite_sff", just to confirm this "BACH REV.A" board behaves mostly the same.

Actions #29

Updated by Walter Sonius 1 day ago

Not mentioned earlier because default but all previous display output testing for this 'pro_6300_sff' was done with libgfxinit in case of SeaBIOS it was txt mode and for EDK2 UEFI it was framebuffer.

Actions #30

Updated by Walter Sonius about 21 hours ago

Success HP Z220 SFF 1.87 K51 firmware flashed onto this pro_6300_sff, used the original OEM 3.08 16MB rom and used ifdtool -i to replace the bios and the me region. Now looking for a way to enable ECC...

Actions

Also available in: Atom PDF