meklort / bcm5719-fw

BCM5719 firmware reimplementation
BSD 3-Clause "New" or "Revised" License
82 stars 10 forks source link

Compatibility with Different BCM5719 NICs #232

Open moriel5 opened 2 years ago

moriel5 commented 2 years ago

As I can see from previous issues, this firmware is also working on the Dell KH08P, though the releases only have binaries for the NICs on the Raptor motherboards (which makes sense).

This for make me wonder, if I compile the firmware on my end, what is reasonable for me to expect regarding the functionality on different BCM5719 cards?

I'm just a regular user, albeit one who is comfortable with compiling from source (I still need to find time to attempt to modify an existing build recipe to add CoreBoot/SeaBIOS support to an ancient ASUS motherboard that looks to be very similar to one that is officially supported).

meklort commented 2 years ago

This depends on what feature set you are looking for. Can you let me know what card / montherboard you are looking to use?

You can actually get basic functionality on the BCM5719 without any firmware loaded - if you erase the firmware, the main feature set of sending and receiving packets will work. At leas ton Linux, the kernel driver does sufficient initialization to bring up the card without the APE or RX CPU firmware loaded. If I recall correctly, FreeBSD also initializes the card correctly when no firmware is loaded, however I may be mistaken there.

If you use this firmware it does not support

So if your board uses the BCM5719 for IPMI / iKVM, then this would be a good option and should work if you are talking about an add-in-card, then it's probably better to remove the firmware from the card if you want to play with running custom applications on the arm processor (using FreeRTOS and lwIP), then this could be a good option as well, although there's very limited memory for doing this.

If you give me more details, I may be able to give you a better answer. Also let me know if you're interested in details on how to strip the firmware from the device wile still maintaining the MAC address.

moriel5 commented 2 years ago

Sorry about my delay, I had just finished reading the reverse engineered bring up specification, as well as some of Hugo Landau's blog posts about his experiences reverse engineering the BCM5719.

I currently do not have any devices utilizing the BCM5719, however I am thinking of purchasing several (depending on my budget) in order to follow the development of this firmware, and perhaps using them in a future home server, so for now, the actual functionality matters less.

Regarding (currently) unimplemented features such as PXE boot, I am aware of the situation, it is merely that the main focus is the Raptor motherboards, so from what is implemented, I was wondering what is reasonable to expect without additional bring up on random BCM5719 -equipped modules, whether onboard or add-in.

I do intend to be testing the results on Linux, various BSDs, Windows, and other assorted OSs, such as Redox OS or React OS, both bare-metal and via VM passthrough (not in an organized manner, unfortunately, I need to control my timetable better for that).

meklort commented 2 years ago

The short answer is the following:

As for purchasing, an add in card can be purchased on ebay and similar placed for on the order of 15 USD.

moriel5 commented 2 years ago

Thanks for the information, this does help me understand things a bit better.

Regarding benefit, that certainly makes sense (although I guess you mean functional benefit, since there is the whole privacy thing, at least if the card has a BMC (since then the burned-in-silicon basic firmware can be bypassed (I may be confusing things here))).

I'll keep a look out for BMC-equipped BCM5719 add-in cards.

Thanks, I was hoping that pricing would be like that.

I'll also try checking on AliExpress, perhaps I may find some Chinese-branded add-in cards that are equipped with BMCs.

moriel5 commented 2 years ago

Yikes, I cannot seem to find anything below $40 with the BCM5719 (except for the chip itself) anywhere, be it eBay, AliExpress or local websites.

Update: I have finally found something below $40, a NEC add-in card with the Broadcom BCM5719, for $28 (including $10 shipping from Japan, which is surprising to me, since I am used to seeing shipping from Japan to my country costing around $50).

moriel5 commented 2 years ago

From a search, I could not find any non-enterprise modules , and none by Chinese companies(I keep forgetting about Lenovo being Chinese, as they serve the entire world, instead of 99% of their work being directed at the Chinese market).

A preliminary list I have compiled (if anyone knows about additional modules, they are free to mention them):

Dell:

Hitachi:

HP:

IBM:

Lenovo:

NEC:

???:

*May be the same part.

Update: Thanks to the ServeTheHome forums, I have more information about Dell and HP modules.

Update 2: From Dell's website there appears to also be a mezzanine (OCP?) module, I need to research this. There is also a slew of part numbers which may or may not be the same part.

Update 3: It's increasingly convoluted which HP part number is standard PCIe and which is FlexibleLOM, with conflicting HP documentation.

Update 4: Still unclear, however there may be two category models for which HP modules are standard PCIe and which are FlexibleLOM.

