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.
|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.
* Look at the code.
|GPU||Mali 400 MP2 GPU1|| * A "pipe" driver is in Linux since 5.2
* Has (very early) support in Mesa.
* 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.
* How supported is the AT support?
* How supported is the QMI the protocol?
* 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.
* 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
|* 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
- They is a fork of Linux's sunxi-next through MoeIcenowy, downstream projects such as UBports and postmarketOs gather efforts there for future upstreaming.
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.
- 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.
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)
8 From #replicant channel on Freenode:
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/
14 From Xalius.
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