File:  [NetBSD Developer Wiki] / wikisrc / ports.mdwn
Revision 1.28: download - view: text, annotated - select for diffs
Tue Jul 6 17:43:33 2021 UTC (2 years, 4 months ago) by gutteridge
Branches: MAIN
CVS tags: HEAD
Fix typo

[[!meta title="Platforms supported by NetBSD"]]
NetBSD calls a supported architecture a 'port'. Most ports run on generic hardware and emulators, although some [commercial hardware]( also exists. The NetBSD Ports History page details the inclusion date for each port.

Ports are classified into three 'tiers' based on the current importance of the architecture and the level of community activity. Summarizing, the tiers can be viewed to represent ports that NetBSD will support, ports that NetBSD does its best to support, and ports which may be desupported soon. The tier for each port may change over time and is decided by <> based on input from users and developers.

#Tier I: Focus -- support is part of NetBSD's strategy

Focus ports are the architectures that NetBSD targets as part of its strategy.<br />
The platforms consist of modern server, embedded and desktop architectures.

The guidelines are as follows:

* Machine independent (MI) changes should benefit these ports.
* MI changes must be tested on at least one of these ports.
* It is the developer's responsibility to implement machine dependent (MD) support necessary for changes, fix build problems and aid in debugging with any platform-specific problems.
* Even within a port, common sense should be used (cf. the i386 port which still supports 486).
* Regressions in the automated NetBSD test suite (/usr/tests) are not allowed.

Currently there are 8 ports with Tier I status. They are:

[[!table data="""
Port		|CPU		|Machines						|Latest Release
[[aarch64]]	|aarch64	|64-bit ARM CPUs					|[9.2](
[[amd64]]	|x86_64		|64-bit x86-family machines with AMD and Intel CPUs	|[9.2](
[[evbarm]]	|arm		|ARM evaluation boards					|[9.2](
[[evbmips]]	|mips		|MIPS-based evaluation boards				|[9.2](
[[evbppc]]	|powerpc	|PowerPC-based evaluation boards			|[9.2](
[[hpcarm]]	|arm		|StrongARM based Windows CE PDA machines		|[9.2](
[[i386]]	|i386		|32-bit x86-family generic machines ("PC clones")	|[9.2](
[[sparc64]]	|sparc		|Sun UltraSPARC (64-bit)				|[9.2](
[[xen]]		|i386, x86_64	|Xen Virtual Machine Monitor				|[9.2](

#Tier II: Organic -- evolving at its own pace

Organic ports are highly valued by the NetBSD project, but their development is not as tightly mandated as that of the focus ports. Generally speaking, the hardware platforms of organic ports have lost their industrial relevance, or there is not enough community activity for the port to make it to the first tier. The guidelines are as follows:

* Generally speaking, the port boots and works, but keeping it working is the responsibility of the user community. This includes, but is not limited to, kernel changes and toolchain upgrades.
* Developers committing MI changes are still encouraged to keep ports up-to-date when it can be easily done.
* MI architecture decisions may penalize organic ports if there is a benefit for focus ports.
* If the port is not working at release time, a release is done without the port and the port is moved down to the life support tier.

Currently there are 49 ports with Tier II status. They are:

[[!table data="""
Port		|CPU		|Machines								|Latest Release
[[acorn32]]	|arm		|Acorn RiscPC/A7000/NC and compatibles					|[8.1](
[[algor]]	|mips		|Algorithmics MIPS evaluation boards					|[9.2](
[[alpha]]	|alpha		|Digital Alpha (64-bit)							|[9.2](
[[amiga]]	|m68k		|Commodore Amiga, MacroSystem DraCo					|[9.2](
[[amigappc]]	|powerpc	|PowerPC-based Amiga boards						|[9.2](
[[arc]]		|mips		|Machines following the Advanced RISC Computing spec			|[9.2](
[[atari]]	|m68k		|Atari TT030, Falcon, Hades						|[9.2](
[[bebox]]	|powerpc	|Be Inc's BeBox								|[9.2](
[[cats]]	|arm		|Chalice Technology's Strong Arm evaluation board			|[9.2](
[[cesfic]]	|m68k		|CES's FIC8234 VME processor board					|[9.2](
[[cobalt]]	|mips		|Cobalt Networks' Microservers						|[9.2](
[[dreamcast]]	|[[sh3]]	|Sega Dreamcast game console						|[9.2](
[[epoc32]]	|arm		|32bit PSION EPOC PDA							|[9.2](
[[emips]]	|mips		|Machines based on "Extensible MIPS"					|[9.2](
[[evbsh3]]	|[[sh3]]	|Evaluation boards with Renesas (Hitachi) Super-H SH3 and SH4 CPUs	|[9.2](
[[ews4800mips]]	|mips		|NEC's MIPS based EWS4800 workstations					|[9.2](
[[hp300]]	|m68k		|Hewlett-Packard 9000/300 and 400 series				|[9.2](
[[hppa]]	|hppa		|Hewlett-Packard 9000/700 series					|[9.2](
[[hpcmips]]	|mips		|MIPS based Windows CE PDA machines					|[9.2](
[[hpcsh]]	|[[sh3]]	|Renesas (Hitachi) SH3 and SH4 based Windows CE PDA machines		|[9.2](
[[ia64]]	|itanium	|Itanium family of processors						|none
[[ibmnws]]	|powerpc	|IBM Network Station Series 1000					|[9.2](
[[iyonix]]	|arm		|Iyonix ARM pc								|[9.2](
[[landisk]]	|[[sh3]]	|SH4 based NAS appliances by I-O DATA					|[9.2](
[[luna68k]]	|m68k		|OMRON Tateisi Electronics' LUNA series					|[9.2](
[[mac68k]]	|m68k		|Apple Macintosh							|[9.2](
[[macppc]]	|powerpc	|Apple Power Macintosh and clones					|[9.2](
[[mipsco]]	|mips		|Mips family of workstations and servers				|[9.2](
[[mmeye]]	|[[sh3]]	|Brains' mmEye Multi Media Server					|[9.2](
[[mvme68k]]	|m68k		|Motorola MVME 68k SBCs							|[9.2](
[[mvmeppc]]	|powerpc	|Motorola MVME PowerPC SBCs						|[9.2](
[[netwinder]]	|arm		|StrongARM based NetWinder machines					|[9.2](
[[news68k]]	|m68k		|Sony's m68k based "NET WORK STATION" series				|[9.2](
[[newsmips]]	|mips		|Sony's MIPS based "NET WORK STATION" series				|[9.2](
[[next68k]]	|m68k		|NeXT 68k 'black' hardware						|[9.2](
[[ofppc]]	|powerpc	|Generic OpenFirmware compliant PowerPC machines			|[9.2](
[[pmax]]	|mips		|Digital MIPS-based DECstations and DECsystems				|[9.2](
[[prep]]	|powerpc	|PReP (PowerPC Reference Platform) and CHRP machines			|[9.2](
[[riscv]]	|riscv		|RISC-V									|none
[[rs6000]]	|powerpc	|MCA-based IBM RS/6000 workstations					|[9.2](
[[sandpoint]]	|powerpc	|Motorola Sandpoint reference platform					|[9.2](
[[sbmips]]	|mips		|Broadcom SiByte evaluation boards					|[9.2](
[[sgimips]]	|mips		|Silicon Graphics' MIPS-based workstations				|[9.2](
[[shark]]	|arm		|Digital DNARD ("shark")						|[9.2](
[[sparc]]	|sparc		|Sun SPARC (32-bit)							|[9.2](
[[sun2]]	|m68k		|Sun 2									|[9.2](
[[sun3]]	|m68k		|Sun 3 and 3x								|[9.2](
[[vax]]		|vax		|Digital VAX								|[9.2](
[[x68k]]	|m68k		|Sharp X680x0 series							|[9.2](
[[zaurus]]	|arm		|Sharp C7x0/C860/C1000/C3x00 series PDA					|[9.2](

#Tier III: Life Support -- severely incapacitated or broken

Ports are moved to life support if they no longer function. The reasons can range from lack of community interest to the hardware becoming so rare that it is simply not available any more. If ports in life support are not shown to be working within a reasonable timeframe, they will be moved to the Attic. The guidelines are as follows:

* Organic ports get moved here if they do not complete a build for 6 months or are otherwise suspected to be broken.
* It is the responsibility of the users of an organic port to show it is working, not the other way around.
* Movement to life support causes a mail to be sent out to the port mailing list and the portmaster.
* Port will be bumped up to organic when it is shown to be working.
* If the port is not reported fixed within the next 6-12 months, it will be moved to the Attic.

Currently there are no ports with Tier III status.


#Ports by CPU architectures
This table contains the same set of ports as in the above list, but ordered by MACHINE_ARCH CPU architecture value (returned by
'uname -p') and showing a total of
16 CPU types. Machines of the same MACHINE_ARCH share the same
userland binaries (with a few device specific exceptions).
Both big endian (eb) and little endian (el) MIPS and SH3
ports are supported.

[[!table data="""
CPU		|Tier(s)	|Ports(s)
aarch64		|I		|[[aarch64]]
alpha		|II		|[[alpha]]
arm		|I, II		|[[acorn32]] [[cats]] [[epoc32]] [[evbarm]] [[hpcarm]] [[iyonix]] [[netwinder]] [[shark]] [[zaurus]]
hppa		|II		|[[hppa]]
i386		|I		|[[i386]] [[xen]]
m68010		|II		|[[sun2]]
m68k		|II		|[[amiga]] [[atari]] [[cesfic]] [[hp300]] [[luna68k]] [[mac68k]] [[mvme68k]] [[news68k]] [[next68k]] [[sun3]] [[x68k]]
mipseb		|I, II		|[[emips]] [[evbmips]] [[ews4800mips]] [[mipsco]] [[newsmips]] [[sbmips]] [[sgimips]]
mipsel		|I, II		|[[algor]] [[arc]] [[cobalt]] [[evbmips]] [[hpcmips]] [[pmax]] [[sbmips]]
powerpc		|I, II		|[[amigappc]] [[bebox]] [[evbppc]] [[ibmnws]] [[macppc]] [[mvmeppc]] [[ofppc]] [[prep]] [[rs6000]] [[sandpoint]]
[[sh3eb|sh3]]	|II		|[[evbsh3]] [[mmeye]]
[[sh3el|sh3]]	|II		|[[dreamcast]] [[evbsh3]] [[landisk]] [[hpcsh]]
sparc		|II		|[[sparc]]
sparc64		|I		|[[sparc64]] (Can also run sparc binaries)
vax		|II		|[[vax]]
x86_64		|I		|[[amd64]] (Can also run i386 binaries), xen

## Various ways of denoting ports and CPUs

When discussing ports and CPUs, there are two concepts, each of which have three ways of being named.  Strictly, the word port refers to the value shown by "uname -m", and typically corresponds to a directory under src/sys. supports aliases, which are passed as if they were a port, but expand to a port and a cpu (MACHINE and MACHINE_ARCH); an example is evbearmv7hf-el which expands to the evbarm port and earmv7hf cpu.

[[!table data="""
concept | /usr/share/mk variable | uname |
port | MACHINE      | uname -m | -m
cpu  | MACHINE_ARCH | uname -p | -a

Additonally, there are things referred to as ports which are not actually "uname -m" values, but are notably different than what would be expected from that port name.  One is xen, which is a system architecture variant of i386/amd64, and another is aarch64, which is a CPU type variant of evbarm.

CVSweb for NetBSD wikisrc <> software: FreeBSD-CVSweb