disklabel64 UFS+HAMMER boot support (was previously just HAMMER boot support)
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 2 Mar 2009 02:49:06 +0000 (18:49 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 2 Mar 2009 02:49:06 +0000 (18:49 -0800)
commitd64b2e330d33214f962ba88400ebbf8d11c18ef4
tree9d04d50108f8ca63fb90b272ffa4304ad683f26e
parentcfe35a675e18b70def57380c62ab9bd2a84ac6f6
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.
lib/libstand/hammerread.c
sys/boot/common/boot2.h [new file with mode: 0644]
sys/boot/common/dinode.h
sys/boot/common/ufsread.c
sys/boot/pc32/boot2/Makefile
sys/boot/pc32/boot2/boot1.S
sys/boot/pc32/boot2/boot2.c
sys/boot/pc32/bootasm.h
sys/sys/types.h