In the case the BIOS fails an upgrade process, here is how you perform a low-level restore/repair.
The Steps
00 – Download the previous BIOS version or known working BIOS version.
01 – Use a USB flash drive (Sandisk 4GB flash worked) and format it with FAT default.
02 – Copy a single E430026.hdr file to the USB flash drive. Extracted and renamed from Dell E4300A26.exe (the bios update) by Start->Run->CMD, type e4300a26.exe /writehdrfile
03 – Remove the battery pack and plug in the USB flash.
04 – Hold the END key while you plug in the AC adapter.
05 – The battery LED will show orange.
06 – Release the END key immediately upon seeing orange color.
07 – After a couple of seconds, PC will start reading flash.
08 – You will see the battery LED flashes orange and blue (never RED), for about a minute or two, then the machine will reboot.
You’re done!
Misc Info
Tools for BIOS
http://www.box.net/shared/9yif6rf96u – BIOS sections and extract modules & unpack modules
https://app.box.com/shared/0orjdypm0l – Uncompressor
https://app.box.com/shared/q9v0gt3c34 – recompressed to exact size of marker 2.0
Uncompression algorithm code samples
Code:Code from d610_a06.hdr ; ds = in seg, si = 0 ; es = out seg, di = 0 ; dx = compressed size 000045C3: 6603D6 6add edx,esi 000045C6: 6633C9 Dxor ecx,ecx 000045C9: 663BF2 cmp esi,edx 000045CC: 736F jnc 00000463D --↓9 000045CE: 67AC lodsb 000045D0: A80F test al,00F 000045D2: 752B jnz 0000045FF --↓A 000045D4: 3CE0 cmp al,0E0 ;'р' 000045D6: 7418 jz 0000045F0 --↓B 000045D8: 3CF0 cmp al,0F0 ;'Ё' 000045DA: 740B jz 0000045E7 --↓C 000045DC: C0E804 shr al,4 000045DF: 8AC8 mov cl,al 000045E1: 41 inc cx 000045E2: F367A4 Erep movsb 000045E5: EBDF jmps 0000045C6 --↑D 000045E7: 67AC Clodsb 000045E9: 8AC8 mov cl,al 000045EB: 83C10F add cx,00F 000045EE: EBF2 jmps 0000045E2 --↑E 000045F0: 67AC Blodsb 000045F2: 8AC8 mov cl,al 000045F4: 41 inc cx 000045F5: 26678A47FF mov al,es:[edi][-1] 000045FA: F367AA rep stosb 000045FD: EBC7 jmps 0000045C6 --↑D 000045FF: 8AC8 Amov cl,al 00004601: 80E10F and cl,00F 00004604: 80F90F cmp cl,00F 00004607: 7421 jz 00000462A --↓7 00004609: FEC1 inc cl 0000460B: 2AE4 sub ah,ah 0000460D: C1E004 shl ax,4 00004610: 67AC lodsb 00004612: 668BDE Fmov ebx,esi 00004615: 668BF7 mov esi,edi 00004618: 660FB7C0 movzx eax,ax 0000461C: 662BF0 sub esi,eax 0000461F: 664E dec esi 00004621: F32667A4 rep movsb 00004625: 668BF3 mov esi,ebx 00004628: EB9C jmps 0000045C6 --↑D 0000462A: 8AC8 7mov cl,al 0000462C: 67AD lodsw 0000462E: 8AEC 8mov ch,ah 00004630: C1E904 shr cx,4 00004633: 83E13F and cx,03F ;'?' 00004636: 41 inc cx 00004637: 41 inc cx 00004638: C0EC02 shr ah,2 0000463B: EBD5 jmps 000004612 --↑F 0000463D: C3 9retnCode:And one more from D4600A12.hdr (quite older version) ; ds:si -> start of chain type A ; es:si -> where to store uncompressed module ; bl = module type to find and uncompress 0006C712: FC cld 0006C713: 8BC6 5mov ax,si 0006C715: C1E804 shr ax,4 0006C718: 8CDA mov dx,ds 0006C71A: 03D0 add dx,ax 0006C71C: 8EDA mov ds,dx 0006C71E: 83E60F and si,00F 0006C721: AD lodsw 0006C722: 8BD0 mov dx,ax 0006C724: AC lodsb 0006C725: 3AC3 cmp al,bl 0006C727: 7404 jz 00006C72D --↓4 0006C729: 03F2 add si,dx 0006C72B: EBE6 jmps 00006C713 --↑5 0006C72D: 03D6 4add dx,si 0006C72F: 2AED sub ch,ch 0006C731: 3BF2 9cmp si,dx 0006C733: 7356 jnc 00006C78B --↓6 0006C735: AC lodsb 0006C736: A80F test al,00F 0006C738: 7521 jnz 00006C75B --↓7 0006C73A: 3CE0 cmp al,0E0 ;'р' 0006C73C: 730A jnc 00006C748 --↓8 0006C73E: C0E804 shr al,4 0006C741: 8AC8 mov cl,al 0006C743: 41 inc cx 0006C744: F3A4 Brep movsb 0006C746: EBE9 jmps 00006C731 --↑9 0006C748: AC 8lodsb 0006C749: 8AC8 mov cl,al 0006C74B: 7405 jz 00006C752 --↓A 0006C74D: 83C10F add cx,00F 0006C750: EBF2 jmps 00006C744 --↑B 0006C752: 41 Ainc cx 0006C753: 268A45FF mov al