Jump to content

Oland Family Graphics Card (like R7 240)


jalavoui
 Share

61 posts in this topic

Recommended Posts

You will have resolution with just loaded 7000 kext, if you point to correct ID for your card like I did you will have full QE/CI, mind you this cards are poor performers but R7 250 does 4K just don’t do 3D with it.
Nothing special in my EFI I only imputed ID in devices section. 

Link to comment
Share on other sites

  • 3 weeks later...

this dsdt.aml setup might be usefull if u wanna use voodohda + applehda with this card + hdmi

 

this is the voodohda dsdt setup for the internal sound card (dont really need a pin config here)

 

Device (AZAL)
            {
                Name (_ADR, 0x001B0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x05, 
                        0x05
                    })
                }

                Method (_DSM, 4, NotSerialized)
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Return (Buffer (One)
                        {
                            0x03
                        })
                    }

                    Return (Package (0x02)
                    {
                        "layout-id", 
                        Buffer (0x04)
                        {
                            0x0C, 0x00, 0x00, 0x00
                        }
                    })
                }
            }

then for the oland card with hdau (not using pin id 1 gives me assertion errors) managed by applehda

Device (PEG0)
            {
                Name (_ADR, 0x00010000)
                Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x02)
                            {
                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }

                    Name (_SUN, One)
                }

                Device (HDAU)
                {
                    Name (_ADR, One)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x04)
                            {
                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }, 

                                "layout-id", 
                                Buffer (0x04)
                                {
                                    0x01, 0x00, 0x00, 0x00
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
            }

 

 

  • Like 2
Link to comment
Share on other sites

  • 1 year later...
  • 6 months later...

Hello all,

 

I have recently got R7 240s and I am wondering how to get graphics card to have acceleration. I have attached my EFI, and I believe I injected the right FakeID.

 

RIght now it just reads Display 7MMB, any help would be greatly appreciated!

 

 

* CPU: Intel Core 2 Duo

* GPU: Stock AMD R7 240 1GB
 

EFI.zip

Link to comment
Share on other sites

4 hours ago, Slice said:

See here

ATI Oland family cards 

And also my post #2

One note. It will not work in 10.13 and up because of your CPU.

I will recommend you to stay on 10.11.6.

I actually have it running 12.5.1, I am trying to get graphics acceleration, applying a fake id with all the fake ids listed there doesn't seem to work, I added the two kexts there for good measure too and it still doesn't add acceleration. 

 

Screenshot 2022-08-30 at 3.18.47 PM.png

Edited by carsonr
Link to comment
Share on other sites

I just noticed that @Hervé changed his status to Retired.  If so, we lost a valuable resource.  He and I rarely saw eye-to-eye (ok, maybe rarely is generous), and we had our arguments, but I learned much from him and from our debates.  @Hervé deserves a lot of credit for making me want to be a better hacker.  Good luck, @Hervé, wherever you end up.

Link to comment
Share on other sites

On 8/31/2022 at 3:42 PM, Hervé said:

According to the Dortania dGPU buyers guide, AMD R7/R9 cards are supported up to Monterey. For the R7 240, the guide states it requires a fake id.

 

Your posted OpenCore EFI shows that you use a dedicated SSDT to inject device id 0x6613 against device PCI0.POP2. I presume you followed the Dortania GPU renaming (Fake ID) guide. I guess you should be trying to fake R7 250X or any other R7 model that's supported OOB. Instead, you inject what must be your card's native id (0x6613) which is therefore useless (and always unnecessary). Experiment faking the following ids:

  • 0x683d (R7 250X)
  • 0x6658 (R7 260X)
  • 0x6819 (R7 265)
  • other ids mentioned in the thread linked by Slice like 0x665D

then check in IOReg if this gets properly injected with apps such as IORegistryExplorer.

 

You may also need to inject a specific framebuffer personality but I'm not that familiar with those. They depend on the AMD controller/driver handling the R7 card (AMD7000Controller ?).

Dortania missed some dependency. The card may work in Monterey with newer CPU but not with Core 2 Duo.

 

It's sad to see you go. 🥺

Link to comment
Share on other sites

  • 1 month later...

if you can test fake ids , you may opportunity to work R7 240 for high resolution but no QE/Metal support.

fake ids : 6808 , 6780, 6818,6819, 682b, 682d

 

depends on your cards memory , GL ones can be more speed gpu, you may notice that while you are booting...

 

i dont know CPU relationship to that card but haswell-EP e5-2620 v3 is ok with Monterey.

opencore fake id dsdt is ok to get it working with monterey.

 

pci device: 6780 - Tahiti XT GL [FirePro W9000]

