Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

L430 Compatibility #87

Open
FouzR opened this issue Nov 22, 2021 · 50 comments
Open

L430 Compatibility #87

FouzR opened this issue Nov 22, 2021 · 50 comments
Labels
enhancement New feature or request

Comments

@FouzR
Copy link

FouzR commented Nov 22, 2021

I tried the BIOS USB, it showed that it's compatible but unsupported
With the below info
Machine:L430
BIOS:G3ETB6WW(2.76)
Version:
Flashsize:

Would I be able to use the whitelist scripts from here: #27

@digmorepaka
Copy link
Collaborator

Currently we don't have patches for L430/L530. Testing is needed.

@FouzR
Copy link
Author

FouzR commented Nov 24, 2021

I see
I do have one question, my L430 has 2 miniPCIe slots, so would the whitelist be active on the secondary slot?

@valpackett
Copy link

valpackett commented Nov 26, 2021

I currently have an L430 and a chip clip, I can test things.

So far I've tried me_cleaner -S, now it doesn't fully boot (hangs on _ when entering setup or continuing boot after the RTC error) :D maybe this is that ME delay everyone's talking about and I wasn't patient enough. UPD yeah stock fw doesn't like the disable flag set by me_cleaner, a normal clean without the flag works fine.

Also maybe flashrom doesn't seem to handle the IFD well on this? At least dumping --ifd -i bios or --ifd -i me or whatever also results in an 8MiB file (!) despite the expected "Using region" message. (Or is that the expected padding thing?? That the 1vyrain script handles on the write side)

ifdtool -d of the dumped stock rom
File l430.stock.rom is 8388608 bytes
ICH Revision: 6 series Cougar Point
FLMAP0:    0x02040003
  NR:      2
  FRBA:    0x40
  NC:      1
  FCBA:    0x30
FLMAP1:    0x12100206
  ISL:     0x12
  FPSBA:   0x100
  NM:      2
  FMBA:    0x60
FLMAP2:    0x00210120
  PSL:     0x2101
  FMSBA:   0x200
FLUMAP1:   0x00000cdf
  Intel ME VSCC Table Length (VTL):        12
  Intel ME VSCC Table Base Address (VTBA): 0x000df0

