Jump to content

Marvell (Aquantia) 10 Gb Ethernet support thread


d5aqoep
498 posts in this topic

Recommended Posts

Just a quick update. My AQN-107 arrived and finally this sucker supports WOL in Windows. However the drivers are nightmare. I had to search and search and after a lot of reboots, I settled on Aquantia 1.42.33 driver as that is the only stable driver which works after reboot. The V2 driver on Aquantia's site works till reboot and after that it stops working.

As expected it is not working in macOS 10.13.4 Beta 6. I am not installing 10.13.3 and I don't want Apple to forcefully upgrade the firmware. Hopefully someone develops a kext and brings this cards to life.

Notice my new card is AQN and not AQC as this topic denotes.

Edited by d5aqoep
Link to comment
Share on other sites

On 3/24/2018 at 9:20 AM, d5aqoep said:

Just a quick update. My AQN-107 arrived and finally this sucker supports WOL in Windows. However the drivers are nightmare. I had to search and search and after a lot of reboots, I settled on Aquantia 1.42.33 driver as that is the only stable driver which works after reboot. The V2 driver on Aquantia's site works till reboot and after that it stops working.

As expected it is not working in macOS 10.13.4 Beta 6. I am not installing 10.13.3 and I don't want Apple to forcefully upgrade the firmware. Hopefully someone develops a kext and brings this cards to life.

Notice my new card is AQN and not AQC as this topic denotes.

 

I got an ASRock X299 Professional Gaming with this AQC-107. The network card was seen in macOS however it wasn't functional (it never detected that a cable was plugged in).

Booting in windows and installing the bootcamp Aquantia drivers was all that needed to make it work.

During macOS boot, you can see a message that it is checking for a firmware revision and that it's not matching. After installing the apple bootcamp drivers it all worked splendidly.

My guess is that the bootcamp drivers update the firmware so that it is later recognised under macOS.

give it a try, the drivers are provided by @DSM2 above this post.

Hope that it works for you

Edited by jya
Link to comment
Share on other sites

4 hours ago, jya said:

 

I got an ASRock X299 Professional Gaming with this AQC-107. The network card was seen in macOS however it wasn't functional (it never detected that a cable was plugged in).

Booting in windows and installing the bootcamp Aquantia drivers was all that needed to make it work.

During macOS boot, you can see a message that it is checking for a firmware revision and that it's not matching. After installing the apple bootcamp drivers it all worked splendidly.

My guess is that the bootcamp drivers update the firmware so that it is later recognised under macOS.

give it a try, the drivers are provided by @DSM2 above this post.

Hope that it works for you

It just doesn't work for me whichever way I try on 10.13.4 betas. Are you sure you are on 10.13.4 Beta 6? Because it works perfectly for me on 10.13.3.

Link to comment
Share on other sites

@meaganmargaret

I will avoid Intel X540-T2 cards for following reasons:

1. Many of them costing $99 on ebay are fake. (Genuine chips on fake PCB) They might catch fire anytime that much they heat up.

2. Based on very old chipset which consumes 3-4 times more power than Aquantia solution.

3. WOL (Wake on LAN) is not supported on Intel based cards.

For Aquantia based cards, WOL definitely works on AQN-107 (Aquantia NIC manufactured by Aquantia themselves) and does not work on AQC-107 (Aquantia Chip manufactured by third parties like ASUS, Gigabyte and ASRock.)

Right now can anyone with a real iMacPro1,1 who is on macOS 10.13.4 Beta 6 confirm whether their ethernet works? Because it's the same Aquantia card.

I am happy with my AQN-107 because it's power consumption is 6w peak during 10GBe file transfers to and from my NAS. I would prefer a simple kext based solution to get my card up and running in macOS if Apple is actually blacklisting our cards. I hope they don't dare to upgrade the firmware of our cards without our knowledge because I am sure it is illegal to upgrade firmware of different manufacturer (ASUS) by Apple without proper consent.

