Booting 64-bit RISC-V noMMU Linux with rootfs loaded from SDcard on Sipeed Maix Bit
Luffcaでは、Kendryte K210を搭載したSipeed社のMaix Bit上で、マイクロSDカードからロードしたrootfsを用いる64-bit RISC-V noMMU Linuxを起動することに成功しました。
また、ベンチマークソフトウェアのDhrystoneを動かしてみました。
このLinuxは、github.com/damien-lemoal/buildrootとgithub.com/vowstar/k210-linux-nommuをベースにしています。
Sipeed Maix Bit
Sipeed社のMaix Bitは、Canaan社のKendryte K210を搭載したボードです。
Kendryte K210は、以下を搭載したSoC(System on Chip)です。
- デュアルコア 64-bit RISC-V
- CNN(Convolutional Neural Network)ハードウェアアクセラレータ用のKPU(Knowledge Processing Unit)
- APU(Audio Processing Unit)
- FFT(Fast Fourier Transform)アクセラレーター
- etc.
Dhrystone
Dhrystone実行時の出力は、以下のようになっています。
/ # dhrystone 10000000 Dhrystone Benchmark, Version 2.1 (Language: C) Program compiled without 'register' attribute Execution starts, 10000000 runs through Dhrystone Execution ends Final values of the variables used in the benchmark: Int_Glob: 5 should be: 5 Bool_Glob: 1 should be: 1 Ch_1_Glob: A should be: A Ch_2_Glob: B should be: B Arr_1_Glob[8]: 7 should be: 7 Arr_2_Glob[8][7]: 10000010 should be: Number_Of_Runs + 10 Ptr_Glob-> Ptr_Comp: -2140746408 should be: (implementation-dependent) Discr: 0 should be: 0 Enum_Comp: 2 should be: 2 Int_Comp: 17 should be: 17 Str_Comp: DHRYSTONE PROGRAM, SOME STRING should be: DHRYSTONE PROGRAM, SOME STRING Next_Ptr_Glob-> Ptr_Comp: -2140746408 should be: (implementation-dependent), same as above Discr: 0 should be: 0 Enum_Comp: 1 should be: 1 Int_Comp: 18 should be: 18 Str_Comp: DHRYSTONE PROGRAM, SOME STRING should be: DHRYSTONE PROGRAM, SOME STRING Int_1_Loc: 5 should be: 5 Int_2_Loc: 13 should be: 13 Int_3_Loc: 7 should be: 7 Enum_Loc: 1 should be: 1 Str_1_Loc: DHRYSTONE PROGRAM, 1'ST STRING should be: DHRYSTONE PROGRAM, 1'ST STRING Str_2_Loc: DHRYSTONE PROGRAM, 2'ND STRING should be: DHRYSTONE PROGRAM, 2'ND STRING Microseconds for one run through Dhrystone: 2.8 Dhrystones per Second: 360880.6
まとめ
Luffcaでは、Kendryte K210を搭載したSipeed社のMaix Bit上で、マイクロSDカードからロードしたrootfsを用いる64-bit RISC-V noMMU Linuxを起動することに成功しました。