RadarURL
Toggle Button
회원 가입 아이디/비밀번호 찾기
보드명과 함께 작동하는 부품에 관련된 상세한 정보가 가급적 포함된 글을 작성하여 주시기 바랍니다.

Since I mentioned before here, I used to use FL1100 pic-e card as usb 3.0 only to avoid conflicting with 4360 WIFI card.  While reading ACPI specification 6.1, I found a clue to get rid of this. You can find the material page 540 ~ 545 at _UPC section. 


The basic idea is like this.  Remapping the port like hub. Picture is from ACPI spec 6,1 page 542.

Screen Shot 2017-04-25 at 4.24.35 PM.png

Here is how.


1. fixing warnings in SSDT 

There were several warnings from ssdt last time I posted  here. Let's fix the warnings. when you compile, you get the warnings this : Invalid object type for reserved name (_PLD:found integer at index 0, Buffer required)

This can be easily fixed. Change _PLD section with this.    


Screen Shot 2017-04-25 at 4.38.39 PM.png

2. understanding _UPC

_UPC stands for USB port Capabilities. Return Value Information is 


Screen Shot 2017-04-25 at 4.45.17 PM.png

We can use Connectable and Type. If Connectable value is non-zero, then the port is connectable. If this value is zero, then the port is not connectable. Type value means 

Screen Shot 2017-04-25 at 4.48.27 PM.png


We are focusing on the value 0x00 for Type 'A' connector, 0x03 for USB 3 standard-A connector, and 0xFF for Proprietary connector. 


3. structure of SSDT for FL1100

usb code adopted from real Mac Pro 6,1 includes HS01,,,HS04 for usb 2.0 and SSP1,,,SSP4 for usb3.0. Those ports perfectly match FL1100 pci-e card I bought. This card has two back panel ports and two front panel ports. I rearranged ports so that I can use only front panel 2 ports. HS03 acts like usb 2.0 hub and SSP4 like usb 3.0.

IOREG shows only two ports.


Screen Shot 2017-04-25 at 5.00.00 PM.png


If 4 ports usb 2.0 hub attached, port will act like this.


Screen Shot 2017-04-25 at 5.05.14 PM.png


Device (XHC) //FL1100

   | - Device(RHUB)

          | - HS01 -> disable   // back panel

          | - HS02 -> disable   // back panel

          | - HS04-> disable    // front panel

          | - HS03                  // front panel

                 | - HS41

                 | - HS42

                 | - HS43

                 | - HS44

          | - SSP1 -> disable   // back panel

          | - SSP2 -> disable   // back panel

          | - SSP3 -> disable   // front panel

          | - SSP4                  // front panel

                 | - SS41

                 | - SS42

                 | - SS43

                 | - SS44


4. completing SSDT code.

As you can see above _UPC package, use 0x00 for connectable to disable port, Type : 0x00 for usb 2.0 connector, and 0x03 for usb 3.0 connector. Finally we can look at the hub port. Type of HS03 and SSP4 hub should be 0xFF.

Here is SSDT code.. Remember my FL1100 card resides in NPE3. Make adjust for your system for this.


DefinitionBlock ("", "SSDT", 1, "Apple", "UsbFl110", 0x00001000)

