So basically, the guide will be extremely similar (almost identical) to Arkadius' guide about flashing the H310 mini to IT mode, which uses lsirec to alter the cards SBR (vendor and other data stored in a little EEPROM on the card):
How to flash the Dell PERC H310 (and keep it in the dedicated storage slot) - Public - Confluence
The underlying tools in lsirec can read/write the EEPROM on the H710 cards just fine, but the issue is the python script that lays down a new SBR does not understand the offsets on the H710, as they are different (the PCI details that need changing are in a different location in the EEPROM). We will be figuring out the new offsets and pushing a commit to the lsirec tool to make it compatible with the H710 mini and other 2208 based cards. There's currently a github issue:
reading SBR from 2208 shows the data to be offset by a few bytes · Issue #1 · marcan/lsirec
At least one person on ebay has already patched lsirec with the new sas2208 offsets and are using it to crossflash cards and sell them for 3x the price (literally saw lsirec in one of their ebay pictures) - not pushing their fix to open source software upstream, keeping it a secret so they can profit financially. They're going to open source hell, and they're the only reason I'm pursuing this, I can't stand people like that in these communities. Will be publishing a guide so people do not need to pay exorbitant prices to get a crossflashed card. bLinux is also selling crossflashed cards on ebay, however I think he's using his own homebrew tools (not lsirec) so that's his right. Just ordered an R620 testbed and a handful of H710's, will throw money at it until it's figured out. I'd say 2-3 weeks depending on free time
You just described exactly what
@BLinux has been doing all along. Are you 100% sure that you are talking about someone else?
Also look at the timeline of that github ticket you linked (it's opened by
@BLinux if you did not notice). It took him that long to figure out the simplest stuff. That alone makes me doubt that his homebrew tools is anything but lsirec script with changed offsets plus maybe some basic automation to cross-flash in bulk.
All you need to make lsirec work with 2208/2308 cards is to increase the size of the buffer to 448 bytes (the double size of SBR in 2208/2308).
As for the new offsets - I did not even bother to calculate them manually:
Code:
REPCI = re.compile(r'\n\d0: (..) (..) (..) (..) (..) (..) (..) (..) (..) (..) (..) (..) (..) (..) (..) (..)')
def all_lsi():
return [x.split(' ', 1)[0] for x in subprocess.check_output(['lspci', '-Dd', '1000::']).decode('ascii').splitlines()]
def checksum(l):
return 255 & (91 - sum(l))
def pci_cfg(d='0000:01:00.0'):
return b''.join(int(''.join(x), 16).to_bytes(16, byteorder='big') for x in \
REPCI.findall(subprocess.check_output(['lspci', '-xxxs', d]).decode('ascii')))
def editsbr(sbr, **kw):
pci = pci_cfg(all_lsi()[0])
vidpid = sbr.find(pci[0:4])
subsys = sbr.find(pci[44:48])
hwclss = sbr.find(pci[10:12])
if kw.get('vid'):
struct.pack_into('<H', sbr, vidpid, kw.get('vid'))
if kw.get('pid'):
struct.pack_into('<H', sbr, vidpid+2, kw.get('pid'))
if kw.get('svid'):
struct.pack_into('<H', sbr, subsys, kw.get('svid'))
if kw.get('spid'):
struct.pack_into('<H', sbr, subsys+2, kw.get('spid'))
if kw.get('hwc'):
struct.pack_into('<H', sbr, hwclss, kw.get('hwc'))
sbr[-1] = checksum(sbr[0:-1])
return sbr
So I wanted to chime in here.
I don't think its a bad thing to make some money on eBay. Even if the full guide is out, there will always be people who will just not want to be bothered with flashing or messing with their card. These people will always just find it easier to buy a flashed card than do it themselves anyway. I don't mean
@AndiM202 as I know you were looking for the method, so I don't mean you my brother!
That said, this
is a tech community. And as such, we do wanna figure out how things work. Again, no harm in making some moolah, and I confess I too am making a few bucks on the side as a lil' side hussle.
As far as these cards go, I think the fundamental tools and the know-how is already there for these cards, and I have no doubt that if you ask
@BLinux for some pointers and help, he will gladly help out. From what I understand, he has been flashing these cards over to IT mode for a good while now. As a matter of fact, in BL's defense, I believe he has written about it on a few occasions. I have read some of his posts about it. Also he made a YouTube vid detailing some of how he did it as well.
I think the issue comes from the ease and smoothness of flashing these particular 2nd gen cards. The method involves editing SBR's and playing around with the EEPROM and such, so it isnt easy. Most people will not know how to do it, or may just mess up their card altogether. This is why I think this particular card is taking so long to get a solid method down that
EVERYONE can use easily. This is why I personally believe in all software-straight flashing. No editing SBR's, no messing with the nvram, just a straight forward flash using some dos tools. But I do realize that this isn't always easy to accomplish.
Now to be honest about the thought of releasing the method vs keeping it secret and making bank, I just don't know.
Cuz, on one hand, you wanna make a small piece on the side, and if you figure out how to do something profitable, it is in your best interest to make money off of it. But on the other hand, you don't want to keep any method that could help the community, no, actually the entire world out.
Trust me, and I speak in all honesty...
I was tempted.
I contemplated an entire weekend.
So I can understand the motivation to keep things secret to make some money on the side. But all in all, I think the motivation should be to eventually release the method to help people. As long as that is done, making money on the side can go hand in hand. Everyone wins.
