Can anyone help me with the Intel DB75EN bios mod

Hi all, I’m trying to make some changes to the bios of my old Intel DB75EN motherboard.

Using pinmod I was able to perform a complete dump of the SPI flash with the command: fpt.efi -D FULL_BIOS.bin
I then dumped the individual regions with the commands:
fpt.efi -DESC -D DESC.bin
fpt.efi -BIOS -D BIOS.bin
fpt.efi -ME -D ME.bin
fpt.efi -GBE -D GBE.bin
I opened the DESC.bin file with HxD and changed the offset 0x60 bits for reading and writing the ME, BIOS and GBE regions.
DESC.bin:
0x60 00 00 0B 0A 00 00 0D 0C 18 01 08 08 FF FF FF FF
DESC_MOD.bin:
0x60 00 00 FF FF 00 00 FF FF 18 01 FF FF FF FF FF FF
I then flashed with the command: fpt.efi -DESC -F DESC_MOD.bin
At this point I am able to write to the DESC, ME and GBE regions but not the BIOS.
when I try to flash with command: fpt.efi -BIOS -F BIOS.bin
I get error : Error 7: Hardware sequencing failed. Make sure that you have access to target flash area!

This happens even if I try to flash the BIOS region without changes with the commands:
fpt.efi -BIOS -D BIOS.bin
fpt.efi -BIOS -F BIOS.bin ← This tells me there are no changes.
fpt.efi -BIOS -F BIOS.bin -REWRITE ← This gives me error 7

What am I doing wrong!?
Currently my base OS is linux, I can dump the flash with the command: flashrom -p internal -V -o backuplog.txt -r BACKUP.bin but I haven’t tried writing with flashrom.
For bios mod I’m using a Windows VM with UEFITools and AMI APTIO4 Tools.

Thanks in advance
Jimmy

MEinfo.efi

Intel(R) MEInfo Version: 8.1.56.1541
Copyright(C) 2005 - 2014, Intel Corporation. All rights reserved.


FW Status Register1: 0x1E000255
FW Status Register2: 0x69000106

  CurrentState:                         Normal
  ManufacturingMode:                    Enabled
  FlashPartition:                       Valid
  OperationalState:                     M0 with UMA
  InitComplete:                         Complete
  BUPLoadState:                         Success
  ErrorCode:                            No Error
  ModeOfOperation:                      Normal
  ICC:                                  Valid OEM data, ICC programmed

Get ME FWU info command...done

Get ME FWU version command...done

Get ME FWU feature state command...done

Get ME FWU platform type command...done

Get ME FWU feature capability command...done

Get ME FWU OEM Id command...done
FW Capabilities value is 0x9301C6C
Feature enablement is 0x9301C6C
Platform type is 0x11415422
Intel(R) Manageability and Security Application code versions:

BIOS Version:                           ENB7510H.86A.0046.2013.0704.1354
MEBx Version:                           8.0.0.0066
Gbe Version:                            1.3
VendorID:                               8086
PCH Version:                            4
FW Version:                             8.1.20.1336

FW Capabilities:                        0x09301C6C

    Intel(R) Small Business Technology - PRESENT/ENABLED
    Intel(R) Anti-Theft Technology - PRESENT/ENABLED
    Intel(R) Capability Licensing Service - PRESENT/ENABLED
    Protect Audio Video Path - PRESENT/ENABLED
    Intel(R) Dynamic Application Loader - PRESENT/ENABLED


Get iCLS PCH allowed feature information command...done

Get iCLS PCH allowed feature information command...done
Level III Manageability Upgrade State:  Upgrade Capable

Get iCLS permit information command...done
Command response status indicates permit not found

Get iCLS CPU allowed feature information command...done
CPU Upgrade State:                      Upgrade Capable
Cryptography Support:                   Enabled
Last ME reset reason:                   Global system reset
Local FWUpdate:                         Enabled

Get BIOS flash lockdown status...done
BIOS Config Lock:                       Enabled

Get GbE flash lockdown status...done
GbE Config Lock:                        Enabled

