Mainline Linux on Marvell PXA1908

The Marvell PXA1908 was Marvell’s first ARM64 SoC released sometime around 2014 or 2015. The SoC is used in some of Samsung’s entry level 2015 phones such as the Core Prime VE LTE and the Xcover 3 LTE. The PXA1908 currently has out-of-tree support for booting mainline Linux.

U-Boot port

There is now a somewhat functional U-Boot port! It can be found on my Git server. It’s packaged into a bootimg just like Linux itself as seen below. Pay particular attention to the fact that the U-Boot binary is gzipped and packed into an uImage.

Note: By somewhat functional I mean working serial. It can also boot a FIT of U-Boot, but some work on SD/MMC and maybe USB is needed to make it doable for inclusion in the pmOS port.

Building outside pmbootstrap

  1. Clone and compile pxa-mkbootimg
  2. Clone repository
  3. Checkout mainline
  4. Get kernel config from pmaports
  5. make the kernel and create a boot.img using the below script

Script for creating boot.img

Written to be run from out/arch/arm64/boot. Adapt to your needs.

#!/bin/sh

mkimage -A arm64 -C gzip -a 0x1000000 -e 0x1000000 -n "pxa1928dkb linux" -d Image.gz uImage
~/code/pxa-mkbootimg/pxa1908-dtbTool -p ../../../scripts/dtc/ -s 2048 -o dt.img dts/marvell/
~/code/pxa-mkbootimg/pxa-mkbootimg \
    --kernel uImage \
    --base 0x10000000 \
    --ramdisk /tmp/postmarketOS-export/initramfs \
    --ramdisk_offset 0x1000000 \
    --pagesize 2048 \
    --dt dt.img \
    --second_offset 0xf00000 \
    --tags_offset 0x100 \
    -o boot.img

Todo

Moved here