NetBSD runs on the Terasic DE0 Nano-SoC board, based on the Altera/Intel Cyclone V. The evbearmv7hf-el version of NetBSD should be used.

Hardware supported

Currently, ethernet, USB, micro-SD slot, and UART are supported. FPGA, GPIO's, SPI, ADC, accelerometer, and so on are not yet supported.

Image build and installation

Basically, you need to dd u-boot from sysutils/u-boot-de0-nanosoc into a new partition of type 162 (0xA2) in armv7.img, and that's it.

Here are the precise instructions under NetBSD.

$ gunzip -c armv7.img.gz > armv7-for-nanosoc.img
$ fdisk -f -u -2 -s 162/2048/2048 armv7-for-nanosoc.img
$ dd if=/usr/pkg/share/u-boot/de0-nanosoc/u-boot-with-spl.sfp of=armv7-for-nanosoc.img seek=2048 conv=notrunc
# dd if=armv7-for-nanosoc.img of=/dev/rXXN bs=1m conv=sync

dmesg

>> NetBSD/evbarm efiboot (arm), Revision 1.13 ()
Press return to boot now, any other key for boot prompt
booting netbsd - starting in 0 seconds.     
6727600+2108376+1397800 [494666+457680+477547]=0xb25820
[   1.0000000] NetBSD/evbarm (fdt) booting ...
[   1.0000000] [ Kernel symbol table missing! ]
[   1.0000000] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
[   1.0000000]     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
[   1.0000000]     2018, 2019, 2020 The NetBSD Foundation, Inc.  All rights reserved.
[   1.0000000] Copyright (c) 1982, 1986, 1989, 1991, 1993
[   1.0000000]     The Regents of the University of California.  All rights reserved.