Get flash master region access status...done
Host Read Access to ME:                 Enabled
Host Write Access to ME:                Enabled
SPI Flash ID #1:                        EF4017
SPI Flash ID VSCC #1:                   20052005
SPI Flash ID #2:                        EF4016
SPI Flash ID VSCC #2:                   20052005
SPI Flash BIOS VSCC:                    20052005
Protected Range Register Base #0 0x0
Protected Range Register Limit #0 0x0
Protected Range Register Base #1 0x0
Protected Range Register Limit #1 0x0
Protected Range Register Base #2 0x0
Protected Range Register Limit #2 0x0
Protected Range Register Base #3 0x0
Protected Range Register Limit #3 0x0
Protected Range Register Base #4 0x0
Protected Range Register Limit #4 0x0
BIOS boot State:                        Post Boot
OEM Id:                                 00000000-0000-0000-0000-000000000000
Capability Licensing Service:           Enabled

Get iCLS permit information command...done
Command response status indicates permit not found

Get iCLS permit information command...done
Command response status indicates permit not found

Get iCLS CPU allowed feature information command...done

Get iCLS PCH allowed feature information command...done

Get iCLS PCH allowed feature information command...done
Capability Licensing Service Status:    Permit info not available

Get ME FWU OEM Tag command...done
OEM Tag:                                0x00000000

Get System Integrator ID command...This slot is unused.
Slot 1 Board Manufacturer:              Unused

Get System Integrator ID command...This slot is unused.
Slot 2 System Assembler:                Unused

Get System Integrator ID command...This slot is unused.
Slot 3 Reserved:                        Unused

Get M3 Autotest command...done
M3 Autotest:                            Disabled

Get ME FWU Platform Attribute (WLAN ucode) command...done
Localized Language:                     English

Get ME FWU Info command...done
Independent Firmware Recovery:          Enabled

fpt.efi -BIOS -D BIOS.bin

Intel (R) Flash Programming Tool. Version:  8.1.60.1561 
Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.

Number of LPC Devices supported: 174
LPC Device Id: 1E49.
Platform: Intel(R) B75 Express Chipset 
Initializing SPI utilities
Reading HSFSTS register... Flash Descriptor: Valid 

Region Limits as programmed into the SPI Registers 
    FREG0 -  DESC Region:Base Address: 0x000000   Limit :  0x000FFF 
    FREG1 -  BIOS Region:Base Address: 0x580000   Limit :  0xBFFFFF 
    FREG2 -  ME   Region:Base Address: 0x003000   Limit :  0x57FFFF 
    FREG3 -  GbE  Region:Base Address: 0x001000   Limit :  0x002FFF 
    FREG4 -  PDR  Region:Base Address: 0x1FFF000   Limit :  0x000FFF 
Address Limit 0xC00000    Maximum Memory 12288kB 


	--- Flash Devices Found ---
	W25Q64BV	ID:0xEF4017	Size: 8192KB (65536Kb)
	W25Q32BV	ID:0xEF4016	Size: 4096KB (32768Kb)
Using hardware sequencing.
Reading region information from flash descriptor.
Base: 0x000000, Limit: 0x000FFF
Base: 0x580000, Limit: 0xBFFFFF
Base: 0x003000, Limit: 0x57FFFF
Base: 0x001000, Limit: 0x002FFF
FW Status Register1: 0x1E000255
FW Status Register2: 0x69000106
Reading LPC BC register... 0x0000002B
WriteFileToFlash( BIOS\BIOS.bin, 0x580000, 0x680000 )...
Reading file "BIOS\BIOS.bin" into memory...
PDR Region does not exist.
Disabling the ME is not necessary. 
WriteBufferToFlash. Address = 0x580000, Length = 0x680000

