2016년 10월 7일 금요일

[FPGA] Zedboard에 rocketchip (RISC-V) 올리기

0. 환경설정

리눅스의 config option에 CONFIG_USB_SERIAL과 CONFIG_USB_SERIAL_CYPRESS_M8 이 y 로 되어있어야 한다. m 으로 되어있다면 y로 바꿔주고 리눅스를 재컴파일하자. 내 리눅스 배포판은 우분투 14.04-4 이다. 커널은 3.18.30을 올렸다.

Vivado 2016-2 설치


로켓칩 설치


위 github 의 quick instructions 를 따라해보자.

1. Quick instructions


1) $ make fetch-images

2) $ make fetch-riscv-linux

3) SD카드에 이미지 카피
$ make load-sd SD=path_to_mounted_sdcard
나의 경우 $ make load-sd SD=/media/jsim/6910-C05B

4) minicom 실행

미니컴이 없다면 apt-get 으로 설치한다.

$ dmesg | grep tty
ttyACM0 가 있음을 확인

$ sudo minicom -s

serial port setup에서 A를 눌러서 Serial Device 이름을 /dev/ttyACM0 로 바꿔준다. serial port setup이 안보인다면 Ctrl-A Z 를 눌러서 커맨드 창을 불러와서 O를 누른다.

5) SD카드를 빼서 보드에 끼고 전원을 올린다.

시리얼 포트로 통신한다.


6) 부팅 시키기
zynq-uboot> boot

id 와 password는 root / root 이다.

7) fesvr-zynq 프로그램으로 소프트코어에서 프로그램을 돌릴 수 있다.
./fesvr-zynq pk hello

8) Mounting the SD Card on the Board

root@zynq:~# mkdir /sdcard
root@zynq:~# mount /dev/mmcblk0p1 /sdcard

할 일을 끝냈으면 unmount 한다.

root@zynq:~# umount /sdcard


Building Everthing from scratch

먼저 JDK와 SBT가 필요하다.

JDK 는 알아서 다운로드, SBT는 다음과 같이 다운로드한다.

echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
sudo apt-get update
sudo apt-get install sbt


아래 포스트는 무시할 것. 쓰다가 날라가서 내용이 정확하지 않습니다.
2. Pushing Your Rocket Modifications to the FPGA


1) Setting Up Workspace

rocket 카피가 없다면 다음 명령어로 클론한다.
$ cd [fpga-zynq dir]/zedboard
$ make init-rocket-submodule

쓴게 날라갔다.현재 https://github.com/riscv/riscv-tools#linuxman 에서

3.14.79 linux curl 까지 하고 집에 감.

Configuring the Linux Kernel 부터 해볼 것.

Linux configure 시에
$ make ARCH=riscv menuconfig
/ HTIF 의 다섯번째 옵션 HTIF_RFB 는 n으로 할 것

주의! busybox make menuconfig 시에
  • CONFIG_STATIC=y, listed as "Build BusyBox as a static binary (no shared libs)" in BusyBox Settings → Build Options
  • CONFIG_CROSS_COMPILER_PREFIX=riscv-linux-, listed as "Cross Compiler prefix" in BusyBox Settings → Build Options --> riscv64-unknown-linux-gnu- 로 바꿀 것.
  • CONFIG_FEATURE_INSTALLER=y, listed as "Support --install [-s] to install applet links at runtime" in BusyBox Settings → General Configuration
  • CONFIG_INIT=y, listed as "init" in Init utilities
  • CONFIG_ASH=y, listed as "ash" in Shells
  • CONFIG_ASH_JOB_CONTROL=n, listed as "Ash → Job control" in Shells
  • CONFIG_MOUNT=y, listed as "mount" in Linux System Utilities

댓글 없음:

댓글 쓰기