File:  [NetBSD Developer Wiki] / wikisrc / ports / evbarm.mdwn
Revision 1.88: download - view: text, annotated - select for diffs
Tue Sep 15 07:21:58 2020 UTC (2 months, 1 week ago) by nia
Branches: MAIN
CVS tags: HEAD
remove pre-fdt nonsense, update link to supported boards to a link that works

restructure page slightly to prioritize important information

    1: [[!template id=port
    2: port="evbarm"
    3: port_alt="arm"
    4: port_var1="earm"
    5: port_var2="earmeb"
    6: port_var3="earmv6hf"
    7: port_var4="earmv7hf"
    8: port_var5="earmv7hfeb"
    9: port_var6="aarch64"
   10: port_var_install_notes="evbarm-earm"
   11: cur_rel="9.0"
   12: future_rel="10.0"
   13: changes_cur="9.0"
   14: changes_future="10.0"
   15: thumbnail="//www.netbsd.org/images/ports/evbarm/adi_brh.gif"
   16: about="""
   17: NetBSD/evbarm is the port of NetBSD to various evaluation and prototyping
   18: boards based on CPUs implementing the ARM architecture. NetBSD/evbarm also
   19: supports some specific embedded system products based on prototype board
   20: designs.
   21: 
   22: ### CPU types
   23: 
   24: The evbarm port can be built with a variety of CPU options, corresponding to the
   25: [large array of ARM CPU architectures](https://en.wikipedia.org/wiki/ARM_architecture#Cores).
   26: There are
   27: four main variables: the word size, the instruction set, the
   28: endianness, and whether there is hardware floating point.  By default
   29: the CPU type is "earm", and this implies aarch32 (32-bit), earmv5 cpu
   30: architecture, little endian (el when explicitly stated), and soft
   31: (Emulated) floating point.  Another example, suitable for Raspberry PI
   32: 2, is earmv7hf, which is aarch32, the v7 instruction set, little
   33: endian, and hardware floating point.
   34: 
   35: Typically, various boards are best compiled with a CPU type that
   36: matches the board's CPU and floating point support, but generally a
   37: lower CPU instruction set version is workable on a newer board.  See
   38: build.sh and look for aliases for the evbarm port.
   39: 
   40: Through NetBSD 8, the evbarm port has supported exclusively the
   41: aarch32 (32-bit CPU) sub-family of the ARM architecture.  Some
   42: processors, such as many supporting the armv8 CPU architecture, also
   43: support a 64-bit instruction set, referred to as aarch64.  This is
   44: sometimes referred to as a distinct port, [[NetBSD/aarch64|aarch64]],
   45: with code in src/sys/arch/aarch64, but it is built as the evbarm port
   46: with aarch64 cpu type, and available as the alias evbarm64.
   47: 
   48: Note that MACHINE_ARCH=aarch64 currently refers to the A64 instruction
   49: set and the aarch64 architecture, built for the armv8 architecture.
   50: (Note also that armv8 is the first architecture to support aarch64, so
   51: this will not be an issue until at least armv9.)
   52: 
   53: ### armbsd.org builds
   54: 
   55: 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*.
   56: 
   57: ### Board specific information (often including installation information)
   58: 
   59:  - [[Allwinner sunxi family SoCs|Allwinner]]
   60:  - [[BeagleBone, BeagleBone Black, and PocketBeagle|BeagleBone]]
   61:  - [[NVIDIA Tegra|Tegra]]
   62:  - [[ODROID C1 and C1+|ODROID-C1]]
   63:  - [[Raspberry Pi 1, 2 and 3|Raspberry Pi]]
   64:  - [[RockChip SoCs|RockChip]]
   65:  - [[Terasic DE0 Nano-SoC|Cyclone5]]
   66: 
   67: **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.
   68: 
   69: ### QEMU
   70: 
   71: See the [[NetBSD/evbarm under QEMU|qemu_arm]] page for instructions on how to get started with QEMU.
   72: 
   73: ### anita
   74: 
   75: 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.
   76: 
   77:  - evbarm-earmv7hf uses "qemu-system-arm -M vexpress-a15"
   78:  - evbarm-aarch64 uses "qemu-system-aarch64 -M virt"
   79:  - Information on how to test emulated versions of other specific hardware is welcome.
   80: 
   81: [[!tag tier1port]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb