1 /* 2 * PROJECT: ReactOS Boot Loader 3 * LICENSE: BSD - See COPYING.ARM in the top level directory 4 * FILE: boot/armllb/hw/versatile/hwinit.c 5 * PURPOSE: LLB Hardware Initialization Routines for Versatile 6 * PROGRAMMERS: ReactOS Portable Systems Group 7 */ 8 9 #include "precomp.h" 10 11 VOID 12 NTAPI 13 LlbHwInitialize(VOID) 14 { 15 /* Setup the CLCD (PL110) */ 16 LlbHwVersaClcdInitialize(); 17 18 /* Setup the UART (PL011) */ 19 LlbHwVersaUartInitialize(); 20 21 /* Setup the KMI (PL050) */ 22 LlbHwVersaKmiInitialize(); 23 } 24 25 // 26 // Should go to hwdev.c 27 // 28 POSLOADER_INIT 29 NTAPI 30 LlbHwLoadOsLoaderFromRam(VOID) 31 { 32 ULONG Base, RootFs, Size; 33 PCHAR Offset; 34 CHAR CommandLine[64]; 35 36 /* On versatile we load the RAMDISK with initrd */ 37 LlbEnvGetRamDiskInformation(&RootFs, &Size); 38 39 /* The OS Loader is at 0x20000, always */ 40 Base = 0x20000; 41 42 /* Read image offset */ 43 Offset = LlbEnvRead("rdoffset"); 44 45 /* Set parameters for the OS loader */ 46 sprintf(CommandLine, "rdbase=0x%x rdsize=0x%x rdoffset=%s", RootFs, Size, Offset); 47 LlbSetCommandLine(CommandLine); 48 49 /* Return the OS loader base address */ 50 return (POSLOADER_INIT)Base; 51 } 52 53 54 /* EOF */ 55