File:  [NetBSD Developer Wiki] / wikisrc / ports / evbarm.mdwn
Revision 1.106: download - view: text, annotated - select for diffs
Sat Mar 12 18:27:24 2022 UTC (6 months, 2 weeks ago) by wiki
Branches: MAIN
CVS tags: HEAD
uncommitted changes

[[!template id=port
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. However, the
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.

[[!toc levels=3]]

### CPU types

Various CPU variants are supported, e.g:

- earmv6hf - ARMv6-A with EABI and hardware floating point, e.g.
  the original Raspberry Pi.
- earmv7hf - ARMv7-A with EABI and hardware floating point, e.g.
  most recent and common 32-bit ARM boards. Supports up to 8 CPUs.
- earmv7hfeb - Same as the above, but with the CPU running in
  big endian mode.
- aarch64 - 64-bit ARMv8-A boards, e.g. all 64-bit hardware.
  Fully 64-bit kernel and userland. Running 32-bit binaries is supported
  with `compat32`.
- 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.

### Board specific information (often including installation information)

Most ARM boards (unless they have UEFI or Raspberry Pi firmware) require a
board-specific U-Boot image alongside the generic NetBSD image to be
written to their storage. In most cases board-specific U-Boot images can
be built using [pkgsrc](

 - [[Allwinner sunxi family SoCs|Allwinner]]
 - [[Apple Silicon|Apple]]
 - [[BeagleBone, BeagleBone Black, and PocketBeagle|BeagleBone]]
 - [[NVIDIA Tegra|Tegra]]
 - [[ODROID C1 and C1+|ODROID-C1]]
 - [[Raspberry Pi 1, 2, 3|Raspberry Pi]]
 - [[RockChip SoCs|RockChip]]
 - [[Terasic DE0 Nano-SoC|Cyclone5]]

**NOTE**: This list is incomplete. For a full list of supported device tree
based boards, please see the list of
[32-bit]( and
[64-bit]( device trees.

### QEMU

See the [[NetBSD/evbarm under QEMU|qemu_arm]] page for instructions on how to get started with QEMU.

### SSH configuration

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

See [creds_msdos(8)]( for
additional configuration options.

### 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.

[[!tag tier1port]]

CVSweb for NetBSD wikisrc <> software: FreeBSD-CVSweb