Jump to content

Marvell PXA1908: Difference between revisions

From postmarketOS Wiki
m Add IAP140 note
m eMMC works, update GitLab link
Line 10: Line 10:
| status_cpu = P
| status_cpu = P
| status_uart = Y
| status_uart = Y
| status_storage = P
| status_storage = Y
| status_usb = Y
| status_usb = Y
| status_display = N
| status_display = N
Line 43: Line 43:


== Mainline ==
== Mainline ==
A work-in-progress tree is available [https://gitlab.com/LegoLivesMatter/linux/-/tree/pxa1908 here].
A work-in-progress tree is available [https://gitlab.com/LegoLivesMatter/linux/-/tree/coreprimevelte here].


S-Boot can pass the initramfs to the kernel only when the default kernel cmdline is used. Also, S-Boot does not start the ARM architected timer as it should, requiring a hack in the kernel which probably can't be upstreamed into Linux (at least not inside the clock driver).
S-Boot can pass the initramfs to the kernel only when the default kernel cmdline is used. Also, S-Boot does not start the ARM architected timer as it should, requiring a hack in the kernel which probably can't be upstreamed into Linux (at least not inside the clock driver).
Line 49: Line 49:
S-Boot also hardcodes the size of the (compressed) initramfs to 2624K. If a larger initramfs is used, init may panic by failing to find files which should exist.
S-Boot also hardcodes the size of the (compressed) initramfs to 2624K. If a larger initramfs is used, init may panic by failing to find files which should exist.


As of writing, the kernel fork can successfully initialize the SD card and boot postmarketOS off of it. The internal eMMC on the other hand shows these errors:
eMMC now works with a hack (forced to run in DDR mode instead of HS200 as it should be able to, not yet packaged), but non-critical <pre>Card stuck being busy!</pre> errors may still happen from time to time.
 
<pre>
[    0.219469] mmc2: Tuning failed, falling back to fixed sampling clock
[    1.838001] mmc2: Card stuck being busy! __mmc_poll_for_busy
[    1.838121] mmc2: error -110 whilst initialising MMC card
[    1.936529] mmc2: Tuning failed, falling back to fixed sampling clock
[    3.543552] mmc2: Card stuck being busy! __mmc_poll_for_busy
[    3.543669] mmc2: error -110 whilst initialising MMC card
[    3.655114] mmc2: Tuning failed, falling back to fixed sampling clock
[    5.311571] mmc2: Card stuck being busy! __mmc_poll_for_busy
[    5.311591] mmc2: error -110 whilst initialising MMC card
[    5.461058] mmc2: Tuning failed, falling back to fixed sampling clock
[    7.077998] mmc2: Card stuck being busy! __mmc_poll_for_busy
[    7.078018] mmc2: error -110 whilst initialising MMC card
[    7.079290] mmc2: Failed to initialize a non-removable card
</pre>


Similarly, WiFi is rather flaky: sometimes firmware uploading fails, sometimes it stops working very shortly after firmware upload and sometimes it stops working after a few hours of normal use.
Similarly, WiFi is rather flaky: sometimes firmware uploading fails, sometimes it stops working very shortly after firmware upload and sometimes it stops working after a few hours of normal use.

Revision as of 17:59, 22 December 2023

Marvell PXA1908
Manufacturer Marvell
Name PXA1908
Architecture aarch64
CPU 4x 1.2GHz ARM Cortex-A53
GPU Vivante GC7000UL
Year 2014/2015
Process 28nm
Mainline Partial
Components
CPU
Partial
UART
Works
Storage
Works
USB
Works
Display
Broken
GPU
Broken
Pinctrl
Works
I²C
Works
Audio
Broken
Video
Broken
Thermal
Broken
Modem
Broken
GPS
Broken
Camera
Broken
NPU
No data
Suspend
Broken
Ethernet
No data
SATA
No data

Marvell PXA1908 is a low-end ARM64 SoC, released in either late 2014 or 2015 according to various online sources.

There is a modemless variant of this SoC called IAP140 (see https://lore.kernel.org/lkml/8737f7yyc8.fsf@belgarion.home/T/#m92f43e1a24549a1421cbe19dfe74cf0db8c550c6).

Known devices

Device Codename Mainline
Samsung Galaxy Core Prime VE LTE samsung-coreprimevelte Y
Samsung Galaxy Grand Prime VE LTE samsung-grandprimevelte
Samsung Galaxy Xcover 3 samsung-xcover3lte P

Mainline

A work-in-progress tree is available here.

S-Boot can pass the initramfs to the kernel only when the default kernel cmdline is used. Also, S-Boot does not start the ARM architected timer as it should, requiring a hack in the kernel which probably can't be upstreamed into Linux (at least not inside the clock driver).

S-Boot also hardcodes the size of the (compressed) initramfs to 2624K. If a larger initramfs is used, init may panic by failing to find files which should exist.

eMMC now works with a hack (forced to run in DDR mode instead of HS200 as it should be able to, not yet packaged), but non-critical

Card stuck being busy!

errors may still happen from time to time.

Similarly, WiFi is rather flaky: sometimes firmware uploading fails, sometimes it stops working very shortly after firmware upload and sometimes it stops working after a few hours of normal use.

See also