Samsung Exynos 5433 Octa

From postmarketOS
Jump to navigation Jump to search

Exynos 5433

Samsung 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
Suspend
Works


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.

Mainline (for samsung phone that use exynos 5433)

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 (for samsung phone that use exynos 5433)

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.