- Reading Flash [0x580040]    0KB of 6656KB -   0% complete.
- Reading Flash [0x590A40]   66KB of 6656KB -   1% complete.
- Reading Flash [0x5A1480]  133KB of 6656KB -   2% complete.
- Reading Flash [0x5B1EC0]  199KB of 6656KB -   3% complete.
- Reading Flash [0x5C2900]  266KB of 6656KB -   4% complete.
- Reading Flash [0x5D3340]  332KB of 6656KB -   5% complete.
- Reading Flash [0x5E3D80]  399KB of 6656KB -   6% complete.
- Reading Flash [0x5F47C0]  465KB of 6656KB -   7% complete.
- Reading Flash [0x605200]  532KB of 6656KB -   8% complete.
- Reading Flash [0x615C40]  599KB of 6656KB -   9% complete.
- Reading Flash [0x626680]  665KB of 6656KB -  10% complete.
- Reading Flash [0x6370C0]  732KB of 6656KB -  11% complete.
- Reading Flash [0x647B00]  798KB of 6656KB -  12% complete.
- Reading Flash [0x658540]  865KB of 6656KB -  13% complete.
- Reading Flash [0x668F80]  931KB of 6656KB -  14% complete.
- Reading Flash [0x6799C0]  998KB of 6656KB -  15% complete.
- Reading Flash [0x68A400] 1065KB of 6656KB -  16% complete.
- Reading Flash [0x69AE40] 1131KB of 6656KB -  17% complete.
- Reading Flash [0x6AB880] 1198KB of 6656KB -  18% complete.
- Reading Flash [0x6BC2C0] 1264KB of 6656KB -  19% complete.
- Reading Flash [0x6CCD00] 1331KB of 6656KB -  20% complete.
- Reading Flash [0x6DD740] 1397KB of 6656KB -  21% complete.
- Reading Flash [0x6EE180] 1464KB of 6656KB -  22% complete.
- Reading Flash [0x6FEBC0] 1530KB of 6656KB -  23% complete.
- Reading Flash [0x70F600] 1597KB of 6656KB -  24% complete.
- Reading Flash [0x720000] 1664KB of 6656KB -  25% complete.
- Reading Flash [0x730A40] 1730KB of 6656KB -  26% complete.
- Reading Flash [0x741480] 1797KB of 6656KB -  27% complete.
- Reading Flash [0x751EC0] 1863KB of 6656KB -  28% complete.
- Reading Flash [0x762900] 1930KB of 6656KB -  29% complete.
- Reading Flash [0x773340] 1996KB of 6656KB -  30% complete.
- Reading Flash [0x783D80] 2063KB of 6656KB -  31% complete.
- Reading Flash [0x7947C0] 2129KB of 6656KB -  32% complete.
- Reading Flash [0x7A5200] 2196KB of 6656KB -  33% complete.
- Reading Flash [0x7B5C40] 2263KB of 6656KB -  34% complete.
- Reading Flash [0x7C6680] 2329KB of 6656KB -  35% complete.
- Reading Flash [0x7D70C0] 2396KB of 6656KB -  36% complete.
- Reading Flash [0x7E7B00] 2462KB of 6656KB -  37% complete.
- Reading Flash [0x7F8540] 2529KB of 6656KB -  38% complete.
- Reading Flash [0x808F80] 2595KB of 6656KB -  39% complete.
- Reading Flash [0x8199C0] 2662KB of 6656KB -  40% complete.
- Reading Flash [0x82A400] 2729KB of 6656KB -  41% complete.
- Reading Flash [0x83AE40] 2795KB of 6656KB -  42% complete.
- Reading Flash [0x84B880] 2862KB of 6656KB -  43% complete.
- Reading Flash [0x85C2C0] 2928KB of 6656KB -  44% complete.
- Reading Flash [0x86CD00] 2995KB of 6656KB -  45% complete.
- Reading Flash [0x87D740] 3061KB of 6656KB -  46% complete.
- Reading Flash [0x88E180] 3128KB of 6656KB -  47% complete.
- Reading Flash [0x89EBC0] 3194KB of 6656KB -  48% complete.
- Reading Flash [0x8AF600] 3261KB of 6656KB -  49% complete.
- Reading Flash [0x8C0000] 3328KB of 6656KB -  50% complete.
- Reading Flash [0x8D0A40] 3394KB of 6656KB -  51% complete.
- Reading Flash [0x8E1480] 3461KB of 6656KB -  52% complete.
- Reading Flash [0x8F1EC0] 3527KB of 6656KB -  53% complete.
- Reading Flash [0x902900] 3594KB of 6656KB -  54% complete.
- Reading Flash [0x913340] 3660KB of 6656KB -  55% complete.
- Reading Flash [0x923D80] 3727KB of 6656KB -  56% complete.
- Reading Flash [0x9347C0] 3793KB of 6656KB -  57% complete.
- Reading Flash [0x945200] 3860KB of 6656KB -  58% complete.
- Reading Flash [0x955C40] 3927KB of 6656KB -  59% complete.
- Reading Flash [0x966680] 3993KB of 6656KB -  60% complete.
- Reading Flash [0x9770C0] 4060KB of 6656KB -  61% complete.
- Reading Flash [0x987B00] 4126KB of 6656KB -  62% complete.
- Reading Flash [0x998540] 4193KB of 6656KB -  63% complete.
- Reading Flash [0x9A8F80] 4259KB of 6656KB -  64% complete.
- Reading Flash [0x9B99C0] 4326KB of 6656KB -  65% complete.
- Reading Flash [0x9CA400] 4393KB of 6656KB -  66% complete.
- Reading Flash [0x9DAE40] 4459KB of 6656KB -  67% complete.
- Reading Flash [0x9EB880] 4526KB of 6656KB -  68% complete.
- Reading Flash [0x9FC2C0] 4592KB of 6656KB -  69% complete.
- Reading Flash [0xA0CD00] 4659KB of 6656KB -  70% complete.
- Reading Flash [0xA1D740] 4725KB of 6656KB -  71% complete.
- Reading Flash [0xA2E180] 4792KB of 6656KB -  72% complete.
- Reading Flash [0xA3EBC0] 4858KB of 6656KB -  73% complete.
- Reading Flash [0xA4F600] 4925KB of 6656KB -  74% complete.
- Reading Flash [0xA60000] 4992KB of 6656KB -  75% complete.
- Reading Flash [0xA70A40] 5058KB of 6656KB -  76% complete.
- Reading Flash [0xA81480] 5125KB of 6656KB -  77% complete.
- Reading Flash [0xA91EC0] 5191KB of 6656KB -  78% complete.
- Reading Flash [0xAA2900] 5258KB of 6656KB -  79% complete.
- Reading Flash [0xAB3340] 5324KB of 6656KB -  80% complete.
- Reading Flash [0xAC3D80] 5391KB of 6656KB -  81% complete.
- Reading Flash [0xAD47C0] 5457KB of 6656KB -  82% complete.
- Reading Flash [0xAE5200] 5524KB of 6656KB -  83% complete.
- Reading Flash [0xAF5C40] 5591KB of 6656KB -  84% complete.
- Reading Flash [0xB06680] 5657KB of 6656KB -  85% complete.
- Reading Flash [0xB170C0] 5724KB of 6656KB -  86% complete.
- Reading Flash [0xB27B00] 5790KB of 6656KB -  87% complete.
- Reading Flash [0xB38540] 5857KB of 6656KB -  88% complete.
- Reading Flash [0xB48F80] 5923KB of 6656KB -  89% complete.
- Reading Flash [0xB599C0] 5990KB of 6656KB -  90% complete.
- Reading Flash [0xB6A400] 6057KB of 6656KB -  91% complete.
- Reading Flash [0xB7AE40] 6123KB of 6656KB -  92% complete.
- Reading Flash [0xB8B880] 6190KB of 6656KB -  93% complete.
- Reading Flash [0xB9C2C0] 6256KB of 6656KB -  94% complete.
- Reading Flash [0xBACD00] 6323KB of 6656KB -  95% complete.
- Reading Flash [0xBBD740] 6389KB of 6656KB -  96% complete.
- Reading Flash [0xBCE180] 6456KB of 6656KB -  97% complete.
- Reading Flash [0xBDEBC0] 6522KB of 6656KB -  98% complete.
- Reading Flash [0xBEF600] 6589KB of 6656KB -  99% complete.
- Reading Flash [0xC00000] 6656KB of 6656KB - 100% complete.

- Erase Skipped

Error 7: Hardware sequencing failed. Make sure that you have access to target flash area!

Error 7: Hardware sequencing failed. Make sure that you have access to target flash area!

fpt.efi -I

Intel (R) Flash Programming Tool. Version:  8.1.60.1561 
Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.

Platform: Intel(R) B75 Express Chipset 
Reading HSFSTS register... Flash Descriptor: Valid 

    --- Flash Devices Found ---
    W25Q64BV    ID:0xEF4017    Size: 8192KB (65536Kb)
    W25Q32BV    ID:0xEF4016    Size: 4096KB (32768Kb)

    --- Flash Image Information --
    Signature: VALID
    Number of Flash Components: 2
        Component 1 - 8192KB (65536Kb)
        Component 2 - 4096KB (32768Kb)
    Regions:
        Descriptor - Base: 0x000000, Limit: 0x000FFF
        BIOS       - Base: 0x580000, Limit: 0xBFFFFF
        ME         - Base: 0x003000, Limit: 0x57FFFF
        GbE        - Base: 0x001000, Limit: 0x002FFF
        PDR        - Not present
    Master Region Access:
        CPU/BIOS - ID: 0x0000, Read: 0xFF, Write: 0xFF
        ME       - ID: 0x0000, Read: 0xFF, Write: 0xFF
        GbE      - ID: 0x0118, Read: 0xFF, Write: 0xFF