pci device: 6808 - Pitcairn XT GL [FirePro W7000]

pci device: 682d - Chelsea XT GL [FirePro M4000]

 

I couldnt find solution about hardware acceleration on monterey. i dont know how to do. there is also problem with hdmi audio not working.

because of hardware acceleration window minimize effects are so slow and sceen is unresponsive until animation is done.

to much laggy animation.  is any way to get this card is work properly?

 

 

@Slice maybe remember old posts and can be find gl driver  codes to look which cards have Hardware acceleration.

than we may test it. i tried to test it all pci ids but i got bored and i took lots of time. maybe  i can have time to test it again.

Link to comment
Share on other sites

  • 4 months later...

This kext loads on Big Sur 11.6 (need to break os seal to install it to S/L/E)

card id 0x6611

there's an issue preventing acceleration to work

 

setting CFG_FB_LIMIT other than 1 breaks the driver and the framebuffer doesn't load

 

if I try to load AMDRadeonX4000.kext I got errors/panic in IOAcceleratorFamily2:

__ZN27IOAccelLegacyDisplayMachine23display_mode_did_changeEj.cold.1

__ZN27IOAccelLegacyDisplayMachine25find_primary_display_pipeEP24IOAccelLegacyDisplayPipe

__ZN18IOAccelDisplayPipe22display_change_handlerEPvP13IOFramebufferiS0_

can this be fixed  ? maybe it's just a connectors issue

 

 

 

AMD7000Controller.kext.zip

Edited by jalavoui
use the whateverred kexts
Link to comment
Share on other sites

  • 2 weeks later...

This kexts work on Big Sur without breaking os seal

 

the -frame loads the framebuffer only

the -metal load the accelerator but still crashes.

 

Based on https://github.com/NootInc/WhateverRed sources.

 

Install in opencore/kexts (edit the info.plist and change 0x6611 to your card id)

 

Errors from metal loading will show up in /Library/Logs/DiagnosticReports

 

Lilu.kext is v1.6.1 (not modded)

 

got this log

Process:               WindowServer [138]
Path:                  /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/Resources/WindowServer
Identifier:            WindowServer
Version:               600.00 (588.7)
Code Type:             X86-64 (Native)
Parent Process:        launchd [1]
Responsible:           WindowServer [138]
User ID:               88

Date/Time:             2023-02-23 23:52:50.905 +0000
OS Version:            macOS 11.6 (20G165)
Report Version:        12
Anonymous UUID:        264F7A67-05C1-F4EA-1DF9-6714AFA67B5C


Time Awake Since Boot: 310 seconds

System Integrity Protection: disabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGKILL)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    WATCHDOG, [0x1] monitoring timed out for service
Termination Details:   WATCHDOG, checkin with service: WindowServer returned not alive with context:
is_alive_func returned unhealthy : Display 1127275592 not ready: DisplayID: 0x4330dc48
	No display surface pool available
	Call to GetPixelInformation() with pixel aperture 0xaa failed with code 0xe00002e6
	Call to GetPixelInformation() with pixel apertur
40 seconds since last successful checkin, 20 total successsful checkins sin

Application Specific Information:
StartTime:2023-02-23 23:48:17
GPU:AMD
MetalDevice for accelerator(0x942b): 0x7fe24d90d9e8 (MTLDevice: 0x7fe24dc81000)
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GPP0@1,1/IOPP/VGA@0/ATY,AMD,RadeonFramebuffer@0/AMDFramebufferSI
 
CoreDisplay:
Thu Feb 23 23:48:17 2023: System set to use IOP but no display pipes are present
Thu Feb 23 23:48:17 2023: 	
	0  	    0x7fff2152942d	CoreDisplay::IOPAttachment::IOPAttachment(unsigned long long, unsigned long long, CoreDisplay::DisplayPipe*) + 649
	1  	    0x7fff215ace16	CoreDisplay::DisplayPipe::DisplayPipe(unsigned long long) + 112
	2  	    0x7fff214fd5af	std::__1::unique_ptr<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, CoreDisplay::DisplayPipe>, void*>, std::__1::__hash_node_destructor<std::__1::allocator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, CoreDisplay::DisplayPipe>, void*> > > > std::__1::__hash_table<std::__1::__hash_value_type<unsigned long long, CoreDisplay::DisplayPipe>, std::__1::__unordered_map_hasher<unsigned long long, std::__1::__hash_value_type<unsigned long long, CoreDisplay::DisplayPipe>, std::__1::hash<unsigned long long>, true>, std::__1::__unordered_map_equal<unsigned long long, std::__1::__hash_value_type<un
 
