- Enable RAMDISK support in LLB.
authorevb <evb@svn.reactos.org>
Wed, 3 Feb 2010 23:17:16 +0000 (23:17 +0000)
committerevb <evb@svn.reactos.org>
Wed, 3 Feb 2010 23:17:16 +0000 (23:17 +0000)
- Build commandline for OS Loader (FreeLDR).
- Now ready to start loading freeldr.ini

svn path=/trunk/; revision=45403

reactos/boot/armllb/hw/versatile/hwinit.c
reactos/boot/armllb/inc/osloader.h
reactos/boot/armllb/main.c
reactos/boot/armllb/os/loader.c
reactos/boot/freeldr/freeldr/freeldr.rbuild

index 184caca..ca04d47 100755 (executable)
@@ -29,10 +29,23 @@ POSLOADER_INIT
 NTAPI
 LlbHwLoadOsLoaderFromRam(VOID)
 {
-    ULONG Base, Dummy;
+    ULONG Base, RootFs, Size;
+    CHAR CommandLine[64];
     
-    /* On versatile, the loader is loaded with the RAMDISK. Just get the address */
-    LlbEnvGetRamDiskInformation(&Base, &Dummy);
+    /* On versatile, the NAND image is loaded as the RAMDISK */
+    LlbEnvGetRamDiskInformation(&Base, &Size);
+    
+    /* The LLB is first, which we already have, so skip it */
+    Base += 0x10000; // 64 KB (see nandflash)
+    
+    /* The OS loader is next, followed by the root file system */
+    RootFs = Base + 0x80000; // 512 KB (see nandflash)
+    
+    /* Set parameters for the OS loader */
+    sprintf(CommandLine, "rdbase=0x%x rdsize=0x%x", RootFs, Size);
+    LlbSetCommandLine(CommandLine);
+    
+    /* Return the OS loader base address */
     return (POSLOADER_INIT)Base;
 }
 
index 291625e..a62e5fc 100644 (file)
@@ -94,7 +94,7 @@ LlbLoadOsLoader(
 VOID
 NTAPI
 LlbBoot(
-    IN PCHAR CommandLine
+    VOID
 );
 
 /* EOF */
index 2931deb..e18ae4c 100755 (executable)
@@ -29,7 +29,7 @@ LlbStartup(IN ULONG Reserved,
     printf("ReactOS ARM Low-Level Boot Loader [" __DATE__ " "__TIME__ "]\n");
     
     /* Boot the OS Loader */
-    LlbBoot("");
+    LlbBoot();
     while (TRUE);
 }
 
index 0853ff0..7c990df 100755 (executable)
@@ -124,7 +124,7 @@ LlbLoadOsLoader(VOID)
 
 VOID
 NTAPI
-LlbBoot(IN PCHAR CommandLine)
+LlbBoot(VOID)
 {
     /* Setup the ARM block */
     LlbBuildArmBlock();
@@ -132,9 +132,6 @@ LlbBoot(IN PCHAR CommandLine)
     /* Build the memory map */
     LlbBuildMemoryMap();
     
-    /* Set the command-line */
-    LlbSetCommandLine(CommandLine);
-    
     /* Load the OS loader */
     LlbLoadOsLoader();
     
index aa63c55..f6fc7c2 100644 (file)
@@ -38,7 +38,7 @@
                                <linkerflag>-Wl,--image-base=0x80FFF000</linkerflag>
                            </if>
                 <if property="SARCH" value="versatile">
-                               <linkerflag>-Wl,--image-base=0x007FF000</linkerflag>
+                               <linkerflag>-Wl,--image-base=0x0080F000</linkerflag>
                            </if>                               
                        </group>
                </module>