Total Accessable SPI Memory: 12288KB, Total Installed SPI Memory : 12288KB

FPT Operation Passed

Protected range registers is not the only mechanism. https://opensecuritytraining.info/IntroBIOS_files/Day2_03_Advanced%20x86%20-%20BIOS%20and%20SMM%20Internals%20-%20SPI%20Flash%20Protection%20Mechanisms.pdf

Given that I’m starting to study this topic.
I think you are referring to this:
SPI Read Configuration: prefetching enabled, caching enabled,
BIOS_CNTL = 0x2a: BIOS Lock Enable: enabled, BIOS Write Enable: disabled
Warning: BIOS region SMM protection is enabled!
Warning: Setting BIOS Control at 0xdc from 0x2a to 0x09 failed.

I should change this BIOS_CNTL right?

inteltool -s

CPU: ID 0x206a7, Processor Type 0x0, Family 0x6, Model 0x2a, Stepping 0x7
Northbridge: 8086:0100 (2nd generation (Sandy Bridge family) Core Processor (Desktop))
Southbridge: 8086:1e49 (B75)
IGD: 8086:0102 (Intel(R) HD 2000 Graphics)

============= SPI / BIOS CNTL =============

BIOS_CNTL = 0x002a (IO)

0x0000 = BIOSWE - write enable
0x0001 = BLE - lock enable
0x0002 = SPI Read configuration
0x0000 = TopSwapStatus
0x0001 = SMM BIOS Write Protect Disable
0x0000 = reserved

============= SPI Bar ==============

0x0bff0580 = BFPR - BIOS Flash primary region
0x0000e008 = HSFSTS - Hardware Sequencing Flash Status
0x00003f00 = HSFCTL - Hardware Sequencing Flash Control
0x00bfffc0 = FADDR - Flash Address
0x00000000 = Reserved
0xffffffff = FDATA0
0x0000ffff = FRACC - Flash Region Access Permissions
0x00000000 = Flash Region 0
0x0bff0580 = Flash Region 1
0x057f0003 = Flash Region 2
0x00020001 = Flash Region 3
0x00001fff = Flash Region 4
0x00000000 = FPR0 Flash Protected Range 0
0x00000000 = FPR0 Flash Protected Range 1
0x00000000 = FPR0 Flash Protected Range 2
0x00000000 = FPR0 Flash Protected Range 3
0x00000000 = FPR0 Flash Protected Range 4
0x00000080 = SSFSTS - Software Sequencing Flash Status
0x00000006 = PREOP - Prefix opcode Configuration
0x0000043b = OPTYPE - Opcode Type Configuration
0x0000019f05200302 = OPMENU - Opcode Menu Configuration
0x00000000 = BBAR - BIOS Base Address Configuration
0x00003008 = FDOC - Flash Descriptor Observability Control
0x00000000 = Reserved
0x00000007 = AFC - Additional Flash Control
0x00802005 = LVSCC - Host Lower Vendor Specific Component Capabilities
0x00002005 = UVSCC - Host Upper Vendor Specific Component Capabilities
0x00000000 = FPB - Flash Partition Boundary

I did some research and I seem to have understood that I cannot modify the BIOS LOCK register because it is written in the bios region on which I cannot write. Correct?
I have read that in some cases there are some exploits that allow modification of the registers but I don’t think I really understood how they work.

So my question is Can I change the bios via an external programmer?
I did a search on the CH341 but I don’t understand the difference between version A and B, does anyone know the differences?

Version A and B of what… what are you referring to?
All mod on Intel motherboards, usually can only be flashed with a CH341A, just search for other Intel board users experiences, on the forum.

