]> git.dujemihanovic.xyz Git - dujemihanovic.xyz.git/blob - content/projects/pxa1908/index.md
Update PXA1908 page
[dujemihanovic.xyz.git] / content / projects / pxa1908 / index.md
1 ---
2 title: "Mainline Linux on Marvell PXA1908"
3 date: 2023-09-10T22:23:48+02:00
4 ---
5 The Marvell PXA1908 was Marvell's first ARM64 SoC released sometime around 2014
6 or 2015. The SoC is used in some of Samsung's entry level 2015 phones such as
7 the [Core Prime VE
8 LTE](https://wiki.postmarketos.org/wiki/Samsung_Galaxy_Core_Prime_VE_LTE_(samsung-coreprimevelte))
9 and the [Xcover 3
10 LTE](https://wiki.postmarketos.org/wiki/Samsung_Galaxy_Xcover_3_(samsung-xcover3lte)).
11 The PXA1908 currently has out-of-tree support for booting mainline Linux.
12
13 ## Links
14
15 * [Latest version of patchset
16 (RESEND v10)](https://lore.kernel.org/20240618-pxa1908-lkml-v10-0-754e5ece9078@skole.hr)
17 * [Main Git
18 repository](https://gitlab.com/LegoLivesMatter/linux/-/tree/mainline)
19 * [postmarketOS SoC page](https://wiki.postmarketos.org/wiki/Marvell_PXA1908)
20 * [XDA thread](https://xdaforums.com/t/rom-linux-sm-g361f-postmarketos.4679273/)
21
22 ## Building outside pmbootstrap
23
24 1. Clone and compile [pxa-mkbootimg](https://github.com/osm0sis/pxa-mkbootimg)
25 1. Clone repository
26 1. Checkout `mainline`
27 1. Get [kernel
28 config](https://gitlab.com/postmarketOS/pmaports/-/raw/master/device/testing/linux-samsung-coreprimevelte/config-samsung-coreprimevelte.aarch64)
29 from pmaports
30 1. `make` the kernel and create a boot.img using the below script
31
32 ## Script for creating boot.img
33 Written to be run from `out/arch/arm64/boot`. Adapt to your needs.
34
35 ```sh
36 #!/bin/sh
37
38 mkimage -A arm64 -C gzip -a 0x1000000 -e 0x1000000 -n "pxa1928dkb linux" -d Image.gz uImage
39 ~/code/pxa-mkbootimg/pxa1908-dtbTool -p ../../../scripts/dtc/ -s 2048 -o dt.img dts/marvell/
40 ~/code/pxa-mkbootimg/pxa-mkbootimg \
41 --kernel uImage \
42 --base 0x10000000 \
43 --ramdisk /tmp/postmarketOS-export/initramfs \
44 --ramdisk_offset 0x1000000 \
45 --pagesize 2048 \
46 --dt dt.img \
47 --second_offset 0xf00000 \
48 --tags_offset 0x100 \
49 -o boot.img
50 ```
51
52 ## Todo
53 Moved [here](https://gitlab.com/LegoLivesMatter/linux/-/issues/1)