Jump to content

Samsung Exynos 4: Difference between revisions

From postmarketOS Wiki
Knuxify (talk | contribs)
add exynos4212 mainline status
Knuxify (talk | contribs)
 
(26 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Userbox container|
{{userbox
| border-c  = #19b187
| id        = [[File:Element_Logomark.svg|Element logo|36px]]
| id-c      = #f4fffc
| info      = Exynos 4 Mainlining Community on '''[https://matrix.to/#/#exynos4xxx-mainline:matrix.org<span style="color: #066047 !important; text-decoration: underline !important;">Matrix</span>]'''.
| info-c    = #b5eadc
| info-color = #022018
}}
{{userbox
| border-c = #c8773c
| id      = [[File:Gitlab_logo.png|GitLab logo|36px]]
| id-c    = #FFF3E1
| info    = Exynos 4 Mainlining Group in '''[https://gitlab.com/exynos4-mainline<span style="color: #b54807 !important; text-decoration: underline !important;">GitLab</span>]'''.
| info-c  = #FFDAAC
}}
}}
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 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 4212 has been re-added fairly recently ([https://lore.kernel.org/all/20230501195525.6268-1-aweber.kernel@gmail.com/ patchset]), and has yet to make it to a stable kernel. 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 {{pmaport|linux-postmarketos-exynos4}}.
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 {{pmaport|linux-postmarketos-exynos4}}.
 
Please join the matrix room for Exynos 4 related discussions: https://matrix.to/#/#exynos4xxx-mainline:matrix.org


== Devices ==
== Devices ==
Line 22: Line 41:
| status_storage = Y
| status_storage = Y
| status_usb = Y
| status_usb = Y
| status_display =  
| status_display = Y
| status_gpu =  
| status_gpu = Y
| status_pinctrl = Y
| status_pinctrl = Y
| status_i2c = Y
| status_i2c = Y
Line 33: Line 52:
| status_modem = -
| status_modem = -
| status_gps = -
| status_gps = -
| status_npu = -
| status_camera =  
| status_camera =  
}}{{#cargo_query:
}}{{#cargo_query:
Line 72: Line 92:
| status_modem = -
| status_modem = -
| status_gps = -
| status_gps = -
| status_npu = -
| status_camera =  
| status_camera =  
| status_suspend = Y
| status_suspend = Y
Line 112: Line 133:
| status_modem = -
| status_modem = -
| status_gps = -
| status_gps = -
| status_camera =  
| status_npu = -
| status_camera = P
| status_suspend = Y
| status_suspend = Y
}}{{#cargo_query:
}}{{#cargo_query:
Line 152: Line 174:
| status_modem = -
| status_modem = -
| status_gps = -
| status_gps = -
| status_npu = -
| status_camera =  
| status_camera =  
| status_suspend =  
| status_suspend =  
Line 163: Line 186:
|more results text=
|more results text=
}}
}}
== USB OTG ==
As of kernel 6.10.0, USB OTG should work on devices that have it enabled (currently that's the Galaxy S III, Note II and the Galaxy Tab 3 8.0). The only caveat is that occasionally, peripheral mode may no longer work after plugging in an OTG cable until the system is restarted.
Progress on fixing these issues is being tracked in [https://gitlab.com/exynos4-mainline/linux/-/issues/11 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 {{aport|linux-firmware-s5p-mfc}}.
However, '''it does not currently work''', throwing errors about unsupported formats. Help in figuring this out would be appreciated. If you're feeling adventurous, feel free to investigate - the module is enabled in the v6.10 kernel.
== Camera ==
{{MR|5888|pmaports}} introduced changes on the kernel config side to allow for using the cameras; there is a [https://gitlab.com/megapixels-org/libmegapixels/-/merge_requests/24 pending Megapixels MR] adding support for the SIII/Note 2's cameras to libmegapixels. There was some earlier work in {{MR|2248|pmaports}} to add camera support for the Galaxy S2.
The drivers for the sensors are rather quirky, and the FIMC driver may need changes too; this is yet to be investigated.


== See also ==
== See also ==
Line 168: Line 210:
* On phonedb.net: [http://phonedb.net/index.php?m=processor&id=269&c=samsung_s5pc210_exynos_4_dual_4210__orion Exynos 4210], [https://phonedb.net/index.php?m=processor&id=297&c=samsung_exynos_4_dual_4212 Exynos 4212], [http://phonedb.net/index.php?m=processor&id=337&c=samsung_exynos_4_quad_4412 Exynos 4412], [http://phonedb.net/index.php?m=processor&id=552&c=samsung_exynos_4_quad_4415 Exynos 4415]
* On phonedb.net: [http://phonedb.net/index.php?m=processor&id=269&c=samsung_s5pc210_exynos_4_dual_4210__orion Exynos 4210], [https://phonedb.net/index.php?m=processor&id=297&c=samsung_exynos_4_dual_4212 Exynos 4212], [http://phonedb.net/index.php?m=processor&id=337&c=samsung_exynos_4_quad_4412 Exynos 4412], [http://phonedb.net/index.php?m=processor&id=552&c=samsung_exynos_4_quad_4415 Exynos 4415]
* On linux-exynos.org: [http://linux-exynos.org/wiki/Samsung_Exynos_4210 Exynos 4210], [http://linux-exynos.org/wiki/Samsung_Exynos_4412 Exynos 4412]
* On linux-exynos.org: [http://linux-exynos.org/wiki/Samsung_Exynos_4210 Exynos 4210], [http://linux-exynos.org/wiki/Samsung_Exynos_4412 Exynos 4412]
* [https://web.archive.org/web/20160328133205/http://www.samsung.com/global/business/semiconductor/file/product/Pulbicmanual_Exynos_4_Dual_45nm_Ver00-2.pdf The public datasheet for the Exynos 4210]
* [https://chasinglulu.github.io/downloads/Android_Exynos4412_iROM_Secure_Booting_Guide_Ver.1.00.00.pdf Exynos 4212 iROM Booting Guide]
* [https://github.com/limingth/ARM-Resources/blob/master/tiny210/Datasheet/S5PV210_UM_REV1.1.pdf S5PV210 User's manual]
* [https://github.com/limingth/ARM-Resources/blob/master/tiny210/Datasheet/S5PV210_iROM_ApplicationNote_Preliminary_20091126.pdf S5PV210 iROM Application Note]
* [https://web.archive.org/web/20180609154155/http://www.samsung.com/global/business/semiconductor/file/product/Exynos_4_Quad_User_Manaul_Public_REV1.00-0.pdf The public datasheet for the Exynos 4412]
* [https://web.archive.org/web/20180609154155/http://www.samsung.com/global/business/semiconductor/file/product/Exynos_4_Quad_User_Manaul_Public_REV1.00-0.pdf The public datasheet for the Exynos 4412]
* [https://github.com/chasinglulu/chasinglulu.github.io/blob/master/downloads/SEC_Exynos4412_Users_Manual_Ver.1.00.00.pdf Exynos 4412 SEC User's Manual]
* [https://github.com/lian494362816/Tiny4412/blob/master/Pdf/Exynos%204412%20SCP_Users%20Manual_Ver.0.10.00_Preliminary0.pdf Exynos 4412 SCP User's Manual]
* [[Exynos mainline porting]]
* [[Exynos mainline porting]]
* p4note U-Boot: https://github.com/Lutjens-PoL/u-boot
* p4note U-Boot: https://github.com/Lutjens-PoL/u-boot
[[Category:Samsung Exynos]]

Latest revision as of 18:02, 11 December 2024

Element logo Exynos 4 Mainlining Community on Matrix.
GitLab logo Exynos 4 Mainlining Group in GitLab.

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

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
No data
Audio
No data
Video
No data
Thermal
Works
Camera
No data
Suspend
No data
Ethernet
No data
SATA
No data
Device Codename Mainline
Samsung Galaxy Note samsung-q1 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
No data
Audio
Works
Video
No data
Thermal
Works
Camera
No data
Suspend
Works
Ethernet
No data
SATA
No data
Device Codename Mainline
Samsung Galaxy Tab 3 8.0 samsung-lt01 Y

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
No data
Audio
Works
Video
No data
Thermal
Works
Camera
Partial
Suspend
Works
Ethernet
No data
SATA
No data
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

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
No data
UART
No data
Storage
No data
USB
No data
Display
No data
GPU
No data
Pinctrl
No data
I²C
No data
SPI
No data
Audio
No data
Video
No data
Thermal
No data
Camera
No data
Suspend
No data
Ethernet
No data
SATA
No data

No results

USB OTG

As of kernel 6.10.0, USB OTG should work on devices that have it enabled (currently that's the Galaxy S III, Note II and the Galaxy Tab 3 8.0). The only caveat is that occasionally, peripheral mode may no longer work after plugging in an OTG cable until the system is restarted.

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. If you're feeling adventurous, feel free to investigate - the module is enabled in the v6.10 kernel.

Camera

pmaports!5888 introduced changes on the kernel config side to allow for using the cameras; there is a pending Megapixels MR adding support for the SIII/Note 2's cameras to libmegapixels. There was some earlier work in pmaports!2248 to add camera support for the Galaxy S2.

The drivers for the sensors are rather quirky, and the FIMC driver may need changes too; this is yet to be investigated.

See also