Sandy/Ivy Bridge microcode update for Samsung notebook

@Lost_N_BIOS Thanks for your offer!

Yes fptw64 can read and write what i calls the bios region. That bios region would be the last 3MB (see backup file) in an 8MB chip with an 1.5MB Intel ME 8 which occupies the first 5 MB of the chip (exept for the descriptor region) and is called ME- region by fptw??? The original bios update on the other hand is 6MB. It holds also some elements needed for flashing but I think that’s not enough to completely explain the difference in size.

Bios files
ITEM_20131112_21253_WIN_P09RAP.exe - Samsung update (latest)
RAP.zip content of item_20131112…exe
backup_old.rom backup before flash
backup_new.rom backup after flash
(Both pulled via fptw64.exe [fptw64 -bios -d backup_xxx.rom])

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


FW Status Register1: 0x1E000245
FW Status Register2: 0x60000106

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

Windows OS Version : 6.1.7601 “Service Pack 1”
OS BIOS Support : Legacy

Table Type 0 ( 0x 00 ) found, size of 24 (0x 18 ) bytes

Windows OS Version : 6.1.7601 “Service Pack 1”
OS BIOS Support : Legacy

Table Type 0 ( 0x 00 ) found, size of 24 (0x 18 ) bytes
Table Type 1 ( 0x 01 ) found, size of 27 (0x 1B ) bytes
Table Type 2 ( 0x 02 ) found, size of 15 (0x 0F ) bytes
Table Type 3 ( 0x 03 ) found, size of 22 (0x 16 ) bytes
Table Type 4 ( 0x 04 ) found, size of 42 (0x 2A ) bytes
Table Type 7 ( 0x 07 ) found, size of 19 (0x 13 ) bytes
Table Type 7 ( 0x 07 ) found, size of 19 (0x 13 ) bytes
Table Type 7 ( 0x 07 ) found, size of 19 (0x 13 ) bytes
Table Type 7 ( 0x 07 ) found, size of 19 (0x 13 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 8 ( 0x 08 ) found, size of 9 (0x 09 ) bytes
Table Type 9 ( 0x 09 ) found, size of 17 (0x 11 ) bytes
Table Type 9 ( 0x 09 ) found, size of 17 (0x 11 ) bytes
Table Type 9 ( 0x 09 ) found, size of 17 (0x 11 ) bytes
Table Type 9 ( 0x 09 ) found, size of 17 (0x 11 ) bytes
Table Type 9 ( 0x 09 ) found, size of 17 (0x 11 ) bytes
Table Type 9 ( 0x 09 ) found, size of 17 (0x 11 ) bytes
Table Type 10 ( 0x 0A ) found, size of 6 (0x 06 ) bytes
Table Type 10 ( 0x 0A ) found, size of 6 (0x 06 ) bytes
Table Type 11 ( 0x 0B ) found, size of 5 (0x 05 ) bytes
Table Type 12 ( 0x 0C ) found, size of 5 (0x 05 ) bytes
Table Type 13 ( 0x 0D ) found, size of 22 (0x 16 ) bytes
Table Type 15 ( 0x 0F ) found, size of 81 (0x 51 ) bytes
Table Type 18 ( 0x 12 ) found, size of 23 (0x 17 ) bytes
Table Type 21 ( 0x 15 ) found, size of 7 (0x 07 ) bytes
Table Type 22 ( 0x 16 ) found, size of 26 (0x 1A ) bytes
Table Type 23 ( 0x 17 ) found, size of 13 (0x 0D ) bytes
Table Type 24 ( 0x 18 ) found, size of 5 (0x 05 ) bytes
Table Type 27 ( 0x 1B ) found, size of 14 (0x 0E ) bytes
Table Type 32 ( 0x 20 ) found, size of 11 (0x 0B ) bytes
Table Type 39 ( 0x 27 ) found, size of 22 (0x 16 ) bytes
Table Type 129 ( 0x 81 ) found, size of 8 (0x 08 ) bytes
Table Type 131 ( 0x 83 ) found, size of 64 (0x 40 ) bytes
MEBx Version found is 0.0.0.0000

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 0x1101C60
Feature enablement is 0x1101C60
Platform type is 0x72410321
GBE Region does not exist.
Intel(R) ME code versions:

BIOS Version: P09RAP
MEBx Version: 0.0.0.0000
Gbe Version: Unknown
VendorID: 8086
PCH Version: 4
FW Version: 8.1.70.1590
UNS Version: Not Available
LMS Version: Not Available
MEI Driver Version: 11.0.5.1189
Wireless Hardware Version: Not Available
Wireless Driver Version: Not Available

FW Capabilities: 0x01101C60

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 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: Disabled
Last ME reset reason: Power up
Local FWUpdate: Enabled

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

Get flash master region access status…done
Host Read Access to ME: Disabled
Host Write Access to ME: Disabled
SPI Flash ID #1: C84017
SPI Flash ID VSCC #1: 20052005
SPI Flash BIOS VSCC: 20052005
Protected Range Register Base #0 0x510
Protected Range Register Limit #0 0x6EF
Protected Range Register Base #1 0x760
Protected Range Register Limit #1 0x7FF
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 ME FWU Platform Attribute (WLAN ucode) command…done
Localized Language: Unknown

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

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


FW Status Register1: 0x1E000245
FW Status Register2: 0x60000106

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

Get FWU info command…done

Get FWU version command…done

Get FWU feature state command…done

Get ME FWU platform type command…done

Get ME FWU feature capability command…done
Feature enablement is 0x1101C60
gFeatureAvailability value is 0x1

Request Intel(R) ME test result command…done
System is running on consumer/1.5M image, start Intel(R) ME Runtime Test

ME initialization state valid
ME operation mode valid
Current operation state valid
ME error state valid
Verifying FW Status Register1…done
OEM ICC data valid and programmed correctly

Request Intel(R) ME test result command…done
vsccommn.bin was created on 04:35:50 08/08/2012 GMT
SPI Flash ID #1 ME VSCC value is 0x2005
SPI Flash ID #1 (ID: 0xC84017) ME VSCC value checked
SPI Flash ID #1 BIOS VSCC value is 0x2005
SPI Flash ID #1 (ID: 0xC84017) BIOS VSCC value checked
FPBA value is 0x0
No Intel vPro Wireless device was found

Request Intel(R) ME Runtime BIST test command…done

Get Intel(R) ME test data command…done
Total of 12 Intel(R) ME test result retrieved

MicroKernel - Internal Hardware Tests: Internal Hardware Tests - Passed

Policy Kernel - Power Package: Package 1 supported - Passed
Policy Kernel - Power Package: Default package supported - Passed

MicroKernel - Blob Manager: Set - Passed
MicroKernel - Blob Manager: Get - Passed
MicroKernel - Blob Manager: Remove - Passed

Policy Kernel - ME Configuration: Wlan Power Well - Passed
Policy Kernel - ME Configuration: PROC_MISSING - Passed
Policy Kernel - ME Configuration: M3 Power Rails Available - Passed
Policy Kernel - ME Recovery: ME Recovery mode check - Passed
Policy Kernel - Embedded Controller: Power source type - Passed
Policy Kernel - SMBus: Read byte - Passed

Clear Intel(R) ME test data command…done
Get EPID Group ID command…done

EPID Group ID: 936

EPID GID Check passed

MEManuf Test Passed
Anyway- I flashed the Microcode segment separately (62kb) and everything works, there’s just a checksum- error for GUID FFF12B8D-7696-4C8B-A985-2747075B4F50 that exists in both the backup before and after flash (‘CF4Ch, invalid, should be 6A0Ch’). Tried to search for variables in the modules with Universal IFR Extractor, especially allowing rollback flashing, but wasn’t successful up to now. I’ll have to disassemble the notebook again and then I’ll try to dump the complete chip via SPI flasher!

Thanks in advance!

You’re welcome! Yes, ME region is -ME in FPTw and Flash Descriptor (FD) is -desc

I’d have to extract the original BIOS package to tell you what all it contains to explain sizes etc, please link and I’ll check. However, it’s irrelevant to what you’re doing here if you’re only updating microcodes, in that case all you need to do is extract the BIOS region, edit it and flash it back
You may need to unlock BIOS region write via grub if you get error 368 or similar when writing back with FPT, I can help you around that later if need be.
You can test and find out now, without modifications, by dumping BIOS region as mentioned and then flash it right back without doing anything to it, if you get no errors then all OK, if you get error then we need to unlock.

For the checkum error, if it’s in original you can ignore or correct, either should be fine. You can find this error module with UEFITool probably. I will check your files above

* Edit - From the exe, the P09RAP.cap file is the main BIOS package that gets flashed as I’m sure you know. This contains 3MB empty space, main BIOS region is GUID 6C60EE00-C316-4C95-A684-CDC7E7033311 (Minus header of 114bytes)
I see checksum at GUID 00504624-8A59-4EEB-BD0F-6B36E96128E0 (FpNvStorage) - Volume Header checksum >> BAD9h, invalid, should be B9E9h
And at GUID FFF12B8D-7696-4C8B-A985-2747075B4F50 (EfiSystemNvDataFv) - Volume Header checksum >> CF4Ch, invalid, should be 6A0Ch

Both are NVRAM areas, and the last one above matching what you mentioned is the one that contains CPU microcodes, SLIC and EVSA Store information.

So as mentioned, and as you suspected, since these are in original BIOS they are OK to ignore.

Backup_new.rom only contains two microcodes? If that is what you wanted, OK

@Lost_N_BIOS Thanks for your answer!

Right, I never checked the free space in the end of the update file- it’s indeed almost 3 MB! But that would mean there’s nothing relevant for the bios hidden in the ME- region and I should be able to find my rollback variable in the 3MB backup (if it’s named correctly)!

Yes, there are just 2 microcodes- they cover what I’m going to use on this board (i3-2330M, i5-2450M and possibly i5-3380M) I first tried to keep/ update all, but there was no room- so I chose to keep just these 2 codes.

Thanks for your effort!

ME is not contained in that BIOS download, it’s only partial BIOS like Asus does. ME FW would be from separate package from them, or possibly in other BIOS download versions, but this one does not contain ME

In the phlash.ini file you can change
ForceUpdate=0 << To 1

Or you can also try using non-OEM WinPhlash. I put 3 different ini’s in there, rename them without the number to be the one used, and you can edit as you see fit.
#3 may be best one for you to use, change forceupdate, and of course change filenames to match the ones you are currently using in the file name fields
http://s000.tinyupload.com/index.php?fil…268274645827042

If that doesn’t work, we maybe need to find same version winphlash your package includes, but non-OEM

I updated ME already to the latest version, that seems to be OK.

Thanks for the file! But WinPhlash seems a little old- is it designed for UEFI Bios? it crashes when reading the bios file. Settings were ‘backup the bios’.

— Log started: 11/24/18 22:14:05
Initializing…
Log file : E:\Phoenix WinPhlash v1.7.16.0\PHLASH.LOG
Settings file : E:\Phoenix WinPhlash v1.7.16.0\PHLASH.INI (found)
Executable : E:\Phoenix WinPhlash v1.7.16.0\WinPhlash.exe
Version : 1.7.16.0 Build : WinPhlash
Date : 11/23/2018
Resource file : E:\Phoenix WinPhlash v1.7.16.0\PHLASHLC.DLL (loaded)
Help file : E:\Phoenix WinPhlash v1.7.16.0\WINPHLASH.HLP
App name : Phoenix WinPhlash
OS Information : Windows NT 6.1.7601 Service Pack 1 - supported
isNT_AUTHORITY_SYSTEM_account: => False.
gVBL_Flag = False(0h).

[11/24/18 22:14:41]
Preparation stage

Processing parameters…
Image file : E:\Phoenix WinPhlash v1.7.16.0\P09RAP.cap
Backup file : E:\Phoenix WinPhlash v1.7.16.0\bios.bak

Loading new BIOS image file…
Opening file E:\Phoenix WinPhlash v1.7.16.0\P09RAP.cap…
Allocating 6291536 bytes…
Reading 32768 bytes from the file starting at 0…
Reading 32768 bytes from the file starting at 32768…
Reading 32768 bytes from the file starting at 65536…
Reading 32768 bytes from the file starting at 98304…
Reading 32768 bytes from the file starting at 131072…
Reading 32768 bytes from the file starting at 163840…
Reading 32768 bytes from the file starting at 196608…
Reading 32768 bytes from the file starting at 229376…
Reading 32768 bytes from the file starting at 262144…
Reading 32768 bytes from the file starting at 294912…
Reading 32768 bytes from the file starting at 327680…
Reading 32768 bytes from the file starting at 360448…
Reading 32768 bytes from the file starting at 393216…
Reading 32768 bytes from the file starting at 425984…
Reading 32768 bytes from the file starting at 458752…
Reading 32768 bytes from the file starting at 491520…
Reading 32768 bytes from the file starting at 524288…
Reading 32768 bytes from the file starting at 557056…
Reading 32768 bytes from the file starting at 589824…
Reading 32768 bytes from the file starting at 622592…
Reading 32768 bytes from the file starting at 655360…
Reading 32768 bytes from the file starting at 688128…
Reading 32768 bytes from the file starting at 720896…
Reading 32768 bytes from the file starting at 753664…
Reading 32768 bytes from the file starting at 786432…
Reading 32768 bytes from the file starting at 819200…
Reading 32768 bytes from the file starting at 851968…
Reading 32768 bytes from the file starting at 884736…
Reading 32768 bytes from the file starting at 917504…
Reading 32768 bytes from the file starting at 950272…
Reading 32768 bytes from the file starting at 983040…
Reading 32768 bytes from the file starting at 1015808…
Reading 32768 bytes from the file starting at 1048576…
Reading 32768 bytes from the file starting at 1081344…
Reading 32768 bytes from the file starting at 1114112…
Reading 32768 bytes from the file starting at 1146880…
Reading 32768 bytes from the file starting at 1179648…
Reading 32768 bytes from the file starting at 1212416…
Reading 32768 bytes from the file starting at 1245184…
Reading 32768 bytes from the file starting at 1277952…
Reading 32768 bytes from the file starting at 1310720…
Reading 32768 bytes from the file starting at 1343488…
Reading 32768 bytes from the file starting at 1376256…
Reading 32768 bytes from the file starting at 1409024…
Reading 32768 bytes from the file starting at 1441792…
Reading 32768 bytes from the file starting at 1474560…
Reading 32768 bytes from the file starting at 1507328…
Reading 32768 bytes from the file starting at 1540096…
Reading 32768 bytes from the file starting at 1572864…
Reading 32768 bytes from the file starting at 1605632…
Reading 32768 bytes from the file starting at 1638400…
Reading 32768 bytes from the file starting at 1671168…
Reading 32768 bytes from the file starting at 1703936…
Reading 32768 bytes from the file starting at 1736704…
Reading 32768 bytes from the file starting at 1769472…
Reading 32768 bytes from the file starting at 1802240…
Reading 32768 bytes from the file starting at 1835008…
Reading 32768 bytes from the file starting at 1867776…
Reading 32768 bytes from the file starting at 1900544…
Reading 32768 bytes from the file starting at 1933312…
Reading 32768 bytes from the file starting at 1966080…
Reading 32768 bytes from the file starting at 1998848…
Reading 32768 bytes from the file starting at 2031616…
Reading 32768 bytes from the file starting at 2064384…
Reading 32768 bytes from the file starting at 2097152…
Reading 32768 bytes from the file starting at 2129920…
Reading 32768 bytes from the file starting at 2162688…
Reading 32768 bytes from the file starting at 2195456…
Reading 32768 bytes from the file starting at 2228224…
Reading 32768 bytes from the file starting at 2260992…
Reading 32768 bytes from the file starting at 2293760…
Reading 32768 bytes from the file starting at 2326528…
Reading 32768 bytes from the file starting at 2359296…
Reading 32768 bytes from the file starting at 2392064…
Reading 32768 bytes from the file starting at 2424832…
Reading 32768 bytes from the file starting at 2457600…
Reading 32768 bytes from the file starting at 2490368…
Reading 32768 bytes from the file starting at 2523136…
Reading 32768 bytes from the file starting at 2555904…
Reading 32768 bytes from the file starting at 2588672…
Reading 32768 bytes from the file starting at 2621440…
Reading 32768 bytes from the file starting at 2654208…
Reading 32768 bytes from the file starting at 2686976…
Reading 32768 bytes from the file starting at 2719744…
Reading 32768 bytes from the file starting at 2752512…
Reading 32768 bytes from the file starting at 2785280…
Reading 32768 bytes from the file starting at 2818048…
Reading 32768 bytes from the file starting at 2850816…
Reading 32768 bytes from the file starting at 2883584…
Reading 32768 bytes from the file starting at 2916352…
Reading 32768 bytes from the file starting at 2949120…
Reading 32768 bytes from the file starting at 2981888…
Reading 32768 bytes from the file starting at 3014656…
Reading 32768 bytes from the file starting at 3047424…
Reading 32768 bytes from the file starting at 3080192…
Reading 32768 bytes from the file starting at 3112960…
Reading 32768 bytes from the file starting at 3145728…
Reading 32768 bytes from the file starting at 3178496…
Reading 32768 bytes from the file starting at 3211264…
Reading 32768 bytes from the file starting at 3244032…
Reading 32768 bytes from the file starting at 3276800…
Reading 32768 bytes from the file starting at 3309568…
Reading 32768 bytes from the file starting at 3342336…
Reading 32768 bytes from the file starting at 3375104…
Reading 32768 bytes from the file starting at 3407872…
Reading 32768 bytes from the file starting at 3440640…
Reading 32768 bytes from the file starting at 3473408…
Reading 32768 bytes from the file starting at 3506176…
Reading 32768 bytes from the file starting at 3538944…
Reading 32768 bytes from the file starting at 3571712…
Reading 32768 bytes from the file starting at 3604480…
Reading 32768 bytes from the file starting at 3637248…
Reading 32768 bytes from the file starting at 3670016…
Reading 32768 bytes from the file starting at 3702784…
Reading 32768 bytes from the file starting at 3735552…
Reading 32768 bytes from the file starting at 3768320…
Reading 32768 bytes from the file starting at 3801088…
Reading 32768 bytes from the file starting at 3833856…
Reading 32768 bytes from the file starting at 3866624…
Reading 32768 bytes from the file starting at 3899392…
Reading 32768 bytes from the file starting at 3932160…
Reading 32768 bytes from the file starting at 3964928…
Reading 32768 bytes from the file starting at 3997696…
Reading 32768 bytes from the file starting at 4030464…
Reading 32768 bytes from the file starting at 4063232…
Reading 32768 bytes from the file starting at 4096000…
Reading 32768 bytes from the file starting at 4128768…
Reading 32768 bytes from the file starting at 4161536…
Reading 32768 bytes from the file starting at 4194304…
Reading 32768 bytes from the file starting at 4227072…
Reading 32768 bytes from the file starting at 4259840…
Reading 32768 bytes from the file starting at 4292608…
Reading 32768 bytes from the file starting at 4325376…
Reading 32768 bytes from the file starting at 4358144…
Reading 32768 bytes from the file starting at 4390912…
Reading 32768 bytes from the file starting at 4423680…
Reading 32768 bytes from the file starting at 4456448…
Reading 32768 bytes from the file starting at 4489216…
Reading 32768 bytes from the file starting at 4521984…
Reading 32768 bytes from the file starting at 4554752…
Reading 32768 bytes from the file starting at 4587520…
Reading 32768 bytes from the file starting at 4620288…
Reading 32768 bytes from the file starting at 4653056…
Reading 32768 bytes from the file starting at 4685824…
Reading 32768 bytes from the file starting at 4718592…
Reading 32768 bytes from the file starting at 4751360…
Reading 32768 bytes from the file starting at 4784128…
Reading 32768 bytes from the file starting at 4816896…
Reading 32768 bytes from the file starting at 4849664…
Reading 32768 bytes from the file starting at 4882432…
Reading 32768 bytes from the file starting at 4915200…
Reading 32768 bytes from the file starting at 4947968…
Reading 32768 bytes from the file starting at 4980736…
Reading 32768 bytes from the file starting at 5013504…
Reading 32768 bytes from the file starting at 5046272…
Reading 32768 bytes from the file starting at 5079040…
Reading 32768 bytes from the file starting at 5111808…
Reading 32768 bytes from the file starting at 5144576…
Reading 32768 bytes from the file starting at 5177344…
Reading 32768 bytes from the file starting at 5210112…
Reading 32768 bytes from the file starting at 5242880…
Reading 32768 bytes from the file starting at 5275648…
Reading 32768 bytes from the file starting at 5308416…
Reading 32768 bytes from the file starting at 5341184…
Reading 32768 bytes from the file starting at 5373952…
Reading 32768 bytes from the file starting at 5406720…
Reading 32768 bytes from the file starting at 5439488…
Reading 32768 bytes from the file starting at 5472256…
Reading 32768 bytes from the file starting at 5505024…
Reading 32768 bytes from the file starting at 5537792…
Reading 32768 bytes from the file starting at 5570560…
Reading 32768 bytes from the file starting at 5603328…
Reading 32768 bytes from the file starting at 5636096…
Reading 32768 bytes from the file starting at 5668864…
Reading 32768 bytes from the file starting at 5701632…
Reading 32768 bytes from the file starting at 5734400…
Reading 32768 bytes from the file starting at 5767168…
Reading 32768 bytes from the file starting at 5799936…
Reading 32768 bytes from the file starting at 5832704…
Reading 32768 bytes from the file starting at 5865472…
Reading 32768 bytes from the file starting at 5898240…
Reading 32768 bytes from the file starting at 5931008…
Reading 32768 bytes from the file starting at 5963776…
Reading 32768 bytes from the file starting at 5996544…
Reading 32768 bytes from the file starting at 6029312…
Reading 32768 bytes from the file starting at 6062080…
Reading 32768 bytes from the file starting at 6094848…
Reading 32768 bytes from the file starting at 6127616…
Reading 32768 bytes from the file starting at 6160384…
Reading 32768 bytes from the file starting at 6193152…
Reading 32768 bytes from the file starting at 6225920…
Reading 32768 bytes from the file starting at 6258688…
Reading 80 bytes from the file starting at 6291456…

Looking for interface descriptors and code…
cbSearch= 8192 (0x00002000)
cbSearch= 12288 (0x00003000)
cbSearch= 16384 (0x00004000)
cbSearch= 20480 (0x00005000)
cbSearch= 24576 (0x00006000)
cbSearch= 28672 (0x00007000)
cbSearch= 32768 (0x00008000)
cbSearch= 36864 (0x00009000)
cbSearch= 40960 (0x0000A000)
cbSearch= 45056 (0x0000B000)
cbSearch= 49152 (0x0000C000)
cbSearch= 53248 (0x0000D000)
cbSearch= 57344 (0x0000E000)
cbSearch= 61440 (0x0000F000)
cbSearch= 65536 (0x00010000)
cbSearch= 69632 (0x00011000)
Failed: no Part signature found in the file

Error code : -161(0xFFFFFF5F)
Description:
Part Table Signature not found in the Interface.
Error code: -161
— Log stopped: 11/24/18 22:17:24
I think I will stop messing with the bios region for now- the newer microcode files do work (well, at least the Sandy Bridge version), Samsung will never deliver a newer Bios, I got a backup of the bios region that I could flash back with fptw. So for the moment it’s more a theoretical thing to find out how to flash the same bios version with Phoenix tools- next thing will be to get a full bios backup before I begin possibly with the bios region again.

Thanks a lot for your help!

I am not sure on winphlash, just know sometimes you have to use a non-OEM version, and that was the latest I had on hand. You may need to find older 1.4ish version non-OEM to use for your system, that is latest 1.7 something I think.

Using the stock package, edit the phlash.ini and phlash64.ini to include the following as mentioned, that may let you flash how you wanted.
ForceUpdate=0 << To 1

Just to make things complete: The microcode update on te NP300E5C works for an Ivy- Bridge processor, too

306a9.jpg

For this board with 40 pin LVDS/ camera connector the screen can be updated to 1920 x 1080 (N156HGE-L11). One needs a different LVDS- cable (ba39-01166a) and for models with thin display different mountings/frame.
The older notebook NP300E5A (HM65, i5-2450M) does accept 16 GB of memory, too. Windows 10 works fine and its memory diagnostics reports no fault (2 8 GB- modules Crucial CT102464BF160B).

NP300E5C HM75 update with microcode 21 for 306A9 same way- works fine. Seems to enable retpoline for Ivy-Bridge on Windows 10 1809

Backup old bios: fptw64.exe -bios -d bios_old.rom
Pull microcodes: fptw64.exe -d mcbackup.bin -A 0x6f0048 -L 0xF800 (addresses bios specific)
Switch 306A9 microcode in hexeditor
Flash back file with new microcode: fptw64.exe -f mcnew.bin -A 0x6f0048 -L 0xF800 (addresses bios specific)
Backup patched bios: fptw64.exe -bios -d bios_new.rom
Compare bios_old.rom with bios_new.rom- the only difference should be the new microcode
(Of course one could pull the complete bios, patch it and flash it back! But smaller files are easier to handle for me in a hex-editor )

mc_backup.jpg

mc_flash.jpg

showmv_21.jpg

retpoline.jpg

Thanks to Plutomaniac for keeping the mc- repository up to date and for all others who search for microcodes!


Found another way, no so corresponding with bios specific adresses
Need Uefitool_NE_55, Uefitool 0.26, Hex editor
First step is dump bios and open in Uefitool_NE_55 and looking for microcode section.
"Export as is" the "Padding" block from the END of "microcode" block
Available for future microcodes space will A+B


Next step, to collect microcodes for cpu on your demands, it possible to "extract as is" with Uefitool_NE_55 from bios dump or from github collection or extract from intel microcode.dat with "microdecoder.exe". Total size of microcodes no more than A+B!!! This important!
Next, with HeX editor combine selected microcodes to one file, add previously exported "Padding" to the end. Save file as "microcodes_X.bin" for example.
And replace "microcode body" with this "microcodes_X.bin" in Uefitool 0.26

After saving, open rebuild bios file in Uefitool_NE_55 and check, that all selected microcodes presents in. Job finished.
I’m not sure that this always suitable way, but it works fine with Elitebooks 8470p and Latitudes E6420 & E6430

Thanks for your answer! Of course there are many ways to update this bios and for most of us it might feel a lot safer to flash a complete bios they could check beforehand!

I ran into another "problem;: The older NP300E5A HM65 Notebook has a switch to enable SATA GEN3 Mode on the first SATA port. The newer NP300E5C (HM75) dosn’t have that switch and the default is SATA2 (3Gb/s) I’m afraid I won’t ‘feel’ the difference, but it feels better anyway and I learned a little about EFI- shell and EFI- variables…

I read a lot about EFI variables and how to enable advanced menus in bios- but I’d have to admit: No clear understandig so far

  1. Backup the bios: fptw64 -bios -d backup.rom
  2. Find the settings store for the advanced settings- searched the backup with UEFItool NE for GEN3 and found 3 regions
    A. C3491A75-7600-460F-810B-FC703944D1BE SamsungSetupAdvancedDxe.efi
    B. 2D6F37BF-9AFC-4AA5-A026-32B2FCF30FB9 PlatformDxe.efi
    C. CFEF94C4-4167-466A-8893-8779459DFA86 PlatformHiiAdvancedDxe.efi
  3. Extracted all these regions, ran Donovans Universal IFR Extractor-0.7 over them and got
    for B) almost no forms
    for C) not SATA but PEG, but
    A) has the advanced settings!
