im-0 / hpsahba

Tool to enable/disable HBA mode on some HP Smart Array controllers
GNU General Public License v2.0
128 stars 45 forks source link

Tried it on HPE Smart Array P204i-b SR Gen10 #41

Open MeisterLone opened 6 months ago

MeisterLone commented 6 months ago

[root@localhost hpsahba]# ./hpsahba -i /dev/sg1 VENDOR_ID='HPE' PRODUCT_ID='P204i-b SR Gen10' BOARD_ID='0x0701103c' SOFTWARE_NAME='' HARDWARE_NAME='' RUNNING_FIRM_REV='4.11' ROM_FIRM_REV='4.11' REC_ROM_INACTIVE_REV='4.11' YET_MORE_CONTROLLER_FLAGS='0x3a51a214' NVRAM_FLAGS='0x00' HBA_MODE_SUPPORTED=1 HBA_MODE_ENABLED=0

Scared to try enable HBA mode on this, since this was only tried on old controllers... really surprised it was even able to get that info dump on Gen10 hardware

MeisterLone commented 6 months ago

Curiosity got the best of me and I ran the script on my Gen10 controller...

root@ubuntu:~/hpsahba# ./hpsahba -i /dev/sg0 VENDOR_ID='HPE' PRODUCT_ID='P204i-b SR Gen10' BOARD_ID='0x0701103c' SOFTWARE_NAME='' HARDWARE_NAME='' RUNNING_FIRM_REV='4.11' ROM_FIRM_REV='4.11' REC_ROM_INACTIVE_REV='4.11' YET_MORE_CONTROLLER_FLAGS='0x3a51a214' NVRAM_FLAGS='0x08' HBA_MODE_SUPPORTED=1 HBA_MODE_ENABLED=1

With the kernel patches loaded and the host rebooted, I saw no drives so I thought the script had no impact. However I did notice something interesting- when HBA mode is enabled, the ssacli is NOT able to see a physical drive connected to the controller, but I dont see the drive in the OS either.

When HBA mode is switched off again, ssacli can see the drive. So it feels like it may be having some kind of effect, but ultimately it does not work.

There is a flag on my 520 sector formatted drive in ssacli "Exposed to OS: No", so probably there is something else to be patched to just set the drive to be exposed in its 'failed' state, since this is a mixed mode controller.

Perhaps the author can share some details on how he reverse engineered/debugged the firmware- were you able to compare nvram between controllers that had HBA flag set and controllers that didnt? Or did you look at the firmware itself..? Some advice would be helpful, I am interested in RE this thing