{

    External (_SB_.PCI0.NPE3, DeviceObj)    // (from opcode)


    Scope (\_SB.PCI0.NPE3)

    {

        Device (XHC)

        {

            Name (_ADR, Zero)  // _ADR: Address

            Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake

            {

                0x09, 

                0x04

            })

            Device (RHUB)

            {

                Name (_ADR, Zero)  // _ADR: Address

                Device (HS01)

                {

                    Name (_ADR, One)  // _ADR: Address

                    Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                    {

                        Zero, 

                        Zero, 

                        Zero, 

                        Zero

                    })

                    Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                    {

                        Buffer (0x10)

                        {

                            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                            /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                        }

                    })

                }


                Device (HS02)

                {

                    Name (_ADR, 0x02)  // _ADR: Address

                    Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                    {

                        Zero, 

                        Zero, 

                        Zero, 

                        Zero

                    })

                    Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                    {

                        Buffer (0x10)

                        {

                            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                            /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                        }

                    })

                }


                Device (HS04)

                {

                    Name (_ADR, 0x04)  // _ADR: Address

                    Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                    {

                        Zero, 

                        Zero, 

                        Zero, 

                        Zero

                    })

                    Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                    {

                        Buffer (0x10)

                        {

                            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                            /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                        }

                    })

                }


                Device (HS03)

                {

                    Name (_ADR, 0x03)  // _ADR: Address

                    Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                    {

                        One, 

                        0xFF, 

                        Zero, 

                        Zero

                    })

                    Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                    {

                        Buffer (0x10)

                        {

                            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                            /* 0008 */  0xA1, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                        }

                    })

                    Device (HS41)

                    {

                        Name (_ADR, One)  // _ADR: Address

                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                        {

                            One, 

                            Zero, 

                            Zero, 

                            Zero

                        })

                        Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                        {

                            Buffer (0x10)

                            {

                                /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                                /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                            }

                        })

                    }


                    Device (HS42)

                    {

                        Name (_ADR, 0x02)  // _ADR: Address

                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                        {

                            One, 

                            Zero, 

                            Zero, 

                            Zero

                        })

                        Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                        {

                            Buffer (0x10)

                            {

                                /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                                /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                            }

                        })

                    }


                    Device (HS43)

                    {

                        Name (_ADR, 0x03)  // _ADR: Address

                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                        {

                            One, 

                            Zero, 

                            Zero, 

                            Zero

                        })

                        Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                        {

                            Buffer (0x10)

                            {

                                /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                                /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                            }

                        })

                    }


                    Device (HS44)

                    {

                        Name (_ADR, 0x04)  // _ADR: Address

                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                        {

                            One, 

                            Zero, 

                            Zero, 

                            Zero

                        })

                        Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                        {

                            Buffer (0x10)

                            {

                                /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                                /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                            }

                        })

                    }

                }


                Device (SSP1)

                {

                    Name (_ADR, 0x05)  // _ADR: Address

                    Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                    {

                        Zero, 

                        0x03, 

                        Zero, 

                        Zero

                    })

                    Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                    {

                        Buffer (0x10)

                        {

                            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                            /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                        }

                    })

                }


                Device (SSP2)

                {

                    Name (_ADR, 0x06)  // _ADR: Address

                    Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                    {

                        Zero, 

                        0x03, 

                        Zero, 

                        Zero

                    })

                    Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                    {

                        Buffer (0x10)

                        {

                            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                            /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                        }

                    })

                }


                Device (SSP3)

                {

                    Name (_ADR, 0x07)  // _ADR: Address

                    Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                    {

                        Zero, 

                        0x03, 

                        Zero, 

                        Zero

                    })

                    Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                    {

                        Buffer (0x10)

                        {

                            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                            /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                        }

                    })

                }


                Device (SSP4)

                {

                    Name (_ADR, 0x08)  // _ADR: Address

                    Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                    {

                        One, 

                        0xFF, 

                        Zero, 

                        Zero

                    })

                    Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                    {

                        Buffer (0x10)

                        {

                            /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                            /* 0008 */  0xA1, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                        }

                    })

                    Device (SS41)

                    {

                        Name (_ADR, 0x05)  // _ADR: Address

                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                        {

                            One, 

                            0x03, 

                            Zero, 

                            Zero

                        })

                        Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                        {

                            Buffer (0x10)

                            {

                                /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                                /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                            }

                        })

                    }


                    Device (SS42)

                    {

                        Name (_ADR, 0x06)  // _ADR: Address

                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                        {

                            One, 

                            0x03, 

                            Zero, 

                            Zero

                        })

                        Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                        {

                            Buffer (0x10)

                            {

                                /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                                /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                            }

                        })

                    }


                    Device (SS43)

                    {

                        Name (_ADR, 0x07)  // _ADR: Address

                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                        {

                            One, 

                            0x03, 

                            Zero, 

                            Zero

                        })

                        Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                        {

                            Buffer (0x10)

                            {

                                /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                                /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                            }

                        })

                    }


                    Device (SS44)

                    {

                        Name (_ADR, 0x08)  // _ADR: Address

                        Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities

                        {

                            One, 

                            0x03, 

                            Zero, 

                            Zero

                        })

                        Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device

                        {

                            Buffer (0x10)

                            {

                                /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

                                /* 0008 */  0x31, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 

                            }

                        })

                    }

                }

            }

        }

    }

}



