Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenhwinit.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/omap3-zoom2/hwinit.c 00005 * PURPOSE: LLB UART Initialization Routines for OMAP3 ZOOM2 00006 * PROGRAMMERS: ReactOS Portable Systems Group 00007 */ 00008 00009 #include "precomp.h" 00010 00011 // 00012 // OMAP3 Memory Map 00013 // 00014 // 0x00000000 - 0x3FFFFFFF GPMC [ 1 GB] 00015 // 0x40000000 - 0x47FFFFFF On-Chip Memory (ROM/SRAM Address Space) [128 MB] 00016 // 0x48000000 - 0x4FFFFFFF L4 Interconnects (All system peripherals)[128 MB] 00017 // 0x50000000 - 0x53FFFFFF SGX Graphics Accelerator Slave Port [ 64 MB] 00018 // 0x54000000 - 0x57FFFFFF L4 Emulation [128 MB] 00019 // 0x58000000 - 0x58FFFFFF Reserved [ 64 MB] 00020 // 0x5C000000 - 0x5FFFFFFF IVA2.2 Subsystem [ 64 MB] 00021 // 0x60000000 - 0x67FFFFFF Reserved [128 MB] 00022 // 0x68000000 - 0x6FFFFFFF L3 Interconnect (Control Registers) [128 MB] 00023 // 0x70000000 - 0x7FFFFFFF SDRC/SMS Virtual Address Space 0 [256 MB] 00024 // 0x80000000 - 0x9FFFFFFF SDRC/SMS CS0 SDRAM [512 MB] 00025 // 0x80000000 - 0x80FFFFFF KERNEL, HAL, BOOT DRIVERS [ 16 MB] 00026 // THIS IS THE x86-STYLE "LOW 1MB" THAT IS IDENTITY MAPPED 00027 // 0x81000000 - 0x8100FFFF ARM LLB [ 64 KB] 00028 // 0x81010000 - 0x81013FFF ARM BOOT STACK [ 16 KB] 00029 // 0x81014000 - 0x81073FFF ARM FRAMEBUFFER [384 KB] 00030 // 0x81070000 - 0x81093FFF ARM OS LOADER [128 KB] 00031 // 0x81094000 - 0x810FFFFF RESERVED FOR BOOT LOADER EXPANSION [432 KB] 00032 // END OF THE x86-STYLE "LOW 1MB" THAT IS IDENTITY MAPPED 00033 // 0x81100000 - 0x8FFFFFFF FREE RAM [ 15 MB] 00034 // 0x82000000 - 0x83FFFFFF ARM RAMDISK [ 32 MB] 00035 // 0x84000000 - 0x8FFFFFFF FREE RAM [192 MB] 00036 // 0x90000000 - 0x9FFFFFFF FREE RAM IF > 256MB INSTALLED [256 MB] 00037 // 0xA0000000 - 0xBFFFFFFF SDRC/SMS CS1 SDRAM [512 MB] 00038 // 0xA0000000 - 0xAFFFFFFF FREE RAM IF > 512MB INSTALLED [256 MB] 00039 // 0xB0000000 - 0xBFFFFFFF FREE RAM IF > 768MB INSTALLED [256 MB] 00040 // 0xC0000000 - 0xDFFFFFFF Reserved [512 MB] 00041 // 0xE0000000 - 0xFFFFFFFF SDRC/SMS Virtual Address Space 1 [512 MB] 00042 BIOS_MEMORY_MAP LlbHwOmap3MemoryMap[] = 00043 { 00044 {0x00000000, 0x80000000, BiosMemoryReserved, 0}, /* Device Registers */ 00045 {0x80000000, 0x01000000, BiosMemoryUsable, 0}, /* 16 MB RAM for Kernel map */ 00046 {0x81000000, 0x00010000, BiosMemoryBootLoader, 0}, /* Arm LLB */ 00047 {0x81010000, 0x00004000, BiosMemoryBootStrap, 0}, // LLB Stack 00048 {0x81014000, 0x00060000, BiosMemoryBootLoader, 0}, /* Kernel Framebuffer */ 00049 {0x81070000, 0x00020000, BiosMemoryBootStrap, 0}, /* ARM OS Loader */ 00050 {0x81094000, 0x0006C000, BiosMemoryBootStrap, 0}, /* ARM OS Loader Expansion */ 00051 {0x81100000, 0x00F00000, BiosMemoryUsable, 0}, /* 15 MB Free RAM */ 00052 {0x82000000, 0x02000000, BiosMemoryBootStrap, 0}, /* 32MB RAMDISK */ 00053 {0x84000000, 0x0C000000, BiosMemoryUsable, 0}, /* 192 MB Free RAM */ 00054 {0x90000000, 0x70000000, BiosMemoryReserved, 0}, 00055 {0, 0, 0, 0} 00056 }; 00057 00058 VOID 00059 NTAPI 00060 LlbHwBuildMemoryMap(IN PBIOS_MEMORY_MAP MemoryMap) 00061 { 00062 PBIOS_MEMORY_MAP MapEntry; 00063 ULONG Base, Size, FsBase, FsSize; 00064 00065 /* Parse hardware memory map */ 00066 MapEntry = LlbHwOmap3MemoryMap; 00067 while (MapEntry->Length) 00068 { 00069 /* Add this entry */ 00070 LlbAllocateMemoryEntry(MapEntry->Type, MapEntry->BaseAddress, MapEntry->Length); 00071 00072 /* Move to the next one */ 00073 MapEntry++; 00074 } 00075 00076 /* Query memory and RAMDISK information */ 00077 LlbEnvGetMemoryInformation(&Base, &Size); 00078 LlbEnvGetRamDiskInformation(&FsBase, &FsSize); 00079 if (!FsSize) return; 00080 #ifdef _BEAGLE_ 00081 /* Add-in the size of the ramdisk */ 00082 Base = FsBase + FsSize; 00083 00084 /* Subtract size of ramdisk and anything else before it */ 00085 Size -= Base; 00086 00087 /* Allocate an entry for it */ 00088 LlbAllocateMemoryEntry(BiosMemoryUsable, Base, Size); 00089 #endif 00090 } 00091 00092 VOID 00093 NTAPI 00094 LlbHwInitialize(VOID) 00095 { 00096 /* Setup the UART (NS16550) */ 00097 LlbHwOmap3UartInitialize(); 00098 00099 /* Setup the NEC WVGA LCD Panel and the Display Controller */ 00100 LlbHwOmap3LcdInitialize(); 00101 00102 /* Setup the keyboard */ 00103 LlbHwOmap3SynKpdInitialize(); 00104 } 00105 00106 /* EOF */ Generated on Sun May 27 2012 04:19:00 for ReactOS by
1.7.6.1
|