File tree Expand file tree Collapse file tree 3 files changed +9
-6
lines changed Expand file tree Collapse file tree 3 files changed +9
-6
lines changed Original file line number Diff line number Diff line change @@ -70,6 +70,7 @@ unsafe extern "C" fn entry(hartid: usize, opaque: usize) -> ! {
70
70
71
71
core:: arch:: asm!( "
72
72
csrw mie, zero
73
+ csrr a0, mhartid
73
74
la sp, {stack}
74
75
li t0, {per_hart_stack_size}
75
76
addi t1, a0, 1
@@ -134,12 +135,14 @@ extern "C" fn rust_main(_hartid: usize, opaque: usize) {
134
135
// 解析设备树,需要堆来保存结果里的字符串等
135
136
let board_info = BOARD_INFO . call_once ( || device_tree:: parse ( opaque) ) ;
136
137
// 初始化外设
138
+ rustsbi:: legacy_stdio:: init_legacy_stdio (
139
+ SERIAL . call_once ( || unsafe { ns16550a:: Ns16550a :: new ( board_info. uart . start ) } ) ,
140
+ ) ;
141
+
137
142
clint:: init ( board_info. clint . start ) ;
138
143
test_device:: init ( board_info. test . start ) ;
139
- let serial = SERIAL . call_once ( || unsafe { ns16550a:: Ns16550a :: new ( board_info. uart . start ) } ) ;
140
144
let hsm = HSM . call_once ( || qemu_hsm:: QemuHsm :: new ( clint:: get ( ) , NUM_HART_MAX , opaque) ) ;
141
145
// 初始化 SBI 服务
142
- rustsbi:: legacy_stdio:: init_legacy_stdio ( serial) ;
143
146
rustsbi:: init_ipi ( clint:: get ( ) ) ;
144
147
rustsbi:: init_timer ( clint:: get ( ) ) ;
145
148
rustsbi:: init_reset ( test_device:: get ( ) ) ;
Original file line number Diff line number Diff line change @@ -103,8 +103,8 @@ pub(crate) fn start_stop_harts(hartid: usize, smp: usize) {
103
103
104
104
extern "C" fn secondary_rust_main ( hart_id : usize ) -> ! {
105
105
BARRIER . wait ( ) . wait ( ) ;
106
- println ! ( "stop [{hart_id}] but {:?}" , sbi:: hart_stop( ) ) ;
107
- unreachable ! ( )
106
+ let ret = sbi:: hart_stop ( ) ;
107
+ unreachable ! ( "stop [{hart_id}] but {ret:?}" ) ;
108
108
}
109
109
110
110
println ! (
Original file line number Diff line number Diff line change @@ -216,7 +216,7 @@ fn xtask_qemu_run(xtask_env: &XtaskEnv) {
216
216
. args ( & [ "-machine" , "virt" ] )
217
217
. args ( & [ "-bios" , "rustsbi-qemu.bin" ] )
218
218
. args ( & [ "-kernel" , "test-kernel.bin" ] )
219
- . args ( & [ "-smp" , "3 " ] ) // 8 cores
219
+ . args ( & [ "-smp" , "8 " ] ) // 8 cores
220
220
. arg ( "-nographic" )
221
221
. status ( )
222
222
. unwrap ( ) ;
@@ -233,7 +233,7 @@ fn xtask_qemu_debug(xtask_env: &XtaskEnv) {
233
233
. args ( & [ "-machine" , "virt" ] )
234
234
. args ( & [ "-bios" , "rustsbi-qemu.bin" ] )
235
235
. args ( & [ "-kernel" , "test-kernel.bin" ] )
236
- . args ( & [ "-smp" , "3 " ] ) // 8 cores
236
+ . args ( & [ "-smp" , "8 " ] ) // 8 cores
237
237
. arg ( "-nographic" )
238
238
. args ( & [ "-gdb" , "tcp::1234" , "-S" ] )
239
239
. status ( )
You can’t perform that action at this time.
0 commit comments