Jump to content

Clover test and patches for Polaris GPU


fantomas
279 posts in this topic

Recommended Posts

I want to look on "sudo dmesg" right after RadeonMonitor started.

Mateuszs-Mac-Pro:~ mateuszjachym$ sudo dmesg

 

 

4HID: Legacy shim 2

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

Report bytes: input:16 output:64 feature:3Collections : 3Buttons     : input:4 output:0 feature:1Values      : input:1 output:1 feature:3Element value capacity 2244Report count: 1Report ID: 0 input:128 output:512 feature:24HID: Legacy shim 2

*** AppleSMBusDevice::start failed to start - no address.

Report bytes: input:8 output:1 feature:0Collections : 2Buttons     : input:2 output:1 feature:0Values      : input:1 output:0 feature:0Element value capacity 6656Report count: 1Report ID: 0 input:64 output:8 feature:0Report bytes: input:1 output:0 feature:0Collections : 2Buttons     : input:7 output:0 feature:0Values      : input:0 output:0 feature:0Element value capacity 192Report count: 1Report ID: 0 input:8 output:0 feature:0USBMSC Identifier (non-unique): 575541323632303030313931 0x1058 0xa10 0x1026, 3

AirPort: Link Down on en1. Reason 8 (Disassociated because station leaving).

Got incomplete channel sequence length 0, should be 16

Got incomplete channel sequence length 0, should be 16

en1: channel changed to 1

en1::IO80211Interface::postMessage bssid changed

bpfAttach len 94 dlt 163

bpfAttach len 30 dlt 105

bpfAttach len 52 dlt 127

bpfAttach len 38 dlt 192

IO80211Interface::updateReport _peerManager is missing

AirPort_Brcm4360::getSSIDData(): Get failure: APPLE80211_IOC_SSID: 6

HID: Legacy shim 2

HID: Legacy shim 2

unexpected session: 100000 uid: -1 requested by: 38

AppleKeyStore: operation failed (pid: 38 sel: 7 ret: e00002c2 '-536870206', -1, 100000)

Accelerator successfully registered with controller.

KLOG is already initialized

Accelerator successfully registered with controller.

hfs: mounted TimeMachine on device disk4s1

KLOG is already initialized

Accelerator successfully registered with controller.

hfs: mounted Music Disk on device disk6s2

hfs: mounted Video Red on device disk2s2

com_intel_driver_EnergyDriver[<ptr>]::start(<ptr>)

DSMOS has arrived

[iOBluetoothFamily][start] -- completed

PMRD: prevent idle sleep list: IODisplayWrangler+ (1)

prevent idle sleep list: IODisplayWrangler+ (1)

Saffire - 4.3.0.41017 (x86_64) Apr  9 2015 03:53:55

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

hfs: mounted Archivum Red on device disk5s2

hfs: mounted Video Black on device disk3s2

AppleLPC::notifyPlatformASPM  ASPM callback registered

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

IOPPF: XCPM mode

IOPPF: XCPM mode

X86PlatformShim::start - Failed to send stepper

X86PlatformShim::start - Failed to send stepper

[AGPM Controller] build gpuDict by GPU GFX2.

no Heuristic ID!

AGPM::start - publish fMinPowerState = 0 fMaxPowerState = 15

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

[AGPM Controller] build gpuDict by GPU GFX1.

no Heuristic ID!

AGPM::start - publish fMinPowerState = 0 fMaxPowerState = 15

[AGPM Controller] build gpuDict by GPU GCON.

[AGPM Controller] unknownPlatform

no Heuristic ID!

AGPM::start - publish fMinPowerState = 0 fMaxPowerState = 3

X86PlatformPlugin::cgRegisterCallbackHandler - gpu internal PLimit notification already registered

X86PlatformPlugin::cgRegisterCallbackHandler - gpu internal PLimit notification already registered

BrcmPatchRAM: Loaded compressed embedded firmware for key "BCM20702A1_001.002.014.1443.1714_v5810".

BrcmPatchRAM: Decompressed firmware (29662 bytes --> 70006 bytes).

BrcmPatchRAM: Firmware is valid IntelHex firmware.

BrcmPatchRAM2: [0b05:180a]: USB [80A5899EAC86 v274] "BCM20702A0" by "Broadcom Corp"

BrcmPatchRAM2: [0b05:180a]: Firmware upgrade not needed.

BrcmPatchRAM2: [0b05:180a]: Published new IOKit personality.

BrcmPatchRAM2: Processing time 2.720 seconds.

Ethernet [intelMausi]: Link up on en0, 100-Megabit, Full-duplex, Rx/Tx flow-control

BrcmPatchRAM2: Version 2.2.3 starting on OS X Darwin 16.3.

BrcmPatchRAM2: [0b05:180a]: USB [80A5899EAC86 v274] "BCM20702A0" by "Broadcom Corp"

BrcmPatchRAM2: [0b05:180a]: Firmware upgrade not needed.

BrcmPatchRAM2: [0b05:180a]: Found existing IOKit personality "com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport".

BrcmPatchRAM2: Processing time 0.1 seconds.

**** [iOBluetoothHostControllerUSBTransport][start] -- completed -- result = TRUE -- 0x8800 ****

**** [broadcomBluetoothHostControllerUSBTransport][start] -- Completed (matched on Device) -- 0x8800 ****

[iOBluetoothFamily][staticBluetoothTransportShowsUp] -- Received Bluetooth Controller register service notification -- 0x8800 

[iOBluetoothHostController][start] -- completed

AirPort_Brcm4360_P2PInterface::init name <p2p0> role 1

IO80211VirtualInterface::init _controller is 0xb625128e508494c1, provider is 0xb62512885ad5a601

configureInterests - nElements <= 0!Failed to configure interests

IO80211Controller::addSubscriptionForThisReporterFetchedOnTimer() Failed to addSubscription for group Interface p2p0 subgroup Data Packets driver 0xb625128e508494c1 - data underrun

IO80211InterfaceMonitor::configureSubscriptions() failed to add subscription

AirPort_Brcm4360_P2PInterface::init <p2p> role 1

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

kPEDisableScreen 1

AirPort_Brcm4360_P2PInterface::init name <awdl0> role 4

AirPort_Brcm4360_P2PInterface::awdlAttachToBpf name <awdl0> role 4 successful attach to bpf type 147

IO80211VirtualInterface::init _controller is 0xb625128e508494c1, provider is 0xb62512885ad5a601

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

 Creating all peerManager reporters

AirPort_Brcm4360_P2PInterface::init <awdl> role 4

kPEDisableScreen 1

awdl0: promiscuous mode enable succeeded

awdl0: promiscuous mode disable succeeded

AirPort: Link Up on awdl0

awdl0: promiscuous mode enable succeeded

ARPT: 6.289816: AirPort_Brcm43xx::syncPowerState: WWEN[disabled]

AirPort: Link Down on awdl0. Reason 1 (Unspecified).

kPEDisableScreen 1

IO80211Interface::updateReport _peerManager is missing

[iOBluetoothHostController::setConfigState] calling registerService

**** [iOBluetoothFamily][ProcessBluetoothTransportShowsUpActionWL] -- calling IOBluetoothFamily's registerService() -- 0x2e10 -- 0x7200 -- 0x8800 ****

 

**** [iOBluetoothFamily][ProcessBluetoothTransportShowsUpActionWL] -- Connected to the transport successfully -- 0x2e10 -- 0x7200 -- 0x8800 ****

 

kPEEnableScreen 1

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

kPEEnableScreen 1

kPEEnableScreen 1

kPEDisableScreen 1

kPEEnableScreen 1

kPEEnableScreen 1

kPEEnableScreen 1

Sound assertion in AppleHDAEngine at line 9539

Sound assertion in AppleHDAEngine at line 9539

kPEEnableScreen 1

kPEEnableScreen 1

kPEDisableScreen 1

kPEEnableScreen 1

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

AppleKeyStore: set handle 1 as special bag -501

AppleKeyStore: Sending lock change 0 for handle -501

AppleKeyStore::ipc_device_state_transition: Device UnLock call(-501): lockstate=0, transientCnt=0, 101

AppleKeyStore::ipc_device_state_transition: Device UnLocked(-501): lockstate=0, 101

SandboxViolation: CalendarAgent(320) allow(0) mach-register com.apple.CalendarStore.lock.init

Sound assertion in AppleHDADriver at line 5636