[   1.0000000] NetBSD 9.0 (GENERIC) #0: 
[   1.0000000]  mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/evbarm/compile/GENERIC
[   1.0000000] total memory = 1023 MB
[   1.0000000] avail memory = 1003 MB
[   1.0000000] armfdt0 (root)
[   1.0000000] simplebus0 at armfdt0: Terasic DE-0(Atlas)
[   1.0000000] simplebus1 at simplebus0
[   1.0000000] cpus0 at simplebus0
[   1.0000000] simplebus2 at simplebus0
[   1.0000000] cpu0 at cpus0: Cortex-A9 r3p0 (Cortex V7A core)
[   1.0000000] cpu0: DC enabled IC enabled WB enabled LABT branch prediction enabled
[   1.0000000] cpu0: 32KB/32B 4-way L1 VIPT Instruction cache
[   1.0000000] cpu0: 32KB/32B 4-way write-back-locking-C L1 PIPT Data cache
[   1.0000000] cpu0: 512KB/32B 8-way write-back-locking-D L2 PIPT Unified cache
[   1.0000000] vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
[   1.0000000] cpu1 at cpus0
[   1.0000000] cycvrstmgr0 at simplebus1: reset manager
[   1.0000000] simplebus3 at simplebus1
[   1.0000000] gic0 at simplebus0: GIC
[   1.0000000] armgic0 at gic0: Generic Interrupt Controller, 256 sources (245 valid)
[   1.0000000] armgic0: 32 Priorities, 224 SPIs, 5 PPIs, 16 SGIs
[   1.0000000] cycvclkmgr0 at simplebus1: clock manager
[   1.0000000] syscon0 at simplebus1: System Controller Registers
[   1.0000000] syscon1 at simplebus1: System Controller Registers
[   1.0000000] syscon2 at simplebus1: System Controller Registers
[   1.0000000] l2cc0 at simplebus1
[   1.0000000] arml2cc0 at l2cc0: ARM PL310 r3p3 L2 Cache Controller (disabled)
[   1.0000000] arml2cc0: cache enabled
[   1.0000000] a9tmr0 at simplebus1
[   1.0000000] a9tmr0: interrupting on GIC irq 27
[   1.0000000] arma9tmr0 at a9tmr0: A9 Global 64-bit Timer (231 MHz)
[   1.0000000] com0 at simplebus1: ns16550a, working fifo
[   1.0000000] com0: console
[   1.0000000] com0: interrupting on GIC irq 194
[   1.0000000] com1 at simplebus1: ns16550a, working fifo
[   1.0000000] com1: interrupting on GIC irq 195
[   1.0000000] fregulator0 at simplebus0: 3.3V
[   1.0000000] usbnopphy0 at simplebus1: USB PHY
[   1.0000000] /soc/fpgamgr@ff706000 at simplebus1 not configured
[   1.0000000] /soc/gpio@ff70a000 at simplebus1 not configured
[   1.0000000] /soc/sram@ffff0000 at simplebus1 not configured
[   1.0000000] /soc/amba/pdma@ffe01000 at simplebus3 not configured
[   1.0000000] /soc/gpio@ff709000 at simplebus1 not configured
[   1.0000000] armpmu0 at simplebus0: Performance Monitor Unit
[   1.0000000] /soc/fpga_bridge@ff400000 at simplebus1 not configured
[   1.0000000] /soc/fpga_bridge@ff500000 at simplebus1 not configured
[   1.0000000] awge0 at simplebus1: GMAC
[   1.0000000] awge0: interrupting on GIC irq 152
[   1.0000000] awge0: Core version: 00001037
[   1.0000000] awge0: Ethernet address f2:00:74:49:ce:e1
[   1.0000000] awge0: HW feature mask: 170d69bf
[   1.0000000] awge0: Using enhanced descriptor format
[   1.0000000] ukphy0 at awge0 phy 1: OUI 0x0010a1, model 0x0022, rev. 2
[   1.0000000] ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
[   1.0000000] /soc/gpio@ff708000 at simplebus1 not configured
[   1.0000000] /soc/i2c@ffc04000 at simplebus1 not configured
[   1.0000000] /soc/eccmgr at simplebus1 not configured
[   1.0000000] dwcmmc0 at simplebus1: MHS (50000000 Hz)
[   1.0000000] dwcmmc0: interrupting on GIC irq 171
[   1.0000000] /soc/snoop-control-unit@fffec000 at simplebus1 not configured
[   1.0000000] /soc/timer0@ffc08000 at simplebus1 not configured
[   1.0000000] /soc/timer1@ffc09000 at simplebus1 not configured
[   1.0000000] /soc/timer2@ffd00000 at simplebus1 not configured
[   1.0000000] /soc/timer3@ffd01000 at simplebus1 not configured
[   1.0000000] dwctwo0 at simplebus1: DesignWare USB2 OTG
[   1.0000000] dwctwo0: interrupting on GIC irq 160
[   1.0000000] dwcwdt0 at simplebus1: DesignWare Watchdog Timer
[   1.0000000] dwcwdt0: default watchdog period is 15 seconds
[   1.0000000] gpioleds0 at simplebus0:
[   1.0000000] /soc/base_fpga_region at simplebus1 not configured
[   1.0000000] /soc/sdramedac at simplebus1 not configured
[   1.0000370] cpu1: Cortex-A9 r3p0 (Cortex V7A core)
[   1.0000370] cpu1: DC enabled IC enabled WB enabled LABT branch prediction enabled
[   1.0100305] cpu1: 32KB/32B 4-way L1 VIPT Instruction cache
[   1.0100305] cpu1: 32KB/32B 4-way write-back-locking-C L1 PIPT Data cache
[   1.0200189] cpu1: 512KB/32B 8-way write-back-locking-D L2 PIPT Unified cache
[   1.0300185] vfp1 at cpu1: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
[   1.0300185] armpmu0: interrupting on GIC irq 208
[   1.0400229] armpmu0: interrupting on GIC irq 209
[   1.0400229] sdmmc0 at dwcmmc0
[   1.1700197] usb0 at dwctwo0: USB revision 2.0
[   1.1800215] sdmmc0: SD card status: 4-bit, C6
[   1.1800215] ld0 at sdmmc0: <0x1b:0x534d:00000:0x10:0x7e34ebec:0x0d4>
[   1.1919757] uhub0 at usb0: NetBSD (0000) DWC2 root hub (0000), class 9/0, rev 2.00/1.00, addr 1
[   1.2049057] ld0: 14991 MB, 7614 cyl, 64 head, 63 sec, 512 bytes/sect x 30702592 sectors
[   1.2128828] ld0: 4-bit width, High-Speed/SDR25, 50.000 MHz
[   1.9200187] boot device: ld0
[   1.9200187] root on ld0a dumps on ld0b
[   1.9300197] root file system type: ffs
[   1.9300197] kern.module.path=/stand/evbarm/9.0/modules
[   1.9400190] WARNING: no TOD clock present
[   1.9400190] WARNING: using filesystem time
[   1.9528594] WARNING: CHECK AND RESET THE DATE!