Move MEM_USR a page upwards to make space for larger UFS1 boot2.
Load 4 sectors more than we used to. This is harmless overhead for the UFS1_ONLY case, but sufficient for boot2(UFS1+2). Sponsored by: DARPA & NAI Labs
This commit is contained in:
parent
ab9fa59b00
commit
1270e840d8
@ -22,7 +22,7 @@
|
||||
.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
|
||||
.set MEM_USR,0xb000 # Client start
|
||||
.set BDA_BOOT,0x472 # Boot howto flag
|
||||
|
||||
# Partition Constants
|
||||
@ -177,17 +177,17 @@ main.4: xor %dx,%dx # Partition:drive
|
||||
# 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
|
||||
# binary to 0xb000. Normally, BTX clients start at MEM_USR, or 0xa000, but
|
||||
# when we use btxld create boot2, we use an entry point of 0x1000. That
|
||||
# when we use btxld to create boot2, we use an entry point of 0x1000. That
|
||||
# entry point is relative to MEM_USR; thus boot2.bin starts at 0xb000.
|
||||
#
|
||||
main.5: mov %dx,MEM_ARG # Save args
|
||||
movb $0x10,%dh # Sector count
|
||||
movb $0x14,%dh # Sector count
|
||||
callw nread # Read disk
|
||||
mov $MEM_BTX,%bx # BTX
|
||||
mov 0xa(%bx),%si # Get BTX length and set
|
||||
add %bx,%si # %si to start of boot2.bin
|
||||
mov $MEM_USR+SIZ_PAG,%di # Client page 1
|
||||
mov $MEM_BTX+0xe*SIZ_SEC,%cx # Byte
|
||||
mov $MEM_BTX+0x12*SIZ_SEC,%cx # Byte
|
||||
sub %si,%cx # count
|
||||
rep # Relocate
|
||||
movsb # client
|
||||
|
@ -22,7 +22,7 @@
|
||||
.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
|
||||
.set MEM_USR,0xb000 # Client start
|
||||
.set BDA_BOOT,0x472 # Boot howto flag
|
||||
|
||||
# Partition Constants
|
||||
@ -177,17 +177,17 @@ main.4: xor %dx,%dx # Partition:drive
|
||||
# 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
|
||||
# binary to 0xb000. Normally, BTX clients start at MEM_USR, or 0xa000, but
|
||||
# when we use btxld create boot2, we use an entry point of 0x1000. That
|
||||
# when we use btxld to create boot2, we use an entry point of 0x1000. That
|
||||
# entry point is relative to MEM_USR; thus boot2.bin starts at 0xb000.
|
||||
#
|
||||
main.5: mov %dx,MEM_ARG # Save args
|
||||
movb $0x10,%dh # Sector count
|
||||
movb $0x14,%dh # Sector count
|
||||
callw nread # Read disk
|
||||
mov $MEM_BTX,%bx # BTX
|
||||
mov 0xa(%bx),%si # Get BTX length and set
|
||||
add %bx,%si # %si to start of boot2.bin
|
||||
mov $MEM_USR+SIZ_PAG,%di # Client page 1
|
||||
mov $MEM_BTX+0xe*SIZ_SEC,%cx # Byte
|
||||
mov $MEM_BTX+0x12*SIZ_SEC,%cx # Byte
|
||||
sub %si,%cx # count
|
||||
rep # Relocate
|
||||
movsb # client
|
||||
|
@ -28,7 +28,7 @@
|
||||
.set MEM_DIR,0x4000 # Page directory
|
||||
.set MEM_TBL,0x5000 # Page tables
|
||||
.set MEM_ORG,0x9000 # BTX code
|
||||
.set MEM_USR,0xa000 # Start of user memory
|
||||
.set MEM_USR,0xb000 # Start of user memory
|
||||
#
|
||||
# Paging control.
|
||||
#
|
||||
|
@ -28,7 +28,7 @@
|
||||
.set MEM_DIR,0x4000 # Page directory
|
||||
.set MEM_TBL,0x5000 # Page tables
|
||||
.set MEM_ORG,0x9000 # BTX code
|
||||
.set MEM_USR,0xa000 # Start of user memory
|
||||
.set MEM_USR,0xb000 # Start of user memory
|
||||
#
|
||||
# Paging control.
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user