ME VSCC table:
  JID0:  0x001740ef
    SPI Component Vendor ID:            0xef
    SPI Component Device ID 0:          0x40
    SPI Component Device ID 1:          0x17
  VSCC0: 0x20052005
    Lower Erase Opcode:                 0x20
    Lower Write Enable on Write Status: 0x50
    Lower Write Status Required:        No
    Lower Write Granularity:            64 bytes
    Lower Block / Sector Erase Size:    4KB
    Upper Erase Opcode:                 0x20
    Upper Write Enable on Write Status: 0x50
    Upper Write Status Required:        No
    Upper Write Granularity:            64 bytes
    Upper Block / Sector Erase Size:    4KB
  JID1:  0x0017ba20
    SPI Component Vendor ID:            0x20
    SPI Component Device ID 0:          0xba
    SPI Component Device ID 1:          0x17
  VSCC1: 0x20052005
    Lower Erase Opcode:                 0x20
    Lower Write Enable on Write Status: 0x50
    Lower Write Status Required:        No
    Lower Write Granularity:            64 bytes
    Lower Block / Sector Erase Size:    4KB
    Upper Erase Opcode:                 0x20
    Upper Write Enable on Write Status: 0x50
    Upper Write Status Required:        No
    Upper Write Granularity:            64 bytes
    Upper Block / Sector Erase Size:    4KB
  JID2:  0x001720c2
    SPI Component Vendor ID:            0xc2
    SPI Component Device ID 0:          0x20
    SPI Component Device ID 1:          0x17
  VSCC2: 0x20052005
    Lower Erase Opcode:                 0x20
    Lower Write Enable on Write Status: 0x50
    Lower Write Status Required:        No
    Lower Write Granularity:            64 bytes
    Lower Block / Sector Erase Size:    4KB
    Upper Erase Opcode:                 0x20
    Upper Write Enable on Write Status: 0x50
    Upper Write Status Required:        No
    Upper Write Granularity:            64 bytes
    Upper Block / Sector Erase Size:    4KB
  JID3:  0x0017701c
    SPI Component Vendor ID:            0x1c
    SPI Component Device ID 0:          0x70
    SPI Component Device ID 1:          0x17
  VSCC3: 0x20052005
    Lower Erase Opcode:                 0x20
    Lower Write Enable on Write Status: 0x50
    Lower Write Status Required:        No
    Lower Write Granularity:            64 bytes
    Lower Block / Sector Erase Size:    4KB
    Upper Erase Opcode:                 0x20
    Upper Write Enable on Write Status: 0x50
    Upper Write Status Required:        No
    Upper Write Granularity:            64 bytes
    Upper Block / Sector Erase Size:    4KB
  JID4:  0x001740ef
    SPI Component Vendor ID:            0xef
    SPI Component Device ID 0:          0x40
    SPI Component Device ID 1:          0x17
  VSCC4: 0x20052005
    Lower Erase Opcode:                 0x20
    Lower Write Enable on Write Status: 0x50
    Lower Write Status Required:        No
    Lower Write Granularity:            64 bytes
    Lower Block / Sector Erase Size:    4KB
    Upper Erase Opcode:                 0x20
    Upper Write Enable on Write Status: 0x50
    Upper Write Status Required:        No
    Upper Write Granularity:            64 bytes
    Upper Block / Sector Erase Size:    4KB
  JID5:  0x0018ba20
    SPI Component Vendor ID:            0x20
    SPI Component Device ID 0:          0xba
    SPI Component Device ID 1:          0x18
  VSCC5: 0x20052005
    Lower Erase Opcode:                 0x20
    Lower Write Enable on Write Status: 0x50
    Lower Write Status Required:        No
    Lower Write Granularity:            64 bytes
    Lower Block / Sector Erase Size:    4KB
    Upper Erase Opcode:                 0x20
    Upper Write Enable on Write Status: 0x50
    Upper Write Status Required:        No
    Upper Write Granularity:            64 bytes
    Upper Block / Sector Erase Size:    4KB

OEM Section:
00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

Found Region Section
FLREG0:    0x00000000
  Flash Region 0 (Flash Descriptor): 00000000 - 00000fff
FLREG1:    0x07ff0400
  Flash Region 1 (BIOS): 00400000 - 007fffff
FLREG2:    0x03ff0001
  Flash Region 2 (Intel ME): 00001000 - 003fffff
FLREG3:    0x00001fff
  Flash Region 3 (GbE): 00fff000 - 00000fff (unused)
FLREG4:    0x00001fff
  Flash Region 4 (Platform Data): 00fff000 - 00000fff (unused)

Found Component Section
FLCOMP     0x09300024
  Dual Output Fast Read Support:       not supported
  Read ID/Read Status Clock Frequency: 33MHz
  Write/Erase Clock Frequency:         33MHz
  Fast Read Clock Frequency:           33MHz
  Fast Read Support:                   supported
  Read Clock Frequency:                20MHz
  Component 2 Density:                 8MB
  Component 1 Density:                 8MB
FLILL      0x00000000
  Invalid Instruction 3: 0x00
  Invalid Instruction 2: 0x00
  Invalid Instruction 1: 0x00
  Invalid Instruction 0: 0x00
FLPB       0x00000000
  Flash Partition Boundary Address: 0x000000

