[[!meta title="NetBSD/evbarm on DE0 Nano-SoC"]] 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. [[!template id=programlisting text=""" $ 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 [[!template id=programlisting text=""" >> 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! """]]