diff options
author | Palmer Dabbelt <palmer@dabbelt.com> | 2017-08-02 10:29:44 -0700 |
---|---|---|
committer | Palmer Dabbelt <palmer@dabbelt.com> | 2017-08-02 12:32:45 -0700 |
commit | 298984cbe6ffd7ab8507fa40e15199c7d5386aab (patch) | |
tree | 0f4e8b669c46c49a6f345b31b962613ebfb96026 /machine/mentry.S | |
parent | 62effc6bfe4f1a7e8a771c49966c4ab7755d6612 (diff) | |
download | pk-298984cbe6ffd7ab8507fa40e15199c7d5386aab.zip pk-298984cbe6ffd7ab8507fa40e15199c7d5386aab.tar.gz pk-298984cbe6ffd7ab8507fa40e15199c7d5386aab.tar.bz2 |
Move DISABLED_HART_MASK to the platform
Some platforms can't boot Linux on all the harts. This commit allows
platforms to define the set of harts that should be prevented from
booting past BBL. This is essentially just a new mechanism for defining
the DISABLED_HART_MASK.
Diffstat (limited to 'machine/mentry.S')
-rw-r--r-- | machine/mentry.S | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/machine/mentry.S b/machine/mentry.S index 64fb507..33d7be4 100644 --- a/machine/mentry.S +++ b/machine/mentry.S @@ -258,7 +258,11 @@ do_reset: add sp, sp, a2 # Boot on the first unmasked hart - li a4, (~DISABLED_HART_MASK & (DISABLED_HART_MASK+1)) + la a4, platform__disabled_hart_mask + LOAD a4, 0(a4) + addi a5, a4, 1 + not a4, a4 + and a4, a4, a5 srl a4, a4, a3 andi a4, a4, 1 bnez a4, init_first_hart @@ -273,7 +277,8 @@ do_reset: wfi # masked harts never start - li a4, DISABLED_HART_MASK + la a4, platform__disabled_hart_mask + LOAD a4, 0(a4) srl a4, a4, a3 andi a4, a4, 1 bnez a4, .LmultiHart |