version 1.88, 2020/09/15 07:21:58
|
version 1.98, 2020/10/20 13:42:03
|
Line 1
|
Line 1
|
[[!template id=port |
[[!template id=port |
port="evbarm" |
port="evbarm" |
port_alt="arm" |
port_alt="arm" |
port_var1="earm" |
port_var1="earmv6hf" |
port_var2="earmeb" |
port_var2="earmv7hf" |
port_var3="earmv6hf" |
port_var3="earmv7hfeb" |
port_var4="earmv7hf" |
port_var4="aarch64" |
port_var5="earmv7hfeb" |
no_install_notes=YES <!-- XXX update this after 9.1 --> |
port_var6="aarch64" |
|
port_var_install_notes="evbarm-earm" |
port_var_install_notes="evbarm-earm" |
cur_rel="9.0" |
pkg_rel="9.0" |
|
cur_rel="9.1" |
future_rel="10.0" |
future_rel="10.0" |
changes_cur="9.0" |
changes_cur="9.1" |
changes_future="10.0" |
changes_future="10.0" |
thumbnail="//www.netbsd.org/images/ports/evbarm/adi_brh.gif" |
thumbnail="//wiki.netbsd.org/ports/evbarm/images/beaglebone.jpg" |
about=""" |
about=""" |
NetBSD/evbarm is the port of NetBSD to various evaluation and prototyping |
NetBSD/evbarm is the port of NetBSD to various systems based on chips |
boards based on CPUs implementing the ARM architecture. NetBSD/evbarm also |
implementing the ARM architecture. The "evb" component is a reference |
supports some specific embedded system products based on prototype board |
to evaluation boards, the original target of the port. However, the |
designs. |
single GENERIC/GENERIC64 kernel now supports a range of machines including |
|
development boards, virtual machines, "ServerReady" (SBBR/SBSA) hardware, |
|
and laptops through both device tree and ACPI based booting. |
|
""" |
|
supported_hardware=""" |
### CPU types |
### CPU types |
|
|
The evbarm port can be built with a variety of CPU options, corresponding to the |
Various CPU variants are supported, e.g: |
[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.) |
|
|
|
### armbsd.org builds |
|
|
|
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*. |
- evbarm-earmv6hf - ARMv6-A with EABI and hardware floating point, e.g. |
|
the original Raspberry Pi. |
|
- evbarm-earmv7hf - ARMv7-A 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-A |
|
- evbarm-aarch64eb - Same as the above, but with the CPU running in |
|
big endian mode. |
|
|
|
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`. The 64-bit |
|
kernel supports up to 256 CPUs and the 32-bit kernel supports up to 8. |
|
|
|
Since NetBSD 9.0, there is support for symmetric and asymmetrical |
|
multiprocessing (aka big.LITTLE). |
|
|
|
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. |
|
|
### Board specific information (often including installation information) |
### Board specific information (often including installation information) |
|
|
Line 64 NetBSD developer Jared McNeill provides
|
Line 58 NetBSD developer Jared McNeill provides
|
- [[RockChip SoCs|RockChip]] |
- [[RockChip SoCs|RockChip]] |
- [[Terasic DE0 Nano-SoC|Cyclone5]] |
- [[Terasic DE0 Nano-SoC|Cyclone5]] |
|
|
**NOTE**: This list is incomplete. For a full list of supported boards, please see the list of [32-bit](https://github.com/NetBSD/src/blob/netbsd-9/sys/arch/evbarm/conf/GENERIC#L18) and [64-bit](https://github.com/NetBSD/src/blob/netbsd-9/sys/arch/evbarm/conf/GENERIC64#L20) device trees. |
**NOTE**: This list is incomplete. For a full list of supported device tree |
|
based boards, please see the list of |
|
[32-bit](https://github.com/NetBSD/src/blob/netbsd-9/sys/arch/evbarm/conf/GENERIC#L18) and |
|
[64-bit](https://github.com/NetBSD/src/blob/netbsd-9/sys/arch/evbarm/conf/GENERIC64#L20) device trees. |
|
|
### QEMU |
### QEMU |
|
|
See the [[NetBSD/evbarm under QEMU|qemu_arm]] page for instructions on how to get started with QEMU. |
See the [[NetBSD/evbarm under QEMU|qemu_arm]] page for instructions on how to get started with QEMU. |
|
""" |
|
additional=""" |
|
### armbsd.org builds |
|
|
|
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*. |
|
|
### anita |
### 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. |
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-earmv7hf uses 'qemu-system-arm -M vexpress-a15' |
- evbarm-aarch64 uses "qemu-system-aarch64 -M virt" |
- evbarm-aarch64 uses 'qemu-system-aarch64 -M virt' |
- Information on how to test emulated versions of other specific hardware is welcome. |
- Information on how to test emulated versions of other specific hardware is welcome. |
|
""" |
|
]] |
|
|
[[!tag tier1port]] |
[[!tag tier1port]] |