EDIT: Oh that… never research it for that info, i had only CH341A (Black edition)
You’ll have to search yourself for that, sorry.

@MeatWar Hi, I am referring to the ch341 version

Thanks for the reply.
I searched Amazon and found this: CH341A and this: CH341B
I searched for the CH341B datasheets but found it only in Chinese

I could use ESP32 or RPI as an external programmer but I don’t have the clip to flash without soldering.
So the most practical solution is to buy the complete kit, can the one I linked be suitable?

Anyone of those should do the job, but keep in mind that these cheap programmers are not for medium/long time use or as professional tool.
Besides a more expensive/professinal programmer, there’s a lot of accessories like clips, interface cables, IC adapters to buy with more quality than these cheap kits.

An example of a better clip:
SOIC Clip, 8 Pin | Pomona Electronics

I know they are not tools for professional use.
I’m learning and I don’t think my use of it will ever be professional (never say never!)
what do you mean with “these cheap programmers are not for medium/long time use”

Means they don’t last…obviously, what else could these words mean?
Usually the clip contacts and wires get broken, depends also on the handling…but its all cheap stuff, period.

EDIT: Better…a bit, regarding the programmer itself, the rest of the accessories are equal and ordinary as the CH341A kits. Still a loosy clip…

This one if you can afford it + a decent clip:
Vogueing Tool TL866II Plus - Programmatore con 10 adattatori flash ad alte prestazioni, programmatore Bios Flash Eeprom USB, oltre 15000 supporti, universale : Amazon.it: Informatica

or

TL866II Universal TL866II Eprom Programmer Plus EEPROM FLASH 8051 AVR MCU GAL PIC con 10 Adattatori : Amazon.it: Informatica

The main issue here is a good clip with firm connection to the ICs, the connection to it is very sensible and requires training and a steady hand/grip.

Thats it, the rest is getting experience, training and your money pocket.
Good luck.

Sorry I misunderstood.
What do you think I should buy between the CH431A and EZP2019?
regards

Thank you very much for the explanation, I owe you a beer! :beers:
I understand your advice but at the moment it is an excessive expense, I want to practice and learn first.
I decided to go with an EZP2023+
just one last doubt can I use EZP2023+ on linux?
Thanks!

Cant confirm that… only a user that tried the 20xx on Linux, still there’s plenty of free apps around for flashing, now do they have support for this mode? We shouldn’t expect that, but i can confirm Linux support for the CH341A device and here’s a recent project shared by a forum user, of his work here:
IMSProg - universal i2c / SPI / MicroWire linux programmer for CH341a devices - Special Topics / Other Tools (not BIOS modding related) - Win-Raid Forum (level1techs.com)

I have been looking into the EZP2019 - EZP2023 issue in Linux. I contacted the manufacturer of the programmer (http://www.yaojiedianzi.com/) asking for the source code. The manufacturer said he would think about it and did not reply again.

Today I only have a chip base file editor for these Linux programmers.
(GitHub - bigbigmdm/EZP2019-EZP2025_chip_data_editor: QT based editor chip database for EZP2019, EZP2019+, EZP2020, EZP2023, EZP2025, MinPro programmer devices.)

1 Like

@MeatWar I own a TL866II plus, but I almost never use it. It’s a fine device but the software is very restrictive when using it on a chip not desoldered. It’s either a short or a bad contact.

I like the ‘stupidity’ of a CH341, but one should know how to check the results.

Btw.: Seems the 866II plus isn’t produced any longer, replaced by T48/T56?
http://www.autoelectric.cn/en/tl866_main.html

1 Like

Thanks to all for the help.I ordered this EZP2023+ but from what I read I’m already thinking of canceling the order…
I tried to write to the seller if there are software or sources available for Linux, I hope (but not too much) for a positive response.
Now there are 3 options

  • Purchase a CH341A instead of the EZP2023+ (What would be the limitations?)
  • Use the Windows VM with the supplied software (Probably the best thing to do)
  • Purchase the clip and use ESP32/RPI as a programmer (why complicate your life Jimmy?! He already is!)

waiting for your opinion, show me the ways of the force!

I found EZP2023+ USB Programmer Schematic here

ezp2023_schematic

@bigmdm Can I help you in any way to integrate this programmer?