Link to comment
Share on other sites

[mention=1167389]meaganmargaret[/mention]
I hope they don't dare to upgrade the firmware of our cards without our knowledge because I am sure it is illegal to upgrade firmware of different manufacturer (ASUS) by Apple without proper consent.


LOL...
Because running unlicensed, breaching Apple's T&C isn't? (Illegal)
I'd love for you to have your day in courts about that.
Link to comment
Share on other sites

3 hours ago, jya said:

 


LOL...
Because running unlicensed, breaching Apple's T&C isn't? (Illegal)
I'd love for you to have your day in courts about that.

 

I know someone will have a go at me on that point but Hackintoshers modding their PCs is least of Apple's worries if someone like ASUS sues them for unlawful modification to their hardware.

There are many who successfully make a hackintosh and buy significant and costly apps from mac App store.

Kindly stay on AQC-107 topic please.

Edited by d5aqoep
Link to comment
Share on other sites

Has somebody with a non-working card using 10.13.4 beta checked the kernel logs for any driver messages as this would be the place to start in case you are looking for a solution?

Mieze

Link to comment
Share on other sites

As promised, I started reverse engineering the driver after installing the final release of 10.13.4 and found the following code section in the drivers start() routine.

    14c8:	e8 55 20 00 00       	callq  3522 <AppleEthernetAquantiaAqtion::checkConfigSupport(int&, int&)>
    14cd:	41 83 3c 24 00       	cmpl   $0x0,(%r12)
    14d2:	0f 84 c0 03 00 00    	je     1898 <AppleEthernetAquantiaAqtion::start(IOService*)+0x5e6>

In earlier versions the driver already checked certain hash values in order to identify Apple devices but with 10.13.4 they added a new function called checkConfigSupport() where they perform these checks and they have added more hash values to check helping to distinguish original Apple NICs from flashed 3rd party device and in case checkConfigSupport() returns 0, the driver will refuse the device. I haven't found the time to reverse engineer checkConfigSupport() in detail but I patched the "je" instruction which causes the driver to fail in case of the return value 0. Now it works. Here is the Clover patch I created.

5abea07aeebb2_Bildschirmfoto2018-03-30um22_27_15.png.ff805cd1dd25218ddb680fbd7213c487.png

As you can see, the Aquantia NIC shows up in System Profiler and successfully acquires an IP address.

5abea10d9b894_Bildschirmfoto2018-03-30um22_25_39.thumb.png.f4eaca1277cd5db60a9b3e309af1ae1d.png

Next step would be a complete reverse engineering of checkConfigSupport() but I haven't found time for it. In order to enable the driver's debug output, you might want to add "apple-axge-debug=0xff" to your kernel flags. Have fun!

Mieze

  • Like 6
  • Thanks 3
Link to comment
Share on other sites

This means Apple and Aquantia must be aware of the bug which caused forced firmware update of AQC107 cards. Does forced firmware update happen in 10.13.4 now? I have a card which has stock firmware and I want to use it in 10.13.4. It might need more patches?

I dont want to risk its firmware getting chamged.

Link to comment
Share on other sites

1 minute ago, d5aqoep said:

This means Apple and Aquantia must be aware of the bug which caused forced firmware update of AQC107 cards. Does forced firmware update happen in 10.13.4 now? I have a card which has stock firmware and I want to use it in 10.13.4. It might need more patches?

I dont want to risk its firmware getting chamged.

I haven't done any research on this particular point but as in 10.13.4 IONetworking.kext still contains a firmware update kext and checkConfigSupport() get's called immediately before calling the function which performs firmware verification and update, we must assume that firmware updates still take place once the card has been accepted by the driver. A definitive answer may be found inside checkConfigSupport() but this is a question which is still waiting to be answered as I haven't checked the tests which are performed and how their results influence the driver 's operation. Better keep your vanilla card away from the hack in case you don't want it to be flashed!