IOPresentment:
T IOPresentmentCreateForRegistryID:3275: 0 0x1000003da
T ioPresentmentGenerateDeviceMap:1662: ndevs 1 (1 1 1 1 0)
T ioPresentmentGenerateDeviceMap:1739: 0 0 0
T ioPresentmentPopulateIOFramebufferEntries:1520: kAGDCVendorInfo 0x1000003e1 0x30000 0x1002
T ioPresentmentPopulateIOFramebufferEntries:1540: kAGDCGPUCapability 0x1000003e1 220 1
F IOPresentmentCreateForRegistryID:3407: iface 0x2002
F IOPresentmentCreateForRegistryID:3466: iface 0x1
IOPresentment Device Map:
   Origin: AGDC
  Devices: {
	0={
		A:0x1c2(IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GPP0@1,1/IOPP/VGA@0),0x3b7(AMDRadeonX4000_AMDTahitiGraphicsAccelerator),37931, C:0x1c2,0x3e1(AtiDeviceControl),30727, F:0x1c2,0x3da(ATY,AMD,RadeonFramebuffer@0/AMDFramebufferSI),37635,0}}
 
gpu 0xeca6 flags 0xbe000020 (DG,bit25,bit26,bit27,bit28,bit29,bit31) vid.did=1002.6611 b:d:f=1:0:0 
gpu 0xeca6        pci 0x1000001c2 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GPP0@1,1/IOPP/VGA@0
gpu 0xeca6       agdc 0x1000003e1     /AtiDeviceControl
gpu 0xeca6       gpuc 0x100000393     /AMD7000ControllerWrangler
gpu 0xeca6 agdpclient 0x000000000 
gpu 0xeca6      accel 0x1000003b7     /AMDRadeonX4000_AMDTahitiGraphicsAccelerator
gpu 0xeca6      fb0:0 0x1000003da     /ATY,AMD,RadeonFramebuffer@0/AMDFramebufferSI
 
 
boot-args: -no-compat-check npci=0x2000 keepsyms=1 alcid=11

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fff2031c2ba mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x00007fff2031c62c mach_msg + 60
2   com.apple.SkyLight            	0x00007fff24db7c45 CGXRunOneServicesPass + 767
3   com.apple.SkyLight            	0x00007fff24db8d8f server_loop + 91
4   com.apple.SkyLight            	0x00007fff24db8b61 SLXServer + 1889
5   WindowServer                  	0x000000010f019320 0x10f016000 + 13088
6   libdyld.dylib                 	0x00007fff2036cf3d start + 1

 

 

WhateverRed.kext-frame.zip Lilu.kext.zip WhateverRed.kext-metal.zip

Edited by jalavoui
Link to comment
Share on other sites

I have no idea how I did this...

 

Install to OC/Kexts with lilu version (1.6.1)

 

fake id I used is 0x6820

 

I disabled the IGPU with

Device (GP17)
            {
                Name (_ADR, 0x00080001)  // _ADR: Address

                Device (VGA)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        Return (Zero)
                    }
                }
            }

current gpu setting is

