[Help] Enabling Above 4G Decode on Lenovo P330

Hey all, so I have stumbled upon nearly twenty Lenovo P330s to save from the scrap pile, and while they have a lot of potential, the GPU space is…limited. However, fear not, the RTX 3060M Frankenstein cards fit neatly! Yay! Or not…

To use these cards (and potentially Arc cards), I at least need Above 4GB Decode enabled, and while I followed the ReBarUEFI guide and got some inspiration from this thread, it appears none of my attempts have gone anywhere.

Using UEFITool on either of the latest two BIOSes provided by Lenovo, I can find the ‘4G Decod’ string in the BIOS


and can even view the heading in the hex viewer, but when I go to extract the body, it seems there is a bunch missing

Program version: 1.5.1, Extraction mode: UEFI
FormSet Guid: ACA9F304-21E2-4852-9875-7FF4881D67A5, Title: “PCI Subsystem Settings”, Help: “”
Guid Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE, ExtendedOpCode: Class, Class: 0x88
Guid Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE, ExtendedOpCode: SubClass, SubClass: 0x0
DefaultStore DefaultId: 0x0, Name: “”
DefaultStore DefaultId: 0x1, Name: “”
VarStore Guid: ACA9F304-21E2-4852-9875-7FF4881D67A5, VarStoreId: 0xCCCC, Size: 0x7, Name: “PCI_COMMON”
Form FormId: 0x1, Title: “PCI Subsystem Settings”
Subtitle Prompt: “00.00”, Help: “”, Flags: 0x0
End
Subtitle Prompt: “”, Help: “”, Flags: 0x0
End
Subtitle Prompt: “PCI Settings Common for all Devices:”, Help: “”, Flags: 0x0
End
CheckBox Prompt: “BME DMA Mitigation”, Help: "Re-enable Bus Master Attribute disabled during Pci enumeration for PCI Bridges after SMM Locked ", QuestionFlags: 0x10, QuestionId: 0x702A, VarStoreId: 0xCCCC, VarOffset: 0x5, Flags: 0x0, Default: Disabled, MfgDefault: Disabled
Default DefaultId: 0x0 Value: 0
End
CheckBox Prompt: “Hot-Plug Support”, Help: “Globally Enables or Disables Hot-Plug support for the entire System. If System has Hot-Plug capable Slots and this option set to Enabled, it provides a Setup screen for selecting PCI resource padding for Hot-Plug.”, QuestionFlags: 0x10, QuestionId: 0x7008, VarStoreId: 0xCCCC, VarOffset: 0x2, Flags: 0x0, Default: Disabled, MfgDefault: Disabled
Default DefaultId: 0x0 Value: 1
End
Subtitle Prompt: “”, Help: “”, Flags: 0x0
End
Subtitle Prompt: “Change Settings of the Following PCI Devices:”, Help: “”, Flags: 0x0
End
Guid Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE, ExtendedOpCode: Label, LabelNumber: 0x65
Guid Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE, ExtendedOpCode: Label, LabelNumber: 0x66
Subtitle Prompt: “”, Help: “”, Flags: 0x0
End
Subtitle Prompt: “WARNING: Changing PCI Device(s) settings may”, Help: “”, Flags: 0x0
End
Subtitle Prompt: “have unwanted side effects! System may HANG!”, Help: “”, Flags: 0x0
End
Subtitle Prompt: “PROCEED WITH CAUTION.”, Help: “”, Flags: 0x0
End
End
Form FormId: 0x2, Title: “PCI Device Settings”
Subtitle Prompt: “n/a”, Help: “”, Flags: 0x0
End
Subtitle Prompt: “n/a”, Help: “”, Flags: 0x0
End
Subtitle Prompt: “n/a”, Help: “”, Flags: 0x0
End
Subtitle Prompt: “”, Help: “”, Flags: 0x0
End
Guid Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE, ExtendedOpCode: Label, LabelNumber: 0xC9
Guid Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE, ExtendedOpCode: Label, LabelNumber: 0xCA
End
Form FormId: 0x3, Title: “PCI Express GEN 1 Settings”
Subtitle Prompt: “PCI Express GEN 1 Settings”, Help: “”, Flags: 0x0
End
Subtitle Prompt: “”, Help: “”, Flags: 0x0
End
Guid Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE, ExtendedOpCode: Label, LabelNumber: 0x12D
Guid Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE, ExtendedOpCode: Label, LabelNumber: 0x12E
End
Form FormId: 0x4, Title: “PCI Express GEN 2 Settings”
Subtitle Prompt: “PCI Express GEN 2 Settings”, Help: “”, Flags: 0x0
End
Subtitle Prompt: “”, Help: “”, Flags: 0x0
End
Guid Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE, ExtendedOpCode: Label, LabelNumber: 0x191
Guid Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE, ExtendedOpCode: Label, LabelNumber: 0x192
End
Form FormId: 0x5, Title: “PCI Hot-Plug Settings”
Subtitle Prompt: “PCI Hot-Plug Settings”, Help: “”, Flags: 0x0
End
Subtitle Prompt: “”, Help: “”, Flags: 0x0
End
Guid Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE, ExtendedOpCode: Label, LabelNumber: 0x1F5
Guid Guid: 0F0B1735-87A0-4193-B266-538C38AF48CE, ExtendedOpCode: Label, LabelNumber: 0x1F6
End
End’

