riscv-notes
The repository contains some notes on RISC-V CPU and related stuff - Linux, BBL, QEMU. These notes are primarily for my personal use so all paths are relative to ones on my Linux laptop.
Anyway, this is a directory structure for paths in all documents in this repository
slava@slava-P34V2:/work/risc-v$ tree -L 2
.
├── busybox
│ ├── busybox-1.21.1
│ ├── rootfs
│ ├── rootfs-old
│ └── rootfs-tree.txt
├── documents
│ ├── Chisel
│ ├── CS250 Berkeley
│ ├── riscv-compressed-spec-v1.7.pdf
│ ├── RISC-V-External-Debug.pdf
│ ├── riscv-privileged-v1.9.1.pdf
│ ├── riscv-priv-spec-1.7.pdf
│ └── riscv-spec-v2.1.pdf
├── fedora
│ ├── stage4-disk.img
│ ├── stage4-disk.img.xz
│ └── vmlinux
├── linux
│ ├── bbl_vmlinux_initramfs
│ └── linux-4.6.2
├── lowrisc
│ └── lowrisc-chip
├── riscv-cores
│ ├── riscv.org_user_RISCV_Rocket_Core_RV64G_1.0
│ ├── riscv.rv64g.core.ip.fixed.zip
│ ├── riscv.rv64g.core.src.fixed.zip
│ └── RISCV_RV64G_src
├── riscv-gnu-toolchain
│ ├── build
│ ├── build-binutils-linux
│ ├── build-gcc-linux-stage1
│ ├── build-gcc-linux-stage2
│ ├── build-glibc-linux-64
│ ├── build-glibc-linux-headers
│ ├── config.log
│ ├── config.status
│ ├── configure
│ ├── configure.ac
│ ├── LICENSE
│ ├── linux-headers
│ ├── Makefile
│ ├── Makefile.in
│ ├── README.md
│ ├── riscv-binutils-gdb
│ ├── riscv-dejagnu
│ ├── riscv-gcc
│ ├── riscv-glibc
│ ├── riscv-newlib
│ ├── scripts
│ └── stamps
├── riscv-notes
│ ├── bbl
│ ├── busybox
│ ├── gnu-toolchain
│ ├── images
│ ├── linux
│ ├── qemu
│ └── README.md
├── riscv-qemu
│ ├── accel.c
│ ├── accel.d
│ ├── accel.o
│ ├── aio-posix.c
│ ├── aio-posix.d
│ ├── aio-posix.o
│ ├── aio-win32.c
│ ├── arch_init.c
│ ├── async.c
│ ├── async.d
│ ├── async.o
│ ├── audio
│ ├── backends
│ ├── balloon.c
│ ├── block
│ ├── block.c
│ ├── block.d
│ ├── blockdev.c
│ ├── blockdev.d
│ ├── blockdev-nbd.c
│ ├── blockdev-nbd.d
│ ├── blockdev-nbd.o
│ ├── blockdev.o
│ ├── blockjob.c
│ ├── blockjob.d
│ ├── blockjob.o
│ ├── block.o
│ ├── bootdevice.c
│ ├── bsd-user
│ ├── bt-host.c
│ ├── bt-host.d
│ ├── bt-host.o
│ ├── bt-vhci.c
│ ├── bt-vhci.d
│ ├── bt-vhci.o
│ ├── build
│ ├── Changelog
│ ├── CODING_STYLE
│ ├── config-all-devices.mak
│ ├── config-all-disas.mak
│ ├── config-host.h
│ ├── config-host.h-timestamp
│ ├── config-host.mak
│ ├── config.log
│ ├── config.status
│ ├── configure
│ ├── contrib
│ ├── COPYING
│ ├── COPYING.LIB
│ ├── cpu-exec.c
│ ├── cpu-exec-common.c
│ ├── cpus.c
│ ├── cputlb.c
│ ├── crypto
│ ├── default-configs
│ ├── device-hotplug.c
│ ├── device-hotplug.d
│ ├── device-hotplug.o
│ ├── device_tree.c
│ ├── disas
│ ├── disas.c
│ ├── dma-helpers.c
│ ├── dma-helpers.d
│ ├── dma-helpers.o
│ ├── docs
│ ├── dtc
│ ├── dump.c
│ ├── exec.c
│ ├── fpu
│ ├── fsdev
│ ├── gdbstub.c
│ ├── gdb-xml
│ ├── HACKING
│ ├── hacking_files
│ ├── hmp.c
│ ├── hmp-commands.hx
│ ├── hmp-commands-info.hx
│ ├── hmp.d
│ ├── hmp.h
│ ├── hmp.o
│ ├── hw
│ ├── include
│ ├── io
│ ├── iohandler.c
│ ├── iohandler.d
│ ├── iohandler.o
│ ├── ioport.c
│ ├── iothread.c
│ ├── iothread.d
│ ├── iothread.o
│ ├── ivshmem-client
│ ├── ivshmem-server
│ ├── kvm-all.c
│ ├── kvm-stub.c
│ ├── libdecnumber
│ ├── libqemustub.a
│ ├── libqemuutil.a
│ ├── LICENSE
│ ├── linux-headers
│ ├── linux-user
│ ├── main-loop.c
│ ├── main-loop.d
│ ├── main-loop.o
│ ├── MAINTAINERS
│ ├── Makefile
│ ├── Makefile.objs
│ ├── Makefile.target
│ ├── memory.c
│ ├── memory_mapping.c
│ ├── migration
│ ├── module_block.h
│ ├── module-common.c
│ ├── monitor.c
│ ├── nbd
│ ├── net
│ ├── numa.c
│ ├── os-posix.c
│ ├── os-posix.d
│ ├── os-posix.o
│ ├── os-win32.c
│ ├── page_cache.c
│ ├── page_cache.d
│ ├── page_cache.o
│ ├── pc-bios
│ ├── pixman
│ ├── po
│ ├── qapi
│ ├── qapi-event.c
│ ├── qapi-event.d
│ ├── qapi-event.h
│ ├── qapi-event.o
│ ├── qapi-generated
│ ├── qapi-schema.json
│ ├── qapi-types.c
│ ├── qapi-types.d
│ ├── qapi-types.h
│ ├── qapi-types.o
│ ├── qapi-visit.c
│ ├── qapi-visit.d
│ ├── qapi-visit.h
│ ├── qapi-visit.o
│ ├── qdev-monitor.c
│ ├── qdev-monitor.d
│ ├── qdev-monitor.o
│ ├── qdict-test-data.txt
│ ├── qemu.1
│ ├── qemu-bridge-helper
│ ├── qemu-bridge-helper.c
│ ├── qemu-bridge-helper.d
│ ├── qemu-bridge-helper.o
│ ├── qemu-char.c
│ ├── qemu-char.d
│ ├── qemu-char.o
│ ├── qemu-doc.html
│ ├── qemu-doc.texi
│ ├── qemu-ga
│ ├── qemu-ga.8
│ ├── qemu-ga.pod
│ ├── qemu-ga.texi
│ ├── qemu-img
│ ├── qemu-img.1
│ ├── qemu-img.c
│ ├── qemu-img-cmds.h
│ ├── qemu-img-cmds.hx
│ ├── qemu-img-cmds.texi
│ ├── qemu-img.d
│ ├── qemu-img.o
│ ├── qemu-img.pod
│ ├── qemu-img.texi
│ ├── qemu-io
│ ├── qemu-io.c
│ ├── qemu-io-cmds.c
│ ├── qemu-io-cmds.d
│ ├── qemu-io-cmds.o
│ ├── qemu-io.d
│ ├── qemu-io.o
│ ├── qemu-monitor-info.texi
│ ├── qemu-monitor.texi
│ ├── qemu-nbd
│ ├── qemu-nbd.8
│ ├── qemu-nbd.c
│ ├── qemu-nbd.d
│ ├── qemu-nbd.o
│ ├── qemu-nbd.pod
│ ├── qemu-nbd.texi
│ ├── qemu.nsi
│ ├── qemu-options.def
│ ├── qemu-options.h
│ ├── qemu-options.hx
│ ├── qemu-options.texi
│ ├── qemu-options-wrapper.h
│ ├── qemu-option-trace.texi
│ ├── qemu.pod
│ ├── qemu.sasl
│ ├── qemu-seccomp.c
│ ├── qemu-tech.html
│ ├── qemu-tech.texi
│ ├── qemu-timer.c
│ ├── qemu-timer.d
│ ├── qemu-timer.o
│ ├── qemu-version.h
│ ├── qemu-version.h.tmp
│ ├── qga
│ ├── qmp.c
│ ├── qmp-commands.h
│ ├── qmp.d
│ ├── qmp-introspect.c
│ ├── qmp-introspect.d
│ ├── qmp-introspect.h
│ ├── qmp-introspect.o
│ ├── qmp-marshal.c
│ ├── qmp-marshal.d
│ ├── qmp-marshal.o
│ ├── qmp.o
│ ├── qobject
│ ├── qom
│ ├── qtest.c
│ ├── README
│ ├── README.md
│ ├── replay
│ ├── replication.c
│ ├── replication.d
│ ├── replication.h
│ ├── replication.o
│ ├── riscv32-softmmu
│ ├── riscv32-softmmu-config-devices.mak.d
│ ├── riscv64-softmmu
│ ├── riscv64-softmmu-config-devices.mak.d
│ ├── roms
│ ├── rules.mak
│ ├── scripts
│ ├── slirp
│ ├── softmmu_template.h
│ ├── spice-qemu-char.c
│ ├── stubs
│ ├── target-alpha
│ ├── target-arm
│ ├── target-cris
│ ├── target-i386
│ ├── target-lm32
│ ├── target-m68k
│ ├── target-microblaze
│ ├── target-mips
│ ├── target-moxie
│ ├── target-openrisc
│ ├── target-ppc
│ ├── target-riscv
│ ├── target-s390x
│ ├── target-sh4
│ ├── target-sparc
│ ├── target-tilegx
│ ├── target-tricore
│ ├── target-unicore32
│ ├── target-xtensa
│ ├── tcg
│ ├── tcg-runtime.c
│ ├── tcg-runtime.d
│ ├── tcg-runtime.o
│ ├── tci.c
│ ├── tests
│ ├── thread-pool.c
│ ├── thread-pool.d
│ ├── thread-pool.o
│ ├── thunk.c
│ ├── tpm.c
│ ├── tpm.d
│ ├── tpm.o
│ ├── trace
│ ├── trace-events
│ ├── trace-events-all
│ ├── translate-all.c
│ ├── translate-all.h
│ ├── translate-common.c
│ ├── ui
│ ├── user-exec.c
│ ├── util
│ ├── VERSION
│ ├── version.rc
│ ├── vl.c
│ ├── vl.d
│ ├── vl.o
│ ├── xen-common.c
│ ├── xen-common-stub.c
│ ├── xen-hvm.c
│ ├── xen-hvm-stub.c
│ └── xen-mapcache.c
├── riscv-tools
│ ├── build
│ ├── build.common
│ ├── build-rv32ima.sh
│ ├── build.sh
│ ├── build-spike-only.sh
│ ├── build-spike-pk.sh
│ ├── README.md
│ ├── regression.sh
│ ├── riscv-fesvr
│ ├── riscv-gnu-toolchain
│ ├── riscv-isa-sim
│ ├── riscv-llvm
│ ├── riscv-opcodes
│ ├── riscv-pk
│ └── riscv-tests
├── session.txt
└── test
└── hello