bibikalka1 / HP_Z420_Z620_Z820_BOOTBLOCK2013_BIOS_mod

A guide and collection of resources on how to flash 2013 BootBlock and modded BIOS to HP Z420, Z620, and Z820. The flashing procedure is done with software only, and no BIOS chip clips or desoldering. The modded BIOS supports NVME boot, ReSizable Bar, and a range of CPU microcodes.
3 stars 0 forks source link

Flashing simply via BIOS 3.06? #1

Open thestraycat opened 1 month ago

thestraycat commented 1 month ago

Hi, i originally discussed this project with superthunder years back and was wodnering whether the issue i raised might have any more relevance now you have a route to flashing the microcode.

Is it possible after putting the machine into various states from the steps in your guide that the BIOS 3.05 might then successfully update microcode as was previously stated in it's release notes?

"In the release notes of BIOS 3.05 for the Z820 there is a note that states that this BIOS upgrades the bootblock. Picture attached.

image

It's likely there's still a low level reason why this wouldnt work, but thought i'd ask as it may have posed a simpler update method? the notes certainly do hint towards this being a feature of that BIOS release...

My original post: https://github.com/SuperThunder/HP_Z420_Z620_Z820_BootBlock_Upgrade/issues/7

bibikalka1 commented 1 month ago

Yeah, v3.05 did update the bootblock in the released HP binary ... But! I saw a workstation that had v3.15 shipped from the factory, and that still had 2011 BB. HP was using all this internally, these full BIOSes. The commercial Xeon v2 was not supported until v3.50, and every version before that one was shipped with 2011 BB. Only at v3.50 they switched to 2013 BB.

Microcode is part of the BIOS, so there is no way to update it without updating the full BIOS. As such, currently v3.05 is no better than v2.07 which is being used in this guide. There is no additional useful functionality in v3.05. You can open a bios in UEFITool, and it will tell you which CPUs it has microcode for.

When @BillDH2k was trying one of my modded BIOS files where it did not understand the new microcode, he got this: Came back with "Incorrect microcode detected, please contact HP" "1801-Microcode Update Error. Missing or invalid Processor Microcode." https://github.com/SuperThunder/HP_Z420_Z620_Z820_BootBlock_Upgrade/issues/13#issuecomment-2166351841

The main issue is that HP bios update does not accept a modded BIOS, so we need to bypass that official procedure somehow.

bibikalka1 commented 1 month ago

@thestraycat

So by reading your comment again, and my reply, I think you are mixing up bootblock and microcodes. Those 2 are very different things. v3.05 does not touch bootblock just like any other version - so it won't help to update it to 2013 version.

Bootblock probably defines a cpu family support, microcodes apply to specific steppings. Here is a fun BIOS from Lenovo for the same v1/v2 Xeons, it has a massive number of microcodes. HP purged all development steppings out, but Lenovo kept those: lenovo_d30

Here is what HP latest has for comparison, this my 96+ mod: j96p

thestraycat commented 1 month ago

Sorry for my crude question, It's been quite a long time since i even looked at any of this. And i get the difference - thanks for clarifying the difference. However the bit i'm less sure about is where you mention:

"v3.05 does not touch bootblock just like any other version" but we can see in the official release notes state: "Bootblock Updated to 3/6/2013 to support future products"

So what happened here? Obviouly it didnt do what it said it would out the box! But they never removed this info from the release notes so did HP change their mind? Were HP plannig on release a flashing tool that was capable of applying the bootblock via this bios but pulled it in a last minute decision? Did they put 3.05 out there with the relevant code to enable v2 but didnt give us the tool?

I dont even have my 30 or so HP Z820's any more unfortunately, but may grab a few more depending on how this project plays out so i dont have any testing means right now and my understanding it way behind on the subject matter.. But i suppose my follow up question to you who has far more low level experience than i do would be:

  1. By opening 3.05 in a UEFI edittor is there any evidence that they did indeed include the updated bootblock code in the BIOS file they released but didnt release the tool to apply it?
  2. If the bootblock code does exist in 3.05, What are the chances that there are older versions of the flashing tools that may not have the same hard restriction of not being able to write the bootblocks like later versions of the flashing tools?

I understand you're likely to say "After viewing the contents of 3.05, the microcode dosn't exist int 3.05 to enable v2! Period." or "the bios mentions flashing the bootblock probabyl to update CPU architecture list but the microcode entries arn't present to enable v2 and were likely removed by the HP engineers prior to packing it" but i suppose im just curious as i wouldnt know what to look for to verify it myself. I've not really dabbled with BIOS editting but was more puzzled by the crumbs HP left behind in the release notes.