Mieze :cat:

  • Like 1
Link to comment
Share on other sites

So is there a way to force flash of original FW? (Aquantia, not the Apple one) Sometimes I have a stop on BIOS/EFI start with Info "CHECK NVFLASH". I have to remove card and put it BACK again, then it works, until, after a few days, the same problem occurs.

Link to comment
Share on other sites

2 minutes ago, TECH_ATTACK said:

So is there a way to force flash of original FW? (Aquantia, not the Apple one) Sometimes I have a stop on BIOS/EFI start with Info "CHECK NVFLASH". I have to remove card and put it BACK again, then it works, until, after a few days, the same problem occurs.

Take a look at your BIOS settings and disable execution of add-on ROM code for the card (usually other devices or network). This should resolve the issue.

Mieze

Link to comment
Share on other sites

Thx for the tip. I disabled IRQ 19 Capture and ROM Messages... hope it will fix it (I have no more options related to this. Mainboard is an ASUS Prime X299 Deluxe). And thanks for your patch too, my Ethernet is now working on 10.13.4 Beta. :)

Link to comment
Share on other sites

Aquantia engineer managed to Flash updated firmware on my ASUS Card and changed the subsystemID back to original. So with the new patch on 10.13.4 my card is getting detected as this

dflVCm2.png

Network cable comes up as unplugged and forceful firmware upgrade is not taking place because my card is already on higher firmware version. Now what can be done to get rid of cable unplugged problem? I may need to spoof it as Apple card.

Link to comment
Share on other sites

On 2018/3/31 at 1:18 AM, jya said:

 


It's not showing up in the PCI device list?

 

It exists as a PCI device, of course.

Thanks to the Mieze patch, it now appears as an Ethernet card on 10.13.4. 

Link to comment
Share on other sites

On 31/3/2018 at 5:50 AM, Mieze said:

As promised, I started reverse engineering the driver after installing the final release of 10.13.4 and found the following code section in the drivers start() routine.


    14c8:	e8 55 20 00 00       	callq  3522 <AppleEthernetAquantiaAqtion::checkConfigSupport(int&, int&)>
    14cd:	41 83 3c 24 00       	cmpl   $0x0,(%r12)
    14d2:	0f 84 c0 03 00 00    	je     1898 <AppleEthernetAquantiaAqtion::start(IOService*)+0x5e6>

 

Mieze please:

My plan was to use one ASUS XG-C100C in a real Mac mini via a Thunderbolt external case with a PCIe expansion slot (maybe a Node Lite). But, all of this new checks that apple introduced in the 10.13.4 are really annoying.

 

So, I'm thinking about another route to bypass the apple checks instead of patch the driver: Would be possible to do something similar to what people are doing to the Intel NICs to use the Small Tree drives, and cheat the apple driver?

https://forums.macrumors.com/threads/modify-retail-intel-10gbe-nics-to-use-small-tree-macos-drivers.1968456/

Thanks!

Link to comment
Share on other sites

1 hour ago, vicmarto said:

Mieze please:

My plan was to use one ASUS XG-C100C in a real Mac mini via a Thunderbolt external case with a PCIe expansion slot (maybe a Node Lite). But, all of this new checks that apple introduced in the 10.13.4 are really annoying.

 

So, I'm thinking about another route to bypass the apple checks instead of patch the driver: Would be possible to do something similar to what people are doing to the Intel NICs to use the Small Tree drives, and cheat the apple driver?

https://forums.macrumors.com/threads/modify-retail-intel-10gbe-nics-to-use-small-tree-macos-drivers.1968456/

Thanks!

You simply have to install 10.13.3 and that macOS version has a bug which re-writes your card's Subsystem ID to Apple one. Then it will continue to work with patch given by Mieze. Or if someone can create a FakePCIID injector kext to be used along with FakePCIID.kext and we will be able to use our unmodified cards like they do with Broadcom based wifi cards.

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...