--- wikisrc/ports/evbarm.mdwn 2018/10/26 07:00:09 1.49 +++ wikisrc/ports/evbarm.mdwn 2020/02/15 08:00:06 1.86 @@ -6,53 +6,90 @@ port_var2="earmeb" port_var3="earmv6hf" port_var4="earmv7hf" port_var5="earmv7hfeb" +port_var6="aarch64" port_var_install_notes="evbarm-earm" -cur_rel="8.0" -future_rel="9.0" -changes_cur="8.0" -changes_future="9.0" -thumbnail="http://www.netbsd.org/images/ports/evbarm/adi_brh.gif" +cur_rel="9.0" +future_rel="10.0" +changes_cur="9.0" +changes_future="10.0" +thumbnail="//www.netbsd.org/images/ports/evbarm/adi_brh.gif" about=""" NetBSD/evbarm is the port of NetBSD to various evaluation and prototyping boards based on CPUs implementing the ARM architecture. NetBSD/evbarm also supports some specific embedded system products based on prototype board designs. -Matt Thomas is the maintainer of NetBSD/evbarm. - ### CPU types -The evbarm port can be built with a variety of CPU options. There are -three main variables: the instruction set, the endianness, and whether -there is hardware floating point. By default the CPU type is "earm", -and this implies little endian (el when explicitly stated), and soft -(emulated) floating point. Another example, suitable for Raspberry PI -2, is earmv7hf, which is the v7 instruction set, little endian, -and hardware floating point. +The evbarm port can be built with a variety of CPU options, corresponding to the +[large array of ARM CPU architectures](https://en.wikipedia.org/wiki/ARM_architecture#Cores). +There are +four main variables: the word size, the instruction set, the +endianness, and whether there is hardware floating point. By default +the CPU type is "earm", and this implies aarch32 (32-bit), earmv5 cpu +architecture, little endian (el when explicitly stated), and soft +(Emulated) floating point. Another example, suitable for Raspberry PI +2, is earmv7hf, which is aarch32, the v7 instruction set, little +endian, and hardware floating point. Typically, various boards are best compiled with a CPU type that matches the board's CPU and floating point support, but generally a lower CPU instruction set version is workable on a newer board. See build.sh and look for aliases for the evbarm port. -### Kernels and userland +Through NetBSD 8, the evbarm port has supported exclusively the +aarch32 (32-bit CPU) sub-family of the ARM architecture. Some +processors, such as many supporting the armv8 CPU architecture, also +support a 64-bit instruction set, referred to as aarch64. This is +sometimes referred to as a distinct port, [[NetBSD/aarch64|aarch64]], +with code in src/sys/arch/aarch64, but it is built as the evbarm port +with aarch64 cpu type, and available as the alias evbarm64. + +Note that MACHINE_ARCH=aarch64 currently refers to the A64 instruction +set and the aarch64 architecture, built for the armv8 architecture. +(Note also that armv8 is the first architecture to support aarch64, so +this will not be an issue until at least armv9.) + +### QEMU + +See the [[NetBSD/evbarm under QEMU|qemu_arm]] page for instructions on how to get started with QEMU. + +### anita + +anita can be used to test builds. (In addition to anita, install qemu and dtb-arm-vexpress from pkgsrc.) The release subdirectory should follow the naming convention on the autobuild cluster, used below. + + - evbarm-earmv7hf uses "qemu-system-arm -M vexpress-a15" + - evbarm-aarch64 uses "qemu-system-aarch64 -M virt" + - Information on how to test emulated versions of other specific hardware is welcome. + +### armbsd.org builds -The evbarm userland can be used on any system that can run code of the -CPU type used for the build. Typically, a particular board requires a -kernel for that board. +NetBSD developer Jared McNeill provides [builds of NetBSD 9 and -current for a vast variety of hardware.](https://www.armbsd.org/) In addition to the standard build, these images have board-specific U-Boot contents. See also /usr/pkgsrc/sysutils/u-boot*. -### Board specific information +### Board specific information (often including installation information) - [[Allwinner sunxi family SoCs|Allwinner]] - - [[BeagleBone and BeagleBone Black|BeagleBone]] + - [[BeagleBone, BeagleBone Black, and PocketBeagle|BeagleBone]] - [[NVIDIA Tegra|Tegra]] - [[ODROID C1 and C1+|ODROID-C1]] - [[Raspberry Pi 1, 2 and 3|Raspberry Pi]] + - [[RockChip SoCs|RockChip]] -""" +### SSH configuration for installtion + +The default configuration will connect to the local network via DHCP and +run an SSH server. In order to use the SSH server, we must configure +users. This can be done by writing to the SD card's MS-DOS partition. + +Create a creds.txt file and use: + + useradd user password + + +""" supported_hardware=""" -**NOTE**: This list is incomplete. For a full list of configurations, please see the [evbarm kernel configs](http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/evbarm/conf/) directory in CVS. +**NOTE**: This list is incomplete. For a full list of boards, please see the [GENERIC DTS files](http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/arch/evbarm/conf/GENERIC). [[!toc startlevel=3]] @@ -252,6 +289,8 @@ Support for NVIDIA [[Tegra]] K1 SoCs is ### Raspberry Pi Foundation **Raspberry Pi**/**Raspberry Pi 2**/**Raspberry Pi 3** The [[Raspberry Pi]] is a low-cost credit-card-sized computer from the Raspberry Pi Foundation. The Raspberry Pi, Pi 2, and Pi 3 are supported. +See the [[Raspberry Pi 1, 2 and 3|Raspberry Pi]] page for much more information. + ### Samsung **SMDK2410** The SMDK2410 is the reference platform for the Samsung **S3C2410** processor,