PinePhonev1x » History » Version 46
Denis 'GNUtoo' Carikli, 09/04/2020 01:59 AM
Add timer fix
| 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 | 11 | Denis 'GNUtoo' Carikli | * How supported is the AT support? |
| 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 | 25 | Andrés D | |
| 103 | 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 | |||
| 128 | 1 | Denis 'GNUtoo' Carikli | fn19. PinePhone at PINE64 wiki: https://wiki.pine64.org/index.php/PinePhone#Killswitch_configuration |