Update 5: Thanks to @meklort, we have confirmation of the existence of the HP 332T, and the fact that it utilizes a standard PCIe connection. I misread his post, it has a different chipset (though may be compatible?).

Update 6: NEC also refers to the EXP182A as the N8104-133, so that point has been added now.

Update: A new Chinese no-name BCM5719 card may have been found.

moriel5 commented 2 years ago

Alright, I ordered 4x NEC EXP182A, since standard shipping cost about the same as economy shipping (1 unit is $5, as opposed to $10, however it is not flat, but rather +$2 per additional unit, so $11), there is a discount for multiple units, and I had a 20% off coupon code from eBay.

meklort commented 2 years ago

Interesting, here in the US the Kh08P show sup at about $20 after shipping on ebay. This card also uses Broadcom's reference design. The exp182a is interesting - it's a different PCB design, but should still work. I'll probably have to get one myself at some point. I'm seeing about $20 as well to the US. The board looks significantly simplified, so I wouldn't be surprised it it doesn't support IPMI when then host is off. Would be interesting to run the freertos / webserver brand on it at some point to find if it boots up with the host powered off.

meklort commented 2 years ago

For reference, I have the following cards here (standard PCIe): dell KH08P (BCM5719) hp 332t (BCM5718, not really tested yet)

moriel5 commented 2 years ago

@meklort Perhaps those sellers simply do not ship outside of North America (or perhaps not even beyond the states).

Well, at least I can be of help with testing on unconventional PCB designs.

If you want, once I'm on my laptop (bad weather and a leak above my desktop prevent me from accessing it (at least the leak is not bad enough that I cannot put something to prevent the water from getting to anything electric), I can send you the product page (if shipping to the US from Japan is not prohitively expensive).

Regarding the HP 332t, thanks, I'll add it to the list, and check for HP documentation in regards to a possible FlexibleLOM variant.

I also have a suspicion that if the model ends with "t", it probably is standard PCIe, as opposed to "FLR".

Do you have a specific part number in addition to 332t? Like in the example: "647594-B21".

I personally am curious as to whether it would be possible to add SR-IOV support at some point in the future to BCM5719 cards, as I can see official IOV support for some of them (like IBM's, I believe, or was that Lenovo's?), but nothing about SR-IOV.

Update: I misread your post, and thought that the 332T has the BCM5719. Would this firmware theoretically support it? And from what I can see, the 332T has the BCM5720, not the BCM5718, are you sure that is the chipset you have in it?

moriel5 commented 2 years ago

Whoops, I see that I had accidentally ordered the EXP182As with the short bracket. Not a real worry, I could just find matching brackets on AliExpress or somewhere similar, and in the meantime I can test the cards in an old Dell miniPC I have laying around (or use a case I modified to use as an open bench, while completely removing the PCIe bracket).

EXP182A (Normal length bracket): https://www.ebay.com/itm/294648160549

EXP182A (Short bracket): https://www.ebay.com/itm/294648160535

