Samsung Exynos 4

From postmarketOS

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.

Icon TODO: What, if anything, was Exynos 4212 called initially?

Devices

Exynos 4210

Samsung Exynos 4210
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
NPU
Suspend
Ethernet
Device Codename Mainline
Samsung Galaxy Note samsung-n7000 Y
Samsung Galaxy S II samsung-i9100 P

Exynos 4212

Samsung Exynos 4212
Exynos 4212 on the board of the Samsung Galaxy Tab 3 8.0
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
NPU
Suspend
Works
Ethernet
Device Codename Mainline
Samsung Galaxy Tab 3 8.0 samsung-lt01wifi P

Exynos 4412

Samsung Exynos 4412
Exynos 4412 from a development board
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
NPU
Suspend
Works
Ethernet
Device Codename Mainline
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

Samsung 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
NPU
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 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 MUIC 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.

Some work-in-progress patches to fix these issues can be found at [1] (this fixes the first two issues, but not the last one).

See also