I checked usb 2.0 hub. It works perfect. But I couldn't test for usb 3.0 hub. If you have usb 3.0 hub, please test this code.

Screen Shot 2017-04-25 at 5.41.43 PM.png

This is one way to do it. It might be other way.

One of disadvantage is we need to give up two ports of back panel and  need to use hub.

I hope this will help you.



This is outdated... ssdt code is wrong.

번호 제목 글쓴이 날짜 조회 수 추천 수
148 X10SLV-O보드와 HD4400 내장 그래픽 High-Sierra 설치 히스토리 file [레벨:15]id: ilove_u 2017.10.29 382 0
147 shell script for creating 10.13 usb installer based on BaseSystem.dmg file [레벨:12]뉴해킨 2017.09.27 390 0
146 to avoid "the path /system/installation/packages/osinstall.mpkg" when installing High Sierra Beta file [레벨:12]뉴해킨 2017.09.21 733 0
145 Tyan S7050GM4NR + e5 2670 x2 High Sierra boot file [레벨:12]뉴해킨 2017.09.04 392 0
144 half way succeed to install High Sierra with Tyan S7050GM4NR file [레벨:12]뉴해킨 2017.09.05 460 0
143 AppleGraphicsDevicePolicy bin and info.plist patch with config.plist file [레벨:12]뉴해킨 2017.08.21 393 0
142 Let's enable ACPI debug file [레벨:12]뉴해킨 2017.08.17 417 0
141 How to find dsdt hex patches in config.plist when we use Clover boot loader file [레벨:12]뉴해킨 2017.08.16 567 0
140 intel DQ77KB m-itx + HD4000 구성하기 [8] file [레벨:15]id: ilove_u 2016.12.17 3057 0
139 Failing to install High Sierra 10.13 beta [2] file [레벨:12]뉴해킨 2017.06.10 1293 0
138 HighPoint RocketRaid 2720SGL - HDD 3TB x2 : raid 0 benchmark [1] file [레벨:12]뉴해킨 2017.06.06 1159 0
137 PCIe approach of FL1100 and Asmedia 1142 [1] file [레벨:12]뉴해킨 2017.05.18 1422 0
136 Asmedia 1142 usb3.1 type-c and type-A card from China and SSDT code [2] file [레벨:12]뉴해킨 2017.05.18 1524 0
135 ssdt for FL1100 pci_e .. revisited ( conflicting problem solved) file [레벨:12]뉴해킨 2017.05.13 1178 0
134 Let's make Tyan S7050GM4NR sleep [1] file [레벨:12]뉴해킨 2017.05.09 1318 0
» New ssdt code for FL1100 pci-e card.. (outdated) [2] file [레벨:12]뉴해킨 2017.04.25 1436 0
132 Let's get rid of AMD RADEON HD 7xxx [5] file [레벨:12]뉴해킨 2017.04.26 1531 0
131 Nvidia GTX 10x0 Series [9] [레벨:1]dfghtqop 2017.02.25 2291 0
130 How to control FL1100 usb3.0 [9] file [레벨:12]뉴해킨 2016.12.07 2690 0
129 customization of Tyan S7050GM4NR + E5 2670x2 + MSI R9 280X for Sierra 10.12.1 file [레벨:12]뉴해킨 2016.12.07 2293 1

Copyright © 2011-2017 sixflow.net All rights reserved.

ipv6 ready
ipv6 test