Update: Could anyone tell me if there are any potential incompatibilities with this bracket (https://www.ebay.com/itm/193254877570) versus this bracket (https://www.ebay.com/itm/133742151350)?

The second one is definitely compatible with reference-based BCM5719 add-in cards (and from what I could see from pictures, it should also be compatible with the EXP182A), however the first one has the holder on the top covering less metal on the top, so it looks like it might not hold the card in place properly, however I am not sure of that.

In any case, I also found these for cheaper (at least, to my country) on AliExpress.

Update 2: It appears as though both of the brackets could be incompatible, due to differences regarding how they and the Ethernet ports latch together (on the NEC cards, it looks like the mechanism is in reverse to the reference BCM5719 cards).

Update 3: It may be possible that NEC decided to reuse PCI brackets meant for Intel NICs, since AliExpress has such brackets and they look suspiciously similar to what is on the EXP182A (not exactly the same, however).

moriel5 commented 2 years ago

And my (short height/SFF bracket) cards have now arrived (after a few delays, as a result of mistakes made by me and the shipping company).

Once I have proper access to my desktop and laptop (too many things open and they are both in hibernation, not to mention the things that require repairs via soldering, for which I am learning how to properly care for soldering irons with my new Pinecil), I'll start working on compiling the firmware and testing out on one of them (with the intention of eventually flashing all of them).

Update: I did test the cards, however things were rather convoluted, due to the Dell (Dell Dimension 4500S) not having any PCIe slots, all of my SFF cases are OEM models that are incompatible with standard motherboard (better for right handed people), and the only SFF PC that has PCIe in my possession (ThinkCentre M58) decided to die, after refusing to recognize any USB keyboard (no PS/2 ports, for some reason).

Trying to put any of my EXP182As in one of my readily accessible motherboards that do have PCIe (the majority are from the DDR1 and DDR2 eras) just caused them to freeze at post (an incompatibility with PCIe1, perhaps?), however in my daily driver desktop (it turns out that it lost power while in sleep mode, not hibernation as I had thought), an Asus Z97 Pro Gamer, I set the 3rd x16 slot (x4 electrically) to x2, so as not lose WiFi (the 2 x1 slots share lanes with the 3rd x16 slot and the M.2 slot (unfortunately, I cannot set both of them latter to x1, and even the M.2 slot cannot be set to x2), and it worked, albeit with 2 automatic power cycles, and they worked fine.

I don't believe that the cause is the power supply, since the PSUs in use are good known units (Antec HCG-520 80+ Bronze 520W on the makeshift testbench and the ThinkCentre M58, due to not having a TFX PSU with a 24 pin connector, and Seasonic PX² 80+ Platinum 860W in my daily driver desktop).

moriel5 commented 2 years ago

If anyone is interested, here are two more listings for the EXP182A:

Located in Hong Kong: https://www.ebay.com/itm/164267565383 Located in the US (Texas): https://www.ebay.com/itm/202616083307

Update: One more listing in Hong Kong:

https://www.carousell.com.hk/p/nec-quad-port-1gb-1000m-pci-network-card-exp182a-n8104-133-low-profile-5719-1074092830

And a listing for one of the IBM variants (not sure which, it is being listed as the IBM 5899), also in Hong Kong:

https://www.carousell.com.hk/p/ibm-5899-4-port-1gb-ethernet-adapter-00e2872-5899-82xx-5719-1030200306

Update 2: Not completely sure, but this appears to be a B2B listing for corporate purchase of the EXP182A in the US (no one has answered my call to their hotline yet): https://www.calhountech.com/products/n8104-133-nec-nec-quad-port-1000base-t-pci-express-adapter-exp182a-n8104-133.html

moriel5 commented 2 years ago

EXP182A support page:

http://www.58support.nec.co.jp/search_ex/search/Product?ProductID=279

moriel5 commented 2 years ago

Alright, I just got around to compiling the firmware, however the requirements for the custom compiled has set me back, due to slow download speeds and the sheer amount of space needed.

I'll need to delay this until I replace my desktop's 320GB hard drive with the 500GB drive currently waiting, as well as (possibly, it depends on when I'll have time to swap the drive and set up the OS) switching to fiber (now that it is finally possible, although it is the maimed G.PON version rather than the proper P2P version) from our ~55Mbts (we are currently paying for 100/5Mbts on DSL) connection.

meklort commented 2 years ago

Ya... LLVM takes a while to compile on most machines (and uses a bit of space).

moriel5 commented 2 years ago

@meklort Certainly make sense, it is a compiler of course.

And it turns out I forgot that I was already on a 500GB hard drive for my main OS (Linux, Solus to be precise), and this 500GB drive is meant for my Windows 10 installation (unfortunately, there are obscure utilities for obscure hardware which require Windows to work with them (I even have a Windows FLP installation on an old ThinkPad T22 for even more obscure hardware and utilities)), so I'll use that drive for the compile before I get around to installing Windows 10 on it.

moriel5 commented 1 year ago

After rereading the base datasheet, it seems that the BCM5719 supports both Ethernet and SGMII.

Does anyone know of any BCM5719 or BCM5720/BCM5718 SFP cards? Since I certainly don't see any from my searches. They could eventually be a decent alternative to the Intel i210AS with this firmware.

moriel5 commented 1 year ago

It looks like we may finally have a no-name chinese BCM5719 on AliExpress... for ~$42.63.

Here is the listing: https://aliexpress.com/item/1005005029592391.html

moriel5 commented 1 year ago

This is not the BCM5719, however I may have found a (Chinese no-name) BCM5720 SFP card (for slightly over $50).

Here is the listing: https://aliexpress.com/item/1005004495041832.html

moriel5 commented 1 year ago

Also, I have found a listing for a BCM5719 SFP card... which in reality is a NEC EXP182a, which is RJ-45 (with a price of $231).

moriel5 commented 1 year ago

Also, if anyone wants to purchase multiple units of the EXP182a, someone in Texas is currently selling a whole lot of 9 cards right now on eBay: https://www.ebay.com/itm/Lot-of-9-NEC-N8104-133-EXP182A-Quad-Port-1000Base-T-Ethernet-Adapter-Card/165139386438