1 /* 2 * PROJECT: ReactOS Boot Loader 3 * LICENSE: BSD - See COPYING.ARM in the top level directory 4 * FILE: boot/freeldr/freeldr/include/arch/arm/hardware.h 5 * PURPOSE: Header for ARC definitions (to be cleaned up) 6 * PROGRAMMERS: ReactOS Portable Systems Group 7 */ 8 9 #pragma once 10 11 #ifndef __REGISTRY_H 12 //#include "../../reactos/registry.h" 13 #endif 14 15 #include "../../../../../armllb/inc/osloader.h" 16 #include "../../../../../armllb/inc/machtype.h" 17 18 #define FREELDR_BASE 0x0001F000 19 #define FREELDR_PE_BASE 0x0001F000 20 #define MAX_FREELDR_PE_SIZE 0xFFFFFF 21 22 extern PARM_BOARD_CONFIGURATION_BLOCK ArmBoardBlock; 23 extern ULONG FirstLevelDcacheSize; 24 extern ULONG FirstLevelDcacheFillSize; 25 extern ULONG FirstLevelIcacheSize; 26 extern ULONG FirstLevelIcacheFillSize; 27 extern ULONG SecondLevelDcacheSize; 28 extern ULONG SecondLevelDcacheFillSize; 29 extern ULONG SecondLevelIcacheSize; 30 extern ULONG SecondLevelIcacheFillSize; 31 32 extern ULONG gDiskReadBuffer, gFileSysBuffer; 33 #define DiskReadBuffer ((PVOID)gDiskReadBuffer) 34 35 #define DriveMapGetBiosDriveNumber(DeviceName) 0 36 Reboot(VOID)37FORCEINLINE VOID Reboot(VOID) 38 { 39 DbgBreakPoint(); 40 } 41 42 typedef struct _PAGE_TABLE_ARM 43 { 44 HARDWARE_PTE_ARMV6 Pte[1024]; 45 } PAGE_TABLE_ARM, *PPAGE_TABLE_ARM; 46 C_ASSERT(sizeof(PAGE_TABLE_ARM) == PAGE_SIZE); 47 48 typedef struct _PAGE_DIRECTORY_ARM 49 { 50 union 51 { 52 HARDWARE_PDE_ARMV6 Pde[4096]; 53 HARDWARE_LARGE_PTE_ARMV6 Pte[4096]; 54 }; 55 } PAGE_DIRECTORY_ARM, *PPAGE_DIRECTORY_ARM; 56 C_ASSERT(sizeof(PAGE_DIRECTORY_ARM) == (4 * PAGE_SIZE)); 57 58 // FIXME: sync with NDK 59 typedef enum _ARM_DOMAIN 60 { 61 FaultDomain, 62 ClientDomain, 63 InvalidDomain, 64 ManagerDomain 65 } ARM_DOMAIN; 66 67 #define PDE_SHIFT 20 68