70 replies to this topic
#61
Posted 15 October 2006 - 03:33 AM
Any good news to report, joblo
#62
Posted 05 December 2006 - 08:41 PM
Did this project die?
#63
Posted 05 December 2006 - 11:19 PM
#64
Posted 05 December 2006 - 11:22 PM
The project was put on halt, so in a sense, yes, it is dead.
#65
Posted 10 June 2007 - 07:29 AM
x850 pro (r481) qe/ci can work ?
#66
Posted 16 January 2008 - 10:03 AM
#67
Posted 16 January 2008 - 10:26 AM
Keep in mind I made that post a year ago
#68
Posted 06 February 2008 - 12:32 PM
based on IOGraphics-191.5.tar.gz archive from Darwin
interesting fact was found from IONDRVFramebuffer.cpp:
IONDRVFramebuffer is no longer manage graphic card framebuffer directly,
instead it forwarding all requests/messages to appropriate display driver
for example IONDRVFramebuffer::setGammaTable
IOReturn IONDRVFramebuffer::setGammaTable( UInt32 channelCount, UInt32 dataCount, UInt32 dataWidth, void * data )
is sending cursor information to packager _doControl
IOReturn IONDRVFramebuffer::_doControl( IONDRVFramebuffer * self, UInt32 code, void * params )
which is sending command kIONDRVControlCommand type of kIONDRVImmediateIOCommandKind
to dispatcher doDriverIO
IOReturn IONDRVFramebuffer::doDriverIO( UInt32 commandID, void * contents, UInt32 commandCode, UInt32 commandKind )
which is retrieving display driver from NUB
ndrv = IOBootNDRV::fromRegistryEntry( nub );
and forwarding command to it's own dispatcher with same name doDriverIO
err = ndrv->doDriverIO( commandID, contents, commandCode, commandKind );
ndrv itself is a member of class IONDRVFramebuffer
class IONDRV * ndrv;
and, the only method ndrv->doDriverIO (IONDRV::doDriverIO) was found, is in
class IOBootNDRV : public IONDRV (inherited from IONDRV), but virtual one:
IOReturn IOBootNDRV::doDriverIO( UInt32 commandID, void * contents,
UInt32 commandCode, UInt32 commandKind )
which is doing actual command dispatching (depends on control or status)
switch (commandCode)
{
case kIONDRVInitializeCommand:
case kIONDRVOpenCommand:
ret = kIOReturnSuccess;
break;
case kIONDRVControlCommand:
ret = doControl( pb->code, pb->params );
break;
case kIONDRVStatusCommand:
ret = doStatus( pb->code, pb->params );
break;
default:
ret = kIOReturnUnsupported;
break;
}
which is sent then forward to doControl
IOReturn IOBootNDRV::doControl( UInt32 code, void * params )
which is handing orders (commands), example setting Gamma:
switch (code)
{
case cscSetEntries:
case cscSetGamma:
ret = kIOReturnSuccess;
break;
default:
ret = kIOReturnUnsupported;
break;
}
return (ret);
another dispatcher was found in same archive in another source IONDRV.cpp:
inside class IOPEFNDRV : public IONDRV
IOReturn IOPEFNDRV::doDriverIO( UInt32 commandID, void * contents,
UInt32 commandCode, UInt32 commandKind )
but following one does almost nothing with commands:
switch (commandCode)
{
case kIONDRVReplaceCommand:
case kIONDRVInitializeCommand:
err = _IONDRVLibrariesInitialize( (IOService *) contents );
if (kIOReturnSuccess != err)
break;
/* fall thru */
case kIONDRVFinalizeCommand:
case kIONDRVSupersededCommand:
initInfo.refNum = 0xffff & ((UInt32) this);
MAKE_REG_ENTRY((&initInfo.deviceEntry), contents)
contents = &initInfo;
break;
case kIONDRVControlCommand:
case kIONDRVStatusCommand:
case kIONDRVOpenCommand:
case kIONDRVCloseCommand:
case kIONDRVReadCommand:
case kIONDRVWriteCommand:
case kIONDRVKillIOCommand:
pb = (CntrlParam *) contents;
pb->qLink = 0;
pb->ioCRefNum = 0xffff & ((UInt32) this);
break;
}
most of the commands seems to be just ignored
my question is:
if class IOATYNDRV(or some other name) : public IONDRV inheritance with proper methods implementation, is all what we need for framebuffer functionality on osx86 with ATI chipset?
interesting fact was found from IONDRVFramebuffer.cpp:
IONDRVFramebuffer is no longer manage graphic card framebuffer directly,
instead it forwarding all requests/messages to appropriate display driver
for example IONDRVFramebuffer::setGammaTable
IOReturn IONDRVFramebuffer::setGammaTable( UInt32 channelCount, UInt32 dataCount, UInt32 dataWidth, void * data )
is sending cursor information to packager _doControl
IOReturn IONDRVFramebuffer::_doControl( IONDRVFramebuffer * self, UInt32 code, void * params )
which is sending command kIONDRVControlCommand type of kIONDRVImmediateIOCommandKind
to dispatcher doDriverIO
IOReturn IONDRVFramebuffer::doDriverIO( UInt32 commandID, void * contents, UInt32 commandCode, UInt32 commandKind )
which is retrieving display driver from NUB
ndrv = IOBootNDRV::fromRegistryEntry( nub );
and forwarding command to it's own dispatcher with same name doDriverIO
err = ndrv->doDriverIO( commandID, contents, commandCode, commandKind );
ndrv itself is a member of class IONDRVFramebuffer
class IONDRV * ndrv;
and, the only method ndrv->doDriverIO (IONDRV::doDriverIO) was found, is in
class IOBootNDRV : public IONDRV (inherited from IONDRV), but virtual one:
IOReturn IOBootNDRV::doDriverIO( UInt32 commandID, void * contents,
UInt32 commandCode, UInt32 commandKind )
which is doing actual command dispatching (depends on control or status)
switch (commandCode)
{
case kIONDRVInitializeCommand:
case kIONDRVOpenCommand:
ret = kIOReturnSuccess;
break;
case kIONDRVControlCommand:
ret = doControl( pb->code, pb->params );
break;
case kIONDRVStatusCommand:
ret = doStatus( pb->code, pb->params );
break;
default:
ret = kIOReturnUnsupported;
break;
}
which is sent then forward to doControl
IOReturn IOBootNDRV::doControl( UInt32 code, void * params )
which is handing orders (commands), example setting Gamma:
switch (code)
{
case cscSetEntries:
case cscSetGamma:
ret = kIOReturnSuccess;
break;
default:
ret = kIOReturnUnsupported;
break;
}
return (ret);
another dispatcher was found in same archive in another source IONDRV.cpp:
inside class IOPEFNDRV : public IONDRV
IOReturn IOPEFNDRV::doDriverIO( UInt32 commandID, void * contents,
UInt32 commandCode, UInt32 commandKind )
but following one does almost nothing with commands:
switch (commandCode)
{
case kIONDRVReplaceCommand:
case kIONDRVInitializeCommand:
err = _IONDRVLibrariesInitialize( (IOService *) contents );
if (kIOReturnSuccess != err)
break;
/* fall thru */
case kIONDRVFinalizeCommand:
case kIONDRVSupersededCommand:
initInfo.refNum = 0xffff & ((UInt32) this);
MAKE_REG_ENTRY((&initInfo.deviceEntry), contents)
contents = &initInfo;
break;
case kIONDRVControlCommand:
case kIONDRVStatusCommand:
case kIONDRVOpenCommand:
case kIONDRVCloseCommand:
case kIONDRVReadCommand:
case kIONDRVWriteCommand:
case kIONDRVKillIOCommand:
pb = (CntrlParam *) contents;
pb->qLink = 0;
pb->ioCRefNum = 0xffff & ((UInt32) this);
break;
}
most of the commands seems to be just ignored
my question is:
if class IOATYNDRV(or some other name) : public IONDRV inheritance with proper methods implementation, is all what we need for framebuffer functionality on osx86 with ATI chipset?
#69
Posted 08 February 2008 - 10:01 PM
There is a test package to try ? I have an X600 Mobility that is running in software mode now ...
#70
Posted 25 March 2008 - 08:14 PM
ole2, on Jan 16 2008, 06:03 AM, said:
not exactly dead,
ole2 and slice are working on it now
ole2 and slice are working on it now
#71
Posted 31 March 2008 - 01:49 PM
Joblo abandon the ship so I think it is better to close the thread and I begin new one.
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users



Sign In
Create Account
This topic is locked








