Closed Civil closed 1 week ago
I am against licensing in general. I do not want live in a legalistic society. You are welcome to contribute to the project.
If you really want a license for this code, you are welcome to pay me a handsome fee and i might consider it.
I am against licensing in general.
That is understandable, but if you don't put a license alongside the code, technically, it is a proprietary code which no one has the right to read or run - as the default fallback by the law.
you are welcome to pay me a handsome fee and i might consider it.
Well, I can offer you a Bluefield-2 ES (1x200G) and a collection of firmware for it (stock pre-production one and one version that someone modified - basically parts of newer FW glued to initialisation code as far as I understand that) as well as unencrypted 2 different pre-production FW for ConnectX-7 (can't be flashed to production cards as they run only encrypted firmware) but only if you put any OSS license on your code (honestly - I don't care if it's WTFPL or AGPL) - but that is all I can offer :)
UPD: Just in case, by BF2-ES I mean specifically MBF2M345A-VENOT_ES
Thanks for your offer of hardware and firmware, I am however still unwilling to put a license on the code.
You seem to have a healthy disregard for licenses as you seem willing to share proprietary firmware(probably licensed, under NDA, and with bespoke modifications by NVIDIA/Mellanox).
I would be very happy with any non-public firmware or documentation related to NICs from NVIDIA/Mellanox that finds its way to jonas.t.rudloff@gmail.com
Thanks for your offer of hardware and firmware, I am however still unwilling to put a license on the code.
Unfortunately, that is all I can offer. Because what I'm doing is my private hobby project that I'm doing in my free time.
You seem to have a healthy disregard for licenses as you seem willing to share proprietary firmware(probably licensed, under NDA, and with bespoke modifications by NVIDIA/Mellanox).
Yes and no. I never entered any contractual obligations with Mellanox or nvidia, nor I deal with their HW during my work (and therefore I carefully avoid exporting any of that from the company's resources - as I want my work to stay my own). I've actually even gave nvidia a chance to get those things back, but they were not interested (I was always open to exchange those for production HW and maybe a bit extra). Therefore nothing that I offer you can't obtain on your own, you just need to search for the right things and invest a bit of time and money to get that - as I got it from various auctions and scrapeyards - so basically that is few weeks of your time to do the research (doesn't include time you'll wait for cards to be shipped to you) and, depending on your luck, about 2-3k USD worth of hardware.
Those bespoke modifications you mention - probably were not done by nvidia, but to be honest I have no idea. My theory is that someone actually reversed engineered their FW to the extent that they were able to copy some of the blocks from stock fw and the rest from the official image for one of the cards, as, as far as I can tell, a signature is invalid. But who did that - I don't know; I only know that at least 1 firmware like that exists for those VENOT_ES cards, and sometimes sellers flash it, and sometimes they don't.
As nvidia doesn't care about ES cards on a market, I don't see any legal reasons to not play around the cards. But on the other hand I don't think that I would be able to use (compile or even read) your code if I'll want to make any public talks about my hobby project and mention anywhere (publically) how to source reasonably cheap BF2s (those VENOT_ES can be found for under 200$), so I kind of care about that permissions for that.
I would be very happy with any non-public firmware or documentation related to NICs from NVIDIA/Mellanox that finds its way to jonas.t.rudloff@gmail.com
So if what I have is sort-of-public - then you are not interested, right? :)
As far as I understand you still need at license from NVIDIA/Mellanox to deal with those firmware in any way as they are still protected under copyright. The default firmware EULA for ConnectX and Bluefield is(which you have read and understood as you care about licenses): https://network.nvidia.com/sites/default/files/related-docs/prod_software/NVIDIA_Host_Adapter_Firmware_License.pdf
As to the licensing issue, me posting these project on Github allows most people to at least read and run the code as I have published it, just like as if I had posted a rant to a public forum and people would be allow the read it. However I still hold the full copyright to the code(Well except the part of it I probably have surrendered to Github to allow them to distribute and display it, :shrug:)
I am not aware of anyone, except me, that have done enough reverse engineering of their firmware to be able to meaningfully patch the part of the firmware that is running on the NICs. I think that the firmware might only have replaced the ROM_CODE section, the part that is offered to the BIOS/UEFI during boot to enable network booting.
I have done patching of the iRISC firmware(the part running on the card) to allow code execution on a CX5 NIC, and it was somewhat complicated and required a lot of knowledge of the iRISC instruction set as well as hardware checksums.
I am not really interested in the Bluefield NICs, however the unencrypted firmware for ConnectX-7 I find very interesting and would welcome in my inbox. If you would like a description of how the BF2 firmware was modified I can probably help with that, if I can get a pair with and without modification.
As far as I understand how the BF2 NICs work is that they are a CX5 device with multiple PCIe busses, one for the host and one for an internal ARM Soc which the user/admin has full access to, so limiting my research to only CX5(and possibly CX6 and CX7) would be somewhat transferable to BF2 anyway.
As far as I understand you still need at license from NVIDIA/Mellanox to deal with those firmware in any way as they are still protected under copyright.
Sort of yes and no. You are buying a hardware with software as a bundle and in EU and few other countries (to be precise - EU + UK + EEA + partially in US and probably few more) reverse-engineering is permitted by federal law, so whatever you've extracted from the card should be ok to use as you technically never agreed to any license at all.
For downloaded images/firmware - it depends on country and state, but AFAIR in EU that point is void as federal law explicitly allows you that. You can't sell any products based on reverse engineering, but while you are doing clean-room reverse engineering (not using anything that was shared with you under NDA and ideally even don't sign any NDAs) - it should be fine from legal standpoint.
But yeah, it is complicated.
me posting these project on Github allows most people to at least read and run the code
AFAIR in EU default fallback mechanism is that the code is proprietary - so while it is here on github, it is not allowed to use it at all in any way. But I guess for any legal perspective your post here can be counted as a permission to read and run for personal use.
However I still hold the full copyright to the code
That is actually what AFAIR would always happen (in EU at least) unless you explicitly gives it away by signing some contracts with other people/companies/organisations/...
In most of OSS licenses original author retains copyright and they just define what other people can do with the code.
I am not aware of anyone
I'm sure that someone reversed engineered format enough to replace sections as that is what I've seen in the wild. But who was that - I have no idea. If they've reversed engineered something else I also don't know.
As far as I understand how the BF2 NICs work is that they are a CX5 device with multiple PCIe busses
BF1 - CX5 + ARM BF2 - CX6 + ARM BF3 - CX7 + ARM
But otherwise - yes, you are correct and they still use same FS4 format for the firmware, therefore I think your research would be transferable.
Hi,
I've recently found your repos and presentation about cx5 reverse engineering, but as I've noticed there is no license for the code.
It would be great if you will be able to add some license so it would be clear if it's possible to use it, read it or to contribute to it.