enable bios.c in Jamfile; impliment malloc/free/delay Cail callbacks; stub out rest of the Cail callbacks for now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41137 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -12,7 +12,7 @@ Addon radeon_hd.accelerant :
|
|||||||
engine.cpp
|
engine.cpp
|
||||||
hooks.cpp
|
hooks.cpp
|
||||||
mode.cpp
|
mode.cpp
|
||||||
# bios.cpp
|
bios.cpp
|
||||||
: be libaccelerantscommon.a atombios.a
|
: be libaccelerantscommon.a atombios.a
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@@ -54,3 +54,164 @@ AtomParser(void *parameterSpace, uint8_t index, void *handle, void *biosBase)
|
|||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Begin AtomBIOS OS callbacks
|
||||||
|
These functions are used by AtomBios to access
|
||||||
|
functions and data provided by the accelerant
|
||||||
|
*/
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
|
||||||
|
VOID*
|
||||||
|
CailAllocateMemory(VOID *CAIL, UINT16 size)
|
||||||
|
{
|
||||||
|
return malloc(size);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
CailReleaseMemory(VOID *CAIL, VOID *addr)
|
||||||
|
{
|
||||||
|
free(addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
CailDelayMicroSeconds(VOID *CAIL, UINT32 delay)
|
||||||
|
{
|
||||||
|
usleep(delay);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
UINT32
|
||||||
|
CailReadATIRegister(VOID* CAIL, UINT32 idx)
|
||||||
|
{
|
||||||
|
// TODO : CailReadATIRegister
|
||||||
|
|
||||||
|
UINT32 ret = 0;
|
||||||
|
// ret = RHDRegRead(((atomBiosHandlePtr)CAIL), idx << 2);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
CailWriteATIRegister(VOID *CAIL, UINT32 idx, UINT32 data)
|
||||||
|
{
|
||||||
|
// TODO : CailWriteATIRegister
|
||||||
|
|
||||||
|
// atomSaveRegisters((atomBiosHandlePtr)CAIL, atomRegisterMMIO, idx << 2);
|
||||||
|
// RHDRegWrite(((atomBiosHandlePtr)CAIL), idx << 2a, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
CailReadPCIConfigData(VOID *CAIL, VOID* ret, UINT32 idx, UINT16 size)
|
||||||
|
{
|
||||||
|
// TODO : CailReadPCIConfigData
|
||||||
|
|
||||||
|
// pci_device_cfg_read(RHDPTRI((atomBiosHandlePtr)CAIL)->PciInfo,
|
||||||
|
// ret, idx << 2 , size >> 3, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
CailWritePCIConfigData(VOID *CAIL, VOID *src, UINT32 idx, UINT16 size)
|
||||||
|
{
|
||||||
|
// TODO : CailWritePCIConfigData
|
||||||
|
|
||||||
|
// atomSaveRegisters((atomBiosHandlePtr)CAIL, atomRegisterPCICFG, idx << 2);
|
||||||
|
// pci_device_cfg_write(RHDPTRI((atomBiosHandlePtr)CAIL)->PciInfo,
|
||||||
|
// src, idx << 2, size >> 3, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
CailReadPLL(VOID *CAIL, ULONG Address)
|
||||||
|
{
|
||||||
|
// TODO : CailReadPLL
|
||||||
|
|
||||||
|
ULONG ret = 0;
|
||||||
|
// ret = _RHDReadPLL(((atomBiosHandlePtr)CAIL)->scrnIndex, Address);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
CailWritePLL(VOID *CAIL, ULONG Address, ULONG Data)
|
||||||
|
{
|
||||||
|
// TODO : CailWritePLL
|
||||||
|
|
||||||
|
// atomSaveRegisters((atomBiosHandlePtr)CAIL, atomRegisterPLL, Address);
|
||||||
|
// _RHDWritePLL(((atomBiosHandlePtr)CAIL)->scrnIndex, Address, Data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
CailReadMC(VOID *CAIL, ULONG Address)
|
||||||
|
{
|
||||||
|
// TODO : CailReadMC
|
||||||
|
|
||||||
|
ULONG ret = 0;
|
||||||
|
|
||||||
|
// ret = RHDReadMC(((atomBiosHandlePtr)CAIL), Address | MC_IND_ALL);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
CailWriteMC(VOID *CAIL, ULONG Address, ULONG data)
|
||||||
|
{
|
||||||
|
// TODO : CailWriteMC
|
||||||
|
|
||||||
|
// atomSaveRegisters((atomBiosHandlePtr)CAIL, atomRegisterMC, Address);
|
||||||
|
// RHDWriteMC(((atomBiosHandlePtr)CAIL),
|
||||||
|
// Address | MC_IND_ALL | MC_IND_WR_EN, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
UINT32
|
||||||
|
CailReadFBData(VOID* CAIL, UINT32 idx)
|
||||||
|
{
|
||||||
|
// TODO : CailReadFBData
|
||||||
|
|
||||||
|
UINT32 ret = 0;
|
||||||
|
/*
|
||||||
|
if (((atomBiosHandlePtr)CAIL)->fbBase) {
|
||||||
|
CARD8 *FBBase = (CARD8*)
|
||||||
|
RHDPTRI((atomBiosHandlePtr)CAIL)->FbBase;
|
||||||
|
ret = *((CARD32*)(FBBase + (((atomBiosHandlePtr)CAIL)->fbBase)
|
||||||
|
+ idx));
|
||||||
|
TRACE(("%s(%x) = %x\n", __func__, idx, ret));
|
||||||
|
} else if (((atomBiosHandlePtr)CAIL)->scratchBase) {
|
||||||
|
ret = *(CARD32*)((CARD8*)(((atomBiosHandlePtr)CAIL)->scratchBase)
|
||||||
|
+ idx);
|
||||||
|
TRACE(("%s(%x) = %x\n", __func__, idx, ret));
|
||||||
|
} else {
|
||||||
|
TRACE(("%s: no fbbase set\n", __func__));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VOID
|
||||||
|
CailWriteFBData(VOID *CAIL, UINT32 idx, UINT32 data)
|
||||||
|
{
|
||||||
|
// TODO : CailReadFBData
|
||||||
|
|
||||||
|
TRACE(("%s(%x) = %x\n", __func__, idx, data));
|
||||||
|
/*
|
||||||
|
if (((atomBiosHandlePtr)CAIL)->fbBase) {
|
||||||
|
CARD8 *FBBase = (CARD8*)
|
||||||
|
RHDPTRI((atomBiosHandlePtr)CAIL)->FbBase;
|
||||||
|
*((CARD32*)(FBBase + (((atomBiosHandlePtr)CAIL)->fbBase) + idx)) = data;
|
||||||
|
} else if (((atomBiosHandlePtr)CAIL)->scratchBase) {
|
||||||
|
*(CARD32*)((CARD8*)(((atomBiosHandlePtr)CAIL)->scratchBase) + idx) = data;
|
||||||
|
} else
|
||||||
|
TRACE(("%s: no fbbase set\n", __func__));
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} // end extern "C"
|
||||||
|
|||||||
Reference in New Issue
Block a user