Project

General

Profile

Pinephonev1x » History » Version 47

Denis 'GNUtoo' Carikli, 09/13/2021 03:59 PM
Add note about the lack of RING on AT.

1 24 Denis 'GNUtoo' Carikli
h1. PinePhone
2 1 Denis 'GNUtoo' Carikli
3 30 dl lud
The prototype version of PinePhone is already in the hands of developers and a new batch is shipping in January 2020[12], hardware won't change much from now on.
4 27 Denis 'GNUtoo' Carikli
5 28 dl lud
|_. Feature |_. Hardware |_. Comments |_. TODO |
6 42 dl lud
| System on a chip | Allwinner A64 Quad Core[9] | * The bootloader should be fully free software[7] including ARM Trusted Firmware[8].
7
* The code should be upstream already[7]. | TODO:
8
* Look at the code. |
9 23 Denis 'GNUtoo' Carikli
| GPU | Mali 400 MP2 GPU[1] | * A "pipe" driver is in Linux since 5.2
10 42 dl lud
* Has (very early) support in Mesa. | TODO: 
11
* Regularly check kernel and Mesa status. |
12 1 Denis 'GNUtoo' Carikli
| Modem |/2. Quectel EG-25G[1] with[2] worldwide bands[4] | * The EG-25G is an international version of the EC25.
13 39 dl lud
* Runs GNU/Linux[18].
14
* USB connection for data and I2S connection for audio[18].
15 29 dl lud
* Audio connected to both PCM interfaces on the A64[14].
16
* PCM audio still experimental: sending to the modem works fine, receiving produces mangled samples[14]. | TODO:
17 47 Denis 'GNUtoo' Carikli
* How supported is the AT support? AT looks unusable[20].
18 1 Denis 'GNUtoo' Carikli
* How supported is the QMI the protocol?
19
* What's the similarity with the EC-25? |
20 26 Andrés D
| GNSS[1]: GPS, GPS-A, GLONASS[4] | |
21 42 dl lud
| WiFi |/2. RTL8723cs[3] | * Requires a nonfree loadable firmware[3].
22 39 dl lud
* Connected via SDIO[18]. | |
23
| Bluetooth: 4.0, A2DP[1] | * Requires a nonfree firmware[3].
24
* Connected via UART[18]. | TODO:
25
* Check if it really requires that firmware or if it has some ROM code that could be used? |
26 28 dl lud
| USB – C[1] (Power, Data and Video Out) | |* USB 2.0[9]
27 1 Denis 'GNUtoo' Carikli
* Serial console is only available in the headphone connector (activated by the 6th contact on the dipswitch[10])| |
28 39 dl lud
| RAM | 2GB of LPDDR3 RAM | * Initialized by u-boot SPL[18]. | TODO:
29 19 Denis 'GNUtoo' Carikli
* Check if it meets [[HardwareRequirements|Android 9 requirements]] |
30 39 dl lud
| Main Camera | Single OmniVision OV6540, 5MP, 1/4″, LED Flash[1] | * Mainline driver[5]
31
* No firmware required[5]
32
* There's an optional non-free firmware for the auto-focus[18]. | |
33
| Selfie Camera | Single GC2035[1], 2MP, f/2.8, 1/5″ | | |
34 44 dl lud
| Storage | Bootable microSD slot[1]
35
 16GB eMMC[1] | * Boot order: microSD -> eMMC[6]| |
