Hello,

Here are the patches and the ChangeLog for support of CD booting and
extended floppy formats use. Everything works OK for me so please test !

A mini-howto and a simple (Linux) script will follow allowing creation
of virtual bootable disks with GRUB.

Cheers,
-- 
Thierry Laronde <[EMAIL PROTECTED]>
Site Debian Francophone (aka SDF) : http://www.debian-france.org/
2001-10-14  Thierry Laronde  <[EMAIL PROTECTED]>

        Raison d'�tre: 
          - allow booting from CD via El Torito extensions.
          - allow booting and using extended (unusual) floppy formats.
        
        General modifications:
        
          - WARNING: COMPATIBILITY BROKEN!!! The compatibility
          version number has reached 4.0, and, more importantly, the place
          to search for it in stage1 has changed. YOU NEED COMPATIBLE
          STAGE1, STAGE2 and GRUB SHELL!!!
        
          - Identifying GRUB: in stage1, at offset 0x3 one finds the
          following string:
           "GRUB "<major><minor>'\0' /* exactly 8 bytes */
           [This string is also used by the `message' routine; it now stops
          displaying at the first non printable character]

          - New variables: `grub_run_flags', `old_int1e', `bios_description',
          array of disk structure `kdisks'.

          - All flags are passed at installation time to
          stage1_inst_flags, at running time to `grub_run_flags' --- "8 bits
          flags should be enough for everybody" TL :-^
        
          - The data organization in stage1[.S] has changed

          - The values of numerous constants have been corrected [in
          stage.h]. The value for BPB length was wrong for example.

          - All the routines for probing floppies have been removed, and
          replaced by the standard call, the number of floppies being
          obtained via INT 11h, and being corrected in case of El Torito
          floppy emulation [see stage2/common.c].

          - A general disks array [kdisks] is created and filled at 
          initialization time, devices being probed later only if they are
          flagged REMOVABLE. The mbi structures have not been changed, and
          the grub shell `disks' is kept at the moment -> unification have
          to be done later.

          - Names of magic numbers or constants have been changed
          with the following principles:
            if this is a memory location, the name is composed:
               <LOCATION>_<DESCRIPTION>_OFFSET
            if this is a value, the name is composed:
               <STAGE1 | GRUB>_DESCRIPTION /* whether it's used by STAGE1
          only or not */

        Details by file:
          * stage1/stage1.S: major rewrite, add El Torito and customized
          geometry support, remove floppy probe routines. DATA
          organization changed, tons of comments added: please read
          it! To be noted: initialization of `grub_run_flags'.
          * stage1/stage1.h: corrections of names and values. Added
          numerous constants, specially about BPB and stage1 installation
          time flags, and GRUB run time flags. The BPB constants have been
          moved from stage2/shared.h to stage1/stage1.h.
          * stage2/start.S: modified to match the new data structure in
          stage1.
          * stage2/asm.S: 
           - recopy stage1 important data: `grub_run_flags',
          `bios_description', geometry of the booting drive (if CHS) in 
          `boot_disk_geom', `old_int1e'
           - removed function `get_diskinfo_floppy'
           - added function `disk_changed'
           - added code to retrieve the BIOS description of the machine
             (mainly for the number of floppy drives [used in common.c])
          * stage2/common.c: initialization of new structure kdisks,
          probing _all_ the drives, including floppy drives.
          * stage2/bios.c: 
            - removed references to get_diskinfo_floppy
            - modification of get_diskinfo to handle the new disks array
          `kdisks'. 
          * stage2/builtins.c:
            - updated name of constants
            - geometry_func: new options to write and set the geometry
          * grub/grub/asmstub.c: initializations of global variables
          unused: boot_disk_geom, bios_description, grub_run_flags.
          * docs/grub.texi: advertised support for El Torito and unusual
          floppy formats. Updated `geometry' function description.

        








        

Attachment: grub.cd+extfloppies.diff.gz
Description: Binary data

Reply via email to