I tried to flash a HBA330 to H330 (I need HW RAID but wrong controller was ordered...) but did not succeed.
Flashed the H330 firmware using megarec3 -m0flash FW0009i.rom. After reboot, RAID BIOS appeared, waiting forever for the controller to start.
Unfortunately, this card has no "safe mode" jumper to disable flash access. But there's a solution: look at the flash on the back side of the card (S29GL128S10TFIV2 on mine), find R1066 (not populated) and R1079 (populated) resistors near the lower right corner of the flash. Their joint is connected to flash A1 pin. Power off, ground this point through a 10 ohm resistor and power on - no BIOS should appear, boot to DOS, disconnect resistor and use sas3flsh to recover (unbrick).
The H330 firmware seems to be iMR, not iR. So I probably need a H330 SBR for the firmware to start. Here's a nice analysis of (older) SAS2008 SBR:
Crossflashing the Fujitsu D2607
There's a "Interface mode" byte which must be changed. Unfortunately, SAS3008 SBR structure is different (PCI IDs are at different positions) and I can't find any dump from H330.
Then there's the PCI subsystem ID problem - HBA330 has 1028:1f45 but H330 should have 1028:1f44.
I was flashing a M1015 to LSI 9220-8i before. Even after changing the SBR, PCI subsystem IDs stills showed M1015. Finally, found that MegaSCU can change the subsystem IDs: "MegaSCU -AdpFactorySettings -SetPCIData -f pci.ini -a0"
pci.ini:
Code:
[GEN2_INI_FILE]
[PCIDATA]
VENDORID=1000
DEVICEID=0073
SUBVENDORID=1000
SUBDEVICEID=92a0
Unfortunately, the old MegaSCU does not work on SAS3008. Also MegaOEM does not work for me.
Welcome to STH brother! We're glad to have you!
So i read your post, and i must say, you are certainly the first guy i know of, that deliberately wants to go from hba firmware to the dell proprietary firmware rom.
However, this is not a bad thing, as i know people have various reasons as to why they would need to use the dell rom instead of hba firmware, as you pointed out.
Of note, the H330 does have a "sort of" hardware raid, but not really. It's literally just the LSI/Avago SAS3008 chip that works along with the dell rom to give you a "sorta, kinda" type of raid. Honestly, the h330 is really just a "pumped up" software raid card with a "dell-ified" flare. I mean, it works, but if you needed true hardware raid, then you would need a minimum of a H730/H730p and above. Those cards come with a proper onboard raid chip and battery backed cache. I personally recommend the H730p. It has 2GB of battery backed cache as opposed to the H730's 1GB of cache. Let me know if you need one, as i have a spare one i can sell you at a discount. (Sorry for the shameless plug)
Now, with that being said, there
IS a way to crossflash from a hba330 to a h330. I have done it before, as i specified this in my full writeup, but it is somewhat risky.
I have found however, that in my testing of these cards, they are easily recoverable from bricks if you happen to brick it, so the risk is somewhat mitigated.
Thank goodness for Megarec3
Now, i personally dont like to mess with the physical electrical components of a card to flash it unless absolutely necessary. I try to find alternate software methods of bypassing and defeating the flash on these oem cards that they use with their proprietary firmware roms. I do acknowledge that sometimes you do need to use a physical electrical bypass though, depending on how bad the firmware/nvram is corrupted.
A simple trick you could have used was to disable the pci option-rom in your motherboard bios for the specified slot. This would have allowed the pc to boot past the corrupted firmware rom and boot straight to freedos. The dell rom halts the boot process like a liitle bitch if it cant find a stable firmware on the adapter. This is bypassed by disabling the option for the card to do that. Depends on if you have that option in your bios though. Supermicro boards usually have the option in their bios, that's why i flash all my cards with supermicro boards only. Most newer motherboards may have the option hidden. So when you turn off the option-rom for the specific slot, the pc just ignores the hell out of the slot and keeps on booting. This should allow you to boot back to freedos to flash back to a hba330 using megarec3 and sas3flsh. Once done, turn the option rom back on, and your good to go. No need to ground with a resistor or anything.
Now, if you had to make another go at it, try these few tips:
1. For the initial flash back, use megacli. It appears that megacli is more compatible with the dell rom than megarec3 is. It would seem that dell modelled their proprietary "perccli" utility off of storcli, which is just a "newer" megacli. This is why the flash process from h330 to hba330 works well. Megarec is more like a recover and "rinse clean" sort of utility. You
could use megarec though, but its probably better to write the sbr and just clean the flash with
megarec, then use
megacli to flash back the dell proprietary rom. Then use
megaoem to set the firmware to default settings and program the sas address. This method might still have some small issues, but its worth a try.
For example, try this:
1. Megarec3 -cleanflash 0 (get rid of the hba330 firmware)
2. Reboot.
3. Megarec3 -writesbr 0 h330sbr.bin (write the h330sbr.bin file to nvram)
4. Megacli -adpfwflash -f fw0005i noverchk nosigchk -a0 (flash the proprietary dell rom)
Alternatively, Megacli
also lets you flash to the m0 area of the card. You could try:
Megacli -adpm0flash -f fw0005i.rom
5. Megaoem -adpfacdefset -a0 (sets the dell proprietary rom firmware settings to factory defaults)
6. Megaoem -adpsetsasa xxxxxxxxxxxxxxxx -a0 (set your sas address where the x's = your sas address)
7. Then use the Megacli utility again to see if it worked: Megacli -adpallinfo -a0
Or see if sas3flsh still recognizes the card. sas3flsh -list (It shouldn't recognize it if you were successful, as the card is now a H330 again)
2. You can also follow my instructions in the full write up to revert back, but i sometimes ended up stuck in the crossflash back to an H330. This is because you initially defeat the dell rom and erase key components of the firmware stored in the nvram on the card from the dell proprietary rom. Remember, the
H330 rom was initially flashed on the card first. No biggie if you were going from an h330 to an hba330, but its the reason its kinda difficult to go back to a h330
from a hba330. Same reasons apply, as the HBA330 firmware was initially flashed into the nvram first. So now it takes a different method to flash over to a H330
from an initial factory HBA330. Hope that makes sense!
If it doesnt, here is a little side explanation from a very good dell tech, for added info:
You might say then, "How does Dell and the other oems's do it? They can flash back and forth." Well, as i understand it, when these cards are initially manufactured, the flash is empty of course. On first power on, we load an "initial" megaraid firmware that determines if we want an h330 or hba330. When you get the card, it is then that you now have the issue of trying to convert from one to the other. Dell of course doesn't have that problem. We will just make whatever we want. Since you are the ones trying to modify the firmware, you have to defeat the nvram safeguards the card uses to protect itself. If Dell receives a corrupted card under warranty or something, our techs have a few more options. They can try to restore the flash with a bypass eeprom/flash method, or a software flash restore/clean with a utility like megarec or perccli or storcli or other software. Or we can simply do what most manufacturers do and just solder on a new flash chip.
3. Try the older fw0005i firmware (25.5.5.000) to flash back instead of the newer firmware. Its possible the newer firmware wont work. I was afraid of this, and it is entirely possible that dell might have changed some things in the newer fw0009i firmware they just released to make it harder to flash back and forth. If you check my included flash folder download in the earlier posts, there should be a folder with the dell rom, with a file labelled fw0005i. If not, there should be a file I relabelled as "fw19.rom" somewhere in the flash folder, which is an even older version of the dell h330 proprietary rom. Let me know if you dont see it, and i can upload it here in a zip file, or modify my google drive download folder and add it.
4. I have a modified version of the h330sbr.bin file that i was messing around with, but not a clean one, but it should still be usable. I will get a clean h330sbr.bin file and upload it once i get my hands on one again. For now, you can experiment and try to flash with the modified h330sbr.bin file i will upload. If you wanna wait a 'lil bit, i will get my hands on a clean H330 sbr.bin file again soon.
Try some of these things to see if it helps you go to a h330 from an hba330. Let us know how it goes! I had stopped testing on my cards to go back to the h330 rom, as i didn't think we would really need it, but i suppose i should keep testing and perfect the process
both ways for completeness sake.
