Lenovo C930-13IKB

I’ve created a .bin file of my C930 BIOS with a ch341a and am interested in gaining access to the Advanced Menu.

I’m also curious about your thoughts on the following:
Lenovo has recently released a test BIOS on a Linux forum for the C940 to address the fact that some audio hardware was being initialized by Windows drivers rather than by the BIOS, meaning that for Linux and Hackintosh users, some devices were not available. The C930 and C940 have similar audio issues and similar audio hardware. Would obtaining two .bin files, one of the current C940 BIOS as is and another of the test BIOS that has shown to be working be useful in solving the same problem on a C930 or will we have to push for Lenovo to release a similar BIOS or test BIOS for the C930? The test BIOS was exclusively to address audio issues so it should be identical to the currently available version other than those specific changes.

@Twolips - Upload your CH341A dump and I’ll see if I can unlock it for you. What is your BIOS chip ID? Read it off the chip, don’t rely on software to tell you. And, what software/version did you make this dump with?
I ask all this because not all software/versions can properly read/write to each chip, so you need to be sure you use something that is known compatible for your chip ID for both read and write, otherwise dump may be corrupted or writes may fail.

Also, please link me to the stock BIOS download page. And, if you want, we can try to do this without flash programmer, it may not be needed?

Also, please download ME System Tools V11 from this thread in section C.2 - Intel Management Engine: Drivers, Firmware & System Tools
And in the MEINFO/Win32 folder, run this command >> MEINFOWin.exe -verbose
Show me image of the bottom of the report.

As for the C940 and the audio issue, you could link me to the stock and fix BIOS and I can compare, but it may be much more than a single thing they changed, and it may be more than just a BIOS setting changed too.
So, it really may not be possible to make the same changes for your model and you should start asking them for fix now. Just because they say this is only difference, does not mean 10 other things were not also changed in the fix BIOS.
Change logs are often VERY short, and list 2-3 things out of 50 changed in any one given BIOS update.

I have included all of the requested info within the zip file here:
sendspace.com/file/ynzufq

That includes an extracted .fd and original file for the C940 current BIOS version in one folder, also found here:
download.lenovo.com/consumer/mobiles/aucn57ww.exe
A folder with the updates provided by Lenovo which are not in a typical Bios format, also found here (this is a Google drive link provided by a Lenovo tech rep):
drive.google.com/file/d/1Z5K3ARVYSQLSenD6EBElf6foEtLQQGoM/view?usp=sharing
The link to my current original BIOS on the Lenovo website:
download.lenovo.com/consumer/mobiles/8gcn35ww.exe

Inside the folder is also a .bin file of my own BIOS dump I made with a ch341a using Ubuntu and the latest version of Flashrom. I have had no issues with opening that file with UEFITool. I have included photos of the entire MEinfoWin report in the zip files and the BIOS is W25Q64JV.

One feature that exists in other Lenovo laptops such as ThinkPad X1 Carbon Gen 6 is a BIOS option Lenovo added upon request to choose between “Windows” or “Linux” mode in BIOS. This feature enables S3 sleep and disables the S0 sleep state Windows is using (which was causing overheating for Windows users as well). S3 is currently not available in MacOS or Linux on this laptop and I’m wondering if there is a similar option hidden in BIOS. The other main issue is that the microphone is not enabled in either MacOS or Linux because it is initialized by Windows drivers. The C940 BIOS addresses that and also some of the speakers in Linux not initializing, but as of a reply this morning to the thread they say that they will probably not release an official fix as it impacts Windows audio and power management. At minimum, if there is any way to enable the microphone on the C930 that would be a huge help. I’m wondering if it’s possible to use Setup_var to enable the audio in Grub when booting Linux and disable when booting Windows. Disabling CFG-Lock, accessing over-clocking and under-volting options are other useful features, but I am curious overall what hidden options may be available in advanced BIOS.
Anyways, I’m pretty new to all of this and hopefully I didn’t leave anything out.[[File:Screenshot (5).png|none|auto]]

