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 <[email protected]>:
> 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
>> [email protected]
>> http://www.reactos.org/mailman/listinfo/ros-dev
>
>
>
> _______________________________________________
> Ros-dev mailing list
> [email protected]
> http://www.reactos.org/mailman/listinfo/ros-dev
>

_______________________________________________
Ros-dev mailing list
[email protected]
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to