ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

hwinit.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.