Found PCH Strap Section
PCHSTRP0  : 0x0820d682
PCHSTRP1  : 0x0000010f
PCHSTRP2  : 0x00560000
PCHSTRP3  : 0x00000000
PCHSTRP4  : 0x00c8e000
PCHSTRP5  : 0x00000000
PCHSTRP6  : 0x00000000
PCHSTRP7  : 0x00000000
PCHSTRP8  : 0x00000000
PCHSTRP9  : 0x30000580
PCHSTRP10 : 0x00410044
PCHSTRP11 : 0x95000097
PCHSTRP12 : 0x00000000
PCHSTRP13 : 0x00000000
PCHSTRP14 : 0x00000000
PCHSTRP15 : 0x0000033e
PCHSTRP16 : 0x00000000
PCHSTRP17 : 0x00000002
PCHSTRP18 : 0xffffffff
PCHSTRP19 : 0xffffffff
PCHSTRP20 : 0xffffffff
PCHSTRP21 : 0xffffffff
PCHSTRP22 : 0xffffffff
PCHSTRP23 : 0xffffffff
PCHSTRP24 : 0xffffffff
PCHSTRP25 : 0xffffffff
PCHSTRP26 : 0xffffffff
PCHSTRP27 : 0xffffffff
PCHSTRP28 : 0xffffffff
PCHSTRP29 : 0xffffffff
PCHSTRP30 : 0xffffffff
PCHSTRP31 : 0xffffffff
PCHSTRP32 : 0xffffffff
PCHSTRP33 : 0xffffffff
PCHSTRP34 : 0xffffffff
PCHSTRP35 : 0xffffffff
PCHSTRP36 : 0xffffffff
PCHSTRP37 : 0xffffffff
PCHSTRP38 : 0xffffffff
PCHSTRP39 : 0xffffffff
PCHSTRP40 : 0xffffffff
PCHSTRP41 : 0xffffffff
PCHSTRP42 : 0xffffffff
PCHSTRP43 : 0xffffffff
PCHSTRP44 : 0xffffffff
PCHSTRP45 : 0xffffffff
PCHSTRP46 : 0xffffffff
PCHSTRP47 : 0xffffffff
PCHSTRP48 : 0xffffffff
PCHSTRP49 : 0xffffffff
PCHSTRP50 : 0xffffffff
PCHSTRP51 : 0xffffffff
PCHSTRP52 : 0xffffffff
PCHSTRP53 : 0xffffffff
PCHSTRP54 : 0xffffffff
PCHSTRP55 : 0xffffffff
PCHSTRP56 : 0xffffffff
PCHSTRP57 : 0xffffffff
PCHSTRP58 : 0xffffffff
PCHSTRP59 : 0xffffffff
PCHSTRP60 : 0xffffffff
PCHSTRP61 : 0xffffffff
PCHSTRP62 : 0xffffffff
PCHSTRP63 : 0xffffffff
PCHSTRP64 : 0x00000000
PCHSTRP65 : 0xffffffff
PCHSTRP66 : 0xffffffff
PCHSTRP67 : 0xffffffff
PCHSTRP68 : 0xffffffff
PCHSTRP69 : 0xffffffff
PCHSTRP70 : 0xffffffff
PCHSTRP71 : 0xffffffff
AltMeDisable bit is not set

Found Master Section
FLMSTR1:   0x0a0b0000 (Host CPU/BIOS)
  Platform Data Region Write Access: disabled
  GbE Region Write Access:           enabled
  Intel ME Region Write Access:      disabled
  Host CPU/BIOS Region Write Access: enabled
  Flash Descriptor Write Access:     disabled
  Platform Data Region Read Access:  disabled
  GbE Region Read Access:            enabled
  Intel ME Region Read Access:       disabled
  Host CPU/BIOS Region Read Access:  enabled
  Flash Descriptor Read Access:      enabled
  Requester ID:                      0x0000

FLMSTR2:   0x0c0d0000 (Intel ME)
  Platform Data Region Write Access: disabled
  GbE Region Write Access:           enabled
  Intel ME Region Write Access:      enabled
  Host CPU/BIOS Region Write Access: disabled
  Flash Descriptor Write Access:     disabled
  Platform Data Region Read Access:  disabled
  GbE Region Read Access:            enabled
  Intel ME Region Read Access:       enabled
  Host CPU/BIOS Region Read Access:  disabled
  Flash Descriptor Read Access:      enabled
  Requester ID:                      0x0000

FLMSTR3:   0x08080118 (GbE)
  Platform Data Region Write Access: disabled
  GbE Region Write Access:           enabled
  Intel ME Region Write Access:      disabled
  Host CPU/BIOS Region Write Access: disabled
  Flash Descriptor Write Access:     disabled
  Platform Data Region Read Access:  disabled
  GbE Region Read Access:            enabled
  Intel ME Region Read Access:       disabled
  Host CPU/BIOS Region Read Access:  disabled
  Flash Descriptor Read Access:      disabled
  Requester ID:                      0x0118

Found Processor Strap Section
????:      0x00000000
????:      0xffffffff
????:      0xffffffff
????:      0xffffffff
????:      0xffffffff
????:      0xffffffff
????:      0xffffffff
????:      0xffffffff

What should I test first? Putting https://github.com/n4ru/patched-bioses/blob/master/L430.rom into the bios partition and flashing externally?

@valpackett
Copy link

valpackett commented Nov 27, 2021

So, more testing!

Injecting that rom with ifdtool results in not booting at all.

Applied patches to the stock bios region as extracted with ifdtool (firmware G3ET65WW(2.04) from 2012-09-25):

  • Advanced menu works (presumably overclock too but I haven't tested that)
  • These patches did not actually bypass the Wi-Fi check :(

UPD same result with G3UJ33US(2.76) firmware. I'm looking into making a working patch.

@valpackett
Copy link

So one condition was missed in those patches, the full working patch set is:

79E0EDD7-9D1D-4F41-AE1A-F896169E5216 10 P:C8390E0F84:C8390E90E9 
79E0EDD7-9D1D-4F41-AE1A-F896169E5216 10 P:C8390E75620F:C8390E75000F 
79E0EDD7-9D1D-4F41-AE1A-F896169E5216 10 P:C8394E04754E83:C8394E04750083
79E0EDD7-9D1D-4F41-AE1A-F896169E5216 10 P:0983FA0474:0983FA04EB

Now that boots with a ralink Wi-Fi card \o/

@digmorepaka
Copy link
Collaborator

Could you submit a PR in https://github.com/digmorepaka/thinkpad-firmware-patches/ with all the details? Afterwards it will be added to 1vyrain and will need one final test before release.

@valpackett
Copy link

Yeah, just found that repo while reading the other threads :)

will need one final test before release

Especially considering how the .rom from the patched-bioses repo didn't boot at all for me. I'll have to revert to stock and try flashing from the live USB, right? To test the full "end user" experience.

@digmorepaka
Copy link
Collaborator

digmorepaka commented Nov 27, 2021

@unrelentingtech Alright this is a binary of the latest UEFI with the patchset. You will need to pad it by 4M and flash it with the --ifd -i bios parameter manually with flashrom(#64 (comment))

It should work, but I want to verify before packing a full 1vyrain image

http://0x0.st/-7IC.fixed
e900453fa85235eab78c40e629b35134

@valpackett
Copy link

It works \o/

(I've also tried to test the TPM… it's in MFG mode, clearing from Windows does nothing, and I couldn't get tpm-tools on Arch because github is having issues lol)

@digmorepaka
Copy link
Collaborator

MFG mode means completely off, try this, it should either do 5 beeps and still not work or work perfectly fine

http://0x0.st/-7U-.fixed

1d3cead051fd59f5fb377c25f76e3472 md5

@n4ru n4ru added the enhancement New feature or request label Nov 28, 2021
@valpackett
Copy link

Works great, what was changed, just self-signing?

@digmorepaka
Copy link
Collaborator

For some reason the MFG mode was turned on by thinkpad-uefi-sign(it shouldn't do that).

This is a full image, so this should autodetect your model. https://xorg-broke-aga.in/1vyrain.iso md5 50b763065b73443e68e34eff24c36695

@valpackett
Copy link

Looks like you've added the rom file but didn't uncomment the start.sh lines.

@digmorepaka
Copy link
Collaborator

It appears that i have uploaded the wrong file. Fixed, same link md5sum 43c896ecf7b2b368020be7ac263af301

@valpackett
Copy link

The same link still returns 50b763065b73443e68e34eff24c36695

@digmorepaka
Copy link
Collaborator

ergh cloudflare cache probably not updated yet,I did check the file on the server and it is correct. I issued a cache purge so it should be the right file

@valpackett
Copy link

valpackett commented Nov 28, 2021

line 49: [: : integer expression expected

hmm seems like the version extraction command fails. Running it manually, the awk invocation extracts nothing from $3 — really it's all in $2 which is G3ET65WW(2.04). Do newer firmwares / other models always have whitespace before the opening (?

@digmorepaka
Copy link
Collaborator

Looking over some other reports, it does look like other models use a different format and we have trouble detecting L430. I do have an idea for a bandaid fix as the latest(which is extremely likely final) UEFI still have the vulnerability. I will work on it tomorrow

@valpackett
Copy link

Well, one possibility is using a regexp for the parentheses on the whole line without using whitespace "fields"…

@FouzR
Copy link
Author

FouzR commented Nov 28, 2021

So, by the looks of things, you'll update the iso by tomorrow with L430 support?

@digmorepaka
Copy link
Collaborator

@FouzR you can already flash the rom manually, but for full automatic support that is the plan. #87 (comment)

@FouzR
Copy link
Author

FouzR commented Nov 29, 2021

I'll wait for the full automatic support just to be safe :)

@digmorepaka
Copy link
Collaborator

@unrelentingtech same link, 588896ad851ec9d5fffb914e205840c6 bypassed version check as it's not needed

@valpackett
Copy link

Now everything works perfectly! \o/

@FouzR
Copy link
Author

FouzR commented Nov 30, 2021

On which BIOS version did you try it?

@FouzR
Copy link
Author

FouzR commented Nov 30, 2021

4F11B425-AB2D-4DDD-98EB-233829437BFE
It's showing this when I tried to do on mine

@digmorepaka
Copy link
Collaborator

PITA I know what this is, lucky that we caught it before releasing.

@FouzR
Copy link
Author

FouzR commented Nov 30, 2021

Was that due to the band-aid fix you implemented?

@digmorepaka
Copy link
Collaborator

Nah, this stems from Macronix chips not being autodetectable by software like flashrom. Good thing our model only ships with one of those(and in the case that someone replaced it there are failsafes). It will be fixed like it was fixed on T430s, not at my PC at the moment so you gotta wait.

@FouzR
Copy link
Author

FouzR commented Nov 30, 2021

Cool, I'm happy you guys are doing this, so, take your time I guess :)

@valpackett
Copy link

Interesting, my unit came with a Winbond chip

@digmorepaka
Copy link
Collaborator

@FouzR md5: 4be31f563abd41cc74749ba03b21e713 https://xorg-broke-aga.in/1vyrain.iso it should work now.

Just for future reference i also added L530 support, UEFI is shared between L530 and L430 so I hope the autodetection works

@FouzR
Copy link
Author

FouzR commented Dec 1, 2021

IMG_0632
Uhhhh

@digmorepaka
Copy link
Collaborator

@unrelentingtech you were able to reflash from the latest version yeah? Could you check the latest iso I posted on your board with a winbond and latest UEFI?

@valpackett
Copy link

No, I reverted to stock every time, flashrom failed to write (but seemingly didn't corrupt anything) when already modded. (That was tested before auto detection worked)

@FouzR
Copy link
Author

FouzR commented Dec 1, 2021

@unrelentingtech did you try the iso at the latest BIOS(2.76)?

@valpackett
Copy link

No, not at stock latest bios, will test soon

@leecher1337
Copy link

leecher1337 commented Dec 17, 2021

Mod edited, de-cluttered.

Sorry for hijacking this thread, but it seems that there are persons who have
the capability to reflash a damaged BIOS ROM in the event that something goes
wrong.
As I do not have this facility, but successfully created and tested a patch
for a 7-row keyboard for the L430, I'm a bit hesitant to flash the BIOS, as I
do not want to brick the machine.

I would like to ask for help with testing this, in the related thread hamishcoleman/thinkpad-ec#203

@digmorepaka
Copy link
Collaborator

@leecher1337 This is unrelated to this issue, please do not clutter up the thread. Message the people directly, and or bring them to the ec repo issue. hamishcoleman/thinkpad-ec#203 (comment)

@valpackett
Copy link

So it just fails to flash on 2.76, unsurprisingly doesn't matter whether modded or not.

Looks like if [ "255" -gt "$version" ]; was the correct check — flashing does work on 2.54. So don't delete the version check, just make it work whether there's whitespace before the ( or not.

@valpackett
Copy link

@digmorepaka so what was the fix for

MFG mode was turned on by thinkpad-uefi-sign

? I'd like to sign my own builds in a way that makes the TPM work…

@digmorepaka
Copy link
Collaborator

? I'd like to sign my own builds in a way that makes the TPM work…

It seems that running thinkpad-uefi-sign and then manually changing 4C 4E 56 42 42 53 45 43 FF to 4C 4E 56 42 42 53 45 43 FB did the trick.

@snakeeater4526
Copy link

Hi there, i just read this thread and i have a L530 , does that mean that 1vyrain support L530 now?

@digmorepaka
Copy link
Collaborator

UEFI itself is identical, not yet supported in 1vyrain due to different model string, but UEFI patch is working.

@devbrones
Copy link

devbrones commented Feb 27, 2023

Hey! I have a L430 and soon a chip clip, can maybe do some testing if time allows it.
Is 1vyrain stable on L430 and if so how can i install it?

my bios version is G3ET65WW(2.04) and i have a Winbond W25Q64.V rom

@devbrones
Copy link

Hey! I have a L430 and soon a chip clip, can maybe do some testing if time allows it. Is 1vyrain stable on L430 and if so how can i install it?

my bios version is G3ET65WW(2.04) and i have a Winbond W25Q64.V rom

update btw, worked flawlessly on the standard iso from 1vyra.in

@BoredOperator
Copy link

Hello i tried to run the 1vyrain.iso on my Thinkpad L430 (with the bios versions 2.76, 2.54 and 2.04) and each time i get the message that my machine is compatible but unsupported. (I dont have a hardware flasher nor do i have any flashing experience) Is there a way to enable support?

Machine: L430
BIOS: G3ET94WW(2.54)
Version:
Flashsize: 8192

@digmorepaka
Copy link
Collaborator

Hello i tried to run the 1vyrain.iso on my Thinkpad L430 (with the bios versions 2.76, 2.54 and 2.04) and each time i get the message that my machine is compatible but unsupported. (I dont have a hardware flasher nor do i have any flashing experience) Is there a way to enable support?

Machine: L430 BIOS: G3ET94WW(2.54) Version: Flashsize: 8192

Yeah it's currently in a state where it is supported but not really. You can flash internally, rom is made, but the version string decoding hasn't been done yet because it requires quite a rework to support a total of two laptops that a minority of people have.

To flash your machine(internet connection required)

  1. go through the compatibility check, after it wakes up again and says flashing is possible, exit the script with Ctrl+C
  2. wget https://github.com/n4ru/patched-bioses/raw/refs/heads/master/L430.rom
  3. dd if=/dev/zero of=pad.bin bs=1M count=4
  4. cat pad.bin L430.rom > UEFI.rom
  5. /root/flashrom/flashrom -p internal:laptop=force_I_want_a_brick -w UEFI.rom --ifd -i bios -N
    after that is done, you can reboot

@BoredOperator
Copy link

Hello again, thanks for your the fast reply :).
The flash was a succes after figuring out that i needed the --no-check-certificate flag for wget and that bios version 2.76 (until probably 2.69) does not work and gives out the following error.
PXL_20240926_212741997

When i downgraded the bios to version 2.54 everything went smoothly so thank you very much for your help @digmorepaka :)

@BoredOperator
Copy link

BoredOperator commented Dec 10, 2024

Hello again,
my brother has recently bought the same laptop model for cheap and wanted me to flash his one as well. When i follow the same process i get the same error Message @FouzR encountered before. It seems it does not detect the Macronix chips. Which one do i need to flash with the -c option?

His Laptop also does not report FLASHSIZE when running the iso

Machine: L430
BIOS: G3ET94WW(2.54)
Version:
Flashsize:
PXL_20241210_152740009

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

8 participants