SATA GEN3 Mode

Suppress If {0A 82}
64 Bit Unsigned Int: 0x1 {45 0A 01 00 00 00 00 00 00 00}
Gray Out If {19 82}
Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
Not {17 02}
End {29 02}
One Of: SATA GEN3 Mode, VarStoreInfo (VarOffset/VarName): 0x148, VarStore: 0x6, QuestionId: 0xD, Size: 1, Min: 0x0, Max 0xFF, Step: 0x0 {05 A6 17 00 18 00 0D 00 06 00 48 01 00 10 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
One Of Option: Disabled, Value (8 bit): 0x2 (default) {09 0E 2C 00 10 00 02 00 00 00 00 00 00 00}
One Of Option: Enabled, Value (8 bit): 0x3 {09 0E 2B 00 00 00 03 00 00 00 00 00 00 00}
End One Of {29 02}
End If {29 02}
End If {29 02}

complete output
                      UEFI Protocol Detected

                            String Packages

Offset: Language:

0x35C en-US (0x0)
0x1769 fr-FR (0x1)
0x17B4 ja-JP (0x2)
0x17F5 ko-KR (0x3)
0x18BE ru-RU (0x4)

                               Form Sets

Offset: Title:

0x190C Advanced (0x2 from string package 0x0)

                     Internal Forms Representation

Offset: Instruction:

0x1910 Form Set: Advanced [5FB10979-5AE2-4622-A98E-270956BB8D35], ClassGuid0 [93039971-8545-4B04-B45E-32EB8326040E] {0E A7 79 09 B1 5F E2 5A 22 46 A9 8E 27 09 56 BB 8D 35 02 00 2A 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E}
0x1937 Guid: [0F0B1735-87A0-4193-B266-538C38AF48CE] {5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 03 01 00}
0x194C Guid: [0F0B1735-87A0-4193-B266-538C38AF48CE] {5F 15 35 17 0B 0F A0 87 93 41 B2 66 53 8C 38 AF 48 CE 04 00 00}
0x1961 Default Store: en-US, DefaultId: 0x0 {5C 06 00 00 00 00}
0x1967 Default Store: en-US, DefaultId: 0x1 {5C 06 00 00 01 00}
0x196D VarStore: VarStoreId: 0x1 [5FB10979-5AE2-4622-A98E-270956BB8D35], Size: 0x5, Name: ADVANCED_INFO {24 24 79 09 B1 5F E2 5A 22 46 A9 8E 27 09 56 BB 8D 35 01 00 05 00 41 44 56 41 4E 43 45 44 5F 49 4E 46 4F 00}
0x1991 VarStore: VarStoreId: 0x2 [E6A849B2-36EC-4C2F-9B84-CD89907EECB1], Size: 0xA0, Name: SamsungSetup {24 23 B2 49 A8 E6 EC 36 2F 4C 9B 84 CD 89 90 7E EC B1 02 00 A0 00 53 61 6D 73 75 6E 67 53 65 74 75 70 00}
0x19B4 VarStore: VarStoreId: 0x3 [E947FCF9-DD01-4965-B808-32A7B6815657], Size: 0x46, Name: System {24 1D F9 FC 47 E9 01 DD 65 49 B8 08 32 A7 B6 81 56 57 03 00 46 00 53 79 73 74 65 6D 00}
0x19D1 VarStore: VarStoreId: 0x4 [7D4ADCE1-930D-40C7-9CD2-6D2148413DC7], Size: 0x33, Name: CpuProtocolSetupVar {24 2A E1 DC 4A 7D 0D 93 C7 40 9C D2 6D 21 48 41 3D C7 04 00 33 00 43 70 75 50 72 6F 74 6F 63 6F 6C 53 65 74 75 70 56 61 72 00}
0x19FB VarStore: VarStoreId: 0x5 [4DFBBAAB-1392-4FDE-ABB8-C41CC5AD7D5D], Size: 0x105, Name: Setup {24 1C AB BA FB 4D 92 13 DE 4F AB B8 C4 1C C5 AD 7D 5D 05 00 05 01 53 65 74 75 70 00}
0x1A17 VarStore: VarStoreId: 0x6 [04BD8413-15F9-43F3-9675-4618E03240E3], Size: 0x224, Name: PchProtocolSetupVar {24 2A 13 84 BD 04 F9 15 F3 43 96 75 46 18 E0 32 40 E3 06 00 24 02 50 63 68 50 72 6F 74 6F 63 6F 6C 53 65 74 75 70 56 61 72 00}
0x1A41 Form: Advanced, FormId: 0x1 {01 86 01 00 02 00}
0x1A47 Suppress If {0A 82}
0x1A49 True {46 02}
0x1A4B One Of: , VarStoreInfo (VarOffset/VarName): 0x2, VarStore: 0x1, QuestionId: 0x1, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 2A 00 2A 00 01 00 01 00 02 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1A71 One Of Option: , Value (8 bit): 0x0 {09 0E 2A 00 00 00 00 00 00 00 00 00 00 00}
0x1A7F End One Of {29 02}
0x1A81 End If {29 02}
0x1A83 Suppress If {0A 82}
0x1A85 True {46 02}
0x1A87 One Of: , VarStoreInfo (VarOffset/VarName): 0x3, VarStore: 0x1, QuestionId: 0x2, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 2A 00 2A 00 02 00 01 00 03 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1AAD One Of Option: , Value (8 bit): 0x0 {09 0E 2A 00 00 00 00 00 00 00 00 00 00 00}
0x1ABB End One Of {29 02}
0x1ABD End If {29 02}
0x1ABF Suppress If {0A 82}
0x1AC1 QuestionId: 0x1 equals value 0x0 {12 86 01 00 00 00}
0x1AC7 QuestionId: 0x2 equals value 0x0 {12 06 02 00 00 00}
0x1ACD And {15 02}
0x1ACF End {29 02}
0x1AD1 Gray Out If {19 82}
0x1AD3 Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
0x1AE5 Not {17 02}
0x1AE7 End {29 02}
0x1AE9 One Of: CPU Power Saving Mode, VarStoreInfo (VarOffset/VarName): 0x20, VarStore: 0x2, QuestionId: 0x3, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 A6 03 00 04 00 03 00 02 00 20 00 00 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1B0F One Of Option: Disabled, Value (8 bit): 0x0 {09 0E 2C 00 00 00 00 00 00 00 00 00 00 00}
0x1B1D One Of Option: Enabled, Value (8 bit): 0x1 (default) {09 0E 2B 00 10 00 01 00 00 00 00 00 00 00}
0x1B2B End One Of {29 02}
0x1B2D End If {29 02}
0x1B2F End If {29 02}
0x1B31 Suppress If {0A 82}
0x1B33 True {46 02}
0x1B35 One Of: , VarStoreInfo (VarOffset/VarName): 0x4, VarStore: 0x1, QuestionId: 0x4, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 2A 00 2A 00 04 00 01 00 04 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1B5B One Of Option: , Value (8 bit): 0x0 {09 0E 2A 00 00 00 00 00 00 00 00 00 00 00}
0x1B69 End One Of {29 02}
0x1B6B End If {29 02}
0x1B6D Suppress If {0A 82}
0x1B6F QuestionId: 0x4 equals value 0x0 {12 06 04 00 00 00}
0x1B75 Gray Out If {19 82}
0x1B77 Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
0x1B89 Not {17 02}
0x1B8B End {29 02}
0x1B8D One Of: Hyperthreading, VarStoreInfo (VarOffset/VarName): 0x0, VarStore: 0x4, QuestionId: 0x5, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 A6 05 00 06 00 05 00 04 00 00 00 00 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1BB3 One Of Option: Disabled, Value (8 bit): 0x0 {09 0E 2C 00 00 00 00 00 00 00 00 00 00 00}
0x1BC1 One Of Option: Enabled, Value (8 bit): 0x1 (default) {09 0E 2B 00 10 00 01 00 00 00 00 00 00 00}
0x1BCF End One Of {29 02}
0x1BD1 End If {29 02}
0x1BD3 End If {29 02}
0x1BD5 Gray Out If {19 82}
0x1BD7 Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
0x1BE9 Not {17 02}
0x1BEB End {29 02}
0x1BED One Of: EDB (Execute Disable Bit), VarStoreInfo (VarOffset/VarName): 0x3, VarStore: 0x4, QuestionId: 0x6, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 A6 07 00 08 00 06 00 04 00 03 00 00 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1C13 One Of Option: Disabled, Value (8 bit): 0x0 {09 0E 2C 00 00 00 00 00 00 00 00 00 00 00}
0x1C21 One Of Option: Enabled, Value (8 bit): 0x1 (default) {09 0E 2B 00 10 00 01 00 00 00 00 00 00 00}
0x1C2F End One Of {29 02}
0x1C31 End If {29 02}
0x1C33 Gray Out If {19 82}
0x1C35 True {46 02}
0x1C37 Text: Statement.Prompt: , TextTwo: en-US {03 08 2A 00 2A 00 00 00}
0x1C3F End If {29 02}
0x1C41 Suppress If {0A 82}
0x1C43 True {46 02}
0x1C45 One Of: , VarStoreInfo (VarOffset/VarName): 0x0, VarStore: 0x1, QuestionId: 0x7, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 2A 00 2A 00 07 00 01 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1C6B One Of Option: , Value (8 bit): 0x0 {09 0E 2A 00 00 00 00 00 00 00 00 00 00 00}
0x1C79 End One Of {29 02}
0x1C7B End If {29 02}
0x1C7D Suppress If {0A 82}
0x1C7F QuestionId: 0x7 equals value 0x1 {12 06 07 00 01 00}
0x1C85 Gray Out If {19 82}
0x1C87 Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
0x1C99 Not {17 02}
0x1C9B End {29 02}
0x1C9D One Of: Fast BIOS Mode, VarStoreInfo (VarOffset/VarName): 0x1C, VarStore: 0x3, QuestionId: 0x8, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 A6 0F 00 10 00 08 00 03 00 1C 00 00 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1CC3 One Of Option: Disabled, Value (8 bit): 0x1 (default) {09 0E 2C 00 10 00 01 00 00 00 00 00 00 00}
0x1CD1 One Of Option: Enabled, Value (8 bit): 0x0 {09 0E 2B 00 00 00 00 00 00 00 00 00 00 00}
0x1CDF End One Of {29 02}
0x1CE1 End If {29 02}
0x1CE3 End If {29 02}
0x1CE5 Suppress If {0A 82}
0x1CE7 True {46 02}
0x1CE9 One Of: , VarStoreInfo (VarOffset/VarName): 0x0, VarStore: 0x1, QuestionId: 0x9, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 2A 00 2A 00 09 00 01 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1D0F One Of Option: , Value (8 bit): 0x0 {09 0E 2A 00 00 00 00 00 00 00 00 00 00 00}
0x1D1D End One Of {29 02}
0x1D1F End If {29 02}
0x1D21 Suppress If {0A 82}
0x1D23 QuestionId: 0x9 equals value 0x0 {12 06 09 00 00 00}
0x1D29 Gray Out If {19 82}
0x1D2B Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
0x1D3D Not {17 02}
0x1D3F End {29 02}
0x1D41 One Of: Fast BIOS Mode, VarStoreInfo (VarOffset/VarName): 0x2A, VarStore: 0x2, QuestionId: 0xA, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 A6 0F 00 10 00 0A 00 02 00 2A 00 00 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1D67 One Of Option: Disabled, Value (8 bit): 0x1 {09 0E 2C 00 00 00 01 00 00 00 00 00 00 00}
0x1D75 One Of Option: Enabled, Value (8 bit): 0x0 (default) {09 0E 2B 00 10 00 00 00 00 00 00 00 00 00}
0x1D83 End One Of {29 02}
0x1D85 End If {29 02}
0x1D87 End If {29 02}
0x1D89 Gray Out If {19 82}
0x1D8B Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
0x1D9D Not {17 02}
0x1D9F End {29 02}
0x1DA1 One Of: AHCI Mode Control, VarStoreInfo (VarOffset/VarName): 0x22, VarStore: 0x2, QuestionId: 0xB, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 A6 11 00 12 00 0B 00 02 00 22 00 00 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1DC7 One Of Option: Auto, Value (8 bit): 0x0 (default) {09 0E 13 00 10 00 00 00 00 00 00 00 00 00}
0x1DD5 One Of Option: Manual, Value (8 bit): 0x1 {09 0E 14 00 00 00 01 00 00 00 00 00 00 00}
0x1DE3 End One Of {29 02}
0x1DE5 End If {29 02}
0x1DE7 Suppress If {0A 82}
0x1DE9 QuestionId: 0xB equals value 0x0 {12 06 0B 00 00 00}
0x1DEF Gray Out If {19 82}
0x1DF1 Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
0x1E03 Not {17 02}
0x1E05 End {29 02}
0x1E07 One Of: Set AHCI Mode, VarStoreInfo (VarOffset/VarName): 0x12, VarStore: 0x5, QuestionId: 0xC, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 A6 15 00 16 00 0C 00 05 00 12 00 00 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1E2D One Of Option: Disabled, Value (8 bit): 0x0 {09 0E 2C 00 00 00 00 00 00 00 00 00 00 00}
0x1E3B One Of Option: Enabled, Value (8 bit): 0x1 (default) {09 0E 2B 00 10 00 01 00 00 00 00 00 00 00}
0x1E49 End One Of {29 02}
0x1E4B End If {29 02}
0x1E4D End If {29 02}
0x1E4F Suppress If {0A 82}
0x1E51 64 Bit Unsigned Int: 0x1 {45 0A 01 00 00 00 00 00 00 00}
0x1E5B Gray Out If {19 82}
0x1E5D Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
0x1E6F Not {17 02}
0x1E71 End {29 02}
0x1E73 One Of: SATA GEN3 Mode, VarStoreInfo (VarOffset/VarName): 0x148, VarStore: 0x6, QuestionId: 0xD, Size: 1, Min: 0x0, Max 0xFF, Step: 0x0 {05 A6 17 00 18 00 0D 00 06 00 48 01 00 10 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1E99 One Of Option: Disabled, Value (8 bit): 0x2 (default) {09 0E 2C 00 10 00 02 00 00 00 00 00 00 00}
0x1EA7 One Of Option: Enabled, Value (8 bit): 0x3 {09 0E 2B 00 00 00 03 00 00 00 00 00 00 00}
0x1EB5 End One Of {29 02}
0x1EB7 End If {29 02}
0x1EB9 End If {29 02}
0x1EBB Gray Out If {19 82}
0x1EBD True {46 02}
0x1EBF Text: Statement.Prompt: , TextTwo: en-US {03 08 2A 00 2A 00 00 00}
0x1EC7 End If {29 02}
0x1EC9 Suppress If {0A 82}
0x1ECB 64 Bit Unsigned Int: 0x1 {45 0A 01 00 00 00 00 00 00 00}
0x1ED5 Gray Out If {19 82}
0x1ED7 Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
0x1EE9 Not {17 02}
0x1EEB End {29 02}
0x1EED One Of: Fan Silent Mode, VarStoreInfo (VarOffset/VarName): 0x23, VarStore: 0x2, QuestionId: 0xE, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 A6 19 00 1A 00 0E 00 02 00 23 00 00 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1F13 One Of Option: Low, Value (8 bit): 0x0 {09 0E 1B 00 00 00 00 00 00 00 00 00 00 00}
0x1F21 One Of Option: Auto, Value (8 bit): 0x1 (default) {09 0E 1C 00 10 00 01 00 00 00 00 00 00 00}
0x1F2F End One Of {29 02}
0x1F31 End If {29 02}
0x1F33 End If {29 02}
0x1F35 Gray Out If {19 82}
0x1F37 Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
0x1F49 Not {17 02}
0x1F4B End {29 02}
0x1F4D One Of: Battery Life Cycle Extension, VarStoreInfo (VarOffset/VarName): 0x25, VarStore: 0x2, QuestionId: 0xF, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 A6 1D 00 1E 00 0F 00 02 00 25 00 00 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1F73 One Of Option: Disabled, Value (8 bit): 0x0 (default) {09 0E 2C 00 10 00 00 00 00 00 00 00 00 00}
0x1F81 One Of Option: Enabled, Value (8 bit): 0x1 {09 0E 2B 00 00 00 01 00 00 00 00 00 00 00}
0x1F8F End One Of {29 02}
0x1F91 End If {29 02}
0x1F93 Suppress If {0A 82}
0x1F95 64 Bit Unsigned Int: 0x0 {45 8A 00 00 00 00 00 00 00 00}
0x1F9F 64 Bit Unsigned Int: 0x0 {45 0A 00 00 00 00 00 00 00 00}
0x1FA9 Equal {2F 02}
0x1FAB End {29 02}
0x1FAD Gray Out If {19 82}
0x1FAF Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
0x1FC1 Not {17 02}
0x1FC3 End {29 02}
0x1FC5 One Of: USB Charge In Sleep Mode, VarStoreInfo (VarOffset/VarName): 0x24, VarStore: 0x2, QuestionId: 0x10, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 A6 1F 00 20 00 10 00 02 00 24 00 00 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x1FEB One Of Option: Disabled, Value (8 bit): 0x0 (default) {09 0E 2C 00 10 00 00 00 00 00 00 00 00 00}
0x1FF9 One Of Option: Enabled, Value (8 bit): 0x1 {09 0E 2B 00 00 00 01 00 00 00 00 00 00 00}
0x2007 End One Of {29 02}
0x2009 End If {29 02}
0x200B End If {29 02}
0x200D Gray Out If {19 82}
0x200F Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
0x2021 Not {17 02}
0x2023 End {29 02}
0x2025 One Of: USB S3 Wake-up, VarStoreInfo (VarOffset/VarName): 0x26, VarStore: 0x2, QuestionId: 0x11, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 A6 21 00 22 00 11 00 02 00 26 00 00 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x204B One Of Option: Disabled, Value (8 bit): 0x0 (default) {09 0E 2C 00 10 00 00 00 00 00 00 00 00 00}
0x2059 One Of Option: Enabled, Value (8 bit): 0x1 {09 0E 2B 00 00 00 01 00 00 00 00 00 00 00}
0x2067 End One Of {29 02}
0x2069 End If {29 02}
0x206B Suppress If {0A 82}
0x206D True {46 02}
0x206F Gray Out If {19 82}
0x2071 Security: Permissions: [85B75607-F7CE-471E-B7E4-2AEA5F7232EE] {60 92 07 56 B7 85 CE F7 1E 47 B7 E4 2A EA 5F 72 32 EE}
0x2083 Not {17 02}
0x2085 End {29 02}
0x2087 One Of: LID Open S3 Wake-up, VarStoreInfo (VarOffset/VarName): 0x27, VarStore: 0x2, QuestionId: 0x12, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 A6 23 00 24 00 12 00 02 00 27 00 00 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x20AD One Of Option: Disabled, Value (8 bit): 0x0 (default) {09 0E 2C 00 10 00 00 00 00 00 00 00 00 00}
0x20BB One Of Option: Enabled, Value (8 bit): 0x1 {09 0E 2B 00 00 00 01 00 00 00 00 00 00 00}
0x20C9 End One Of {29 02}
0x20CB End If {29 02}
0x20CD End If {29 02}
0x20CF Suppress If {0A 82}
0x20D1 True {46 02}
0x20D3 One Of: , VarStoreInfo (VarOffset/VarName): 0x0, VarStore: 0x1, QuestionId: 0x13, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 2A 00 2A 00 13 00 01 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x20F9 One Of Option: , Value (8 bit): 0x0 {09 0E 2A 00 00 00 00 00 00 00 00 00 00 00}
0x2107 End One Of {29 02}
0x2109 End If {29 02}
0x210B Suppress If {0A 82}
0x210D QuestionId: 0x13 equals value 0x0 {12 06 13 00 00 00}
0x2113 Gray Out If {19 82}
0x2115 True {46 02}
0x2117 Text: Statement.Prompt: , TextTwo: en-US {03 08 2A 00 2A 00 00 00}
0x211F End If {29 02}
0x2121 Gray Out If {19 82}
0x2123 True {46 02}
0x2125 Text: Statement.Prompt: Purchase Date, TextTwo: {03 08 27 00 2A 00 28 00}
0x212D End If {29 02}
0x212F End If {29 02}
0x2131 End Form {29 02}
0x2133 End Form Set {29 02}

Problem is- it’s not the default store, so trying to read the variable as mentioned somewhere here like “setvar adress” didn’t work. But there’s mentioned VarStor 0x6 and in the beginning of the file is a list of stores:
VarStore: VarStoreId: 0x6 [04BD8413-15F9-43F3-9675-4618E03240E3], Size: 0x224, Name: PchProtocolSetupVar…
Searching for the guid or the name in Uefitool NE doesn’t help much, lets try an Efi shell on an USB stick:
There seem to be quite a lot of shells out there- was happy with an older one (EDKII UEFI Shell 2.0, link on this page), It has 2 options- setvar and dmpstore

SETVAR command syntax

Displays or modifies a UEFI variable.

SETVAR variable-name [-guid guid][-bs][-rt][-nv] [=data]

variable-name - Specifies the name of the UEFI variable to modify or display.
-guid - Specifies the GUID of the UEFI variable to modify or display.
If not present, GUID EFI_GLOBAL_VARIABLE is assumed.
-bs - Indicates that the variable is a boot variable. Applies to a new variable;
otherwise, it is ignored.
-rt - Indicates that the variable is a runtime variable. Applies to a new variable;
otherwise, it is ignored.
-nv - Indicates that the variable is non-volatile. If not present,
then the variable is assumed to be volatile. Applies to a new variable;
otherwise, it is ignored.
=data - Specifies there is new data for the variable. If there is nothing after the ‘=’
then the variable is deleted. If ‘=’ is not present, then the
current value of the variable is dumped as hex bytes.
The data can consist of zero or more of the following:
xx[xx] - Hexadecimal bytes
^"ascii-string^" - ASCII-string with no null-terminator
L^"UCS2-string^" - UCS-2 encoded string with no
null-terminator
–device - Device path text format

NOTES:

  1. This command changes the UEFI variable specified by name and GUID.
  2. If = is specified, but data is not, the variable is deleted, if it exists.
  3. If = is not specified, then the current variable contents are displayed.
  4. If =data is specified, then the variable’s value is changed to the value
    specified by data.
  5. -bs, -rt and -nv are only useful if the variable does not exist.
  6. If the variable already exists, the attributes cannot be changed, and the flags will be ignored.
DMPSTORE command syntax

Manages all UEFI variables.

DMPSTORE [-b] [-d] [-all | ([variable] [-guid guid])] [-sfo]
DMPSTORE [-all | ([variable] [-guid guid])] [-s file]
DMPSTORE [-all | ([variable] [-guid guid])] [-l file]

-b - Displays one screen at a time.
-guid - Specifies the GUID of the variables to be displayed in
standard text format. If not specified and -all is not
specified, the EFI_GLOBAL_VARIABLE GUID is assumed.
-sfo - Displays information as described in Standard-Format Output.
-all - Dumps all variables, including those
with a different GUID than EFI_GLOBAL_VARIABLE.
-d - Delete variables.
-s - Saves variables to a file.
-l - Loads and sets variables from a file.
variable - Specifies a variable name. This can be a literal name or
a pattern as specified in the MetaiMatch() function of the
EFI_UNICODE_COLLATION2_PROCOOL.

NOTES:

  1. This command manages the UEFI variables. The variables
    displayed or deleted depend on the command line options, as specified in
    the following table:
    Variable GUID -all Description
    — — — All variables with the GUID EFI_GLOBAL_VARIABLE will
    be operated on.
    — — X All variables (regardless of GUID or name) will be
    operated on.
    — X — All variables with the specified GUID will be
    operated on.
    X — — The variable with the GUID EFI_GLOBAL_VARIABLE and
    the name Variable will be operated on.
    X X — The variable with the specified GUID and name
    Variable will be operated on.
  2. The variable value is printed as a hexadecimal dump.
  3. Option -d is used to delete variables. Option -s and -l are used to save
    and load variables to and from a file. The variable name can be specified
    when using these flags so that the operation only takes effect on
    that variable.

EXAMPLES:

  • To dump all variables with the GUID EFI_GLOBAL_VARIABLE:
    Shell> dmpstore

  • To dump all variables (regardless of GUID or name):
    Shell> dmpstore -all

  • To dump the ‘path’ variable with the GUID ‘158DEF5A-F656-419C-B027-
    7A3192C079D2’:
    Shell> dmpstore path -guid 158DEF5A-F656-419C-B027-7A3192C079D2

  • To save all variables (regardless of GUID or name) to a file ‘VarDump.txt’:
    fs0:> dmpstore -all -s VarDump.txt

  • To delete the ‘BootOrder’ variable with the GUID EFI_GLOBAL_VARIABLE:
    Shell> dmpstore -d BootOrder

setvar PchProtocolSetupVar -guid 04BD8413-15F9-43F3-9675-4618E03240E3 will deliver the 224 bytes of this store and the byte I’m looking for should be on 0x148 with a value 02 and should be changed to 03.

VarStoreId: 0x6 [04BD8413-15F9-43F3-9675-4618E03240E3], Size: 0x224, Name: PchProtocolSetupVar…
One Of: SATA GEN3 Mode, VarStoreInfo (VarOffset/VarName): 0x148, VarStore: 0x6, …
One Of Option: Disabled, Value (8 bit): 0x2 (default) …
One Of Option: Enabled, Value (8 bit): 0x3 )

Dmpstore does the same, but has the option to save this store to / load from a file. The file has a header, I didn’t try to restore the variable store this way.

Now there are several ways to just change this setting:

  • Change the byte in the store, save this store back via Dmpstore
  • Find the stores in the bios, change it there and flash the complete bios. In this bios there are two places. As the store is described in the list of all stores as non-volatile and boot- variable that sounded reasonable.
    “Variable NV+BS ‘04BD8413-15F9-43F3-9675-4618E03240E3:PchProtocolSetupVar’ DataSize = 0x224”
  • Change just the bits for the variable. That’s what I did, one needs to know the location in the bios, too.

I couldn’t find out why this entry for SATA GEN3 is not visible?! As far as I could see the conditions were not different form other entries that are visible?

Replying to post #15 - Correct way to do that, or possibly safer/easier, simply extract the body of 17088572-377F-44EF-8F4E-B09FFF46A070 (extract body), then edit as you need, then replace body.
Be sure to check your original extract at the very end, some BIOS have a line here as a “Footer” with MPDT as part of it’s text, that is not part of microcodes , if you see this put back at the end of your final edit before you replace
You can see example image of that here in my guide, right above “Fixing the FIT Table” section
[GUIDE] Update CPU Microcode + Fix FIT Using UEFITool / Hex

Both Phoenix bios I described do look different (NP300E5A 0QA and NP300E5C 0RAP). The block with the microcodes cannot be extracted separately. There are two important adresses: Start address for the first microcode and the start address for the next block (CMDB store). Both addresses may not be changed. The microcodes itself are simply stringed together, starting in this block after a header from 0x48.
In addition UEFItool dosen’t show the structure of this block, so only possibility is to extract it complete. Since this region is not compressed it doesn’t make any difference if you extract something or work with the complete bios or spibackup.

1.jpg

2.jpg

3.jpg

The start addresses for the two blocks one can find in 'Phoenix SCT flash map'.

4.jpg

5.jpg

Ohh, I see what you mean now that I dig into your BIOS again. Sorry, my previous comment I was thinking in general this BIOS was similar to most others, and I didn’t look at the microcode location in your BIOS again, I was only going by rustam2V’s images and his BIOS (not the same as yours)
What I mentioned applies to his BIOS, that layout is more normal, and nothing like your BIOS.

I was still looking for a possibility to make the options of the module PlatformHiiAdvancedDxe.efi visible. All the bios pages are in blocks ‘SamsungSetup*.efi’ and as written before Donovan6000s Universal IFR Extractor can extract the structure/ rules.

6.jpg

I was searching quite a while for a the place where all the GUIDs of the corresponding Bios menus were listed/ chosen. The solution is much easier:
I found accidentally this page [LINK] and it works: Boot into bios (F2), press CTRL + ALT + SHIFT + F4 simultaneously and you get:
On the Info page additional version information and
On the Exit page additional menus, among other items the menus from PlatformHiiAdvancedDxe.efi (CFEF94C4-4167-466A-8893-8779459DFA86), too.

WP_20190417_20_54_12_Pro.jpg

WP_20190417_20_54_22_Pro.jpg

WP_20190417_20_54_37_Pro.jpg

This works for both Samsung notebooks I own- NP300E5A (HM65) and NP300E5C (HM75).
(For the NP300E5A the module is named PlatformSetupAdvacedDxe.efi, but has same Guid)

PlatformHiiAdvancedDxe.efi.txt (441 KB)

Sorry for resurrecting the thread but I’m encoutering some difficulties with my NP300V5A. What I want to do is updating the BIOS (current version is 05FI, one of the oldest if not the eldest, I think) to latest 10FI with updated microcode for current CPU (i7-2670QM). I also want to add latest microcode for i7-3840QM.
First thing I did was to download Samsung update utility which identified the latest BIOS available and let me download it. Then I followed the first method described by lfb6, so I run the executable and picked up the ROM from AppData/Temp. After this I downladed the two microcode files I needed. Unfortunately, when I run the command with winflash (version 1.5.66) I get a PAGE_FAULT_IN_NONPAGED_AREA BSOD, winFlash64.sys being the crashing module. I am running the latest Windows 10 version (10.0.19042.789): could it be a compatibility issue of the OS with Winflash driver? Because other apps I used to run before are having similar problems with 20H2. I must stress the fact that the BSOD occurs even if I run the regular .exe and follow all the standard procedure to flash the unmodded BIOS.

At this point I’ve switched to the second method via Phoenix Tool and it seems that I correctly injected the updated microcodes, as shown by MC Extractor (in the link to the screenshot left side is original BIOS, right side modded one):

https://drive.google.com/file/d/1a7gSh5w…iew?usp=sharing

I made sure that the sizes of the two ROMs were identical by overwritingthe empty FFFFFF sections of the original. However, when I try to flash the final rom with Winflash, I receive the following error message at the third stage of the process (I moved a bit the smaller window in order to make everything readable:

https://drive.google.com/file/d/1ySp072f…iew?usp=sharing

What could I try next? Is there something I’m missing? I followed the two procedures, but I’m far from being competent in the matter, so it is of course possible that I’m doing something wrong. Thanks in advance!

@Salve1412
Your laptop is based on HM65 chipset without support Ivy Bridge.
Adding microcode doesn’t add support for new CPU.


[quote="DeathBringer, post:22, topic:32428"] @Salve1412
Your laptop is based on HM65 chipset without support Ivy Bridge.
Adding microcode doesn't add support for new CPU. [/quote]

Isn't that CMD picture an example of a working Ivy-Bridge CPU on an HM65 chipset board?

EDIt: my bad, it's a HM75 based laptop! Didn't even check it before posting, sorry.
So I guess the only thing I could do would be to update the 2670QM microcode, but still there are these annoying issues with Winflash...

Samsung built these laptop series with SNB and later on with IVB chipsets, boards are interchangeable. I bought a used E5C board (BA92-11488) and tried first with a SNB CPU (i5-2450M) and switched thereafter to i5-3380M and i7-3820QW (45 instead of 35W), so I wasn’t able to check the IVB µcode update in the beginning.

So you might buy a used mainboard on ebay, but there are differences regarding LVDS connector and som boards are HM70 (no core-i support), one has to be careful. In the end it’s cheaper to buy a used laptop which is some generations younger…

Otherwise were those Phoenix SNB bioses not very tricky to handle. Probably possible to dump your bios with fpt (ME tools 7 package) to have a backup, change mcode and flash the bios region back. Don’t use a stock bios for that, you’d lose your board specific data. And get a backup of the complete bios first.

fpt(w(64)) -d spi.bin should dump the complete bios

In case of an error (locked flash descriptor) would
fpt(w(64)) -bios -d biosreg.bin dump the bios- region

If you want to use a programmer- had to disconnect one wire from the clamp, 2 pins were connected on the board, CH341 didn’t like that
[GUIDE] The Beginners Guide to Using a CH341A SPI Programmer/Flasher (With Pictures!) (3)

Good luck!

Yeah, I was thinking to upgrade the CPU (I found a very cheap 3840QM) only if it wouldn’t have entailed purchasing or modding other components. After all it is not a real necessity, I can just stick to the current processor.
Regardind the microcode update of the 2670QM, do you think that those Blue screens when running Winflash could be due to incompatibility with Windows 20H2?
EDIT Oh, I just saw the second part of your post, thanks for the tips!

BTW 2670QM is 45W, too, that’s 10W plus!

Not using oem tools increases danger for bricking. Do a backup og the bios before you begin! Showing µcode correct in MCE doesn’t mean anything, you could put the µcode overwrting vital parts of the bios, mce would display it the same way. Check structure with UEFItoolNE.