Diff for /wikisrc/ports/evbarm.mdwn between versions 1.67 and 1.83

version 1.67, 2018/11/24 22:46:45 version 1.83, 2020/01/08 06:45:15
Line 6  port_var2="earmeb" Line 6  port_var2="earmeb"
 port_var3="earmv6hf"  port_var3="earmv6hf"
 port_var4="earmv7hf"  port_var4="earmv7hf"
 port_var5="earmv7hfeb"  port_var5="earmv7hfeb"
   port_var6="aarch64"
 port_var_install_notes="evbarm-earm"  port_var_install_notes="evbarm-earm"
 cur_rel="8.0"  cur_rel="8.1"
 future_rel="9.0"  future_rel="9.0"
 changes_cur="8.0"  changes_cur="8.1"
 changes_future="9.0"  changes_future="9.0"
 thumbnail="http://www.netbsd.org/images/ports/evbarm/adi_brh.gif"  thumbnail="//www.netbsd.org/images/ports/evbarm/adi_brh.gif"
 about="""  about="""
 NetBSD/evbarm is the port of NetBSD to various evaluation and prototyping  NetBSD/evbarm is the port of NetBSD to various evaluation and prototyping
 boards based on CPUs implementing the ARM architecture. NetBSD/evbarm also  boards based on CPUs implementing the ARM architecture. NetBSD/evbarm also
 supports some specific embedded system products based on prototype board  supports some specific embedded system products based on prototype board
 designs.  designs.
   
 Matt Thomas is the maintainer of NetBSD/evbarm.  
   
 ### CPU types  ### CPU types
   
 The evbarm port can be built with a variety of CPU options, corresponding to the  The evbarm port can be built with a variety of CPU options, corresponding to the
Line 27  The evbarm port can be built with a vari Line 26  The evbarm port can be built with a vari
 There are  There are
 four main variables: the word size, the instruction set, the  four main variables: the word size, the instruction set, the
 endianness, and whether there is hardware floating point.  By default  endianness, and whether there is hardware floating point.  By default
 the CPU type is "earm", and this implies aarch32 (32-bit), \todo cpu  the CPU type is "earm", and this implies aarch32 (32-bit), earmv5 cpu
 architecture, little endian (el when explicitly stated), and soft  architecture, little endian (el when explicitly stated), and soft
 (Emulated) floating point.  Another example, suitable for Raspberry PI  (Emulated) floating point.  Another example, suitable for Raspberry PI
 2, is earmv7hf, which is aarch32, the v7 instruction set, little  2, is earmv7hf, which is aarch32, the v7 instruction set, little
Line 51  set and the aarch64 architecture, built  Line 50  set and the aarch64 architecture, built 
 (Note also that armv8 is the first architecture to support aarch64, so  (Note also that armv8 is the first architecture to support aarch64, so
 this will not be an issue until at least armv9.)  this will not be an issue until at least armv9.)
   
 #### ABI types  ### QEMU
   
 There are two basic ABIs on ARM.  One, called oabi, assumed a  See the [[NetBSD/evbarm under QEMU|qemu_arm]] page for instructions on how to get started with QEMU.
 particular kind of hardware floating point (FPA).  This results in  
 faulting any floating-point instructions for kernel emulation on a  
 vast number of CPus, which is very slow.  A newer one, called eabi,  
 has two variants.  Both have stricter alignment rules, tending to 8  
 byte rather than 4 bytes for 8-byte types (but actually read the specs  
 if you care).  The one without "hf" emulates floating point without  
 causing traps/emulation, and "hf" uses VFP instructions, which are  
 present on modern CPUs. See the  
 [TS-7200](https://wiki.embeddedarm.com/wiki/EABI_vs_OABI) and  
 [Debian](https://wiki.debian.org/ArmEabiPort) documentation.  
   
 Now, EABI is normal, and OABI is crufty.  The only real reason NetBSD  
 retains OABI support is binary compatibility with older releases.  The  
 "arm" and "armeb" MACHINE_ARCH targets are OABI; the rest of the  
 targets, all having "earm" are EABI.  
   
 \todo CHECK THIS: The "aarch64" MACHINE_ARCH target is an EABI variant.  
   
 ### Relationship of MACHINE_ARCH to official ARM terminology  
   
 Note that these are all little endian, and have big endian variants  
 with a "eb" suffix.  Unless otherwise noted, all use the A32 or  
 aarch32 instruction set.  
   
 [[!table data=<<EOT  
 MACHINE_ARCH |bits | ARM architecture version            |ABI  
 arm          |32   |\todo ?                              |oabi  
 earm         |32   |alias for earmv5 (\todo why?)        |eabi  
 earmv4       |32   |armv4 (no thumb, so ok on strongarm) |eabi  
 earmv5       |32   |armv5t                               |eabi  
 earmv6       |32   |armv6                                |eabi  
 earmv7       |32   |armv7                                |eabi  
 aarch64      |64   |armv8 in aarch64 mode                |\todo ? eabi  
 EOT]]  
   
 \todo Explain why, if we have armv5, we still have earm as a MACHINE_ARCH.  
   
 \todo Explain why aarch64 is a MACHINE_ARCH, when it seems like it  
 should be something like armv8hf_64.  
   
 \todo Explain if MACHINE_ARCH values correspond to a particular  
 argument to some CPU selection command in gcc (and/or clang).  
   
 ### Kernels and userland  
   
 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.  
   
 ### anita and 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.  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.
   
Line 111  anita can be used to test builds.  (In a Line 62  anita can be used to test builds.  (In a
  - 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.
   
 ### Board specific information  ### invisible.ca builds
   
   NetBSD developer Jared McNeill provides [builds of NetBSD-current for a vast variety of hardware.](https://www.invisible.ca/arm/)   In addition to the standard build, these images have board-specific uboot contents.  See also /usr/pkgsrc/sysutils/u-boot*.
   
   ### Board specific information (often including installation information)
  - [[Allwinner sunxi family SoCs|Allwinner]]   - [[Allwinner sunxi family SoCs|Allwinner]]
  - [[BeagleBone and BeagleBone Black|BeagleBone]]   - [[BeagleBone, BeagleBone Black, and PocketBeagle|BeagleBone]]
  - [[NVIDIA Tegra|Tegra]]   - [[NVIDIA Tegra|Tegra]]
  - [[ODROID C1 and C1+|ODROID-C1]]   - [[ODROID C1 and C1+|ODROID-C1]]
  - [[Raspberry Pi 1, 2 and 3|Raspberry Pi]]   - [[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
   
   <!--TODO: Additional configuration options are available on creds_msdos.8-->
   
   """
 supported_hardware="""  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]]  [[!toc startlevel=3]]
   
Line 322  Support for NVIDIA [[Tegra]] K1 SoCs is  Line 289  Support for NVIDIA [[Tegra]] K1 SoCs is 
 ### Raspberry Pi Foundation **Raspberry Pi**/**Raspberry Pi 2**/**Raspberry Pi 3**  ### 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.  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**  ### Samsung **SMDK2410**
   
 The SMDK2410 is the reference platform for the Samsung **S3C2410** processor,  The SMDK2410 is the reference platform for the Samsung **S3C2410** processor,

Removed from v.1.67  
changed lines
  Added in v.1.83


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