pinephone-boot

Bootloader and kernel build for the PinePhone devkit
git clone git://parazyd.org/pinephone-boot.git | https://git.parazyd.org/pinephone-boot
Log | Files | Refs

commit 5907c7592383b93a5a8ec55f0d9bd9c75093ead8
Author: parazyd <parazyd@dyne.org>
Date:   Fri, 19 Apr 2019 23:11:38 +0200

Import initial Makefile.

Diffstat:
AMakefile | 84+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aboot.txt | 10++++++++++
2 files changed, 94 insertions(+), 0 deletions(-)

diff --git a/Makefile b/Makefile @@ -0,0 +1,84 @@ +.POSIX: + +# Dependencies: +# unzip flex bc bison kmod cpio libssl-dev device-tree-compiler python +# python-dev swig u-boot-tools + +compiler = aarch64-linux-gnu- +clonedepth = --depth 1 + +atfgit = https://github.com/ARM-software/arm-trusted-firmware.git +ubootgit = https://gitlab.com/pine64-org/u-boot.git +linuxgit = https://gitlab.com/pine64-org/linux.git + +BIN = \ + bl31.bin \ + u-boot-sunxi-with-spl-sopine.bin \ + Image.gz \ + sun50i-a64-sopine-baseboard.dtb \ + boot.scr + +DIR = \ + arm-trusted-firmware \ + u-boot \ + pinephone-linux \ + lib/modules + +all: $(BIN) $(DIR) + +arm-trusted-firmware: + git clone $(clonedepth) $(atfgit) $@ + +bl31.bin: arm-trusted-firmware + $(MAKE) -C arm-trusted-firmware distclean + $(MAKE) -C arm-trusted-firmware CROSS_COMPILE=$(compiler) \ + PLAT=sun50i_a64 DEBUG=1 bl31 + cp arm-trusted-firmware/build/sun50i_a64/debug/$@ $@ + +boot.scr: + mkimage -C none -A arm -T script -d boot.txt $@ + +u-boot: + git clone $(clonedepth) $(ubootgit) $@ + +u-boot-sunxi-with-spl-sopine.bin: bl31.bin u-boot + $(MAKE) -C u-boot distclean + $(MAKE) -C u-boot sopine_baseboard_defconfig + cp -f bl31.bin u-boot/ + echo 'CONFIG_IDENT_STRING=" Maemo Leste"' >> u-boot/.config + $(MAKE) -C u-boot ARCH=arm CROSS_COMPILE=$(compiler) + cat u-boot/spl/sunxi-spl.bin u-boot/u-boot.itb > $@ + +pinephone-linux: + git clone -b pinephone $(clonedepth) $(linuxgit) $@ + +Image.gz: pinephone-linux + cp pinephone-linux/pinephone-config pinephone-linux/.config + $(MAKE) -C pinephone-linux ARCH=arm64 CROSS_COMPILE=$(compiler) \ + oldconfig + $(MAKE) -C pinephone-linux ARCH=arm64 CROSS_COMPILE=$(compiler) \ + Image + cp pinephone-linux/arch/arm64/boot/Image Image + gzip Image + +sun50i-a64-sopine-baseboard.dtb: Image.gz + $(MAKE) -C pinephone-linux ARCH=arm64 CROSS_COMPILE=$(compiler) \ + allwinner/$@ + cp pinephone-linux/arch/arm64/boot/dtbs/allwinner/$@ $@ + +lib/modules: Image.gz + $(MAKE) -C pinephone-linux ARCH=arm64 CROSS_COMPILE=$(compiler) \ + modules + $(MAKE) -C pinephone-linux ARCH=arm64 CROSS_COMPILE=$(compiler) \ + INSTALL_MOD_PATH="$(PWD)" modules_install + +clean: + rm -rf $(BIN) lib + +distclean: clean + $(MAKE) -C arm-trusted-firmware distclean + $(MAKE) -C u-boot distclean + $(MAKE) -C pinephone-linux distclean + +mrproper: clean + rm -rf $(DIR) diff --git a/boot.txt b/boot.txt @@ -0,0 +1,10 @@ +part uuid ${devtype} ${devnum}:${distro_bootpart} uuid +setenv bootargs console=${console} console=tty0 root=PARTUUID=${uuid} rw rootwait +setenv kernel_addr_z 0x44080000 + +if load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_z} Image.gz; then + unzip ${kernel_addr_z} ${kernel_addr_r} + if load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} dtbs/${fdtfile}; then + booti ${kernel_addr_r} - ${fdt_addr_r}; + fi; +fi