RISC-V/RISC-V 빌드 및 환경 (8) 썸네일형 리스트형 [RISC-V] u-boot 크로스 컴파일 u-boot 크로스 컴파일 (RISC-V) ubuntu (x86) 시스템에서 u-boot를 크로스 컴파일 (RISC-V)을 할 것이다. 먼저 빌드에 필요한 유틸리티를 설치하자: sudo apt-get install libncurses-dev libssl-dev bc flex bison make gcc gcc-riscv64-linux-gnu -y 아래와 같은 명령어를 사용해 uboot 소스를 다운로드하자: $ git clone https://github.com/u-boot/u-boot.git -b u-boot-2023.07.y Cloning into 'u-boot'... ... Checking out files: 100% (19873/19873), done. 다운로드가 마무리되면 u-boot 디렉토리가 생.. [RISC-V] How to run QEMU (Window) 윈도우 WSL 2 환경에서 아래 툴들을 설치하자. virt-edit 에서 Fedora 이미지의 /boot/extlinux/extlinux.conf 를 수정하기 위해 필요하다. 더 자세한 자료는 아래 링크를 참고하자.https://fedoraproject.org/wiki/Architectures/RISC-V/Installing#Boot_under_QEMU RISC-V ISA-interpreter Below link is pretty good. https://www.cs.cornell.edu/courses/cs3410/2019sp/riscv/interpreter/# RISC-V Interpreter Credit to Danny Qiu for the creation of the original MIPS interpreter. www.cs.cornell.edu [RISC-V] secret behind 'tp'(X4) register in Linux kernel 'current' macro is mainly used to read 'task_struct' address of current process. arch/riscv/include/asm/current.h register struct task_struct *riscv_current_is_tp __asm__("tp"); static __always_inline struct task_struct *get_current(void) { return riscv_current_is_tp; } #define current get_current() Body of current is 'get_current()' macro. We can deduce that "tp"(X4) holds start address of curr.. RISC-V Instruction Set Specifications [link] From: https://msyksphinz-self.github.io/riscv-isadoc/html/index.html [RISC-V] sudo code for exception handling in Linux kernel ... MP:FFFFFFFF80002FEA| csrrc x9,sstatus,x5 // atomic read and clear bits in CSR. MP:FFFFFFFF80002FEE| csrr x18,sepc MP:FFFFFFFF80002FF2| csrr x19,stval MP:FFFFFFFF80002FF6| csrr x20,scause MP:FFFFFFFF80002FFA| csrr x21,sscratch void handle_exception() { word scause; word offset_vect; void *exception_func; bool interrupt_status; scause = sys_csr_reg_read(scause); // csrr x20,scause interrupt_st.. [RISC-V Kernel build] How to build kernel for visionfive2 kernel ? From: https://doc-en.rvspace.org/VisionFive2/SWTRM/VisionFive2_SW_TRM/swtrm_compiling_linux_kernel%20-%20vf2.html [RISC-V] RISC-V 툴체인으로 리눅스 커널 빌드하기 - 크로스 컴파일(cross-compile) 이번 포스트에서는 RISC-V 툴체인을 설치해 리눅스 커널을 빌드하는 방법을 소개합니다. 먼저 RISC-V 툴체인을 설치하는 명령어를 입력합시다. RISC-V 툴체인 소스를 내려받기 다음 명령어를 입력해 RISC-V 툴체인 소스를 내려받습니다. $ git clone --recursive https://github.com/riscv/riscv-gnu-toolchain 아래는 리눅스 터미널에서 위 명령어를 입력한 후의 출력 결과입니다. 소스를 내려받는데 1시간 정도 걸리네요. austindh.kim:~/src/risc-v_toolchain$ git clone --recursive https://github.com/riscv/riscv-gnu-toolchain Cloning into 'riscv-gnu-too.. 이전 1 다음