Group: Hardware/Components/SOCs

From LibrePlanet
Jump to: navigation, search
(Add link for tools, thanks sensiblemn)
m (fix grammar)
 
(13 intermediate revisions by one other user not shown)
Line 2: Line 2:
 
{{#tweekihide: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"
 
{| class="wikitable sortable"
Line 47: Line 63:
 
|  
 
|  
 
* [https://github.com/angerman/meson64-tools Free software images tools WIP]
 
* [https://github.com/angerman/meson64-tools Free software images tools WIP]
* nonfree binaries in the bootloader<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/>
+
* 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> 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:10 < repk> see https://trustedfirmware-a.readthedocs.io/en/latest/ for more on that<br/>
Line 57: Line 73:
 
** bl2.bin: First stage bootloader. Initialize the RAM.
 
** bl2.bin: First stage bootloader. Initialize the RAM.
 
** bl30.bin: part of the SCP (power management) firmware. Runs on a cortex-M3?
 
** bl30.bin: part of the SCP (power management) firmware. Runs on a cortex-M3?
** bl31.img: secure monitor or ATF runtime.
+
** 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
 
| TODO: Look at status
 
| TODO: Look at status
Line 219: Line 256:
 
| NXP
 
| NXP
 
| I.MX 51
 
| I.MX 51
| ARMv7?
+
| ARMv7
| ?
+
| <span style="background:red">Adreno</span>
 
|
 
|
 
Issues:
 
Issues:
Line 239: Line 276:
 
| NXP
 
| NXP
 
|
 
|
* i.MX6 Dual
+
* i.MX 6 Dual
* i.MX6 Quad
+
* i.MX 6 Quad
* i.MX6 DualPlus
+
* i.MX 6 DualPlus
* i.MX6 QuadPlus
+
* i.MX 6 QuadPlus
 
| ARMv7
 
| ARMv7
 
| Vivante
 
| Vivante
Line 255: Line 292:
 
|  
 
|  
 
* USB host
 
* USB host
* ?
+
* PCIe (i.MX 6 Quad, others?)
 
| ?
 
| ?
 
|
 
|
Line 298: 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 311: Line 370:
 
* S3C2440
 
* S3C2440
 
* S3C2442
 
* S3C2442
| ARMv4?
+
| ARMv4
 
| No GPU?
 
| No GPU?
 
| No known issues
 
| No known issues
Line 323: 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
 
|-
 
|-
 
|}
 
|}

Latest revision as of 20:06, 11 April 2024


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
  • 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)
  • Free software images tools WIP
  • Some binaries are in the bootloader, some of which are free some are nonfree:[1][2]:
    • 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
  • Free software images tools WIP
  • Some binaries are in the bootloader, some of which are free some are nonfree:[3]:
    • 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: ?
    • bl31.img Free software replacement now in arm trusted firmware[4].
TODO: Look at status TODO: Look at status
Texas instruments DM370(like omap3 but higher speed) ARMv7 Powervr
  • No free GPU driver
Good
  • good (free software unsigned possible)
  • USB Host
  • Probably has no mPCIe
? ? ? ?
Texas instruments omap4 ARMv7 Powervr
  • No free GPU driver
Probably good
  • Good
  • USB Host
  • Probably has no mPCIe
? ? ? ?
Allwinner Tech A31 ARMv7 Powervr
  • No free driver for the GPU (PowerVR)
very few missing drivers ?
  • USB Host
? ? ? ?
Allwinner Tech
  • A10
  • A10s
  • A13
  • A20
ARMv7 Mali
  • GPU (WIP)
  • Video encoding/decoding offload processor (WIP)
very few missing drivers Good
  • USB Host
? ? ? ?
Samsung Exynos 3 Single -> Exynos 5 dual armv7 Mali
  • signed bootloaders
? ?
  • USB Host
? ? ? ?
Samsung Exynos 5 Octa ? Powervr
  • Probably has signed bootloaders
? ?
  • USB Host
? ? ? ?
Ingenic JZ4760 ? Vivante GC200 ? ?
  • Free software bootloader exist
  • TODO: check upstream status
  • USB Host
?
  • TODO: find the documentation
1 ?
NXP I.MX 25 ARM 32bit (which one?) No GPU No known issues Mostly complete Mostly complete? (bareobx?, u-boot?)
  • USB host
  •  ?
? ? ?
NXP I.MX 50 ARMv7? ?

Issues:

  • GPU
  • Video decoding offload

TODO:

Mostly complete Mostly complete? (bareobx?, u-boot?)
  • USB host
  •  ?
? ? ?
NXP I.MX 51 ARMv7 Adreno

Issues:

  • GPU
  • Video decoding offload

Optional:

Mostly complete Mostly complete? (bareobx?, u-boot?)
  • USB host
  •  ?
? ? ?
NXP
  • i.MX 6 Dual
  • i.MX 6 Quad
  • i.MX 6 DualPlus
  • i.MX 6 QuadPlus
ARMv7 Vivante

Issues:

  • GPU (WIP)
  • Video encoding/decoding offload processor

Optional:

Mostly complete Mostly complete? (bareobx?, u-boot?)
  • USB host
  • PCIe (i.MX 6 Quad, others?)
? ? ?
NXP
  • i.MX6 i.MX6 SoloLite
  • i.MX6 i.MX6 SoloX
ARMv7 ?

Good:

  • No video decoding/encoding offload processor

Issues:

Optional:

Mostly complete Mostly complete? (bareobx?, u-boot?)
  • USB host
  •  ?
? ? ?
NXP
  • I.MX6 UltraLite
  • I.MX6 UUL
ARMv7 No GPU Good:
  • No GPU
  • No video decoding/encoding offload processor

Optional:

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:

  • USB host
  •  ?
? ? ?
Samsung
  • S3C2410
  • S3C2440
  • S3C2442
ARMv4 No GPU? No known issues Needs to be ported to the devicetree ?
  • USB host
  •  ?
? ? ?
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

References

  1. https://gitlab.denx.de/u-boot/u-boot/raw/master/doc/board/amlogic/libretech-ac.rst
  2. 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.
  3. https://source.denx.de/u-boot/u-boot/-/raw/master/doc/board/amlogic/libretech-cc.rst
  4. https://trustedfirmware-a.readthedocs.io/en/latest/plat/meson-gxl.html