Contribute
Register

Thunderbolt 3 Modified Firmware Custom SSDT Discussion

I just adapted my TB SSDT to Bus 2. Didn't help. Will check the BIOS to see if there's something I missed.
Was this on the Z390 Designare?
 
No. Z170x. Good reminder not to take predictable behavior for granted. The Z170x boots again after lots of resets etc. BIOS settings that worked before suddenly didn't, etc.
 
Oh, and I have 3 TB ports now. Amazing.
Schermafbeelding 2023-03-12 om 16.27.31.png
 
Oh, and I have 3 TB ports now. Amazing.
You have to use the SSDT I posted earlier. If you change Bus ID in HackinDROM website, you'll get 3 ports. It's a bug. Nevertheless, testing this card on Z170x is an invalid experiment.



@Inqnuam,

When we change Bus ID on hackinDROM website, it makes this error:

"ThunderboltDROM",
Buffer (0x76)
{
/* 0000 */ 0x31, 0x02, 0xF2, 0x93, 0xDA, 0x9A, 0x85, 0x63, // 1......c
/* 0008 */ 0x3E, 0x96, 0x12, 0x07, 0x9E, 0x01, 0x69, 0x00, // >.....i.
/* 0010 */ 0x01, 0x00, 0x0D, 0x00, 0x01, 0x00, 0x08, 0x81, // ........
/* 0018 */ 0x82, 0x02, 0x82, 0x00, 0x00, 0x00, 0x08, 0x82, // ........
/* 0020 */ 0x90, 0x01, 0x80, 0x00, 0x00, 0x00, 0x08, 0x83, // ........
/* 0028 */ 0x82, 0x04, 0x82, 0x01, 0x00, 0x00, 0x08, 0x84, // ........
/* 0030 */ 0x92, 0x03, 0x82, 0x01, 0x00, 0x00, 0x05, 0x85, // ........
/* 0038 */ 0x50, 0x00, 0x00, 0x05, 0x86, 0x50, 0x00, 0x00, // P....P..
/* 0040 */ 0x02, 0x87, 0x0B, 0x88, 0x20, 0x01, 0x00, 0x64, // .... ..d
/* 0048 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x89, 0x80, // ........
/* 0050 */ 0x05, 0x8A, 0x50, 0x40, 0x00, 0x05, 0x8B, 0x50, // [email protected]
/* 0058 */ 0x40, 0x00, 0x0B, 0x01, 0x47, 0x49, 0x47, 0x41, // @...GIGA
/* 0060 */ 0x42, 0x59, 0x54, 0x45, 0x00, 0x11, 0x02, 0x47, // BYTE...G
/* 0068 */ 0x43, 0x2D, 0x54, 0x69, 0x74, 0x61, 0x6E, 0x20, // C-Titan
/* 0070 */ 0x52, 0x69, 0x64, 0x67, 0x65, 0x00 // Ridge.
},

See those red zeros? They should be equal to Bus ID, which in this example is 2. Checksum has to be recalculated.
 
Last edited:
You have to use the SSDT I posted earlier. If you change Bus ID in HackinDROM website, you'll get 3 ports. It's a bug. Nevertheless, testing this card on Z170x is an invalid experiment.



@Inqnuam,

When we change Bus ID on hackinDROM website, it makes this error:

"ThunderboltDROM",
Buffer (0x76)
{
/* 0000 */ 0x31, 0x02, 0xF2, 0x93, 0xDA, 0x9A, 0x85, 0x63, // 1......c
/* 0008 */ 0x3E, 0x96, 0x12, 0x07, 0x9E, 0x01, 0x69, 0x00, // >.....i.
/* 0010 */ 0x01, 0x00, 0x0D, 0x00, 0x01, 0x00, 0x08, 0x81, // ........
/* 0018 */ 0x82, 0x02, 0x82, 0x00, 0x00, 0x00, 0x08, 0x82, // ........
/* 0020 */ 0x90, 0x01, 0x80, 0x00, 0x00, 0x00, 0x08, 0x83, // ........
/* 0028 */ 0x82, 0x04, 0x82, 0x01, 0x00, 0x00, 0x08, 0x84, // ........
/* 0030 */ 0x92, 0x03, 0x82, 0x01, 0x00, 0x00, 0x05, 0x85, // ........
/* 0038 */ 0x50, 0x00, 0x00, 0x05, 0x86, 0x50, 0x00, 0x00, // P....P..
/* 0040 */ 0x02, 0x87, 0x0B, 0x88, 0x20, 0x01, 0x00, 0x64, // .... ..d
/* 0048 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x89, 0x80, // ........
/* 0050 */ 0x05, 0x8A, 0x50, 0x40, 0x00, 0x05, 0x8B, 0x50, // [email protected]
/* 0058 */ 0x40, 0x00, 0x0B, 0x01, 0x47, 0x49, 0x47, 0x41, // @...GIGA
/* 0060 */ 0x42, 0x59, 0x54, 0x45, 0x00, 0x11, 0x02, 0x47, // BYTE...G
/* 0068 */ 0x43, 0x2D, 0x54, 0x69, 0x74, 0x61, 0x6E, 0x20, // C-Titan
/* 0070 */ 0x52, 0x69, 0x64, 0x67, 0x65, 0x00 // Ridge.
},

See those red zeros? They should be equal to Bus ID, which in this example is 2. Checksum has to be recalculated.
very weird behaviour!
If you change TB Bus Id multiple times you'll see different results each time.
However 1, 5, 6, 7, 8 and 9 are always correct.
Will check this asap
 
@CaseySJ
I dont remembre well
are every "0x08" hex + 2 and + 4 the marker for the tb bus id ?
 
@CaseySJ
I dont remembre well
are every "0x08" hex + 2 and + 4 the marker for the tb bus id ?
In this post we have all the details for ThunderboltDROM, including Bus ID:

Please see the 2 red boxes:

Screenshot 2023-03-12 at 1.44.55 PM.png
 
In this post we have all the details for ThunderboltDROM, including Bus ID:

Please see the 2 red boxes:

View attachment 564492
  • 08 81 80 02 80 00 00 00 -- TBPort1 DualLinkport2 HPMAddr0 (add Bus ID to purple bytes)
  • 08 82 90 01 80 00 00 00 -- TBPort2 DualLinkport1 HPMAddr0 (add Bus ID to purple bytes)
  • 08 83 80 04 80 01 00 00 -- TBPort3 DualLinkport4 HPMAddr1 (add Bus ID to purple bytes)
  • 08 84 90 03 80 01 00 00 -- TBPort4 DualLinkport3 HPMAddr1 (add Bus ID to purple bytes)
Please look in this example we have only 2 of them
is this correct ?
Screenshot 2023-03-12 at 21.47.07.png


EDIT:
I think I have fixed it
Please let me know if it is correct
 
Last edited:
Please look in this example we have only 2 of them
is this correct ?
View attachment 564493
If a controller has only one Thunderbolt port, then we'll see 0x08, 0x81 ... and 0x08, 0x82.
If a controller has two Thunderbolt ports, then we'll see 0x08, 0x81, ..., 0x08, 0x82, ..., 0x08, 0x83, ..., and 0x08, 0x84


EDIT:
I think I have fixed it
Please let me know if it is correct
Let me check...

Update: Yes it works correctly now for both 1-port and 2-port Thunderbolt controllers!
 
Back
Top