Can someone tell me where I’m going wrong, and how to proceed? I’ve already tried using the Lenovo-provided SRWIN tool, which seems to recognize the input for Above 4GB and will accept the ‘enable’ flag fine, but then disables it at restart.

I’d REALLY like to be able to get these beauties into the hands of gamers without having to resort to scrounging up ITX 1660s and 2060s one at a time. I have a CH341a, and can use that if I need to forcibly swap a BIOS, but I’d like to at least try the setup_var method…and even if that fails, I still need to be able to modify the relevant BIOS subsection which I can’t seem to do.

here you can try this tool AMIBCP 4/5 and locate the “PCI Subsystem Settings”.

All I get with AMIBCP using either BIOS .ROM file

AMIBCP 5.x for Aptio V bioses, not 4.x and UEFI Editor

Versions around of the AMBCP tool are very old “leaked” builds that can break modern bios structure files, it is advisable to use only as viewer.

Using 5.x I get an error of “The input image is not Aptio V”., and using UEFI Editor presents me with only the same options as before – specifically BMA DME Mitigation and Hot-Plug Support.

The BIOS file clearly contains at least text about Above 4G Decoding, because I can search it and see it in the hex view of the returned section but literally no tool I’ve tried has given me any output for where that variable exists…and no extraction even shows it existing, despite it being right on my screen in UEFI Tool. Is Lenovo using some stupid proprietary file structure that keeps it inaccessible?

image
Looks like AMI custom Lenovo image… that’s the issue with new bios releases and modern Aptio V and proprietary OEM files.

And i pointed/linked UEFI editor…NOT UEFI tool.

I know, and I tried using it, but unless I followed the walkthrough wrong it seems I have to use UEFI Tool extracts as input for UEFI Editor, no? And when using those extracts I’m stuck in the same spot I started, because the extracts for whatever reason don’t contain the strings I need even though they’re found in a search. Ugh, OEM is frustrating. At least Dell just makes 4G Decode a BIOS option for every WS like Haswell and later.

Looks like AMI custom Lenovo image… that’s the issue with new bios releases and modern Aptio V and proprietary OEM files.

This seems like we’re getting closer to a conclusion that this maybe just isn’t possible… :cry:

It’s been over a year since I flashed my P310, so my memory is super spotty on this. I really should documented what I did better, but looking through my downloads from around then it looks like I either used UEFITool_0.21.5 or UEFITool_0.28.0 - I think the NE one would break stuff no matter what.

Followed this guide

And

I doubt this will be much help, but I can try to answer some of your questions. I remember it being a HUGE pain in the butt, but I think my heart burn was from the P310 simply not having it in the BIOS, I had to splice a P320 BIOS into it.

I’d imagine starting with a P330 is already easier.

Hi @WarlockSyno ,

I remember your quest to get it working. There was even a little smoke from the programmer :robot:

The Discord conversation still exists which might hold some nuggets of info.

Hey y’all, sorry for not checking back in.

So I’ve noticed there’s a service jumper on the board, and I actually have the jumper…but no position of that seems to make adjusting the 4G Decode BIOS flag work using the SRWIN tool from Lenovo. So it seems that’s a dead end.

I’ve seen elsewhere on forums – I think one here, even – some discussion hinting that around Coffee Lake, Lenovo started adopting some stupid nonstandard BIOS structure and that may be part of the headache. Hopefully dumping it from the BIOS EEPROM remedies that, but I’m not too optimistic and have mostly resigned myself to recycling these into low end, daily use PCs rather than anything with real gaming promise.