HP ProLiant BIOS problem with 3TB+ disks on 10.1-RELEASE

My new box, HP ProLiant DL320e Gen8 with 3TB HDD (4KB sector size, WD30EFRX) cannot boot after installation. Installation itself is fine, but after reboot I got this message and panic.

Can't work out which disk we are booting from.
Guessed BIOS device 0xffffffff not found by probes, defaulting to disk0: allocat not found
panic: Assertion failed: (FALSE), function ficlCompileSoftCore, file softcore line 428.

I (and hrs@) tracked down this problem, and found BIOS int13h call overwrites buffer (and corrupts variables on stack) in some situation (reading backup GPT table at the end of sectors over 0xFFFFFFFF sector).

I found doing a (dummy) read call before buggy read call causes this problem disappeared. I put patched zfsloader binary for amd64

https://github.com/kuriyama/freebsd/compare/freebsd:stable/10...hp-bios-workaround-10.diff

To work around this problem:

  1. install as usual.
  2. overwrite /boot/zfsloader with above binary.
  3. reboot.

This patch has been committed to head as r331718 and has been MFC'd to stable/11 as r332056, prior to the release of 11.2.

JunKuriyama/HPBIOS3TBHDD (last edited 2021-04-25T09:37:07+0000 by KubilayKocak)