--- wikisrc/ports/evbarm.mdwn 2020/09/15 07:21:58 1.88 +++ wikisrc/ports/evbarm.mdwn 2020/09/15 07:33:25 1.89 @@ -14,41 +14,35 @@ 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. +NetBSD/evbarm is the port of NetBSD to various systems based on chips +implementing the ARM architecture. The "evb" component is a reference +to evaluation boards, the original target of the port, but this +is no longer relevant - NetBSD/evbarm now runs on a range of +hardware based on APCI or devicetrees, including a range of development +boards, powerful servers, virtual machines, and even some laptops. +""" ### CPU types -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. - -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.) +Various CPU variants are supported, e.g: + +- evbarm-earmv6hf - ARMv6 with EABI and hardware floating point, e.g. + the original Raspberry Pi. +- evbarm-earmv7hf - ARMv7 with EABI and hardware floating point, e.g. + most recent and common 32-bit ARM boards. +- evbarm-earmv7hfeb - Same as the above, but with the CPU running in + big endian mode. +- evbarm-aarch64 - 64-bit ARMv8 +- evbarm-aarch64eb - Same as the above, but with the CPU running in + big endian mode. + +evbarm variants are little endian unless otherwise stated. NetBSD provides +big endian images primarily for testing purposes and to ensure that the code +is endian-clean. + +Since NetBSD 9.0, 64-bit ARM processors are supported (referred to here +as aarch64). These run with fully 64-bit kernels and userland. Running +32-bit ARM binaries is also supported with `compat32`. ### armbsd.org builds