Tested against the virt
board in riscvarchive/riscv-qemu@a7a7a25
See QEMU docs for instructions on configuring bridged networking:
$ sudo qemu-system-riscv64 \
-nographic -machine virt -kernel bbl \
-append "root=/dev/vda ro console=ttyS0" \
-drive file=busybear.bin,format=raw,id=hd0 \
-device virtio-blk-device,drive=hd0 \
-netdev type=tap,script=./ifup,downscript=./ifdown,id=net0 \
-device virtio-net-device,netdev=net0
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvvvvvvvvvvvvvvvvvvv
rrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvvvv
rrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvv
rrrrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvv
rrrrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvv
rrrrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvv
rrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvv
rrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvv
rr vvvvvvvvvvvvvvvvvvvvvv
rr vvvvvvvvvvvvvvvvvvvvvvvv rr
rrrr vvvvvvvvvvvvvvvvvvvvvvvvvv rrrr
rrrrrr vvvvvvvvvvvvvvvvvvvvvv rrrrrr
rrrrrrrr vvvvvvvvvvvvvvvvvv rrrrrrrr
rrrrrrrrrr vvvvvvvvvvvvvv rrrrrrrrrr
rrrrrrrrrrrr vvvvvvvvvv rrrrrrrrrrrr
rrrrrrrrrrrrrr vvvvvv rrrrrrrrrrrrrr
rrrrrrrrrrrrrrrr vv rrrrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrrrr
INSTRUCTION SETS WANT TO BE FREE
[ 0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[ 0.000000] Linux version 4.14.0-00032-gd10799b22913-dirty (mclark@minty) (gcc version 7.1.1 20170509 (GCC)) #79 Sun Dec 17 10:41:31 NZDT 2017
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000080200000-0x0000000087ffffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000080200000-0x0000000087ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x0000000087ffffff]
[ 0.000000] elf_hwcap is 0x112d
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 31815
[ 0.000000] Kernel command line: root=/dev/vda ro console=ttyS0
[ 0.000000] PID hash table entries: 512 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 16384 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.000000] Sorting __ex_table...
[ 0.000000] Memory: 122500K/129024K available (2658K kernel code, 216K rwdata, 652K rodata, 96K init, 782K bss, 6524K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
[ 0.000000] riscv,cpu_intc,0: 64 local interrupts mapped
[ 0.000000] riscv,plic0,c000000: mapped 10 interrupts to 1/2 handlers
[ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns
[ 0.000000] Console: colour dummy device 80x25
[ 0.000000] Calibrating delay loop (skipped), value calculated using timer frequency.. 20.00 BogoMIPS (lpj=100000)
[ 0.000000] pid_max: default: 32768 minimum: 301
[ 0.000000] Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
[ 0.000000] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes)
[ 0.040000] devtmpfs: initialized
[ 0.050000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.050000] futex hash table entries: 256 (order: 0, 6144 bytes)
[ 0.050000] random: get_random_u32 called from bucket_table_alloc+0x80/0x1f6 with crng_init=0
[ 0.050000] NET: Registered protocol family 16
[ 0.080000] vgaarb: loaded
[ 0.080000] clocksource: Switched to clocksource riscv_clocksource
[ 0.100000] NET: Registered protocol family 2
[ 0.100000] TCP established hash table entries: 1024 (order: 1, 8192 bytes)
[ 0.100000] TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
[ 0.100000] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.100000] UDP hash table entries: 256 (order: 1, 8192 bytes)
[ 0.100000] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[ 0.110000] NET: Registered protocol family 1
[ 0.110000] workingset: timestamp_bits=62 max_order=15 bucket_order=0
[ 0.140000] random: fast init done
[ 0.150000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
[ 0.150000] io scheduler noop registered
[ 0.150000] io scheduler deadline registered
[ 0.160000] io scheduler cfq registered (default)
[ 0.160000] io scheduler mq-deadline registered
[ 0.160000] io scheduler kyber registered
[ 0.300000] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[ 0.310000] console [ttyS0] disabled
[ 0.310000] 10000000.uart: ttyS0 at MMIO 0x10000000 (irq = 1, base_baud = 230400) is a 16550A
[ 0.330000] console [ttyS0] enabled
[ 0.370000] NET: Registered protocol family 10
[ 0.380000] Segment Routing with IPv6
[ 0.380000] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 0.400000] EXT4-fs (vda): couldn't mount as ext3 due to feature incompatibilities
[ 0.410000] EXT4-fs (vda): INFO: recovery required on readonly filesystem
[ 0.410000] EXT4-fs (vda): write access will be enabled during recovery
[ 0.420000] EXT4-fs (vda): recovery complete
[ 0.430000] EXT4-fs (vda): mounted filesystem with ordered data mode. Opts: (null)
[ 0.430000] VFS: Mounted root (ext4 filesystem) readonly on device 254:0.
[ 0.430000] devtmpfs: mounted
[ 0.440000] Freeing unused kernel memory: 96K
[ 0.440000] This architecture does not have kernel memory protection.
[ 0.650000] EXT4-fs (vda): re-mounted. Opts: data=ordered
ucbvax login: root
Password: ntpd: setting time to 2017-12-15 22:21:13.800698 (offset +1513376470.774225s)
____ ____ __ _
/ __ )__ _________ __/ __ )___ ____ ______ / / (_)___ __ ___ __
/ __ / / / / ___/ / / / __ / _ \/ __ `/ ___/ / / / / __ \/ / / / |/_/
/ /_/ / /_/ (__ ) /_/ / /_/ / __/ /_/ / / / /___/ / / / / /_/ /> <
/_____/\__,_/____/\__, /_____/\___/\__,_/_/ /_____/_/_/ /_/\__,_/_/|_|
/____/
root@ucbvax:~# cat /proc/interrupts
CPU0
1: 131 riscv,plic0,c000000 10 ttyS0
7: 11 riscv,plic0,c000000 7 virtio1
8: 115 riscv,plic0,c000000 8 virtio0
root@ucbvax:~#