Another reply from Lenovo this morning on the same thread says that the C940 fix can’t be applied to the C930 so that probably is not worth pursuing. If there were a way to initialize the microphone in BIOS, they will probably need to figure that out and it looks like they won’t. So mainly wondering if there is a hidden option to switch to S3 sleep rather than S0i3.

I found this:

0xAF89D Form: HD Audio DSP Features Configuration, FormId: 0x1040 {01 86 40 10 05 05}
0xAF8A3 Subtitle: Statement.Prompt: HD Audio Subsystem Features Configuration (ACPI), Flags: 0x0 {02 87 06 05 00 00 00}
0xAF8AA End {29 02}
0xAF8AC Subtitle: Statement.Prompt: , Flags: 0x0 {02 87 02 00 00 00 00}
0xAF8B3 End {29 02}
0xAF8B5 Gray Out If {19 82}
0xAF8B7 QuestionId: 0x768 equals value 0x0 {12 86 68 07 00 00}
0xAF8BD Not {17 02}
0xAF8BF End {29 02}
0xAF8C1 Text: Statement.Prompt: Audio DSP NHLT Endpoints Configuration:, TextTwo: {03 08 39 05 39 05 00 00}
0xAF8C9 One Of: DMIC, VarStoreInfo (VarOffset/VarName): 0x4B0, VarStore: 0x5, QuestionId: 0x774, Size: 1, Min: 0x0, Max 0x3, Step: 0x0 {05 91 3A 05 3B 05 74 07 05 00 B0 04 10 10 00 03 00}
0xAF8DA Default: DefaultId: 0x0, Value (Other) {5B 85 00 00 08}
0xAF8DF Value {5A 82}
0xAF8E1 QuestionId: 0xB3C equals value in list (0x42, 0x73, 0x74) {14 8C 3C 0B 03 00 42 00 73 00 74 00}
0xAF8ED QuestionId: 0xB3C equals value in list (0x20) {14 08 3C 0B 01 00 20 00}
0xAF8F5 64 Bit Unsigned Int: 0x2 {45 0A 02 00 00 00 00 00 00 00}
0xAF8FF 64 Bit Unsigned Int: 0x1 {45 0A 01 00 00 00 00 00 00 00}
0xAF909 Conditional {50 02}
0xAF90B 64 Bit Unsigned Int: 0x0 {45 0A 00 00 00 00 00 00 00 00}
0xAF915 Conditional {50 02}
0xAF917 End {29 02}
0xAF919 End {29 02}
0xAF91B End {29 02}
0xAF91D One Of Option: 4 Mic Array, Value (8 bit): 0x2 {09 07 3E 05 00 00 02}
0xAF924 One Of Option: 2 Mic Array, Value (8 bit): 0x1 (default) {09 07 3D 05 30 00 01}
0xAF92B One Of Option: 1 Mic Array, Value (8 bit): 0x3 {09 07 3C 05 00 00 03}
0xAF932 One Of Option: Disabled, Value (8 bit): 0x0 {09 07 04 00 00 00 00}
0xAF939 End One Of {29 02}

In 0xAF924 the 2 mic array seems to be the default (I’m pretty sure this laptop has only a 2 mic array). How can I tell what the current setting is?
Presumably if that is the default and that setting is hidden in BIOS, then the current setting would be for the 2 Mic Array and BIOS won’t be the solution to this problem?

On the off chance you did look at the link above I noticed that the Lenovo team put the actual C940 BIOS test update in the wrong folder (the kernel folder) and the BIOS folder I linked to was just their flash tool. Here is the actual link, but like I said it may not contain helpful info according to Lenovo (or they’re just not willing to continue to invest time):
drive.google.com/file/d/1HHY928tMwwndp0ak2MdbsOlxuK0OJMWA/view?usp=sharing

Regarding the C940, users with that laptop did report that even before installing the kernel provided by Lenovo all 5 speakers and the mic were now working with the test BIOS, even before the kernel update improved the sound quality.