Not sure I understood. Do you mean that you boot Mavericks with the 32bits ML DP1 kernel?
If you were referring to me I used the X3100 only as an example. I worded it wrong. With "not supported" I meant not working. But at least the Frame Buffer partially works with the 64 bits kernels, that's how people get the GPU identified as GMA X3100 with 144MB of video RAM. It's that the Backlight in both GMA FB kexts is screwed up.
Anyway, not sure if it is something new (it says available in OS X v10.0 and later) but Apple is publishing the APIs for the IOFramebuffer:
https://developer.apple.com/library...nce/index.html#//apple_ref/doc/uid/TP40011779
The IOAccelerator isn't there, though. I double checked few of them from the disassembled code (and cross verified them with the supported ones for HD GPUs), they match.
So now at least for the frame buffer it would be "just" a matter of porting the Linux GMA drivers
http://cgit.freedesktop.org/~danvet/drm-intel/tree/drivers/gpu/drm/i915
to OS X: Any volunteer?
PS: Just a weird note. I tried to recompile with "as" the disassembled kexts - one can get a disassembly with the command
Code:
otool -qXVt <Mach-O executable file>
Xcode must be installed, I presume.
The i386 assembler code compiles (although it is unusable. The disassembly I get has hardwired jumps to fixed memory addresses instead of labels. Then I'm sure something else is missing, like the data section). Recompiling the 64 bits kext I get this:
Code:
admin$ as IntelIFBkext.asm
IntelIFBkext.asm:4228:32-bit absolute addressing is not supported for x86-64
IntelIFBkext.asm:4228:cannot do signed 4 byte relocation
IntelIFBkext.asm:7277:32-bit absolute addressing is not supported for x86-64
IntelIFBkext.asm:7277:cannot do signed 4 byte relocation
Where the two incriminated lines are:
Code:
movl $0x0, __ZN31AppleIntelIntegratedFramebuffer8doActionEPS_jPvS1_S1_(%rax) ## AppleIntelIntegratedFramebuffer::doAction(AppleIntelIntegratedFramebuffer*, unsigned int, void*, void*, void*)
addq $__ZN31AppleIntelIntegratedFramebuffer8doActionEPS_jPvS1_S1_, %rax ## AppleIntelIntegratedFramebuffer::doAction(AppleIntelIntegratedFramebuffer*, unsigned int, void*, void*, void*)
At a first glance it looks like the 64 bits kexts are trying to call a 32 bits API (there is no doAction API in the IOFramebuffer class reference I posted above anyway). One wonders how that ended up there. Unless, seen that the FB kexts aren't fully working, the compiler messed up. I dunno, just guessing.