I always hoped this issue would be cracked. Glad to see someone did it, just wish the process was simpler for most folk and that the risks were lower. It seems HP planned for it and even slightly referenced it in the bios release notes, wondering whether there is a combination of tool and BIOS to make the process easier :)

But due to the need for moving jumper settings during the process i doubt they'll ever be an automated flashing tool to do this it seems...

bibikalka1 commented 1 month ago

@thestraycat

I always hoped this issue would be cracked. Glad to see someone did it, just wish the process was simpler for most folk and that the risks were lower. It seems HP planned for it and even slightly referenced it in the bios release notes, wondering whether there is a combination of tool and BIOS to make the process easier :)

OK. Just to clarify - HP was releasing full BIOS images for their own simplicity. Yet only a subsection of that was getting flashed - the actual BIOS without the boot block. Other sections such as FD/GBE/ME also just sat there in the 16MB bios file - never used for updating customer workstations. So the change log was sort of a combo, both for customers and internal HP use. And the full BIOS was also for HP internal use - they were probably flashing it for full testing from time to time.

It's easy to open v3.05 BIOS in something like HxD2500, and if you scroll to the boot block area, you will see the date in plain text. It does say 2013. But! Even HP did not ship this 2013 bootblock on the commercially sold workstations until they got to v3.50, instead they shipped weird combos such as 2011 bootblock and v3.15 BIOS.

So v3.05 does have some v2 microcodes, just not the V2 stepping that ended up getting shipped commercially (306E4h). See the screenshot below.

To me, HP had all downside for the bootblock update (bricked motherboards), and no upside. So for them they did not want to bother with replacing a few bricked motherboards. I have some HP laptops, and if I update BIOS, it does explicitly say "flashing bootblock" at the end. But laptops are relatively easy to ship to HP, workstations are too heavy. Plus laptops have batteries providing uninterruptable power.

I think that BootBlock jumper was supposed to function for allowing one to overwrite the bootblock, but it never was put in action.

Instead, I found a kludgy workaround where there is a regime allowing full flash chip write access - and so it gets around the HP restrictions regarding bootblock.

Jumpers are not hard to move, and the DOS commands are manageable. So compared to the chip clip method (or desoldering!) this is way easier. At this point it's probably only die-hards that are still using ZX20s, so I'd expect a bit more risk tolerance. It's not even that risky - things have been reasonably simplified.

Here is v3.05 microcode list: j305

thestraycat commented 1 month ago

Yup, agree with your comments.

I think i remember a live demo/promo material for the Z820 where they were really pushing the compatibility with the v2 chips, think its on youtube somewhere... so agree there's no real potential upside for them to do it per'se but it does look better on the company to deliver what you promised originally.... It's the only real reason i see them even attempting to want to do it, especially as most buyers would have been commercial customers so it would have been better not to leave a bad taste.

I agree the process looks pretty comfortable, i'd be fine following your steps... and it looks like theres a few little fail safes which is nice with the built in recovery process.

Do you have a successfully flashed Z820 using your process yet? I saw you were waiting your 1st tester?

bibikalka1 commented 1 month ago

@thestraycat

So bootblock upgrade is a no brainer, I expect it to just work the same as z620. That's just repeating @superthunder's steps without the chip clip.

The modded bios is a bit riskier for z820 - so that one needs more thorough testing.

bibikalka1 commented 1 month ago

@thestraycat

Great news for you! I tested my method on Z820 today myself, and it works! So bootblock upgrade is a go.

Hopefully, @BillDH2k will test the BIOS mods soon.

thestraycat commented 4 days ago

@bibikalka1 - Sorry not sure how i missed your reply! That's great news! Any idea whether the BIOS mods have worked?

bibikalka1 commented 3 days ago

@thestraycat

The system I tested this on did not have enough risk tolerance for me to try a modded version :)

But at least I could test the same manufacturing mode access - and it works!

thestraycat commented 3 days ago

lol.

What exactly is 'manufacturing mode access' ?

bibikalka1 commented 3 days ago

What exactly is 'manufacturing mode access' ?

"MANAGEMENT PLATFORM (ME) IN MANUFACTURING MODE"

I did the same steps as on Z620 - put fresh ME8 and J207 on Z820, and came back in manufacturing mode. I used FPT to restore the original full BIOS backup of J396 - and all flash regions were open for arbitrary writing. I verified md5 sums for each bios region - were the same as before I started. So a simple round trip!

Trying BIOS mods might involve trying to recover later - which would have been too inconvenient on that specific machine.