With the help from reddit, it works now! The reason is I need to remove the code added by this patch. https://review.coreboot.org/c/coreboot/+/38723/6/src/mainboard/lenovo/t440p/... patch is for dGPU, my model does not have dGPU. I didn't thought it would affect my model, but removed it Win10 works both using SeaBIOS or Tianocore.
There are some issues with Win10: 1, The first thing I notice is there is no sound output. The system speaker device present in vendor BIOS is missing in coreboot: ACPI\PNP0800\4&D8657FD&0
2, Some FN-keys (FN-F4, Fn-F7 to F12) does not work.
3, Card reader's subsystemid is wrong and driver can't be installed. 4, Two more devices which were not present in vendor BIOS but are present in coreboot, and these driver can't not be installed: High Definition Audio Controller PCI\VEN_8086&DEV_8C20&SUBSYS_220E17AA&REV_05\3&B1BFB68... PCI Data Acquisition and Signal Processing Controller PCI\VEN_8086&DEV_0C03&SUBSYS_00000000&REV_06\3&B1BFB68... 5, There is a Diagnostic Policy Service kept running. 2020年3月28日 14:54 来自 coreboot@coreboot.org:
I have almost tried everything these days trying to boot Windows 10 using T440p with coreboot, but still haven't succeed.
I had created my Windows 10 installer usb by writing the en_windows_10_business_editions_version_1909_updated_jan_2020_x64_dvd_e9cb5542.iso to usb drive through Rufus, and checked this usb works on a T420 with coreboot. But this usb does not work on T440p.
I have tried SeaBIOS, Tianocore, and with/without VGA BIOS but still not work. When using SeaBIOS without VGA BIOS, I can see a loading bar at the bottom but then hanging there. When using SeaBIOS with VGA BIOS, the backlight is on but the screen shows nothing.
I tried extract data.vbt from vendor BIOS and replaced the one from source with it, still not work.
I did see one post on reddit mentioned that he had been able to boot Windows 10. > https://www.reddit.com/r/coreboot/comments/enor0h/t440p_tianocore_and_window... I was wondering is my hardware different from others' T440p? Then I tried cherry-pick this patch (git fetch > https://review.coreboot.org/coreboot%3E refs/changes/90/30890/10 && git cherry-pick FETCH_HEAD) and using autoport to generate source of my T440p. Then I compared it with masters' source, but there is not much difference.
I tried changed CPU and RAM but still not work.
Since I make a fresh install of Windows on the T440p, I tried install it on T420 and then change the hard disk to T440p. It still does not work. When I use Tianocore, the circle stopped spin and hangs at "Preparing Automatic Repair": https://imgur.com/nY9wAQR Sometimes it hangs shows a BSOD of "MACHINE CHECK EXCEPTION" But there is no further information > https://imgur.com/HKio1QY%3E (I tried to find if there are mce error logs under linux using rasdaemon but I get nothing > https://wiki.archlinux.org/index.php/Machine-check_exception%3E ) I also checked C:\Windows\minidump to see if there are BSOD dumps but there is none.
I almost out of idea, I will attach all my files, original BIOS (a modded one with ME cleaned, advanced menu unlocked, and whitelist unlocked), auto port generated logs and sources, and the mrc.bin, data.vbt, defconfig, and also my build coreboot.rom. > https://mega.nz/#!TNlCFKjA!rXDhP5K4S8FZpSif8Ntj-NUGKML4kFYtwAG_70XTpsU Could anyone help me with this? Could anyone successfully using T440p to boot Windows share the steps you did it and your config or your coreboot.rom (last 4MB)?
Hi Dalao,
Dalao via coreboot wrote:
With the help from reddit, it works now!
First of all, congratulations on getting it to work! Very well done.
The reason is I need to remove the code added by this patch. https://review.coreboot.org/c/coreboot/+/38723/6/src/mainboard/lenovo/t440p/... This patch is for dGPU, my model does not have dGPU. I didn't thought it would affect my model, but removed it Win10 works both using SeaBIOS or Tianocore.
That is somehow strange. That code should only do anything if the "enable_dual_graphics" NVRAM option is set to true. The default for that option is false. Since removing the code makes a difference for you I guess that somehow your system has this NVRAM option set to true, maybe the defaults were not written successfully? Could you check this?
There are some issues with Win10: 1, The first thing I notice is there is no sound output. The system speaker device present in vendor BIOS is missing in coreboot: ACPI\PNP0800\4&D8657FD&0
You could perhaps compare the ACPI tables between vendor BIOS and coreboot. It's possible that the speaker node was simply forgotten in coreboot. Maybe it just needs to be added to the coreboot ACPI tables.
2, Some FN-keys (FN-F4, Fn-F7 to F12) does not work.
This is also ACPI related, but I'm afraid I don't know more details.
3, Card reader's subsystemid is wrong and driver can't be installed.
This might be easy to fix. What are the required IDs and what are the current ones with coreboot?
4, Two more devices which were not present in vendor BIOS but are present in coreboot, and these driver can't not be installed: High Definition Audio Controller PCI\VEN_8086&DEV_8C20&SUBSYS_220E17AA&REV_05\3&B1BFB68...
This is the built-in sound card, so probably this is the reason you get no sound. I wonder why this PCI device is different with coreboot. Could you compare with vendor BIOS? Maybe subsystem IDs again?
PCI Data Acquisition and Signal Processing Controller PCI\VEN_8086&DEV_0C03&SUBSYS_00000000&REV_06\3&B1BFB68...
No idea what this is.
5, There is a Diagnostic Policy Service kept running.
Sorry, also no idea about that one.
//Peter
That is somehow strange. That code should only do anything if the "enable_dual_graphics" NVRAM option is set to true. The default for that option is false. Since removing the code makes a difference for you I guess that somehow your system has this NVRAM option set to true, maybe the defaults were not written successfully? Could you check this?
I just did a check of sudo nvramtool -a and it shows enable_dual_graphics = Disable.
You could perhaps compare the ACPI tables between vendor BIOS and coreboot. It's possible that the speaker node was simply forgotten in coreboot. Maybe it just needs to be added to the coreboot ACPI tables.
A redditer found a workaround for the speaker issue. By setting the multiple output in the Realtek's control panel, the speaker works. But it's still good if this can be fixed like normally. I have attached my autoport logs and generated source files both using vendor bios and coreboot. Also, the alsa-info.sh logs are included.
This might be easy to fix. What are the required IDs and what are the current ones with coreboot?
The normal id on vendor bios is: PCI\VEN_10EC&DEV_5227&SUBSYS_220E17AA but on coreboot it becomes PCI\VEN_10EC&DEV_5227&SUBSYS_522710EC . It seems wired because the coreboot's devicetree.cb file did have a line subsystemid 0x17aa 0x220e inherit.
PCI Data Acquisition and Signal Processing Controller PCI\VEN_8086&DEV_0C03&SUBSYS_00000000&REV_06\3&B1BFB68...
No idea what this is.
I searched online on this VEN and DEV it seems it's the Intel DPTF stuff, but I don't know is it doing anything useful? I found some overclock fourm suggest to disable it. How to disable it in coreboot?
I also found another issue when i use a engineering sample cpu. When I use libgfxinit, the es cpu can boot in Windows but not in Manjaro. When I use extracted VGA BIOS, the es cpu can boot in Manjaro but not Windows... I know es cpu is known to have bugs, but it can boot in both using vendor bios. I have attached the journalctl logs if someone could help me.
-
Mar 30, 2020, 02:03 by peter@stuge.se:
Hi Dalao,
Dalao via coreboot wrote:
With the help from reddit, it works now!
First of all, congratulations on getting it to work! Very well done.
The reason is I need to remove the code added by this patch. https://review.coreboot.org/c/coreboot/+/38723/6/src/mainboard/lenovo/t440p/...
This patch is for dGPU, my model does not have dGPU.
I didn't thought it would affect my model, but removed it Win10 works both using SeaBIOS or Tianocore.
That is somehow strange. That code should only do anything if the "enable_dual_graphics" NVRAM option is set to true. The default for that option is false. Since removing the code makes a difference for you I guess that somehow your system has this NVRAM option set to true, maybe the defaults were not written successfully? Could you check this?
There are some issues with Win10: 1, The first thing I notice is there is no sound output. The system speaker device present in vendor BIOS is missing in coreboot: ACPI\PNP0800\4&D8657FD&0
You could perhaps compare the ACPI tables between vendor BIOS and coreboot. It's possible that the speaker node was simply forgotten in coreboot. Maybe it just needs to be added to the coreboot ACPI tables.
2, Some FN-keys (FN-F4, Fn-F7 to F12) does not work.
This is also ACPI related, but I'm afraid I don't know more details.
3, Card reader's subsystemid is wrong and driver can't be installed.
This might be easy to fix. What are the required IDs and what are the current ones with coreboot?
4, Two more devices which were not present in vendor BIOS but are present in coreboot, and these driver can't not be installed: High Definition Audio Controller PCI\VEN_8086&DEV_8C20&SUBSYS_220E17AA&REV_05\3&B1BFB68...
This is the built-in sound card, so probably this is the reason you get no sound. I wonder why this PCI device is different with coreboot. Could you compare with vendor BIOS? Maybe subsystem IDs again?
PCI Data Acquisition and Signal Processing Controller PCI\VEN_8086&DEV_0C03&SUBSYS_00000000&REV_06\3&B1BFB68...
No idea what this is.
5, There is a Diagnostic Policy Service kept running.
Sorry, also no idea about that one.
//Peter _______________________________________________ coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org
Hi Dalao,
On 30.03.20 03:08, Dalao via coreboot wrote:
This might be easy to fix. What are the required IDs and what are the current ones with coreboot?
The normal id on vendor bios is: PCI\VEN_10EC&DEV_5227&SUBSYS_220E17AA but on coreboot it becomes PCI\VEN_10EC&DEV_5227&SUBSYS_522710EC . It seems wired because the coreboot's devicetree.cb file did have a line subsystemid 0x17aa 0x220e inherit.
this looks much like the ID of the card reader, and it didn't get the subsystem ID because it's not mentioned in the devicetree. Only devices that are explicitly mentioned will be considered "onboard" and inherit the IDs. You can add a `device pci 0.0 on end` below the `1c.0` bridge.
PCI Data Acquisition and Signal Processing Controller PCI\VEN_8086&DEV_0C03&SUBSYS_00000000&REV_06\3&B1BFB68...
No idea what this is.
I searched online on this VEN and DEV it seems it's the Intel DPTF stuff, but I don't know is it doing anything useful? I found some overclock fourm suggest to disable it. How to disable it in coreboot?
According to your lspci it's 00:04.0, you can just disable that in the devicetree as coreboot knows how to handle it. It probably doesn't show up with every processor SKU. And Intel didn't really document this device. So they probably were just experimenting for future platforms and it should always be disabled.
I also found another issue when i use a engineering sample cpu. When I use libgfxinit, the es cpu can boot in Windows but not in Manjaro. When I use extracted VGA BIOS, the es cpu can boot in Manjaro but not Windows... I know es cpu is known to have bugs, but it can boot in both using vendor bios. I have attached the journalctl logs if someone could help me.
It stops roughly at the point where it loaded the graphics driver `i915` in the `normal-cpu` log. You can try again with `drm.debug=0xe` in the kernel command line. It might give more output before it hangs.
Nico
this looks much like the ID of the card reader, and it didn't get the subsystem ID because it's not mentioned in the devicetree. Only devices that are explicitly mentioned will be considered "onboard" and inherit the IDs. You can add a `device pci 0.0 on end` below the `1c.0` bridge.
Thank you. Is it should be added like this? But I tried it doesn't work it's still that subsystemid. device pci 1c.0 on # PCIe Port #1, Realtek Card Reader device pci 0.0 on end end
According to your lspci it's 00:04.0, you can just disable that in the devicetree as coreboot knows how to handle it. It probably doesn't show up with every processor SKU. And Intel didn't really document this device. So they probably were just experimenting for future platforms and it should always be disabled.
Disabling this works and the device no longer appear under Windows.
It stops roughly at the point where it loaded the graphics driver `i915` in the `normal-cpu` log. You can try again with `drm.debug=0xe` in the kernel command line. It might give more output before it hangs.
I guess it should be something related with graphics because the screen did not light up when using libgfxinit. I added the `drm.debug=0xe` in grub.cfg, but it appears it hangs before the log can show the drm debug stuff. I have attached these logs. Is there any way to get more logs before this? Also, is it possible to use grub to chainload two seabios, and let the first one use libgfxinit to boot Windows and the second one use vgabios to boot Linux?