Samsung Exynos 4
The Exynos 4 family of chips consists of the Exynos 4210 released in 2011 as well as the Exynos 4412 released in 2012, alongside with its dual-core variant - the Exynos 4212. The Exynos 4415 was released two years later in 2014.
The Exynos 4210, 4212 and 4412 are relatively well supported in mainline, and share a fair bit of code. Support for the Exynos 4415, however, was dropped as there were no devices in mainline that used it. In postmarketOS, the mainline kernel is packaged as linux-postmarketos-exynos4PMOS.
Please join the matrix room for Exynos 4 related discussions: https://matrix.to/#/#exynos4xxx-mainline:matrix.org
History
The first Exynos 4 CPUs were initially called S5PCxxx, like it's predecessors, but then renamed. For locating information it can therefore be good to know the old names.
- The oldest Exynos processor is Exynos 3110, also known as hummingbird, which was renamed from S5PC110. It has a Cortex-A8 core.
- S5PV210, found in some development boards, is supposedly similar to Exynos 3110
- Exynos 4210, the first Exynos 4 CPU, was initially called S5PC210, and has two Cortex-A9 cores
- S5PV310, found in some development boards, is supposedly similar to Exynos 4210
- Exynos 4412 was initially called S5PC220, based on strings in very old u-boot blobs from Samsung. It has four Cortex-A9 cores.
The common denominator for Exynos 4 seem to be that the SOC has only Cortex-A9 cores. Later devices have Cortex-A15 cores (and possibly Cortex-A9 cores as well) and were then called Exynos 5.
TODO: What, if anything, was Exynos 4212 called initially? |
Devices
Exynos 4210
Exynos 4210 | |
Manufacturer | Samsung |
---|---|
Name | Exynos 4210 |
Architecture | armv7 |
CPU | 2x ARM Cortex A9 @ 1.4GHz |
GPU | ARM Mali-400MP4 |
Year | 2011 |
Process | 45nm |
Mainline | yes |
Community Page | https://gitlab.com/exynos4-mainline |
Components | |
CPU |
Works |
UART |
Works |
Storage |
Works |
USB |
Works |
Display |
Works |
GPU |
Works |
Pinctrl |
Works |
I²C |
Works |
SPI | |
Audio | |
Video | |
Thermal |
Works |
Camera | |
Suspend | |
Ethernet | |
Device | Codename | Mainline |
---|---|---|
Samsung Galaxy Note | samsung-q1 | Y |
Samsung Galaxy S II | samsung-i9100 | P |
Exynos 4212
Exynos 4212 on the board of the Samsung Galaxy Tab 3 8.0 | |
Manufacturer | Samsung |
---|---|
Name | Exynos 4212 |
Architecture | armv7 |
CPU | 2x ARM Cortex A9 @ 1.4GHz |
GPU | ARM Mali-400 GPU |
Year | 2012 |
Process | 32nm |
Mainline | yes |
Community Page | https://gitlab.com/exynos4-mainline |
Components | |
CPU |
Works |
UART |
Works |
Storage |
Works |
USB |
Works |
Display |
Works |
GPU |
Works |
Pinctrl |
Works |
I²C |
Works |
SPI | |
Audio |
Works |
Video | |
Thermal |
Works |
Camera | |
Suspend |
Works |
Ethernet | |
Device | Codename | Mainline |
---|---|---|
Samsung Galaxy Tab 3 8.0 | samsung-lt01 | Y |
Exynos 4412
Exynos 4412 from a development board | |
Manufacturer | Samsung |
---|---|
Name | Exynos 4412 |
Architecture | armv7 |
CPU | 4x ARM Cortex A9 @ 1.4GHz |
GPU | ARM Mali-400 GPU |
Year | 2012 |
Process | 32nm |
Mainline | yes |
Community Page | https://gitlab.com/exynos4-mainline |
Components | |
CPU |
Works |
UART |
Works |
Storage |
Works |
USB |
Works |
Display |
Works |
GPU |
Works |
Pinctrl |
Works |
I²C |
Works |
SPI | |
Audio |
Works |
Video | |
Thermal |
Works |
Camera | |
Suspend |
Works |
Ethernet | |
Device | Codename | Mainline |
---|---|---|
General Mobile E-Tab 4 (2012) | gm-mehmet | |
ODROID U2 | odroid-u2 | Y |
Samsung Galaxy Camera | samsung-gd1 | |
Samsung Galaxy Camera 2 | samsung-sf2wifi | |
Samsung Galaxy Note 10.1 WiFi/3G | samsung-p4note | Y |
Samsung Galaxy Note 8.0 (GSM) | samsung-n5100 | |
Samsung Galaxy Note 8.0 (Wi-Fi) | samsung-n5110 | |
Samsung Galaxy Note 8.0 (Wi-Fi) | samsung-n5110 | |
Samsung Galaxy Note II | samsung-t03g | Y |
Samsung Galaxy Note II LTE | samsung-t0lte | Y |
Samsung Galaxy S III | samsung-m0 | Y |
Samsung Galaxy S III LTE | samsung-m3 | Y |
Exynos 4415
File:Exynos-4415.jpg | |
Manufacturer | Samsung |
---|---|
Name | Exynos 4415 |
Architecture | armv7 |
CPU | 4x ARM Cortex A9 @ 1.5GHz |
GPU | ARM Mali-400 GPU |
Year | 2014 |
Process | 28nm |
Mainline | no |
Community Page | https://gitlab.com/exynos4-mainline |
Components | |
CPU | |
UART | |
Storage | |
USB | |
Display | |
GPU | |
Pinctrl | |
I²C | |
SPI | |
Audio | |
Video | |
Thermal | |
Camera | |
Suspend | |
Ethernet | |
No results
USB OTG
USB OTG does not currently work on any of the mainlined devices. This is due to at least three things (the first two only apply to devices that use the MAX77693 MFD):
- The MUIC extcon driver doesn't detect OTG cables correctly; unlike the downstream driver, which responds only to 4 of the interrupts, this one listens to all of them, and one of the interrupts is falsely triggered causing it to think it's a charging cable instead of an ADC cable,
- The charger driver doesn't implement OTG support to allow for 1. disabling the charger, and 2. enabling power for non-powered hubs.
- The dwc2 (hs_otg) controller appears to only control peripheral mode; the EHCI and OHCI nodes must be enabled for host mode to work, but then peripheral mode stops working.
Progress on fixing these issues is being tracked in exynos4-mainline/linux#11.
Hardware video decoding (MFC)
The Exynos 4 has a built-in hardware video decoding/encoding block called MFC v5. It has a mainline driver, which uses the v4l2m2m API (see Hardware video acceleration for more information). The firmware is packaged as linux-firmware-s5p-mfc.
However, it does not currently work, throwing errors about unsupported formats. Help in figuring this out would be appreciated.
Camera
The mainline kernel has some support for cameras (FIMC); fourkbomb who worked on the original Midas mainline port has made some progress in getting it to work, but this has not been set up in postmarketOS yet, nor is it supported by any apps.
See also
- On phonedb.net: Exynos 4210, Exynos 4212, Exynos 4412, Exynos 4415
- On linux-exynos.org: Exynos 4210, Exynos 4412
- The public datasheet for the Exynos 4210
- Exynos 4212 iROM Booting Guide
- S5PV210 User's manual
- S5PV210 iROM Application Note
- The public datasheet for the Exynos 4412
- Exynos 4412 SEC User's Manual
- Exynos 4412 SCP User's Manual
- Exynos mainline porting
- p4note U-Boot: https://github.com/Lutjens-PoL/u-boot