Project

General

Profile

Actions

Pinephonev1x » History » Revision 48

« Previous | Revision 48/50 (diff) | Next »
Denis 'GNUtoo' Carikli, 09/13/2021 04:00 PM
group AT and QMI together


PinePhone

The prototype version of PinePhone is already in the hands of developers and a new batch is shipping in January 202012, hardware won't change much from now on.

Feature Hardware Comments TODO
System on a chip Allwinner A64 Quad Core9 * The bootloader should be fully free software7 including ARM Trusted Firmware8.
* The code should be upstream already7.
TODO:
* Look at the code.
GPU Mali 400 MP2 GPU1 * A "pipe" driver is in Linux since 5.2
* Has (very early) support in Mesa.
TODO:
* Regularly check kernel and Mesa status.
Modem Quectel EG-25G1 with2 worldwide bands4 * The EG-25G is an international version of the EC25.
* Runs GNU/Linux18.
* USB connection for data and I2S connection for audio18.
* Audio connected to both PCM interfaces on the A6414.
* PCM audio still experimental: sending to the modem works fine, receiving produces mangled samples14.
TODO:
* AT support commands look unusable20, so we need to use QMI which is way more robust anyway.
* What's the similarity with the EC-25?
GNSS1: GPS, GPS-A, GLONASS4
WiFi RTL8723cs3 * Requires a nonfree loadable firmware3.
* Connected via SDIO18.
Bluetooth: 4.0, A2DP1 * Requires a nonfree firmware3.
* Connected via UART18.
TODO:
* Check if it really requires that firmware or if it has some ROM code that could be used?
USB – C1 (Power, Data and Video Out) * USB 2.09
* Serial console is only available in the headphone connector (activated by the 6th contact on the dipswitch10)
RAM 2GB of LPDDR3 RAM * Initialized by u-boot SPL18. TODO:
* Check if it meets Android 9 requirements
Main Camera Single OmniVision OV6540, 5MP, 1/4″, LED Flash1 * Mainline driver5
* No firmware required5
* There's an optional non-free firmware for the auto-focus18.
Selfie Camera Single GC20351, 2MP, f/2.8, 1/5″
Storage Bootable microSD slot1
16GB eMMC1
* Boot order: microSD -> eMMC6
Sensors accelerator, gyro, proximity, compass, barometer, ambient light1 TODO:
* Which chips are used?
LCD panel and touchscreen 5.95″ LCD 1440×720
18:9 aspect ratio (hardened glass)
Probably works with free software11.
Power Management IC (PMIC) AXP80313
Power Management coprocessor AR10015 * The proprietary firmware can be replaced with Crust16.
* Allows deep power-saving modes and later wake-up.
* Use case: receive signal from modem to wake-up device17.

Downstream reference code

Downstream arm-trusted-firmware: https://gitlab.com/pine64-org/arm-trusted-firmware
Downstream Linux: https://gitlab.com/pine64-org/linux
Downstream u-boot: https://gitlab.com/pine64-org/u-boot
Downstream utguard: https://gitlab.com/pine64-org/mali-utgard-driver

Other projects:
  • They is a fork of Linux's sunxi-next through MoeIcenowy, downstream projects such as UBports and postmarketOs gather efforts there for future upstreaming.

Upstream status

Linux

Current Linux upstreaming path looks like this: pine64 -> sunxi-next -> linux-next -> torvalds
Patches relevant to all A64 devices should be directly sent to sunxi-next.
Patches only relevant to PinePhone should be sent to pine64.

Status:
  • The DTS needs to be cleaned up, the reference to non-upstream drivers (like the LCD panel) removed, and sent upstream. The patch adding the DTS has a signed-off-by. Sending it upstream could enable to fully upstream the u-boot port.
  • The panel driver is not upstream
  • The Modem PCM audio is not upstream
  • The SOC (and devices?) power management is not upstream
  • The fix for the A64 timer is in Linux 5.1 and seem to be good enough to make it reliable including for userspace. The result is just a timer that is a bit less precise and slower.

U-boot

The u-boot patch that adds the pinephone consist of just a DTS and a defconfig file.
  • The dts probably needs to be upstreamed in Linux first.
  • The patch has no signed-off-by but the configuration can be re-done
  • The dts comes from Linux which patch has proper signed-off-by and attribution

Hardware kill switches

The PinePhone has 6 hardware switches19 that allow turning on/off different hardware components: modem, WiFi/Bluetooth, microphone, rear camera, front camera and headphones. Unfortunately these are located under the back cover, which needs to be taken out to operate them.

Schematics

PinePhone Brave Heart Schematic
PinePhone Brave Heart Changes
PinePhone Exploded Diagram of Brave Heart edition PinePhones

References

1 Some specifications are available at the device page and wiki page.

2 PinePhone discussion in Replicant's mailing list: https://lists.osuosl.org/pipermail/replicant/2019-July/001997.html

3 From #replicant channel on Freenode:

<MoeIcenowy> The Wi-Fi changed to RTL8723CS (this chip also does BT), which needs non-free firmware to be feed

4 From #replicant channel on Freenode:

<MoeIcenowy> The GNSS should be also done by EG25-G

5 From #replicant channel on Freenode:

<MoeIcenowy> The OV5640 camera doesn't need firmware and its driver is mainlined

6 From #replicant channel on Freenode:

<MoeIcenowy> The boot order is strictly MicroSD->eMMC, which is set in the A64's boot ROM

7 From #replicant channel on Freenode:

<MoeIcenowy> The bootloader (U-Boot SPL + ATF + U-Boot) is free software, all mainlined now (and the downstream dirty U-Boot cannot boot upstream Linux kernel)

need
fn8. From #replicant channel on Freenode:
<MoeIcenowy> https://github.com/ARM-software/arm-trusted-firmware

9 Allwinner A64 Datasheet: http://files.pine64.org/doc/datasheet/pine64/A64_Datasheet_V1.1.pdf

10 PostmarketOS Pinephone page: https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone)#Serial_console

11 From #replicant channel on Freenode:

01:48 <adjtm> GNUtoo, lukasz confirmed me that the lcd doesn't require proprietary firmware to be uploaded
01:49 <adjtm> the conversation between pine64 staff about the lcd that someone posted on irc was probably before deciding in
               the last lcd

12 PINE64 December 2019 Update: https://www.pine64.org/2019/12/05/december-update-thank-you-for-2019/

13 From Xalius on PINE64 IRC. Details at: https://linux-sunxi.org/AXP803

14 From Xalius.

15 https://linux-sunxi.org/AR100

16 https://github.com/crust-firmware/crust

17 From Xalius.

18 PinePhone Misconceptions: https://www.pine64.org/2020/01/24/setting-the-record-straight-pinephone-misconceptions/

19 PinePhone at PINE64 wiki: https://wiki.pine64.org/index.php/PinePhone#Killswitch_configuration

20 According to Pavel Machek, there is no RING indication on the AT side (archive) so we might be required to use QMI. QMI is probably a better long term solution anyway.

Updated by Denis 'GNUtoo' Carikli over 2 years ago · 48 revisions

Also available in: PDF HTML TXT