PERC H700 and HP 468406-B21/487738-001 SAS Expander
This is just a micro-article because I didn't find this info anywhere on the web, so hopefully google picks this up for one or two other people scratching their head.
I just plugged in my HP 24 port SAS expander into one of my Dell PERC H700 controllers, and instead of the BIOS screen, I (roughly) got the message "
Unrecoverable Error!!! Please check the SDRAM connection" and it didn't work. Very scary - unplugging the expander made it work again.
When plugging it in after booting Debian, I got this kernel message:
External Enclosure Pd 20 violation detected in Direct PD Mapping mode
Since googling this message didn't help much, I had to use my own mental resources to solve this problem (usually thats futile), but after staring at the message, and remembering a passage from the manual, I got an idea and disabling direct PD mapping in the controller, because you shouldn't have it enabled when using enclosures:
perccli /c0 set directpdmapping=off
After rebooting the controller booted normally and started to detect disks behind the expander.
Flashing the Expander Firmware via the RAID controller
I found that at least under Linux 4.18, the H700 exposes the sas expander directly.
lsscsi -g does then display the
sg device number:
[6:0:20:0] enclosu HP HP SAS EXP Card 2.08 - /dev/sg0
Flashing seems to work fine as well:
# sg_write_buffer --mode=dmc_offs_defer --bpw=4096,act --in=PUF21000.bin /dev/sg0 [wait for card reboot] # rescan-scsi-bus.sh [...] sg0 changed: si6 Channel: 00 Id: 20 Lun: 00 from:scsi6 Channel: 00 Id: 20 Lun: 00EXP Card Rev: 2.08 [...] to: Vendor: HP Model: HP SAS EXP Card Rev: 2.10
2018-10-20: added flashing instructions