Enclosure & Hardware Discussions
ALERT: half H2D performance issue on TI83 TB3 enclosures (Node, Venus, Devil Box...
 

ALERT: half H2D performance issue on TI83 TB3 enclosures (Node, Venus, Devil Box, XG Station 2)  

 of  8
  RSS

yoshiwaan
(@yoshiwaan)
Active Member
Joined: 3 years ago
 

I have a Devilbox, GTX 1080 and XPS 9550. Cuda-Z is showing 11XX in the host to device field of the performance tab so I guess I have a TI83 controller. How can I check this for sure?

I, like many others using the Devilbox, are using some ghetto firmware posted on Reddit or this forum as Powercolor have not been very good with their updates. So is there a firmware update from Powercolor to fix this floating around which works with the 9550? 

- Dell XPS 9550
- Windows 10
- Devilbox
- GTX 1080


ReplyQuote
nando4
(@nando4)
Noble Member Admin
Joined: 3 years ago
 

To see if you have a TI82 or TI83 version, visually inspect your  DSL6540C board looking for a TPS65983 chip as shown below (from a Sonnet Breakaway 350 here that uses the same DSL6540C board). Mantiz Venus, Powercolor Devil Box, Sonnet Breakaway Box and OWC Helios FX all use the same DSL6540C V 1.0 mainboard

The Devilbox for the most part appears to have had abandoned support. No H2D firmware fixes were released for it.  The Winboard chip about the pictured TI83 controller is where you firmware updates get stored. The Devil Box may be a good one to consider cross flashing one of these other vendors firmware on using an eeprom burner.

eGPU Setup 1.35    •    eGPU Port Bandwidth Reference Table

15" Dell Precision 7510 (Q M1000M) (6th,4C,H) + GTX 1080 Ti @ 32Gbps-M2 (ADT-Link R43SG) + macOS 10.13.6 & Win10


ReplyQuote
yoshiwaan
(@yoshiwaan)
Active Member
Joined: 3 years ago
 

I definitely don't want to be the trailblazer on that one and brick a $500 piece of hardware. If anyone else has done it though and has a guide along with proven results I'm interested.

Edit: Missed the link with the fix for the Devilbox in the first post when I posted this. Here's the thread for anyone else: https://egpu.io/forums/thunderbolt-enclosures/new-firmware-for-powercolor-devil-box-addresses-h2d-bandwidth-problem/#post-23910

- Dell XPS 9550
- Windows 10
- Devilbox
- GTX 1080


ReplyQuote
nando4
(@nando4)
Noble Member Admin
Joined: 3 years ago

ReplyQuote
yoshiwaan
(@yoshiwaan)
Active Member
Joined: 3 years ago
 

Thank you! Update applied and looking a bit better!

- Dell XPS 9550
- Windows 10
- Devilbox
- GTX 1080


ReplyQuote
karatekid430
(@karatekid430)
Estimable Member
Joined: 2 years ago
 

@nando4

Using Linux, you can flash firmware without checks for compatibility. You don't need a ROM programmer.

Although, when you brick it, you need the ROM programmer to unbrick it. I have been there, and getting a reliable connection using SOIC test clips is frustrating - dozens of attempts.

Linux can also extract the current firmware from a working device - so be sure to do that, as many vendors never publish the NVM contents. In my case, if I had not backed it up, I would have been unable to recover it (Asrock Thunderbolt 3 AIC).

The extracted firmware from Linux needs 2^13 or 2^14 null bytes prepended before it can be re-flashed - although I cannot remember which. You will need to examine a downloaded firmware from the internet in a hex editor.

If you are using this extracted firmware with a ROM programmer, it is trickier. You need the prepended null bytes, then the contents, then some more null bytes, then the contents again - it is something to do with the active / non-active regions of the ROM.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
nando4
(@nando4)
Noble Member Admin
Joined: 3 years ago
 

@karatekid430 , cross flashing firmware is of interest. The TUL-based enclosures (Sonnet Breakaway Box, Mantiz Venus, Powercolor Devil Box) share a common TI83 base board.

This means cross flashing could allow a user to purchase the lowest cost Breakaway Box, upgrade their PSU & flash their choice of firmware with desirable Power Delivery (15W, 60W, 87W).

Though to even consider this, would require a reliable, reproducable & safe guide on how to do this. If you manage to get your hands on such Sonnet Breakaway Boxes, consider submitting said guide.

eGPU Setup 1.35    •    eGPU Port Bandwidth Reference Table

15" Dell Precision 7510 (Q M1000M) (6th,4C,H) + GTX 1080 Ti @ 32Gbps-M2 (ADT-Link R43SG) + macOS 10.13.6 & Win10


ReplyQuote
Alan49
(@alan49)
Active Member
Joined: 1 year ago
 

Hello,
First of all, I am French. So sorry if the translation is not very good.
I have been your forum for a while and decided to sign up for help.
I have a lot of different subject on the forum but I can not find my answer.
I bought an EGPU KFA2 (GALAXY) SNPR thunderbolt 3 1060 6gb.
At first i want to use it with a macbook pro 13 2017 256gb NO TOUCH
But the firmware of the mac cut the iGPU at startup, there is the technique of the EFI file but it has constraints. I used another technique, that of connecting the EGPU just before windows startup.
At that moment I did not know the problem of 50% H2D.
I'm not a great player but I love BAttlefield 1 and other COD games.
To go back to the problem, during the game on MBP I had a problem of FPS and also big variations. About 45 fps average and up to 55 and down to 25.
So I thought either my processor (i5-7360u) was too small or there was a problem with the bootcamp driver.
So I decided to buy a laptop DELL xps 13 9370 4K 16GB 512ROM and I7-8550u.
I have a higher frame rate but still fall in FPS.
I have now seen the subject of 50% H2D.
I think that on the MAC I had a weak processor problem and H2D.
All this is on external screen. 1080P
Today I think that my EGPU has a H2D problem, I saw another topic on the forum for this EGPU and it is evoked the same problem.
I did not find any FW on the KFA2 website.
I contacted the support, and he told me that he sends my request to the R & D department.
I am only this week to decide to dismiss the EGPU.
Do you think it is possible to update the FW via a tool of another brand?
What is the purpose of Thunderbolt FW update tool?
Will I have to return the EGPU?
Thank you very much for your work.
Have a good day.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
itsage
(@itsage)
Famed Member Admin
Joined: 3 years ago
 

@alan49 As you had narrowed down, the culprit is with the eGPU enclosure’s firmware. KFA2 should be able to produce a new firmware to up the H2D bandwidth and provide a way for customer to update the firmware. This has been the process with all enclosures that suffered H2D issue.

Best ultrabooks for eGPU use | eGPU enclosure buying guide


ReplyQuote
Alan49
(@alan49)
Active Member
Joined: 1 year ago
 

I still send a message, I really hope an answer.
I try to update via the utilities of other brands but of course they detect that it is not the right brand.

my message

Hello,

Please, I really need help with the galaxy / kfa2 product eGPU thunderbolt 3 external graphics card 1060 6gb.
If I could talk with an engineer about the bandwidth problem that affects your product.
All other brands of eGPU offers a firmware update of the controller thunderbolt texas instrument. To no longer have the problem called half-H2D. The Host to Device connection is only active at 50% this is a big problem. The card is not at full power. I have only 3-4 days if I have no answer I would have to return the product or I bought them. And choose an Akitio model.
Please, I need an updated firmware.
Tell your engineer to visit the egpu.io website and look for the H2D problem.

Thank you
have a good day

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
nando4
(@nando4)
Noble Member Admin
Joined: 3 years ago
 

@alan49, are you familiar with Linux? As you’ve already tried to flash other vendor firmware, perhaps try under Linux? The following Linux method to do that from here may help.

Upgrading the firmware under Linux

Thunderbolt has a standardised interface to update the firmware on chipsets at either end of the link. Luckily for us Linux exposes this interface directly under /sys allowing firmware updates with no special tools required. Care has been taken to allow recovery in the event of a corrupt firmware upgrade and firmware images are checksummed to ensure that only good firmware is booted, reducing the chances of causing permanent damage to your machine or devices.

Thunderbolt devices under Linux have 2 separate firmware areas, The Active firmware area (nvm_active1) and the non-active firmware area (nvm_non_active1) only the non-active area can have firmware uploaded to it. Once this area has been written to, the firmware can be authenticated after which the device automatically reboots and boots into the new verified firmware.

on my system, The AORUS shows up at /sys/bus/thunderbolt/devices/0-0/0-1 and the Thunderbolt port at /sys/bus/thunderbolt/devices/0-0/, as you can see the AORUS device is in a directory under the Thunderbolt host device indicating where it is plugged in (this becomes helpful if you have multiple devices connected).

In these directories you can see information relating to the device such as its name, key and who built it (device_name, key and vendor*) as well as the nvm_* directories corresponding to the firmware

To perform the update procedure grab the latest firmware version from reddit/Gigabyte. As I was interested in increased PCIe/GPU performance I selected the H2D firmware which helps speed up transfers from the laptop to the device as per eGPU.io I was glad to see that Gigabyte delivered a new firmware image in a significantly faster time frame than I anticipated. I was even more encouraged when presented with a zip file that contained the raw firmware without obfuscation or embedding, allowing me to directly copy the file with minimal fuss.

Verifying the currently running firmware

It is possible to determine which firmware you are running via the nvm_version file, however in the case of the H2D vs non-H2D firmware above, these both present the same version. Luckily the running firmware can be read from memory and hashed allowing us to determine which version is running. These hashes won’t match the on disk firmware versions but will allow you to differentiate between running firmwares

On my device the non-H2D version gave me the following

$ md5sum /sys/bus/thunderbolt/devices/0-0/0-1/nvm_active1/nvmem
5e761bb6ba0d555d0b7699a2292b7148

While the H2D version gave me the hash shown below

$ md5sum /sys/bus/thunderbolt/devices/0-0/0-1/nvm_active1/nvmem
a00484ac3176c72e2b8a8272c6e3ab0c

Flashing the firmware

Inside both Zip files is a ‘.bin’ file that represents the firmware (in my case AORUS_N1070IXEB_8GD_VER10H2D.bin md5:1ed8ee21f01595efee8914e40fe638ef) upgrading was as simple as:

# cat AORUS_N1070IXEB_8GD_VER10H2D.bin > /sys/bus/thunderbolt/devices/0-0/0-1/nvm_non_active1/nvmem
# echo 1 > /sys/bus/thunderbolt/devices/0-0/0-1/nvm_authenticate

After this the device disconnected, rebooted and then became visible again (after going through the authentication step above)

I then proceeded to verify the H2D bandwidth using my own H2D opencl benchmarking script but found that both firmwares provided similar numbers (2761MB/s). Due to not benchmarking pre-firmware upgrades I cannot confirm if my script is broken or if both firmwares contain the H2D fix and that the [email protected] firmware contains some additional tuning as per their notes on what each version is optimised for. If someone does benchmark before and after please let me know so I can update this article.

eGPU Setup 1.35    •    eGPU Port Bandwidth Reference Table

15" Dell Precision 7510 (Q M1000M) (6th,4C,H) + GTX 1080 Ti @ 32Gbps-M2 (ADT-Link R43SG) + macOS 10.13.6 & Win10


ReplyQuote
Alan49
(@alan49)
Active Member
Joined: 1 year ago
 

Hello, thank you for your answer.
I do not have enough time and computer skills to do this test on Linux
I'm going to return mine and I ordered the aorus gaming box 1070, I receive it Tuesday normally.
If the graphics performance is the same between the XPS 13 i7-8550u and the macbook pro 13 2017 i5-7360u I'll have to make a choice between the two and it's difficult. Otherwise I leave both for a lenovo thinkpad x1 carbon 2018 HDR but my problem is that the test shows a poor quality of sound.

Thank you

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
yjchua
(@yjchua)
Eminent Member
Joined: 3 years ago
 

So even with 25.1 firmware on my Node, my late-2016 15" rMBP (460 Pro, RX 570 eGPU) is being severely throttled in H2D speeds (just 700MB/s in CL!ng).

System Information shows that the eGPU is only using PCIe lane width x1.

Screen Shot 2018 11 24 at 18.09.55
Screen Shot 2018 11 24 at 01.35.40

What exactly is wrong with my setup?

Late-2016 15" rMBP (2.9/16/1TB/460)
Akitio Node + Asus Expedition RX 570 OC, 4GB


ReplyQuote
jangoloti
(@jangoloti)
Trusted Member
Joined: 1 year ago
 

Both D2H and H2D throughputs seem to be limited in your setup. On mine, D2H was 2600 MiB/s with H2D of 1160. The firmware update improved the latter to 1660, which seems to be a known issue due to some limitation to the number of PCIe lanes in use with one of the scripts in this forum. As it is not my definitive set up I will not be troubleshooting any further.

Mac Mini 2012 and 2018 i7, Mac book Pro 2016 15" with TB, eGPU Galax/KFA2


ReplyQuote
yjchua
(@yjchua)
Eminent Member
Joined: 3 years ago
 
Posted by: jangoloti

Both D2H and H2D throughputs seem to be limited in your setup. On mine, D2H was 2600 MiB/s with H2D of 1160. The firmware update improved the latter to 1660, which seems to be a known issue due to some limitation to the number of PCIe lanes in use with one of the scripts in this forum. As it is not my definitive set up I will not be troubleshooting any further.

The thing is, what actually determines the number of PCIe lanes allocated to the TB3 device?

Is it the OS that decides? Or is it dependent on hardware?

Late-2016 15" rMBP (2.9/16/1TB/460)
Akitio Node + Asus Expedition RX 570 OC, 4GB


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 
Posted by: yjchua

The thing is, what actually determines the number of PCIe lanes allocated to the TB3 device?

Is it the OS that decides? Or is it dependent on hardware?

The hardware decides. The software can tell the hardware to try renegotiating (at least the link speed; I'm not sure about the link width). Graphics drivers lower the link speed when the graphics card is idle. I've never seen a driver change the link width. I think all Thunderbolt eGPUs should have four lanes for the graphics card. One lane occurs when there's a problem with the three other lanes during link negotiation. Maybe the lspci command (verbose mode) has useful information?

Can you show a screen shot of the PCIe lane width problem?

You could try removing the graphics card and reinserting it. Or try another card.

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
yjchua
(@yjchua)
Eminent Member
Joined: 3 years ago
 
Posted by: joevt
Posted by: yjchua

The thing is, what actually determines the number of PCIe lanes allocated to the TB3 device?

Is it the OS that decides? Or is it dependent on hardware?

The hardware decides. The software can tell the hardware to try renegotiating (at least the link speed; I'm not sure about the link width). Graphics drivers lower the link speed when the graphics card is idle. I've never seen a driver change the link width. I think all Thunderbolt eGPUs should have four lanes for the graphics card. One lane occurs when there's a problem with the three other lanes during link negotiation. Maybe the lspci command (verbose mode) has useful information?

Can you show a screen shot of the PCIe lane width problem?

You could try removing the graphics card and reinserting it. Or try another card.

Screen Shot 2018 11 24 at 01.35.28
Screen Shot 2018 11 24 at 01.35.40

Here goes.

Already tried removing and reinserting it - no dice. Same with SMC and NVRAM reset. Don't have another card to try at the moment. Also tried using two different cables - the one that came with the Node and a 0.5m CableMatters TB3 cable. Maybe I should try getting an active cable?

How exactly should I do this lspci thing?

Late-2016 15" rMBP (2.9/16/1TB/460)
Akitio Node + Asus Expedition RX 570 OC, 4GB


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 
Posted by: yjchua

Already tried removing and reinserting it - no dice. Same with SMC and NVRAM reset. Don't have another card to try at the moment. Also tried using two different cables - the one that came with the Node and a 0.5m CableMatters TB3 cable. Maybe I should try getting an active cable?

Does the graphics card appear in the PCI section? Post a screenshot of that.

The Thunderbolt info shows the cable is ok (Speed: Up to 40 Gb/s x1, Current Link Width: x2). The problem is between the graphics card and the Thunderbolt controller of the eGPU. Maybe you need a new graphics card (test it in a different PCIe slot) or a new eGPU box (test a different PCIe card).

Posted by: yjchua

How exactly should I do this lspci thing?

Follow the links from: https://egpu.io/forums/builds/2018-13-xps13-nvidia1060-6go-galax-snpr-windows-10/#post-48096

Try the pcitree.sh command:

sudo ./pcitree.sh

Try lspci by itself. This one lists the devices:

sudo lspci -nn

This one lists the devices in a tree (similar to pcitree.sh):

sudo lspci -tvnn

The following lists the devices and most of their information. You'll probably only want to show us the devices belonging to the graphics card and the Node.

sudo lspci -vvvnn

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
yjchua
(@yjchua)
Eminent Member
Joined: 3 years ago
 
Posted by: joevt
Posted by: yjchua

Already tried removing and reinserting it - no dice. Same with SMC and NVRAM reset. Don't have another card to try at the moment. Also tried using two different cables - the one that came with the Node and a 0.5m CableMatters TB3 cable. Maybe I should try getting an active cable?

Does the graphics card appear in the PCI section? Post a screenshot of that.

The Thunderbolt info shows the cable is ok (Speed: Up to 40 Gb/s x1, Current Link Width: x2). The problem is between the graphics card and the Thunderbolt controller of the eGPU. Maybe you need a new graphics card (test it in a different PCIe slot) or a new eGPU box (test a different PCIe card).

Posted by: yjchua

How exactly should I do this lspci thing?

Follow the links from: https://egpu.io/forums/builds/2018-13-xps13-nvidia1060-6go-galax-snpr-windows-10/#post-48096

Try the pcitree.sh command:

sudo ./pcitree.sh

Try lspci by itself. This one lists the devices:

sudo lspci -nn

This one lists the devices in a tree (similar to pcitree.sh):

sudo lspci -tvnn

The following lists the devices and most of their information. You'll probably only want to show us the devices belonging to the graphics card and the Node.

sudo lspci -vvvnn
Screen Shot 2018 11 25 at 10.26.17

Here's the PCI section.

The lspci command doesn't exist according to Terminal. 

sudo ./pcitree.sh isn't found either in Terminal.

Late-2016 15" rMBP (2.9/16/1TB/460)
Akitio Node + Asus Expedition RX 570 OC, 4GB


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 
Posted by: yjchua

The lspci command doesn't exist according to Terminal. 

sudo ./pcitree.sh isn't found either in Terminal.

You didn't follow the links.

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
yjchua
(@yjchua)
Eminent Member
Joined: 3 years ago
 
Posted by: joevt
Posted by: yjchua

The lspci command doesn't exist according to Terminal. 

sudo ./pcitree.sh isn't found either in Terminal.

You didn't follow the links.

I did. When I typed man lspci, the manual entry came up, but running those commands threw up that error.

Late-2016 15" rMBP (2.9/16/1TB/460)
Akitio Node + Asus Expedition RX 570 OC, 4GB


ReplyQuote
joevt
(@joevt)
Prominent Member
Joined: 2 years ago
 
Posted by: yjchua

I did. When I typed man lspci, the manual entry came up, but running those commands threw up that error.

What error? Did you set the nvram boot arguments and disable SIP?

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
yjchua
(@yjchua)
Eminent Member
Joined: 3 years ago
 
Posted by: joevt
Posted by: yjchua

I did. When I typed man lspci, the manual entry came up, but running those commands threw up that error.

What error? Did you set the nvram boot arguments and disable SIP?

Already set the boot args, didn't know I had to disable SIP (I usually try to avoid this).

Did all 4 commands and the full outputs are all in TXT files, accessible from this folder in my OneDrive:  https://1drv.ms/f/s!AkzrHH5MUh7thu5JRNkmHIGKY3G-3g

Anyway here's the output of lspci -vvnnn that's relevant to the GPU parts:

c3:01.0 PCI bridge [0604]: Intel Corporation DSL6340 Thunderbolt 3 Bridge [Alpine Ridge 2C 2015] [8086:1576] (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 128 bytes
	Interrupt: pin A routed to IRQ 19
	Bus: primary=c3, secondary=c4, subordinate=c4, sec-latency=0
	I/O behind bridge: 00006000-00006fff [size=4K]
	Memory behind bridge: 82a00000-82afffff [size=1M]
	Prefetchable memory behind bridge: 0000007fe0000000-0000007ff01fffff [size=258M]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [80] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [88] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [ac] Subsystem: Device [1cf0:0308]
	Capabilities: [c0] Express (v2) Downstream Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0
			ExtTag+ RBE+
		DevCtl:	CorrErr- NonFatalErr- FatalErr- UnsupReq-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
		LnkCap:	Port #1, Speed 8GT/s, Width x4, ASPM L0s L1, Exit Latency L0s <2us, L1 <4us
			ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+
		LnkCtl:	ASPM Disabled; Disabled- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s (downgraded), Width x1 (downgraded)
			TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt+
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #0, PowerLimit 0.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet+ LinkState+
		DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR+, OBFF Not Supported ARIFwd-
			 AtomicOpsCap: Routing-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd-
			 AtomicOpsCtl: EgressBlck-
		LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -3.5dB
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+, EqualizationPhase1+
			 EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
	Capabilities: [100 v1] Device Serial Number 4f-41-ac-d8-2b-e9-07-00
	Capabilities: [200 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP+ Rollover- Timeout- AdvNonFatalErr-
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		AERCap:	First Error Pointer: 00, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn-
			MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
		HeaderLog: 00000000 00000000 00000000 00000000
	Capabilities: [300 v1] Virtual Channel
		Caps:	LPEVC=0 RefClk=100ns PATEntryBits=1
		Arb:	Fixed- WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=Fixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
			Status:	NegoPending- InProgress-
	Capabilities: [400 v1] Power Budgeting <?>
	Capabilities: [500 v1] Vendor Specific Information: ID=1234 Rev=1 Len=0d8 <?>
	Capabilities: [700 v1] Secondary PCI Express <?>

c4:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X] [1002:67df] (rev ef) (prog-if 00 [VGA controller])
	Subsystem: ASUSTeK Computer Inc. Device [1043:051d]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 128 bytes
	Interrupt: pin A routed to IRQ 19
	Region 0: Memory at 7fe0000000 (64-bit, prefetchable)
	Region 2: Memory at 7ff0000000 (64-bit, prefetchable)
	Region 4: I/O ports at 6000 [disabled]
	Region 5: Memory at 82a00000 (32-bit, non-prefetchable)
	Expansion ROM at 82a40000 [disabled]
	Capabilities: [48] Vendor Specific Information: Len=08 <?>
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	CorrErr- NonFatalErr- FatalErr- UnsupReq-
			RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 8GT/s, Width x16, ASPM L1, Exit Latency L1 <1us
			ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s (downgraded), Width x1 (downgraded)
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR+, OBFF Not Supported
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
			 AtomicOpsCtl: ReqEn-
		LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+, EqualizationPhase1+
			 EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee010d8  Data: 0000
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [150 v2] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		AERCap:	First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
			MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
		HeaderLog: 00000000 00000000 00000000 00000000
	Capabilities: [200 v1] Resizable BAR <?>
	Capabilities: [270 v1] Secondary PCI Express <?>
	Capabilities: [2b0 v1] Address Translation Service (ATS)
		ATSCap:	Invalidate Queue Depth: 00
		ATSCtl:	Enable-, Smallest Translation Unit: 00
	Capabilities: [2c0 v1] Page Request Interface (PRI)
		PRICtl: Enable- Reset-
		PRISta: RF- UPRGI- Stopped+
		Page Request Capacity: 00000020, Page Request Allocation: 00000000
	Capabilities: [2d0 v1] Process Address Space ID (PASID)
		PASIDCap: Exec+ Priv+, Max PASID Width: 10
		PASIDCtl: Enable- Exec- Priv-
	Capabilities: [320 v1] Latency Tolerance Reporting
		Max snoop latency: 0ns
		Max no snoop latency: 0ns
	Capabilities: [328 v1] Alternative Routing-ID Interpretation (ARI)
		ARICap:	MFVC- ACS-, Next Function: 1
		ARICtl:	MFVC- ACS-, Function Group: 0
	Capabilities: [370 v1] L1 PM Substates
		L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
			  PortCommonModeRestoreTime=0us PortTPowerOnTime=170us
		L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
			   T_CommonMode=0us LTR1.2_Threshold=0ns
		L1SubCtl2: T_PwrOn=10us

c4:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 580] [1002:aaf0]
	Subsystem: ASUSTeK Computer Inc. Device [1043:aaf0]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 128 bytes
	Interrupt: pin B routed to IRQ 16
	Region 0: Memory at 82a60000 (64-bit, non-prefetchable)
	Capabilities: [48] Vendor Specific Information: Len=08 <?>
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	CorrErr- NonFatalErr- FatalErr- UnsupReq-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 8GT/s, Width x16, ASPM L1, Exit Latency L1 <1us
			ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s (downgraded), Width x1 (downgraded)
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR+, OBFF Not Supported
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
			 AtomicOpsCtl: ReqEn-
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 00000000fee010f8  Data: 0000
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [150 v2] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		AERCap:	First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
			MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
		HeaderLog: 00000000 00000000 00000000 00000000
	Capabilities: [328 v1] Alternative Routing-ID Interpretation (ARI)
		ARICap:	MFVC- ACS-, Next Function: 0
		ARICtl:	MFVC- ACS-, Function Group: 0

Late-2016 15" rMBP (2.9/16/1TB/460)
Akitio Node + Asus Expedition RX 570 OC, 4GB


ReplyQuote
yjchua
(@yjchua)
Eminent Member
Joined: 3 years ago
 

Update - tested it on a friend's Razer Core X and the PCIe lane width used was x4. 

Guess my Akitio Node is toast for some reason.

Late-2016 15" rMBP (2.9/16/1TB/460)
Akitio Node + Asus Expedition RX 570 OC, 4GB


ReplyQuote
abelviking
(@abelviking)
Eminent Member
Joined: 9 months ago
 

@nando4
Just wondering if as of 2019 the AORUS gaming box still has this HD2 problem and if there's a way to find out which firmware is running:
https://www.gigabyte.com/Graphics-Card/GV-RX580IXEB-8GD#support-dl-firmware

FYI, AIDA64 GPGPU Benchmark errors out with a memory access violation(wondering if I have bad RAM) so I can't even test that.

This post was modified 9 months ago

Sytem InfoiMAC Late 2015. dGPU AMD M390, OSX 10.12.6, Windows 17134.rs4_release.180410-1804(1803). GYGABYTE AORUS RX580 miniITX eGPU my signature


ReplyQuote
abelviking
(@abelviking)
Eminent Member
Joined: 9 months ago
 
Posted by: nando4

@alan49, are you familiar with Linux? As you've already tried to flash other vendor firmware, perhaps try under Linux? The following Linux method to do that from here may help.

Upgrading the firmware under Linux

Thunderbolt has a standardised interface to update the firmware on chipsets at either end of the link. Luckily for us Linux exposes this interface directly under /sys allowing firmware updates with no special tools required. Care has been taken to allow recovery in the event of a corrupt firmware upgrade and firmware images are checksummed to ensure that only good firmware is booted, reducing the chances of causing permanent damage to your machine or devices.

Thunderbolt devices under Linux have 2 separate firmware areas, The Active firmware area (nvm_active1) and the non-active firmware area (nvm_non_active1) only the non-active area can have firmware uploaded to it. Once this area has been written to, the firmware can be authenticated after which the device automatically reboots and boots into the new verified firmware.

on my system, The AORUS shows up at /sys/bus/thunderbolt/devices/0-0/0-1 and the Thunderbolt port at /sys/bus/thunderbolt/devices/0-0/, as you can see the AORUS device is in a directory under the Thunderbolt host device indicating where it is plugged in (this becomes helpful if you have multiple devices connected).

In these directories you can see information relating to the device such as its name, key and who built it (device_name, key and vendor*) as well as the nvm_* directories corresponding to the firmware

To perform the update procedure grab the latest firmware version from reddit/Gigabyte. As I was interested in increased PCIe/GPU performance I selected the H2D firmware which helps speed up transfers from the laptop to the device as per eGPU.io I was glad to see that Gigabyte delivered a new firmware image in a significantly faster time frame than I anticipated. I was even more encouraged when presented with a zip file that contained the raw firmware without obfuscation or embedding, allowing me to directly copy the file with minimal fuss.

Verifying the currently running firmware

It is possible to determine which firmware you are running via the nvm_version file, however in the case of the H2D vs non-H2D firmware above, these both present the same version. Luckily the running firmware can be read from memory and hashed allowing us to determine which version is running. These hashes won't match the on disk firmware versions but will allow you to differentiate between running firmwares

On my device the non-H2D version gave me the following

$ md5sum /sys/bus/thunderbolt/devices/0-0/0-1/nvm_active1/nvmem
5e761bb6ba0d555d0b7699a2292b7148

While the H2D version gave me the hash shown below

$ md5sum /sys/bus/thunderbolt/devices/0-0/0-1/nvm_active1/nvmem
a00484ac3176c72e2b8a8272c6e3ab0c

Flashing the firmware

Inside both Zip files is a '.bin' file that represents the firmware (in my case AORUS_N1070IXEB_8GD_VER10H2D.bin md5:1ed8ee21f01595efee8914e40fe638ef) upgrading was as simple as:

# cat AORUS_N1070IXEB_8GD_VER10H2D.bin > /sys/bus/thunderbolt/devices/0-0/0-1/nvm_non_active1/nvmem
# echo 1 > /sys/bus/thunderbolt/devices/0-0/0-1/nvm_authenticate

After this the device disconnected, rebooted and then became visible again (after going through the authentication step above)

I then proceeded to verify the H2D bandwidth using my own H2D opencl benchmarking script but found that both firmwares provided similar numbers (2761MB/s). Due to not benchmarking pre-firmware upgrades I cannot confirm if my script is broken or if both firmwares contain the H2D fix and that the [email protected] firmware contains some additional tuning as per their notes on what each version is optimised for. If someone does benchmark before and after please let me know so I can update this article.

@itsage Given your pain process  with Intel Thumderbolt 3 drivers on the Aorus Gaming box: https://egpu.io/gigabyte-rx-580-gaming-box-review-little-middle/

and 

https://egpu.io/forums/thunderbolt-enclosures/guide-update-thunderbolt-3-egpu-enclosure-firmware-in-boot-camp/

I wonder if I can use this approach for TB2 on my iMac (hopefully on VMWARE).
Thanks!

Sytem InfoiMAC Late 2015. dGPU AMD M390, OSX 10.12.6, Windows 17134.rs4_release.180410-1804(1803). GYGABYTE AORUS RX580 miniITX eGPU my signature


ReplyQuote
(@przemyslaw_sobiecki)
Active Member
Joined: 2 years ago
 

Hi, How did you check the version and update the FW of AKitio node on a MacBook?
Mine is underperforming (using iMac pro), and CUDA-Z runs with H2D speed at ~1480 Gb/s

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
kakahara
(@kakahara)
Active Member
Joined: 6 months ago
 

Sorry to resurrect a dead thread but what is the current state of play with these enclosures?
Would a Razer Core X - which I read has TI83 - have these issues? I guess it was released way after these initial investigations took place...

Thanks

Macbook Pro 13" i7 2019, Razer Core X, 5700XT 50th Anniversary Edition


ReplyQuote
everton.correa
(@everton-correa)
Active Member
Joined: 5 months ago
 
Posted by: @abelviking

@nando4
Just wondering if as of 2019 the AORUS gaming box still has this HD2 problem and if there's a way to find out which firmware is running:
https://www.gigabyte.com/Graphics-Card/GV-RX580IXEB-8GD#support-dl-firmware

FYI, AIDA64 GPGPU Benchmark errors out with a memory access violation(wondering if I have bad RAM) so I can't even test that.

Have you found the answer? Does the Aorus gaming box still have the h2d issue or the firmware update solved the issue?

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
itsage
(@itsage)
Famed Member Admin
Joined: 3 years ago
 

@everton-correa You can download the H2D firmware for each and every Gaming Box released so far on Gigabyte Support website. You’d need to flash the enclosure firmware in Windows with Intel Thunderbolt Software.

Best ultrabooks for eGPU use | eGPU enclosure buying guide


ReplyQuote
everton.correa
(@everton-correa)
Active Member
Joined: 5 months ago
 

Thank you @itsage. Do you know what is the expected speed for h2d in the Aorus gaming box? My notebook has only 2 pci lanes for tb3 and I'm not sure how much speed I could expect from it. 

 

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
 of  8