Hey,
If he experiences the same thing as I am, 3 different scenarios are happening:
- black screen at boot, nothing happens (CPU not idle) - booting gets to the point where "loading freeloader" gets printed - no boot problems at all (got it once in 10 tries)
WBR,
Roel Messiant
2010/9/9 Pierre Schweitzer pierre.schweitzer@reactos.org:
Hi! Could you define how/why 2nd stage doesn't boot on your side? With my rewritten ARC names handling, your patch brokes absolutely nothing. I just successfully installed ReactOS. Let me know if you want a patch to test your issue on your side. Best regards, P. Schweitzer
Hi!
This patch fixes the disk geometry bug I mentioned in my previous mail. It enables disk.sys and usetup.exe to use the same disk geometry that is used by the BIOS.
Due to another bug or workaround in the 1st stage setup, the 2nd stage setup will not boot at all.
Regards, Eric Index: boot/freeldr/freeldr/arch/i386/hardware.c =================================================================== --- boot/freeldr/freeldr/arch/i386/hardware.c (revision 48722) +++ boot/freeldr/freeldr/arch/i386/hardware.c (working copy) @@ -327,7 +327,6 @@ { PCM_PARTIAL_RESOURCE_LIST PartialResourceList; PCM_DISK_GEOMETRY_DEVICE_DATA DiskGeometry;
- EXTENDED_GEOMETRY ExtGeometry;
GEOMETRY Geometry; ULONG Size;
@@ -362,16 +361,8 @@ DiskGeometry = (PVOID)(((ULONG_PTR)PartialResourceList) + sizeof(CM_PARTIAL_RESOURCE_LIST));
/* Get the disk geometry */
- ExtGeometry.Size = sizeof(EXTENDED_GEOMETRY);
- if (DiskGetExtendedDriveParameters(DriveNumber, &ExtGeometry, ExtGeometry.Size))
- if(MachDiskGetDriveGeometry(DriveNumber, &Geometry))
{
- DiskGeometry->BytesPerSector = ExtGeometry.BytesPerSector;
- DiskGeometry->NumberOfCylinders = ExtGeometry.Cylinders;
- DiskGeometry->SectorsPerTrack = ExtGeometry.SectorsPerTrack;
- DiskGeometry->NumberOfHeads = ExtGeometry.Heads;
- }
- else if(MachDiskGetDriveGeometry(DriveNumber, &Geometry))
- {
DiskGeometry->BytesPerSector = Geometry.BytesPerSector; DiskGeometry->NumberOfCylinders = Geometry.Cylinders; DiskGeometry->SectorsPerTrack = Geometry.Sectors; Index: boot/freeldr/freeldr/arch/i386/pcdisk.c =================================================================== --- boot/freeldr/freeldr/arch/i386/pcdisk.c (revision 48722) +++ boot/freeldr/freeldr/arch/i386/pcdisk.c (working copy) @@ -296,12 +296,25 @@ BOOLEAN PcDiskGetDriveGeometry(ULONG DriveNumber, PGEOMETRY Geometry) {
- EXTENDED_GEOMETRY ExtGeometry;
REGS RegsIn; REGS RegsOut; ULONG Cylinders;
DPRINTM(DPRINT_DISK, "DiskGetDriveGeometry()\n");
- /* Try to get the extended geometry first */
- ExtGeometry.Size = sizeof(EXTENDED_GEOMETRY);
- if (DiskGetExtendedDriveParameters(DriveNumber, &ExtGeometry, ExtGeometry.Size))
- {
- Geometry->Cylinders = ExtGeometry.Cylinders;
- Geometry->Heads = ExtGeometry.Heads;
- Geometry->Sectors = ExtGeometry.SectorsPerTrack;
- Geometry->BytesPerSector = ExtGeometry.BytesPerSector;
- return TRUE;
- }
/* BIOS Int 13h, function 08h - Get drive parameters * AH = 08h * DL = drive (bit 7 set for hard disk) _______________________________________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev