DragonFly-2.3.0.337.gd64b2 master lib/libstand hammerread.c sys/boot/common boot2.h dinode.h ufsread.c sys/boot/pc32/boot2 Makefile boot1.S boot2.c sys/boot/pc32 bootasm.h sys/sys types.h

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Mar 1 18:57:18 PST 2009


commit d64b2e330d33214f962ba88400ebbf8d11c18ef4
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sun Mar 1 18:49:06 2009 -0800

    disklabel64 UFS+HAMMER boot support (was previously just HAMMER boot support)
    
    Create a mini-API for boot2 filesystems, split out the filesystem probe &
    initialization code, and adjust boot2 to probe multiple filesystems.  While
    the coding is fairly generic, only the larger boot2 area in a disklabel64
    is big enough to hold a multi-filesystem boot2.  32 bit disklabels can still
    only boot from UFS.
    
    As part of this work the BTX loader offset for boot2 had to be adjusted.
    boot1 used to load boot2 at 0xA000+0x4000 = 0xE000, but this left only 8KB
    available before the segment would overflow in boot1's relocation code.
    
    The BOOT2_VORIGIN was adjusted downward from 0x4000 to 0x2000, reducing
    the absolute physical load address for boot2 to 0xC000 and allowing us
    to load up to a 16K boot2 without overflowing the segment.

Summary of changes:
 lib/libstand/hammerread.c                        |   38 ++--
 sys/{cpu/i386/misc/ktr.c => boot/common/boot2.h} |   98 +++++----
 sys/boot/common/dinode.h                         |    1 +
 sys/boot/common/ufsread.c                        |  124 +++++++-----
 sys/boot/pc32/boot2/Makefile                     |   32 +++-
 sys/boot/pc32/boot2/boot1.S                      |    6 +-
 sys/boot/pc32/boot2/boot2.c                      |  248 +++++++++++++--------
 sys/boot/pc32/bootasm.h                          |    5 +-
 sys/sys/types.h                                  |    4 -
 9 files changed, 334 insertions(+), 222 deletions(-)
 copy sys/{cpu/i386/misc/ktr.c => boot/common/boot2.h} (55%)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/d64b2e330d33214f962ba88400ebbf8d11c18ef4


-- 
DragonFly BSD source repository





More information about the Commits mailing list