Documentation: Indent code blocks instead of using ```
Both versions are correct, but especially for one liners indenting them with four spaces instead of using ``` blocks helps readability of the source file. Change-Id: Ie2543c8c4cccefd74e966f784e651ed7dc3a9252 Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/38720 Reviewed-by: Peter Lemenkov <lemenkov@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
f9bb675690
commit
cedd4525f2
|
@ -63,55 +63,51 @@ directly. Therefore you need to modify the bootable CD image you just
|
||||||
downloaded.
|
downloaded.
|
||||||
|
|
||||||
Extract an El Torito image:
|
Extract an El Torito image:
|
||||||
```
|
|
||||||
geteltorito -o ./bios.img g1uj41us.iso
|
geteltorito -o ./bios.img g1uj41us.iso
|
||||||
```
|
|
||||||
Mount the partition in that image:
|
Mount the partition in that image:
|
||||||
```
|
|
||||||
sudo mount -t vfat ./bios.img /mnt -o loop,offset=16384
|
sudo mount -t vfat ./bios.img /mnt -o loop,offset=16384
|
||||||
```
|
|
||||||
List files, find the `AUTOEXEC.BAT` file and the `FLASH` directory:
|
List files, find the `AUTOEXEC.BAT` file and the `FLASH` directory:
|
||||||
```
|
|
||||||
ls /mnt
|
ls /mnt
|
||||||
ls /mnt/FLASH
|
ls /mnt/FLASH
|
||||||
```
|
|
||||||
|
|
||||||
Inside the `FLASH` directory, there should be a directory called
|
Inside the `FLASH` directory, there should be a directory called
|
||||||
`G1ET93WW` or similar (exact name depends on your ThinkPad model and
|
`G1ET93WW` or similar (exact name depends on your ThinkPad model and
|
||||||
BIOS version). See what's inside:
|
BIOS version). See what's inside:
|
||||||
```
|
|
||||||
ls /mnt/FLASH/G1ET93WW
|
ls /mnt/FLASH/G1ET93WW
|
||||||
```
|
|
||||||
There must be a file with `.FL1` extension called `$01D2000.FL1` or
|
There must be a file with `.FL1` extension called `$01D2000.FL1` or
|
||||||
something similar.
|
something similar.
|
||||||
|
|
||||||
Now open the `AUTOEXEC.BAT` file:
|
Now open the `AUTOEXEC.BAT` file:
|
||||||
```
|
|
||||||
sudo vim /mnt/AUTOEXEC.BAT
|
sudo vim /mnt/AUTOEXEC.BAT
|
||||||
```
|
|
||||||
You will see a list of commands:
|
You will see a list of commands:
|
||||||
```
|
|
||||||
@ECHO OFF
|
@ECHO OFF
|
||||||
PROMPT $p$g
|
PROMPT $p$g
|
||||||
cd c:\flash
|
cd c:\flash
|
||||||
command.com
|
command.com
|
||||||
```
|
|
||||||
Replace the last line (`command.com`) with this (change path to the
|
Replace the last line (`command.com`) with this (change path to the
|
||||||
`.FL1` file according to yours):
|
`.FL1` file according to yours):
|
||||||
```
|
|
||||||
dosflash.exe /sd /file G1ET93WW\$01D2000.FL1
|
dosflash.exe /sd /file G1ET93WW\$01D2000.FL1
|
||||||
```
|
|
||||||
|
|
||||||
Save the file, then unmount the partition:
|
Save the file, then unmount the partition:
|
||||||
```
|
|
||||||
sudo unmount /mnt
|
sudo unmount /mnt
|
||||||
```
|
|
||||||
|
|
||||||
Write this image to a USB drive (replace `/dev/sdX` with your USB drive
|
Write this image to a USB drive (replace `/dev/sdX` with your USB drive
|
||||||
device name):
|
device name):
|
||||||
```
|
|
||||||
sudo dd if=./bios.img of=/dev/sdX bs=1M
|
sudo dd if=./bios.img of=/dev/sdX bs=1M
|
||||||
```
|
|
||||||
|
|
||||||
Now reboot and press F1 to enter BIOS settings. Open the **Startup** tab
|
Now reboot and press F1 to enter BIOS settings. Open the **Startup** tab
|
||||||
and set the startup mode to **Legacy** (or **Both**/**Legacy First**):
|
and set the startup mode to **Legacy** (or **Both**/**Legacy First**):
|
||||||
|
@ -167,69 +163,66 @@ To be able to flash, we need SMM_BWP=0, BIOSWE=1, BLE=0, FLOCKDN=0 or
|
||||||
SPI protected ranges (PRx) to have a WP bit set to 0.
|
SPI protected ranges (PRx) to have a WP bit set to 0.
|
||||||
|
|
||||||
Let's see what we have. Examine HSFS register:
|
Let's see what we have. Examine HSFS register:
|
||||||
```
|
|
||||||
sudo chipsec_main -m chipsec.modules.common.spi_lock
|
sudo chipsec_main -m chipsec.modules.common.spi_lock
|
||||||
```
|
|
||||||
You should see that FLOCKDN=1:
|
You should see that FLOCKDN=1:
|
||||||
```
|
|
||||||
[x][ =======================================================================
|
[x][ =======================================================================
|
||||||
[x][ Module: SPI Flash Controller Configuration Locks
|
[x][ Module: SPI Flash Controller Configuration Locks
|
||||||
[x][ =======================================================================
|
[x][ =======================================================================
|
||||||
[*] HSFS = 0xE009 << Hardware Sequencing Flash Status Register (SPIBAR + 0x4)
|
[*] HSFS = 0xE009 << Hardware Sequencing Flash Status Register (SPIBAR + 0x4)
|
||||||
[00] FDONE = 1 << Flash Cycle Done
|
[00] FDONE = 1 << Flash Cycle Done
|
||||||
[01] FCERR = 0 << Flash Cycle Error
|
[01] FCERR = 0 << Flash Cycle Error
|
||||||
[02] AEL = 0 << Access Error Log
|
[02] AEL = 0 << Access Error Log
|
||||||
[03] BERASE = 1 << Block/Sector Erase Size
|
[03] BERASE = 1 << Block/Sector Erase Size
|
||||||
[05] SCIP = 0 << SPI cycle in progress
|
[05] SCIP = 0 << SPI cycle in progress
|
||||||
[13] FDOPSS = 1 << Flash Descriptor Override Pin-Strap Status
|
[13] FDOPSS = 1 << Flash Descriptor Override Pin-Strap Status
|
||||||
[14] FDV = 1 << Flash Descriptor Valid
|
[14] FDV = 1 << Flash Descriptor Valid
|
||||||
[15] FLOCKDN = 1 << Flash Configuration Lock-Down
|
[15] FLOCKDN = 1 << Flash Configuration Lock-Down
|
||||||
```
|
|
||||||
|
|
||||||
Then check BIOS_CNTL and PR0-PR4:
|
Then check BIOS_CNTL and PR0-PR4:
|
||||||
```
|
|
||||||
sudo chipsec_main -m common.bios_wp
|
sudo chipsec_main -m common.bios_wp
|
||||||
```
|
|
||||||
Good news: on old BIOS versions, SMM_BWP=0 and BLE=0.
|
Good news: on old BIOS versions, SMM_BWP=0 and BLE=0.
|
||||||
|
|
||||||
Bad news: there are 4 write protected SPI ranges:
|
Bad news: there are 4 write protected SPI ranges:
|
||||||
|
|
||||||
```
|
[x][ =======================================================================
|
||||||
[x][ =======================================================================
|
[x][ Module: BIOS Region Write Protection
|
||||||
[x][ Module: BIOS Region Write Protection
|
[x][ =======================================================================
|
||||||
[x][ =======================================================================
|
[*] BC = 0x 8 << BIOS Control (b:d.f 00:31.0 + 0xDC)
|
||||||
[*] BC = 0x 8 << BIOS Control (b:d.f 00:31.0 + 0xDC)
|
[00] BIOSWE = 0 << BIOS Write Enable
|
||||||
[00] BIOSWE = 0 << BIOS Write Enable
|
[01] BLE = 0 << BIOS Lock Enable
|
||||||
[01] BLE = 0 << BIOS Lock Enable
|
[02] SRC = 2 << SPI Read Configuration
|
||||||
[02] SRC = 2 << SPI Read Configuration
|
[04] TSS = 0 << Top Swap Status
|
||||||
[04] TSS = 0 << Top Swap Status
|
[05] SMM_BWP = 0 << SMM BIOS Write Protection
|
||||||
[05] SMM_BWP = 0 << SMM BIOS Write Protection
|
[-] BIOS region write protection is disabled!
|
||||||
[-] BIOS region write protection is disabled!
|
|
||||||
|
|
||||||
[*] BIOS Region: Base = 0x00500000, Limit = 0x00BFFFFF
|
[*] BIOS Region: Base = 0x00500000, Limit = 0x00BFFFFF
|
||||||
SPI Protected Ranges
|
SPI Protected Ranges
|
||||||
------------------------------------------------------------
|
------------------------------------------------------------
|
||||||
PRx (offset) | Value | Base | Limit | WP? | RP?
|
PRx (offset) | Value | Base | Limit | WP? | RP?
|
||||||
------------------------------------------------------------
|
------------------------------------------------------------
|
||||||
PR0 (74) | 00000000 | 00000000 | 00000000 | 0 | 0
|
PR0 (74) | 00000000 | 00000000 | 00000000 | 0 | 0
|
||||||
PR1 (78) | 8BFF0B40 | 00B40000 | 00BFFFFF | 1 | 0
|
PR1 (78) | 8BFF0B40 | 00B40000 | 00BFFFFF | 1 | 0
|
||||||
PR2 (7C) | 8B100B10 | 00B10000 | 00B10FFF | 1 | 0
|
PR2 (7C) | 8B100B10 | 00B10000 | 00B10FFF | 1 | 0
|
||||||
PR3 (80) | 8ADE0AD0 | 00AD0000 | 00ADEFFF | 1 | 0
|
PR3 (80) | 8ADE0AD0 | 00AD0000 | 00ADEFFF | 1 | 0
|
||||||
PR4 (84) | 8AAF0800 | 00800000 | 00AAFFFF | 1 | 0
|
PR4 (84) | 8AAF0800 | 00800000 | 00AAFFFF | 1 | 0
|
||||||
```
|
|
||||||
|
|
||||||
Other way to examine SPI configuration registers is to just dump SPIBAR:
|
Other way to examine SPI configuration registers is to just dump SPIBAR:
|
||||||
```
|
|
||||||
sudo chipsec_util mmio dump SPIBAR
|
sudo chipsec_util mmio dump SPIBAR
|
||||||
```
|
|
||||||
You will see SPIBAR address (0xFED1F800) and registers (for example,
|
You will see SPIBAR address (0xFED1F800) and registers (for example,
|
||||||
00000004 is HSFS):
|
00000004 is HSFS):
|
||||||
```
|
|
||||||
[mmio] MMIO register range [0x00000000FED1F800:0x00000000FED1F800+00000200]:
|
[mmio] MMIO register range [0x00000000FED1F800:0x00000000FED1F800+00000200]:
|
||||||
+00000000: 0BFF0500
|
+00000000: 0BFF0500
|
||||||
+00000004: 0004E009
|
+00000004: 0004E009
|
||||||
...
|
...
|
||||||
```
|
|
||||||
As you can see, the only thing we need is to unset WP bit on PR0-PR4.
|
As you can see, the only thing we need is to unset WP bit on PR0-PR4.
|
||||||
But that cannot be done once FLOCKDN is set to 1.
|
But that cannot be done once FLOCKDN is set to 1.
|
||||||
|
|
||||||
|
@ -239,23 +232,23 @@ FLOCKDN may only be cleared by a hardware reset, which includes S3
|
||||||
state. On S3 resume boot path, the chipset configuration has to be
|
state. On S3 resume boot path, the chipset configuration has to be
|
||||||
restored and it's done by executing so-called S3 Boot Scripts. You can
|
restored and it's done by executing so-called S3 Boot Scripts. You can
|
||||||
dump these scripts by executing:
|
dump these scripts by executing:
|
||||||
```
|
|
||||||
sudo chipsec_util uefi s3bootscript
|
sudo chipsec_util uefi s3bootscript
|
||||||
```
|
|
||||||
There are many entries. Along them, you can find instructions to write
|
There are many entries. Along them, you can find instructions to write
|
||||||
to HSFS (remember, we know that SPIBAR is 0xFED1F800):
|
to HSFS (remember, we know that SPIBAR is 0xFED1F800):
|
||||||
```
|
|
||||||
Entry at offset 0x2B8F (len = 0x17, header len = 0x0):
|
Entry at offset 0x2B8F (len = 0x17, header len = 0x0):
|
||||||
Data:
|
Data:
|
||||||
02 00 17 02 00 00 00 01 00 00 00 04 f8 d1 fe 00 |
|
02 00 17 02 00 00 00 01 00 00 00 04 f8 d1 fe 00 |
|
||||||
00 00 00 09 e0 04 00 |
|
00 00 00 09 e0 04 00 |
|
||||||
Decoded:
|
Decoded:
|
||||||
Opcode : S3_BOOTSCRIPT_MEM_WRITE (0x0002)
|
Opcode : S3_BOOTSCRIPT_MEM_WRITE (0x0002)
|
||||||
Width : 0x02 (4 bytes)
|
Width : 0x02 (4 bytes)
|
||||||
Address: 0xFED1F804
|
Address: 0xFED1F804
|
||||||
Count : 0x1
|
Count : 0x1
|
||||||
Values : 0x0004E009
|
Values : 0x0004E009
|
||||||
```
|
|
||||||
These scripts are stored in memory. The vulnerability is that we can
|
These scripts are stored in memory. The vulnerability is that we can
|
||||||
overwrite this memory, change these instructions and they will be
|
overwrite this memory, change these instructions and they will be
|
||||||
executed on S3 resume. Once we patch that instruction to not set FLOCKDN
|
executed on S3 resume. Once we patch that instruction to not set FLOCKDN
|
||||||
|
@ -268,14 +261,13 @@ in case something goes wrong, you'll be able to flash it back externally.
|
||||||
|
|
||||||
The `me` region is locked, so an attempt to create a full dump will fail.
|
The `me` region is locked, so an attempt to create a full dump will fail.
|
||||||
But you can back up the `bios`:
|
But you can back up the `bios`:
|
||||||
```
|
|
||||||
sudo flashrom -p internal -r bios_backup.rom --ifd -i bios
|
sudo flashrom -p internal -r bios_backup.rom --ifd -i bios
|
||||||
```
|
|
||||||
|
|
||||||
If you will ever need to flash it back, use `--ifd -i bios` as well:
|
If you will ever need to flash it back, use `--ifd -i bios` as well:
|
||||||
```
|
|
||||||
sudo flashrom -p <YOUR_PROGRAMMER> -w bios_backup.rom --ifd -i bios
|
sudo flashrom -p <YOUR_PROGRAMMER> -w bios_backup.rom --ifd -i bios
|
||||||
```
|
|
||||||
**Caution:** if you will omit `--ifd -i bios` for flashing, you will
|
**Caution:** if you will omit `--ifd -i bios` for flashing, you will
|
||||||
brick your machine, because your backup has `FF`s in place of `fd` and
|
brick your machine, because your backup has `FF`s in place of `fd` and
|
||||||
`me` regions. Flash only `bios` region!
|
`me` regions. Flash only `bios` region!
|
||||||
|
@ -284,83 +276,80 @@ brick your machine, because your backup has `FF`s in place of `fd` and
|
||||||
|
|
||||||
The original boot script writes 0xE009 to HSFS. FLOCKDN is 15th bit, so
|
The original boot script writes 0xE009 to HSFS. FLOCKDN is 15th bit, so
|
||||||
let's write 0x6009 instead:
|
let's write 0x6009 instead:
|
||||||
```
|
|
||||||
sudo chipsec_main -m tools.uefi.s3script_modify -a replace_op,mmio_wr,0xFED1F804,0x6009,0x2
|
sudo chipsec_main -m tools.uefi.s3script_modify -a replace_op,mmio_wr,0xFED1F804,0x6009,0x2
|
||||||
```
|
|
||||||
You will get a lot of output and in the end you should see something
|
You will get a lot of output and in the end you should see something
|
||||||
like this:
|
like this:
|
||||||
```
|
|
||||||
[*] Modifying S3 boot script entry at address 0x00000000DAF49B8F..
|
|
||||||
[mem] 0x00000000DAF49B8F
|
|
||||||
[*] Original entry:
|
|
||||||
2 0 17 2 0 0 0 1 0 0 0 4 f8 d1 fe 0 |
|
|
||||||
0 0 0 9 e0 4 0 |
|
|
||||||
[mem] buffer len = 0x17 to PA = 0x00000000DAF49B8F
|
|
||||||
2 0 17 2 0 0 0 1 0 0 0 4 f8 d1 fe 0 |
|
|
||||||
0 0 0 9 60 0 0 | `
|
|
||||||
[mem] 0x00000000DAF49B8F
|
|
||||||
[*] Modified entry:
|
|
||||||
2 0 17 2 0 0 0 1 0 0 0 4 f8 d1 fe 0 |
|
|
||||||
0 0 0 9 60 0 0 | `
|
|
||||||
[*] After sleep/resume, check the value of register 0xFED1F804 is 0x6009
|
|
||||||
[+] PASSED: The script has been modified. Go to sleep..
|
|
||||||
```
|
|
||||||
Now go to S3, then resume and check FLOCKDN. It should be 0:
|
|
||||||
```
|
|
||||||
sudo chipsec_main -m chipsec.modules.common.spi_lock
|
|
||||||
```
|
|
||||||
```
|
|
||||||
...
|
|
||||||
[x][ =======================================================================
|
|
||||||
[x][ Module: SPI Flash Controller Configuration Locks
|
|
||||||
[x][ =======================================================================
|
|
||||||
[*] HSFS = 0x6008 << Hardware Sequencing Flash Status Register (SPIBAR + 0x4)
|
|
||||||
[00] FDONE = 0 << Flash Cycle Done
|
|
||||||
[01] FCERR = 0 << Flash Cycle Error
|
|
||||||
[02] AEL = 0 << Access Error Log
|
|
||||||
[03] BERASE = 1 << Block/Sector Erase Size
|
|
||||||
[05] SCIP = 0 << SPI cycle in progress
|
|
||||||
[13] FDOPSS = 1 << Flash Descriptor Override Pin-Strap Status
|
|
||||||
[14] FDV = 1 << Flash Descriptor Valid
|
|
||||||
[15] FLOCKDN = 0 << Flash Configuration Lock-Down
|
|
||||||
[-] SPI Flash Controller configuration is not locked
|
|
||||||
[-] FAILED: SPI Flash Controller not locked correctly.
|
|
||||||
...
|
|
||||||
```
|
|
||||||
Remove WP from protected ranges:
|
|
||||||
```
|
|
||||||
sudo chipsec_util mmio write SPIBAR 0x74 0x4 0xAAF0800
|
|
||||||
sudo chipsec_util mmio write SPIBAR 0x78 0x4 0xADE0AD0
|
|
||||||
sudo chipsec_util mmio write SPIBAR 0x7C 0x4 0xB100B10
|
|
||||||
sudo chipsec_util mmio write SPIBAR 0x80 0x4 0xBFF0B40
|
|
||||||
```
|
|
||||||
Verify that it worked:
|
|
||||||
```
|
|
||||||
sudo chipsec_main -m common.bios_wp
|
|
||||||
```
|
|
||||||
```
|
|
||||||
[x][ =======================================================================
|
|
||||||
[x][ Module: BIOS Region Write Protection
|
|
||||||
[x][ =======================================================================
|
|
||||||
[*] BC = 0x 9 << BIOS Control (b:d.f 00:31.0 + 0xDC)
|
|
||||||
[00] BIOSWE = 1 << BIOS Write Enable
|
|
||||||
[01] BLE = 0 << BIOS Lock Enable
|
|
||||||
[02] SRC = 2 << SPI Read Configuration
|
|
||||||
[04] TSS = 0 << Top Swap Status
|
|
||||||
[05] SMM_BWP = 0 << SMM BIOS Write Protection
|
|
||||||
[-] BIOS region write protection is disabled!
|
|
||||||
|
|
||||||
[*] BIOS Region: Base = 0x00500000, Limit = 0x00BFFFFF
|
[*] Modifying S3 boot script entry at address 0x00000000DAF49B8F..
|
||||||
SPI Protected Ranges
|
[mem] 0x00000000DAF49B8F
|
||||||
------------------------------------------------------------
|
[*] Original entry:
|
||||||
PRx (offset) | Value | Base | Limit | WP? | RP?
|
2 0 17 2 0 0 0 1 0 0 0 4 f8 d1 fe 0 |
|
||||||
------------------------------------------------------------
|
0 0 0 9 e0 4 0 |
|
||||||
PR0 (74) | 0AAF0800 | 00800000 | 00AAF000 | 0 | 0
|
[mem] buffer len = 0x17 to PA = 0x00000000DAF49B8F
|
||||||
PR1 (78) | 0ADE0AD0 | 00AD0000 | 00ADE000 | 0 | 0
|
2 0 17 2 0 0 0 1 0 0 0 4 f8 d1 fe 0 |
|
||||||
PR2 (7C) | 0B100B10 | 00B10000 | 00B10000 | 0 | 0
|
0 0 0 9 60 0 0 | `
|
||||||
PR3 (80) | 0BFF0B40 | 00B40000 | 00BFF000 | 0 | 0
|
[mem] 0x00000000DAF49B8F
|
||||||
PR4 (84) | 00000000 | 00000000 | 00000000 | 0 | 0
|
[*] Modified entry:
|
||||||
```
|
2 0 17 2 0 0 0 1 0 0 0 4 f8 d1 fe 0 |
|
||||||
|
0 0 0 9 60 0 0 | `
|
||||||
|
[*] After sleep/resume, check the value of register 0xFED1F804 is 0x6009
|
||||||
|
[+] PASSED: The script has been modified. Go to sleep..
|
||||||
|
|
||||||
|
Now go to S3, then resume and check FLOCKDN. It should be 0:
|
||||||
|
|
||||||
|
sudo chipsec_main -m chipsec.modules.common.spi_lock
|
||||||
|
|
||||||
|
...
|
||||||
|
[x][ =======================================================================
|
||||||
|
[x][ Module: SPI Flash Controller Configuration Locks
|
||||||
|
[x][ =======================================================================
|
||||||
|
[*] HSFS = 0x6008 << Hardware Sequencing Flash Status Register (SPIBAR + 0x4)
|
||||||
|
[00] FDONE = 0 << Flash Cycle Done
|
||||||
|
[01] FCERR = 0 << Flash Cycle Error
|
||||||
|
[02] AEL = 0 << Access Error Log
|
||||||
|
[03] BERASE = 1 << Block/Sector Erase Size
|
||||||
|
[05] SCIP = 0 << SPI cycle in progress
|
||||||
|
[13] FDOPSS = 1 << Flash Descriptor Override Pin-Strap Status
|
||||||
|
[14] FDV = 1 << Flash Descriptor Valid
|
||||||
|
[15] FLOCKDN = 0 << Flash Configuration Lock-Down
|
||||||
|
[-] SPI Flash Controller configuration is not locked
|
||||||
|
[-] FAILED: SPI Flash Controller not locked correctly.
|
||||||
|
...
|
||||||
|
|
||||||
|
Remove WP from protected ranges:
|
||||||
|
|
||||||
|
sudo chipsec_util mmio write SPIBAR 0x74 0x4 0xAAF0800
|
||||||
|
sudo chipsec_util mmio write SPIBAR 0x78 0x4 0xADE0AD0
|
||||||
|
sudo chipsec_util mmio write SPIBAR 0x7C 0x4 0xB100B10
|
||||||
|
sudo chipsec_util mmio write SPIBAR 0x80 0x4 0xBFF0B40
|
||||||
|
|
||||||
|
Verify that it worked:
|
||||||
|
|
||||||
|
sudo chipsec_main -m common.bios_wp
|
||||||
|
|
||||||
|
[x][ =======================================================================
|
||||||
|
[x][ Module: BIOS Region Write Protection
|
||||||
|
[x][ =======================================================================
|
||||||
|
[*] BC = 0x 9 << BIOS Control (b:d.f 00:31.0 + 0xDC)
|
||||||
|
[00] BIOSWE = 1 << BIOS Write Enable
|
||||||
|
[01] BLE = 0 << BIOS Lock Enable
|
||||||
|
[02] SRC = 2 << SPI Read Configuration
|
||||||
|
[04] TSS = 0 << Top Swap Status
|
||||||
|
[05] SMM_BWP = 0 << SMM BIOS Write Protection
|
||||||
|
[-] BIOS region write protection is disabled!
|
||||||
|
|
||||||
|
[*] BIOS Region: Base = 0x00500000, Limit = 0x00BFFFFF
|
||||||
|
SPI Protected Ranges
|
||||||
|
------------------------------------------------------------
|
||||||
|
PRx (offset) | Value | Base | Limit | WP? | RP?
|
||||||
|
------------------------------------------------------------
|
||||||
|
PR0 (74) | 0AAF0800 | 00800000 | 00AAF000 | 0 | 0
|
||||||
|
PR1 (78) | 0ADE0AD0 | 00AD0000 | 00ADE000 | 0 | 0
|
||||||
|
PR2 (7C) | 0B100B10 | 00B10000 | 00B10000 | 0 | 0
|
||||||
|
PR3 (80) | 0BFF0B40 | 00B40000 | 00BFF000 | 0 | 0
|
||||||
|
PR4 (84) | 00000000 | 00000000 | 00000000 | 0 | 0
|
||||||
|
|
||||||
Bingo!
|
Bingo!
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue