terminatorul / NvStrapsReBar

Resizable BAR for Turring GTX 1600 / RTX 2000 GPUs
MIT License
556 stars 12 forks source link

UEFI DXE driver status: Bridge Found (0x000000000000003C) #79

Open Uranium2010 opened 7 months ago

Uranium2010 commented 7 months ago

System

Description

Hello, I added the module to the BIOS, I tried to patch but apparently no need. I activated "4GB MMIO BIOS assignment" using modGRUBShell.efi, the CMS is deactivated. When testing different combinations in NvStrapsReBar, "Current BAR Size" remains at 256 and UEFI DXE driver status: Bridge Found (0x000000000000003C).

DXE Driver configuration:

        isDirty:           0
        OptionFlags:       0x0012
                               - nGlobalEnable:      2
                               - skipS3Resume:       0
                               - overrideBarSize:    0
                               - hasSetupVarCRC:     1
                               - disableSetupVarCRC: 0
        SetupVarCRC:       0xA152'B57D'B0DD'41ED
        nPciBarSize:       12
        nGPUSelectorCount: 0
        nGPUConfigCount:   1
                GPUConfig1:    deviceID:        1F91
                GPUConfig1:    subsysVendorID:  1043
                GPUConfig1:    subsysDeviceID:  1A81
                GPUConfig1:    bus:             01
                GPUConfig1:    device:          00
                GPUConfig1:    function:        0
                GPUConfig1:    BAR0 base:       0x7000'0000
                GPUConfig1:    BAR0 top:        0x70FF'FFFF

        nBridgeCount:      1
                BridgeConfig1: vendorID:        8086
                BridgeConfig1: deviceID:        1901
                BridgeConfig1: bus:             00
                BridgeConfig1: device:          01
                BridgeConfig1: function:        0
                BridgeConfig1: secondary bus:   01

Sans titre

pexcfequinnet commented 7 months ago

Have you tried setting the BAR size using option (P)?

Uranium2010 commented 7 months ago

Have you tried setting the BAR size using option (P)?

Yes, I tested all kinds of combinations, I always have the same status for the driver DXE.

The status is as it should be when the driver is not configured or there is a change in the BIOS, but as soon as I configure it and restart the computer, I have the status "Bridge Found".

I looked, we have the same chipset but BIOS are different. I will test old versions.

terminatorul commented 7 months ago

"Bridge Found" means the GPU is NOT found by the DXE driver, despite the Windows executable can find it in Device Manager... :(

This looks like an issue in the latest release v0.4. Two other users reported a similar issue https://github.com/terminatorul/NvStrapsReBar/issues/77, and I do not know where the problem is.

Can you try again with v0.3 ?

With v0.3, you have to remember the DXE driver depends on the settings in UEFI setup, and should be disabled before changing UEFI settings, and re-enabled after.

Uranium2010 commented 7 months ago

Can you try again with v0.3 ?

Same with v0.3 and v0.4-rc1.

Tested 3 others Asus vBIOS : black screen at Windows welcome screen. Tested nVidia generic vBIOS : "Bridge Found"

If i override Target BAR size for the GPU, i have Status 1E or 14. rebar

gpu

Uranium2010 commented 7 months ago

With BIOS 211, 305 and 308 :

bar305

Edit : if i add ReBarUEFI and NvStrapsReBar with BIOS 312, i can have Status : Configured.

GPU-Z Resizable BAR enabled in BIOS : No

DXE Driver configuration:

        isDirty:           0
        OptionFlags:       0x0002
                               - nGlobalEnable:      2
                               - skipS3Resume:       0
                               - overrideBarSize:    0
                               - hasSetupVarCRC:     0
                               - disableSetupVarCRC: 0
        SetupVarCRC:       0x0000'0000'0000'0000
        nPciBarSize:       12
        nGPUSelectorCount: 0
        nGPUConfigCount:   1
                GPUConfig1:    deviceID:        1F91
                GPUConfig1:    subsysVendorID:  1043
                GPUConfig1:    subsysDeviceID:  1A81
                GPUConfig1:    bus:             01
                GPUConfig1:    device:          00
                GPUConfig1:    function:        0
                GPUConfig1:    BAR0 base:       0x8000'0000
                GPUConfig1:    BAR0 top:        0x80FF'FFFF

        nBridgeCount:      1
                BridgeConfig1: vendorID:        8086
                BridgeConfig1: deviceID:        1901
                BridgeConfig1: bus:             00
                BridgeConfig1: device:          01
                BridgeConfig1: function:        0
                BridgeConfig1: secondary bus:   01

SetupVarCRC: 0x0000'0000'0000'0000

adrianconstantin-leroy commented 7 months ago

Sorry I cannot tell what the issue is.

It looks like the GPU device is not available during early boot (or does not have the PCI IDs configured), and is only enabled by motherboard firmware or vBIOS later in the boot process. This is just a guess 'though, from the behavior I can see. I do not actually know what the firmware for that laptop does... might also be a small hardware problem with the GPU board, that the Windows driver knows how to work around