hart : 1 isa : rv64imafdc mmu : sv39 uarch : sifive,rocket0 hart : 2 isa : rv64imafdc mmu : sv39 uarch : sifive,rocket0 hart : 3 isa : rv64imafdc mmu : sv39 uarch : sifive,rocket0 hart : 4 isa : rv64imafdc mmu : sv39 uarch : sifive,rocket0
Kernel boot messages after the fold.
[ 0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000 [ 0.000000] Linux version 4.15.0-00044-g2b0aa1de45f6 (rjones@trick.home.annexia.org) (gcc version 7.3.1 20180129 (GCC)) #23 SMP Wed Apr 4 16:50:32 BST 2018 [ 0.000000] bootconsole [early0] enabled [ 0.000000] Initial ramdisk at: 0x (ptrval) (512 bytes) [ 0.000000] Zone ranges: [ 0.000000] DMA32 [mem 0x0000000080200000-0x00000000ffffffff] [ 0.000000] Normal [mem 0x0000000100000000-0x000027ffffffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000080200000-0x000000027fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000027fffffff] [ 0.000000] On node 0 totalpages: 2096640 [ 0.000000] DMA32 zone: 7161 pages used for memmap [ 0.000000] DMA32 zone: 0 pages reserved [ 0.000000] DMA32 zone: 523776 pages, LIFO batch:31 [ 0.000000] Normal zone: 21504 pages used for memmap [ 0.000000] Normal zone: 1572864 pages, LIFO batch:31 [ 0.000000] software IO TLB [mem 0xfbfff000-0xfffff000] (64MB) mapped at [ (ptrval)- (ptrval)] [ 0.000000] CPU with hartid=0 has a non-okay status of "masked" [ 0.000000] elf_hwcap is 0x1105 [ 0.000000] random: fast init done [ 0.000000] percpu: Embedded 15 pages/cpu @ (ptrval) s29144 r0 d32296 u61440 [ 0.000000] pcpu-alloc: s29144 r0 d32296 u61440 alloc=15*4096 [ 0.000000] pcpu-alloc: [0] 1 [0] 2 [0] 3 [0] 4 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 2067975 [ 0.000000] Kernel command line: root=/dev/nfs rw nfsroot=192.168.0.220:/mnt/riscv,nfsvers=3 nfsrootdebug rootfstype=nfs rootdelay=5 ip=dhcp rootwait [ 0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes) [ 0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes) [ 0.000000] Sorting __ex_table... [ 0.000000] Memory: 8184200K/8386560K available (6067K kernel code, 355K rwdata, 1625K rodata, 204K init, 851K bss, 202360K reserved, 0K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=5, Nodes=1 [ 0.000000] Hierarchical RCU implementation. [ 0.000000] RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=5. [ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=5 [ 0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0 [ 0.000000] CPU with hartid=0 has a non-okay status of "masked" [ 0.000000] riscv,cpu_intc,1: 64 local interrupts mapped [ 0.000000] riscv,cpu_intc,2: 64 local interrupts mapped [ 0.000000] riscv,cpu_intc,3: 64 local interrupts mapped [ 0.000000] riscv,cpu_intc,4: 64 local interrupts mapped [ 0.000000] ------------[ cut here ]------------ [ 0.000000] WARNING: CPU: 1 PID: 0 at drivers/irqchip/irq-riscv-intc.c:158 riscv_irq_enable+0x92/0x94 [ 0.000000] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.15.0-00044-g2b0aa1de45f6 #23 [ 0.000000] Call Trace: [ 0.000000] [] walk_stackframe+0x0/0xa2 [ 0.000000] [] show_stack+0x26/0x34 [ 0.000000] [] dump_stack+0x5e/0x7c [ 0.000000] [] __warn+0xc6/0xdc [ 0.000000] [] warn_slowpath_null+0x2c/0x3e [ 0.000000] [] riscv_irq_enable+0x8e/0x94 [ 0.000000] [] irq_enable+0x3a/0x6a [ 0.000000] [] __irq_startup+0x80/0x88 [ 0.000000] [] irq_startup+0x4e/0xe2 [ 0.000000] [] irq_activate_and_startup+0x1c/0x28 [ 0.000000] [] __irq_do_set_handler+0x6e/0x134 [ 0.000000] [] irq_set_chained_handler_and_data+0x2c/0x4a [ 0.000000] [] plic_init+0x20a/0x33e [ 0.000000] [] of_irq_init+0x132/0x232 [ 0.000000] [] irqchip_init+0x10/0x1c [ 0.000000] [] init_IRQ+0x8/0x14 [ 0.000000] [] start_kernel+0x1f6/0x330 [ 0.000000] [] _sinittext+0x4e/0x56 [ 0.000000] ---[ end trace 389f5dd3089c9116 ]--- [ 0.000000] riscv,plic0,c000000: mapped 53 interrupts to 4/9 handlers [ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns [ 0.000006] sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns [ 0.007191] Console: colour dummy device 80x25 [ 0.010161] console [tty0] enabled [ 0.012242] bootconsole [early0] disabled [ 0.014960] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=10000) [ 0.014981] pid_max: default: 32768 minimum: 301 [ 0.015419] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes) [ 0.015760] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes) [ 0.017030] Hierarchical SRCU implementation. [ 0.017593] smp: Bringing up secondary CPUs ... [ 0.017953] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns [ 0.017965] sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns [ 0.018451] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns [ 0.018462] sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns [ 0.018919] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns [ 0.018930] sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns [ 0.019054] smp: Brought up 1 node, 4 CPUs [ 0.020613] devtmpfs: initialized [ 0.023565] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.023588] futex hash table entries: 1024 (order: 4, 65536 bytes) [ 0.024249] NET: Registered protocol family 16 [ 0.025395] sifive-u54-prci 10000000.prci: Registered U54 core clocks [ 0.025606] sifive-gemgxl-mgmt 100a0000.cadence-gemgxl-mgmt: Registered clock switch 'cadence-gemgxl-mgmt' [ 0.037420] vgaarb: loaded [ 0.037687] SCSI subsystem initialized [ 0.037886] libata version 3.00 loaded. [ 0.038013] usbcore: registered new interface driver usbfs [ 0.038074] usbcore: registered new interface driver hub [ 0.038153] usbcore: registered new device driver usb [ 0.038916] clocksource: Switched to clocksource riscv_clocksource [ 0.043830] NET: Registered protocol family 2 [ 0.044484] TCP established hash table entries: 65536 (order: 7, 524288 bytes) [ 0.046619] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes) [ 0.049954] TCP: Hash tables configured (established 65536 bind 65536) [ 0.050431] UDP hash table entries: 4096 (order: 5, 131072 bytes) [ 0.050927] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes) [ 0.051634] NET: Registered protocol family 1 [ 0.052096] RPC: Registered named UNIX socket transport module. [ 0.052133] RPC: Registered udp transport module. [ 0.052164] RPC: Registered tcp transport module. [ 0.052196] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.052233] PCI: CLS 0 bytes, default 64 [ 0.052385] Unpacking initramfs... [ 0.053146] Initialise system trusted keyrings [ 0.053268] workingset: timestamp_bits=62 max_order=21 bucket_order=0 [ 0.059290] NFS: Registering the id_resolver key type [ 0.059343] Key type id_resolver registered [ 0.059375] Key type id_legacy registered [ 0.059421] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 0.059457] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... [ 0.059609] SGI XFS with ACLs, security attributes, no debug enabled [ 0.064046] NET: Registered protocol family 38 [ 0.064086] Key type asymmetric registered [ 0.064118] Asymmetric key parser 'x509' registered [ 0.064193] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253) [ 0.064231] io scheduler noop registered [ 0.064262] io scheduler deadline registered [ 0.064485] io scheduler cfq registered (default) [ 0.064520] io scheduler mq-deadline registered [ 0.064552] io scheduler kyber registered [ 0.065384] sifive_gpio 10060000.gpio: SiFive GPIO chip registered 16 GPIOs [ 0.065570] pwm-sifivem 10020000.pwm: Unable to find controller clock [ 0.065647] pwm-sifivem 10021000.pwm: Unable to find controller clock [ 0.066359] xilinx-pcie 2000000000.pci: PCIe Link is DOWN [ 0.066405] OF: PCI: host bridge /soc/pci@2000000000 ranges: [ 0.066442] OF: PCI: No bus range found for /soc/pci@2000000000, using [bus 00-ff] [ 0.066487] OF: PCI: MEM 0x40000000..0x5fffffff -> 0x40000000 [ 0.066607] xilinx-pcie 2000000000.pci: PCI host bridge to bus 0000:00 [ 0.066648] pci_bus 0000:00: root bus resource [bus 00-ff] [ 0.066685] pci_bus 0000:00: root bus resource [mem 0x40000000-0x5fffffff] [ 0.066722] pci_bus 0000:00: scanning bus [ 0.066746] pci_bus 0000:00: fixups for bus [ 0.066752] pci_bus 0000:00: bus scan returning with max=00 [ 0.097012] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled [ 0.098122] 10010000.serial: ttySI0 at MMIO 0x10010000 (irq = 43, base_baud = 0) is a sifive-serial [ 0.098391] 10011000.serial: ttySI1 at MMIO 0x10011000 (irq = 44, base_baud = 0) is a sifive-serial [ 0.098769] [drm] radeon kernel modesetting enabled. [ 0.107280] loop: module loaded [ 0.123646] sifive_spi 10040000.spi: mapped; irq=45, cs=1 [ 0.124220] m25p80 spi0.0: is25wp256d (32768 Kbytes) [ 0.124943] sifive_spi 10041000.spi: mapped; irq=46, cs=4 [ 0.125266] sifive_spi 10050000.spi: mapped; irq=47, cs=1 [ 0.125760] libphy: Fixed MDIO Bus: probed [ 0.126159] macb: GEM doesn't support hardware ptp. [ 0.126324] libphy: MACB_mii_bus: probed [ 0.339687] Microsemi VSC8541 SyncE 10090000.ethernet-ffffffff:00: attached PHY driver [Microsemi VSC8541 SyncE] (mii_bus:phy_addr=10090000.ethernet-ffffffff:00, irq=POLL) [ 0.339767] macb 10090000.ethernet eth0: Cadence GEM rev 0x10070109 at 0x10090000 irq 21 (70:b3:d5:92:f0:74) [ 0.340015] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k [ 0.340049] e1000e: Copyright(c) 1999 - 2015 Intel Corporation. [ 0.340141] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 0.340176] ehci-pci: EHCI PCI platform driver [ 0.340232] ehci-platform: EHCI generic platform driver [ 0.340380] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 0.340415] ohci-pci: OHCI PCI platform driver [ 0.340478] ohci-platform: OHCI generic platform driver [ 0.340874] usbcore: registered new interface driver uas [ 0.340931] usbcore: registered new interface driver usb-storage [ 0.341083] mousedev: PS/2 mouse device common for all mice [ 0.399093] mmc_spi spi2.0: SD/MMC host mmc0, no DMA, no WP, no poweroff [ 0.399255] leds_pwm soc:pwmleds: unable to request PWM for heartbeat: -517 [ 0.399427] usbcore: registered new interface driver usbhid [ 0.399462] usbhid: USB HID core driver [ 0.400438] NET: Registered protocol family 10 [ 0.401350] Segment Routing with IPv6 [ 0.401455] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 0.401991] NET: Registered protocol family 17 [ 0.402133] Key type dns_resolver registered [ 0.402765] Loading compiled-in X.509 certificates [ 0.403003] pwm-sifivem 10020000.pwm: SiFive PWM chip registered 4 PWMs [ 0.403161] pwm-sifivem 10021000.pwm: SiFive PWM chip registered 4 PWMs [ 0.404980] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 0.508764] mmc0: host does not support reading read-only switch, assuming write-enable [ 0.508809] mmc0: new SDHC card on SPI [ 0.509123] mmcblk0: mmc0:0000 SU08G 7.40 GiB [ 0.533869] mmcblk0: p1 p2 [ 3.529194] macb 10090000.ethernet eth0: link up (1000/Full) [ 3.538933] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Richard this whole trail of the Port to RISC V is very interesting in fact I would get a board and have a go unfortunately the $999 is a sticking point until the more comercial varient turns up I’m stuck watching for your next installment!
Obviously with all the features and low production run the $999 is probably reasonable but unless ou have a very specific purpose for it you cant hope to go out and get a board for it all to work on.
Keep up the good work and articles!
But how well does it run strace test suite? On Debian, it is not that good: “Failing reason for strace on riscv64:
strace crashes the kernel.”
— https://buildd.debian.org/status/package.php?p=strace
See also https://buildd.debian.org/status/fetch.php?pkg=strace&arch=riscv64&ver=4.21-1&stamp=1522904836&raw=0
Yup that does all kinds of weird stuff to the kernel we are using. I had to hard-reboot. There are so many different issues I’m even having trouble formulating a bug report.