Skip to content

Commit

Permalink
pkg: pine64: device-pine64-pinephone: include boot script
Browse files Browse the repository at this point in the history
Move the u-boot configuration to the device meta-package, and change
mmc_bootdev to devnum for compatibility with tow-boot.

When booting from tow-boot mmc_bootdev points at the emmc, even if arch
is installed to the sd card, devnum gets set to be the correct device
though.
  • Loading branch information
ArenM committed Jun 14, 2022
1 parent 6a28f11 commit 9f46902
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 8 deletions.
19 changes: 14 additions & 5 deletions PKGBUILDS/pine64/device-pine64-pinephone/PKGBUILD
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
# Maintainer: Danct12 <[email protected]>
pkgname=device-pine64-pinephone
pkgver=0.2
pkgrel=4
pkgrel=5
pkgdesc="PinePhone device package"
arch=(aarch64)
url="https://github.com/dreemurrs-embedded/Pine64-Arch"
license=('MIT')
depends=(danctnix-tweaks alsa-ucm-pinephone linux-megi uboot-pinephone rtl8723bt-firmware anx7688-firmware
ov5640-firmware eg25-manager)
depends=(danctnix-tweaks alsa-ucm-pinephone linux-megi rtl8723bt-firmware anx7688-firmware
ov5640-firmware eg25-manager uboot-tools)
optdepends=('uboot-pinephone: required if not using tow-boot')
install="$pkgname.install"
backup=("boot/boot.txt")
source=(10-proximity.rules
10-pinephone-brightness.rules
pinephone-suspend-hook.sh
machine-info
pulseaudio-pinetweaks.conf)
pulseaudio-pinetweaks.conf
boot.txt
mkscr)

package() {
# Kanged from Mobian, this is to make iio-sensor-proxy works with proximity sensor.
Expand All @@ -28,10 +32,15 @@ package() {
install -Dm644 "$srcdir"/machine-info "$pkgdir"/etc/machine-info

install -Dm644 "$srcdir"/pulseaudio-pinetweaks.conf "$pkgdir"/etc/pulse/daemon.conf.d/pinetweaks.conf

# u-boot startup script
install -Dm644 -t "${pkgdir}"/boot boot.txt mkscr
}

md5sums=('b72ff096c022588f72c226283ac328bd'
'3a478fece4381cf41fb795009bfe8cc3'
'b0912b95d7d810a0f161d9bd79fc162b'
'b53781dde1d7a9a44e5076f3be463570'
'1504e684e5a2aec439e0674cdfc9d3c1')
'1504e684e5a2aec439e0674cdfc9d3c1'
'69400a6dfe94221172b2a00f18b1a8bd'
'021623a04afd29ac3f368977140cfbfd')
50 changes: 50 additions & 0 deletions PKGBUILDS/pine64/device-pine64-pinephone/boot.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
gpio set 98 # Enable vibrator

if test ${devnum} -eq 0; then
echo "Booting from SD"
setenv linux_mmcdev 0
else
echo "Booting from eMMC"
setenv linux_mmcdev 2
fi

# If we have at least 2 partitions, then the 1st one is /boot, and / is #2
if part size mmc ${devnum} 2 none; then
setenv rootpart 2
else
setenv rootpart 1
setenv bootdir "/boot"
fi

setenv bootargs loglevel=4 console=${console} console=tty0 root=/dev/mmcblk${linux_mmcdev}p${rootpart} rw rootwait quiet bootsplash.bootfile=bootsplash-themes/danctnix/bootsplash

echo "Loading kernel..."
load mmc ${devnum}:1 ${ramdisk_addr_r} ${bootdir}/Image.gz

echo "Uncompressing kernel..."
unzip ${ramdisk_addr_r} ${kernel_addr_r}

echo "Loading initramfs..."
load mmc ${devnum}:1 ${ramdisk_addr_r} ${bootdir}/initramfs-linux.img
setenv ramdisk_size ${filesize}

echo "Loading dtb..."
load mmc ${devnum}:1 ${fdt_addr_r} ${bootdir}/dtbs/${fdtfile}

echo Resizing FDT
fdt addr ${fdt_addr_r}
fdt resize

echo Adding FTD RAM clock
fdt mknode / memory
fdt set /memory ram_freq ${ram_freq}
fdt list /memory

echo Loading user script
setenv user_scriptaddr 0x61dbc200
load mmc ${devnum}:1 ${user_scriptaddr} ${bootdir}/user.scr
if test $? -eq 0; then source ${user_scriptaddr}; else echo No user script found; fi

echo "Booting..."
gpio clear 98 # Disable vibrator
booti ${kernel_addr_r} ${ramdisk_addr_r}:0x${ramdisk_size} ${fdt_addr_r}
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
post_install() {
post_upgrade() {
echo "Generating U-Boot script"
mkimage -A arm -O linux -T script -C none -n "U-Boot boot script" -d /boot/boot.txt /boot/boot.scr

systemctl enable eg25-manager
}

post_upgrade() {
systemctl enable eg25-manager
post_install() {
post_upgrade
}
9 changes: 9 additions & 0 deletions PKGBUILDS/pine64/device-pine64-pinephone/mkscr
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash

if [[ ! -x /usr/bin/mkimage ]]; then
echo "mkimage not found. Please install uboot-tools:"
echo " pacman -S uboot-tools"
exit 1
fi

mkimage -A arm -O linux -T script -C none -n "U-Boot boot script" -d boot.txt boot.scr

0 comments on commit 9f46902

Please sign in to comment.