[ros-diffs] [evb] 45425: - Reading MBR from RAMDISK does not work since RAMDISK starts at BootSector (rdoffset) and disk sector functions are NULL. Build bogus signature/checksum for now, unless MBR really needed later. - Now FreeLDR crashes no more and arrives at FrLdrStartup to boot kernel and setup paging.

evb at svn.reactos.org evb at svn.reactos.org
Thu Feb 4 21:11:48 CET 2010


Author: evb
Date: Thu Feb  4 21:11:48 2010
New Revision: 45425

URL: http://svn.reactos.org/svn/reactos?rev=45425&view=rev
Log:
- Reading MBR from RAMDISK does not work since RAMDISK starts at BootSector (rdoffset) and disk sector functions are NULL. Build bogus signature/checksum for now, unless MBR really needed later.
- Now FreeLDR crashes no more and arrives at FrLdrStartup to boot kernel and setup paging.


Modified:
    trunk/reactos/boot/freeldr/freeldr/arch/arm/loader.c

Modified: trunk/reactos/boot/freeldr/freeldr/arch/arm/loader.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/arm/loader.c?rev=45425&r1=45424&r2=45425&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/arch/arm/loader.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/arch/arm/loader.c [iso-8859-1] Thu Feb  4 21:11:48 2010
@@ -1031,13 +1031,13 @@
     PLIST_ENTRY NextEntry, OldEntry;
     PARC_DISK_INFORMATION ArcDiskInformation;
     PARC_DISK_SIGNATURE ArcDiskSignature;
-    ULONG ArcDiskCount = 0, Checksum = 0;
+    ULONG ArcDiskCount = 0;
+#if 0
+    ULONG Checksum = 0;
     PMASTER_BOOT_RECORD Mbr;
     PULONG Buffer;
+#endif
     PWCHAR ArmModuleName;
-
-    TuiPrintf("About to prepare for kernel boot\n");
-    while (TRUE);
 
     //
     // Allocate the ARM Shared Heap
@@ -1533,6 +1533,7 @@
     InitializeListHead(&ArcDiskInformation->DiskSignatureListHead);
     ArmLoaderBlock->ArcDiskInformation = (PVOID)((ULONG_PTR)ArcDiskInformation | KSEG0_BASE);
     
+#if 0
     //
     // Read the MBR
     //
@@ -1546,12 +1547,13 @@
     for (i = 0; i < 128; i++) Checksum += Buffer[i];
     Checksum = ~Checksum + 1;
         
+#endif
     //
     // Allocate a disk signature and fill it out
     //
     ArcDiskSignature = ArmAllocateFromSharedHeap(sizeof(ARC_DISK_SIGNATURE));
-    ArcDiskSignature->Signature = Mbr->Signature;
-    ArcDiskSignature->CheckSum = Checksum;
+    ArcDiskSignature->Signature = 0xBADAB00B;// Mbr->Signature;
+    ArcDiskSignature->CheckSum = 0xFAB4BEEF; //Checksum;
     
     //
     // Allocare a string for the name and fill it out




More information about the Ros-diffs mailing list