aboutsummaryrefslogtreecommitdiff
path: root/sys/boot
diff options
context:
space:
mode:
authorMarcel Moolenaar <marcel@FreeBSD.org>2009-03-07 22:05:58 +0000
committerMarcel Moolenaar <marcel@FreeBSD.org>2009-03-07 22:05:58 +0000
commit20b2c39f0c88f4c567133ef7f1572b1902ec5773 (patch)
tree3da9948a9edaaf7482d016b7a5f968f89218990d /sys/boot
parent4fcda8938e68596f05c3b6944a71738b3c5d41e0 (diff)
downloadsrc-20b2c39f0c88f4c567133ef7f1572b1902ec5773.tar.gz
src-20b2c39f0c88f4c567133ef7f1572b1902ec5773.zip
Revert the part of change 107879 that employs the unused bytes after
the disklabel in the 2nd sector for boot code. Even with both UFS1 and UFS2 supported, there's enough bytes left that we don't have to nibble from the disklabel. Thus, the entire 2nd sector is now reserved for the disklabel, which makes the bootcode compatible again with disklabels that have more than 8 partitions -- such as those created and supported by gpart. i386: 135 bytes available amd64: 151 bytes available Ok'd by: jhb
Notes
Notes: svn path=/head/; revision=189500
Diffstat (limited to 'sys/boot')
-rw-r--r--sys/boot/i386/boot2/Makefile2
-rw-r--r--sys/boot/i386/boot2/boot1.S8
2 files changed, 5 insertions, 5 deletions
diff --git a/sys/boot/i386/boot2/Makefile b/sys/boot/i386/boot2/Makefile
index 81e407d9af15..ab5a69a8ba46 100644
--- a/sys/boot/i386/boot2/Makefile
+++ b/sys/boot/i386/boot2/Makefile
@@ -70,7 +70,7 @@ boot2.ld: boot2.ldr boot2.bin ${BTXKERN}
-o ${.TARGET} -P 1 boot2.bin
boot2.ldr:
- dd if=/dev/zero of=${.TARGET} bs=276 count=1
+ dd if=/dev/zero of=${.TARGET} bs=512 count=1
boot2.bin: boot2.out
objcopy -S -O binary boot2.out ${.TARGET}
diff --git a/sys/boot/i386/boot2/boot1.S b/sys/boot/i386/boot2/boot1.S
index cd397302b9e1..0940167718f6 100644
--- a/sys/boot/i386/boot2/boot1.S
+++ b/sys/boot/i386/boot2/boot1.S
@@ -19,7 +19,7 @@
.set MEM_REL,0x700 # Relocation address
.set MEM_ARG,0x900 # Arguments
.set MEM_ORG,0x7c00 # Origin
- .set MEM_BUF,0x8cec # Load area
+ .set MEM_BUF,0x8c00 # Load area
.set MEM_BTX,0x9000 # BTX start
.set MEM_JMP,0x9010 # BTX entry point
.set MEM_USR,0xa000 # Client start
@@ -172,9 +172,9 @@ main.4: xor %dx,%dx # Partition:drive
* Ok, we have a slice and drive in %dx now, so use that to locate and load
* boot2. %si references the start of the slice we are looking for, so go
* ahead and load up the first 16 sectors (boot1 + boot2) from that. When
- * we read it in, we conveniently use 0x8cec as our transfer buffer. Thus,
- * boot1 ends up at 0x8cec, and boot2 starts at 0x8cec + 0x200 = 0x8eec.
- * The first part of boot2 is the disklabel, which is 0x114 bytes long.
+ * we read it in, we conveniently use 0x8c00 as our transfer buffer. Thus,
+ * boot1 ends up at 0x8c00, and boot2 starts at 0x8c00 + 0x200 = 0x8e00.
+ * The first part of boot2 is the disklabel, which is 0x200 bytes long.
* The second part is BTX, which is thus loaded into 0x9000, which is where
* it also runs from. The boot2.bin binary starts right after the end of
* BTX, so we have to figure out where the start of it is and then move the