36 26 Andrés D
| Sensors accelerator, gyro, proximity, compass, barometer, ambient light[1] | | | TODO:
37 42 dl lud
* Which chips are used? |
38 28 dl lud
| LCD panel and touchscreen | 5.95″ LCD 1440×720
39 42 dl lud
18:9 aspect ratio (hardened glass) | Probably works with free software[11]. | |
40 36 dl lud
| Power Management IC (PMIC) | AXP803[13] | | |
41
| Power Management coprocessor | AR100[15] | * The proprietary firmware can be replaced with Crust[16].
42 38 dl lud
* Allows deep power-saving modes and later wake-up.
43 30 dl lud
* Use case: receive signal from modem to wake-up device[17]. | |
44
45 45 Denis 'GNUtoo' Carikli
h2. Downstream reference code
46 1 Denis 'GNUtoo' Carikli
47 45 Denis 'GNUtoo' Carikli
*Downstream arm-trusted-firmware*: https://gitlab.com/pine64-org/arm-trusted-firmware
48
*Downstream Linux*: https://gitlab.com/pine64-org/linux
49
*Downstream u-boot*: https://gitlab.com/pine64-org/u-boot
50
*Downstream utguard*: https://gitlab.com/pine64-org/mali-utgard-driver
51 1 Denis 'GNUtoo' Carikli
52 45 Denis 'GNUtoo' Carikli
Other projects:
53
* They is a fork of Linux's sunxi-next through MoeIcenowy, downstream projects such as UBports and postmarketOs gather efforts there for future upstreaming.
54
55
h2. Upstream status
56
57
h3. Linux
58
59
Current Linux upstreaming path looks like this: pine64 -> sunxi-next -> linux-next -> torvalds
60 1 Denis 'GNUtoo' Carikli
Patches relevant to all A64 devices should be directly sent to sunxi-next.
61
Patches only relevant to PinePhone should be sent to pine64.
62
63 45 Denis 'GNUtoo' Carikli
Status:
64
* "The DTS":https://gitlab.com/pine64-org/linux/-/raw/pine64-kernel-5.4.y/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.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.
65
* The panel driver is not upstream
66
* The Modem PCM audio is not upstream
67
* The SOC (and devices?) power management is not upstream
68 46 Denis 'GNUtoo' Carikli
* The "fix for the A64 timer":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c950ca8c35eeb32224a63adc47e12f9e226da241 "is in Linux 5.1":https://linux-sunxi.org/Linux_mainlining_effort#Merged_into_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.
69 45 Denis 'GNUtoo' Carikli
70
h3. U-boot
71
72
The "u-boot patch that adds the pinephone":https://gitlab.com/pine64-org/u-boot/-/commit/f405aa95e7717b4772e6a9cc75e859be075dda54 consist of just a DTS and a defconfig file. 
73
* The dts probably needs to be upstreamed in Linux first.
74
* The patch has no signed-off-by but the configuration can be re-done
75
* The dts comes from Linux which patch has proper signed-off-by and attribution
76 40 dl lud
77
h2. Hardware kill switches
78
79
The PinePhone has 6 hardware switches[19] 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.
80 41 dl lud
81
h2. Schematics
82
83
"PinePhone Brave Heart Schematic":http://files.pine64.org/doc/PinePhone/PinePhone_Schematic_v1.1_20191031.pdf
84
"PinePhone Brave Heart Changes (vs prototype units)":http://files.pine64.org/doc/PinePhone/PinePhone_BraveHeart_edition_version_1.1_change_list.pdf
85
"PinePhone Exploded Diagram of Brave Heart edition PinePhones":http://files.pine64.org/doc/PinePhone/PinePhone_Exploded_Diagram_ver_1.0.pdf
86 3 Denis 'GNUtoo' Carikli
87 32 dl lud
h2. References
88 1 Denis 'GNUtoo' Carikli
89 28 dl lud
fn1. Some specifications are available at the "device page":https://www.pine64.org/pinephone/ and "wiki page":https://wiki.pine64.org/index.php/PinePhone.
90 4 Denis 'GNUtoo' Carikli
91 34 dl lud
fn2. PinePhone discussion in Replicant's mailing list: https://lists.osuosl.org/pipermail/replicant/2019-July/001997.html
92 18 Denis 'GNUtoo' Carikli
93 34 dl lud
fn3. From #replicant channel on Freenode: <pre><MoeIcenowy> The Wi-Fi changed to RTL8723CS (this chip also does BT), which needs non-free firmware to be feed</pre>
94 1 Denis 'GNUtoo' Carikli
95 34 dl lud
fn4. From #replicant channel on Freenode: <pre><MoeIcenowy> The GNSS should be also done by EG25-G</pre>
96 1 Denis 'GNUtoo' Carikli
97 34 dl lud
fn5. From #replicant channel on Freenode: <pre><MoeIcenowy> The OV5640 camera doesn't need firmware and its driver is mainlined</pre>
98 1 Denis 'GNUtoo' Carikli
99 34 dl lud
fn6. From #replicant channel on Freenode: <pre><MoeIcenowy> The boot order is strictly MicroSD->eMMC, which is set in the A64's boot ROM</pre>
100 1 Denis 'GNUtoo' Carikli
101
fn7. From #replicant channel on Freenode: <pre><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)</pre>
102 47 Denis 'GNUtoo' Carikli
need
103 25 Andrés D
fn8. From #replicant channel on Freenode: <pre><MoeIcenowy> https://github.com/ARM-software/arm-trusted-firmware</pre>
104 1 Denis 'GNUtoo' Carikli
105
fn9. Allwinner A64 Datasheet: http://files.pine64.org/doc/datasheet/pine64/A64_Datasheet_V1.1.pdf
106 25 Andrés D
107 27 Denis 'GNUtoo' Carikli
fn10. PostmarketOS Pinephone page: https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone)#Serial_console
108 35 dl lud
109
fn11. From #replicant channel on Freenode: <pre>
110 27 Denis 'GNUtoo' Carikli
01:48 <adjtm> GNUtoo, lukasz confirmed me that the lcd doesn't require proprietary firmware to be uploaded
111
01:49 <adjtm> the conversation between pine64 staff about the lcd that someone posted on irc was probably before deciding in
112 1 Denis 'GNUtoo' Carikli
               the last lcd</pre>
113
114 28 dl lud
fn12. PINE64 December 2019 Update: https://www.pine64.org/2019/12/05/december-update-thank-you-for-2019/
115 1 Denis 'GNUtoo' Carikli
116
fn13. From Xalius on "PINE64 IRC":https://forum.pine64.org/showthread.php?tid=892. Details at: https://linux-sunxi.org/AXP803
117 29 dl lud
118 1 Denis 'GNUtoo' Carikli
fn14. From Xalius.
119 36 dl lud
120
fn15. https://linux-sunxi.org/AR100
121
122
fn16. https://github.com/crust-firmware/crust
123
124 39 dl lud
fn17. From Xalius.
125
126 40 dl lud
fn18. PinePhone Misconceptions: https://www.pine64.org/2020/01/24/setting-the-record-straight-pinephone-misconceptions/
127 1 Denis 'GNUtoo' Carikli
128
fn19. PinePhone at PINE64 wiki: https://wiki.pine64.org/index.php/PinePhone#Killswitch_configuration
129 47 Denis 'GNUtoo' Carikli
130
fn20. According to Pavel Machek, "there is no RING indication on the AT side":https://pavelmachek.livejournal.com/143504.html ("archive":https://web.archive.org/web/20210913155020/https://pavelmachek.livejournal.com/143504.html) so we might be required to use QMI. QMI is probably a better long term solution anyway.