Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / boot / armllb / hw / versatile / hwinit.c
diff --git a/boot/armllb/hw/versatile/hwinit.c b/boot/armllb/hw/versatile/hwinit.c
new file mode 100644 (file)
index 0000000..20e3851
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * PROJECT:         ReactOS Boot Loader
+ * LICENSE:         BSD - See COPYING.ARM in the top level directory
+ * FILE:            boot/armllb/hw/versatile/hwinit.c
+ * PURPOSE:         LLB Hardware Initialization Routines for Versatile
+ * PROGRAMMERS:     ReactOS Portable Systems Group
+ */
+
+#include "precomp.h"
+
+VOID
+NTAPI
+LlbHwInitialize(VOID)
+{
+    /* Setup the CLCD (PL110) */
+    LlbHwVersaClcdInitialize();
+    
+    /* Setup the UART (PL011) */
+    LlbHwVersaUartInitialize();
+    
+    /* Setup the KMI (PL050) */
+    LlbHwVersaKmiInitialize();
+}
+
+//
+// Should go to hwdev.c
+//
+POSLOADER_INIT
+NTAPI
+LlbHwLoadOsLoaderFromRam(VOID)
+{
+    ULONG Base, RootFs, Size;
+    PCHAR Offset;
+    CHAR CommandLine[64];
+    
+    /* On versatile we load the RAMDISK with initrd */
+    LlbEnvGetRamDiskInformation(&RootFs, &Size);
+    
+    /* The OS Loader is at 0x20000, always */
+    Base = 0x20000;
+    
+    /* Read image offset */
+    Offset = LlbEnvRead("rdoffset");
+    
+    /* Set parameters for the OS loader */
+    sprintf(CommandLine, "rdbase=0x%x rdsize=0x%x rdoffset=%s", RootFs, Size, Offset);
+    LlbSetCommandLine(CommandLine);
+    
+    /* Return the OS loader base address */
+    return (POSLOADER_INIT)Base;
+}
+
+
+/* EOF */