Sound assertion in AppleHDADriver at line 5636

Sound assertion in AppleHDADriver at line 5636

Sound assertion in AppleHDADriver at line 5636

Sound assertion in AppleHDADriver at line 5636

Sound assertion in AppleHDADriver at line 5636

Sound assertion in AppleHDADriver at line 5636

Sound assertion in AppleHDADriver at line 5636

Sound assertion in AppleHDADriver at line 5636

Sound assertion in AppleHDADriver at line 5636

Sound assertion in AppleHDADriver at line 5636

SandboxViolation: fontd(325) deny(1) file-issue-extension /Network/Library

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

 

IOBluetoothDevice::setProperties() -- calling mHCIController->CallCreateDeviceReporter() -- this = 0xdd80 

 

 

 IOBluetoothHostController::CallCreateDeviceReporter -- calling enqueueAction() -- device = 0xdd80 

 

 

 IOBluetoothHostController::CreateDeviceReporterAction -- device = = 0xdd80 

 

 

 IOBluetoothHostController::CreateDeviceReporterAction -- calling CreateDeviceReporter() device = = 0xdd80 

 

 

 IOBluetoothHostController::CreateDeviceReporter -- device = = 0xdd80 

 

handleInformationResponse kBluetoothL2CAPInformationTypeExtendedFeatures deviceAccountPaired, check fixed channel support 

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

[bNBTrackpadDevice::init][92] init is complete

SandboxViolation: appleeventsd(47) deny(1) mach-lookup com.apple.CoreServices.coreservicesd

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

[bNBTrackpadDevice::handleStart][92] returning 1

Report bytes: input:4 output:1 feature:65Collections : 3Buttons     : input:3 output:0 feature:0Values      : input:2 output:0 feature:2Element value capacity 1884Report count: 5Report ID: 0 input:0 output:0 feature:0Report ID: 2 input:32 output:8 feature:8Report ID: 71 input:8 output:8 feature:16Report ID: 85 input:8 output:8 feature:520Report ID: 19 input:16 output:8 feature:8[HID] [MT] AppleMultitouchHIDEventDriver::start entered

HID: Legacy shim 2

SandboxViolation: fmfd(371) deny(1) mach-lookup com.apple.securityd.xpc

SandboxViolation: cloudd(347) deny(1) mach-lookup com.apple.coreservices.launchservicesd

SandboxViolation: fmfd(371) deny(1) file-write-create /Users/mateuszjachym/Library/Keychains/login.keychain-db.sb-dc8132c6-Yvn7n0

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

[HID] [MT] AppleMultitouchDevice::start entered

utun_ctl_connect: creating interface utun0

utun_start: ifnet_disable_output returned error 12

SandboxViolation: PAH_Extension(399) allow(0) mach-register com_apple_palette_pressandhold_connection

SandboxViolation: fontd(325) deny(1) file-issue-extension /Network/Library

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

IOReturn IOAccelSurface2::surface_unlock_options(enum eLockType, uint32_t): surface is not locked.

SandboxViolation: swcd(401) deny(1) ipc-posix-shm-read-data /tmp/com.apple.csseed.129

IOReturn IOAccelSurface2::surface_unlock_options(enum eLockType, uint32_t): surface is not locked.

IOReturn IOAccelSurface2::surface_unlock_options(enum eLockType, uint32_t): surface is not locked.

hfs: mounted WD Studio on device disk7s2

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: storeassetd(391) deny(1) mach-lookup com.apple.lsd.modifydb

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

fsevents: watcher dbfseventsd (pid: 459) - Using /dev/fsevents directly is unsupported.  Migrate to FSEventsFramework

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: AssetCacheLocato(495) deny(1) mach-lookup com.apple.metadata.mds.legacy

SandboxViolation: AssetCacheLocato(495) deny(1) mach-lookup com.apple.cookied

SandboxViolation: mdworker(493) deny(1) mach-lookup com.apple.distributed_notifications@1v3

SandboxViolation: systemsoundserve(304) deny(1) file-read-data /Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin

SandboxViolation: systemsoundserve(304) deny(1) file-read-metadata /Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin/Contents

SandboxViolation: systemsoundserve(304) deny(1) file-read-metadata /Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin

SandboxViolation: AssetCacheLocato(507) deny(1) file-read-data /Users/mateuszjachym/Library/Preferences/ByHost/.GlobalPreferences.C46A8293-7666-5F5A-87C9-516248A0DCEA.plist

SandboxViolation: AssetCacheLocato(507) deny(1) file-read-data /Users/mateuszjachym/Library/Preferences/.GlobalPreferences.plist

SandboxViolation: AssetCacheLocato(507) deny(1) mach-lookup com.apple.metadata.mds.legacy

SandboxViolation: AssetCacheLocato(507) deny(1) mach-lookup com.apple.cookied

SandboxViolation: cloudphotosd(329) deny(1) mach-lookup com.apple.logind

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: bird(312) deny(1) file-read-data /Users/mateuszjachym

SandboxViolation: mobileassetd(51) deny(1) file-issue-extension /private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/386E4B29-1873-4B2C-8E21-9AF72DEA86D4-51-00000003D27532BA

SandboxViolation: softwareupdate_n(519) deny(1) file-read-metadata /Users/mateuszjachym

SandboxViolation: suggestd(555) deny(1) mach-lookup com.apple.metadata.mds

SandboxViolation: com.apple.WebKit(536) deny(1) file-read-data /private/etc/hosts

SandboxViolation: com.apple.WebKit(536) deny(1) file-read-data /private/etc/hosts

SandboxViolation: com.apple.WebKit(536) deny(1) file-read-data /private/etc/hosts

SandboxViolation: com.apple.WebKit(536) deny(1) file-read-data /private/etc/hosts

SandboxViolation: com.apple.WebKit(536) deny(1) file-read-data /private/etc/hosts

SandboxViolation: com.apple.WebKit(536) deny(1) file-read-data /private/etc/hosts

SandboxViolation: com.apple.WebKit(536) deny(1) file-read-data /private/etc/hosts

SandboxViolation: com.apple.WebKit(536) deny(1) file-read-data /private/etc/hosts

SandboxViolation: mdworker(560) deny(1) mach-lookup com.apple.FileCoordination

SandboxViolation: fontd(325) deny(1) file-issue-extension /Network/Library

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

 

considerRebuildOfPrelinkedKernel org.netkas.FakeSMC triggered rebuild

 

 

Edited by Allan
Spoiler tag - Added
Link to comment
Share on other sites

@Slice

 

I think, we need to find a way to get this "AddProperties": @0,ATY,ActiveFlags = 0x100

This property will get 0x1 if no monitor is connected to the detected port and always 0x100 if there is a monitor connected. I tried to inject with the following, but failed:

            <dict>
                <key>Device</key>
                <string>ATI</string>
                <key>Key</key>
                <string>@0,ATY,ActiveFlags</string>
                <key>Value</key>
                <data>AAABAA==</data>
            </dict>

