/* Identify the hardware. */
gcmkONERROR(_IdentifyHardwareByDatabase(hardware, Os, Core, &hardware->identity));
+ hardware->mmuVersion = gckHARDWARE_IsFeatureAvailable(hardware, gcvFEATURE_MMU);
+
/* Get the system's physical base address for old MMU */
if (hardware->mmuVersion == 0)
{
hardware->powerMutex = gcvNULL;
- hardware->mmuVersion = gckHARDWARE_IsFeatureAvailable(hardware, gcvFEATURE_MMU);
-
-
/* Determine whether bug fixes #1 are present. */
hardware->extraEventStates = (gckHARDWARE_IsFeatureAvailable(hardware, gcvFEATURE_BUG_FIXES1) == gcvFALSE);
gcmkVERIFY_ARGUMENT(BaseAddress != gcvNULL);
/* Test if we have a new Memory Controller. */
- if (gckHARDWARE_IsFeatureAvailable(Hardware, gcvFEATURE_MMU))
+ if (gckHARDWARE_IsFeatureAvailable(Hardware, gcvFEATURE_MC20))
{
/* No base address required. */
*BaseAddress = 0;
{
case gcvHAL_GET_BASE_ADDRESS:
/* Get base address. */
- gcmkONERROR(
- gckHARDWARE_GetBaseAddress(kernel->hardware, &Interface->u.GetBaseAddress.baseAddress));
-
+ Interface->u.GetBaseAddress.baseAddress = Kernel->hardware->baseAddress;
Interface->u.GetBaseAddress.flatMappingStart = Kernel->mmu->flatMappingStart;
Interface->u.GetBaseAddress.flatMappingEnd = Kernel->mmu->flatMappingEnd;
break;