Group: Hardware/Components/SOCs
From LibrePlanet
< Group:Hardware | Components
(Move A20) |
m (fix grammar) |
||
(33 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | {| class="wikitable" | + | <!-- remove sidebar right --> |
+ | {{#tweekihide:sidebar-right}} | ||
+ | |||
+ | == Introduction == | ||
+ | |||
+ | This page has information about various system on a chip. | ||
+ | |||
+ | Note that some information automatically applies to devices using systems on a chip mentioned here and some don't. | ||
+ | |||
+ | For instance: | ||
+ | * If a system on a chip has a GPU, devices using that system on a chip will also get this GPU (unless there are versions without GPU, and that is not mentioned here). | ||
+ | * If a system on a chip supports WiFi, PCIe, or other busses, and that the device didn't connect that to connectors, users won't be able to use these busses. | ||
+ | * If a system on a chip can boot with free software, it doesn't mean that all the devices using it can. Some devices use restricted boot in ways that can't be disabled unless security flaws are found in the hardware. | ||
+ | |||
+ | Though: | ||
+ | * That information can be used to rule out devices. For instance if a device has a system on a chip that doesn't boot with free software, it most likely can't boot with free software. | ||
+ | * It can be used to see which chips can be used to produce devices that boot with free software or could somehow gain the RYF certification. | ||
+ | |||
+ | == Information == | ||
+ | |||
+ | {| class="wikitable sortable" | ||
+ | |- | ||
! Vendor | ! Vendor | ||
! Product | ! Product | ||
+ | ! CPU architecture | ||
! GPU | ! GPU | ||
− | ! Bootloader status | + | ! RYF issues |
+ | ! Linux upstream status | ||
+ | ! Bootloader upstream status | ||
! Busses for WiFi | ! Busses for WiFi | ||
− | ! | + | ! Companion chips |
+ | ! Documentation | ||
+ | ! Minumum quantities | ||
+ | ! Available until | ||
+ | |- | ||
+ | | Rockchip | ||
+ | | RK3399 | ||
+ | | arm64 | ||
+ | | | ||
+ | * Well supported by Panfrost (the main target is the RK3399) | ||
+ | * Can run Supertuxkart | ||
+ | | | ||
+ | * A nonfree firmware is required for using the USB Type-C display port output | ||
+ | * There is now a free software implementation for the RAM initialization in u-boot | ||
+ | * Can boot with fully free software | ||
+ | * May have nonfree firmware for hardware video decoding | ||
+ | * Probably has free software USB3/XHCI | ||
+ | | ? | ||
+ | | ? | ||
+ | | | ||
+ | * PCIe | ||
+ | * USB | ||
+ | * Other? | ||
+ | | ? | ||
+ | | ? | ||
+ | | ? | ||
+ | | ? | ||
|- | |- | ||
− | + | | Amlogic | |
− | + | | S805X | |
+ | | Aarch64 | ||
+ | | Mali-450 (Lima) | ||
+ | | | ||
+ | * [https://github.com/angerman/meson64-tools Free software images tools WIP] | ||
+ | * Some binaries are in the bootloader, some of which are free some are nonfree:<ref>https://gitlab.denx.de/u-boot/u-boot/raw/master/doc/board/amlogic/libretech-ac.rst</ref><ref>From #linux-amlogic on Freenode:<br/> | ||
+ | 10:10 < repk> GNUtoo: bl31 is secure monitor or the ATF runtime, it runs in EL3 and dispatch SMC to secure/non-secure world. bl301 is a part of the SCP firmware. On meson the SCP is run by a microcontroller (cortex-M3) and handles power related stuff.<br/> | ||
+ | 10:10 < repk> see https://trustedfirmware-a.readthedocs.io/en/latest/ for more on that<br/> | ||
+ | 10:15 < repk> So BL1 is the CPU boot ROM code executes in SRAM and lunch BL2 which initializes DDR load all remaining firmwares (BL30 SCP, BL31 secure monitor, BL32 TEE, BL33 u-boot) in it. Then BL31 installs the secure monitor sends bl30 to SCP, and gives control to BL32 (if exists e.g. OPTEE) and BL33 (usually u-boot). Then u-boot loads boots linux.<br/> | ||
+ | </ref>: | ||
+ | ** bl301.bin: ? | ||
+ | ** bl21.bin: ? | ||
+ | ** acs.bin: ? | ||
+ | ** bl2.bin: First stage bootloader. Initialize the RAM. | ||
+ | ** bl30.bin: part of the SCP (power management) firmware. Runs on a cortex-M3? | ||
+ | ** bl31.img | ||
+ | | TODO: Look at status | ||
+ | | TODO: Look at status | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | Amlogic | ||
+ | | S905X | ||
+ | | Aarch64 | ||
+ | | | ||
+ | | | ||
+ | * [https://github.com/angerman/meson64-tools Free software images tools WIP] | ||
+ | * Some binaries are in the bootloader, some of which are free some are nonfree:<ref>https://source.denx.de/u-boot/u-boot/-/raw/master/doc/board/amlogic/libretech-cc.rst</ref>: | ||
+ | ** bl2.bin: First stage bootloader. Initialize the RAM. | ||
+ | ** acs.bin: RAM init data? | ||
+ | ** bl21.bin: ? | ||
+ | ** bl30.bin: part of the SCP (power management) firmware. Runs on a cortex-M3? | ||
+ | ** bl301.bin: ? | ||
+ | ** <s>bl31.img</s> Free software replacement now in arm trusted firmware<ref>https://trustedfirmware-a.readthedocs.io/en/latest/plat/meson-gxl.html</ref>. | ||
+ | | TODO: Look at status | ||
+ | | TODO: Look at status | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | Texas instruments | ||
+ | | DM370(like omap3 but higher speed) | ||
+ | | ARMv7 | ||
| <span style="background:red">Powervr</span> | | <span style="background:red">Powervr</span> | ||
− | | <span style="background:green">good (free software unsigned possible)</span> | + | | |
+ | * No free GPU driver | ||
+ | | Good | ||
+ | | | ||
+ | * <span style="background:green">good (free software unsigned possible)</span> | ||
| | | | ||
* USB Host | * USB Host | ||
* Probably has no mPCIe | * Probably has no mPCIe | ||
+ | | ? | ||
+ | | ? | ||
+ | | ? | ||
| ? | | ? | ||
|- | |- | ||
− | + | | Texas instruments | |
− | + | | omap4 | |
+ | | ARMv7 | ||
| <span style="background:red">Powervr</span> | | <span style="background:red">Powervr</span> | ||
− | | | + | | |
+ | * No free GPU driver | ||
+ | | Probably good | ||
+ | | | ||
+ | * Good | ||
| | | | ||
* USB Host | * USB Host | ||
* Probably has no mPCIe | * Probably has no mPCIe | ||
+ | | ? | ||
+ | | ? | ||
+ | | ? | ||
| ? | | ? | ||
|- | |- | ||
− | + | | Allwinner Tech | |
− | + | | A31 | |
+ | | ARMv7 | ||
| <span style="background:red">Powervr</span> | | <span style="background:red">Powervr</span> | ||
− | | | + | | |
+ | * No free driver for the GPU (PowerVR) | ||
+ | | [https://linux-sunxi.org/Linux_mainlining_effort very few missing drivers] | ||
+ | | [https://linux-sunxi.org/Mainline_U-Boot ?] | ||
| | | | ||
* USB Host | * USB Host | ||
| ? | | ? | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| ? | | ? | ||
− | |||
| ? | | ? | ||
| ? | | ? | ||
Line 73: | Line 158: | ||
* A13 | * A13 | ||
* A20 | * A20 | ||
+ | | ARMv7 | ||
| Mali | | Mali | ||
| | | | ||
− | * WIP | + | * GPU (WIP) |
− | | | + | * Video encoding/decoding offload processor (WIP) |
− | | | + | | [https://linux-sunxi.org/Linux_mainlining_effort very few missing drivers] |
− | + | | [https://linux-sunxi.org/Mainline_U-Boot Good] | |
| | | | ||
* USB Host | * USB Host | ||
Line 88: | Line 174: | ||
| Samsung | | Samsung | ||
| Exynos 3 Single -> Exynos 5 dual | | Exynos 3 Single -> Exynos 5 dual | ||
+ | | armv7 | ||
| Mali | | Mali | ||
| | | | ||
Line 102: | Line 189: | ||
| Samsung | | Samsung | ||
| Exynos 5 Octa | | Exynos 5 Octa | ||
+ | | ? | ||
| <span style="background:red">Powervr</span> | | <span style="background:red">Powervr</span> | ||
| | | | ||
Line 116: | Line 204: | ||
| Ingenic | | Ingenic | ||
| JZ4760 | | JZ4760 | ||
+ | | ? | ||
| Vivante GC200 | | Vivante GC200 | ||
| ? | | ? | ||
Line 132: | Line 221: | ||
| NXP | | NXP | ||
| I.MX 25 | | I.MX 25 | ||
+ | | ARM 32bit (which one?) | ||
| No GPU | | No GPU | ||
| No known issues | | No known issues | ||
Line 146: | Line 236: | ||
| NXP | | NXP | ||
| I.MX 50 | | I.MX 50 | ||
+ | | ARMv7? | ||
| ? | | ? | ||
| | | | ||
Line 165: | Line 256: | ||
| NXP | | NXP | ||
| I.MX 51 | | I.MX 51 | ||
− | | | + | | ARMv7 |
+ | | <span style="background:red">Adreno</span> | ||
| | | | ||
Issues: | Issues: | ||
Line 184: | Line 276: | ||
| NXP | | NXP | ||
| | | | ||
− | * i. | + | * i.MX 6 Dual |
− | * i. | + | * i.MX 6 Quad |
− | * i. | + | * i.MX 6 DualPlus |
− | * i. | + | * i.MX 6 QuadPlus |
+ | | ARMv7 | ||
| Vivante | | Vivante | ||
| | | | ||
Line 199: | Line 292: | ||
| | | | ||
* USB host | * USB host | ||
− | * ? | + | * PCIe (i.MX 6 Quad, others?) |
| ? | | ? | ||
| | | | ||
Line 209: | Line 302: | ||
* i.MX6 i.MX6 SoloLite | * i.MX6 i.MX6 SoloLite | ||
* i.MX6 i.MX6 SoloX | * i.MX6 i.MX6 SoloX | ||
+ | | ARMv7 | ||
| ? | | ? | ||
| | | | ||
Line 232: | Line 326: | ||
* I.MX6 UltraLite | * I.MX6 UltraLite | ||
* I.MX6 UUL | * I.MX6 UUL | ||
+ | | ARMv7 | ||
| No GPU | | No GPU | ||
| Good: | | Good: | ||
Line 240: | Line 335: | ||
| Good | | Good | ||
| Good | | Good | ||
+ | | | ||
+ | * USB host | ||
+ | * ? | ||
+ | | ? | ||
+ | | | ||
+ | | ? | ||
+ | | ? | ||
+ | |- | ||
+ | |||
+ | | NXP | ||
+ | | i.MX8 (models?) | ||
+ | | ARM 64bit? | ||
+ | | Vivante | ||
+ | | | ||
+ | Issues: | ||
+ | * Nonfree DDR4 controller firmware required to boot | ||
+ | * HDMI firmware? | ||
+ | * Video encoding/decoding offload processor | ||
+ | Optional: | ||
+ | * SDMA firmware: [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=70dabaede806e12881a527ef9460b293ec15af59 The upstream linux driver can use in-rom firmware since Linux 3.14] | ||
+ | | | ||
+ | | | ||
| | | | ||
* USB host | * USB host | ||
Line 253: | Line 370: | ||
* S3C2440 | * S3C2440 | ||
* S3C2442 | * S3C2442 | ||
+ | | ARMv4 | ||
| No GPU? | | No GPU? | ||
| No known issues | | No known issues | ||
Line 264: | Line 382: | ||
| ? | | ? | ||
| ? | | ? | ||
+ | |- | ||
+ | | Creative | ||
+ | | [http://www.ziilabs.com/products/processors/zms08.aspx ZMS-08] | ||
+ | | Armv7 (Cortex A8) | ||
+ | | Vector Processor (?) | ||
+ | | ? | ||
+ | | ? | ||
+ | | ? | ||
+ | | ? | ||
+ | | ? | ||
+ | | ? | ||
+ | | ? | ||
+ | | ? | ||
+ | |- | ||
+ | ! Vendor | ||
+ | ! Product | ||
+ | ! CPU architecture | ||
+ | ! GPU | ||
+ | ! RYF issues | ||
+ | ! Linux upstream status | ||
+ | ! Bootloader upstream status | ||
+ | ! Busses for WiFi | ||
+ | ! Companion chips | ||
+ | ! Documentation | ||
+ | ! Minumum quantities | ||
+ | ! Available until | ||
|- | |- | ||
|} | |} | ||
+ | |||
+ | == TODO == | ||
+ | * Document microcode: | ||
+ | ** Look at which Freescale/NXP SOC or CPU [https://github.com/platomav/CPUMicrocodes/tree/master/Freescale use a microcode] | ||
+ | * Migrate the [[Group:Hardware/Components/Processors|Processors page]] here | ||
+ | |||
+ | == References == | ||
+ | <references/> |
Latest revision as of 20:06, 11 April 2024
Contents
Introduction
This page has information about various system on a chip.
Note that some information automatically applies to devices using systems on a chip mentioned here and some don't.
For instance:
- If a system on a chip has a GPU, devices using that system on a chip will also get this GPU (unless there are versions without GPU, and that is not mentioned here).
- If a system on a chip supports WiFi, PCIe, or other busses, and that the device didn't connect that to connectors, users won't be able to use these busses.
- If a system on a chip can boot with free software, it doesn't mean that all the devices using it can. Some devices use restricted boot in ways that can't be disabled unless security flaws are found in the hardware.
Though:
- That information can be used to rule out devices. For instance if a device has a system on a chip that doesn't boot with free software, it most likely can't boot with free software.
- It can be used to see which chips can be used to produce devices that boot with free software or could somehow gain the RYF certification.
Information
Vendor | Product | CPU architecture | GPU | RYF issues | Linux upstream status | Bootloader upstream status | Busses for WiFi | Companion chips | Documentation | Minumum quantities | Available until |
---|---|---|---|---|---|---|---|---|---|---|---|
Rockchip | RK3399 | arm64 |
|
|
? | ? |
|
? | ? | ? | ? |
Amlogic | S805X | Aarch64 | Mali-450 (Lima) |
|
TODO: Look at status | TODO: Look at status | |||||
Amlogic | S905X | Aarch64 |
|
TODO: Look at status | TODO: Look at status | ||||||
Texas instruments | DM370(like omap3 but higher speed) | ARMv7 | Powervr |
|
Good |
|
|
? | ? | ? | ? |
Texas instruments | omap4 | ARMv7 | Powervr |
|
Probably good |
|
|
? | ? | ? | ? |
Allwinner Tech | A31 | ARMv7 | Powervr |
|
very few missing drivers | ? |
|
? | ? | ? | ? |
Allwinner Tech |
|
ARMv7 | Mali |
|
very few missing drivers | Good |
|
? | ? | ? | ? |
Samsung | Exynos 3 Single -> Exynos 5 dual | armv7 | Mali |
|
? | ? |
|
? | ? | ? | ? |
Samsung | Exynos 5 Octa | ? | Powervr |
|
? | ? |
|
? | ? | ? | ? |
Ingenic | JZ4760 | ? | Vivante GC200 | ? | ? |
|
|
? |
|
1 | ? |
NXP | I.MX 25 | ARM 32bit (which one?) | No GPU | No known issues | Mostly complete | Mostly complete? (bareobx?, u-boot?) |
|
? | ? | ? | |
NXP | I.MX 50 | ARMv7? | ? |
Issues:
TODO: |
Mostly complete | Mostly complete? (bareobx?, u-boot?) |
|
? | ? | ? | |
NXP | I.MX 51 | ARMv7 | Adreno |
Issues:
Optional: |
Mostly complete | Mostly complete? (bareobx?, u-boot?) |
|
? | ? | ? | |
NXP |
|
ARMv7 | Vivante |
Issues:
Optional: |
Mostly complete | Mostly complete? (bareobx?, u-boot?) |
|
? | ? | ? | |
NXP |
|
ARMv7 | ? |
Good:
Issues: Optional: |
Mostly complete | Mostly complete? (bareobx?, u-boot?) |
|
? | ? | ? | |
NXP |
|
ARMv7 | No GPU | Good:
Optional: |
Good | Good |
|
? | ? | ? | |
NXP | i.MX8 (models?) | ARM 64bit? | Vivante |
Issues:
Optional: |
|
? | ? | ? | |||
Samsung |
|
ARMv4 | No GPU? | No known issues | Needs to be ported to the devicetree | ? |
|
? | ? | ? | |
Creative | ZMS-08 | Armv7 (Cortex A8) | Vector Processor (?) | ? | ? | ? | ? | ? | ? | ? | ? |
Vendor | Product | CPU architecture | GPU | RYF issues | Linux upstream status | Bootloader upstream status | Busses for WiFi | Companion chips | Documentation | Minumum quantities | Available until |
TODO
- Document microcode:
- Look at which Freescale/NXP SOC or CPU use a microcode
- Migrate the Processors page here
References
- ↑ https://gitlab.denx.de/u-boot/u-boot/raw/master/doc/board/amlogic/libretech-ac.rst
-
↑ From #linux-amlogic on Freenode:
10:10 < repk> GNUtoo: bl31 is secure monitor or the ATF runtime, it runs in EL3 and dispatch SMC to secure/non-secure world. bl301 is a part of the SCP firmware. On meson the SCP is run by a microcontroller (cortex-M3) and handles power related stuff.
10:10 < repk> see https://trustedfirmware-a.readthedocs.io/en/latest/ for more on that
10:15 < repk> So BL1 is the CPU boot ROM code executes in SRAM and lunch BL2 which initializes DDR load all remaining firmwares (BL30 SCP, BL31 secure monitor, BL32 TEE, BL33 u-boot) in it. Then BL31 installs the secure monitor sends bl30 to SCP, and gives control to BL32 (if exists e.g. OPTEE) and BL33 (usually u-boot). Then u-boot loads boots linux.
- ↑ https://source.denx.de/u-boot/u-boot/-/raw/master/doc/board/amlogic/libretech-cc.rst
- ↑ https://trustedfirmware-a.readthedocs.io/en/latest/plat/meson-gxl.html