Samsung Exynos 5
The Exynos 5 SOCs are well supported by mainline linux. A dedicated postmarketos kernel is packaged under the name linux-postmarketos-exynos5PMOS, and a development repository is kept at https://gitlab.com/exynos5-mainline/linux.
Please join the matrix room for Exynos 5 related discussions: https://matrix.to/#/#exynos5-mainline:matrix.org
SoCs
Exynos 5250
Exynos 5250 from the Arndale board | |
Manufacturer | Samsung |
---|---|
Name | Exynos 5250 |
Architecture | armv7 |
CPU | 2x ARM Cortex A15 @ 1.7GHz |
GPU | ARM Mali-T604MP4 |
Year | 2012 |
Process | 32nm |
Mainline | yes |
Community Page | https://gitlab.com/exynos5-mainline |
Components | |
CPU |
Works |
UART |
Works |
Storage |
Works |
USB |
Works |
Display |
Works |
GPU |
Works |
Pinctrl |
Works |
I²C |
Works |
SPI |
Works |
Audio |
Works |
Video |
Works |
Thermal |
Works |
Camera | |
NPU | |
Suspend |
Works |
Ethernet | |
Device | Codename | Mainline |
---|---|---|
Google (Samsung) Nexus 10 | samsung-manta | Y |
HP Chromebook 11 G1 | google-spring | Y |
Samsung Chromebook | google-snow | Y |
Specifications
- 2x ARM Cortex A15 @ 1.7GHz
- ARM Mali-T604MP4 @ 533 MHz; 68.224 GFLOPS
More information
Exynos 5420
Manufacturer | Samsung |
---|---|
Name | Exynos 5420 |
Architecture | armv7 |
CPU | 4x 1.9 GHz A15 & 4x 1.3 GHz A7 |
GPU | Mali-T628 MP6 |
Year | 2013 |
Process | 28nm |
Mainline | yes |
Community Page | https://gitlab.com/exynos5-mainline |
Components | |
CPU |
Works |
UART |
Works |
Storage |
Works |
USB |
Works |
Display |
Works |
GPU |
Works |
Pinctrl |
Works |
I²C |
Works |
SPI |
Works |
Audio |
Works |
Video |
Works |
Thermal |
Works |
Camera | |
NPU | |
Suspend |
Works |
Ethernet | |
Device | Codename | Mainline |
---|---|---|
Samsung Chromebook 2 11.6" | google-peach-pit | Y |
Samsung Galaxy Note 10.1 (2014) | samsung-n1awifi | N |
Samsung Galaxy Note 3 International (3g) | samsung-ha3g | |
Samsung Galaxy Note Pro 12.2 (WiFi) | samsung-v1awifi | N |
Samsung Galaxy Tab PRO 10.1 (WiFi) | samsung-n2awifi | P |
Samsung Galaxy Tab S 10.5 (WiFi) | samsung-chagallwifi | P |
Samsung Galaxy Tab S 10.5" LTE | samsung-chagalllte | |
Samsung Galaxy Tab S 8.4" LTE | samsung-klimtlte | P |
Specifications
- 4x Cortex A15 @ 1.9 GHz & 4x Cortex A7 @ 1.3 GHz
- Mali-T628 MP6 @ 533 MHz; 109 GFLOPS
More information
Exynos 5422 (also Exynos 5800)
Manufacturer | Samsung |
---|---|
Name | Exynos 5422 |
Architecture | armv7 |
CPU | 4x 1.9 GHz A15 & 4x 1.3 GHz A7 |
GPU | Mali-T628 MP6 |
Year | 2014 |
Process | nm |
Mainline | yes |
Community Page | https://gitlab.com/exynos5-mainline |
Components | |
CPU |
Works |
UART |
Works |
Storage |
Works |
USB |
Works |
Display |
Works |
GPU |
Works |
Pinctrl |
Works |
I²C |
Works |
SPI |
Works |
Audio |
Works |
Video |
Works |
Thermal |
Works |
Camera | |
NPU | |
Suspend |
Works |
Ethernet | |
Device | Codename | Mainline |
---|---|---|
ODROID HC2 | odroid-hc2 | Y |
ODROID XU4 | odroid-xu4 | Y |
Samsung Galaxy S5 (International 3G) | samsung-k3gxx |
Exynos 5433
Manufacturer | Samsung |
---|---|
Name | Exynos 5433 |
Architecture | aarch64 |
CPU | 4x 1.9 GHz A57 & 4x 1.3 GHz A53 |
GPU | Mali-T760 |
Year | 2014 |
Process | nm |
Mainline | yes |
Components | |
CPU |
Works |
UART |
Works |
Storage |
Works |
USB |
Works |
Display |
Works |
GPU |
Works |
Pinctrl |
Works |
I²C |
Works |
SPI | |
Audio |
Works |
Video | |
Thermal |
Works |
WiFi | |
Bluetooth | |
Modem | |
GPS | |
Camera | |
NPU | |
Suspend |
Works |
Ethernet | |
Devices
Device | Codename | Mainline |
---|---|---|
Samsung Galaxy Note 4 | samsung-treltexx | |
Samsung Galaxy Note 4 S-LTE | samsung-tre3calte | N |
Samsung Galaxy Tab S2 9.7 LTE | samsung-gts210lte | N |
Specifications
- 4x Cortex A57 @ 1.9 GHz & 4x Cortex A53 @ 1.3 GHz
- Mali-T760
More information
- The Tizen reference device TM2 is basically rebranded Note 4 for Tizen development. The TM2e is Note 4 Edge. Both are quite nicely supported by mainline Linux kernel and almost fully supported by Tizen open-source Linux kernel (not the vendor one).
- Unlike TM2/TM2e, android devices based on Exynos 5433 cannot boot 64 bit kernels (due to early bootloaders and/or the tzsw being 32bit). This does not mean that it is impossible to get mainline on these devices though, other devices, for example samsung-serranove, which has mainline support, has the same problem.
- The android bootloader seem to be incapable of booting a mainline kernel. Trying to boot a 32bit vanilla kernel does not give any (UART) output at all. After enabling some debug options like CONFIG_DEBUG_LL the error message is shown (or maybe error happens due to CONFIG_DEBUG_LL...):
Starting kernel at 0x20008000... [MUIC] SWITCH_SEL(3) Exception: data abort pc : [<20008b40>] lr : [<20008158>] sp : 204d0b30 ip : 200080f4 fp : 10101105 r10: 204e0b30 r9 : 0156e210 r8 : 20000100 r7 : 00001f43 r6 : 204cf718 r5 : 000131fb r4 : 20008000 r3 : 12c10000 r2 : 00000044 r1 : f7010000 r0 : 00000000 Flags: nZcv IRQs off FIQs off Mode SVC_32
- Working theory is that we can circumvent this error by using u-boot or some other bootloader to chainload Linux. There is an old patch-set for TM2 that can be used as a start for porting u-boot.
- samsung-starqltechn has a u-boot port, and uses various clever tricks to make the stock bootloader happy. Trying a similar approach for Exynos5433 devices is probably a good start.
- kexec based bootloader (like Petitboot) is also is also an option too.In theory we could use the downstream kernel to port Petitboot to it.
Mainline
The device on the mainline kernel is the "Samsung TM2" and "Samsung TM2e". The TM2 is the Samsung Tizen reference device, and TM mean Tizen Mobile. These devices uses a "special" 64bit version of sboot (or at least the arm trustzone firmware) to be able to boot arm64 kernels. All other phones and tablets with exynos5433 has 32bit sboot, and cannot boot a 64bit kernel. Unfortunately there seem to exist few tm2/tm2e device in the world, and firmware files for them does not seem to be downloadable anywhere. To have any chance to boot an arm64 mainline kernel on tre3calte and other exynos5433 devices we would need to get our hands on these firmware files, or in some other way create 64bit sboot/trustzone firmware for exynos5433.
See these chat logs for relevant discussions:
Tm2 and tm2e uses u-boot rather than Samsungs proprietary variant. There was a patch sent to the u-boot project to add support for it, but it was not accepted in the sent form: U-Boot support patch. Booting u-boot should, in theory, be possible by flashing it to the BOOT partition, to which android's boot.img is normally flashed.
UART
A "standard" serial debugging cable with 619 kOhm works for tre3calte (and other exynos5433 devices). The bootloader prints lots of output during boot, but for some reason the kernel is quiet, even if the console parameter is changed. A patch similar to the one found here for Galaxy S7 might be necessary to get any live kernel output.
Downstream kernel quirky
In the downstream kernel , the soc was configured to have cortex-a15 and cortex-a7.
Hardware table
Different devices share quite a lot of hardware. The table below attempts to give an idea about which devices that contain which hardware.
Type | Name | Mainline driver | Notes | exynos5420-klimtlte | exynos5420-chagallwifi | exynos5420-n1awifi | exynos5420-v1awifi | exynos5420-n2awifi | exynos5420-chagalllte | exynos5250-manta | exynos5422-k3gxx | exynos5433-gts210lte | exynos5433-treltexx |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Multifunctional device | Maxim MAX77888 | N | Seem to be identical to max77803, except that some regs are updated during probe step to "overwrite wrong trimmed bits", and that a hack to restore MUIC regs on MUIC reset is implemented. Might not be a real device and rather a max77803 with faulty firmware/calibration. | Y | Y | Y | Y | Y | Y | N | N | N | N |
Multifunctional device | Maxim MAX77803 | N | Seem to be mostly compatible with max77686/max77802. Has additional subdevices (charger, led, muic, safeout, haptic) | N | N | N | N | N | N | N | N | N | N |
Multifunctional device | Maxim MAX77802 | Y | N | N | Y | Y | Y | N | N | N | N | N | |
Multifunctional device | Maxim MAX77804 | N | N | N | N | N | N | N | N | Y | N | N | |
Multifunctional device | Maxim MAX77843 | Y | N | N | N | N | N | N | N | N | N | Y | |
Multifunctional device | Silicon Mitus SM5703 | N | N | N | N | N | N | N | N | N | Y | N | |
LEDs | Maxim MAX77803 | N | Y | Y | Y | Y | Y | Y | N | N | N | N | |
LEDs | Maxim MAX77804 | N | N | N | N | N | N | N | N | Y | N | N | |
LEDs | Osram AS3668 | N | There is a driver for AS3645A which might be similar | N | N | N | N | N | N | Y | N | N | N |
Charging IC | Maxim MAX77803 | N | Y | Y | Y | Y | Y | Y | N | N | N | N | |
Charging IC | Maxim MAX77804 | N | N | N | N | N | N | N | N | Y | N | N | |
Charging IC | Silicon Mitus SM5703 | N | N | N | N | N | N | N | N | N | Y | N | |
Audio | Wolfson Microelectronics WM1811 | Y | N | N | N | N | N | N | Y | N | N | N | |
Audio | Wolfson Microelectronics WM1814 | Y | N | N | N | N | N | N | N | N | Y | N | |
Audio | Wolfson Microelectronics WM5102 | Y | Y | Y | Y | Y | Y | Y | N | N | N | N | |
PMIC | Samsung S2ABB01 | N | Y | Y | N | N | N | Y | N | N | N | N | |
PMIC | Samsung S2MPS11 | Y | Y | Y | N | N | N | Y | N | Y | N | N | |
PMIC | Samsung S2MPS13 | Y | Supported by same driver as s2mps11 | N | N | N | N | N | N | N | N | Y | Y |
PMIC | Maxim max77803 | N | Y | Y | Y | Y | Y | Y | N | N | N | N | |
PMIC | Maxim max77802 | Y | N | N | Y | Y | Y | N | N | N | N | N | |
Fuel gauge | Maxim MAX17050 | Y | Supported by mainline's MAX17042 driver | Y | Y | Y | Y | Y | Y | N | N | N | N |
Fuel gauge | Maxim MAX17048 | Y | Supported by mainline's MAX17040 driver | N | N | N | N | N | N | N | Y | N | N |
Fuel gauge | Silicon Mitus SM5703 | N | Regulator part of this MFD is supported, but none of the other subdevices | N | N | N | N | N | N | N | N | Y | N |
Touchscreen | ATMEL MXT1664T | Maybe supported by Atmel mXT I2C Touchscreen driver in mainline | N | N | N | N | N | N | N | N | N | N | |
Touchscreen | ATMEL MXT1664S | P | Partially supported by Atmel mXT I2C Touchscreen driver in mainline | N | N | N | N | Y | N | N | N | N | N |
WiFi | Broadcom BCM4354 | Y | Y | Y | N | Y | N | Y | N | Y | N | N | |
WiFi | Broadcom BCM4339 | Y | N | N | Y | N | Y | N | N | N | N | N | |
WiFi | Broadcom BCM4358 | N | N | N | N | N | N | N | N | N | Y | N | |
Bluetooth | Broadcom BCM4339 | P | Devices can be discovered but connecting to them fails. | Y | Y | Y | Y | Y | Y | N | N | N | N |
Bluetooth | Broadcom BCM4358 | N | N | N | N | N | N | N | N | N | Y | N | |
Bluetooth | Broadcom BCM4354 | N | N | N | N | N | N | N | N | Y | N | N | |
GPS | Broadcom BCM47531 | N | Y | Y | N | N | N | Y | N | Y | N | Y | |
GPS | Broadcom BCM47521 | N | N | N | Y | Y | Y | N | N | N | N | N | |
GPS | Broadcom BCM4752 | N | N | N | N | N | N | N | N | N | Y | N | |
Display | Samsung S6E3FA2 | N | N | N | N | N | N | N | N | Y | N | N | |
Display | Samsung S6E3HA1 | N | Y | N | N | N | N | N | N | N | N | N | |
Display | Samsung S6E3HA2 | Y | exynos5433-tm2 seem to have the same display | N | N | N | N | N | N | N | N | N | Y |
Display | Samsung S6TNMR7 | N | N | Y | N | N | N | Y | N | N | N | N | |
Display | Samsung LSL101DL01 | Y | Variants with bigger displays have LSL122DL01 which seems mostly compatible | N | N | Y | Y | Y | N | N | N | N | N |
Display | Anapass ANA38401 | N | N | N | N | N | N | N | N | N | Y | N | |
Backlight | TI LP855X | Y | Used with LSL122DL01/LSL101DL01 panels | N | N | Y | Y | Y | N | N | N | N | N |
Camera | Samsung S5K6B2 | N | 2 MP S5K6B2 front camera (same as in at least galaxy s4 and galaxy note 3). Unclear what model back camera is. Before there's any chance getting working camera the Fully Interactive Mobile Camera Imaging Subsystem (FIMC-IS) driver needs to be extended to support exynos5. An old patchset for this that was never merged exists: https://lore.kernel.org/all/1383653610-11835-1-git-send-email-arun.kk@samsung.com/ (v12 seems to be latest sent version). | Y | Y | Y | Y | Y | Y | N | N | N | N |
Camera | Samsung S5K4E5 | N | A (minimal) driver was part of the FIMC IS patchset that was never merged: https://lore.kernel.org/all/1383653610-11835-13-git-send-email-arun.kk@samsung.com/ | N | N | N | N | N | N | Y | N | N | N |
Camera | Samsung S5K6A3 | Y | Found also in a few exynos4412 devices | N | N | N | N | N | N | Y | N | N | N |
IR | ? | The kernel option is CONFIG_IR_REMOCON_FPGA, and its description indicate that it is a chip made by Lattice Semi | Y | Y | Y | Y | Y | Y | N | N | N | N | |
MHL | Silicon Image SII8240 | N | Possibly compatible with sii9234, or at least similar | Y | Y | Y | Y | Y | Y | N | Y | Y | N |
Modem | Intel XMM6360 | N | Unfortunately not one of the modems Replicant are dealing with | Y | N | N | N | N | Y | N | Y | N | N |
Modem | Samsung SS333 | N | N | N | N | N | N | N | N | N | Y | N | |
Fingerprint reader | Validity Sensors VFS61XX | N | Y | Y | N | N | N | Y | N | Y | N | N | |
Fingerprint reader | Validity Sensors VFS7XXX | N | N | N | N | N | N | N | N | N | Y | N | |
HRM sensor | Analog Devices ADPD142 | N | N | N | N | N | N | N | N | N | Y | N | |
HRM and UV sensor | Maxim MAX86900 | N | N | N | N | N | N | N | N | Y | N | N | |
HRM and UV sensor | Maxim MAX86902 | N | N | N | N | N | N | N | N | N | Y | N | |
Accelerometer and gyroscope | Bosch BMI055 | Y | Y | Y | Y | Y | Y | Y | N | N | N | N | |
Hall sensor | Asahi Kasei AK8963C | Y | N | N | Y | Y | Y | N | N | N | N | N | |
Hall sensor | Asahi Kasei AK09911C | N | Y | Y | N | N | N | Y | N | N | N | N | |
Color light sensor | Capella CM3323 | Y | N | Y | Y | Y | Y | Y | N | N | N | N | |
Light sensor | Osram TMD3782 | N | Y | N | N | N | N | N | N | N | N | N | |
Capacitive/proximity sensor | Semtech SX9500 | Y | Used by menu and back buttons (I think) | Y | N | Y | N | Y | Y | N | N | N | N |