cause i could NOT get "0x100" as value for number (will convert this to 256 (which is 0x100 in hex).

But then in the log it will always show as ("ATY-ActiveFlags" = <00000100>)

 

So what do we have to do to get "@#, ATY, ActiveFlags = 0x100" injected?  //  <--- where "@#" = connectors number like 0, 1, 2, etc

 

See here, what i mean:

 

 

    | |   |   | +-o ATY,Dayman@0  <class AtiFbStub, id 0x100000432, registered, matched, active, busy 0 (16 ms), retain 8>
    | |   |   | | | {
    | |   |   | | |   "ATY,ActiveFlags" = 0x100             // <--- ActiveFlags set here
    | |   |   | | |   "audio-codec-info" = <00010b00>
    | |   |   | | |   "adapter-model" = <4470312e3200>
    | |   |   | | |   "AAPL,gray-page" = <01000000>
    | |   |   | | |   "connector-type" = 0x400
    | |   |   | | |   "dpcd-post-training" = <777701003333>
    | |   |   | | |   "IOFBDependentID" = 0x1000001fa
    | |   |   | | |   "name" = "ATY,Dayman"
    | |   |   | | |   "ATY,ControlFlags" = 0x304
    | |   |   | | |   "display-connect-flags" = <00000000>
    | |   |   | | |   "compatible" = <4154592c4461796d616e>
    | |   |   | | |   "av-signal-type" = <10000000>
    | |   |   | | |   "VRAM,memsize" = <0000f0ffffffffff>
    | |   |   | | |   "IOFBDependentIndex" = 0x0
    | |   |   | | |   "AAPL,gray-value" = <00000000>
    | |   |   | | |   "port-number" = 0x0
    | |   |   | | |   "display-type" = "LCD"
    | |   |   | | |   "dpcd-registers" = 
...                                                    // <---- deleted unneccesary lines to save room
    | |   |   | |   |   
    | |   |   | |   +-o display0  <class IODisplayConnect, id 0x1000004a8, registered, matched, active, busy 0 (0 ms), retain 6>     // think it only gets "injected" when ActiveFlags returned 0x100
    | |   |   | |   | | {
    | |   |   | |   | | }
    | |   |   | |   | |
    | |   |   | |   | +-o AppleDisplay  <class AppleDisplay, id 0x1000004aa, registered, matched, active, busy 0 (0 ms), retain 8>
    | |   |   | |   |     {
    | |   |   | |   |       "IOClass" = "AppleDisplay"
    | |   |   | |   |       "CFBundleIdentifier" = "com.apple.iokit.IOGraphicsFamily"
    | |   |   | |   |       "IOProviderClass" = "IODisplayConnect"
    | |   |   | |   |       "DisplayProductID" = 0xa0a6
    | |   |   | |   |       "IODisplayEDID" = <00ffffffffffff0010aca6a04c34453025190104a55021783afd25a2584f9f260d5054a54b00714f81008180a940d1c0010101010101e77c70a0d0a029505020ca041e4f3100001a000000ff0036384d43463539363045344c0a000000fc0044454c4c205533343135570a20000000fd0030551e5920000a2020202020200175020319f14c9005040302071601141f12132309070783010000023a801871382d40582c25001e4f3100001e584d00b8a1381440942cb5001e4f3100001e9d6770a0d0a0225050205a041e4f3100001a7a3eb85060a02950282068001e4f3100001a565e00a0a0a02950302035001e4f3100001a0000000000000000$
    | |   |   | |   |       "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX1@0/ATY,Dayman@0/AMDFramebufferVIB/display0/AppleDisplay-10ac-a0a6"
    | |   |   | |   |       "IOPowerManagement" = {"CapabilityFlags"=0xc000,"MaxPowerState"=0x3,"CurrentPowerState"=0x3}
    | |   |   | |   |       "IOProbeScore" = 0x7d0
    | |   |   | |   |       "IODisplayParameters" = {"bgsc"={"min"=0x0,"max"=0x10000,"value"=0x10000},"pscn"={"min"=0x1388,"max"=0x2710,"value"=0x2710},"rgsc"={"min"=0x0,"max"=0x10000,"value"=0x10000},"thrm"={"min"=0x0,"max"=0x78,"value"=0x23},"ggsc"={"min"=0x0,"max"=0x10000,"value"=0x10000},"dith"={"min"=0x0,"max"=0x1,"value"=0x0},"vblm"={"min"=0x0,"max"=0x30000,"value"=0x10000},"gsc "={"min"=0x0,"max"=0x10000,"value"=0x10000}}
    | |   |   | |   |       "IOMatchCategory" = "IODefaultMatchCategory"
    | |   |   | |   |       "AppleDisplayType" = 0x2
    | |   |   | |   |       "IODisplayAttributes" = {"IODisplayAttributes"=<676174760000000073676c6600000000726c6f630100000063706220020000006364670080808000676c666401000000>}
    | |   |   | |   |       "AppleSense" = 0x90ff
    | |   |   | |   |       "IODisplayConnectFlags" = <c4410000>
    | |   |   | |   |       "DisplayVendorID" = 0x10ac
    | |   |   | |   |       "DisplaySerialNumber" = 0x3045344c
    | |   |   | |   |     }
    | |   |   | |   |     
    | |   |   | |   +-o IOFramebufferUserClient  <class IOFramebufferUserClient, id 0x1000004b8, !registered, !matched, active, busy 0, retain 5>
    | |   |   | |   |   {
    | |   |   | |   |     "IOUserClientCreator" = "pid 158, WindowServer"
    | |   |   | |   |   }
    | |   |   | |   |   
    | |   |   | |   +-o IOFramebufferSharedUserClient  <class IOFramebufferSharedUserClient, id 0x1000005b0, !registered, !matched, active, busy 0, retain 6>
    | |   |   | |       {
    | |   |   | |         "IOUserClientSharedInstance" = Yes
    | |   |   | |         "IOUserClientCreator" = "pid 416, firefox"
    | |   |   | |       }
    | |   |   | |       
    | |   |   | +-o ATY,Dayman@1  <class AtiFbStub, id 0x100000433, registered, matched, active, busy 0 (0 ms), retain 8>
    | |   |   | | | {
    | |   |   | | |   "display-type" = "NONE"
    | |   |   | | |   "compatible" = <4154592c4461796d616e>
    | |   |   | | |   "connector-type" = 0x400
    | |   |   | | |   "ATY,ActiveFlags" = 0x1      // <--- returns 0x1 cause no display connected to this port
    | |   |   | | |   "IOFBDependentIndex" = 0x1
    | |   |   | | |   "audio-codec-info" = <00010d00>
    | |   |   | | |   "IOFBDependentID" = 0x1000001fa
    | |   |   | | |   "ATY,ControlFlags" = 0x304
    | |   |   | | |   "VRAM,memsize" = <000000000000f0ff>
    | |   |   | | |   "AAPL,gray-page" = <01000000>
    | |   |   | | |   "device_type" = "display"

 

 

 

To proof this, you could check your IOreg output in the case you receive blackscreen. I promise, it will have the missing "ActiveFlags"-part, too.

But i would understand if you will reply now: "But then why does it work for cards with chipfamily TAHITI or older?" <--- then i would say: "I HAVE NO EXPLANATION (IDEA)"  :-)

Link to comment
Share on other sites

I afraid it is not a reason of blackscreen but consequence.

I made new entry in Clover menu to change Connectors. Test, please

CLOVERX64.efi-3943.zip


 

Mateuszs-Mac-Pro:~ mateuszjachym$ sudo dmesg

 

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

F718x: Fintek: Found unsupported chip ID=0xc8 REVISION=0x3

 

considerRebuildOfPrelinkedKernel org.netkas.FakeSMC triggered rebuild

 

It is not Fintek. You should install W836x.kext (Winbond/Nuvoton).

As well I see no messages from RadeonMonitor.

Link to comment
Share on other sites

I change kext in EFI folder 

 

Only one gpu temp is showing attachicon.gifZrzut ekranu 2016-11-23 o 16.14.26.png

 

Boot with   CLOVERX64.efi-3943 

Yes, it is probably a lack of functionality. I am not sure if RadeonMonitor can look three cards. Anyway I see no messages from him. 

Give me full system.log. It is large but I hope to see messages like "RadeonMonitor:..."

Link to comment
Share on other sites

Yes, it is probably a lack of functionality. I am not sure if RadeonMonitor can look three cards. Anyway I see no messages from him. 

Give me full system.log. It is large but I hope to see messages like "RadeonMonitor:..."

Full sytem log = DarwinDumper ? 

 

Loading RadeonSensor is random. If it load for 280x system is loading OK. If it load for 290X desktop is showing and system is restarting afther few seconds. 

Link to comment
Share on other sites

Full sytem log = DarwinDumper ? 

 

Loading RadeonSensor is random. If it load for 280x system is loading OK. If it load for 290X desktop is showing and system is restarting afther few seconds. 

It is that I asked. But you said RadeonSensor? Yes, it will not work for 290X. I made some changes in RadeonMonitor.

 

 

What kind of values should there entered? 0x400 like DisplayPort Connectors type?

 

Sorry, but brain's empty after 10 hours of work.

 

Yes, like Display Port Connector types bit sum. ( DVI | VGA | HDMI ...).

 

I found one more bug

78:490  0:106  Found generic VBIOS ROM file (1002_6758.rom)
78:504  0:014  Loaded ROM len=131072
78:506  0:001  invalid ROM vendor=8086 deviceID=258
78:507  0:001  validate_rom fails
78:509  0:001  reading VBIOS from PCI ROM @0xF7C00000
78:512  0:003  invalid ROM signature FFFF
78:514  0:001  There is no ROM @0xF7C00000
78:515  0:001  

  • Like 1
Link to comment
Share on other sites

I found one more bug

78:490  0:106  Found generic VBIOS ROM file (1002_6758.rom)
78:504  0:014  Loaded ROM len=131072
78:506  0:001  invalid ROM vendor=8086 deviceID=258
78:507  0:001  validate_rom fails
78:509  0:001  reading VBIOS from PCI ROM @0xF7C00000
78:512  0:003  invalid ROM signature FFFF
78:514  0:001  There is no ROM @0xF7C00000
78:515  0:001  

This only happens, when IGPU is the primary GFX card. I think for "LoadVBIOS" we need to proof, that vendor-id for main PCI-Dev is 1002, then load VBIOS else give a message like "Primary gfx is not ATI/AMD device" and cancle this function.

Link to comment
Share on other sites

 

It is that I asked. But you said RadeonSensor? Yes, it will not work for 290X. I made some changes in RadeonMonitor.

 

 

 

Yes, like Display Port Connector types bit sum. ( DVI | VGA | HDMI ...).

 

I found one more bug

78:490  0:106  Found generic VBIOS ROM file (1002_6758.rom)
78:504  0:014  Loaded ROM len=131072
78:506  0:001  invalid ROM vendor=8086 deviceID=258
78:507  0:001  validate_rom fails
78:509  0:001  reading VBIOS from PCI ROM @0xF7C00000
78:512  0:003  invalid ROM signature FFFF
78:514  0:001  There is no ROM @0xF7C00000
78:515  0:001  

Linux has this function for igb

 

http://lxr.free-electrons.com/source/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c#L45

Link to comment
Share on other sites

I afraid it is not a reason of blackscreen but consequence.

I made new entry in Clover menu to change Connectors. Test, please

 

Sorry Slice, but no matter what i enter here, it always stays at 0x00000000 in the log:

0:103  0:000  PCI (00|01:00.00) : 1002 67EF class=030000
0:103  0:000   - GFX: Model=AMD Radeon RX460 (ATI/AMD)
0:103  0:000   - RADEON_BIOS_0_SCRATCH = 0x00000000
0:103  0:000  PCI (00|01:00.01) : 1002 AAE0 class=040300
0:103  0:000   - HDMI Audio:
Link to comment
Share on other sites

Hi Slice,

 

see this bootlog with my R9 280x connected via DP and HDMI to two different monirtors:

 

 

4:501  0:000  === [ RestSetup macOS ] ===================================
4:501  0:000  EdidDiscovered size=128
4:501  0:000  000  |  00  FF  FF  FF  FF  FF  FF  00  10  AC
4:501  0:000  010  |  A6  A0  4C  34  45  30  25  19  01  04
4:501  0:000  020  |  A5  50  21  78  3A  FD  25  A2  58  4F
4:501  0:000  030  |  9F  26  0D  50  54  A5  4B  00  71  4F
4:501  0:000  040  |  81  00  81  80  A9  40  D1  C0  01  01
4:501  0:000  050  |  01  01  01  01  E7  7C  70  A0  D0  A0
4:501  0:000  060  |  29  50  50  20  CA  04  1E  4F  31  00
4:501  0:000  070  |  00  1A  00  00  00  FF  00  36  38  4D
4:501  0:000  080  |  43  46  35  39  36  30  45  34  4C  0A
4:501  0:000  090  |  00  00  00  FC  00  44  45  4C  4C  20
4:501  0:000  100  |  55  33  34  31  35  57  0A  20  00  00
4:501  0:000  110  |  00  FD  00  30  55  1E  59  20  00  0A
4:501  0:000  120  |  20  20  20  20  20  20  01  75
4:501  0:000  Framebuffer @0xC0000000 • MMIO @0xEC400000 • I/O Port @0x0000E000 • ROM Addr @0xEC440000
4:501  0:000  PCI region 1 = 0x00000000, region3 = 0x00000000, region5 = 0x00000000
4:501  0:000  BIOS_0_SCRATCH = 0x0000002C, 1 = 0x4058B880, 2 = 0x00000000, 3 = 0x00000000, 4 = 0x00000000, 5 = 0x00000000, 6 = 0x00000000
4:501  0:000  RADEON_CRTC2_GEN_CNTL == 0x00000000
4:501  0:000   card posted because CONFIG_MEMSIZE=0xC00
4:501  0:000  ATI card POSTed,
4:501  0:000  ••• Initializing VRAM •••
4:501  0:000   ATI Chip Family is: Tahiti
4:501  0:000   Set VRAM to OS minimum: 128Mb
4:501  0:000   Set VRAM for Tahiti = 3072MB
4:501  0:000   ATI: GET_VRAM_SIZE returned: 0xC0000000
4:501  0:000  ••• VRAM successfully initialized •••
4:503  0:001  Found generic VBIOS ROM file (1002_6798.rom)
4:506  0:003  Loaded ROM len=65536
4:506  0:000  Calculated ROM len=65536
4:506  0:000  VideoBIOS read from file
4:506  0:000  ATI Radeon EVERGREEN+ family
4:506  0:000  Users config name Junsai
4:506  0:000  (AtiPorts) Nr of ports set to: 5
4:506  0:000  ••• ATI Custom Properties detected •••
4:506  0:000   Custom Properties Key: AAPL00,no-hotplug-interrupt • Custom Properties Value: <01000000> • Custom Properties Value Length: 4
4:506  0:000  ••• ATI Custom Properties injected •••
4:506  0:000  ATI CHIP FAMILY: Tahiti • CARD NAME: AMD Radeon HD 7970X/8970/R9 280X • VRAM: 3072MB • FRAMEBUFFER: Junsai • VENDOR-/DEVICE-ID: 1002:6798 • SUBSYSTEM-ID: 174B:3000 • PciRoot(0x0)\Pci(0x1,0x0)\Pci(0x0,0x0)
4:506  0:000   RCBA disabled; cannot use it
4:506  0:000  stringlength = 135718
4:511  0:004  CurrentMode: Width=3440 Height=1440

 

 

 

See the value for "BIOS_1_SCRATCH = 0x4058B880" ? Can you explain, where does it come from and what is it's meaning? It doesn't change if i switch connectors or use just one of them: DP or either HDMI

See also, that if GFX is primary and only "LoadVBIOS" is working as expected. If i do this with RX460 or RX480 as primary and only card, AMDRadeonX4100.kext will bring the system to stop booting and crashed.

Ahh, and "ATI: GET_VRAM_SIZE =" also returns the correct detected value (but only for the R9 280x).

 

Same boot with RX460 as primary and only gfx:

 

 

4:215  0:000  === [ RestSetup macOS ] ===================================
4:215  0:000  EdidDiscovered size=128
4:215  0:000  000  |  00  FF  FF  FF  FF  FF  FF  00  10  AC
4:215  0:000  010  |  A6  A0  4C  34  45  30  25  19  01  04
4:215  0:000  020  |  A5  50  21  78  3A  FD  25  A2  58  4F
4:215  0:000  030  |  9F  26  0D  50  54  A5  4B  00  71  4F
4:215  0:000  040  |  81  00  81  80  A9  40  D1  C0  01  01
4:215  0:000  050  |  01  01  01  01  E7  7C  70  A0  D0  A0
4:215  0:000  060  |  29  50  50  20  CA  04  1E  4F  31  00
4:215  0:000  070  |  00  1A  00  00  00  FF  00  36  38  4D
4:215  0:000  080  |  43  46  35  39  36  30  45  34  4C  0A
4:215  0:000  090  |  00  00  00  FC  00  44  45  4C  4C  20
4:215  0:000  100  |  55  33  34  31  35  57  0A  20  00  00
4:215  0:000  110  |  00  FD  00  30  55  1E  59  20  00  0A
4:215  0:000  120  |  20  20  20  20  20  20  01  75
4:215  0:000  
4:215  0:000  • Get MMIO
4:215  0:000   PCI region 1 = 0x00000000, region 3 = 0x00000000, region 5 = 0xEC400000
4:215  0:000   ATI CHIP_FAMILY = Baffin, so we use region 5 as MMIO space
4:215  0:000   Framebuffer @0xC0000000 • MMIO @0xEC400000 • I/O Port @0x0000E000 • ROM Addr @0xEC440000
4:215  0:000   PCI_DEV->REGS = CARD->MMIO = @0xEC400000
4:215  0:000  • Get MMIO done
4:215  0:000  •• Get card posted
4:215  0:000   BIOS_0_SCRATCH = 0x00000000, 1 = 0x00000000, 2 = 0x00000001, 3 = 0x00000000, 4 = 0x00000000, 5 = 0x00000000, 6 = 0x00000000
4:217  0:001   RADEON_CRTC2_GEN_CNTL == 0x00000000
4:217  0:000   Card is POSTed because CONFIG_MEMSIZE = 0x1000
4:217  0:000  •• Get card posted returned: POSTed
4:217  0:000  ••• Get VRAM
4:217  0:000   ATI Chip Family is: Baffin
4:217  0:000   Set VRAM to OS minimum: 128Mb
4:217  0:000   Set VRAM for Baffin = 4096MB
4:217  0:000   ATI: GET_VRAM_SIZE returned: 0x0
4:217  0:000  ••• Get VRAM: ok
4:217  0:000   ATI Radeon EVERGREEN+ family
4:217  0:000  ••••• Get Framebuffer and Ports
4:217  0:000   Default Framebuffer for this device: Acre
4:217  0:000   Default Ports for this device: 3
4:217  0:000   (AtiPorts) Nr of ports set to: 3
4:217  0:000  ••••• Get Framebuffer and Ports done
4:217  0:000  •••••• Get ATI Custom Properties
4:217  0:000   Custom Properties Key: AAPL00,no-hotplug-interrupt • Custom Properties Value: <01000000> • Custom Properties Value Length: 4
4:217  0:000  •••••• ATI Custom Properties injected
4:217  0:000  
4:217  0:000  ATI CHIP FAMILY: Baffin • CARD NAME: AMD Radeon RX460 • VRAM: 4096MB • FRAMEBUFFER: Acre • VENDOR-/DEVICE-ID: 1002:67EF • SUBSYSTEM-ID: 174B:E344 • PciRoot(0x0)\Pci(0x1,0x0)\Pci(0x0,0x0)

 

 

As you can see, i modified the bootlog a little <--- any feedback appreciated :rolleyes:

 

btw: i did NOT find any way to get the connectors correctly injected. tried a lot of stuff with no success.

I inserted this into my config.plist - even that my R9280X doesn't need that kind of patch to work correctly:

 

 

        <key>ATIConnectorsController</key>
        <string>9500</string>
        <key>ATIConnectorsData</key>
        <string>000400000403000000010101000000001102020100000000000800000402000000010200000000002103050400000000040000000402000000010300000000000000030500000000</string>
        <key>ATIConnectorsPatch</key>
        <string>000400000403000000010001000000001102050100000000000800000402000000010001000000002103030400000000040000000402000000010001000000001000040500000000</string>

 

 

using this kind of FB-patch instead for all my tested cards:

 

 

            <dict>
                <key>Comment</key>
                <string>Framebuffer JUNSAI</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>AAQAAAQDAAAAAQABAAAAABIEAwEAAAAAAAQAAAQDAAAAAQABAAAAACIFBAIAAAAAAAQAAAQDAAAAAQABAAAAABECAQMAAAAAAAQAAAQDAAAAAQABAAAAACEDAgQAAAAAAAQAAAQDAAAAAQABAAAAABAABQUAAAAAAAQAAAQDAAAAAQABAAAAACABBgYAAAAA</data>
                <key>Name</key>
                <string>AMD7000Controller</string>
                <key>Replace</key>
                <data>AAQAAAQDAAAAAQABAAAAABIEBQEAAAAAAAgAAAQCAAAAAQABAAAAACIFAQQAAAAABAAAABQAAAAAAQABAAAAABECBgMAAAAAAAIAABQCAAAAAQABAAAAABAAAwYAAAAAAAQAAAQDAAAAAQABAAAAACABAgUAAAAABAAAABQAAAAAAQABAAAAACIFBAIAAAAA</data>
            </dict>

 

 

but i thought it might be helpfull for this part of code within "ati.c":

 

 

  {FLAGTRUE, TRUE, "@0,connector-type",          get_conntype_val,  NULVAL        },

. . . 

//TODO - get connectors from ATIConnectorsPatch
BOOLEAN get_conntype_val(value_t *val, INTN index)
{
  UINT8 *ct;
  //Connector types:
  //0x10:  VGA
  //0x04:  DL DVI-I
  //0x800: HDMI
  //0x400: DisplayPort
  //0x02:  LVDS
 
  if ((CurrentPatches == NULL) || (CurrentPatches->KPATIConnectorsDataLen == 0)) {
    return FALSE;
  }
  ct = CurrentPatches->KPATIConnectorsPatch;
 
  /*  if (gMobile) {
   ct = (UINT32*)&ctm[0];
   } else
   ct = (UINT32*)&ctd[0]; */
 
  val->type = kCst;
  val->size = 4;
  val->data = (UINT8*)&ct[index * 16];    //  <--- do we have to change the "* 16" into "* 24", cause now FB will be 24 bits or 48 characters (numbers) long in SIERRA?
 
  //  cti++;
  //  if(cti > 3) cti = 0;
 
  return TRUE;
}

 

 

But wasn't helpfull. Don't know, if this routine will ever be called in the code.
 

Link to comment
Share on other sites

Tried another solution:

 

i edited one of my SSDT with this codesnippet:

                   "@0,connector-type",
                    Buffer (0x04)
                    {
                         0x00, 0x04, 0x00, 0x00                         
                    },

                    "@0,ATY,ControlFlags",
                    Buffer (0x04)
                    {
                         0x00, 0x03, 0x00, 0x04                         
                    },

                    "@0,AAPL,boot-display",
                    Buffer (One)
                    {
                         0x01                                           
                    },

but this will result in this kind of output: "connector-type" = [00040000]

What i need, is this kind of output: "connector-type" = 0x400

 

So, what do i have to enter to get "0x400" as given value?

 

I still belief, that the blackscreen issue only happens, cause the connector-type values are missing after verbose boot. And i promise, if i would find a way to give the right value to "connector-type" and "ControlFlags" as "0x400" and "0x304" i will get immediatly a picture on my monitor connected to RX460 Port#1, which is DisplayPort. I would bet my grand-ma on this. But i can't find a f... way to get the correct values given to their corresponding keys.

 

A N Y O N E ? ? ?

  • Like 3
Link to comment
Share on other sites

@Slice:

 

any chance to get Connectors defined by config.plist, something like this:

    <key>Graphics</key>
    <dict>
        <key>Connectors</key>
        <data>kdYHUA==</data>

currently the startupvalues seems to be a readout from mmio + RADEON_BIOS_0_SCRATCH. I would like to get them defined by config.plist from the beginning. <--- of cause, only if possible.

Link to comment
Share on other sites

@Slice:

 

any chance to get Connectors defined by config.plist, something like this:

    <key>Graphics</key>
    <dict>
        <key>Connectors</key>
        <data>kdYHUA==</data>

currently the startupvalues seems to be a readout from mmio + RADEON_BIOS_0_SCRATCH. I would like to get them defined by config.plist from the beginning.

It is possible but I still see no effect of it.

Link to comment
Share on other sites

Hi, I've been following this closely, and trying to find a solution myself. I have a C612 workstation running Sierra 10.2.2 and avoid modifying kexts etc. at all costs. I have not edited my X4100.kext at all, I instead use SSDT injection to disable all devices that slot has PCI routes to by setting their _STA to zero. I then inject my own device named GFX1 with a fake ID, 0x67FF in my case, solving the MacPro gfx0 unload problem and matching the X4100.kext in one update-proof go.

 

I also have no IGPU at all of course.

 

I am competent in simpler embedded systems (ARM cortex-3 micros and simpler mostly) and have been adding my own debug info to clover and testing it (without any useful results =/) but I am just trying to say I can help test whatever and will probably know what it is you want me to do.

 

Oh yeah I have an RX 480.

 

 

So, some things I've noticed:

 

1. Non-primary GPUs will display black while Clover is booting/booted. This is different from what happens with an RX480. By display black, I mean there is a valid video signal driving the display and telling it to show black pixels.

 

However, the RX 480 isn't displaying black, it's not displaying anything - there is no valid signal coming out of the ports at all. I wonder why this is? Might be nothing but mentioning it in case it's useful.

 

2. I have a dual link 2560x1440 DVI display, and I've noticed that when I inject my EDID, when the X4100 kext loads, instead of the RX 480's output going dead suddenly, the bottom half of my display flashes white (I have some 240 fps video if you think it's worth the time) before the video input dies. so something is making only one of the two dual link channels briefly go all white. This does not happen at all normally, normally video just cuts out without any flash etc.

 

3. The not finding a valid rom might not be invoked. This happens on Linux too but doesn't cause any problems. Also, all of this happens if I load a valid vbios from my EFI partition or don't.

 

4. The Polaris cards have a hybrid rom, which is a UEFI/GOP module in addition to a traditional legacy rom. The UEFI module acts as a loader for the legacy module.

 

Note, both of these rom sections are digitally signed. The UEFI module verifies the signature of the legacy rom and only loads it if it passes. The UEFI module's signature is only verified by the computer's BIOS itself if secure boot is enabled, so that isn't really relevant.

 

Anyway, I altered my legacy rom section such that it would fail validation but still work fine, then flashed that onto my card. I then forced my BIOS to "UEFI only" mode, which of course resulted in no video coming out of the card. The legacy rom wouldn't load, and CSM/any loading of it by the mobo itself wasn't allowed.

 

Only, if I wait, video happily appears along with OS X's login screen, as soon as the X4100 kext loads. This is with the RX 480 as primary, and a invalid (in terms of the signature) legacy rom section.

 

I know recent Mac pro's EFI will actually find and load legacy rom sections of cards, removing the need of having an EFI section to work.

 

This is my thinking: is it possible that when the UEFI/GOP module loads the legacy rom, it remaps it? Or remaps something? I don't think this is a connector problem - though that might be an issue on its own, I don't know. If the frame buffer doesn't match connectors, the video cuts out entirely but OS X still boots. You have no screen but you can mash keys and hear sounds.

 

That is not what occurs with the RX 480. It halts, immediately. All hard drive I/O stops mid boot, and that's the end. On rare occasions, my machine (or rather The xnu kernel) will actually manage to automatically reboot when this happens, just like certain kernel panics. This outcome is rare though, and usually my machine just locks in permanent limbo.

 

 

anyway, i dunno if any of that is at all useful. But if you need me to test anything or want any information from me, let me know. Oh, I did prevent the X 4100 kext from loading and booted without accelerated video, and can confirm that all those extra properties, the frame buffer, connector injection seems to work correctly. I would an ioreg dump be useful?

 

Though, It also likely means that it's not the culprit, but I am kind of out of my element.

 

 

Anyway, thank you very much Slice and Mork vom Ork for the time you've given towards figuring out this problem. I know Slice isn't even really interested, but trying to get the sleep/wake issues with ATI cards sorted, so a double thanks for going out of your way on this side problem.

  • Like 1
Link to comment
Share on other sites

Ok, guys. I have made some more experiences over the last few days.

The first thing i was wondering: why did my DELL U3415W does NOT like any 60hz. resolution - even he is able to display such refresh-rate?

I was experiencing, that on every fresh install i have to set screen-res manually to 3440x1440x50Hz. instead of 3440x1440x60Hz to get a picture. So i consulted DELL website to find out, if the european release of this kind of monitor is diferent, cause european standard refresh-rate is 50 hz instead of 60hz to the us-market for example. So i found out, that the european U3415W ist still able to get 60hz as refresh-rate. But what ever i tried, i always got blackscreen (and message: "no signal") when i switched resolution to something with 60hz.

 

So i "clicked" through the monitor-settings and got the solution: i have to set "DP settings" to 1.1 instead of 1.2 as standard. With settings 1.1 i was able to use any resolution with a refresh-rate of 60hz. This is important, cause CLOVER will allways use 60hz as standard refresh-rate for any resolution it detects.

 

So another failpoint of my long list could be fixed. No longer RDP-login to CLOVER machine via MacBook and fix refreshrate from 60 to 50hz to get a screen on U3415W.

(Notice: now i get blackscreen and message "no signal" whenever i try to use a 50hz refreshrate <--- but who cares)

 

Second:

i noticed in the ATI.c code segments, that Clover "injects" some "default properties" so that u don't have to use them manually. One of them is the "@0,connector-type" setting. But this only works, if you have "ATI ConnectorsController" settings within your CLOVER config.plist. For a better understanding i think that CLOVER reads out the entry under "ATIConnectorsPatch" and so gets the correct values for "@0,connector-type". The part of the code i mean is the following:

KERNEL_AND_KEXT_PATCHES *CurrentPatches;

//  TODO - get connectors from ATIConnectorsPatch
BOOLEAN get_conntype_val(value_t *val, INTN index)
    {
    UINT8 *ct;
//  Connector types:
//  0x10:  VGA
//  0x04:  DL DVI-I
//  0x800: HDMI
//  0x400: DisplayPort
//  0x02:  LVDS
 
    if ((CurrentPatches == NULL) || (CurrentPatches->KPATIConnectorsDataLen == 0)) {
    return FALSE;
    }
    ct = CurrentPatches->KPATIConnectorsPatch;
 
  /*  if (gMobile) {
   ct = (UINT32*)&ctm[0];
   } else
   ct = (UINT32*)&ctd[0]; */
 
    val->type = kCst;
    val->size = 4;
    val->data = (UINT8*)&ct[index * 16];
 
//  cti++;
//  if(cti > 3) cti = 0;
 
    return TRUE;
    }

And i believe, here is still one mistake for SIERRA setups. To make it more clear, some explanations first. Lets take a look at Framebuffers from YOSEMITE and SIERRA:

Junsai 10.10.5:
00040000040300000001000111020103
Junsai 10.12.2beta4:
000400000403000000010001000000001102010300000000

See the different length? Now cut them into each two pairs like this:

Junsai 10.10.5:
00 04 00 00 04 03 00 00 00 01 00 01 11 02 01 03     <-- length: 16 pairs(dec.)
Junsai 10.12.2beta4:
00 04 00 00 04 03 00 00 00 01 00 01 00 00 00 00 11 02 01 03 00 00 00 00     <--- length: 24 pairs(dec.)

so i thought, that this part of the above code has to be changed when using SIERRA:

//  change this line:
    val->data = (UINT8*)&ct[index * 16];
// into this line:
    val->data = (UINT8*)&ct[index * 24];

did this and recompiled CLOVER again, installed this to my EFI partition, restarted and wait for what is going to be changed. For my big suprise: NOTHING was changed! No problems with my good old R9 280X when booting as primary solo gfx. card and still blackscreen when booting with RX4x0 as primary, solo gfx card.

 

And i thought: hmm, doesn't make any sense? why does it NOT make a difference? Within SIERRA with a length of still "16" it MUST get wrong values, cause next CONNECTOR does not begin after 16 (i think it is bits) but after 24 bits. So why doesn't it make any difference?

 

And than i realized: IT DOES. Cause when using "* 16" instead of "* 24" my DELL Monitor replys with wrong resolution settings! I wasnt able to get full resolution when old settigs "*16" was applied: max resolution setting then was always 1920x1080, also on my IIyama 4K monitor: max Res: 1920x1080.

Then with "*24" change and recompile i am able to change full native resoultions for both monitors - 3440x1440 and 3440x2160

 

Please feel free to try this yourself and share your experiences.

 

so there seems to be more "small bugs" for new Radeon cards and how SIERRA changes AMD Support than we might believe <--- cause the real coders don't have to put their attentions for month on ATI.c, ATI.h or ATI_REG.h

 

...to be continued later. Taking a break right now.

  • Like 3
Link to comment
Share on other sites

PART II:

 

after i noticed the above described experience, i thougth: ok, lets take a closer look on SIERRA Framebuffer Settings.

Take a look on SIERRA Framebuffer JUNSAI (AMD7000Controller), ACRE (AMD9500Controller), OPM (AMD9500Controller) and BARBICE (AMD9500Controller):

Junsai:
000400000403000000010001000000001102010300000000
ACRE:
000400000403000000010101000000001102020100000000
OPM:
000400000403000000000001000000001102020200000000
Barbice:
000400000403000000010453000000001102040400000000

You can see all have the same beginning for their DP setting (Connector Type and ControllFlag), and all have same setting for Transmitter and Encoder - but different settings for Sense-ID and Hotplug-ID.

And there are many manuals explaining how to set these values and how they are relevant for "correct Framebuffer Patching". But who really knows, what kind of meaning all the other values have? As you can see in the above example there is 100010, 101010, 000010 and 104530. So what do these values stay for? So i start making the test:

 

lets begin changing the following for Framebuffer ACRE - which i use with my RX460 as standard framebuffer:

normal patch would look like this (just an example, cause i am currently at work and don't have my correct "config.plist" handy to grab the correct values):

00040000 04030000 00010001 00000000 11020603 00000000   <--- DP
00040000 04030000 00010001 00000000 21030104 00000000   <--- DP
00080000 04020000 00010001 00000000 12040501 00000000   <--- HDMI
00040000 04030000 00010001 00000000 20010206 00000000   <--- DP
04000000 14000000 00010001 00000000 22050402 00000000   <--- DVI
00020000 14020000 00010001 00000000 10000305 00000000   <--- DVI

Now lets put our attention just to the "third block" of entries. As we notice, i have them all patched to the same values. And i don't experienced any problem with these values. Also i never asked before to myself: what do these values stay for?

 

Now let us just change row one, block three into this and see what happens:

00040000 04030000 00010000 00000000 11020603 00000000 <--- DP

Did this and rebooted. First look: everything seems to be as it was like before. But hey... wait. Resolution was set to 1980x1080. Opening controll panel monitor to get this fixed. But wait: there are now just three resolutions possible: 1920x1080, 1280x 720 and a third vaue. No native resolution of 3440x1440 to pick up! So changed "00010000" now to "00010003" to see what happens. Reboot.

Et voila: back to native resoultion of 3440x1440@60hz. and 4 more resolutions to choose from. So maybe this setting has something to do with EDID of monitor to get it's possible resolutions. If EDID not possible to read out correctly, try just three different resolutions and see, if monitor could handle them.

 

Cause of not enough time (a day only has 24 hours), i wasn't able to make more tests so far - but i promise, i will continue, when there will be more time.

  • Like 1
Link to comment
Share on other sites

Dear Slice,

 

need your advice and support once again:

 

i modified this part of code in "ATI.c":

VOID devprop_add_list(AtiDevProp devprop_list[], CHAR8 *OSVersion)
{
  INTN i, pnum;
  BOOLEAN Sier;
  value_t *val = AllocateZeroPool(sizeof(value_t));
 
  Sier = (AsciiOSVersionToUint64(OSVersion) >= AsciiOSVersionToUint64("10.12"));

  for (i = 0; devprop_list[i].name != NULL; i++) {
    if ((devprop_list[i].flags == FLAGTRUE) || (devprop_list[i].flags & card->flags)) {
      if (devprop_list[i].get_value && devprop_list[i].get_value(val, 0, Sier)) {
         DBG(" DP:  Devprop_Name = %a • Devprop_Data = %a • Devprop_Size = %d\n", devprop_list[i].name, val->data, val->size); // <-- added this line
        devprop_add_value(card->device, devprop_list[i].name, val->data, val->size);
        free_val(val);
        
        if (devprop_list[i].all_ports) {
          for (pnum = 1; pnum < card->ports; pnum++) {
            if (devprop_list[i].get_value(val, pnum, Sier)) {
              devprop_list[i].name[1] = (CHAR8)(0x30 + pnum); // convert to ascii
                DBG(" CP:  Devprop_Name = %a • Val_Data = [ %a ] • Val_Size = %d\n", devprop_list[i].name, val->data, val->size); // <-- added this line
              devprop_add_value(card->device, devprop_list[i].name, val->data, val->size);
              free_val(val);
            }
          }
          devprop_list[i].name[1] = 0x30; // write back our "@0," for a next possible card
        }
      } else {
        if (devprop_list[i].default_val.type != kNul) {
              DBG(" kN:  Devprop_Name = %a • Devprop_Data = %a • Devprop_Size = %d\n",              // <-- added from here...
                  devprop_list[i].name,
                  devprop_list[i].default_val.type == kCst ?
                  (UINT8 *)&(devprop_list[i].default_val.data) : devprop_list[i].default_val.data,
                  devprop_list[i].default_val.size);                                                // <-- ...up to this line
          devprop_add_value(card->device, devprop_list[i].name,
                            devprop_list[i].default_val.type == kCst ?
                            (UINT8 *)&(devprop_list[i].default_val.data) : devprop_list[i].default_val.data,
                            devprop_list[i].default_val.size);
        }
        
        if (devprop_list[i].all_ports) {
          for (pnum = 1; pnum < card->ports; pnum++) {
            if (devprop_list[i].default_val.type != kNul) {
              devprop_list[i].name[1] = (CHAR8)(0x30 + pnum); // convert to ascii
                DBG(" AP:  Devprop_Name = %a • Devprop_Data = %a • Devprop_Size = %d\n",             // <-- added from here...
                    devprop_list[i].name,
                    devprop_list[i].default_val.type == kCst ?
                    (UINT8 *)&(devprop_list[i].default_val.data) : devprop_list[i].default_val.data,
                    devprop_list[i].default_val.size);                                               // <-- ...up to this line
              devprop_add_value(card->device, devprop_list[i].name,
                                devprop_list[i].default_val.type == kCst ?
                                (UINT8 *)&(devprop_list[i].default_val.data) : devprop_list[i].default_val.data,
                                devprop_list[i].default_val.size);
            }
          }
          devprop_list[i].name[1] = 0x30; // write back our "@0," for a next possible card
        }
      }
    }
  }
    FreePool(val);
}

to get this kind of output in CLOVER bootlog:

5:513  0:000  •••••• Get Devprop_add_List
5:513  0:000   DP:  Devprop_Name = @0,AAPL,boot-display • Devprop_Data =  • Devprop_Size = 4
5:513  0:000   DP:  Devprop_Name = AAPL00,override-no-connect • Devprop_Data =  • Devprop_Size = 128     // <--- see this? How to expand the above code to get correct value?
5:513  0:000   DP:  Devprop_Name = @0,compatible • Devprop_Data = ATY,Acre • Devprop_Size = 8
5:513  0:000   CP:  Devprop_Name = @1,compatible • Val_Data = [ ATY,Acre ] • Val_Size = 8
5:513  0:000   CP:  Devprop_Name = @2,compatible • Val_Data = [ ATY,Acre ] • Val_Size = 8
5:513  0:000   DP:  Devprop_Name = @0,connector-type • Devprop_Data =  • Devprop_Size = 4                // <--- see this? How to expand the above code to get value for Devprop_Data displayed?
5:513  0:000   CP:  Devprop_Name = @1,connector-type • Val_Data = [  ] • Val_Size = 4                    // <--- see this? How to expand the above code to get value for Val_Data displayed?
5:513  0:000   CP:  Devprop_Name = @2,connector-type • Val_Data = [  ] • Val_Size = 4                    // <--- see this? How to expand the above code to get value for Val_Data displayed?
5:513  0:000   kN:  Devprop_Name = @0,device_type • Devprop_Data = display • Devprop_Size = 7
5:513  0:000   AP:  Devprop_Name = @1,device_type • Devprop_Data = display • Devprop_Size = 7
5:513  0:000   AP:  Devprop_Name = @2,device_type • Devprop_Data = display • Devprop_Size = 7
5:513  0:000   kN:  Devprop_Name = AAPL00,Dither • Devprop_Data =  • Devprop_Size = 4
5:513  0:000   DP:  Devprop_Name = @0,name • Devprop_Data = ATY,Acre • Devprop_Size = 8
5:513  0:000   CP:  Devprop_Name = @1,name • Val_Data = [ ATY,Acre ] • Val_Size = 8
5:513  0:000   CP:  Devprop_Name = @2,name • Val_Data = [ ATY,Acre ] • Val_Size = 8
5:513  0:000   DP:  Devprop_Name = @0,VRAM,memsize • Devprop_Data =  • Devprop_Size = 8
5:513  0:000   CP:  Devprop_Name = @1,VRAM,memsize • Val_Data = [  ] • Val_Size = 8
5:513  0:000   CP:  Devprop_Name = @2,VRAM,memsize • Val_Data = [  ] • Val_Size = 8
5:513  0:000   kN:  Devprop_Name = AAPL,aux-power-connected • Devprop_Data =  • Devprop_Size = 4
5:513  0:000   DP:  Devprop_Name = AAPL00,DualLink • Devprop_Data =  • Devprop_Size = 4
5:513  0:000   kN:  Devprop_Name = ATY,Copyright • Devprop_Data = Copyright AMD Inc. All Rights Reserved. 2005-2011 • Devprop_Size = 49
5:513  0:000   kN:  Devprop_Name = ATY,EFIVersion • Devprop_Data = 01.00.3180 • Devprop_Size = 10
5:513  0:000   DP:  Devprop_Name = ATY,Card# • Devprop_Data = 109-B77101-00<@ • Devprop_Size = 13
5:513  0:000   kN:  Devprop_Name = ATY,VendorID • Devprop_Data =  • Devprop_Size = 2
5:513  0:000   DP:  Devprop_Name = ATY,DeviceID • Devprop_Data = ?gKD?? • Devprop_Size = 2
5:513  0:000   kN:  Devprop_Name = ATY,RefCLK • Devprop_Data = ? • Devprop_Size = 4
5:513  0:000   DP:  Devprop_Name = ATY,PlatformInfo • Devprop_Data =  • Devprop_Size = 128
5:513  0:000   DP:  Devprop_Name = name • Devprop_Data = ATY,AcreParent • Devprop_Size = 14
5:513  0:000   DP:  Devprop_Name = device_type • Devprop_Data = ATY,AcreParent • Devprop_Size = 14
5:513  0:000   DP:  Devprop_Name = model • Devprop_Data = AMD Radeon RX460 • Devprop_Size = 16
5:513  0:000  •••••• Get Devprop_add_List done

I know, that i set above "Devprop_Data = %a" which means to get values as ASCii, so the above mentioned values could not give out correct, cause they are not all ASCii, some of them seems to be integers, maybe hex-values. So what do i have to set for "Devprop_Data = %?" to get the correct value displayed, no matter if the given value is real ascii, integer, hex or anything else?

 

As you can see above, the devprop-size & val-size always seems to reply correct len of data, but data-values could not be displayed, cause of wrong type here: "Devprop_Data = %a".

Would be happy, if your time allows to get it explained to me or even a little hint on what to change (expand) in the above code ;-)

 

Oh, and btw: this bootlog was extracted when booting with RX460 as primary and solo gfx.

 

PS: i also understand, that the output of values (string, integer, hex etc.) would be defined within these lines of code:

AtiDevProp ati_devprop_list[] = {
  {FLAGTRUE, FALSE, "@0,AAPL,boot-display",  get_bootdisplay_val, NULVAL    },
  // {FLAGTRUE, FALSE, "@0,ATY,EFIDisplay",  NULL,     STRVAL("TMDSA")   },
 
  //{FLAGTRUE, TRUE, "@0,AAPL,vram-memory",  get_vrammemory_val,  NULVAL    },
  {FLAGTRUE, TRUE, "AAPL00,override-no-connect",  get_edid_val,       NULVAL        },
  {FLAGNOTFAKE, TRUE, "@0,compatible",              get_name_val,       NULVAL    },
  {FLAGTRUE, TRUE, "@0,connector-type",          get_conntype_val,  NULVAL        },
  {FLAGTRUE, TRUE, "@0,device_type",             NULL,     STRVAL("display")   },
  // {FLAGTRUE, FALSE, "@0,display-connect-flags", NULL,    DWRVAL(0)   },
 
  //some set of properties for mobile radeons
  {FLAGMOBILE, FALSE, "@0,display-link-component-bits",  NULL,  DWRVAL(6) },
  {FLAGMOBILE, FALSE, "@0,display-pixel-component-bits", NULL,  DWRVAL(6) },
  {FLAGMOBILE, FALSE, "@0,display-dither-support",       NULL,  DWRVAL(0) },
  {FLAGMOBILE, FALSE, "@0,backlight-control",       NULL,  DWRVAL(1) },
  {FLAGTRUE,   FALSE, "AAPL00,Dither", NULL,  DWRVAL(0) },
 
 
  //  {FLAGTRUE, TRUE, "@0,display-type",          NULL,     STRVAL("NONE")   },
  {FLAGTRUE, TRUE, "@0,name",                    get_name_val,   NULVAL          },
  {FLAGTRUE, TRUE, "@0,VRAM,memsize",   get_vrammemsize_val, NULVAL          },
  //  {FLAGTRUE, TRUE, "@0,ATY,memsize",     get_vrammemsize_val, NULVAL          },
 
  {FLAGTRUE, FALSE, "AAPL,aux-power-connected", NULL,     DWRVAL(1)  },
  {FLAGTRUE, FALSE, "AAPL00,DualLink",          get_dual_link_val,   NULVAL  },
  {FLAGMOBILE, FALSE, "AAPL,HasPanel",          NULL,     DWRVAL(1)   },
  {FLAGMOBILE, FALSE, "AAPL,HasLid",            NULL,     DWRVAL(1)   },
  {FLAGMOBILE, FALSE, "AAPL,backlight-control", NULL,     DWRVAL(1)   },
  {FLAGTRUE, FALSE, "AAPL,overwrite_binimage", get_binimage_owr,  NULVAL    },
  {FLAGTRUE, FALSE, "ATY,bin_image",            get_binimage_val,  NULVAL    },
  {FLAGTRUE, FALSE, "ATY,Copyright", NULL, STRVAL("Copyright AMD Inc. All Rights Reserved. 2005-2011") },
  {FLAGTRUE, FALSE, "ATY,EFIVersion", NULL, STRVAL("01.00.3180")                  },
  {FLAGTRUE, FALSE, "ATY,Card#",   get_romrevision_val, NULVAL                },
  //  {FLAGTRUE, FALSE, "ATY,Rom#", NULL, STRVAL("www.amd.com")                  },
  {FLAGNOTFAKE, FALSE, "ATY,VendorID",  NULL,     WRDVAL(0x1002)        },
  {FLAGNOTFAKE, FALSE, "ATY,DeviceID",  get_deviceid_val,  NULVAL                  },
 
  // {FLAGTRUE, FALSE, "ATY,MCLK",     get_mclk_val,   NULVAL       },
  // {FLAGTRUE, FALSE, "ATY,SCLK",     get_sclk_val,   NULVAL       },
  {FLAGTRUE, FALSE, "ATY,RefCLK",    get_refclk_val,   DWRVAL(0x0a8c)  },
 
  {FLAGTRUE, FALSE, "ATY,PlatformInfo",   get_platforminfo_val, NULVAL     },
  {FLAGOLD,  FALSE, "compatible",      get_name_pci_val,     NULVAL       },
  {FLAGTRUE, FALSE, "name",      get_nameparent_val,     NULVAL       },
  {FLAGTRUE, FALSE, "device_type",  get_nameparent_val,     NULVAL       },
  {FLAGTRUE, FALSE, "model",     get_model_val,          STRVAL("ATI Radeon")},
  //  {FLAGTRUE, FALSE, "VRAM,totalsize", get_vramtotalsize_val, NULVAL              },
 
  {FLAGTRUE, FALSE, NULL, NULL, NULVAL}
};
Link to comment
Share on other sites

This may not be relevant but there are new AMD cards listed in 9500kext. 12.2 B5.     Polaris 12, Polaris 10XT2 along with Vega 10.

 

I also ran across this in the 4100kext.

post-1753549-0-09864500-1481179444_thumb.png.  DDR3, DDR4, GDDR5, HBM PCI ( no HBM2 or GDDR5X).

 

9500Controller

SMC update.

post-1753549-0-47974800-1481179789_thumb.png

Sleep/Display

post-1753549-0-42405500-1481179841_thumb.png

Link to comment
Share on other sites

 

.

 

There is a simpler way to see injected device properties if not started.

Settings.c: line 6302

      mPropSize = hex2bin (gDeviceProperties, mProperties, mPropSize);
      //     DBG ("Final size of mProperties=%d\n", mPropSize);
      //---------
      Status = egSaveFile(SelfRootDir,  L"EFI\\CLOVER\\misc\\devprop.bin", (UINT8*)mProperties, mPropSize);
    }

After reboot you will find this file and decompile it.

 

./gfxutil -i bin -o xml devprop.bin devprop.plist

 

gfxutil.zip

Link to comment
Share on other sites

I was able to to boot MacOS only with R9290X. Thanks to Okrasit (http://www.insanelymac.com/forum/topic/313977-r9-nano/?p=2333976

Just insert fake PCI ID to videoROM and save it to GPU. 

I attach boots.log and IO.reg. I hope this will help to find good and more comfortable solution for "BlackScreen" 

Mateusz’s Mac Pro.zip

debug.log.zip

post-916820-0-87395300-1481723695_thumb.png

  • Like 2
Link to comment
Share on other sites

×
×
  • Create New...