Device (GPP0)
            {
                Name (_ADR, 0x00010001)  // _ADR: Address
                Device (VGA)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        Store (Package (0x02)
                            {
                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

                Device (HDAU)
                {
                    Name (_ADR, One)  // _ADR: Address
                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        Store (Package (0x04)
                            {
                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }, 

                                "layout-id", 
                                Buffer (0x04)
                                {
                                     0x01, 0x00, 0x00, 0x00                         
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

Screenshot 2023-02-24 at 22.07.18.png

 

with fake id 0x679a I got the Tahiti opengll profile enabled !

 

 

WhateverRed.kext.zip

Lilu.kext.zip

Screenshot 2023-02-24 at 22.18.43.png

Screenshot 2023-02-25 at 00.25.09.png

 

UPDATE: atm the driver doesn't work on cold boot, you need to boot to windows/linux and then reboot to Mac OS to make it work

 

Edited by jalavoui
Link to comment
Share on other sites

DRM works on Mojave (no need to rename VGA to GFX0, etc)

 

on Big Sur there's an extra validation at some point

 

GVA error: AVDGetGPUAccelerators, no plugin

 

WTF...

Screenshot 2023-02-27 at 16.40.49.png

 

the bug is caused by bad AMDRadeonVADriver.bundle in cache

patching the code gives this error

the AppleGVA tries to load the plugin from /Library/GPUBundlesthe if it fails it goes to S/L/E

placing a AMDRadeonVADriver.bundle from Catalina on L/G and fix the permissions root:wheel and +x execute bit allows the plugin to load without errors (need reboot) - but it still fails at final stage (no plugin error)

 

UPDATE:

Fixed loading with IOGVACodec = VCE in accelerator info.plist but other GVA errors persist

 

 

Screenshot 2023-02-28 at 18.09.37.png

 

This is a test in Mojave with VCE enabled (hack in 4000 kext) 

2023-03-02 23:24:46.974 Df QuickTime Player[444:139b] (AppleGVA) GVA error: AVD_api.Create failed err=5
2023-03-02 23:24:46.974 Df QuickTime Player[444:139b] (AppleGVA) GVA error: Flow_QT0::physicalAcceleratorDispose, m_physical_accel_created == false
2023-03-02 23:24:47.010 Df QuickTime Player[444:139b] (AppleGVA) GVA error: AVD_api.Create failed err=5
2023-03-02 23:24:47.010 Df QuickTime Player[444:139b] (AppleGVA) GVA error: Flow_QT0::physicalAcceleratorDispose, m_physical_accel_created == false
2023-03-02 23:25:09.944 Df iTunes[531:14e4] (AppleGVA) GVA info: AVDLoadAllAccelerators metalId: 0, metalIdIsValid: 0, needToLoad: 1, gRefCount: 0
2023-03-02 23:25:09.944 Df iTunes[531:14e4] (AppleGVA) GVA info: plugin is ATI.
2023-03-02 23:25:09.945 Df iTunes[531:14e4] (AppleGVA) GVA error: AVD_api.Create failed err=5
2023-03-02 23:25:09.945 Df iTunes[531:14e4] (AppleGVA) GVA error: flow_KE1 physicalAcceleratorCreate 7
2023-03-02 23:25:09.998 Df iTunes[531:14d5] (AppleGVA) GVA info: AVDLoadAllAccelerators metalId: 0, metalIdIsValid: 0, needToLoad: 0, gRefCount: 1
2023-03-02 23:25:09.998 Df iTunes[531:14d5] (AppleGVA) GVA info: plugin is ATI.
2023-03-02 23:25:09.999 Df iTunes[531:14d5] (AppleGVA) GVA error: AVD_api.Create failed err=5
2023-03-02 23:25:09.999 Df iTunes[531:14d5] (AppleGVA) GVA error: Flow_QT0::physicalAcceleratorDispose, m_physical_accel_created == false
2023-03-02 23:25:09.999 Df iTunes[531:14d5] (AppleGVA) GVA error: bail with error = -12913
2023-03-02 23:25:10.030 Df iTunes[531:14d5] (AppleGVA) GVA info: AVDLoadAllAccelerators metalId: 0, metalIdIsValid: 0, needToLoad: 0, gRefCount: 2
2023-03-02 23:25:10.030 Df iTunes[531:14d5] (AppleGVA) GVA info: plugin is ATI.
2023-03-02 23:25:10.031 Df iTunes[531:14d5] (AppleGVA) GVA error: AVD_api.Create failed err=5
2023-03-02 23:25:10.031 Df iTunes[531:14d5] (AppleGVA) GVA error: Flow_QT0::physicalAcceleratorDispose, m_physical_accel_created == false
2023-03-02 23:25:10.031 Df iTunes[531:14d5] (AppleGVA) GVA error: bail with error = -12913

 

Edited by jalavoui
Link to comment
Share on other sites

  • 2 weeks later...

the driver is very stable on big sur

 

i'd like to run a test on ventura

 

can some1 extract the ventura kexts with this utility and post them here?

 

link to tool is https://github.com/keith/dyld-shared-cache-extractor

 

path to ventura not the same as big sur

 

on big sur i use dyld-733.8/dyld_shared_cache_util -extract xxx /System/Library/dyld/dyld_shared_cache_x86_64h

 

update:

got the kexts from Kernel_Debug_Kit - tks

 

 

 

dyld_shared_cache_util.zip

Edited by jalavoui
Link to comment
Share on other sites

On 3/20/2023 at 6:42 PM, jalavoui said:

the driver is very stable on big sur

 

i'd like to run a test on ventura

 

can some1 extract the ventura kexts with this utility and post them here?

 

 

dyld_shared_cache_util.zip 522.41 kB · 2 downloads

I can but I don't know what to do exactly.

 

Usage: dyld_shared_cache_util -list [ -uuid ] [-vmaddr] | -dependents <dylib-path> [ -versions ] | -linkedit | -map | -slide_info | -verbose_slide_info | -info | -extract <dylib-dir>  [ shared-cache-file ] 

Link to comment
Share on other sites

 Share

×
×
  • Create New...