Skip to content
Snippets Groups Projects

Add mainline device port for Samsung Galaxy S4 Mini Value Edition (samsung-serranovelte)

Merged Imported Administrator requested to merge serranovelte into master
All threads resolved!

Note: This is only for the Samsung Galaxy S4 Mini Value Edition (aka GT-I9195I), using the MSM8916 SoC.

Add a mainline device port for samsung-serranovelte. It has similar functionality supported as the existing MSM8916 mainline ports for samsung-a5ulte or wileyfox-crackling:

Status Overview

Most of the bring-up was done on one weekend, which (IMO) shows that MSM8916 is a very nice platform for mainlining.

  • Booting: :heavy_check_mark:
  • USB Gadget Mode: :heavy_check_mark:
  • Display: :heavy_check_mark:
    • Brightness: :x: (TBD)
  • GPU: :heavy_check_mark: (Freedreno)
  • Touchscreen: :heavy_check_mark:
  • WiFi: :heavy_check_mark:
  • Bluetooth: :heavy_check_mark:
  • NFC: :heavy_check_mark: (with neard)
  • Audio: :heavy_check_mark: (Speaker, Headphones, Earpiece, Microphones)
  • Sensors:
    • IMU (Accelerometer + Gyroscope): :heavy_check_mark:
    • Magnetometer: :x: (TBD)
    • Proximity/Light Sensor: :x: (TBD)
    • Hall Sensor: :heavy_check_mark:
  • Vibrator: :heavy_check_mark:
  • Hardware-accelerated video codecs: :heavy_check_mark: (Venus)
  • Battery: :heavy_check_mark:
  • Charging: Seems to charge without software interaction (same driver as A3/A5)
  • Modem: Partial, works in initial tests (was able to send SMS), not included in this MR
    • GPS: :x:
  • Camera: :x: (TBD)

Limitations

samsung-serranovelte is actually the device I started mainlining first originally. Unfortunately it has a major limitation that complicates running mainline on it:

MSM8916 was the first 64-bit CPU from Qualcomm. Back when it was introduced (together with Android 4.4) there was no support for aarch64 in Android. This means that many MSM8916 devices were actually using armv7 kernel + user-space on downstream, even though the hardware is capable of aarch64. Unfortunately, old firmware versions used together with Android 4.4 do not even support booting aarch64 kernels. That functionality was usually added together with the Android 5.0 update.

On the other hand, mainline Linux only supports MSM8916 on aarch64. This works fine on devices that received an update to Android 5.0, but unfortunately Samsung never bothered to release any update for samsung-serranovelte. Therefore it is stuck on Android 4.4 with armv7, with no way to boot an aarch64 kernel. Even worse, the firmware is signed - so we have no way to update it ourself.

Despite this limitation I've been looking for ways to run mainline on it. So far I haven't been able to come up with any way to make it boot aarch64 kernels (maybe there is none?), so instead I tried to make mainline work on armv7. This works surprisingly well. There were a few fixes needed but now it runs mainline (on armv7) as well as all the other MSM8916 devices. :tada:

Merge request reports

Merged by AdministratorAdministrator 5 years ago (Dec 24, 2019 7:24am UTC)

Loading

Pipeline #194075 passed

Pipeline passed for 3a70f374 on master

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
    • Author Owner
      Resolved by Administrator

      CI times out, but only because it tries to build both arches for linux-postmarketos-qcom-msm8916. :(

      It seems to have built everything relevant successfully before starting to build linux-postmarketos-qcom-msm8916 for aarch64. Also, everything is working fine locally.

      By Minecrell on 2019-12-23T21:37:05

      Edited by Ghost User
  • Administrator resolved all threads · Imported

    resolved all threads

    By Oliver Smith on 2019-12-23T21:36:01

  • Administrator approved this merge request · Imported

    approved this merge request

    By Oliver Smith on 2019-12-23T21:37:45

  • Administrator added category::device + 1 deleted label · Imported

    added category::device + 1 deleted label

  • Administrator resolved all threads · Imported

    resolved all threads

    By Alexey Min on 2019-12-23T23:55:43

  • Administrator approved this merge request · Imported

    approved this merge request

    By Alexey Min on 2019-12-24T00:00:54

  • Administrator added 4 commits · Imported

    added 4 commits

    • 73403ae4 - 1 commit from branch postmarketOS:master
    • b976e78a - main/linux-postmarketos-qcom-msm8916: build for armv7 (!828)
    • 0d668844 - device/soc-qcom-msm8916: enable on armv7 (!828)
    • 3b748f89 - samsung-serranovelte: new device (Samsung Galaxy S4 Mini Value Edition) (!828)

    Compare with previous version

    By Alexey Min on 2019-12-24T00:01:07

  • Administrator added 5 commits · Imported

    added 5 commits

    • 3b748f89...62bc6bb2 - 2 commits from branch postmarketOS:master
    • 8ac2eaa2 - main/linux-postmarketos-qcom-msm8916: build for armv7 (!828)
    • cf8b2f60 - device/soc-qcom-msm8916: enable on armv7 (!828)
    • 3a70f374 - samsung-serranovelte: new device (Samsung Galaxy S4 Mini Value Edition) (!828)

    Compare with previous version

    By Alexey Min on 2019-12-24T00:15:49

  • Administrator merged · Imported

    merged

    By Alexey Min on 2019-12-24T07:24:04

  • Administrator mentioned in commit 8ac2eaa2 · Imported

    mentioned in commit 8ac2eaa2

    By Minecrell on 2019-12-28T15:45:25

  • Administrator mentioned in commit cf8b2f60 · Imported

    mentioned in commit cf8b2f60

    By Minecrell on 2019-12-28T15:45:25

  • Administrator mentioned in commit 3a70f374 · Imported

    mentioned in commit 3a70f374

    By Minecrell on 2019-12-28T15:45:25

  • Please register or sign in to reply
    Loading