Don't hard-code field offsets of struct riscv_bootparams.
Submitted by: James Clarke <jrtc27@jrtc27.com> Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D22970
This commit is contained in:
parent
f930f30f60
commit
c5ccc92c41
@ -101,3 +101,9 @@ ASSYM(TF_SCAUSE, offsetof(struct trapframe, tf_scause));
|
||||
ASSYM(TF_SSTATUS, offsetof(struct trapframe, tf_sstatus));
|
||||
|
||||
ASSYM(RISCV_BOOTPARAMS_SIZE, sizeof(struct riscv_bootparams));
|
||||
ASSYM(RISCV_BOOTPARAMS_KERN_L1PT, offsetof(struct riscv_bootparams, kern_l1pt));
|
||||
ASSYM(RISCV_BOOTPARAMS_KERN_PHYS, offsetof(struct riscv_bootparams, kern_phys));
|
||||
ASSYM(RISCV_BOOTPARAMS_KERN_STACK, offsetof(struct riscv_bootparams,
|
||||
kern_stack));
|
||||
ASSYM(RISCV_BOOTPARAMS_DTBP_VIRT, offsetof(struct riscv_bootparams, dtbp_virt));
|
||||
ASSYM(RISCV_BOOTPARAMS_DTBP_PHYS, offsetof(struct riscv_bootparams, dtbp_phys));
|
||||
|
@ -206,15 +206,15 @@ va:
|
||||
|
||||
/* Fill riscv_bootparams */
|
||||
la t0, pagetable_l1
|
||||
sd t0, 0(sp) /* kern_l1pt */
|
||||
sd s9, 8(sp) /* kern_phys */
|
||||
sd t0, RISCV_BOOTPARAMS_KERN_L1PT(sp)
|
||||
sd s9, RISCV_BOOTPARAMS_KERN_PHYS(sp)
|
||||
|
||||
la t0, initstack
|
||||
sd t0, 16(sp) /* kern_stack */
|
||||
sd t0, RISCV_BOOTPARAMS_KERN_STACK(sp)
|
||||
|
||||
li t0, (VM_MAX_KERNEL_ADDRESS - 2 * L2_SIZE)
|
||||
sd t0, 24(sp) /* dtbp_virt */
|
||||
sd a1, 32(sp) /* dtbp_phys */
|
||||
sd t0, RISCV_BOOTPARAMS_DTBP_VIRT(sp)
|
||||
sd a1, RISCV_BOOTPARAMS_DTBP_PHYS(sp)
|
||||
|
||||
mv a0, sp
|
||||
call _C_LABEL(initriscv) /* Off we go */
|
||||
|
Loading…
x
Reference in New Issue
Block a user