Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenhwinfo.c
Go to the documentation of this file.
00001 /* 00002 * PROJECT: ReactOS Boot Loader 00003 * LICENSE: BSD - See COPYING.ARM in the top level directory 00004 * FILE: boot/armllb/hw/versatile/hwinfo.c 00005 * PURPOSE: LLB Hardware Info Routines 00006 * PROGRAMMERS: ReactOS Portable Systems Group 00007 */ 00008 00009 #include "precomp.h" 00010 00011 #define PL031_RTC_DR (LlbHwVersaRtcBase + 0x00) 00012 static const ULONG LlbHwVersaRtcBase = 0x101E8000; 00013 00014 ULONG 00015 NTAPI 00016 LlbHwGetBoardType(VOID) 00017 { 00018 return MACH_TYPE_VERSATILE_PB; 00019 } 00020 00021 ULONG 00022 NTAPI 00023 LlbHwGetPClk(VOID) 00024 { 00025 return 24000000; 00026 } 00027 00028 ULONG 00029 NTAPI 00030 LlbHwGetTmr0Base(VOID) 00031 { 00032 return 0x101E2000; 00033 } 00034 00035 ULONG 00036 NTAPI 00037 LlbHwGetSerialUart(VOID) 00038 { 00039 return 0; 00040 } 00041 00042 // 00043 // Versatile Memory Map 00044 // 00045 // 0x00000000 - 0x000000FF ARM Vectors [ 1 KB] 00046 // 0x00000100 - 0x000001FF ATAG Structures [ 1 KB] 00047 // 0x00000200 - 0x0000FFFF ARM STACK [ 62 KB] 00048 // 0x00010000 - 0x0001FFFF ARM LLB [ 64 KB] 00049 // 0x00020000 - 0x0009FFFF ARM OS LOADER [512 KB] 00050 // 0x000A0000 - 0x0013FFFF ARM FRAMEBUFFER [640 KB] 00051 // 0x00140000 - 0x007FFFFF OS LOADER FREE/UNUSED [ 6 MB] 00052 // 0x00800000 - 0x017FFFFF KERNEL, HAL, INITIAL DRIVER LOAD ADDR [ 16 MB] 00053 // 0x01800000 - 0x037FFFFF RAM DISK [ 32 MB] 00054 // 0x03800000 - 0x07FFFFFF FREE RAM [ 72 MB] 00055 // 0x08000000 - 0x0FFFFFFF FREE RAM IF 256MB DEVICE [128 MB] 00056 // 0x10000000 - 0x1FFFFFFF MMIO DEVICES [256 MB] 00057 BIOS_MEMORY_MAP LlbHwVersaMemoryMap[] = 00058 { 00059 {0x00000000, 0x00000100, BiosMemoryReserved, 0}, 00060 {0x00000100, 0x00000100, BiosMemoryBootStrap, 0}, 00061 {0x00000200, 0x0000FE00, BiosMemoryBootStrap, 0}, 00062 {0x00010000, 0x00010000, BiosMemoryBootStrap, 0}, 00063 {0x00020000, 0x00080000, BiosMemoryBootLoader, 0}, 00064 {0x000A0000, 0x000A0000, BiosMemoryBootLoader, 0}, 00065 {0x00140000, 0x016C0000, BiosMemoryUsable, 0}, 00066 {0x01800000, 0x02000000, BiosMemoryReserved, 0}, 00067 {0x10000000, 0x10000000, BiosMemoryReserved, 0}, 00068 {0, 0, 0, 0} 00069 }; 00070 00071 VOID 00072 NTAPI 00073 LlbHwBuildMemoryMap(IN PBIOS_MEMORY_MAP MemoryMap) 00074 { 00075 PBIOS_MEMORY_MAP MapEntry; 00076 ULONG Base, Size, FsBase, FsSize; 00077 00078 /* Parse hardware memory map */ 00079 MapEntry = LlbHwVersaMemoryMap; 00080 while (MapEntry->Length) 00081 { 00082 /* Add this entry */ 00083 LlbAllocateMemoryEntry(MapEntry->Type, MapEntry->BaseAddress, MapEntry->Length); 00084 00085 /* Move to the next one */ 00086 MapEntry++; 00087 } 00088 00089 /* Query memory and RAMDISK information */ 00090 LlbEnvGetMemoryInformation(&Base, &Size); 00091 LlbEnvGetRamDiskInformation(&FsBase, &FsSize); 00092 00093 /* Add-in the size of the ramdisk */ 00094 Base = FsBase + FsSize; 00095 00096 /* Subtract size of ramdisk and anything else before it */ 00097 Size -= Base; 00098 00099 /* Allocate an entry for it */ 00100 LlbAllocateMemoryEntry(BiosMemoryUsable, Base, Size); 00101 } 00102 00103 ULONG 00104 LlbHwRtcRead(VOID) 00105 { 00106 /* Read RTC value */ 00107 return READ_REGISTER_ULONG(PL031_RTC_DR); 00108 } 00109 /* EOF */ Generated on Mon May 28 2012 04:18:37 for ReactOS by
1.7.6.1
|