Changeset 95c675b in mainline for boot/arch/riscv64/src/asm.S
- Timestamp:
- 2017-10-17T13:11:35Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 60af4cdb
- Parents:
- dbf32b1 (diff), a416d070 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - File:
-
- 1 edited
-
boot/arch/riscv64/src/asm.S (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
boot/arch/riscv64/src/asm.S
rdbf32b1 r95c675b 29 29 #include <abi/asmtool.h> 30 30 #include <arch/arch.h> 31 #include <arch/mm.h> 32 33 #define MCOUNTEREN_CY_MASK 0x00000001 34 #define MCOUNTEREN_TM_MASK 0x00000002 35 #define MCOUNTEREN_IR_MASK 0x00000004 36 37 #define MSTATUS_MPP_MASK 0x00001800 38 #define MSTATUS_MPP_USER 0x00000000 39 #define MSTATUS_MPP_SUPERVISOR 0x00000800 40 #define MSTATUS_MPP_MACHINE 0x00001800 41 42 #define MSTATUS_SUM_MASK 0x00040000 43 44 #define SATP_PFN_MASK 0x00000fffffffffff 45 46 #define SATP_MODE_MASK 0xf000000000000000 47 #define SATP_MODE_BARE 0x0000000000000000 48 #define SATP_MODE_SV39 0x8000000000000000 49 #define SATP_MODE_SV48 0x9000000000000000 31 50 32 51 .section BOOTSTRAP … … 76 95 77 96 FUNCTION_BEGIN(jump_to_kernel) 78 j halt 97 /* Enable performance counters access in supervisor mode */ 98 csrsi mcounteren, MCOUNTEREN_CY_MASK | MCOUNTEREN_TM_MASK | MCOUNTEREN_IR_MASK 99 100 /* Setup SV48 paging for supervisor mode */ 101 la t0, ptl_0 102 srli t0, t0, 12 103 104 li t1, SATP_PFN_MASK 105 and t0, t0, t1 106 107 li t1, SATP_MODE_SV48 108 or t0, t0, t1 109 110 csrw sptbr, t0 111 112 /* Jump to supervisor mode */ 113 csrr t0, mstatus 114 115 li t1, ~MSTATUS_MPP_MASK 116 and t0, t0, t1 117 118 /* 119 * TODO: Enable running with Supervisor User Mode 120 * access disabled. 121 */ 122 li t1, MSTATUS_MPP_SUPERVISOR | MSTATUS_SUM_MASK 123 or t0, t0, t1 124 125 csrw mstatus, t0 126 127 li ra, PA2KA(BOOT_OFFSET) 128 csrw mepc, ra 129 130 mret 79 131 FUNCTION_END(jump_to_kernel) 80 132 … … 88 140 SYMBOL(boot_stack) 89 141 .space BOOT_STACK_SIZE 142 143 .section .pt, "aw", @progbits 144 145 .align PAGE_WIDTH 146 SYMBOL(ptl_0) 147 .fill 256, 8, 0 148 /* Identity mapping for [0; 512G) */ 149 .quad 0 + (PTL_DIRTY | PTL_ACCESSED | PTL_EXECUTABLE | PTL_WRITABLE | PTL_READABLE | PTL_VALID) 150 .fill 255, 8, 0
Note:
See TracChangeset
for help on using the changeset viewer.
