Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-15427

FAT16 bootloader needs rework

    XMLWordPrintable

Details

    • Task
    • Resolution: Unresolved
    • Major
    • None
    • Bootloader
    • None

    Description

      Our freeldr.sys file became somewhat large and doesn't fit in current memory layout used in fat.bin VBR.

      FAT16 boot sequence looks like this: MBR -> VBR/BPB (fat.bin) -> code at first 512 bytes of freeldr.sys (which is jumped over in other VBRs) -> main freeldr.sys code

      And here we have an issue with that "second part" of VBR code: it loads whole FAT into memory at 7000:0000 which leaves us 395264 bytes for freeldr.sys (we load it at 0000:F800). Currently freeldr.sys file can be 366592 bytes (gcc-built) or 448512 bytes (msvc-built). Obviously, msvc-compiled version doesn't fit into space and thus boot is being failed.

      Possible solution - do not load whole FAT into memory and only read it from disk where we need. But this would affect floppy-disk performance, which should be addressed somehow

      Attachments

        Issue Links

          Activity

            People

              hbelusca hbelusca
              extravert34 extravert34
              Votes:
              7 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated: