Diff for /wikisrc/ports/evbarm.mdwn between versions 1.71 and 1.72

version 1.71, 2019/06/02 13:32:38 version 1.72, 2019/06/12 08:29:41
Line 51  set and the aarch64 architecture, built  Line 51  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  
   
 There are two basic ABIs on ARM.  One, called oabi, assumed a  
 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  ### Kernels and userland
   
 The evbarm userland can be used on any system that can run code of the  The evbarm userland can be used on any system that can run code of the

Removed from v.1.71  
changed lines
  Added in v.1.72


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