From bf0bdb2b439ad874e94e9a91ca27d65b56de1fde Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 11 Feb 2017 20:15:45 +0100 Subject: [PATCH 001/168] Build a new bsp-based xenial image with a help of boot tools --- .gitignore | 2 ++ Makefile | 62 +++++++++++++++++++++++++++++++++ build-pine64-image.sh | 11 ++++-- kernel/make_kernel_tarball.sh | 9 ++++- simpleimage/make_rootfs.sh | 9 +++++ simpleimage/make_simpleimage.sh | 13 ++++--- 6 files changed, 97 insertions(+), 9 deletions(-) create mode 100644 Makefile diff --git a/.gitignore b/.gitignore index 28ca64fa..d27bb3ec 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ /snappy/gadget/uboot.env /snappy/gadget/uboot.conf /snappy/gadget/boot-assets +/boot-tools/ + diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..3eba0750 --- /dev/null +++ b/Makefile @@ -0,0 +1,62 @@ +LOCALVERSION ?= +export VERSION ?= dev +export DATE ?= $(VERSION) + +all: + +linux/.git: + git clone --depth 1 --branch new-bsp --single-branch \ + https://github.com/ayufan-pine64/linux-pine64.git linux + +linux/.config: linux/.git + make -C linux ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- LOCALVERSION=$(LOCALVERSION) clean CONFIG_ARCH_SUN50IW1P1=y + make -C linux ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- sun50iw1p1smp_linux_defconfig + touch linux/.config + +linux/arch/arm64/boot/Image: linux/.config + make -C linux ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 LOCALVERSION=$(LOCALVERSION) modules + make -C linux M=modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali \ + ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- \ + CONFIG_MALI400=m CONFIG_MALI450=y CONFIG_MALI400_PROFILING=y \ + CONFIG_MALI_DMA_BUF_MAP_ON_ATTACH=y CONFIG_MALI_DT=y \ + EXTRA_DEFINES="-DCONFIG_MALI400=1 -DCONFIG_MALI450=1 -DCONFIG_MALI400_PROFILING=1 -DCONFIG_MALI_DMA_BUF_MAP_ON_ATTACH -DCONFIG_MALI_DT" + make -C linux ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 LOCALVERSION=$(LOCALVERSION) Image + +busybox/.git: + git clone --depth 1 --branch 1_24_stable --single-branch git://git.busybox.net/busybox busybox + +busybox: busybox/.git + cp -u kernel/pine64_config_busybox busybox/.config + make -C busybox ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 oldconfig + +busybox/busybox: busybox + make -C busybox ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 + +kernel/initrd.gz: busybox/busybox + cd kernel/ && ./make_initrd.sh + +boot-tools/.git: + git clone --single-branch --depth 1 https://github.com/ayufan-pine64/boot-tools + +boot-tools/.make: boot-tools/.git + make -C boot-tools + touch boot-tools/.make + +linux-pine64-$(VERSION).tar.xz: linux/arch/arm64/boot/Image boot-tools/.make kernel/initrd.gz + cd kernel && bash ./make_kernel_tarball.sh $(shell dirname $(shell readlink -f "$@")) + +kernel-tarball: linux-pine64-$(VERSION).tar.xz + +simple-image-pinebook.img: linux-pine64-$(VERSION).tar.xz boot-tools/.make + cd simpleimage && \ + export boot0=../boot-tools/build/boot0_pinebook.bin && \ + export uboot=../boot-tools/build/u-boot-sun50iw1p1-secure-with-pinebook-dtb.bin && \ + bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(VERSION).tar.xz) + +simple-image-pinebook.img.xz: simple-image-pinebook.img + xz -c simple-image-pinebook.img > simple-image-pinebook.img.xz + +xenial-pinebook-bspkernel-$(DATE)-1.img: simple-image-pinebook.img.xz kernel-tarball boot-tools/.make + sudo bash ./build-pine64-image.sh $(shell readlink -f simple-image-pinebook.img.xz) $(shell readlink -f linux-pine64-$(VERSION).tar.xz) xenial 1 + +xenial-pinebook: xenial-pinebook-bspkernel-$(DATE)-1.img diff --git a/build-pine64-image.sh b/build-pine64-image.sh index 2287b178..eac9cb52 100755 --- a/build-pine64-image.sh +++ b/build-pine64-image.sh @@ -12,6 +12,9 @@ SIMPLEIMAGE="$1" KERNELTAR="$2" DISTRO="$3" COUNT="$4" +if [[ -z "$MODEL" ]]; then + MODEL="pine64" +fi if [ -z "$SIMPLEIMAGE" -o -z "$KERNELTAR" ]; then echo "Usage: $0 [distro] [count]" @@ -35,11 +38,13 @@ SIMPLEIMAGE=$(readlink -f "$SIMPLEIMAGE") KERNELTAR=$(readlink -f "$KERNELTAR") SIZE=3650 # MiB -DATE=$(date +%Y%m%H) +if [[ -z "$DATE" ]]; then + DATE=$(date +%Y%m%H) +fi PWD=$(readlink -f .) -TEMP=$(mktemp -p $PWD -d -t "pine64-build-XXXXXXXXXX") -IMAGE="$DISTRO-pine64-bspkernel-$DATE-$COUNT.img" +TEMP=$(mktemp -p $PWD -d -t "$MODEL-build-XXXXXXXXXX") +IMAGE="$DISTRO-$MODEL-bspkernel-$DATE-$COUNT.img" echo "> Building in $TEMP ..." cleanup() { diff --git a/kernel/make_kernel_tarball.sh b/kernel/make_kernel_tarball.sh index 4b1ddb96..633863c7 100755 --- a/kernel/make_kernel_tarball.sh +++ b/kernel/make_kernel_tarball.sh @@ -10,6 +10,7 @@ if [ -z "$DEST" ]; then fi LINUX="../linux" +BOOT_TOOLS="../boot-tools" if [ -n "$2" ]; then LINUX="$2" @@ -33,6 +34,10 @@ trap cleanup EXIT ./install_kernel_modules.sh "$TEMP" "$LINUX" ./install_kernel_headers.sh "$TEMP" "$LINUX" +echo "Copying boot of boot-tools tools..." +pwd +cp -rv "$BOOT_TOOLS/boot/" "$TEMP/" + # Use uEnv.txt.in so we do not overwrite customizations on next update. mv "$TEMP/boot/uEnv.txt" "$TEMP/boot/uEnv.txt.in" @@ -42,7 +47,9 @@ else EXTRAVERSION=$(date +%s) fi -VERSION="$(ls -1tr $TEMP/lib/modules/|tail -n1)-$EXTRAVERSION" +if [ -z "$VERSION" ]; then + VERSION="$(ls -1tr $TEMP/lib/modules/|tail -n1)-$EXTRAVERSION" +fi echo "Building $VERSION ..." tar -C "$TEMP" -cJ --owner=0 --group=0 --xform='s,./,,' -f "$DEST/linux-pine64-$VERSION.tar.xz" . diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index c6d97267..a9c46a18 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -268,6 +268,7 @@ EOF add_wifi_module_autoload() { cat > "$DEST/etc/modules-load.d/pine64-wifi.conf" < "$DEST/etc/modprobe.d/blacklist-pine64.conf" < "$DEST/etc/modules-load.d/pine64-disp.conf" < "$DEST/second-phase" < Date: Sat, 11 Feb 2017 23:50:14 +0100 Subject: [PATCH 002/168] Create xenial bsp image --- Makefile | 20 +++++++++---------- blobs/asound.state | 16 +++++++-------- build-pine64-image.sh | 11 +++++----- kernel/install_kernel.sh | 2 +- simpleimage/make_rootfs.sh | 4 +++- simpleimage/make_simpleimage.sh | 18 ++++++++--------- .../platform-scripts/install_mate_desktop.sh | 2 +- 7 files changed, 37 insertions(+), 36 deletions(-) diff --git a/Makefile b/Makefile index 3eba0750..34c10b13 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ LOCALVERSION ?= export VERSION ?= dev export DATE ?= $(VERSION) -all: +all: xenial-pinebook linux/.git: git clone --depth 1 --branch new-bsp --single-branch \ @@ -38,25 +38,23 @@ kernel/initrd.gz: busybox/busybox boot-tools/.git: git clone --single-branch --depth 1 https://github.com/ayufan-pine64/boot-tools -boot-tools/.make: boot-tools/.git - make -C boot-tools - touch boot-tools/.make +boot-tools: boot-tools/.git -linux-pine64-$(VERSION).tar.xz: linux/arch/arm64/boot/Image boot-tools/.make kernel/initrd.gz +linux-pine64-$(VERSION).tar.xz: linux/arch/arm64/boot/Image boot-tools kernel/initrd.gz cd kernel && bash ./make_kernel_tarball.sh $(shell dirname $(shell readlink -f "$@")) kernel-tarball: linux-pine64-$(VERSION).tar.xz -simple-image-pinebook.img: linux-pine64-$(VERSION).tar.xz boot-tools/.make +simple-image-pinebook.img: linux-pine64-$(VERSION).tar.xz boot-tools cd simpleimage && \ export boot0=../boot-tools/build/boot0_pinebook.bin && \ export uboot=../boot-tools/build/u-boot-sun50iw1p1-secure-with-pinebook-dtb.bin && \ bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(VERSION).tar.xz) -simple-image-pinebook.img.xz: simple-image-pinebook.img - xz -c simple-image-pinebook.img > simple-image-pinebook.img.xz +%.img.xz: %.img + xz -3 $< -xenial-pinebook-bspkernel-$(DATE)-1.img: simple-image-pinebook.img.xz kernel-tarball boot-tools/.make - sudo bash ./build-pine64-image.sh $(shell readlink -f simple-image-pinebook.img.xz) $(shell readlink -f linux-pine64-$(VERSION).tar.xz) xenial 1 +xenial-pinebook-bspkernel-$(DATE)-1.img: simple-image-pinebook.img.xz linux-pine64-$(VERSION).tar.xz boot-tools + sudo MODEL=pinebook DATE=$(DATE) bash ./build-pine64-image.sh $(shell readlink -f simple-image-pinebook.img.xz) $(shell readlink -f linux-pine64-$(VERSION).tar.xz) xenial 1 -xenial-pinebook: xenial-pinebook-bspkernel-$(DATE)-1.img +xenial-pinebook: xenial-pinebook-bspkernel-$(DATE)-1.img.xz diff --git a/blobs/asound.state b/blobs/asound.state index d58f7a30..8977f97c 100644 --- a/blobs/asound.state +++ b/blobs/asound.state @@ -222,7 +222,7 @@ state.audiocodec { control.15 { iface MIXER name 'speaker volume' - value 0 + value 24 comment { access 'read write' type INTEGER @@ -230,7 +230,7 @@ state.audiocodec { range '0 - 31' dbmin -4800 dbmax -150 - dbvalue.0 -4800 + dbvalue.0 -1200 } } control.16 { @@ -804,7 +804,7 @@ state.audiocodec { control.66 { iface MIXER name 'Right Output Mixer DACR Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -874,7 +874,7 @@ state.audiocodec { control.73 { iface MIXER name 'Left Output Mixer DACL Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -944,7 +944,7 @@ state.audiocodec { control.80 { iface MIXER name 'DACR Mixer AIF2DACR Switch' - value true + value false comment { access 'read write' type BOOLEAN @@ -954,7 +954,7 @@ state.audiocodec { control.81 { iface MIXER name 'DACR Mixer AIF1DA1R Switch' - value true + value false comment { access 'read write' type BOOLEAN @@ -1004,7 +1004,7 @@ state.audiocodec { control.86 { iface MIXER name 'DACL Mixer AIF1DA0L Switch' - value true + value false comment { access 'read write' type BOOLEAN @@ -1286,7 +1286,7 @@ state.audiocodec { control.111 { iface MIXER name 'External Speaker Switch' - value false + value true comment { access 'read write' type BOOLEAN diff --git a/build-pine64-image.sh b/build-pine64-image.sh index eac9cb52..df002b0b 100755 --- a/build-pine64-image.sh +++ b/build-pine64-image.sh @@ -51,22 +51,23 @@ cleanup() { local arg=$? echo "> Cleaning up ..." umount "$TEMP/boot" || true + umount $TEMP/rootfs/* || true umount "$TEMP/rootfs" || true kpartx -sd "$TEMP/$IMAGE" || true + kpartx -sd "$IMAGE" || true rmdir "$TEMP/boot" rmdir "$TEMP/rootfs" - rm "$TEMP/*" || true - rmdir "$TEMP" + rm -r "$TEMP" exit $arg } trap cleanup EXIT -set -x +set -ex # Unpack unxz -k --stdout "$SIMPLEIMAGE" > "$TEMP/$IMAGE" # Enlarge -dd if=/dev/zero bs=1M count=$SIZE >> "$TEMP/$IMAGE" +dd if=/dev/zero bs=1M seek=$(($SIZE-1)) count=1 of="$TEMP/$IMAGE" # Resize echo ", +" | sfdisk -N 2 "$TEMP/$IMAGE" @@ -86,6 +87,6 @@ mount /dev/mapper/${DEVICENAME}p1 "$TEMP/boot" mount /dev/mapper/${DEVICENAME}p2 "$TEMP/rootfs" sleep 2 -(cd simpleimage && ./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$DISTRO" "$TEMP/boot") +(cd simpleimage && sh ./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$DISTRO" "$TEMP/boot") mv -v "$TEMP/$IMAGE" . diff --git a/kernel/install_kernel.sh b/kernel/install_kernel.sh index c466bde8..da4dec0c 100755 --- a/kernel/install_kernel.sh +++ b/kernel/install_kernel.sh @@ -24,7 +24,7 @@ INITRD="./initrd.gz" # Targets file names as loaded by U-Boot. SUBFOLDER="pine64" -KERNEL="$SUBFOLDER/Image" +KERNEL="kernel" INITRD_IMG="initrd.img" if [ "$DEST" = "-" ]; then diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index a9c46a18..90da91b4 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -116,6 +116,7 @@ deboostrap_rootfs() { TARBALL="$BUILD/$(basename $ROOTFS)" +mkdir -p "$BUILD" if [ ! -e "$TARBALL" ]; then if [ "$METHOD" = "download" ]; then echo "Downloading $DISTRO rootfs tarball ..." @@ -371,7 +372,7 @@ auto eth0 iface eth0 inet dhcp EOF cat > "$DEST/etc/hostname" < "$DEST/etc/hosts" < Date: Sun, 12 Feb 2017 12:46:07 +0100 Subject: [PATCH 003/168] Allow to specify branch ``` make BRANCH=master make BRANCH=new-bsp ``` --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 34c10b13..b0f47b43 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,12 @@ LOCALVERSION ?= export VERSION ?= dev export DATE ?= $(VERSION) +BRANCH ?= master all: xenial-pinebook linux/.git: - git clone --depth 1 --branch new-bsp --single-branch \ + git clone --depth=1 --branch=$(BRANCH) --single-branch \ https://github.com/ayufan-pine64/linux-pine64.git linux linux/.config: linux/.git @@ -36,7 +37,7 @@ kernel/initrd.gz: busybox/busybox cd kernel/ && ./make_initrd.sh boot-tools/.git: - git clone --single-branch --depth 1 https://github.com/ayufan-pine64/boot-tools + git clone --single-branch --depth=1 --branch=$(BRANCH) https://github.com/ayufan-pine64/boot-tools boot-tools: boot-tools/.git From 631ded066b6a592c36b4fa4b74b2a3bb7ac07c50 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Fri, 28 Apr 2017 22:06:21 +0200 Subject: [PATCH 004/168] Load hall module, install mate and nano --- simpleimage/make_rootfs.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 90da91b4..0db5c8f6 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -290,6 +290,12 @@ hdmi EOF } +add_hall_module_autoload() { + cat > "$DEST/etc/modules-load.d/pinebook-hall.conf" < "$DEST/second-phase" < Date: Fri, 28 Apr 2017 22:08:57 +0200 Subject: [PATCH 005/168] Use my-hacks-1.2 --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index b0f47b43..e8e853b8 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ LOCALVERSION ?= export VERSION ?= dev export DATE ?= $(VERSION) -BRANCH ?= master +BRANCH ?= my-hacks-1.2 all: xenial-pinebook From 711e8b00b4382a83a8c3dd3af1f2cac1f022dcb2 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 13:48:24 +0200 Subject: [PATCH 006/168] Update scripts --- Makefile | 7 +- blobs/{asound.state => asound.state.pine64} | 0 blobs/asound.state.pinebook | 1356 +++++++++++++++++++ build-pine64-image.sh | 1 + simpleimage/make_rootfs.sh | 10 +- 5 files changed, 1370 insertions(+), 4 deletions(-) rename blobs/{asound.state => asound.state.pine64} (100%) create mode 100644 blobs/asound.state.pinebook diff --git a/Makefile b/Makefile index e8e853b8..daa758f2 100644 --- a/Makefile +++ b/Makefile @@ -56,6 +56,11 @@ simple-image-pinebook.img: linux-pine64-$(VERSION).tar.xz boot-tools xz -3 $< xenial-pinebook-bspkernel-$(DATE)-1.img: simple-image-pinebook.img.xz linux-pine64-$(VERSION).tar.xz boot-tools - sudo MODEL=pinebook DATE=$(DATE) bash ./build-pine64-image.sh $(shell readlink -f simple-image-pinebook.img.xz) $(shell readlink -f linux-pine64-$(VERSION).tar.xz) xenial 1 + sudo MODEL=pinebook DATE=$(DATE) bash \ + ./build-pine64-image.sh \ + $(shell readlink -f simple-image-pinebook.img.xz) \ + $(shell readlink -f linux-pine64-$(VERSION).tar.xz) \ + xenial \ + 1 xenial-pinebook: xenial-pinebook-bspkernel-$(DATE)-1.img.xz diff --git a/blobs/asound.state b/blobs/asound.state.pine64 similarity index 100% rename from blobs/asound.state rename to blobs/asound.state.pine64 diff --git a/blobs/asound.state.pinebook b/blobs/asound.state.pinebook new file mode 100644 index 00000000..39e859ea --- /dev/null +++ b/blobs/asound.state.pinebook @@ -0,0 +1,1356 @@ +state.audiocodec { + control.1 { + iface MIXER + name 'AIF1 ADC timeslot 0 volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 -11925 + dbvalue.1 -11925 + } + } + control.2 { + iface MIXER + name 'AIF1 ADC timeslot 1 volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 -11925 + dbvalue.1 -11925 + } + } + control.3 { + iface MIXER + name 'AIF1 DAC timeslot 0 volume' + value.0 165 + value.1 165 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 450 + dbvalue.1 450 + } + } + control.4 { + iface MIXER + name 'AIF1 DAC timeslot 1 volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 -11925 + dbvalue.1 -11925 + } + } + control.5 { + iface MIXER + name 'AIF1 ADC timeslot 0 mixer gain' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 15' + dbmin -600 + dbmax 8400 + dbvalue.0 -600 + dbvalue.1 -600 + } + } + control.6 { + iface MIXER + name 'AIF1 ADC timeslot 1 mixer gain' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 3' + dbmin -600 + dbmax 1200 + dbvalue.0 -600 + dbvalue.1 -600 + } + } + control.7 { + iface MIXER + name 'AIF2 ADC volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 -11925 + dbvalue.1 -11925 + } + } + control.8 { + iface MIXER + name 'AIF2 DAC volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 -11925 + dbvalue.1 -11925 + } + } + control.9 { + iface MIXER + name 'AIF2 ADC mixer gain' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 15' + dbmin -600 + dbmax 8400 + dbvalue.0 -600 + dbvalue.1 -600 + } + } + control.10 { + iface MIXER + name 'ADC volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 -11925 + dbvalue.1 -11925 + } + } + control.11 { + iface MIXER + name 'DAC volume' + value.0 160 + value.1 160 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 75 + dbvalue.1 75 + } + } + control.12 { + iface MIXER + name 'DAC mixer gain' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 15' + dbmin -600 + dbmax 8400 + dbvalue.0 -600 + dbvalue.1 -600 + } + } + control.13 { + iface MIXER + name 'digital volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 63' + dbmin -7308 + dbmax 0 + dbvalue.0 -7308 + } + } + control.14 { + iface MIXER + name 'earpiece volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -4350 + dbmax 300 + dbvalue.0 -4350 + } + } + control.15 { + iface MIXER + name 'speaker volume' + value 23 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -4800 + dbmax -150 + dbvalue.0 -1350 + } + } + control.16 { + iface MIXER + name 'headphone volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 63' + dbmin -6300 + dbmax 0 + dbvalue.0 -6300 + } + } + control.17 { + iface MIXER + name 'MIC1_G boost stage output mixer control' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -450 + dbmax 600 + dbvalue.0 -450 + } + } + control.18 { + iface MIXER + name 'MIC1 boost AMP gain control' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin 0 + dbmax 1400 + dbvalue.0 0 + } + } + control.19 { + iface MIXER + name 'MIC2 BST stage to L_R outp mixer gain' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -450 + dbmax 600 + dbvalue.0 -450 + } + } + control.20 { + iface MIXER + name 'MIC2 boost AMP gain control' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin 0 + dbmax 1400 + dbvalue.0 0 + } + } + control.21 { + iface MIXER + name 'LINEINL/R to L_R output mixer gain' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -450 + dbmax 600 + dbvalue.0 -450 + } + } + control.22 { + iface MIXER + name 'ADC input gain control' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -450 + dbmax 600 + dbvalue.0 -450 + } + } + control.23 { + iface MIXER + name 'Phoneout gain control' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -450 + dbmax 600 + dbvalue.0 -450 + } + } + control.24 { + iface MIXER + name 'SRC FUCTION' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.25 { + iface MIXER + name 'I2S HUB FUNC' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'Phoneout Mixer MIC1 boost Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.27 { + iface MIXER + name 'Phoneout Mixer MIC2 boost Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.28 { + iface MIXER + name 'Phoneout Mixer Rout_Mixer_Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.29 { + iface MIXER + name 'Phoneout Mixer Lout_Mixer_Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.30 { + iface MIXER + name 'ADCR Mux' + value DMIC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 DMIC + } + } + control.31 { + iface MIXER + name 'ADCL Mux' + value DMIC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 DMIC + } + } + control.32 { + iface MIXER + name 'MIC2 SRC' + value MIC2 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 MIC3 + item.1 MIC2 + } + } + control.33 { + iface MIXER + name 'RADC input Mixer MIC1 boost Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.34 { + iface MIXER + name 'RADC input Mixer MIC2 boost Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.35 { + iface MIXER + name 'RADC input Mixer LINEINR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.36 { + iface MIXER + name 'RADC input Mixer r_output mixer Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.37 { + iface MIXER + name 'RADC input Mixer l_output mixer Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.38 { + iface MIXER + name 'RADC input Mixer PHONINN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.39 { + iface MIXER + name 'RADC input Mixer PHONINN-PHONINP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.40 { + iface MIXER + name 'LADC input Mixer MIC1 boost Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.41 { + iface MIXER + name 'LADC input Mixer MIC2 boost Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.42 { + iface MIXER + name 'LADC input Mixer LINEINL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.43 { + iface MIXER + name 'LADC input Mixer l_output mixer Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.44 { + iface MIXER + name 'LADC input Mixer r_output mixer Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.45 { + iface MIXER + name 'LADC input Mixer PHONINP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.46 { + iface MIXER + name 'LADC input Mixer PHONINP-PHONINN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name 'AIF3OUT Mux' + value 'AIF2 ADC left channel' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'AIF2 ADC left channel' + item.1 'AIF2 ADC right channel' + } + } + control.48 { + iface MIXER + name 'AIF2 ADR Mixer AIF1 DA0R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'AIF2 ADR Mixer AIF1 DA1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.50 { + iface MIXER + name 'AIF2 ADR Mixer AIF2 DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'AIF2 ADR Mixer ADCR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.52 { + iface MIXER + name 'AIF2 ADL Mixer AIF1 DA0L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.53 { + iface MIXER + name 'AIF2 ADL Mixer AIF1 DA1L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.54 { + iface MIXER + name 'AIF2 ADL Mixer AIF2 DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.55 { + iface MIXER + name 'AIF2 ADL Mixer ADCL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.56 { + iface MIXER + name 'AIF2INR Mux' + value AIF2_DACR + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2_DACR + item.1 AIF2_DACL + item.2 SUM_AIF2DACL_AIF2DACR + item.3 AVE_AIF2DACL_AIF2DACR + } + } + control.57 { + iface MIXER + name 'AIF2INL Mux' + value AIF2_DACL + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2_DACL + item.1 AIF2_DACR + item.2 SUM_AIF2DACL_AIF2DACR + item.3 AVE_AIF2DACL_AIF2DACR + } + } + control.58 { + iface MIXER + name 'AIF2OUTR Mux' + value AIF2_ADCR + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2_ADCR + item.1 AIF2_ADCL + item.2 SUM_AIF2_ADCL_AIF2_ADCR + item.3 AVE_AIF2_ADCL_AIF2_ADCR + } + } + control.59 { + iface MIXER + name 'AIF2OUTL Mux' + value AIF2_ADCL + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2_ADCL + item.1 AIF2_ADCR + item.2 SUM_AIF2_ADCL_AIF2_ADCR + item.3 AVE_AIF2_ADCL_AIF2_ADCR + } + } + control.60 { + iface MIXER + name 'EAR Mux' + value DACR + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DACR + item.1 DACL + item.2 'Right Analog Mixer' + item.3 'Left Analog Mixer' + } + } + control.61 { + iface MIXER + name 'SPK_L Mux' + value 'MIXEL Switch' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'MIXEL Switch' + item.1 'MIXL MIXR Switch' + } + } + control.62 { + iface MIXER + name 'SPK_R Mux' + value 'MIXER Switch' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'MIXER Switch' + item.1 'MIXR MIXL Switch' + } + } + control.63 { + iface MIXER + name 'HP_L Mux' + value 'DACL HPL Switch' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'DACL HPL Switch' + item.1 'Left Analog Mixer HPL Switch' + } + } + control.64 { + iface MIXER + name 'HP_R Mux' + value 'DACR HPR Switch' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'DACR HPR Switch' + item.1 'Right Analog Mixer HPR Switch' + } + } + control.65 { + iface MIXER + name 'Right Output Mixer DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.66 { + iface MIXER + name 'Right Output Mixer DACR Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.67 { + iface MIXER + name 'Right Output Mixer LINEINR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.68 { + iface MIXER + name 'Right Output Mixer MIC2Booststage Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.69 { + iface MIXER + name 'Right Output Mixer MIC1Booststage Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.70 { + iface MIXER + name 'Right Output Mixer PHONEINN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.71 { + iface MIXER + name 'Right Output Mixer PHONEINN-PHONEINP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.72 { + iface MIXER + name 'Left Output Mixer DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.73 { + iface MIXER + name 'Left Output Mixer DACL Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.74 { + iface MIXER + name 'Left Output Mixer LINEINL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.75 { + iface MIXER + name 'Left Output Mixer MIC2Booststage Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.76 { + iface MIXER + name 'Left Output Mixer MIC1Booststage Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.77 { + iface MIXER + name 'Left Output Mixer PHONEINP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.78 { + iface MIXER + name 'Left Output Mixer PHONEINP-PHONEINN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.79 { + iface MIXER + name 'DACR Mixer ADCR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.80 { + iface MIXER + name 'DACR Mixer AIF2DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.81 { + iface MIXER + name 'DACR Mixer AIF1DA1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.82 { + iface MIXER + name 'DACR Mixer AIF1DA0R Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.83 { + iface MIXER + name 'DACL Mixer ADCL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.84 { + iface MIXER + name 'DACL Mixer AIF2DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.85 { + iface MIXER + name 'DACL Mixer AIF1DA1L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.86 { + iface MIXER + name 'DACL Mixer AIF1DA0L Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.87 { + iface MIXER + name 'AIF1 AD1R Mixer AIF2 DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.88 { + iface MIXER + name 'AIF1 AD1R Mixer ADCR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.89 { + iface MIXER + name 'AIF1 AD1L Mixer AIF2 DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.90 { + iface MIXER + name 'AIF1 AD1L Mixer ADCL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.91 { + iface MIXER + name 'AIF1 AD0R Mixer AIF1 DA0R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.92 { + iface MIXER + name 'AIF1 AD0R Mixer AIF2 DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.93 { + iface MIXER + name 'AIF1 AD0R Mixer ADCR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.94 { + iface MIXER + name 'AIF1 AD0R Mixer AIF2 DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.95 { + iface MIXER + name 'AIF1 AD0L Mixer AIF1 DA0L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.96 { + iface MIXER + name 'AIF1 AD0L Mixer AIF2 DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.97 { + iface MIXER + name 'AIF1 AD0L Mixer ADCL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.98 { + iface MIXER + name 'AIF1 AD0L Mixer AIF2 DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.99 { + iface MIXER + name 'AIF1IN1R Mux' + value AIF1_DA1R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_DA1R + item.1 AIF1_DA1L + item.2 SUM_AIF1DA1L_AIF1DA1R + item.3 AVE_AIF1DA1L_AIF1DA1R + } + } + control.100 { + iface MIXER + name 'AIF1IN1L Mux' + value AIF1_DA1L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_DA1L + item.1 AIF1_DA1R + item.2 SUM_AIF1DA1L_AIF1DA1R + item.3 AVE_AIF1DA1L_AIF1DA1R + } + } + control.101 { + iface MIXER + name 'AIF1IN0R Mux' + value AIF1_DA0R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_DA0R + item.1 AIF1_DA0L + item.2 SUM_AIF1DA0L_AIF1DA0R + item.3 AVE_AIF1DA0L_AIF1DA0R + } + } + control.102 { + iface MIXER + name 'AIF1IN0L Mux' + value AIF1_DA0L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_DA0L + item.1 AIF1_DA0R + item.2 SUM_AIF1DA0L_AIF1DA0R + item.3 AVE_AIF1DA0L_AIF1DA0R + } + } + control.103 { + iface MIXER + name 'AIF1OUT1R Mux' + value AIF1_AD1R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_AD1R + item.1 AIF1_AD1L + item.2 SUM_AIF1ADC1L_AIF1ADC1R + item.3 AVE_AIF1ADC1L_AIF1ADC1R + } + } + control.104 { + iface MIXER + name 'AIF1OUT1L Mux' + value AIF1_AD1L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_AD1L + item.1 AIF1_AD1R + item.2 SUM_AIF1ADC1L_AIF1ADC1R + item.3 AVE_AIF1ADC1L_AIF1ADC1R + } + } + control.105 { + iface MIXER + name 'AIF1OUT0R Mux' + value AIF1_AD0R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_AD0R + item.1 AIF1_AD0L + item.2 SUM_AIF1AD0L_AIF1AD0R + item.3 AVE_AIF1AD0L_AIF1AD0R + } + } + control.106 { + iface MIXER + name 'AIF1OUT0L Mux' + value AIF1_AD0L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_AD0L + item.1 AIF1_AD0R + item.2 SUM_AIF1AD0L_AIF1AD0R + item.3 AVE_AIF1AD0L_AIF1AD0R + } + } + control.107 { + iface MIXER + name 'AIF2INR Mux VIR switch aif2inr aif3' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.108 { + iface MIXER + name 'AIF2INL Mux VIR switch aif2inl aif3' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.109 { + iface MIXER + name 'AIF2INR Mux switch aif2inr aif2' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.110 { + iface MIXER + name 'AIF2INL Mux switch aif2inl aif2' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.111 { + iface MIXER + name 'External Speaker Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.112 { + iface MIXER + name 'Headphone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.113 { + iface MIXER + name 'Earpiece Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } +} +state.sndhdmi { + control.1 { + iface MIXER + name 'hdmi audio format Function' + value pcm + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 null + item.1 pcm + item.2 AC3 + item.3 MPEG1 + item.4 MP3 + item.5 MPEG2 + item.6 AAC + item.7 DTS + item.8 ATRAC + item.9 ONE_BIT_AUDIO + item.10 DOLBY_DIGITAL_PLUS + item.11 DTS_HD + item.12 MAT + item.13 WMAPRO + } + } + control.2 { + iface MIXER + name 'sunxi daudio audio hub mode' + value hub_disable + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 null + item.1 hub_disable + item.2 hub_enable + } + } +} + diff --git a/build-pine64-image.sh b/build-pine64-image.sh index df002b0b..315ec58f 100755 --- a/build-pine64-image.sh +++ b/build-pine64-image.sh @@ -15,6 +15,7 @@ COUNT="$4" if [[ -z "$MODEL" ]]; then MODEL="pine64" fi +export MODEL if [ -z "$SIMPLEIMAGE" -o -z "$KERNELTAR" ]; then echo "Usage: $0 [distro] [count]" diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 0db5c8f6..faa28e99 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -16,6 +16,10 @@ LINUX="$2" DISTRO="$3" BOOT="$4" +if [[ -z "$MODEL" ]]; then + MODEL="pine64" +fi + if [ -z "$DEST" -o -z "$LINUX" ]; then echo "Usage: $0 [distro] []" exit 1 @@ -298,7 +302,7 @@ EOF add_asound_state() { mkdir -p "$DEST/var/lib/alsa" - cp -vf ../blobs/asound.state "$DEST/var/lib/alsa/asound.state" + cp -vf ../blobs/asound.state.$MODEL "$DEST/var/lib/alsa/asound.state" } # Run stuff in new system. @@ -379,11 +383,11 @@ auto eth0 iface eth0 inet dhcp EOF cat > "$DEST/etc/hostname" < "$DEST/etc/hosts" < Date: Sat, 29 Apr 2017 14:28:46 +0200 Subject: [PATCH 007/168] Add CI scripts --- Dockerfile | 19 ++++++++++ Jenkinsfile | 83 +++++++++++++++++++++++++++++++++++++++++++ Makefile | 5 +-- build-pine64-image.sh | 4 ++- 4 files changed, 108 insertions(+), 3 deletions(-) create mode 100644 Dockerfile create mode 100644 Jenkinsfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..7787ea48 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM ubuntu:xenial + +RUN apt-get update -y +RUN apt-get install -y python git-core gnupg flex bison gperf build-essential \ + zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \ + lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \ + libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \ + htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \ + dosfstools gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ + gcc-arm-linux-gnueabi g++-arm-linux-gnueabi ccache \ + sudo + +RUN curl -L https://github.com/aktau/github-release/releases/download/v0.6.2/linux-amd64-github-release.tar.bz2 | tar -C /tmp -jx && \ + mv /tmp/bin/linux/amd64/github-release /usr/local/bin/ + +RUN which github-release + +ENV USER=root \ + HOME=/root diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 00000000..32c268dc --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,83 @@ +/** +properties([ + parameters([ + string(defaultValue: '1.0', description: 'Current version number', name: 'VERSION'), + text(defaultValue: '', description: 'A list of changes', name: 'CHANGES'), + booleanParam(defaultValue: false, description: 'If build should be marked as pre-release', name: 'PRERELEASE'), + string(defaultValue: 'ayufan-pine64', description: 'GitHub username or organization', name: 'GITHUB_USER'), + string(defaultValue: 'build-pine64-image', description: 'GitHub repository', name: 'GITHUB_REPO'), + ]) +]) +*/ + +node('docker && linux-build') { + timestamps { + wrap([$class: 'AnsiColorBuildWrapper', colorMapName: 'xterm']) { + stage "Environment" + dir('build-environment') { + checkout scm + } + def environment = docker.build('build-environment:build-pine64-image', 'build-environment') + + environment.inside("--privileged") { + withEnv([ + "VERSION=$VERSION", + 'USE_CCACHE=true', + 'CCACHE_DIR=$WORKSPACE/ccache', + ]) { + stage 'Prepare' + sh '''#!/bin/bash + ccache -M 0 -F 0 + ''' + + stage 'Build' + sh '''#!/bin/bash + make VERSION=$BUILD_ID RELEASE=$BUILD_NUMBER + ''' + } + + withEnv([ + "VERSION=$VERSION", + "CHANGES=$CHANGES", + "PRERELEASE=$PRERELEASE", + "GITHUB_USER=$GITHUB_USER", + "GITHUB_REPO=$GITHUB_REPO" + ]) { + stage 'Release' + sh '''#!/bin/bash + set -xe + shopt -s nullglob + + github-release release \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" \ + --draft + + for file in *.xz; do + github-release upload \ + --tag "${VERSION}" \ + --name "$(basename "$file")" \ + --file "$file" & + done + + wait + + if [[ "$PRERELEASE" == "true" ]]; then + github-release edit \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" \ + --pre-release + else + github-release edit \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" + fi + ''' + } + } + } + } +} diff --git a/Makefile b/Makefile index daa758f2..a091e440 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ LOCALVERSION ?= export VERSION ?= dev export DATE ?= $(VERSION) +export RELEASE ?= 1 BRANCH ?= my-hacks-1.2 all: xenial-pinebook @@ -55,12 +56,12 @@ simple-image-pinebook.img: linux-pine64-$(VERSION).tar.xz boot-tools %.img.xz: %.img xz -3 $< -xenial-pinebook-bspkernel-$(DATE)-1.img: simple-image-pinebook.img.xz linux-pine64-$(VERSION).tar.xz boot-tools +xenial-pinebook-bspkernel-$(DATE)-$(RELEASE).img: simple-image-pinebook.img.xz linux-pine64-$(VERSION).tar.xz boot-tools sudo MODEL=pinebook DATE=$(DATE) bash \ ./build-pine64-image.sh \ $(shell readlink -f simple-image-pinebook.img.xz) \ $(shell readlink -f linux-pine64-$(VERSION).tar.xz) \ xenial \ - 1 + $(RELEASE) xenial-pinebook: xenial-pinebook-bspkernel-$(DATE)-1.img.xz diff --git a/build-pine64-image.sh b/build-pine64-image.sh index 315ec58f..dabf926f 100755 --- a/build-pine64-image.sh +++ b/build-pine64-image.sh @@ -38,7 +38,7 @@ fi SIMPLEIMAGE=$(readlink -f "$SIMPLEIMAGE") KERNELTAR=$(readlink -f "$KERNELTAR") -SIZE=3650 # MiB +SIZE=7300 # MiB if [[ -z "$DATE" ]]; then DATE=$(date +%Y%m%H) fi @@ -91,3 +91,5 @@ sleep 2 (cd simpleimage && sh ./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$DISTRO" "$TEMP/boot") mv -v "$TEMP/$IMAGE" . + +fstrim "$TEMP/rootfs" From 56293e9b7a7f4b68ca77ccb3c8a2334468eb89de Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 14:38:11 +0200 Subject: [PATCH 008/168] Move Dockerfile to build-environment --- Jenkinsfile | 5 ++--- Dockerfile => build-environment/Dockerfile | 0 2 files changed, 2 insertions(+), 3 deletions(-) rename Dockerfile => build-environment/Dockerfile (100%) diff --git a/Jenkinsfile b/Jenkinsfile index 32c268dc..cb400b14 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -14,9 +14,8 @@ node('docker && linux-build') { timestamps { wrap([$class: 'AnsiColorBuildWrapper', colorMapName: 'xterm']) { stage "Environment" - dir('build-environment') { - checkout scm - } + checkout scm + def environment = docker.build('build-environment:build-pine64-image', 'build-environment') environment.inside("--privileged") { diff --git a/Dockerfile b/build-environment/Dockerfile similarity index 100% rename from Dockerfile rename to build-environment/Dockerfile From c9f57c60dd628c801557e2b17ba93c4531c956d4 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 14:47:12 +0200 Subject: [PATCH 009/168] Fix dockerfile --- build-environment/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-environment/Dockerfile b/build-environment/Dockerfile index 7787ea48..0f261121 100644 --- a/build-environment/Dockerfile +++ b/build-environment/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:xenial RUN apt-get update -y RUN apt-get install -y python git-core gnupg flex bison gperf build-essential \ - zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \ + zip curl zlib1g-dev libc6-dev-i386 \ lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \ libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \ htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \ From 8122338d485550ddb8e88bfdad9fca6abe3653d6 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 15:00:02 +0200 Subject: [PATCH 010/168] Update Jenkinsfile --- Jenkinsfile | 4 +++- Makefile | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index cb400b14..3b7b51dc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -26,12 +26,14 @@ node('docker && linux-build') { ]) { stage 'Prepare' sh '''#!/bin/bash + set +xe ccache -M 0 -F 0 ''' stage 'Build' sh '''#!/bin/bash - make VERSION=$BUILD_ID RELEASE=$BUILD_NUMBER + set +xe + make VERSION="$BUILD_ID" RELEASE="$BUILD_NUMBER" ''' } diff --git a/Makefile b/Makefile index a091e440..0c75927b 100644 --- a/Makefile +++ b/Makefile @@ -64,4 +64,4 @@ xenial-pinebook-bspkernel-$(DATE)-$(RELEASE).img: simple-image-pinebook.img.xz l xenial \ $(RELEASE) -xenial-pinebook: xenial-pinebook-bspkernel-$(DATE)-1.img.xz +xenial-pinebook: xenial-pinebook-bspkernel-$(DATE)-$(RELEASE).img.xz From 7357eae2ed0f05f784f414a18bf63a38cca26010 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 15:10:01 +0200 Subject: [PATCH 011/168] Run as root --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3b7b51dc..1ecc966b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -18,7 +18,7 @@ node('docker && linux-build') { def environment = docker.build('build-environment:build-pine64-image', 'build-environment') - environment.inside("--privileged") { + environment.inside("--privileged -u 0:0") { withEnv([ "VERSION=$VERSION", 'USE_CCACHE=true', From 65560714a2109f27c5955c08498de9f738061ba6 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 15:15:25 +0200 Subject: [PATCH 012/168] Fix compilation --- Jenkinsfile | 4 +++- Makefile | 21 +++++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1ecc966b..ff2f8ba9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -22,17 +22,19 @@ node('docker && linux-build') { withEnv([ "VERSION=$VERSION", 'USE_CCACHE=true', - 'CCACHE_DIR=$WORKSPACE/ccache', ]) { stage 'Prepare' sh '''#!/bin/bash set +xe + export CCACHE_DIR=$WORKSPACE/ccache ccache -M 0 -F 0 + git clean -ffdx ''' stage 'Build' sh '''#!/bin/bash set +xe + export CCACHE_DIR=$WORKSPACE/ccache make VERSION="$BUILD_ID" RELEASE="$BUILD_NUMBER" ''' } diff --git a/Makefile b/Makefile index 0c75927b..24ab67cb 100644 --- a/Makefile +++ b/Makefile @@ -2,43 +2,44 @@ LOCALVERSION ?= export VERSION ?= dev export DATE ?= $(VERSION) export RELEASE ?= 1 -BRANCH ?= my-hacks-1.2 +LINUX_BRANCH ?= my-hacks-1.2 +BOOT_TOOLS_BRANCH ?= master all: xenial-pinebook linux/.git: - git clone --depth=1 --branch=$(BRANCH) --single-branch \ + git clone --depth=1 --branch=$(LINUX_BRANCH) --single-branch \ https://github.com/ayufan-pine64/linux-pine64.git linux linux/.config: linux/.git - make -C linux ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- LOCALVERSION=$(LOCALVERSION) clean CONFIG_ARCH_SUN50IW1P1=y - make -C linux ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- sun50iw1p1smp_linux_defconfig + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" LOCALVERSION=$(LOCALVERSION) clean CONFIG_ARCH_SUN50IW1P1=y + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" sun50iw1p1smp_linux_defconfig touch linux/.config linux/arch/arm64/boot/Image: linux/.config - make -C linux ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 LOCALVERSION=$(LOCALVERSION) modules + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 LOCALVERSION=$(LOCALVERSION) modules make -C linux M=modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali \ - ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- \ + ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" \ CONFIG_MALI400=m CONFIG_MALI450=y CONFIG_MALI400_PROFILING=y \ CONFIG_MALI_DMA_BUF_MAP_ON_ATTACH=y CONFIG_MALI_DT=y \ EXTRA_DEFINES="-DCONFIG_MALI400=1 -DCONFIG_MALI450=1 -DCONFIG_MALI400_PROFILING=1 -DCONFIG_MALI_DMA_BUF_MAP_ON_ATTACH -DCONFIG_MALI_DT" - make -C linux ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 LOCALVERSION=$(LOCALVERSION) Image + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 LOCALVERSION=$(LOCALVERSION) Image busybox/.git: git clone --depth 1 --branch 1_24_stable --single-branch git://git.busybox.net/busybox busybox busybox: busybox/.git cp -u kernel/pine64_config_busybox busybox/.config - make -C busybox ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 oldconfig + make -C busybox ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 oldconfig busybox/busybox: busybox - make -C busybox ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 + make -C busybox ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 kernel/initrd.gz: busybox/busybox cd kernel/ && ./make_initrd.sh boot-tools/.git: - git clone --single-branch --depth=1 --branch=$(BRANCH) https://github.com/ayufan-pine64/boot-tools + git clone --single-branch --depth=1 --branch=$(BOOT_TOOLS_BRANCH) https://github.com/ayufan-pine64/boot-tools boot-tools: boot-tools/.git From 407fb418d9fc806a02e6540521f0049383dbe283 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 15:27:34 +0200 Subject: [PATCH 013/168] Don't remove ccache --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index ff2f8ba9..7b64d0bb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -28,7 +28,7 @@ node('docker && linux-build') { set +xe export CCACHE_DIR=$WORKSPACE/ccache ccache -M 0 -F 0 - git clean -ffdx + git clean -ffdx -e ccache ''' stage 'Build' From e8ab83d90a8d2c44560a75ec0d064aa0d8f9e222 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 15:27:43 +0200 Subject: [PATCH 014/168] Fix linux compilation --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 24ab67cb..60a684af 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ -LOCALVERSION ?= export VERSION ?= dev export DATE ?= $(VERSION) export RELEASE ?= 1 +LOCALVERSION ?= ayufan-$(RELEASE) LINUX_BRANCH ?= my-hacks-1.2 BOOT_TOOLS_BRANCH ?= master @@ -17,13 +17,13 @@ linux/.config: linux/.git touch linux/.config linux/arch/arm64/boot/Image: linux/.config + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 LOCALVERSION=$(LOCALVERSION) Image make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 LOCALVERSION=$(LOCALVERSION) modules make -C linux M=modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali \ ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" \ CONFIG_MALI400=m CONFIG_MALI450=y CONFIG_MALI400_PROFILING=y \ CONFIG_MALI_DMA_BUF_MAP_ON_ATTACH=y CONFIG_MALI_DT=y \ EXTRA_DEFINES="-DCONFIG_MALI400=1 -DCONFIG_MALI450=1 -DCONFIG_MALI400_PROFILING=1 -DCONFIG_MALI_DMA_BUF_MAP_ON_ATTACH -DCONFIG_MALI_DT" - make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 LOCALVERSION=$(LOCALVERSION) Image busybox/.git: git clone --depth 1 --branch 1_24_stable --single-branch git://git.busybox.net/busybox busybox From 110bdff6e44fb0f0dd42756194753f94bcd2d038 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 15:52:27 +0200 Subject: [PATCH 015/168] Don't use VERSION as it collides with kernel --- Jenkinsfile | 3 +-- Makefile | 15 +++++++-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7b64d0bb..7d519377 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -20,7 +20,6 @@ node('docker && linux-build') { environment.inside("--privileged -u 0:0") { withEnv([ - "VERSION=$VERSION", 'USE_CCACHE=true', ]) { stage 'Prepare' @@ -35,7 +34,7 @@ node('docker && linux-build') { sh '''#!/bin/bash set +xe export CCACHE_DIR=$WORKSPACE/ccache - make VERSION="$BUILD_ID" RELEASE="$BUILD_NUMBER" + make DATE="$DATE" RELEASE="$BUILD_NUMBER" ''' } diff --git a/Makefile b/Makefile index 60a684af..defdcb12 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,4 @@ -export VERSION ?= dev -export DATE ?= $(VERSION) +export DATE ?= dev export RELEASE ?= 1 LOCALVERSION ?= ayufan-$(RELEASE) LINUX_BRANCH ?= my-hacks-1.2 @@ -43,25 +42,25 @@ boot-tools/.git: boot-tools: boot-tools/.git -linux-pine64-$(VERSION).tar.xz: linux/arch/arm64/boot/Image boot-tools kernel/initrd.gz +linux-pine64-$(DATE).tar.xz: linux/arch/arm64/boot/Image boot-tools kernel/initrd.gz cd kernel && bash ./make_kernel_tarball.sh $(shell dirname $(shell readlink -f "$@")) -kernel-tarball: linux-pine64-$(VERSION).tar.xz +kernel-tarball: linux-pine64-$(DATE).tar.xz -simple-image-pinebook.img: linux-pine64-$(VERSION).tar.xz boot-tools +simple-image-pinebook-$(DATE).img: linux-pine64-$(DATE).tar.xz boot-tools cd simpleimage && \ export boot0=../boot-tools/build/boot0_pinebook.bin && \ export uboot=../boot-tools/build/u-boot-sun50iw1p1-secure-with-pinebook-dtb.bin && \ - bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(VERSION).tar.xz) + bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(DATE).tar.xz) %.img.xz: %.img xz -3 $< -xenial-pinebook-bspkernel-$(DATE)-$(RELEASE).img: simple-image-pinebook.img.xz linux-pine64-$(VERSION).tar.xz boot-tools +xenial-pinebook-bspkernel-$(DATE)-$(RELEASE).img: simple-image-pinebook-$(DATE).img.xz linux-pine64-$(DATE).tar.xz boot-tools sudo MODEL=pinebook DATE=$(DATE) bash \ ./build-pine64-image.sh \ $(shell readlink -f simple-image-pinebook.img.xz) \ - $(shell readlink -f linux-pine64-$(VERSION).tar.xz) \ + $(shell readlink -f linux-pine64-$(DATE).tar.xz) \ xenial \ $(RELEASE) From 8bfbcad02c215a21416f863941c2dae96e6e689e Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 16:00:08 +0200 Subject: [PATCH 016/168] Add cpio --- build-environment/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build-environment/Dockerfile b/build-environment/Dockerfile index 0f261121..f1b72b8c 100644 --- a/build-environment/Dockerfile +++ b/build-environment/Dockerfile @@ -10,6 +10,8 @@ RUN apt-get install -y python git-core gnupg flex bison gperf build-essential \ gcc-arm-linux-gnueabi g++-arm-linux-gnueabi ccache \ sudo +RUN apt-get install -y cpio nano vim + RUN curl -L https://github.com/aktau/github-release/releases/download/v0.6.2/linux-amd64-github-release.tar.bz2 | tar -C /tmp -jx && \ mv /tmp/bin/linux/amd64/github-release /usr/local/bin/ From 6ece7ef3bbe82b6848194cb0f06b887a14a5c7e2 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 16:06:56 +0200 Subject: [PATCH 017/168] Add depmod --- build-environment/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-environment/Dockerfile b/build-environment/Dockerfile index f1b72b8c..3efe9506 100644 --- a/build-environment/Dockerfile +++ b/build-environment/Dockerfile @@ -10,7 +10,7 @@ RUN apt-get install -y python git-core gnupg flex bison gperf build-essential \ gcc-arm-linux-gnueabi g++-arm-linux-gnueabi ccache \ sudo -RUN apt-get install -y cpio nano vim +RUN apt-get install -y cpio nano vim kmod RUN curl -L https://github.com/aktau/github-release/releases/download/v0.6.2/linux-amd64-github-release.tar.bz2 | tar -C /tmp -jx && \ mv /tmp/bin/linux/amd64/github-release /usr/local/bin/ From 67b947aa0ef2709d75fd0e1320db508362095f4e Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 18:19:33 +0200 Subject: [PATCH 018/168] Accept file path to every command --- Makefile | 13 +++++++------ build-environment/Dockerfile | 2 +- build-pine64-image.sh | 25 ++++++++++--------------- kernel/make_kernel_tarball.sh | 18 ++++-------------- 4 files changed, 22 insertions(+), 36 deletions(-) diff --git a/Makefile b/Makefile index defdcb12..c288255b 100644 --- a/Makefile +++ b/Makefile @@ -43,7 +43,8 @@ boot-tools/.git: boot-tools: boot-tools/.git linux-pine64-$(DATE).tar.xz: linux/arch/arm64/boot/Image boot-tools kernel/initrd.gz - cd kernel && bash ./make_kernel_tarball.sh $(shell dirname $(shell readlink -f "$@")) + cd kernel && \ + bash ./make_kernel_tarball.sh $(shell readlink -f "$@") kernel-tarball: linux-pine64-$(DATE).tar.xz @@ -54,14 +55,14 @@ simple-image-pinebook-$(DATE).img: linux-pine64-$(DATE).tar.xz boot-tools bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(DATE).tar.xz) %.img.xz: %.img - xz -3 $< + xz -f -3 $< xenial-pinebook-bspkernel-$(DATE)-$(RELEASE).img: simple-image-pinebook-$(DATE).img.xz linux-pine64-$(DATE).tar.xz boot-tools - sudo MODEL=pinebook DATE=$(DATE) bash \ - ./build-pine64-image.sh \ - $(shell readlink -f simple-image-pinebook.img.xz) \ + sudo bash ./build-pine64-image.sh \ + $(shell readlink -f $@) \ + $(shell readlink -f simple-image-pinebook-$(DATE).img.xz) \ $(shell readlink -f linux-pine64-$(DATE).tar.xz) \ xenial \ - $(RELEASE) + pinebook xenial-pinebook: xenial-pinebook-bspkernel-$(DATE)-$(RELEASE).img.xz diff --git a/build-environment/Dockerfile b/build-environment/Dockerfile index 3efe9506..87e35d1d 100644 --- a/build-environment/Dockerfile +++ b/build-environment/Dockerfile @@ -10,7 +10,7 @@ RUN apt-get install -y python git-core gnupg flex bison gperf build-essential \ gcc-arm-linux-gnueabi g++-arm-linux-gnueabi ccache \ sudo -RUN apt-get install -y cpio nano vim kmod +RUN apt-get install -y cpio nano vim kmod kpartx RUN curl -L https://github.com/aktau/github-release/releases/download/v0.6.2/linux-amd64-github-release.tar.bz2 | tar -C /tmp -jx && \ mv /tmp/bin/linux/amd64/github-release /usr/local/bin/ diff --git a/build-pine64-image.sh b/build-pine64-image.sh index 08d69ef2..60f94f4b 100755 --- a/build-pine64-image.sh +++ b/build-pine64-image.sh @@ -8,17 +8,18 @@ # - https://www.stdin.xyz/downloads/people/longsleep/pine64-images/simpleimage-pine64-latest.img.xz # - https://www.stdin.xyz/downloads/people/longsleep/pine64-images/linux/linux-pine64-latest.tar.xz" -SIMPLEIMAGE="$1" -KERNELTAR="$2" -DISTRO="$3" -COUNT="$4" +OUT_IMAGE="$1" +SIMPLEIMAGE="$2" +KERNELTAR="$3" +DISTRO="$4" +MODEL="$5" if [[ -z "$MODEL" ]]; then MODEL="pine64" fi export MODEL if [ -z "$SIMPLEIMAGE" -o -z "$KERNELTAR" ]; then - echo "Usage: $0 [distro] [count]" + echo "Usage: $0 [distro] [model]" exit 1 fi @@ -31,21 +32,15 @@ if [ -z "$DISTRO" ]; then DISTRO="xenial" fi -if [ -z "$COUNT" ]; then - COUNT=1 -fi - SIMPLEIMAGE=$(readlink -f "$SIMPLEIMAGE") KERNELTAR=$(readlink -f "$KERNELTAR") SIZE=7300 # MiB -if [[ -z "$DATE" ]]; then - DATE=$(date +%Y%m%d_%H%M%S_%Z) -fi PWD=$(readlink -f .) TEMP=$(mktemp -p $PWD -d -t "$MODEL-build-XXXXXXXXXX") -IMAGE="$DISTRO-$MODEL-bspkernel-$DATE-$COUNT.img" +IMAGE="$(basename "$OUT_IMAGE")" +OUT_IMAGE="$(readlink -f "$IMAGE")" echo "> Building in $TEMP ..." cleanup() { @@ -55,7 +50,7 @@ cleanup() { umount $TEMP/rootfs/* || true umount "$TEMP/rootfs" || true kpartx -sd "$TEMP/$IMAGE" || true - kpartx -sd "$IMAGE" || true + kpartx -sd "$OUT_IMAGE" || true rmdir "$TEMP/boot" rmdir "$TEMP/rootfs" rm -r "$TEMP" @@ -90,6 +85,6 @@ mount /dev/mapper/${DEVICENAME}p2 "$TEMP/rootfs" sleep 2 (cd simpleimage && sh ./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$DISTRO" "$TEMP/boot") -mv -v "$TEMP/$IMAGE" . +mv -v "$TEMP/$IMAGE" "$OUT_IMAGE" fstrim "$TEMP/rootfs" diff --git a/kernel/make_kernel_tarball.sh b/kernel/make_kernel_tarball.sh index 633863c7..afc1a4bc 100755 --- a/kernel/make_kernel_tarball.sh +++ b/kernel/make_kernel_tarball.sh @@ -5,7 +5,7 @@ set -e DEST="$1" if [ -z "$DEST" ]; then - echo "Usage: $0 [linux-folder] [extra-version]" + echo "Usage: $0 [linux-folder] [extra-version]" exit 1 fi @@ -41,17 +41,7 @@ cp -rv "$BOOT_TOOLS/boot/" "$TEMP/" # Use uEnv.txt.in so we do not overwrite customizations on next update. mv "$TEMP/boot/uEnv.txt" "$TEMP/boot/uEnv.txt.in" -if [ -z "$EXTRAVERSION" -a -e "$LINUX/.version" ]; then - EXTRAVERSION=$(cat "$LINUX/.version") -else - EXTRAVERSION=$(date +%s) -fi - -if [ -z "$VERSION" ]; then - VERSION="$(ls -1tr $TEMP/lib/modules/|tail -n1)-$EXTRAVERSION" -fi - -echo "Building $VERSION ..." -tar -C "$TEMP" -cJ --owner=0 --group=0 --xform='s,./,,' -f "$DEST/linux-pine64-$VERSION.tar.xz" . +echo "Building $DEST ..." +tar -C "$TEMP" -cJ --owner=0 --group=0 --xform='s,./,,' -f "$DEST" . -echo "Done - $DEST/linux-pine64-$VERSION.tar.xz" +echo "Done - $DEST" From 93640c16a08859f8cb8d4fe01dc1952510d602d1 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 18:38:29 +0200 Subject: [PATCH 019/168] Install missing tools --- build-environment/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-environment/Dockerfile b/build-environment/Dockerfile index 87e35d1d..92b379da 100644 --- a/build-environment/Dockerfile +++ b/build-environment/Dockerfile @@ -10,7 +10,7 @@ RUN apt-get install -y python git-core gnupg flex bison gperf build-essential \ gcc-arm-linux-gnueabi g++-arm-linux-gnueabi ccache \ sudo -RUN apt-get install -y cpio nano vim kmod kpartx +RUN apt-get install -y cpio nano vim kmod kpartx wget bsdtar qemu-user-static RUN curl -L https://github.com/aktau/github-release/releases/download/v0.6.2/linux-amd64-github-release.tar.bz2 | tar -C /tmp -jx && \ mv /tmp/bin/linux/amd64/github-release /usr/local/bin/ From e6f3fb60f5f84ef2c527722c1c865cbb61c7a55d Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 20:00:13 +0200 Subject: [PATCH 020/168] Fix naming and use parallel xz --- Jenkinsfile | 6 ++++-- Makefile | 31 ++++++++++++++++++------------- build-environment/Dockerfile | 1 + kernel/make_kernel_tarball.sh | 2 +- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7d519377..ea4a75f3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -20,7 +20,9 @@ node('docker && linux-build') { environment.inside("--privileged -u 0:0") { withEnv([ - 'USE_CCACHE=true', + "USE_CCACHE=true", + "RELEASE_NAME=$VERSION", + "RELEASE=$BUILD_NUMBER" ]) { stage 'Prepare' sh '''#!/bin/bash @@ -34,7 +36,7 @@ node('docker && linux-build') { sh '''#!/bin/bash set +xe export CCACHE_DIR=$WORKSPACE/ccache - make DATE="$DATE" RELEASE="$BUILD_NUMBER" + make ''' } diff --git a/Makefile b/Makefile index c288255b..4b918935 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ -export DATE ?= dev +export RELEASE_NAME ?= dev export RELEASE ?= 1 -LOCALVERSION ?= ayufan-$(RELEASE) +LOCALVERSION ?= -ayufan-$(RELEASE) LINUX_BRANCH ?= my-hacks-1.2 BOOT_TOOLS_BRANCH ?= master @@ -42,27 +42,32 @@ boot-tools/.git: boot-tools: boot-tools/.git -linux-pine64-$(DATE).tar.xz: linux/arch/arm64/boot/Image boot-tools kernel/initrd.gz +linux-pine64-$(RELEASE_NAME).tar: linux/arch/arm64/boot/Image boot-tools kernel/initrd.gz cd kernel && \ bash ./make_kernel_tarball.sh $(shell readlink -f "$@") -kernel-tarball: linux-pine64-$(DATE).tar.xz +%.img.xz: %.img + pxz -f -3 $< -simple-image-pinebook-$(DATE).img: linux-pine64-$(DATE).tar.xz boot-tools +simple-image-pinebook-$(RELEASE_NAME).img: boot-tools/build/boot0_pinebook.bin boot-tools/build/u-boot-sun50iw1p1-secure-with-pinebook-dtb.bin linux-pine64-$(RELEASE_NAME).tar.xz boot-tools cd simpleimage && \ export boot0=../boot-tools/build/boot0_pinebook.bin && \ export uboot=../boot-tools/build/u-boot-sun50iw1p1-secure-with-pinebook-dtb.bin && \ - bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(DATE).tar.xz) - -%.img.xz: %.img - xz -f -3 $< + bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) -xenial-pinebook-bspkernel-$(DATE)-$(RELEASE).img: simple-image-pinebook-$(DATE).img.xz linux-pine64-$(DATE).tar.xz boot-tools +xenial-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz boot-tools sudo bash ./build-pine64-image.sh \ $(shell readlink -f $@) \ - $(shell readlink -f simple-image-pinebook-$(DATE).img.xz) \ - $(shell readlink -f linux-pine64-$(DATE).tar.xz) \ + $(shell readlink -f simple-image-pinebook-$(RELEASE_NAME).img.xz) \ + $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ xenial \ pinebook -xenial-pinebook: xenial-pinebook-bspkernel-$(DATE)-$(RELEASE).img.xz +.PHONY: kernel-tarball +kernel-tarball: linux-pine64-$(RELEASE_NAME).tar.xz + +.PHONY: simple-image-pinebook-$(RELEASE_NAME).img +simple-image-pinebook: simple-image-pinebook-$(RELEASE_NAME).img + +.PHONY: xenial-pinebook +xenial-pinebook: xenial-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz diff --git a/build-environment/Dockerfile b/build-environment/Dockerfile index 92b379da..c57ff98a 100644 --- a/build-environment/Dockerfile +++ b/build-environment/Dockerfile @@ -11,6 +11,7 @@ RUN apt-get install -y python git-core gnupg flex bison gperf build-essential \ sudo RUN apt-get install -y cpio nano vim kmod kpartx wget bsdtar qemu-user-static +RUN apt-get install -y pxz RUN curl -L https://github.com/aktau/github-release/releases/download/v0.6.2/linux-amd64-github-release.tar.bz2 | tar -C /tmp -jx && \ mv /tmp/bin/linux/amd64/github-release /usr/local/bin/ diff --git a/kernel/make_kernel_tarball.sh b/kernel/make_kernel_tarball.sh index afc1a4bc..2bdf0190 100755 --- a/kernel/make_kernel_tarball.sh +++ b/kernel/make_kernel_tarball.sh @@ -42,6 +42,6 @@ cp -rv "$BOOT_TOOLS/boot/" "$TEMP/" mv "$TEMP/boot/uEnv.txt" "$TEMP/boot/uEnv.txt.in" echo "Building $DEST ..." -tar -C "$TEMP" -cJ --owner=0 --group=0 --xform='s,./,,' -f "$DEST" . +tar -C "$TEMP" -ca --owner=0 --group=0 --xform='s,./,,' -f "$DEST" . echo "Done - $DEST" From dec71e3c54e733d56b7f60c0e2a7a44440a90ed2 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 20:26:11 +0200 Subject: [PATCH 021/168] Use GitHub Releases to distribute updates --- simpleimage/make_rootfs.sh | 9 ++- .../platform-scripts/pine64_update_kernel.sh | 36 ++++++---- .../platform-scripts/pine64_update_model.sh | 67 +++++++++++++++++++ .../platform-scripts/pine64_update_uboot.sh | 36 ++++++---- 4 files changed, 117 insertions(+), 31 deletions(-) create mode 100755 simpleimage/platform-scripts/pine64_update_model.sh diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 1718520d..cf8672f2 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -363,7 +363,9 @@ EOF export DEBIAN_FRONTEND=noninteractive locale-gen en_US.UTF-8 apt-get -y update -apt-get -y install dosfstools curl xz-utils iw rfkill wpasupplicant openssh-server alsa-utils $EXTRADEBS +apt-get -y install dosfstools curl xz-utils iw rfkill wpasupplicant openssh-server alsa-utils jq $EXTRADEBS +/usr/local/sbin/install_mate_desktop.sh +systemctl set-default graphical.target apt-get -y remove --purge ureadahead $ADDPPACMD apt-get -y update @@ -383,6 +385,9 @@ iface eth0 inet dhcp EOF cat > "$DEST/etc/hostname" < "$DEST/etc/pine_model" < "$DEST/etc/hosts" </dev/null + curl -L "${URL}" -f --progress-bar --output "${FILENAME}" + # echo "Downloading signature ..." + # curl "${URL}.asc" -f --progress-bar --output "${FILENAME}.asc" + # echo "Downloading public key ..." + # curl "${PUBKEY}" -f --progress-bar --output "${TEMP}/pub.asc" + + # echo "Verifying signature ..." + # gpg --homedir "${TEMP}" --yes -o "${TEMP}/pub.gpg" --dearmor "${TEMP}/pub.asc" + # gpg --homedir "${TEMP}" --status-fd 1 --no-default-keyring --keyring "${TEMP}/pub.gpg" --trust-model always --verify "${FILENAME}.asc" 2>/dev/null echo "Extracting ..." mkdir $TEMP/update diff --git a/simpleimage/platform-scripts/pine64_update_model.sh b/simpleimage/platform-scripts/pine64_update_model.sh new file mode 100755 index 00000000..1212afe4 --- /dev/null +++ b/simpleimage/platform-scripts/pine64_update_model.sh @@ -0,0 +1,67 @@ +#!/bin/sh + +set -e + +VERSION="$1" + +if [ -z "$1" ]; then + VERSION=$(curl -s https://api.github.com/repos/ayufan-pine64/linux-build/releases/latest | jq -r ".tag_name") + if [ -z "$VERSION" ]; then + echo "Latest release was not found. Please go to: $LATEST_LIST" + exit 1 + fi + + echo "Using latest release: $VERSION." +fi + +DEVICE="/dev/mmcblk0" +URL="https://github.com/ayufan-pine64/linux-build/releases/download/$1/linux-model-$(cat /etc/pine_model)-$1.deb" +CURRENTFILE="/var/lib/misc/pine64_update_model.status" + +if [ "$(id -u)" -ne "0" ]; then + echo "This script requires root." + exit 1 +fi + +TEMP=$(mktemp -d -p /var/tmp) + +cleanup() { + if [ -d "$TEMP" ]; then + rm -rf "$TEMP" + fi +} +trap cleanup EXIT INT + +CURRENT="" +if [ -e "${CURRENTFILE}" ]; then + CURRENT=$(cat $CURRENTFILE) +fi + +echo "Checking for update ..." +ETAG=$(curl -L -f -I -H "If-None-Match: \"${CURRENT}\"" -s "${URL}"|grep ETag|awk -F'"' '{print $2}') + +if [ -z "$ETAG" ]; then + echo "Version $VERSION not found." + exit 1 +fi + +if [ "$ETAG" = "$CURRENT" ]; then + echo "You are already on $VERSION version - abort." + exit 0 +fi + +FILENAME=$TEMP/$(basename ${URL}) + +if [ -z "$MARK_ONLY" ]; then + echo "Downloading model package ..." + curl -L "${URL}" -f --progress-bar --output "${FILENAME}" + + echo "Installing model package ..." + dpkg -i "${FILENAME}" + + echo "Done - you should reboot now." +else + echo "Mark only." +fi + +echo $ETAG > "$CURRENTFILE" diff --git a/simpleimage/platform-scripts/pine64_update_uboot.sh b/simpleimage/platform-scripts/pine64_update_uboot.sh index 8004d5bf..3efc6199 100755 --- a/simpleimage/platform-scripts/pine64_update_uboot.sh +++ b/simpleimage/platform-scripts/pine64_update_uboot.sh @@ -2,14 +2,22 @@ set -e -VERSION="latest" -if [ -n "$1" ]; then - VERSION="$1" +VERSION="$1" + +if [ -z "$1" ]; then + VERSION=$(curl -s https://api.github.com/repos/ayufan-pine64/linux-build/releases/latest | jq -r ".tag_name") + if [ -z "$VERSION" ]; then + echo "Latest release was not found. Please go to: $LATEST_LIST" + exit 1 + fi + + echo "Using latest release: $VERSION." fi DEVICE="/dev/mmcblk0" -URL="https://www.stdin.xyz/downloads/people/longsleep/pine64-images/simpleimage-pine64-$VERSION.img.xz" -PUBKEY="https://www.stdin.xyz/downloads/people/longsleep/longsleep.asc" +URL="https://github.com/ayufan-pine64/linux-build/releases/download/$1/simple-image-$(cat /etc/pine_model)-$1.tar.xz" +# URL="https://www.stdin.xyz/downloads/people/longsleep/pine64-images/simpleimage-pine64-$VERSION.img.xz" +# PUBKEY="https://www.stdin.xyz/downloads/people/longsleep/longsleep.asc" CURRENTFILE="/var/lib/misc/pine64_update_uboot.status" if [ "$(id -u)" -ne "0" ]; then @@ -48,15 +56,15 @@ FILENAME=$TEMP/$(basename ${URL}) downloadAndApply() { echo "Downloading U-Boot image ..." - curl "${URL}" -f --progress-bar --output "${FILENAME}" - echo "Downloading signature ..." - curl "${URL}.asc" -f --progress-bar --output "${FILENAME}.asc" - echo "Downloading public key ..." - curl "${PUBKEY}" -f --progress-bar --output "${TEMP}/pub.asc" - - echo "Verifying signature ..." - gpg --homedir "${TEMP}" --yes -o "${TEMP}/pub.gpg" --dearmor "${TEMP}/pub.asc" - gpg --homedir "${TEMP}" --status-fd 1 --no-default-keyring --keyring "${TEMP}/pub.gpg" --trust-model always --verify "${FILENAME}.asc" 2>/dev/null + curl -L "${URL}" -f --progress-bar --output "${FILENAME}" + # echo "Downloading signature ..." + # curl "${URL}.asc" -f --progress-bar --output "${FILENAME}.asc" + # echo "Downloading public key ..." + # curl "${PUBKEY}" -f --progress-bar --output "${TEMP}/pub.asc" + + # echo "Verifying signature ..." + # gpg --homedir "${TEMP}" --yes -o "${TEMP}/pub.gpg" --dearmor "${TEMP}/pub.asc" + # gpg --homedir "${TEMP}" --status-fd 1 --no-default-keyring --keyring "${TEMP}/pub.gpg" --trust-model always --verify "${FILENAME}.asc" 2>/dev/null local boot0_position=8 # KiB local boot0_size=64 # KiB From 2a871e261f1ca206b3c684464d084545d81c8ca9 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 20:30:16 +0200 Subject: [PATCH 022/168] Do not compile boot-tools --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4b918935..fdccb4cd 100644 --- a/Makefile +++ b/Makefile @@ -49,7 +49,7 @@ linux-pine64-$(RELEASE_NAME).tar: linux/arch/arm64/boot/Image boot-tools kernel/ %.img.xz: %.img pxz -f -3 $< -simple-image-pinebook-$(RELEASE_NAME).img: boot-tools/build/boot0_pinebook.bin boot-tools/build/u-boot-sun50iw1p1-secure-with-pinebook-dtb.bin linux-pine64-$(RELEASE_NAME).tar.xz boot-tools +simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools cd simpleimage && \ export boot0=../boot-tools/build/boot0_pinebook.bin && \ export uboot=../boot-tools/build/u-boot-sun50iw1p1-secure-with-pinebook-dtb.bin && \ From 0bcb3ca311e9e694491ece0a606dc0e82dffa6a5 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 20:35:57 +0200 Subject: [PATCH 023/168] Add pxz for tar --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index fdccb4cd..62a8f6d3 100644 --- a/Makefile +++ b/Makefile @@ -46,6 +46,9 @@ linux-pine64-$(RELEASE_NAME).tar: linux/arch/arm64/boot/Image boot-tools kernel/ cd kernel && \ bash ./make_kernel_tarball.sh $(shell readlink -f "$@") +%.tar.xz: %.tar + pxz -f -3 $< + %.img.xz: %.img pxz -f -3 $< From 5e6364930116e7ed266f6615f998a6cc939cb40d Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 20:49:39 +0200 Subject: [PATCH 024/168] Do not mark kernel and uboot --- simpleimage/make_rootfs.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index cf8672f2..46ed56d3 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -163,10 +163,6 @@ add_platform_scripts() { cp -av ./platform-scripts/* "$DEST/usr/local/sbin" chown root.root "$DEST/usr/local/sbin/"* chmod 755 "$DEST/usr/local/sbin/"* - - # Set Kernel and U-boot update version - do_chroot /usr/bin/env MARK_ONLY=1 /usr/local/sbin/pine64_update_kernel.sh - do_chroot /usr/bin/env MARK_ONLY=1 /usr/local/sbin/pine64_update_uboot.sh } add_mackeeper_service() { From 3923d628b14d1d40b399e5bdbd4bc744ff3341bc Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 29 Apr 2017 21:08:14 +0200 Subject: [PATCH 025/168] Fix installation of Ubuntu Mate --- simpleimage/make_rootfs.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 46ed56d3..dc1b1132 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -360,8 +360,6 @@ export DEBIAN_FRONTEND=noninteractive locale-gen en_US.UTF-8 apt-get -y update apt-get -y install dosfstools curl xz-utils iw rfkill wpasupplicant openssh-server alsa-utils jq $EXTRADEBS -/usr/local/sbin/install_mate_desktop.sh -systemctl set-default graphical.target apt-get -y remove --purge ureadahead $ADDPPACMD apt-get -y update @@ -410,6 +408,10 @@ EOF rm -f "$DEST/etc/resolv.conf" rm -f "$DEST"/etc/ssh/ssh_host_* do_chroot ln -s /run/resolvconf/resolv.conf /etc/resolv.conf + do_chroot /usr/local/sbin/install_mate_desktop.sh + do_chroot systemctl set-default graphical.target + do_chroot apt-get -y autoremove + do_chroot apt-get clean ;; *) ;; From a52b6ad1ccde22130927a2f981d2a1d7ab53e447 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sun, 30 Apr 2017 01:47:54 +0200 Subject: [PATCH 026/168] Use BSP 3.0 --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 62a8f6d3..c0c16a2b 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ export RELEASE_NAME ?= dev export RELEASE ?= 1 LOCALVERSION ?= -ayufan-$(RELEASE) -LINUX_BRANCH ?= my-hacks-1.2 +LINUX_BRANCH ?= my-hacks-3.0 BOOT_TOOLS_BRANCH ?= master all: xenial-pinebook From 854593e1fe71ceb6b656189ba4b4ba70a9a0c81e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sun, 30 Apr 2017 01:52:32 +0200 Subject: [PATCH 027/168] Export LINUX_BRANCH --- Makefile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index c0c16a2b..7b7e915b 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ export RELEASE_NAME ?= dev export RELEASE ?= 1 -LOCALVERSION ?= -ayufan-$(RELEASE) -LINUX_BRANCH ?= my-hacks-3.0 -BOOT_TOOLS_BRANCH ?= master +export LINUX_BRANCH ?= my-hacks-3.0 +export BOOT_TOOLS_BRANCH ?= master +LINUX_LOCALVERSION ?= -ayufan-$(RELEASE) all: xenial-pinebook @@ -11,14 +11,14 @@ linux/.git: https://github.com/ayufan-pine64/linux-pine64.git linux linux/.config: linux/.git - make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" LOCALVERSION=$(LOCALVERSION) clean CONFIG_ARCH_SUN50IW1P1=y + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" clean CONFIG_ARCH_SUN50IW1P1=y make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" sun50iw1p1smp_linux_defconfig touch linux/.config linux/arch/arm64/boot/Image: linux/.config - make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 LOCALVERSION=$(LOCALVERSION) Image - make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 LOCALVERSION=$(LOCALVERSION) modules - make -C linux M=modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali \ + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 LOCALVERSION=$(LINUX_LOCALVERSION) Image + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 LOCALVERSION=$(LINUX_LOCALVERSION) modules + make -C linux LOCALVERSION=$(LINUX_LOCALVERSION) M=modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali \ ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" \ CONFIG_MALI400=m CONFIG_MALI450=y CONFIG_MALI400_PROFILING=y \ CONFIG_MALI_DMA_BUF_MAP_ON_ATTACH=y CONFIG_MALI_DT=y \ From b59cfb38db30968d37bf7ec44b8291d7b62c635d Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 30 Apr 2017 14:43:25 +0200 Subject: [PATCH 028/168] Revert "Use BSP 3.0" This reverts commit a52b6ad1ccde22130927a2f981d2a1d7ab53e447. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 7b7e915b..eaa17d5c 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ export RELEASE_NAME ?= dev export RELEASE ?= 1 -export LINUX_BRANCH ?= my-hacks-3.0 +export LINUX_BRANCH ?= my-hacks-1.2 export BOOT_TOOLS_BRANCH ?= master LINUX_LOCALVERSION ?= -ayufan-$(RELEASE) From 82426fa921a4026341f366355243b483ac7fc231 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 30 Apr 2017 16:05:30 +0200 Subject: [PATCH 029/168] Enable headphones on boot --- simpleimage/make_rootfs.sh | 21 ++++++++++++++++++- .../pinebook_enable_headphones.sh | 13 ++++++++++++ .../platform-scripts/pinebook_enable_uart.sh | 13 ++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100755 simpleimage/platform-scripts/pinebook_enable_headphones.sh create mode 100755 simpleimage/platform-scripts/pinebook_enable_uart.sh diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index dc1b1132..9053c885 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -181,6 +181,22 @@ EOF do_chroot systemctl enable eth0-mackeeper } +add_enable_headphones_service() { + cat > "$DEST/etc/systemd/system/pinebook-headphones.service" < "$DEST/etc/systemd/system/cpu-corekeeper.service" < export +fi + +cd gpio362 +echo out > direction +echo 1 > value diff --git a/simpleimage/platform-scripts/pinebook_enable_uart.sh b/simpleimage/platform-scripts/pinebook_enable_uart.sh new file mode 100755 index 00000000..da679607 --- /dev/null +++ b/simpleimage/platform-scripts/pinebook_enable_uart.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -xe + +cd /sys/class/gpio + +if [ ! -d gpio362 ]; then + echo 362 > export +fi + +cd gpio362 +echo out > direction +echo 0 > value From 94aa0680e8bf5d74193552fd3419ec5ce43c9c05 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 30 Apr 2017 21:56:00 +0200 Subject: [PATCH 030/168] Build linux-pine64-package.deb that contains all scripts and fix pinebook support --- .gitignore | 1 + Jenkinsfile | 2 +- Makefile | 22 ++- build-environment/Dockerfile | 6 +- build-pine64-image.sh | 9 +- .../root/etc/modprobe.d/blacklist-pine64.conf | 1 + .../root/etc/modules-load.d/pine64-disp.conf | 2 + .../root/etc/modules-load.d/pine64-wifi.conf | 2 + .../etc/modules-load.d/pinebook-hall.conf | 1 + package/root/etc/network/interfaces.d/wlan1 | 2 + .../etc/systemd/system/cpu-corekeeper.service | 8 + .../etc/systemd/system/eth0-mackeeper.service | 10 + .../system/pinebook-headphones.service | 10 + .../etc/systemd/system/ssh-keygen.service | 21 ++ .../rules.d/90-sunxi-disp-permission.rules | 4 + .../usr/local/sbin}/install_mate_desktop.sh | 0 .../root/usr/local/sbin}/mplayer-play.sh | 0 .../root/usr/local/sbin}/pine64_corekeeper.sh | 0 .../usr/local/sbin}/pine64_eth0-mackeeper.sh | 0 .../usr/local/sbin}/pine64_fix_whatever.sh | 0 .../root/usr/local/sbin}/pine64_health.sh | 0 .../usr/local/sbin}/pine64_tune_network.sh | 0 .../usr/local/sbin}/pine64_update_kernel.sh | 2 +- .../usr/local/sbin/pine64_update_package.sh | 4 +- .../usr/local/sbin}/pine64_update_uboot.sh | 2 +- .../local/sbin}/pinebook_enable_headphones.sh | 0 .../usr/local/sbin}/pinebook_enable_uart.sh | 0 .../root/usr/local/sbin}/resize_rootfs.sh | 0 .../root/var/lib/alsa}/asound.state.pine64 | 0 .../root/var/lib/alsa}/asound.state.pinebook | 4 +- package/scripts/postinst.deb | 20 ++ package/scripts/prerm.deb | 1 + simpleimage/make_rootfs.sh | 182 ++---------------- 33 files changed, 137 insertions(+), 179 deletions(-) create mode 100644 package/root/etc/modprobe.d/blacklist-pine64.conf create mode 100644 package/root/etc/modules-load.d/pine64-disp.conf create mode 100644 package/root/etc/modules-load.d/pine64-wifi.conf create mode 100644 package/root/etc/modules-load.d/pinebook-hall.conf create mode 100644 package/root/etc/network/interfaces.d/wlan1 create mode 100644 package/root/etc/systemd/system/cpu-corekeeper.service create mode 100644 package/root/etc/systemd/system/eth0-mackeeper.service create mode 100644 package/root/etc/systemd/system/pinebook-headphones.service create mode 100644 package/root/etc/systemd/system/ssh-keygen.service create mode 100644 package/root/etc/udev/rules.d/90-sunxi-disp-permission.rules rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/install_mate_desktop.sh (100%) rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/mplayer-play.sh (100%) rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/pine64_corekeeper.sh (100%) rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/pine64_eth0-mackeeper.sh (100%) rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/pine64_fix_whatever.sh (100%) rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/pine64_health.sh (100%) rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/pine64_tune_network.sh (100%) rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/pine64_update_kernel.sh (98%) rename simpleimage/platform-scripts/pine64_update_model.sh => package/root/usr/local/sbin/pine64_update_package.sh (90%) rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/pine64_update_uboot.sh (97%) rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/pinebook_enable_headphones.sh (100%) rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/pinebook_enable_uart.sh (100%) rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/resize_rootfs.sh (100%) rename {blobs => package/root/var/lib/alsa}/asound.state.pine64 (100%) rename {blobs => package/root/var/lib/alsa}/asound.state.pinebook (93%) create mode 100755 package/scripts/postinst.deb create mode 100755 package/scripts/prerm.deb diff --git a/.gitignore b/.gitignore index 0997afcb..af6a62e6 100644 --- a/.gitignore +++ b/.gitignore @@ -27,4 +27,5 @@ /snappy/gadget/uboot.conf /snappy/gadget/boot-assets /boot-tools/ +/*.deb diff --git a/Jenkinsfile b/Jenkinsfile index ea4a75f3..20901142 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -58,7 +58,7 @@ node('docker && linux-build') { --description "${CHANGES}\n\n${BUILD_URL}" \ --draft - for file in *.xz; do + for file in *.xz *.deb; do github-release upload \ --tag "${VERSION}" \ --name "$(basename "$file")" \ diff --git a/Makefile b/Makefile index eaa17d5c..29040b7e 100644 --- a/Makefile +++ b/Makefile @@ -46,6 +46,22 @@ linux-pine64-$(RELEASE_NAME).tar: linux/arch/arm64/boot/Image boot-tools kernel/ cd kernel && \ bash ./make_kernel_tarball.sh $(shell readlink -f "$@") +linux-pine64-package-$(RELEASE_NAME).deb: package + fpm -s dir -t deb -n linux-pine64-package -v $(RELEASE_NAME) \ + -p $@ \ + --deb-priority optional --category admin \ + --force \ + --deb-compression bzip2 \ + --after-install package/scripts/postinst.deb \ + --before-remove package/scripts/prerm.deb \ + --url https://gitlab.com/ayufan-pine64/linux-build \ + --description "GitLab Runner" \ + -m "Kamil Trzciński " \ + --license "MIT" \ + --vendor "Kamil Trzciński" \ + -a arm64 \ + package/root/=/ + %.tar.xz: %.tar pxz -f -3 $< @@ -58,17 +74,21 @@ simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz b export uboot=../boot-tools/build/u-boot-sun50iw1p1-secure-with-pinebook-dtb.bin && \ bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) -xenial-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz boot-tools +xenial-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools sudo bash ./build-pine64-image.sh \ $(shell readlink -f $@) \ $(shell readlink -f simple-image-pinebook-$(RELEASE_NAME).img.xz) \ $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ + $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ xenial \ pinebook .PHONY: kernel-tarball kernel-tarball: linux-pine64-$(RELEASE_NAME).tar.xz +.PHONY: linux-package +linux-package: linux-pine64-package-$(RELEASE_NAME).deb + .PHONY: simple-image-pinebook-$(RELEASE_NAME).img simple-image-pinebook: simple-image-pinebook-$(RELEASE_NAME).img diff --git a/build-environment/Dockerfile b/build-environment/Dockerfile index c57ff98a..61166d8d 100644 --- a/build-environment/Dockerfile +++ b/build-environment/Dockerfile @@ -8,10 +8,10 @@ RUN apt-get install -y python git-core gnupg flex bison gperf build-essential \ htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \ dosfstools gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ gcc-arm-linux-gnueabi g++-arm-linux-gnueabi ccache \ - sudo + sudo cpio nano vim kmod kpartx wget bsdtar qemu-user-static \ + pxz ruby-dev -RUN apt-get install -y cpio nano vim kmod kpartx wget bsdtar qemu-user-static -RUN apt-get install -y pxz +RUN gem install fpm RUN curl -L https://github.com/aktau/github-release/releases/download/v0.6.2/linux-amd64-github-release.tar.bz2 | tar -C /tmp -jx && \ mv /tmp/bin/linux/amd64/github-release /usr/local/bin/ diff --git a/build-pine64-image.sh b/build-pine64-image.sh index 60f94f4b..3b171f50 100755 --- a/build-pine64-image.sh +++ b/build-pine64-image.sh @@ -11,15 +11,16 @@ OUT_IMAGE="$1" SIMPLEIMAGE="$2" KERNELTAR="$3" -DISTRO="$4" -MODEL="$5" +PACKAGEDEB="$4" +DISTRO="$5" +MODEL="$6" if [[ -z "$MODEL" ]]; then MODEL="pine64" fi export MODEL if [ -z "$SIMPLEIMAGE" -o -z "$KERNELTAR" ]; then - echo "Usage: $0 [distro] [model]" + echo "Usage: $0 [distro] [model]" exit 1 fi @@ -83,7 +84,7 @@ mount /dev/mapper/${DEVICENAME}p1 "$TEMP/boot" mount /dev/mapper/${DEVICENAME}p2 "$TEMP/rootfs" sleep 2 -(cd simpleimage && sh ./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$DISTRO" "$TEMP/boot") +(cd simpleimage && sh ./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$PACKAGEDEB" "$DISTRO" "$TEMP/boot" "$MODEL") mv -v "$TEMP/$IMAGE" "$OUT_IMAGE" diff --git a/package/root/etc/modprobe.d/blacklist-pine64.conf b/package/root/etc/modprobe.d/blacklist-pine64.conf new file mode 100644 index 00000000..51ac6f0c --- /dev/null +++ b/package/root/etc/modprobe.d/blacklist-pine64.conf @@ -0,0 +1 @@ +blacklist 8723bs_vq0 diff --git a/package/root/etc/modules-load.d/pine64-disp.conf b/package/root/etc/modules-load.d/pine64-disp.conf new file mode 100644 index 00000000..a8b86cd1 --- /dev/null +++ b/package/root/etc/modules-load.d/pine64-disp.conf @@ -0,0 +1,2 @@ +disp +hdmi diff --git a/package/root/etc/modules-load.d/pine64-wifi.conf b/package/root/etc/modules-load.d/pine64-wifi.conf new file mode 100644 index 00000000..6c623251 --- /dev/null +++ b/package/root/etc/modules-load.d/pine64-wifi.conf @@ -0,0 +1,2 @@ +8723bs +8723cs diff --git a/package/root/etc/modules-load.d/pinebook-hall.conf b/package/root/etc/modules-load.d/pinebook-hall.conf new file mode 100644 index 00000000..d7ab325f --- /dev/null +++ b/package/root/etc/modules-load.d/pinebook-hall.conf @@ -0,0 +1 @@ +hall diff --git a/package/root/etc/network/interfaces.d/wlan1 b/package/root/etc/network/interfaces.d/wlan1 new file mode 100644 index 00000000..c8020c37 --- /dev/null +++ b/package/root/etc/network/interfaces.d/wlan1 @@ -0,0 +1,2 @@ +# Disable wlan1 by default (8723bs has two intefaces) +iface wlan1 inet manual diff --git a/package/root/etc/systemd/system/cpu-corekeeper.service b/package/root/etc/systemd/system/cpu-corekeeper.service new file mode 100644 index 00000000..5b19a75f --- /dev/null +++ b/package/root/etc/systemd/system/cpu-corekeeper.service @@ -0,0 +1,8 @@ +[Unit] +Description=CPU corekeeper + +[Service] +ExecStart=/usr/local/sbin/pine64_corekeeper.sh + +[Install] +WantedBy=multi-user.target diff --git a/package/root/etc/systemd/system/eth0-mackeeper.service b/package/root/etc/systemd/system/eth0-mackeeper.service new file mode 100644 index 00000000..8cb4e45c --- /dev/null +++ b/package/root/etc/systemd/system/eth0-mackeeper.service @@ -0,0 +1,10 @@ +[Unit] +Description=Fix eth0 mac address to uEnv.txt +After=systemd-modules-load.service local-fs.target + +[Service] +Type=oneshot +ExecStart=/usr/local/sbin/pine64_eth0-mackeeper.sh + +[Install] +WantedBy=multi-user.target diff --git a/package/root/etc/systemd/system/pinebook-headphones.service b/package/root/etc/systemd/system/pinebook-headphones.service new file mode 100644 index 00000000..1ad7da12 --- /dev/null +++ b/package/root/etc/systemd/system/pinebook-headphones.service @@ -0,0 +1,10 @@ +[Unit] +Description=Enable headpohones +After=systemd-modules-load.service local-fs.target + +[Service] +Type=oneshot +ExecStart=/usr/local/sbin/pinebook_enable_headphones.sh + +[Install] +WantedBy=multi-user.target diff --git a/package/root/etc/systemd/system/ssh-keygen.service b/package/root/etc/systemd/system/ssh-keygen.service new file mode 100644 index 00000000..ca5006d6 --- /dev/null +++ b/package/root/etc/systemd/system/ssh-keygen.service @@ -0,0 +1,21 @@ +[Unit] +Description=Generate SSH keys if not there +Before=ssh.service +ConditionPathExists=|!/etc/ssh/ssh_host_key +ConditionPathExists=|!/etc/ssh/ssh_host_key.pub +ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key +ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key.pub +ConditionPathExists=|!/etc/ssh/ssh_host_dsa_key +ConditionPathExists=|!/etc/ssh/ssh_host_dsa_key.pub +ConditionPathExists=|!/etc/ssh/ssh_host_ecdsa_key +ConditionPathExists=|!/etc/ssh/ssh_host_ecdsa_key.pub +ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key +ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key.pub + +[Service] +ExecStart=/usr/bin/ssh-keygen -A +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=ssh.service diff --git a/package/root/etc/udev/rules.d/90-sunxi-disp-permission.rules b/package/root/etc/udev/rules.d/90-sunxi-disp-permission.rules new file mode 100644 index 00000000..e5704a4b --- /dev/null +++ b/package/root/etc/udev/rules.d/90-sunxi-disp-permission.rules @@ -0,0 +1,4 @@ +KERNEL=="disp", MODE="0770", GROUP="video" +KERNEL=="cedar_dev", MODE="0770", GROUP="video" +KERNEL=="ion", MODE="0770", GROUP="video" +KERNEL=="mali", MODE="0770", GROUP="video" diff --git a/simpleimage/platform-scripts/install_mate_desktop.sh b/package/root/usr/local/sbin/install_mate_desktop.sh similarity index 100% rename from simpleimage/platform-scripts/install_mate_desktop.sh rename to package/root/usr/local/sbin/install_mate_desktop.sh diff --git a/simpleimage/platform-scripts/mplayer-play.sh b/package/root/usr/local/sbin/mplayer-play.sh similarity index 100% rename from simpleimage/platform-scripts/mplayer-play.sh rename to package/root/usr/local/sbin/mplayer-play.sh diff --git a/simpleimage/platform-scripts/pine64_corekeeper.sh b/package/root/usr/local/sbin/pine64_corekeeper.sh similarity index 100% rename from simpleimage/platform-scripts/pine64_corekeeper.sh rename to package/root/usr/local/sbin/pine64_corekeeper.sh diff --git a/simpleimage/platform-scripts/pine64_eth0-mackeeper.sh b/package/root/usr/local/sbin/pine64_eth0-mackeeper.sh similarity index 100% rename from simpleimage/platform-scripts/pine64_eth0-mackeeper.sh rename to package/root/usr/local/sbin/pine64_eth0-mackeeper.sh diff --git a/simpleimage/platform-scripts/pine64_fix_whatever.sh b/package/root/usr/local/sbin/pine64_fix_whatever.sh similarity index 100% rename from simpleimage/platform-scripts/pine64_fix_whatever.sh rename to package/root/usr/local/sbin/pine64_fix_whatever.sh diff --git a/simpleimage/platform-scripts/pine64_health.sh b/package/root/usr/local/sbin/pine64_health.sh similarity index 100% rename from simpleimage/platform-scripts/pine64_health.sh rename to package/root/usr/local/sbin/pine64_health.sh diff --git a/simpleimage/platform-scripts/pine64_tune_network.sh b/package/root/usr/local/sbin/pine64_tune_network.sh similarity index 100% rename from simpleimage/platform-scripts/pine64_tune_network.sh rename to package/root/usr/local/sbin/pine64_tune_network.sh diff --git a/simpleimage/platform-scripts/pine64_update_kernel.sh b/package/root/usr/local/sbin/pine64_update_kernel.sh similarity index 98% rename from simpleimage/platform-scripts/pine64_update_kernel.sh rename to package/root/usr/local/sbin/pine64_update_kernel.sh index 1d81bb45..d831c19a 100755 --- a/simpleimage/platform-scripts/pine64_update_kernel.sh +++ b/package/root/usr/local/sbin/pine64_update_kernel.sh @@ -36,7 +36,7 @@ if [ -n "$VARIANT" ]; then echo "Using Kernel variant: $VARIANT" fi -URL="https://github.com/ayufan-pine64/linux-build/releases/download/$1/linux-pine64-$1.tar.xz" +URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/linux-pine64-$VERSION.tar.xz" # URL="https://www.stdin.xyz/downloads/people/longsleep/pine64-images/linux/linux-pine64$VARIANT-$VERSION.tar.xz" # PUBKEY="https://www.stdin.xyz/downloads/people/longsleep/longsleep.asc" CURRENTFILE="/var/lib/misc/pine64_update_kernel.status" diff --git a/simpleimage/platform-scripts/pine64_update_model.sh b/package/root/usr/local/sbin/pine64_update_package.sh similarity index 90% rename from simpleimage/platform-scripts/pine64_update_model.sh rename to package/root/usr/local/sbin/pine64_update_package.sh index 1212afe4..28091762 100755 --- a/simpleimage/platform-scripts/pine64_update_model.sh +++ b/package/root/usr/local/sbin/pine64_update_package.sh @@ -15,8 +15,8 @@ if [ -z "$1" ]; then fi DEVICE="/dev/mmcblk0" -URL="https://github.com/ayufan-pine64/linux-build/releases/download/$1/linux-model-$(cat /etc/pine_model)-$1.deb" -CURRENTFILE="/var/lib/misc/pine64_update_model.status" +URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/linux-pine64-package-$(cat /etc/pine64_model)-$VERSION.deb" +CURRENTFILE="/var/lib/misc/pine64_update_package.status" if [ "$(id -u)" -ne "0" ]; then echo "This script requires root." diff --git a/simpleimage/platform-scripts/pine64_update_uboot.sh b/package/root/usr/local/sbin/pine64_update_uboot.sh similarity index 97% rename from simpleimage/platform-scripts/pine64_update_uboot.sh rename to package/root/usr/local/sbin/pine64_update_uboot.sh index 3efc6199..cee52160 100755 --- a/simpleimage/platform-scripts/pine64_update_uboot.sh +++ b/package/root/usr/local/sbin/pine64_update_uboot.sh @@ -15,7 +15,7 @@ if [ -z "$1" ]; then fi DEVICE="/dev/mmcblk0" -URL="https://github.com/ayufan-pine64/linux-build/releases/download/$1/simple-image-$(cat /etc/pine_model)-$1.tar.xz" +URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/simple-image-$(cat /etc/pine64_model)-$VERSION.tar.xz" # URL="https://www.stdin.xyz/downloads/people/longsleep/pine64-images/simpleimage-pine64-$VERSION.img.xz" # PUBKEY="https://www.stdin.xyz/downloads/people/longsleep/longsleep.asc" CURRENTFILE="/var/lib/misc/pine64_update_uboot.status" diff --git a/simpleimage/platform-scripts/pinebook_enable_headphones.sh b/package/root/usr/local/sbin/pinebook_enable_headphones.sh similarity index 100% rename from simpleimage/platform-scripts/pinebook_enable_headphones.sh rename to package/root/usr/local/sbin/pinebook_enable_headphones.sh diff --git a/simpleimage/platform-scripts/pinebook_enable_uart.sh b/package/root/usr/local/sbin/pinebook_enable_uart.sh similarity index 100% rename from simpleimage/platform-scripts/pinebook_enable_uart.sh rename to package/root/usr/local/sbin/pinebook_enable_uart.sh diff --git a/simpleimage/platform-scripts/resize_rootfs.sh b/package/root/usr/local/sbin/resize_rootfs.sh similarity index 100% rename from simpleimage/platform-scripts/resize_rootfs.sh rename to package/root/usr/local/sbin/resize_rootfs.sh diff --git a/blobs/asound.state.pine64 b/package/root/var/lib/alsa/asound.state.pine64 similarity index 100% rename from blobs/asound.state.pine64 rename to package/root/var/lib/alsa/asound.state.pine64 diff --git a/blobs/asound.state.pinebook b/package/root/var/lib/alsa/asound.state.pinebook similarity index 93% rename from blobs/asound.state.pinebook rename to package/root/var/lib/alsa/asound.state.pinebook index 39e859ea..2c8a1389 100644 --- a/blobs/asound.state.pinebook +++ b/package/root/var/lib/alsa/asound.state.pinebook @@ -236,7 +236,7 @@ state.audiocodec { control.16 { iface MIXER name 'headphone volume' - value 0 + value 30 comment { access 'read write' type INTEGER @@ -1296,7 +1296,7 @@ state.audiocodec { control.112 { iface MIXER name 'Headphone Switch' - value false + value true comment { access 'read write' type BOOLEAN diff --git a/package/scripts/postinst.deb b/package/scripts/postinst.deb new file mode 100755 index 00000000..23ea9c0a --- /dev/null +++ b/package/scripts/postinst.deb @@ -0,0 +1,20 @@ +#!/bin/sh +set -e + +case "$1" in + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + configure) + if [ ! -e /var/lib/alsa/asound.state ] && [ -e /etc/pine64_model ]; then + cp /var/lib/alsa/asound.state.$(cat /etc/pine64_model) /var/lib/alsa/asound.state + fi + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/package/scripts/prerm.deb b/package/scripts/prerm.deb new file mode 100755 index 00000000..1a248525 --- /dev/null +++ b/package/scripts/prerm.deb @@ -0,0 +1 @@ +#!/bin/sh diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 9053c885..0e4b28f9 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -13,15 +13,17 @@ set -e BUILD="../build" DEST="$1" LINUX="$2" -DISTRO="$3" -BOOT="$4" +PACKAGEDEB="$3" +DISTRO="$4" +BOOT="$5" +MODEL="$6" if [[ -z "$MODEL" ]]; then MODEL="pine64" fi if [ -z "$DEST" -o -z "$LINUX" ]; then - echo "Usage: $0 [distro] []" + echo "Usage: $0 [distro] [] [model]" exit 1 fi @@ -157,96 +159,6 @@ do_chroot() { chroot "$DEST" umount /proc } -add_platform_scripts() { - # Install platform scripts - mkdir -p "$DEST/usr/local/sbin" - cp -av ./platform-scripts/* "$DEST/usr/local/sbin" - chown root.root "$DEST/usr/local/sbin/"* - chmod 755 "$DEST/usr/local/sbin/"* -} - -add_mackeeper_service() { - cat > "$DEST/etc/systemd/system/eth0-mackeeper.service" < "$DEST/etc/systemd/system/pinebook-headphones.service" < "$DEST/etc/systemd/system/cpu-corekeeper.service" < "$DEST/etc/systemd/system/ssh-keygen.service" < "$DEST/etc/udev/rules.d/90-sunxi-disp-permission.rules" < "$DEST/etc/modules-load.d/pine64-wifi.conf" < "$DEST/etc/modprobe.d/blacklist-pine64.conf" <> "$DEST/etc/network/interfaces" < "$DEST/etc/modules-load.d/pine64-disp.conf" < "$DEST/etc/modules-load.d/pinebook-hall.conf" < "$DEST/second-phase" < "$DEST/etc/hostname" < "$DEST/etc/pine_model" < "$DEST/etc/pine64_model" < "$DEST/etc/hosts" < Date: Sun, 30 Apr 2017 22:30:28 +0200 Subject: [PATCH 031/168] Remove unneeded add_platform_scripts --- simpleimage/make_rootfs.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 0e4b28f9..6ab0a9c3 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -269,7 +269,6 @@ EOF cp $PACKAGEDEB $DEST/package.deb do_chroot dpkg -i "package.deb" do_chroot rm "package.deb" - add_platform_scripts do_chroot /usr/local/sbin/install_mate_desktop.sh do_chroot systemctl set-default graphical.target do_chroot systemctl enable eth0-mackeeper From 3e595c0eb8ce5a0e2d553f7b6a901f9fbb293a1e Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 1 May 2017 00:31:52 +0200 Subject: [PATCH 032/168] Due to how GitHub works, always unconditionally upgrade --- .../usr/local/sbin/pine64_update_kernel.sh | 32 ------------------- .../usr/local/sbin/pine64_update_package.sh | 17 ++-------- .../usr/local/sbin/pine64_update_uboot.sh | 13 -------- 3 files changed, 2 insertions(+), 60 deletions(-) diff --git a/package/root/usr/local/sbin/pine64_update_kernel.sh b/package/root/usr/local/sbin/pine64_update_kernel.sh index d831c19a..8703ee47 100755 --- a/package/root/usr/local/sbin/pine64_update_kernel.sh +++ b/package/root/usr/local/sbin/pine64_update_kernel.sh @@ -19,23 +19,6 @@ if [ -z "$1" ]; then echo "Using latest release: $VERSION." fi -VARIANTFILE="/var/lib/misc/pine64_update_kernel.variant" -VARIANT="" -if [ -e "$VARIANTFILE" ]; then - VARIANT=$(cat $VARIANTFILE) -fi - -if [ -n "$2" ]; then - VARIANT="$2" - if [ "$VARIANT" = "default" ]; then - VARIANT="" - fi -fi - -if [ -n "$VARIANT" ]; then - echo "Using Kernel variant: $VARIANT" -fi - URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/linux-pine64-$VERSION.tar.xz" # URL="https://www.stdin.xyz/downloads/people/longsleep/pine64-images/linux/linux-pine64$VARIANT-$VERSION.tar.xz" # PUBKEY="https://www.stdin.xyz/downloads/people/longsleep/longsleep.asc" @@ -55,20 +38,6 @@ if [ -e "${CURRENTFILE}" ]; then CURRENT=$(cat $CURRENTFILE) fi -echo "Checking for update ..." -ETAG=$(curl -f -I -H "If-None-Match: \"${CURRENT}\"" -s "${URL}"|grep ETag|awk -F'"' '{print $2}') - -if [ -z "$ETAG" ]; then - echo "Version $VERSION$VARIANT not found." - exit 1 -fi - -ETAG="$ETAG$VARIANT" -if [ "$ETAG" = "$CURRENT" ]; then - echo "You are already on $VERSION version - abort." - exit 0 -fi - FILENAME=$TEMP/$(basename ${URL}) downloadAndApply() { @@ -126,5 +95,4 @@ else echo "Mark only." fi echo "$ETAG" > "$CURRENTFILE" -echo "$VARIANT" > "$VARIANTFILE" sync diff --git a/package/root/usr/local/sbin/pine64_update_package.sh b/package/root/usr/local/sbin/pine64_update_package.sh index 28091762..b2aa5efd 100755 --- a/package/root/usr/local/sbin/pine64_update_package.sh +++ b/package/root/usr/local/sbin/pine64_update_package.sh @@ -15,8 +15,7 @@ if [ -z "$1" ]; then fi DEVICE="/dev/mmcblk0" -URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/linux-pine64-package-$(cat /etc/pine64_model)-$VERSION.deb" -CURRENTFILE="/var/lib/misc/pine64_update_package.status" +URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/linux-pine64-package-$VERSION.deb" if [ "$(id -u)" -ne "0" ]; then echo "This script requires root." @@ -38,18 +37,6 @@ if [ -e "${CURRENTFILE}" ]; then fi echo "Checking for update ..." -ETAG=$(curl -L -f -I -H "If-None-Match: \"${CURRENT}\"" -s "${URL}"|grep ETag|awk -F'"' '{print $2}') - -if [ -z "$ETAG" ]; then - echo "Version $VERSION not found." - exit 1 -fi - -if [ "$ETAG" = "$CURRENT" ]; then - echo "You are already on $VERSION version - abort." - exit 0 -fi - FILENAME=$TEMP/$(basename ${URL}) if [ -z "$MARK_ONLY" ]; then @@ -57,7 +44,7 @@ if [ -z "$MARK_ONLY" ]; then curl -L "${URL}" -f --progress-bar --output "${FILENAME}" echo "Installing model package ..." - dpkg -i "${FILENAME}" + sudo dpkg -i "${FILENAME}" echo "Done - you should reboot now." else diff --git a/package/root/usr/local/sbin/pine64_update_uboot.sh b/package/root/usr/local/sbin/pine64_update_uboot.sh index cee52160..b217fbf1 100755 --- a/package/root/usr/local/sbin/pine64_update_uboot.sh +++ b/package/root/usr/local/sbin/pine64_update_uboot.sh @@ -39,19 +39,6 @@ if [ -e "${CURRENTFILE}" ]; then CURRENT=$(cat $CURRENTFILE) fi -echo "Checking for update ..." -ETAG=$(curl -f -I -H "If-None-Match: \"${CURRENT}\"" -s "${URL}"|grep ETag|awk -F'"' '{print $2}') - -if [ -z "$ETAG" ]; then - echo "Version $VERSION not found." - exit 1 -fi - -if [ "$ETAG" = "$CURRENT" ]; then - echo "You are already on $VERSION version - abort." - exit 0 -fi - FILENAME=$TEMP/$(basename ${URL}) downloadAndApply() { From 008a7f7d65a8adc5027356bde5784a8379cd01c1 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 1 May 2017 00:38:20 +0200 Subject: [PATCH 033/168] Fix uboot updating --- Makefile | 2 +- package/root/usr/local/sbin/pine64_update_uboot.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 29040b7e..28fd6dbd 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -export RELEASE_NAME ?= dev +export RELEASE_NAME ?= 0.1~dev export RELEASE ?= 1 export LINUX_BRANCH ?= my-hacks-1.2 export BOOT_TOOLS_BRANCH ?= master diff --git a/package/root/usr/local/sbin/pine64_update_uboot.sh b/package/root/usr/local/sbin/pine64_update_uboot.sh index b217fbf1..647d6c8f 100755 --- a/package/root/usr/local/sbin/pine64_update_uboot.sh +++ b/package/root/usr/local/sbin/pine64_update_uboot.sh @@ -15,7 +15,7 @@ if [ -z "$1" ]; then fi DEVICE="/dev/mmcblk0" -URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/simple-image-$(cat /etc/pine64_model)-$VERSION.tar.xz" +URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/simple-image-$(cat /etc/pine64_model)-$VERSION.img.xz" # URL="https://www.stdin.xyz/downloads/people/longsleep/pine64-images/simpleimage-pine64-$VERSION.img.xz" # PUBKEY="https://www.stdin.xyz/downloads/people/longsleep/longsleep.asc" CURRENTFILE="/var/lib/misc/pine64_update_uboot.status" From 16a9cd80fdd673f2bdaadf74b54569ff70509eb5 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 1 May 2017 17:39:43 +0200 Subject: [PATCH 034/168] Add bluetooth support for linux-package --- Makefile | 11 +++++++++-- .../root/etc/modprobe.d/blacklist-pine64.conf | 1 - package/root/etc/modules-load.d/pine64-bt.conf | 2 ++ .../etc/systemd/system/rtk-hciattach.service | 8 ++++++++ package/root/lib/firmware/rtlbt/rtl8703a_config | Bin 0 -> 64 bytes package/root/lib/firmware/rtlbt/rtl8703a_fw | Bin 0 -> 19600 bytes package/root/lib/firmware/rtlbt/rtl8703b_config | Bin 0 -> 63 bytes package/root/lib/firmware/rtlbt/rtl8703b_fw | Bin 0 -> 22416 bytes package/root/lib/firmware/rtlbt/rtl8723a_config | Bin 0 -> 51 bytes package/root/lib/firmware/rtlbt/rtl8723a_fw | Bin 0 -> 24372 bytes .../root/lib/firmware/rtlbt/rtl8723b_VQ0_config | Bin 0 -> 75 bytes package/root/lib/firmware/rtlbt/rtl8723b_VQ0_fw | Bin 0 -> 46236 bytes package/root/lib/firmware/rtlbt/rtl8723b_config | Bin 0 -> 68 bytes .../lib/firmware/rtlbt/rtl8723b_config_2Ant_S0 | Bin 0 -> 59 bytes package/root/lib/firmware/rtlbt/rtl8723b_fw | Bin 0 -> 46236 bytes .../root/lib/firmware/rtlbt/rtl8723cs_cg_config | Bin 0 -> 63 bytes package/root/lib/firmware/rtlbt/rtl8723cs_cg_fw | Bin 0 -> 18876 bytes .../root/lib/firmware/rtlbt/rtl8723cs_vf_config | Bin 0 -> 63 bytes package/root/lib/firmware/rtlbt/rtl8723cs_vf_fw | Bin 0 -> 18876 bytes .../root/lib/firmware/rtlbt/rtl8723cs_xx_config | Bin 0 -> 63 bytes package/root/lib/firmware/rtlbt/rtl8723cs_xx_fw | Bin 0 -> 24020 bytes package/scripts/postinst.deb | 3 +++ 22 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 package/root/etc/modules-load.d/pine64-bt.conf create mode 100644 package/root/etc/systemd/system/rtk-hciattach.service create mode 100755 package/root/lib/firmware/rtlbt/rtl8703a_config create mode 100755 package/root/lib/firmware/rtlbt/rtl8703a_fw create mode 100755 package/root/lib/firmware/rtlbt/rtl8703b_config create mode 100755 package/root/lib/firmware/rtlbt/rtl8703b_fw create mode 100755 package/root/lib/firmware/rtlbt/rtl8723a_config create mode 100755 package/root/lib/firmware/rtlbt/rtl8723a_fw create mode 100755 package/root/lib/firmware/rtlbt/rtl8723b_VQ0_config create mode 100755 package/root/lib/firmware/rtlbt/rtl8723b_VQ0_fw create mode 100755 package/root/lib/firmware/rtlbt/rtl8723b_config create mode 100755 package/root/lib/firmware/rtlbt/rtl8723b_config_2Ant_S0 create mode 100755 package/root/lib/firmware/rtlbt/rtl8723b_fw create mode 100755 package/root/lib/firmware/rtlbt/rtl8723cs_cg_config create mode 100755 package/root/lib/firmware/rtlbt/rtl8723cs_cg_fw create mode 100755 package/root/lib/firmware/rtlbt/rtl8723cs_vf_config create mode 100755 package/root/lib/firmware/rtlbt/rtl8723cs_vf_fw create mode 100755 package/root/lib/firmware/rtlbt/rtl8723cs_xx_config create mode 100755 package/root/lib/firmware/rtlbt/rtl8723cs_xx_fw diff --git a/Makefile b/Makefile index 28fd6dbd..5959d25d 100644 --- a/Makefile +++ b/Makefile @@ -46,7 +46,13 @@ linux-pine64-$(RELEASE_NAME).tar: linux/arch/arm64/boot/Image boot-tools kernel/ cd kernel && \ bash ./make_kernel_tarball.sh $(shell readlink -f "$@") -linux-pine64-package-$(RELEASE_NAME).deb: package +package/rtk_bt/.git: + git clone --single-branch --depth=1 https://github.com/NextThingCo/rtl8723ds_bt package/rtk_bt + +package/rtk_bt/rtk_hciattach/rtk_hciattach: package/rtk_bt/.git + make -C package/rtk_bt/rtk_hciattach CC="ccache aarch64-linux-gnu-gcc" + +linux-pine64-package-$(RELEASE_NAME).deb: package package/rtk_bt/rtk_hciattach/rtk_hciattach fpm -s dir -t deb -n linux-pine64-package -v $(RELEASE_NAME) \ -p $@ \ --deb-priority optional --category admin \ @@ -60,7 +66,8 @@ linux-pine64-package-$(RELEASE_NAME).deb: package --license "MIT" \ --vendor "Kamil Trzciński" \ -a arm64 \ - package/root/=/ + package/root/=/ \ + package/rtk_bt/rtk_hciattach/rtk_hciattach=/usr/local/sbin/rtk_hciattach %.tar.xz: %.tar pxz -f -3 $< diff --git a/package/root/etc/modprobe.d/blacklist-pine64.conf b/package/root/etc/modprobe.d/blacklist-pine64.conf index 51ac6f0c..e69de29b 100644 --- a/package/root/etc/modprobe.d/blacklist-pine64.conf +++ b/package/root/etc/modprobe.d/blacklist-pine64.conf @@ -1 +0,0 @@ -blacklist 8723bs_vq0 diff --git a/package/root/etc/modules-load.d/pine64-bt.conf b/package/root/etc/modules-load.d/pine64-bt.conf new file mode 100644 index 00000000..0b41ecfc --- /dev/null +++ b/package/root/etc/modules-load.d/pine64-bt.conf @@ -0,0 +1,2 @@ +8723bs_vq0 +hci_uart diff --git a/package/root/etc/systemd/system/rtk-hciattach.service b/package/root/etc/systemd/system/rtk-hciattach.service new file mode 100644 index 00000000..5b938aca --- /dev/null +++ b/package/root/etc/systemd/system/rtk-hciattach.service @@ -0,0 +1,8 @@ +[Unit] +Description=Realtek H5 bluetooth support + +[Service] +ExecStart=/usr/local/sbin/rtk_hciattach -n -s 115200 /dev/ttyS1 rtk_h5 + +[Install] +WantedBy=multi-user.target diff --git a/package/root/lib/firmware/rtlbt/rtl8703a_config b/package/root/lib/firmware/rtlbt/rtl8703a_config new file mode 100755 index 0000000000000000000000000000000000000000..2c53f8f050d24c0e15e3c7c79f920d58cfe8f780 GIT binary patch literal 64 zcmWGtt=w+KV8g)1z`(F-_n9vY%!~{SKNy(U1=JZBpYt#XFg9#u3pn~p@}cy{_3?~L Rxc@OQGCXEvWCf}R0RT7&5Oe?l literal 0 HcmV?d00001 diff --git a/package/root/lib/firmware/rtlbt/rtl8703a_fw b/package/root/lib/firmware/rtlbt/rtl8703a_fw new file mode 100755 index 0000000000000000000000000000000000000000..59cfbdd40a599c7fac4eddbe47d6a484328f948a GIT binary patch literal 19600 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 literal 0 HcmV?d00001 diff --git a/package/root/lib/firmware/rtlbt/rtl8723a_config b/package/root/lib/firmware/rtlbt/rtl8723a_config new file mode 100755 index 0000000000000000000000000000000000000000..69e4ef5c38b249284982cc8e14b8767923a8fd99 GIT binary patch literal 51 zcmWGtt=z85@P&bck%57MHGqMEhe3d`fq^05=qt&G(tp>-GcMs)XJAbJ$H2%K&B(&d H&CLY>JdO*j literal 0 HcmV?d00001 diff --git a/package/root/lib/firmware/rtlbt/rtl8723a_fw b/package/root/lib/firmware/rtlbt/rtl8723a_fw new file mode 100755 index 0000000000000000000000000000000000000000..2a3746cd904dd11d2a19433411c6695372150ddb GIT binary patch literal 24372 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 literal 0 HcmV?d00001 diff --git a/package/root/lib/firmware/rtlbt/rtl8723b_VQ0_fw b/package/root/lib/firmware/rtlbt/rtl8723b_VQ0_fw new file mode 100755 index 0000000000000000000000000000000000000000..d29f16403376f54fb8714e879174c0920627e945 GIT binary patch literal 46236 zcmce<3w%`7y)VA@yl3*5JxL%F2rx_%gd|{00$3l%4TSfEB2|lsc27dwVP;PP0j<_r zw}4e^u#gAAfIY(`D28BhCZO%D=L`v29su;q*~}9Z{EZ0Ws$kab2r@Pk8y0 zPYgYuL>#}%&mZIYV_)p~6yi_$V$Y`$f7%y&{si%y>!Tb`@17qdgR>5h!8r#kS4|Ew zxZps^U<%#~56rx*$9vHMZqSJL0|)$(#hY~z#_0@+LBv0C`kY?Le9r{_qysVjBu&$& zh^G|!she}Sf_6GgzWSsP=ZPIKYU#iMUMdT_g-9=2&od|Q9 zOp*=Z%?4Il*l3dOM|c2X+uN-4(~%}g-@!_!@E+XDN~=eiq!->~r4poP{yQrj(VC=> z{ue9dBfTE)Y`mXnVWr=VFiBUDCK)E_FFROiDc+y^Sn1Drb7=E8>Ppj@q>59l^a;w2 zI?GC5nN8BZR+Pbe+67k9q3(Ui-;DQZ)EU;8q&v>xcf6;4h_>;bc$}5C(mn)OsTlP= zdW4lKk^U6JK9}{_nr?}={@9EpufBEeje|a@E+XHO8fCXi0{%+j=}o@ zykGBRrSW(_|7(1QIWl9uGZ7{usJy+`$2hrWF{t!e`nbczEoAp3CME9m|LQjvy569vq)7&(_FQP$-j04~@|bzGLDQ16cG?rP>FCCuX+=0S zn)ZQl(AF5VrnYihP4XGxPSJ9-pGoMs&YFZ0l6;1uPBEC2Ye1UC7dk7yRS_YGDXolC zfgMf1lQ7>6Q?ZZ7nxti|Gg|%I`J&RZ(d%Ozw$O7|jH`%4Z$EgBah7#Xn?>uJwx9bz z?iuEXIG*0~;Cc7Ze=C%4I<_UAfhd-*|LPSY>>&KX{5uuM*?orrbb=VkEbJEg&uo!We9(C*1Ze~rkq zci!n$;9ZX2YC4Hya>xDWq}C!|=~-!TT^DABt^;O;I0}%*w?xI>`PgsQ_+oNxZ83R3 z%}ev+sT}#M`Ws(ez*kvvePi&8e^BZgE2sQ}Yr1I8KdvoB{$^d*@PArTE0_HFP`ipH zA7BU4GZ49gvyJ^s0Q1ZUEJ7N>c!Yd}sKYj33)}j`!5^L{*W8oIwU){6^&dM&u1WIf zu#=oA{hPxn;g`=_`oy3Xx1)W!HY?ltR8Z|p3C=yM_LZNEwY5%Vl2*K8l3xBCaK-!6 zc@H)#Fmpz$!Pn8kIBflzi8y~PVvx?K%1RvE{`e^&6||2_?=eYq=XMAEml9Ebf?R)Z zIs zAGsOSzjB9R3F3Zc{>lUR)?tY}=1)Y;Kl3DI(VCv@l<2q4+R#(jotDT?J1vptI*C)? zq}!<7Fhd|;s>`o5n4}n9VaDlZYHqWq@8;Z0O_qH)YI?#mCabB9wyaW*$bD3(Y{SSM zi$mV2xkSMB(EqguWdX?dd$Cvc0=i#79A1yggAy>#`X zBG)#?W(%QrhjcPrVuo&YTHB7D+9rCdp1U7wM@W<*gc;3{z47*EV3ds>;^ZP_oujgS zZ4GU2hn4x3$WJ`Xd^|hv##$_Kr!6ts$#Oa}OJuU2)=OLzH~Ha#Vtjv>-_m)9cU9Z! zLxn!RMVE(}_n5MlHNVij^4uh!o@G`U>@-h1l$YyU8#3|9Y&O1q(vy;R8y#0ma@GsY z%bH#1fHOU!z)nbJEsQ05-0GSlVvB%Pp&w0bB0L;T^qVa zljwPLW2QKU(0Thyxw?$?5yybYeP;A&U3C21XT*`@n|F1%_)1th3>bu!5QF3j0UXkJ zm1sc)c*dVpWA>H6X;|Ew7K8{Pd;e6PRF-%&;mF!xZ=z+z4=&>bU=d2C(>cWN%1@8!@F zu6cUl^uqR_Ev(FDMO#>rO&s^IS=iBv<@v!(Yqs~kDy})pDZsPH?=7onb{-QG_N{<5jr#hoDK17*Q~AoK&qk zsvYVN=Ptcy@hcs=dWK~jTvt+4;>HB*Uv2qIcbg;~?)wtJkj>{*(o)3T2(1XwsF5tD zX_TQbBAwo_TXk8(y>5AS+GDem%eYKlcV`ODDT~=kwXVTPS*yaK3M8X{$zCnyNF`b^ zN3>UThBN^MtHMpJZz2wQ+DXN&_c86qebbHPT6t<&%2CsinXMROWqV(1YjU96%dIh0 zkwxyv2p(sC`JH_{*0Vj7a&hKqe`L-!RgH#Etx@qCgmhPzkihmve!tBzkYJZ0wzpL1 zohFz5Vlmrq%dXzcs%+ER4T0(H34s~yy1=^j1z!CbeUIc(E@fx}ie)}#jF=mIvC?jnv2LT0rJD^`7*G4QPL;*1;{-~PHF zMSgZrD9M;F?R-{nN7fvCamFY)-yL}z`D2mqjz|ZMb>z~c`^cro_Dy6H>U0gsjjDj5 zNnfY#IU=kTXx}#EX#z}@v3|6*OE@FMXTcaS)=80X-r6m!5r}!_{fep$g2h~sqmtnW zx%9w6tk9*0_F2qiJgH!+QkzmXnl{V=j5d_7z!{`4bMdCw-l6AF=PhYg)M)Gkr-GQr z-uZ!`WQiFhLq+Vw(Q_Mzal^b^#O@J`O3$vtJy(l!K=;ru3UFfk7W54p|J;1X{HKD+ zfa%N6ENas(Nwg=v!);Sr6FP{w<@dOy_faZN9ivf(;IVF&Nv20$y7wkc62ITlywltG zc4qnagCeM_Ifu)H{E$jW%Od6@si@8TOEdPNxi*i+*JhB4*M$|WbK1p=w_mhfv>aeq zt~+)^#rG_|cjI-Ny&1mp;5fS(XV~m}H8eI)(U!hv6r0{Leddht2)o~dJzPCw){MS1 z`^@uMVUzv&?fiDB*cA?kdoQOg)$=oYlf25(jc17YQen979pTLQq1NQ{5s9)ArN6Eq zJh(IK#jhz2f;@Wv$Klp2z~T~5au2Cg=His^|0z4;outzxEezm7d(dUwAOJF%cLepv zb@lqj`PPya;1)U9yXKRZaE~ufV5e@&CcF@!wV{R7uB6t$=Xpa<2w04SFJmgVY ztyp0-YJUf<9`0kRn7KGZ7Yz@8WGBv%SjiFWNMDwibQaLNE5ny`mK%DS<#_CwF2`ff z;c`5FGrwq0t_OZJ1m76I7A;^4-E*~oVFiOKdB4*8gwn0ckgqE>N%;sY-OCF>6ChrR zcqZQQwKeYMHruD`WZW%D#xRnAyCtz}F6)*v;%-5|msDdknX04GW@6r*`HpaNm)t zmF2hMC&YnTfa~RTq=eR=?T!4rg;~vF?tj~&5Zl8E*;>(CR2!-lH;1xO!gWq;(LQpQ zJ%*DTmYlZBy#Vwa>7|gfH!=$=pJOLx&F?k{2GpDGLtWcaf~9BI?i}Wwdya3T{Q>R> zSgXlWULiHfc5{TdbbzqJHeDX#HEKI^g~+!sAcc%885Vcnf-BMfb2TREtGjTIhka){1%)K!SQbcuQ9(qA#=mNSr%w?rHc%L_=Z(1+r0(j8sVTPOoVX|X zUOvltCgt`<-gZYF3Y#rVs))J#`NU)N*Ti~L?)tNgi|Zn0vvy}c{ob6LP``F3on0BD zt6*7rpNzs?q7L*%7Pu9-OU_>(gS$jAbeH%eKLP(p3?^G?FB0suzv!E5aVSylGp%QB zo34(ThtbyK#Dxrx=#H(mo0`~-M(i!Uyti&$n^y20=sg^R>HOeqP}rbhaCRm0mV6>I zj+<*k&({u|r?1M5WywdAj=buPI?oF#LHzP1Pj@Kc*g=or8SCNP>YkT7FmE2iG1ZCB zYjpOXcMunMB?YsQQ>6V^+caCa!mg32yxvG+w&Z?x&&Kmo>*uQtc7wP%`0SpP@W%7K zmvt_8H{(iUf3jymG5uZZvh}~%&$!ydiTSkLsvG5Y_Pe_exIEn-vdOOZg3gYV{ypc; zZZF&Z!FFl;?G@*?Z`?ZrmnD_H;9{qckjh4T=2L5=e4v2!&!BG`B47kp?qmU?*ap> zLcUHefBR7W?gjqtQ8~1RJUOScUHzDf_qRW{VD18z)jwvmr^@Lu*Af@#*rLb$?Mgm+ zg)C68W3HI-t>hlFcjJZqzY%|SQ|{JFAt8nuCp7Pk~b!8ppaTuz8L$6!sPZjCaDDQw-w=c zfXNhg(|wojm$)AqP_=8CdLX_w5eO_cE$^pesHUzFcbR&exo zN+W{LQ`ln-_}`vVm!z6-qW9NPS9aC7kNLK#bzIxnz@2#J;m*w|vIK^!=y}d5%C53D zSj^cu6B;#3asqkv*$&H~i6@m2A?w&aV4KolzDFAT&=XzB@$ADo{taQHkaxmjo;yDO z3D4xGvgcJdYZ*byQ-356_w-a$tCg#V^>t( z){v1sw%$@F*Et{D!BA~*)fsCzoxeN8OgP^cb+TbGJhtcVAWhM@r6(D8(QJ<BlLZHdAQU*w$ZYwWkAKZgcN-Fz)bsJ zgymmYA`f_?HTT(-0ugf?-|Ed-gz-9}RkneJLM}Uh&zbEySGeCgQKx-a;_U?+93~^Jf)u)F|S_D;w*ut z=?eDP$M#~)`mz^)XjkUvZb)PqQ86Dmq3lPt+H*Ikva=n9^<39Hc0z+9Kf7`K@tjS6 z0X5;C-Mc-z<9*@axeXEjO!pho;Dt{2pbGrFc7#HNr#f@${vs%a=jJ^)ucYvPl$$fV zx9zsN)7{2gYs0w4qXNMllsZ1|SYEyB%w4gyaj<>1zMT3b@9V{8o5S@o$ItAeCsb4*cPr5tv2{T?(N>& zJGeHfeL;9a{-h46{ncPj?nKZQOwA~JKKM8@a`U{F!G&$$Qq|mRr)?`L$NL6E_fC2T zr~+btQa`;@#eP*?taY+)0y~~!-TQLbVcwBG%9+o|jrCd~jKIyQ0LBCg`UW0l10EH< zKFT#9bERzkv>ssSD1iXJm>#g|CLWmy9tDM21>kq*BT!y{Ap#*^MHf#nNdv&A2*ys~ z7T-D^*h-8GXo&#-uF>0dH{=CcpJaYx5_cH$H3ZM@#C%iv0j-;Uuf0)L^EYMV;A-Hew7ra%}2q8(B|hdE_yJOjGDKjR+X(wsnlGpH)a@3Wk9D(yw-~J=*+~M&=0> z*3va{M8i0f#;VSGCdlOBWM2d(vmEOx-gdV3Vn)LYr?Wx~FPx_36+C-vIJ@5GzEr!p zHZ&t7oKf0ec}F-s^EBHy|Lkus%J=w1X6}0zQ!eJ5S?jf3G}Y5yE5y}>?#WT77;K+h z+E4EZx?61hhWeGKO+9MX)X3I7c;0k;=4su-e*)G$`>v74Fbnn7=av<@&aC)^ZKUNF zh^9vR?Htk8pK+Y#j0~jKr{oQnf3=C}@_U{r_(p>I&&2NJoVI>fzpZ~bTkiYm{HM0C zvfM*w9S&}VO=MhZ)+T~7XNNc9jrvGMdgHvISd4#0#FWP5iK)O|6YOdAKkzO;v+=E<&>H9*D&`XNC>3s48B4wV{$uECMuQS~>KyPrG(D|_+T(;mRd9Vc8B5g# zQtHO!rq(l%ZVao#`iT@nC1$#Y7VsDr`m@>lAJ*8-bj;|}x-I$PVfD0JjH*Dnov95e zSVuPJ{)a(*+*+;*H6&#(6Qc7gi-vWqJO{e+R2tsgsnibFIqoxaV+y#L zZ=K;g$25)JI7)_Jtc*uf`X(BUDnaAuG8JSmJ-0mYX>karUJU#u8}!Tr2$Zg&{F6AX z`IyW*X23hPg_e4`HdO#m&#T~DJ<`GLj|Z~+b#@83gla1w8}NQ9GQz5=qfkx^f4@)c zBZXYy4E$GR6LV*?I-sumKK8>CTNGk#$e2YICGo_3bOfoG4-QPZhr*%JxQ8jXxx7>7 zNQ9&eJP|#qP{iX}ic7`vZ%-wnWhj1C4gUI2yugI==uKi!kFRY=6{F|0rj;IWRIbrq z)YbwzzU7p5!c9N)<=K>t0ywlt4MXY7)Q!S7z#WJ=`QIKB#{y*8vwSHRD^9=i8o&9~(8N4Ix@{>cV%BXk z2NImBW0^knF>_r?y+YImG@x#0Yy;kMNnfP{Bww&?*_E_veW3I;Lx8`uXj=lFKiHNS zu)PNE=;q|Wj2*_n9P~H2fDOoa4Pd8X$$op-eqoX}z8mA? z#Oc$L_5+YhOXhnEq;@51G5@dPIJc2h#LtzcDqBbc-*9q~TF3+sn3%_(R;i=Ts-QBL z+s8Ok*_%?N1aC^H^sGD5ypsc$L2aET(;M!{lEaV+%QC7M&$@MLjQ{y{c|w`tsQyT_ zG8^^&pt!w{sZsHY#TvT;{lYHrJ#^T@(vwh#o~7)5Xa~-KlS;}AOCCCq0-1{Hm_khQ zeeJ3k)K@7Zq*^_Maz8bPlu!{xc{kM2bG}{!jkwn?s zq3_`0+P>%2@8dl)aN_LNsenC?4giX8>mG74p8;|^orZTR&FV1}~_*A>5fraWlk8OPk; zTOu67{5O~X=PPfvzj^3Q4gK~Q15RCJGpYFYT#7i?R3G3R^a1*C?&+CVAkaCc{0++M z9ff(aAkcZ5h#454OT<>J`1k9<$E+D^pWqeS0F@q@&Ex454^swAEMlwEZj86 zg`|dJ^A!=JEDK3-&>gQ05c8j}kcvDu!)tFI51uIx9;;l}s~p!3j7 zYtjVpyW@q32K6Q5=8Dy*8>*3*pKYRJrI?&z zd1cKwJ_EI9<;s%RYP0X5Dd7QT!LsVF2Be))7x)(86gx1DPsm zAkIXJ52H>-Ok|_j)p{#%W6x;BG&sMCTn%XaI5r!vGYq{Es=q?(rn)0kQ-z*D^h}IV z3Z#OTjqiDmN|%>Mo%um=;9l#$c!|q>QiJ`X?IC94WYq~x-CcX!C-3sA>$MH;X3nkJ zG^-G0gV3fa$`36Fsq%__?k!BI`?DgSyG08w>4+>2&-A=pUvG=f84jgn<@!{h{P-=J z9PWBq5ja*M^qw7$ovg~uhBTC!&qD^9<7J-YJMXX~XAo2aR!5&}9nu6)4QT>ct)snU zYj5OU4?O|eo=o5BowEwH4a+9)Iiu{?@M(LPD*p%Rd&uYZGgN9vN3X46oeW<#J*&66 zmp>I-mDnkudxOG&4#-&TtAsJj0eUXz+R<|$;Z5fkJZ*z(PmRq99Y1m8en&rMe56<4oej}yqN$E)S>FpDM9de)hBTKi6!P!oIZZezfji+_i2d)~O&=xoeNn&Oj zsWcxOVW^Z}uIY85rj>=J=%W3^{F@?`O6676^Cx549;AZG*C}6v%G;^j9dyEd zRK^~SK8L6usvt`80Mc>UHLI;6e!?1`%~V*@B5(hY>yxjgDmq z70t`fX_i2~QKdUEj!Isubssa!f8zTozFD>f^Pj5?=mTl&kG*BhYf=7j1VR1=vYRUH z2|d07+!n##3+Pe12x+dkn^YMBmdJzd;nt=dF`XNxip8oU&o67$09XI!t|au*8T#>o zq&mBgRB>I8K||$9H&b2p<=ERd?@+0ej~P$UuMik$+JYR`4=A`P9ysl zVaKn5Wr~~o7sWXEk=I)_;28c!ISG!397Dia&m_l3g!VgL0t#V-~AZu0v63&l)zIIL@uiW`d8_lJx1P3!xO zo6Z$$nTvnrUe{dF+}&@vM5_MK z&pi5`;5s*E@0bqvhf*sS>Go6=NyYvtFBKn|;-0*IpnWo5#24)vU>vT2blhz>f_LHo zIhpR=E%;ADT0Kc2#-#C77Eg6!D2%4EO%f$hsxL$NXeBrwvk>kJ5$6j&1 z62?k*Za#!BI_a-3dRMl+*g?l#a|rVG`R$N4@!c8rC)$*GYe3WLt&I4*SL%G;OQ2!# zJZ^Ud`y8}Ze};L6M)x7AH~yfkLH>+y+LmWJ6uI0MHOp^_abi<~T=$cx#b|xP$M1BW z@n4@&R26idq1+ZFbc`713c1E=)L89RH7mgvWh_i3^tlIL@bHjI)AK`?yUsB`cuHWz zS3`_7TUg@V)+{w|Jm1><&bjRfnx*dv%oCf1mgeC-Ymom2^4`29-xAsD8P-E}o^T30 zX~&5xC1At8NbMO_p|pao_ApCkVwToHPM(v`L0&!y@^UWnf@gT++u=;ae(tFXoAG|p zGYmPYh`r=VMJySympy5S>GO4VE;7%P((o!y?%f#kBGkgm8QvFXa*@Y7@3%qMr1ixarQrCyE^v|Uoo|-RES0vukGRk&%$z&l z-SRBrFLlPaLR>_JmCr(OAiUKHUT<5nPdZGT&^+$u4~=XZu`vVmTe7UzM|G0vzT^<- z-lTfU1hSs^9=!|cIG!rgZ%0Z5Y3qH?XjN^3cJg{6S`k)t7ol8{pb>2mE1ac&jt7T-&`OA zq{2uJG704SEu0Et}hg;woN=|6tHH*$9S%Du0Csk)uJ^wLcCABVHV z<^CfxKMD-a@JP^J$U1Ou-=57~(%B#fbUqapd@13T=M?PY9Sob5UFI1LO}nzzeXaCd z`=_`D_*U0Id20eY2BUer^@AJv%aAX$l52dCYe41Hu?Jf#TWNWPQ-PD$B|Pt0QB>Z^ z0?yWk?49oB7!-Jn9S=HTO)=wGQw*twb1wE>ZD$p3Z|pm)$2x=;5PpvEBEm}uFC+W{ z;T354-;46AJMU(*Rw?XRVliu4HPybYd5x@rmTC1s53Lv)9AmCicnysa&>N-woTd5|}OMO7CUTne8Q=v7Jo$N@LiO zt1{95HO1Y~aRel-RIq@QmF_`}%$wXTFxcxVG2Q#M>)fT$Roe#Bs@3wY)f_pMF4N@L zTk3MQV_rH`DGAk)dEgb;5fFw@TZL1QAyQb#1LhR~MkZpfQ8>8->0<0PstZDCq5|Z{ zb!m*pxpoz}QtBF`{WRoSF?jwQ?%L<}C`4Dk`{d8OboTwt&w8m;0lYWN$JktM2f3nw z6d~I^!>v=(8^U6~D|w@!v05SuwZ+`5+bAUGuJo?-Q3-*5NJ2oRl~$Q+v{6{@?Hw$K z{&gO&aM(iQv-lm%l@WkaS$P%jFrt5O?mqwEoPFh9Xms!62kZ7poy5HLEv2Y*@PpjG z$AG!0u}-x?JunhrHeJ#V%4PlCq7MXP{o~M$`61RsQIleSh{7nyB)A=xD?0E76wXCh zH=5GRsqf3F=v5XoFvD$=X?oWgev7JS9;8wlz#Wyi4m5ry8@+0($+pjSKki=Z<_cZG z3Ov7dxq{2^UN@LhGqa0HO_#AhGM^x_CVl_3#;<|9auy6En8mo#V)!+om95Sm= zKzC4063;kq_eQJu&Pg4+L2+Lyg#8fi`;Ec`nP0V0p!2RoPj8b)l>q%Sq_KPGxIy(T zifb(JD95ZyvX6pBEVD{)M+&9f570T1OMy>gY`{G2AJUNo4M25>=>13tu~3^AifdAN z43)i5IORg1JOe6!v4J*_9Q7)OwmxS()2zk>9#+-aaK7Rws#W^1Kex-kM;q6Q^?fG;S8 zK+{)|o}XK`d7oTrskP7x3oOs00(e55v`ww`arbk0j|Bu2gR}g(z*3%(e_!26>rmtO zvGTXG{Ex@m!aR<)TD;RdO4mH-!2xfqNd=c94RV*QZxPXAzJC&_NRn%2L^0^Un(4Bb zr%amVSF*INS$>Rr>N-vh7(_WQ+~yeHWya>S*AoDXMu6)weX}kwZL>a5B6Bbe0cbVI z)T6GP&NJOFbk6C1xLQ7}EbVCO5#oFo=j&Z)z)+ol@l^`v9;Em9_H^vs%WYW?ilpp~ zj*fTR_3~&K=dRF?yLqQOQr5kDPw#fBDH0ATs{2Fy2T`Z}qxN^*Z>ms6=h_wGe^0H) zrhg~~dn51f*I3{1NjoX$33VQB@w%Zk54okd4RFGQx-lE#`rw~!wZU%?xUQ|f*S+_- z$QDa;omUB-Qd%|FY&xbn!Upshe-p;f)@hG|zjRH3xzq;~g^K{S4LwWnOz4?j3@w}< zqi73T3zK@L7t)zpdo5!D#V~+v$Tvt-WNeAS^}#<~8-o_1&0$*~G(&Q+J}7mV>TB_& zv72x1Gb+WJ9|T_%+!xMfCT@K0sb*OSXp+vLyMA#Tg8# zvjo&Fpl%gQpEOnG13YnYpV{Ey{Th z6jRL=Itvq^6VFtFmw3zq$lMFd5Y4gSn1`|!4*GYH*kA>-uBXJfi!xVQ7s$iyO`Lhy zuaxt_9j0MeQ`*K<+`tML1mQOZxGysT4W zOwxM@)K+c^LfjTEE)Ph??Acq13%jJ!Dqx3IC0;x{FmWJpfc~P~PF&eTC5{Tn!6{X4 z2M$t4?N;`f6RP9tz*1;pB{nQ8oC|G1{93b^ z@4Y;xl9_MoTUIo^&~@&iLd(vQLS+K<9)D4KmV`)!iDZy!GLw|z`9oqS_lb#N&=#z^ zUQsv?Iy0RDhn+`zqYY^5)Pd*l`-{b#qcj}LJt|~E-+D^sM!^iuDUsa{xmAjamJ zyec`Ckjr|f^;!;q>xF!kEDfRdEvg1O0;-{?>QU8cprPfq-{cU2*CVe3*@NkpbvMEH zt2B40FgjVQVO26ejVnRQ-*zANb8HqB^1d9s7+k-~?L8;0P^7IB$Sw}|{fTb#Sj5oS! zeNfHoFjhr&CZK{D+7f@60t*!LN82%5=9lE>e^BYC`BOa8z_*IqfThTKnJLgCW}GIR zB+N7Rl1Ap86)Q~A_{%Yzv-Ssm8|b;Gcv4(e zMa&;yHWXEye9{<~Q$A@7J&Vf|cdKv~^ZO1D*angdk_Pez=&#D{fVM;Xo>bjx8`S&i zkY2T12XR@Pr6JS7mBK(-_=cHoRE>peBB%Uf!q$e_;hR+PvA%6#t?&v z&}i1$XxYOu)T1Nx<;y0ERAI#MoW^4lA)3s3zdLQ$t0C4 zglv{^Q5>1}W14tpL@Af0(BzIxgGefWHqCh+VK0Fl`KaENU z5swJQ>R5Vu@fg=HiXSR$4?{blQCXGHqdIZ(ci0WUnch)`+^KvlWq=^AsbUuz47Ce@O%9!{qLL;!zS2`=o=Cm zb(;)L+t1y0hj{Vyg@tTl;}L=O$XFfkVXQ~(VRq9wA^*#V3flXwUx?S3RAFpPgx=EK zuw(U4A=kR5d@`^@NEx7Q{N_S(qc~uCEP6hvkzDJYO0J!qdK=1FhU{Ha`oH=z<;$z* z#eO~C)t`jh;`}*71MSE2y@{;pQAoc5Ba+C>M&q3N!6MoF`2YBa4X(I_d$$4V?m3t-lQx_DW}<^uw|NDN~wLE zSt^Nu-6Jf{b9ImzQaQ*Suxui2yqx=_3Dp&vMsGC zI1TMVf6Kzj6wB-m?gB1nVD)t<2TcL+?{8SBO6|n_lUJ!-=+*R?tiJ<%kGO1);$Sfz z+wk4Io3=YvZWkIzZpN7gj1kb%{Au>OAT$h`vvIZ-hp484=W=Eh6G^P5mdpm+Vg#Dj zHzobhl8`Z@n2dEi;6Js2dHuuKS)+5Dg4%Gqz(T(kBQ+tWMJ&xqH7-oBpqnHg`5aV7KtejBAW zwOB`3&mW3msyp~Lc*T@c$L-I7MyuAEBU{TEV3W%2GeB3;HF7O#Q`YEsW6d!8bnrve zH72xfwBD3kWMFkNz~>Ud=Q0oRxl)_h2HhrNo?zK6Nao?Wu!^aRY420reM;X_o{0PB z458l_WPnQcS>Rx@X8*}#ALS2n zTQEkKRNNkvib1^q(>k9+L^`Go(En9o&rx|Tj37IM>0@u!ry^WKM! z#;y84lxH2U8@xhrtW?J>9ae$cs%m8B6p;QydV%{}r19ZPpLnhT>bA})l?KHz~ zmGS`7eLAbXh4N}La)9BQL(3d_wRz{s`1WxU{lj}-miD*D+L#*@>ElNjS69JWXV@_|b$`7!g9zb}%kCiAK zrsI>$%DWg*jr|;h;qkr~GmJcb%;hb8G~$#}y)DUn8}Mi7=gAO12KNE`p)Ebnzg{8zdB$*JC{n8m5S8iXehmLrG=)d-Ix zJcEEz826O?r%q1sO~sCwiYKY0-;zU&bBfm)B8R3Re+nq^DZVN1KvMx!(57N;-^AQv zAM`FiBm3yQQF~81*SdP6_10TV;kXUl`P;Aqsg~sAc?uR^IOsh&4qO0*XmWn-;;!ne z6qk~#H8PH+4Jbi`DDP5;V|-)0WhZaNrB()kM}hCz_cDCnbb@~vVWop#veIu5)CgDm zS?PX+2_aT`{|i>yc7c`FpM$TQ+u;`o-@5T_oIa=X7{5E|T=Lr}|6tc-3RCp(E%XWW zQs|meJD;(yboa;C@`ha?@Mgv89HBe(J@9sQuP0W?cG4~1eRIt#KSfA8{GYQ^b z`YRi8CNr?>n>@;F$o|esCpQX-!093rl0LSW_fJKt{!u}5bmgIE1%<;BnFG60%VpwN zcv$~&qIXTRc9ZI3L!GYa9bnJYmVv^Et*>+mH?8VOMO-F32V;$&4MR^!JHM5wnPR^W zr@k1x`02YPw_pFR!=;`wb;JY{zz+ID^RIH{-MN=4FNOTSC~cZ z5SwXk!Z9wG_;EtLA>f(DwJ^?69ZP_5jKb+isn>uSxm394EHs>(RDlfeJ`Hu6kEyND z^OuxW+pcJ;wb1&c)P)Wfq7>uEIa}UqyJ+k4k57IFJnL=LW04M$pT)3Rhs}B?=<$eo z->v(@0$Ve811r6OK=(M+n~C$2N?=>T)_l)Sb)c7dC|AA6%D0Ze`}SPS_147TBx|Nu zQD7*5SCRtSzO66gokxZIL+=agcTt`%^$|5c2yWvL-?a22TS)IHE27xcBOd^pb!b!` z;R5DnKvD%Z;$FAhy<4`}f9$t$9ZAZSfZhuFMgAPsM&YSs_b+2KcS*bDvJvz!w^dnX z_tZ@8?pFZgzr(e&U+mx3Nz9+2j&GmO+i?o#dLFcrN`qr@-$eOVvA0E6&F1O-nRF~M zFhTaXkW|mq+y!ZlJ2IzjTnBVNT4&vHRA6$JRb?Tysg=neCqPD9^-0LGcmL&#>Xgt& zXVq1z6QlO3Ph{-%M?QR8dt67kaN@o}b=B9dq+@znVrV#;1PhHlwD%6CK_hWoF03KvKRo}b z{?U80szYDWzV$}RTSo4E`a^aMQP|^+?St_U7 z3hoS*Bewx#Tcxp2hYpZre)(?j>Kceye1ufQb&P1AmZ7iz$hMvGXJdE&#@hHQ(KOa{ zFtH{Ht#NJC`cY@s`TUVKSX~mwt{}C!B<6m!6<=3+PQNT4TV^>r=156=dUwfN z{FN~^QY6j3!#l0{n|X>QQY4w@UQ1W6n{F}B&K?FPFR9?PsBS@+y36;E8JuMDqNvfJGZ z-fY!6x9Y?~oTK5Jw8wPEH79=K-Y*ye`s0v{3?!U5yd&|%yuEWTl)%#j6H!;$`jd{& zbW;y6#=tB$8<-9It~u_Mz+BjX&2y&(=DRax3}RSdL}O-s^oe_7ep~wQg6DypGcnHt zg?8$@B>{BEWQy@)?g6ha838{R^i3Q8%4@{jmI-S9l5yW%?1%;m%lDk7{ZC(|wvT88 zHIlbMVA)hTWihW%ZV>dWd6m|l;y}IoMl@Q?U1WnW`bOR9Y!+_a5%qu|u#`)ep%8zm z3Q~8ioxkK7@_vS#PK){Ntc}9hCdRn$p%PI zwmh4G-!kx927b%HZyES41HaL64I>;GM*J3pX$X}FFC*+mIErw21b!cZ-w~!ER3f~L zup0peQ~t}e4juj_jL)0ota|0uKMV{ET)+M&jaFw!NJ=+nWT4;IuM9jsNNAkG&D-5x~-zqJKz*)$g=@!D2;62Mio}Yufc^2}O4ete(Psl>c zhVDfcVt&BF);?q*y^Aem;SvjxmRgAAF_fWoB_k*-yr0g!!eWu%w9Q-p#oDxxL<@`Z z*gW)G{JXUbjdOFWR=6h-^4{8eN5@M1&phKivl`H!H9oR@y6jPQC8Ufi;aOtYq2;iw zSaqn{R}BiN8Z?Zh(;2D)MO_uk8G1qs@Z<`}cwO`mJNAv{cc~b{%`q|{eSTV`?tPXD?v5h^wml|wmL8#$I#P>xW$Q_&cF3vE6QGM zMV||0TtiRH)X6Ge>?zOSKb)_Xz8dc`_@~YBOXgl^v`XfK;J!)b&)^Np4}Y;}UG^7C z+h>M)L3?+T|41s1{DqZf0Z%AFIMry9`r!+w0W=?lpZftX$G*=>eV~;;`VDlpGT{>z z`2E6>!1wWwVCF)Q7AM^*jpyux8}FuqWoLwg1hSuhc*Nnw2EjS?%0^SD-2GI1%$5o3o#ldXaAIiutL14Zk12 z_j~Ym<9+Zy&{zC!g74TlsAv73AfH42^YB|seaSLtw-W7UoJPIq-#Z_G2ZeI?AIA5{ zKLna32Yux*&V6_AJN(ds&Ug=V{X2x?=)=9}CqaKSUM;u{ zTA%%-b|_})v!5gt`6#~~^S&No1J>*)-tQw&kCkyAYqmgjL&N()d4T7+ZQFe!I9||T zP?SL9)|J?A8&Kphb8LOBTohg`TSA88BOpUn1;zurac|T17#fV=km-8XgTF3aQB^&E z#aOLBmH=#_1s)C(>S2M zB6|^1SvLy9PIJLj4b@Y%wHVm67?8wCuO@)HiJGRe)>M6DRCt z!9V>2*5+0pzGsmBBLXa*{(-kdrPtEOciw|_YDbvaI@~&^RjNs~KiIkzzStP}5}^J& zf845LA3~0nS{%wbPqiv>ZfWcE+fNbxZ+r#QJr%&2(B8r?{I-wN4X~|!4>WvE-+$eA zD&2DidG-Fe4`K=%=sy4N@Iib9FpApDs32GPM?Q$@_+gLtU-m&veN>;C3cGOdwEoLJ zh@G(Z+|#|Css6d}VlW)mWIuR*{r2_LgE6Gju%r@UHv$Ww6~!`N09wIs2ycd90nwk9 z^X3eublAI~KECkmBGqgARrY^9k5aDoFV6f$9MrUp4moqSuuzINyp0C%37-rvGlM?c&uWPC$ z^UV!U*OPZE;NN=69_Yis=4lahLX(P;s`Snbhco1dmwrF;{ewJ$-A^17VU72XJyegC z?e+fJ-?inRewBt2e)!f-|EDGOa><*1t&iTKQ}uHO=k(9O39wg=ApQyB5d;D}O@$EW zQ~!7Rv`i}cZl9JEH|#;6J}pn;O?_I@e#LQ&k-p~##VsSfR0DYgyep^W`XjSisUPT) zR@L(S;Fw&G+a37>w>xry0~h`XBbLC|ZMHv^rJjMMEuRbSDLzn4#bIFW$7Cq~nPvpi#LT zSj6?TYU=ey1N;Q`!2vS3utj@9cbwV>YXT+Uj4Y3^Rr%1BMbF&^d~Ju2Gz^tR3Lt=S%YL(o)FD;)3_ z_tSANvPtIU7!Ps69=y{cKX1y6>DYDw)>8bO)|Y_$oV6x+{T|C>iM+x4{NUo|?kQ2{ zr)Orp0nMv0^%H9wl0L=1qjMAI-AnDYj=Oz}!_lht0qWVb4?jQ++A@Pr#-~ z*sji-mPZ0CcyH&?j(2^;*!v+1ZG0-BT@~NeFFA>$7lvFEP z?1t_P{f6c$#Q3jcuA70gTb(ZIuL!qV>{m?_O+6&`PNr$GUt33|s7vqm2t%5oz;UU3 z;H4Ve6Sxt?3MD2h_Ge<8%_G$J-P4J26ZAzcS)~v z|C-Qu+up>WBErl`qI&Oh5~>xC#!=k%|At}nft%8vhUeXhstO{0#n4K`4WsmF(%;M(b)%i0je z9c{8&8>LOg$>t?vYC?_nD5HHjQnd)aaXD%?WV$+pUc%_^sh~?YOFf zya>Gg9cA#?JY1$mAv@X>6^GYzZ;##N5o-I{ zq0LTiP}q`tk{hEU&Dqc)wHi0A9bm+i9=$!eX)Qd3(>mu*P{H$5O5lZ#DD1Xcp?^SE zO_j?J&cW>l{~9}3>)6KU@in*WC5&26eJBQHABwms7)J^`sHZfr*(P}FGH#;v4nGF% z6Z5AN)W@UnHJJSvdt!Kf8P7IQ+c`~-%S$!+b=Mg9WYG+bN*x&6nAU(%?fQdldRW1y zZPHJYB3s{D8%*YVBQI{F)~Nby_!Ng+D zZkId49h^OD+B`ojd4%cY(&zi8&F5NZTPs*ogC={eU@^a%1KnPSlYL+K{mjw@{x{O8 zJpO~(GcA!rAAE0~)Mlw$bA42`bck&ute_1lcpAZ zIK1ApDb=x7P@hP^ZJKpf6`&)SJfGVMU35CudTwWItckD5qm{?b9VF%r|Cuf(1#O>F zKOCbSH|=BlKo3$lMqw$vXXoJT%KXqHRMLK%HJ$n?`PN^-xb{!}3dY>`zx`J*C?vo2 zuV9dh@1dO)phqbmfVLgy!E%s6CpwMqJQY+4(DgeF*(vU+77sDgTKOILRb-ZI4lNc^ zLKUas>F+Hj5Av!T+K05RI1cqc;m7~l|A-%ddOH8UAOG=JQiuHbw?MD>@B8srjsKtU zV_+P_c3^3N+^yA;LDCWoi>+kU6-#8vRXn*C$|2<0MVVx-LP4^td|B3mJ z;Pa-+-uy?|p{?2WzMxh)KC-t>Z&Ru5-O$-OJ-s_xW8`o8&C)}Tw*1V^9rDn#zQa%iryX#e zIMQnIMJr+F+r6yuwqR6E-iCk(S z1?{hdJdEU$P>R^!7DNH}MF$NR?|vBk1cwEzjTP4p!P+4W8)}K=R^gh}>c2~xyU6+< zS$9PCm7^%{piGX3y#jiDiiv+3|I>W$I<_9R3oIx81$pN1oans=u&*U=PoFMZu44-+ zuBcSvRNjesoT?q4;8d!N3qWh3!W37q^KtclMrG&?8I|f9VpK|8%6}V%I2EVKv-}2J z%98y8%IB0!p;?UECJ*}m#5*|Y`m?;agb9*#0&kKwAmT6rvv zjRHS!P%;lKAM4}iY5Vc>r0wv|sznbbU!4xoOEQ-{cOTKPXrDpoEmGtxIzAkc3CfcF z&{8Oji{SfI3U6BS>GsndV?cKtD$*Up@LMG4j_>BPWMP3HEk#P)4|2B{aVX9t!0RKX z<25`-de1Z`qw&|*??RvP|B0y<0=eNI$5f;Fr~&@MWMd)w3fWoy>XUux{{Q!xYIHxp zoT+xB>sOt6z=<4a@ZYNFZuUeb!xG}?wGuzA*%O=$jUQNQXd57@**znTg^eAaI&c>D zyX+p$NbA?s**$T|JR~H{NA&lhC8eQdrIjlYr($Z(Z^ZgK1=@RX(vpTvm`^R+x7>|R z0-9~;0FoAbLA_3cjUdgk$@PRWI4Qef z$G+JO(s3R&PjA3>VooNFe!BBFG>5^FO3hQ8D|Qy4eZAsPE)C~-?;ji?DZIDPp-i$h z^DJcvQR?~Td)Nu+9oNIwn(Lk=1R18!qA@w;HQe=XSfCJ5&v?)7e)qH9vJ)<4zKI_` ziYdW70ydJ-KHkn-^@@kW&CQ;7>SG>CGuu4>c3@8T!yU6xRZN|pEjQfFo+SjkiG7ciQ@GcA(A+E=U{dOCo>u$(~rSnmI zJsm$mqy!Q#G|d=~nmG@=&}5J_#`4rt-(-}|FHu8>{6uQ#mH=vK&JC!c^!({vP#;OQ z-Pcg)dVZW4n)8#Gq4F`ab^d1w9kCdNM`IZsMY8%cg|sc5yZ`Tgrl|b;wcJD89rT^j z)BgF~!y^N@hjgAt@c!x9z*CHoxrg+Ot@42uuz2#w*5ApVwAal6N^|v_{mSfh7!8BXTQIgS))OMx8ATXKq(KtN0JaD5VMg^^1qBh8JOxud^%4 z_95#Y$O&=n9AcG5d^F@79b1X{=YBUv(dHpL81H8L#!ImFTw=VZn&Y-YYG_uJ zbCpUn<9)pOx8hhEf;u`BT*XJhRs0V5d13V|i*A3U(d21+-&PY{^-$AkA*Ov$d(;Q) zX<}%TJ&rr0V%G^|730oum5g;A#VF!jL9pU0R@*(HW<~Mbi*}ECEJj5Oot3VyPSAND zz`VfXvUxZ?>~$rN3yY862jA)lWWuCKnaHh}8=saeevj`Bat%eP+XIaKW$X;i=3JzWmone=-_{0p~{`Us# zZ}MbA8_M!3y|UcoWO=fVvN+yUXArD&Q=M9tK112bPI!elk^Q14%c&GU^Ljodt7XaJ z_u|-@h;+8N(#7M}3U{UF^~|>CcBeR%N#n$=lW}F=Nn5{9R1p7thWTuhV|~{)${58y z4GZe=_*uCNsuejZz4UE*?$gtCT>YrfT=HTgid1an;H?^}4OhUBy2^-|W6?95@ssZF z#QuLVf^S#&7I-VN?X?}tRPV{=NH*%V@QEZ_DAG-Q%P@=Kko#8@9m+E(c9g4(I3AoD zCT71>33B#JYSS@j(VvRBFKamR>YO)$W_O!?xi6K_Fj!pk+I9)6(7R9^wvCH~XB&N& zew*KhJetU4Y(Cbl9MTuKl1G_SXVGnB8YjN!G=5NILe zMCk4Ia3=#Y=bt9_mZZQ2OqSJFVZNYX18MuD+n{@<yrzAJReY8MqoZ5+d?TH5FMMIb#R}rq6Sf^{kJ8bMcU4` zym#66r@uQz?ACw1!Ywzol0K#4BK$1yreJCEBC4ffOgi~`F*_5z%$X{-%sI2m=7}|1 z8`t4~G=E2jq0h!;^Mo2r_t-od-c)T`VDl*Xr>m7~o-p5?sqn_1MG@_5d+6H-ZwRmq z)+BmE&MGYHUHHFM;pNU&xQdK3_sloqT-%dV$D}V1WBxSwj(90NTc&UmJF}Y8Qyz_+ zBes_fC5ME?ZjH)Nmgr^ABzmpTDiT%oS;z zS#9gf6A~=u2|=VYsCAEKI;tfdE4(-zGcTSpo4yKJ-dpwkmhU#B3t7%wW(wbc-1j>2 zZ%})B9kFjzH{{$K)(k24#$g;917xv=^hCwUzJ0CwV_Zog+73hB}1NebN2NaAm ze}Et8!4``G_<^6```kW$;C=c`NMS$34@`k{^HcbNiO`Y-@&n`egYdygfCOY}Ww>#B z8H2 z_Tl%CEi&k6UgTfKEV7S57v0C8i|WUqi?}X>PWDrvc^%y&&24DjnFjqJiz53PG1i<$ z(zTC)R(+21_Cuh|;y=9gJdZ)oc^i0u5AU&g3YtUU7x~bhyWa`Est`x8=?#nCAzFfs z0}=P*X${lB{hQVlNdD{aLN>7u(IpTG3Zyq|qd(}vQN=9jOetuYupa~$ckCPkR`XcQn313TY{qPAg<9xJ3?;E%T7JfX>bsiQt9=fA#aKH7`-wpaK*&*Azf zSe!Nsx$ZPXzDH)JzLx8bo0!`J^7mUQjbRz~wqcnX#9!yS4|L^rk3F)n3oP`vY;Ws4 zv2TIgidoetyt$+?5>=xhi?Qm#Y#7eUtt?K|FQDy|B07=VG8S*SGy>jzwZw=40UA#c zZEWKoiQfZWUnxA~T0n6rLBG?_z9s90SiJXW6fKGdB?N`+hmrUngE9z({QSw*Pw$-G zwWH{kzJ><08zKK>7#gZMu*X1vsfSQ^wP8aGs@qM$*e zerB-m2@E_R`8XR8of#}zy)>|T$^As&G1ualbiAQxQ=ry>CuDKm1S)~V6H3&_1(1aH zV}?W|A*n?U!ZPI>vT+3>Q;D%^8*{tuCsau`?h&jB0?omv`SIz~s6Ehgrt?$3ME#ZD zf2qPX2(5KJ@-!eBdP{8kI?T1DJPq(VLY@X2?&sP(4bkT`VxETR4;4iZH9UfSq&y95 zdkpe4tae^6PXl`{275_)8n7LXUIaUR(c!`EAh^6VSYP!D!+rhlk!o12;3c#0O*uzH zK~@~D5IGv&joW%J+F|TAMd?yp@1wZh0_Wl;8$4eY)el03gvIIAnR)I7I4bO8r9IuV z;eUvEkz41vtA22m&htTi0lsy+dc-W|U$eh85t*mbChVX1&dnz;Zpu7x(Uxh;)J@oUF$6hN$AeC7Xk1^z z?ufXkIUBt#ngbU$UeMel<$;(AZ#!@k3xf<(u%sxM)M$cLCbDOI>I`TZ+v-i8+Pe38#-t)2 zLfyC?1OD%>o7$X~MVP*HKP~RODmO zAnUBXZXC{X&>d_TZBe&_R63FTcGX*l;jFXUP&2WI(3aF>^31`vMRo8J#1*L8OrG2E zeIb6W#qubWoHl6V9pJ{b#3JuPocK-$iFp^)Sg*JvFpn(7hfzEk)yGc!??9pYNMrk8 z)Uh}evUN~w3&prl9X*fo5en7gSFs<}UAYd1U&G12oXixyj=t{oCW(`O1h(jUaPmze zX)K6mt`04~$?Oz+N4@?qY8l==dhJ87IXzVSq%b2rENMD=sfzAh!UJtVSjz2Q)fUW} zN;h`DAv|zY3D5RbN0$nF_V$Xp%MrPzJu)+%X4iV*1+)u^8NW+p#@C3<_y~AkP+y0* zz-Z~eiOBlaxjpHr+Z#H(>uP(~r1H>>y3-7QfZny)Tinv@Eo%8An6rCZY^^b+=&`IT zk6Diem4dt9a`4#xW4w1=3y*jangaw`Hoz13dhGq=yN(JUvkFf%tStDnOvZ8$=qBs! zGwqBgMs3Ta{yNW{Xk3Z;$RgymLsTs&Daw4#ybAXci+(%|o-QkWo-T?t!R9xFXAi8{ zx2YS}`VtK**|b#oZg{=iD?Z2Yq?hB^&j})F$H5hf{kB^tGXROcQ)*NPjK+ z;*dV(0ob|c!PkN0ayf@Uc8D~WR-IZ_XNT24w>vV)(70p20a@Ih%-oS_+I7OMe~ret z6EvQFs)KZs0DUiIl*Y*A2p9QFigM_KEy^U7XiNC>fP4XEpn%%ue1KTBFuS zMhrHBD+d`qx*-Oiff)m&xH6hU5On zmf`Yt`|V`1uLatEF|>nSr-c0%6VaZrjn&3|IY|K)t+bD>OyYp%?Pkkv^Q~jbP7Bhn zGcB|=?i+elFg__mh$q;`_zXTxb0~FtAj8@(e=9Cb7nKFg*5J&Y4irhaEjdUNVq`1%PaK`Cw4Zba8&UoH#SVykQ8JCaw z0D7d&eH83@J_h#KJ&NL#fU{{`Ekf!gT0>_^^Zi0=u`Irg)Jyk)cFl0x_S{>x)VGv| zXlCM>{yrzSi(RbY4X!lIqH`}UYE+C}Y0%*3}LYe)YxDvMi$180!ohQCZY z@OBWz87`rYDNMvnU8Z)A6z3udn2XSSjc-YC3XVZZL(qS)$wiLHq;-y$9LpRghb_}S zaaHF+l3h`!Y}|iM0wK3Ab1d}@CMCw(|3mHG`~b3Nxw{Y-H?JR*tGT&h`O>B8txdVfn%i_j8-@ood; zB#T>{vL1dZy}A3{BMUVAx+j^tg82KfMG>gp_rrT@g#)BT#Bchq9$rA`2k08;K4e`0 z^Ai}_(|$HXJ8$>(7~10e(N~}Q^S;q`uzs44_f73CkoPV79sAkadAlX{_C64*CHD5d z`Wvyg^L7tpZ|ChUu*__ zXeR1G#g?TPLUl58n_43EP!e-n?yta%N3R+QZ6$t#&5j~S+B_i=Ra?|g1-H)&plXL; zEEt1QgF^jmU#=7G&FxHKhbK-?v14>}nXbLBp6J>Gx!SNXOzuzBrtd-485yb%wA)8o zN-~hgqPxO%N+8B{IEamLlf&8RjZ{Bx}=E{oj$biL1?6em+?{Z?{a=##{H1 zwexnjiDd1;X=5f_pR7$aL>|j9PNSC6yOYS;A@Fjn^K#;-s|J-_@^SE!wf$o*`959C z)vmt*SGyc7O7_bllExIsTj?knD3T7zpX&gcwSQ=?gBoNp`0-o^zuGe}*8%m3BohY6 zHzJ2x3l4SEhp_zyaHzu|tuOR(s8xL&>N^8y(>^TZdW~cJ=!##Wxf4YA8nefmojade#yjnehO_m89dNny%BQ3^mjBO zZCV4`^rJsQo2JtepvXQbe~ajX%#K-k*L$2J6+pRhdJiYzfcZiFEtP;oJ6EXJ>X z`TPn%7?tw*v5?kVuSCN7CFS#j=J?cT$n*Q4eU)Zte#-DicsKV$M|KxtH_l@2MDZ}x zugG%HwY=%$#M<`prkBD}6UdvU*cXX69VhapBtfAII6!j@x=K<)+5KUzjQ6)Q)=3g|}ss=1!{>o*zW8=y(U%r_ph@A%hf?#;j8b`Lv3b8mO| zMnqn7m^TC#X-^`vM~Zt6ZUDF4M`kBoM4;SEz9_^pCN?|uQ}P^{#teCGJ#aovb~pw| zKDnL`WZ0jt9mudh{(}tr#a{)|(wV|JeLNS2i@jAPWbYA>eG#p=7J1roDqJhdO|7hX zh;xWIQwlN0p|+}xQ+%_wSXg4wN4CU3Z{=slla(tnVAiA+XH8nnnjj@ZFCq7l6Hsrn z#rtD)q*J8+H*l`wzh?tjUBk?L4SDNjB5T1i@UIoCqs#->NWN4*HW)XgKs@Lz@JDTK)oIzQm<)b)IoyLCDDj9A_?~Y+F|%)ia@Du_jiNybMhQU)MF~R*ZW)KB9HVnNU%JBieOX<*3h=caZc?RO{1Yw1*MLFo0@3y%mxdsMdax z3bEs;Zzf+YSq{qH506CjEZ_>e*49j8o39YrTBcc#6lvC(&|~$dSr7j^Y1aIcDv@TL zGvyFSu+*c$lYTEW;m6>C-Jfh7z_cd)H}#)C#JRESs6#fxksu>R_$eS<*@q*y&N}-HyQ)tE-dp}C zze^}0KXQyJQ^iqbg&joR7L#2C{{8Lts8VG4EFWq%LDvqM#qfLhL1+xyYLz8HhI?xx zj6o$~ut803beKSYan0|<{6VC@C~_(1$tY3h?myoMBi>i(BNtOaq_%<<&+6CCtjC_@ zIi)$HsSGiWhOSkSYirph%-NrP95&b6d(jqDOFGRa`}lGtug6v8_FdKRAH1qTjkVWY z72>Q5wA=g=EWMu}i}R&8?N3lhuPoJ9zQ*Q_M%LjuwHnm*1+}YdP3dZuau?03U4><< ztLN)wGtiFV<3bhzr8lNLh*x?k?=P_cNpBRiNv_of^e=Q=6^Py{c>8LRmj)R!t|Crw zZ<$MD42ETaG-c%X1X|Hjztk&@&zF`bEz_S)6nWq_)C0NIAC4xf_uc06PKoKgfM;rk zsCC>YhV`a%=vU7-{h$|c+fpK z<>?vGplENoKx&t=<7_smXL zf~P;1n|IDn;}br2OeWC!1H0at^gjm%@ZLK z!C&_g!JmQ;JB@RTKcjm{s2s9poOzyTM;oO#p;vy^p)7d7oC~?dN_I5s>#iIhiBEk~ z-GQW)`=@=ogxRH??z!i9j8{+3Sn&gHV$?>iAYXs7b|K7@+Oz= zE(t{PXsRpd_lAnS5r1WFZ7*1z{FOZX4>GGuu%=bV%`|KgkVz78^3jL_SAj@03o|xk zZz-td_YX;`(r-zG?@bKsRMh{sflGcAh5W(dQR?PI+Yb810rDHCcyBe<(|AqHff}r% zaYD9P$>W=8fMsrKfMqVLVG5)zA%#Dm<;;SVmxbImS;%dZh1@n-$ZeB_+%{RrZIgxE zHd&y}X2Fa2KgT=*X>jg1rf71*WJu1F8*atttzv$g$zpyRaV>nMCOcntOm3WfSW(Kf z@oz?sx~0ipAD%kL5vr$AacQRNEc2$iQnih5ON4|^v$$c#w1%`p{6{G`56$JIwGnzb z0}jo}l%*7(uMj`gtmz}lZW9g~R#Jn(x$L~bNm^I_n13{-@ssR!Q<2A}3pTto_`$vc z7Vw+MAGiS}6~+7|YkT|(Ydh&>ZK244v+6Qyi$ysK=IIK|RVW9}JJ?tDqoX+-$$g|t z7iBsulfIww-S9ZqTJU?nO$3(%GV=d6JN}n4tx(wn&KbBjgPzQ@8HHWI^xOq xXT?j`I0e_Je41lazrr;#(5v-kFMjxuMYk}_`Ig)STK7x-dKC(0zUsS&{|CI#b@c!M literal 0 HcmV?d00001 diff --git a/package/root/lib/firmware/rtlbt/rtl8723b_config b/package/root/lib/firmware/rtlbt/rtl8723b_config new file mode 100755 index 0000000000000000000000000000000000000000..ad2bc264d72a56e2be8ea126bdfb20a779af8238 GIT binary patch literal 68 zcmV-K0K5NHt0RX#0Q3L|0RR911yBG03;+-UfRY4I#p)U18~v|e0i+8j00CqE009Bx a0RaHp00BbZ0Rchc0Rd2j00H`80RaKg(N~fWrT?yvXI#Rq&cK-bkAaafnvsQ@ Po15z~BO}Lc21X|UymSs$ literal 0 HcmV?d00001 diff --git a/package/root/lib/firmware/rtlbt/rtl8723b_fw b/package/root/lib/firmware/rtlbt/rtl8723b_fw new file mode 100755 index 0000000000000000000000000000000000000000..d29f16403376f54fb8714e879174c0920627e945 GIT binary patch literal 46236 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 literal 0 HcmV?d00001 diff --git a/package/root/lib/firmware/rtlbt/rtl8723cs_cg_config b/package/root/lib/firmware/rtlbt/rtl8723cs_cg_config new file mode 100755 index 0000000000000000000000000000000000000000..0f507eddc70330b267bff501b1ebb96432b2887e GIT binary patch literal 63 zcmWGtt=w+O@P&bq@f!nEBf~ESCZPr%1_7pqNh|?JUr9cc{<}V&aS69N17k8!4P!JT S3pY16mlFe%W55FjMkfG3=@0b) literal 0 HcmV?d00001 diff --git a/package/root/lib/firmware/rtlbt/rtl8723cs_cg_fw b/package/root/lib/firmware/rtlbt/rtl8723cs_cg_fw new file mode 100755 index 0000000000000000000000000000000000000000..86bdb1c05be5e7d5f6a3df35c18ebf0ee6a1c3e9 GIT binary patch literal 18876 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 literal 0 HcmV?d00001 diff --git a/package/root/lib/firmware/rtlbt/rtl8723cs_vf_config b/package/root/lib/firmware/rtlbt/rtl8723cs_vf_config new file mode 100755 index 0000000000000000000000000000000000000000..0f507eddc70330b267bff501b1ebb96432b2887e GIT binary patch literal 63 zcmWGtt=w+O@P&bq@f!nEBf~ESCZPr%1_7pqNh|?JUr9cc{<}V&aS69N17k8!4P!JT S3pY16mlFe%W55FjMkfG3=@0b) literal 0 HcmV?d00001 diff --git a/package/root/lib/firmware/rtlbt/rtl8723cs_vf_fw b/package/root/lib/firmware/rtlbt/rtl8723cs_vf_fw new file mode 100755 index 0000000000000000000000000000000000000000..86bdb1c05be5e7d5f6a3df35c18ebf0ee6a1c3e9 GIT binary patch literal 18876 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 literal 0 HcmV?d00001 diff --git a/package/root/lib/firmware/rtlbt/rtl8723cs_xx_config b/package/root/lib/firmware/rtlbt/rtl8723cs_xx_config new file mode 100755 index 0000000000000000000000000000000000000000..0f507eddc70330b267bff501b1ebb96432b2887e GIT binary patch literal 63 zcmWGtt=w+O@P&bq@f!nEBf~ESCZPr%1_7pqNh|?JUr9cc{<}V&aS69N17k8!4P!JT S3pY16mlFe%W55FjMkfG3=@0b) literal 0 HcmV?d00001 diff --git a/package/root/lib/firmware/rtlbt/rtl8723cs_xx_fw b/package/root/lib/firmware/rtlbt/rtl8723cs_xx_fw new file mode 100755 index 0000000000000000000000000000000000000000..e29f65282c808523ef538862b573647531ffc13c GIT binary patch literal 24020 zcmcJ%33wCNy*GSD8p*OO+aue6a16+@*^Fty3r({z*oGL8DIsY>2qYtn86%AZF@#Io zkPMJENn=u$u!N9aA)9=OF$qXEP4CmZpDUnE!6e2&wl=N9(rY9cBx9gAx4C+MXSA8L z_j#Z9`<`n*XXZa=U;gKR{@c-_2Aj05p}z5!duf}BFhoU4M|3|pjS$i`0*`^a^mnYK%PYFVYy4f|?S67=dHH61?ZDSszh)1) zuCAXnf|C~zqijW(o5#uFG^6}XE+;>$H_C4^oZO7}=Y*3Rbw>FNz8lkxa%Cps4MzDZ zv0EM^NzF{3?edxZGdwXYpR)=kRRs%XqHzi~bxhanL-BW4T}LsQ0fx zt_HusvC^OI5d9h6zCom)vYlFfs{T|L;1#DDPOUt({EOS%<(OtZ1!n z?K&uw*IkO<9%r`(pC8IzOYG^kKU`)}|ExJthZLA~fVi+7SSG&R7L|zU!b+L!mewAXJmURUnxg4-M+%hLIU=$<-I1{h+#+^GhyooIH9NW@Dh2i+ zmW}7_is*)=>*MKKUq+bN`O_Ngzw|x2?P=S{bxl2KSk94SDg-*$Y!5Fn%51A$^Q5OD zoH9#{GZ9N%PfCXHh~kc93}LiZ)1dy~*TN$C4Y=E?gvyf8^dvMb z34J#SxsuS~BouN*lW^&R6zo{=l;n;iFzP9(FOtBvrzG=W3JZleZJ=xD9!z0v-(U)x z%{Nl>EZj)VzxzgNUHXRY6Ec)qM}8=^zMBTeB-iV=gTt`lMhZ)2-AG~2rW>PE`ELxv zwV@Oasv;@etcs-e?dC`dm;I3xj;jV!xL-Ax+7p`xQ+vffnA$_CVSB6UMrzM(zLDCC zTOz4FdOQ-NuXH}ugQ@wi9!$;umSOXMeAxV}Z=~kG`bKL0w+x&ANx#o zoKH&4|A6Df#W+ub0{^||Dd``nmpX|-Y!cEWA#D;$OG3INlj z%v+Fz#thq4;}#@lY+N$koP-LKkR=HfC87TlJxbI(DOqB25-LeTQ<6|=5}KNXzLSJf zl!8)^!lBe$77nBMg|}0?AvOaknv|kbDcY5yXDJ$&qI)S?n4*s;WGv7V()*#8rbrp|B89v0`m8s|Pe@0Uu#twgO&lAPQntoP(?12{I}RE*1M za+4!8|1zmAId4x$ABPi^X^CXIk(kfHB!ocCGEc~6`b((E{WBF;)_)=-Ql5ohrbSv3PCVsw}|&n8O{XN;B?OHtHO zQ#jR1;yWENu9=7r%V|&C&amWIWHNhXIdYI}3yC7|kcDn|v!`9QemQ8~y(jc4usyqXbfMnDA%9B-7 z_!oc^JSfd?Htn07h@s!aw7L4u@8-Mj{9beQ&hLS5edn#eGyT1H@BIG!j&!r>ua76v zzpl?%u0NaJ1Bsw9x~f5J?k^3NUfU+J8tpk^I?$f>iFRk&?sUsC@rY-e_-?Q}=o%oV z_3fnt8GH2G(=i8HWe(V$Xk&9facU*mv{B8tG6u9#*KJQ_>??)K37kTEt5~tLA8X>I zc{mrl*dUCLe`UMMobUHX?Zr~gfOTLb$1TnjO6-gK$4l9+oc_{&T0&JBbrws8fix~v zs#pqxuC8w<4XG81?H?*X3FTWv+4Q=)E`-&91Vi`Mu>PR`(N#ypQe}Lsq^c|(&?uux zbERqEQei+KFDc>Iod{LXm%Yw`Hq@%TOQ_`UJ?eew7=l(*iwUwNyX zzl_Hx_9I>YsIysF^9E_9lFB$^tNNdq{n)yFt*r0UEopoBGG~D9`-Ch>_f0$SW`ziR z36>75P-2iP*sH}{geZG=)cQyaBg`*n*ywk7(*IBDI9zNGfSaNPvOpLC_X(>d<83j29J zn;~)N8HEg>wlT;oJ$^G+i7S+XH%2N@ku+{7mRc-1Z;n;sCP)v(OH89PqQsR+Kf0B! zK;@8YO$u~3YL2zGP4?v0(hE>OnS5x2 z*o}aWskezV<~H8x9AoE?LvQdqVo$UozfDX%M?4~9zcq?9d|5wxc}-8$-X2hwZWOm2 zPvb`Tgh+i0Glg+{Ag(znw0|HzjpxHBiG6v6D$K6kaWdByZ4C7<6V0YmBl7$k#UFx} zjntS;u94e-k940jG@d~Hv-i~CEGSZRLb16g1=G!>K_zB;SqG8$eNsSW$@I$mGJTt& zUF6>YmOAB%_JCZmHNgLomUYS69!e?$5K$zETu2+BO{&4pQx7DAac&Z)v(v z-IwWA*KNN@O!wX!>OU%8oHTqthNGNJb&sV8KRi_QVj131#8F)$zvx8MsJjVyv&H%k zy3_xOhy-oe1)c0J-|izZt?Vvng?9ONLHmk0Jc$FaKL+nsVs`uXAbwB$xfk$WU+noh z;MaYz=RUyue6i;nfZy=Np8Ems_t9rxc(%JQyu!V&gHpY|@JctcO6L^Hp@j_gg&%a2 zTQvSPpEFQZ-WRUv>I*k?ky}+|%ki}mUk`S@>U$OSyz2V}p1+7cw*lVfqfZ8uNJ;U^ zU;LtD8=l+Z&+UM>chINWK0n|NKiZ|XyTgy6&N_Ejc&~dZdQ;cc6@J{!mu(Gnh4;B- zXqfAuVSYmC)z-k44jR9>tEz(bs4M(BazD|vx#Br5a(9{i8__-j-m-^vI7703lgAl4 z9NOgnamTFIsR1XnsT+JhLN0UoVYfNlgqECvsR46%QCC$N;<}*m){+K3yxhIU`*erk z=fm}YK#l#YeQQu|P5k*Z;HQ1DXA|HiU+lRS@LFH&xehQf{iRn0YVv}HG$4Pc+>-5R z4!$qF7$^061fm0l70ZP6#2JnYIZQuO=72RV5WaC#}iLWBX35h2qk|Fnja33Td2fc|?l;4Gv3 ze<&(r$HARgsjuHxhkNT06b zWH;WUXTc7D`nN$Z{vpzTl#cz1zNaJo2+}LjpT8l#68(0=9)LPczeL_Hgx?@Mi}Bv0 zGRjxgoZN?et%zHQ@3-;(3gdqpb)7_AC$cei*d7WnrZcc9bm4s#@h?yt1Kuy;9l_g; zcm{oV8}ADkdpG*<8faJkkDwn%cpr0JjJgSIFq<&X@1y=6jZuClgOj%-XrP&Y+C%KB zBK|}|f6qg=Zt!My2(9jYEOhk-3lDC3WjQ0g3q5^QY7P=RTV(EM>>4lciRt_oqD?x6 z1DHD+qxYJ_>pUZ=roV}`@vW4@$!}P{ zCp!l&*MqN!y4u0>PnCtPHjcAS z8*%y4K^Z(l`}L@+`+CNAnM;@4G?!M%Wn6O2#@HE-*qLqUJNWNOMx$KI8RZ(hg?2JX zXwNKUh}fM0zB@Lq%>%PV*0%ZD9FY-f#8_OeSMo%izo>2x&0IQ4cx5wrBu{wR^LJ-^ zh%0^3(;mt!{i(;iR4*{nR{yL1U--BAbzV8L%1=wPu*^99tNku~t?`ov9oC4>0eGKl z){u1|6nN|kx#g}Tw^}OSA2@fJ+>${>wp8F`apVl_4dsMhzGCi|0`yx7Ndw!jyjYg{ zmaS5V++dbU12~6ma$U4e8i+1i9Pf9&w?YykoBiL#^98>K&!74y;Q2HEBs^dA=i~X3 ze*vB^`we*h-2XJ5ulQjIbGWTIt^GnoLfDGnLRgKk2H|OhCWN)h2uVY1JX&9KfG@-U z9|d~e!ZsuYNJDK4ITE$g-nR#v0~wte9fo6k+2K$|CtubbstdJ;oT2niy-)tKIhYPh zU3ah!7AfIN>>~z26^)W8A9?tDWs0*kRv}q?9#4Wtr~za(O#xKe|B65Sj2|9&p%E~LAP0q$xn{C*?OH7UUViMC7k zV{r3w1DVjmI8->3Xt@_aL-v*!<-9!D0DbNj z#=-Az52}hdhclqUx~Ym-oV%$u2;s=`Rv}q`jwM5}^Nj(e5Kdjk+Dm~nAH@Y{06aBn zfpzJR%FHyh(YXNK{SD{`=Z)gjkv-Y=>|?;4lkeLZ=|Nx#|B>OC{86TbKj;eROLR}D zg>pZbQ+?}O{jG2ITi-g2=%0;* zrK|c!a>qDW@Juyj{1DFS{$}7j9h>eLc6dm5SFW%QSc6-G!bcjPyHY;X95@`Hc(FWg zU(4`;Z^w)YZ&(MGmoG1GhP;$s)NEfop!MbqbYA?IgLMbzUwZ5$9Tly&d7e@38yclp zUK4yO-#WzJh96AxBA_or4 zlpt4xtRYp6wV!bs2CUaq-_W@>4P~!RKbL{t-ecGGX6%egQb>QkjPr+t14coGl6RqGHpS=j zUqiy0eS_sVP2uRywUPdbI=iA0kEA1~0Sg)2$Z@&6)huj)09Lm`GW@#I*B#_BqBmufyG)y)$daM)QN6n-4PUG&V@1 zrf~jIaUBYbRBRxwrUU)b(iV@)E|rDe}mPd%b<(lb*hC ztEX$m;cI>2w*WuraaX!4&kPW7_J;#3B;a;>8b=;!RV|q#eAkOLZ(G=H4sU9mP#n#bm`jsA1v}tf8 zed-J7^BX+PrVkJwTi3*19_6iS6WW&B$UB6`48*P&imvimHmE(u| z26fK&uibSF^y;sD;dc(Ir!wmpn@Up7H>|39$zNos!Ru8m1W}7e%jZ!+e|nE zY*lGR1&$4Yk-nV3+)E>U^ua}cX`=;70&mfYd>es_3}Kg;`5PcyuE;Ojy? zT^fFdGx8+_%2(-(C+nJX2~eq(jXTB9x(~Jg9l^y#kVs<>L#^KHXT+g_!QSS z->4tG+;nzS4>6s;mq-k>h3D^8VSVwGs8`7Odo3c>!JfZ2uUG8oYE`WkJ44szOu)HE z^=K|b=uGH=+v65=hh*28(DMtJ1!qFhA^M#+NbuB$$%2hycj&d#zrW2$uY^iNRS}wJ z|7rCtg73Yj$q>QHE|`XV-+(#_AHNb(JGw(iU&Wr&IHrcQ=L)b=#iHgy z+Bsb>i`}h>L-!Se%o zr%MBA&~4rwHq{ye>}_t<($jaJ&fAIBm35dptg3bhX~d zQcefbuuSY|1O7BpubjSn4Fem+_YcuEpzxRCZ{CHLPJxe#255x)?q!vkalc1bgytE& z$FzMEs7_}6+n^(qo-D=rAC3M8_+b^H@>hZnCJqjJfE3i3SJo5+ z`?Op}2Qj5tpew{kAN!0HJYwE1rlj*2zBL2iI?xWqJ9@^@+DJn>WUo!tX~hN7-e6is zPSAN-+p*=3w1&-bPp6(ZUjBA0r<7xRSb9Db?%AIS4l^D7`j@@nrM`%@o#wT9(h!%> zx}|WPwoUtxpiS^}x_5*0Bh1Bzz|z>8?VY52tKj#Wo+~Z4X`k!oy!TCO$!-oC~c=Ts9u|E%kwQNJ1Rbf6*j>bQ z_!HvN?5qzkf~Gg2DgV@_!Ksw6gpr0`oHNm=ntX!yc?D(&rSYjbe6gljyw~@pC>(0+ zzQ-p=e%dm+_)GD~TWL~zNb^XpU=Ft*0QHvk4wQH1gtlKHgTI8H=V4*<8y>78?So2G zaSZUkl+J;JZ?guccyUHU#-O~9W)UmMrjyVSBNwpC#;c~-s>+M1`x#-O_}V*+V{^rh ziWMQ)IKf#Ni&O25Qrhbazud}}j-ousx_n#a5|fP?qB(PrvzhkHu_2VH;9XyMRSP>M z(X^x&~m9S4WycdNl(QqHRG&$ zWnR=4v*|vDk+8q8ciH-(wZJFziS|vQvJ{|Ln9Iu?9!OTwVuq*Gk z$%9pg-VJ1w%x`5a^{rGRqbW)2r1Tb{EP#%S2kz54X?_1upSj#{HlwG+%R8VI z@SDSo1}6n<$yJs$=*juXI?esC)SAPE9&?!YFp_zC-Brplj|0d2wUgM3;d$43BXhO3 zmvYN#XED=H7YlEqgsl}NTC0O&Y-)S$w5LU}UoB=kr2edOO;N5TIxp&w0yjocP7hW^ z-`CEXcuksf@w$2#F50+I%-mzxo`G3T!7##YA8VsC0J#PmICZ4c*`G`f}5K+Jgt zR-CZDcb0-ha#(9w>6R6kjZ1 zT@}Ek=R9;p*7#{J)6fo0DO66oIbEele_lyn=cj$sAiYrO$DFS5UOqev7GHCC@o^Tt zy2~;Sy6Ulz*i=m;Y_)D{FsEpYGSYOkCnS3hZ;cWa$Cl7@EqEX0Yj5)}@ETx24zPgV zOHV~@Z}ndGW~S>vB!6{UZ`EF1@2tJ)y)}C&R_J?;d$?^3_?2|5p-UIrD-}60-sb>x zi^JFSf7~AP6em+%bvFXF$MoVIMI7bB=>94MjprlJ`}xQcPqaxT=pfByItsje9ANMzMu7H0okZ2W&CJ-^uszU0d3a^V>MT^Qqq|Fu{b!p34$RJXQJ#a=q^_s> zXS$xk{s)zPkOy2>LF$$Lxn4Kwh)V5&Ow`dHXbz-XnuEDT!~u=kDOwjJ8Mr7)rCX>@ zZ7d)yv{I@PX#9>RC^N-d+J+l};xcV3p$U)mh>>EeNg5J;xig*Ik)EJwV~+@K=x%~0 z^rzsc@HsJcKL8DdPx$;UAGE%d-I(%PNsZk0rZ4)jC5SG z>EB_QN{l?_|DxREctZ-zuoOZbTkJ8T_Gu;KfEkNDY||7$-85OiuGu%CBvu-G$HT17 z_dPlz1POD+>c3r+4@I3h*ZiRz8}G0}Hp?waQ{LG{vI(bX1Ed*+=3s3bG#q1Gy%3>u`eo(8D;5E~>Gd;gefVU+WIM zTHYR9Q|=7xz*{Jf-W*%EqP!ipx-@WU?8B@rO`)ssr@?$u*cyDHqFUUlXzH!OqE6I% za(Ovq$?!8LV^)v^Hjcq+q)vbw3uz>#rwSb)arjL;xEo%G-5Q{n$l_e2K1UP>=^W6p({+3V_-I8?&bYJL zJvola(9PKWle`47T2yjVnZ;gcwGKETm0YQ@4#=i^(?~<1mv{=XPq3m0EWB9weJjO` z@jt7iSoCgyakdAd2*kmF@6Y$9t?Ju1%In@oVzz8mOFe9$}#nYZoePLh*>0Uig;(+sAkKzp*_v(6V$5WT0EaNp3jMVi52A@jPZO_M?l-JX*b`{HRX9V zHfT{D&-wX%e=nhNdYs$*{#K8pZMNsFO7$~Yw%jIzO`+()^f*O-&Z9139Kzs6@E+fT z-a4^&nzLhVgzLvGAA5ETMo=uuLyBE*KOfk%Ukx^qG&omUGL zP44hrw$=l)USC=MZ(SqV(a<6?zs*0FzjO4C=hw0Vaeg&4a#`1HUYPBs97T5T95>hd zpxfA6>(1$&>(1?+=g#Y$@6K0nX+*DSNB+)e(;5MzU3GV0sW<29_=|nvTAXn!aZ1fQ zkkOQ5dkk7WVk)*A5y@b|0mipyH+Js ztes;s?TFPn2er=r>ao{1Rq2XncQ8)(iP;_epQsG<*yk0}t3mw~(=K|t9W2W~cR%(` z{?6jkiCkZJ?g47W7+E5OpM6L3M2=v3E!WAo3ZXNQo*dmvV?nRO&;DT=sL<#gS;hSE zbk4NPY`XFNZQ>Nr4Gn0&;0IT}@3GG(B*$R!{@b)p< z_}5!KKLtj-Ri*|u=C0Gl@gcV(fsJO`@MTltXDi0)6P{uHX_)2T?qHX#~^l=&^_LVJy&ddv3+v|F;#u^^NQ>y zvoOw*gLRZaX<~NtQB!R0Y$>bL4m%HY6<6GEymOKN<1BZEZysoPP1)Q_LL1iql$tY} zgc7xTvT zz&JOx#nZEKxJ*jdDZy7nSCPgEu=_=!Y15pOO+g)df!(Fqc^D@N#ihmlW`$z(g=-<} zG1TJGmSxeE-__x~EWGhVQ1K28R9|I;hZK)O>(!WyW$o85K5L6U4UYpMYA+3N z9eg+E%e1%;{pw=Z?UssH2XM9_KiJi0@8O-V%(L_LYvCj{gM&8DTR* zY#yitZ-8Ef&O(04GO;m^rJ0JpwGTH#`@#o3#B^VX>a*ksC%F%?juinz{Dgy7Z(LTV z?QFw2ldwCX=2fb7-B)MW$dKVp{ROJ~$@rB2Ous8*&+LOEEwu+_%*GE7?r+lC7zgEa zH~RnOppJVKF&L2}M~T^R5V~*wGI9E;jiSnK4$nSLb)n|)<>L!aYcFJYH}8Yb^A6pf zn5_X?4b!WK&x*rsLll2!(eaKm$_bhrg=|I~8NFM)^t==Nn|&%#h?KT$0+%I$_hNAh zXPwJFr{$(x?YeE5jvI<+vo8F|TeFY2GCxr@>3cP{f1!NWk_}?!x%KGjdJnU9gl(^a zPdW`(0(rSz!KC2o_)Ina5r!H3AlVH<*O(A2xKv+Llp zPWM3pw?22bgtaYUnZTV5crY3N#ky zAMc>6Dz~o?f6&2)eXWLI?m6zlBdCSjnR8)O5pg2+#P!>_@7X)@6SK+i%&1Qnbhz8W zoeyjsAcLc=ly@-e&eo=@^EG5 zp2NYvS00AX0>NElXMfHPZfEYUh0|A*)m>#A$3Wk#fF}DuuRTIb_f=~d^Sbbuh)xB*P`sfyJp=IF2uBbS`{ym-c{{%IRpc1eO&tczBfN`1agEaR z1npkv;}6l9W9Bu(SAjpBZ>#e@)25zch0ZM9!btO>ahmTXke}v*qgHWq;r&nx?5LqK zlfBCK!_z!sX2TOk@FNbAVIHMXu#{9Ox;@C2Et<6~cFcXiD=nq+)Y}DZg>3hrlx+G& zC-`T0i}$G^IWmRJs&drw3y%;v>?y^35eI9bXCw2(262LS`xWL9b9jUY-fHkzW2bHH z2M&68*dAZ1pzv#+?+i2pib8`ta;mvgh_oN%!_}U51KA~J)J7@jILLvJP!OjnfpuyM z;5M~IHrdlBN_jr)u$B?fGDBVp*TWaD*pD6V$wA-YDT|TP0GblNwLu!F{|8+Qx(;Os zbShWUUcxa-~b2CO0LwQk_J8$O6z@NW%i zin784_ougrR!~91GbuhU2Wy+q5r7vK$)Z^T<0$sR;?g^-9hQ|7GwlqgQ-E!It{Rz$xa^LUDWfT87In}GCjq!9|QmBJWR%zKfrmNJeSai?f|<^ ze}24}`6=5A4(6b`Nhf53*Qq*8?Up)Q)j=(ERjKyIKt`t0|0GMyf+4t}hr%~bcu?qs z3_p?^(cx|#0dL{J6~vR?>}Beu$%HeIeV$4RRublS-i5N zua)^h--&G^*J}jlFf~2PHxAt4nxC-V%J;D>bEMs(+~>%K|Fi;Ls9#@;l|$;0){+Dwp5md*FNW@q5ZAOt%KDS1YjAGmdS&D*VoQwencs@66%KliCu^ zdt+ts4$ojf>tb=rAz_!0QMr1wHA=+P_Bj9%CsJapF?dSlduX}oI(@fRrCFJd2N z0|ahS9ZZ5YQ=FrC)`9oGAyE2FX*Z=a@8L~p{ZRx;mNpCfdeA5(qKd|-9MImUIr zqDjfd{gT?Ux*({~YMMrGBcA<8y3Tsdu#zVz>!2Z~+qj8$f@bK?yCeAu787Sw+NkgW zymO-B6+^WfM6vgl;+~0ogRLtacwWiD_R7ldBwVTConxpjEusaNn8-!Qiz*C zP62aNeU{qw={Nly5&}GhPdTKR>a!=rnc%)*(Mrx<%ukKBL&$uRXp1x!i)`84uaw{I zSUXu58zvZ;Axyy0&f+1Vd`0V*+e{pbxC|Rk(I9UZ;SU~5l|qa&jms>dUr}l9S5k=5 ztLn2|Z7M~Vb#_#$2g>>8YQ9GAtyZ5+={yr_iBYer5laJC#M0|p+^F>99*i=^PuV^6 z-V4QvYG-LbBZbA-SB*0k-*9f0)4aOwIy|7R$5Lh`Q|36iJ5uH(Qyz4d!k-D}qT`|{ zU4Ia5o&D&=7m3~-XdvijV zE6CT>Cxq(267ym>N?vDbvnR=>xdvGE@jD^u$H;0$YVGN|&7t347s{`vWT z_&M3M%D|o{rhlzwUz1H+V7ZOSwTZeL#A3{Hp`^v^{<()*;7*AAAL!n!c2cW*jgvo3 zzYzOjs)f|=ojl#aqW!=07Pw^7uTc9WmlNIxf9Wk&Zu$MW2fGsUYYk!_y3&EQbUmHd zh`pwA#j(!6uJ~2gVX>;d6aHHBn}Y-Whx>&}o6mOCT`2)B?LX81)KTFWDAniP{ZAch z4vbyW-A_}<=YO%$+UP#fU!vtC0A#V_Z>osV?5KksViUx#;#bSBh? zyVEoWc#J)Dp*dd7&IgYT1SIe&hEO;3sIxof9OFN425(N|_|K=Kg+%S}NQu{uSf%y{ zIxD@h%l$dKM}A$ib0BagRDLW~S6N4SyspZQSZ(s>?$;-SF5QK5Z6GiSdAFja!+}Yi zlaR9=@RUv($A4aeUd!n9IOs*9H@OAffo-^dlJC9im?0GFFYRr9N50ZRUPr9ITd$Al z;6Kmlgx#)9y1w;#`}Ml(eV=oHdP zIl7C3*R9tX`)1KE)?LT?+O5~=zNF=!1NKl%WOv^A+cgPa$mpsO7e;>4e3iI(WsMl; z61@M6--w}jVhAi%ex2seJ(<0RfT1^Y2f^=gERpKs^vH0{uv3lSfN)+jT%#+zRBG&y zO$0kmHeJbp$Agrm+)k&MRUc1DE2P?ccz8P0VzpSo4WmZNxu${-6dm`t)hEPR=si8t zC_Tl^*T&R%80-&yQRt(kCuHS zHV2yn>poumG2_5}In-$m=WF<|N=y57zxd`mch+ zy1Y!hzinyTfxfh9v%mU4e6eEUbg5qoNmu!>|1cls55LW+94@85My03OnlHs)#z&i& zgXcc_2K{>By>HLKijVK?>HSJi*Z*P3AKnx2p0#GF$PK+=81~~ zlf|6C?60J&6NP2slWoVZ-Y=Fk@Zl5hWC{1b!(5469)B@y8Xf%yVq*MNhfBCABJ_Kg z?`!K9zq;~{IQ~j3Pa+53Hkva&o`#(oU3FY!<{BlgF^`K}{zhE(-UIJ3S5W_Zv%liQ zRqqWi_xN9bKSR34ILI{JwAZM+<68~arRsL`)(lRDozFQD5#`t zDl+8s=Il^I9#Khp_|MF`P3>)2tEv7d<}0o1g=TE~2=EpL@D_BB(ESqAWixi2ujaJw z2z>uOgTB=C>r9^B^!+TQi>CWZI6(Qv!&QbnAv}qKqUaCf6ALpgF z8w|mWB9_hS%swWYWP`SsddQLAHlAWRa6qO_S*uPB_iyV$-L!tH!>4T~_Hm*;^ZuC* z@Q1-^Yok)BZMkRC+A+f9Cs=_inz+^|9O6pWrU_Hly2DyZBSFtNSjcd9!e!td_H`Z7 zaf^IikjEDJHl4;@81A@7?bzg5Q(mw9wqA1(zqlv4_Z4tOYgM))$;MTz&9~KhO9Rha zYP@R49C{0LnDqcQM9AI0&J<43o7k0g1l%}m3=Oz%wzk&B?6bhy(Ht0UQQ=v!B+WKX z@kNEV8EA}-%UhBrBw|#cHg)~vmZkhV*iR$5sgN!4>w8V5KDF(6>E+{?E2-`hr1#@7 zx$Vv^{?sMeM`Zh~DRp^J=jE}B`O^`~<0kBo7MM_$WNcsf;OQs zoc-1O7JEzcRlaQ1#pb|fk!oV;j??xsQh{&tY21#5)}g>hP8ayhr?opaizY4~7O#Z8 zOAGCJ4lw0?T|KNk6z6eAkfp!DL3e}(=gv!QvT0N{ZVGzqJlc{NuaN->WA5?c^G^NL z=$zBJPwWf2PpF)bkmVM^`{H#^S9k+{6Vr+N%0CAD1b!!zdbATr9f#An68`~{;Mu@PQl=EJu0J2dE-AJ(D|qIGR^D8O%@iq;cegy>58t!+QlsC z)aN8dQ%3^>STTVE<1O$G^NcHrX(*vjPWo8qDEe?Ce5{SbVhu`c7GmL73hbi#$jy+? zw%wij{Q|o7-vKWCvwH%{{_7bT*NhfIt4aM#csJw7gYO8mI;K&jF9fLfXn|cLEe>Yl z%=qmMy^9GOR@0jddfZtccD)aLTU-l?y@azvgR_I`p{8Me=-q^kcg6O5Y|Pp5_VSeW z$Un4)J&E=f2h$Ymk``?wPMG0!E<>HPzR~a{84WEQ^?{jS!7nmE@7WwE#7xd=lZW^+ z`DPV--9}q@#WN=AY!BoDwko#c+gK6s&ag0AgYIs&NH*nibgg3Zkn&xkz9dwKOWUVD zGH$#Rv@3R3#x|7SG}>0($~3_n6jl%+Qtg2!5_sB$$N9H6;#Vpj!kg8wuBx&{$Kh>e z5*i;q{wzmz)tR;`=$jKbpe^B{wceuW5nDw3cE*rqotpl7>bj}0dCX~x!e51$>`sGo z8Aq)hR?ia_+;maAbEH6pVpm&Ee@(S`7PxaMM1Nx=`D?0@Q~9R9rb=(9Ko2I4vA%t1 zGWx-+E3u7Ne7VPWP;YM7OHY}h#XRQ893Q(=qybkU1%~F+doBwx2L1&7wGU?izg!TY zH$rKwJMQ^hXr<=`!4K8qmpC1+PAkphE>ZbG-%IS&&-kGeg&ZyM&>bZTBkEx#REZL%4~to;7Pm29 z3Gr{hPVvWCN-rKd{-&sgwRX{o@1r*cjmA|~ZVs_F8}|(r38Q8h=5y4vpkfNPsV9C zS)oPL7lH@IPxMU$HRs<@L(>9TU(pthlT;4eTR263S2=Mv*Mhsbb?_~nSYM1ap=UTf zvlG83FbQ$jqFv16!pG_ zefeGz>G81BaN0Xn_V)hnz%-F9DXh7>Kj&)uRe0n%sXo#80egh59u+7PysOKf?t}H^d=+JcFJp3o=-2^%(^xkzge95wixwV|k+cllM z^5gr-PssxaGs&0B%;f1W3rWH6Cy=bHiRAL#lMs-%IGau&0$GoLY#x=_Oblj@WSLQ! znI_O%^U-J_A%5grXhe-UrM8nX$_mhPf%|d*S)0l~ILm_#Yn?Q8BiR9&%CLvhxqvKQHr9;clBx;nUb*vzX zI`WFl2S*k~qvHu_`oHN*qW|A1dT6#_nK3=9=t*sj<^Q!+6n&_y-~VmDwDeCmVaDC} z)XrPd*w}dU=B?WrZJI89lxg&6jQ8eELLPezz_7orVeqUN%+NogZ{2jchLC%gENvT> R<^K~HO=HMI>^J}NzX8zdd$<4q literal 0 HcmV?d00001 diff --git a/package/scripts/postinst.deb b/package/scripts/postinst.deb index 23ea9c0a..6d92457e 100755 --- a/package/scripts/postinst.deb +++ b/package/scripts/postinst.deb @@ -9,6 +9,9 @@ case "$1" in if [ ! -e /var/lib/alsa/asound.state ] && [ -e /etc/pine64_model ]; then cp /var/lib/alsa/asound.state.$(cat /etc/pine64_model) /var/lib/alsa/asound.state fi + + systemctl enable rtk-hciattach + systemctl start rtk-hciattach ;; *) From ea9dde5cfee68b1d70db89cb9716a1453de52302 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 1 May 2017 17:48:44 +0200 Subject: [PATCH 035/168] Install chromium-browser --- simpleimage/make_rootfs.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 6ab0a9c3..0e32d73c 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -270,6 +270,7 @@ EOF do_chroot dpkg -i "package.deb" do_chroot rm "package.deb" do_chroot /usr/local/sbin/install_mate_desktop.sh + do_chroot apt-get install -y chromium-browser do_chroot systemctl set-default graphical.target do_chroot systemctl enable eth0-mackeeper do_chroot systemctl enable cpu-corekeeper From 49fda5158eef979df6c066140f08accac3cfbae0 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 1 May 2017 17:54:56 +0200 Subject: [PATCH 036/168] Revert "Install chromium-browser" This reverts commit ea9dde5cfee68b1d70db89cb9716a1453de52302. --- simpleimage/make_rootfs.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 0e32d73c..6ab0a9c3 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -270,7 +270,6 @@ EOF do_chroot dpkg -i "package.deb" do_chroot rm "package.deb" do_chroot /usr/local/sbin/install_mate_desktop.sh - do_chroot apt-get install -y chromium-browser do_chroot systemctl set-default graphical.target do_chroot systemctl enable eth0-mackeeper do_chroot systemctl enable cpu-corekeeper From 18a1f697e92bf63b63f897502e351467603bae2a Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 1 May 2017 18:58:48 +0200 Subject: [PATCH 037/168] Add pine64_install_to_emmc.sh --- .../usr/local/sbin/pine64_install_to_emmc.sh | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100755 package/root/usr/local/sbin/pine64_install_to_emmc.sh diff --git a/package/root/usr/local/sbin/pine64_install_to_emmc.sh b/package/root/usr/local/sbin/pine64_install_to_emmc.sh new file mode 100755 index 00000000..3ace91d7 --- /dev/null +++ b/package/root/usr/local/sbin/pine64_install_to_emmc.sh @@ -0,0 +1,117 @@ +#!/bin/bash + +set -eo pipefail + +if [[ "$(id -u)" -ne "0" ]]; then + echo "This script requires root." + exit 1 +fi + +echo "Pine A64/Pinebook release installer!" +echo "(C) 2017. Kamil Trzciński (https://ayufan.eu)." +echo "" + +usage() { + echo "Usage:" + echo "$ $0 [version]" + echo "" + echo "Systems:" + echo " - ubuntu-xenial (https://github.com/ayufan-pine64/linux-build/releases)" + echo " - android-7.0 (https://github.com/ayufan-pine64/android-7.0/releases)" + echo " - android-7.1 (https://github.com/ayufan-pine64/android-7.0/releases)" + echo "" + echo "Version:" + echo " - latest will be used if version is not defined" + exit 1 +} + +if [[ $# -ne 1 ]] && [[ $# -ne 2 ]]; then + usage +fi + +if [[ ! -d /sys/devices/soc.0/1c10000.sdmmc/mmc_host/mmc1 ]]; then + echo "You should boot from SD card" + exit 1 +fi + +if [[ ! -e /dev/mmcblk1 ]]; then + echo "You should boot from SD card" + exit 1 +fi + +case "$1" in + ubuntu-xenial) + REPO="ayufan-pine64/linux-build" + PREFIX="xenial-$(cat /etc/pine64_model)-bspkernel-" + SUFFIX="-[0-9]*.img.xz" + ARCHIVER="xz -d" + ;; + + android-7.0|android-7.1) + REPO="ayufan-pine64/$1" + if [[ "$(cat /etc/pine64_model)" -eq "pinebook" ]]; then + PREFIX="$1-pine-a64-pinebook-v" + else + PREFIX="$1-pine-a64-v" + fi + SUFFIX="-r[0-9]*.img.gz" + ARCHIVER="gzip -d" + ;; + + *) + echo "Unknown system: $1" + echo "" + usage + ;; +esac + +VERSION="$2" + +if [[ -z "$VERSION" ]]; then + VERSION=$(curl -f -sS https://api.github.com/repos/$REPO/releases/latest | jq -r ".tag_name") + if [ -z "$VERSION" ]; then + echo "Latest release was not for $1." + echo "Please go to: https://github.com/$REPO/releases/latest" + exit 1 + fi + + echo "Using latest release: $VERSION from https://github.com/$REPO/releases." +fi + +NAME="$PREFIX$VERSION$SUFFIX" +NAME_SAFE="${NAME//./\\.}" +VERSION_SAFE="${VERSION//./\\.}" + +echo "Looking for download URL..." +DOWNLOAD_URL=$(curl -f -sS https://api.github.com/repos/$REPO/releases | \ + jq -r ".[].assets | .[].browser_download_url" | \ + ( grep -o "https://github\.com/$REPO/releases/download/$VERSION_SAFE/$NAME_SAFE" || true)) + +if [[ -z "$DOWNLOAD_URL" ]]; then + echo "The download URL for $NAME not found". + echo "Look at https://github.com/$REPO/releases for correct versions." + exit 1 +fi + +echo "Doing this will overwrite all data stored on eMMC." + +while true; do + echo "Type YES to continue or Ctrl-C to abort." + read CONFIRM + if [[ "$CONFIRM" == "YES" ]]; then + break + fi +done + +echo "" +echo "Using $DOWNLOAD_URL..." +echo "Umounting..." +umount -f /dev/mmcblk1* || true +echo "" + +echo "Downloading and writing to /dev/mmcblk1..." +curl -L -f "$DOWNLOAD_URL" | $ARCHIVER | dd bs=30M of=/dev/mmcblk1 +sync +echo "" + +echo "Done." From d394b36c97c8cb7802ef515bd6a354602b5b1846 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 1 May 2017 18:59:02 +0200 Subject: [PATCH 038/168] Add motd message with upgrade possibilities --- .../root/etc/update-motd.d/11-pine-a64-help-text | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100755 package/root/etc/update-motd.d/11-pine-a64-help-text diff --git a/package/root/etc/update-motd.d/11-pine-a64-help-text b/package/root/etc/update-motd.d/11-pine-a64-help-text new file mode 100755 index 00000000..4b03b1b3 --- /dev/null +++ b/package/root/etc/update-motd.d/11-pine-a64-help-text @@ -0,0 +1,14 @@ +#!/bin/sh + +if [ $(id -u) -eq 0 ]; then + echo "" + echo "Update system with:" + echo "" + echo " * pine64_update_kernel.sh" + echo " * pine64_update_uboot.sh" + echo " * pine64_update_package.sh" + + if [ -d /sys/devices/soc.0/1c10000.sdmmc/mmc_host/mmc1 ]; then + echo " * pine64_install_to_emmc.sh" + fi +fi From e00164e3478bdfcc6621a7d8a0f488873605d93f Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 1 May 2017 21:08:41 +0200 Subject: [PATCH 039/168] Use declarative pipeline --- Jenkinsfile | 165 ++++++++++++++++++++++++++++------------------------ 1 file changed, 90 insertions(+), 75 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 20901142..113c0a94 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,87 +1,102 @@ -/** -properties([ - parameters([ - string(defaultValue: '1.0', description: 'Current version number', name: 'VERSION'), - text(defaultValue: '', description: 'A list of changes', name: 'CHANGES'), - booleanParam(defaultValue: false, description: 'If build should be marked as pre-release', name: 'PRERELEASE'), - string(defaultValue: 'ayufan-pine64', description: 'GitHub username or organization', name: 'GITHUB_USER'), - string(defaultValue: 'build-pine64-image', description: 'GitHub repository', name: 'GITHUB_REPO'), - ]) -]) -*/ +pipeline { + // parameters { + // string ( + // defaultValue: '1.0', + // description: 'Current version number', + // name : 'VERSION') + // text ( + // defaultValue: '', + // description: 'A list of changes', + // name : 'CHANGES') + // booleanParam ( + // defaultValue: false, + // description: 'If build should be marked as pre-release', + // name : 'PRERELEASE') + // string ( + // defaultValue: '1.0', + // description: 'GitHub username or organization', + // name : 'GITHUB_USER') + // string ( + // defaultValue: '1.0', + // description: 'GitHub repository', + // name : 'GITHUB_REPO') + // } -node('docker && linux-build') { - timestamps { - wrap([$class: 'AnsiColorBuildWrapper', colorMapName: 'xterm']) { - stage "Environment" - checkout scm + agent { + dockerfile { + dir 'build-environment' + label 'docker && linux-build' + args '--privileged -u 0:0' + } + } + environment { + USE_CCACHE = 'true' + RELEASE_NAME = "$RELEASE_NAME" + RELEASE = "$BUILD_NUMBER" + CCACHE_DIR = "$WORKSPACE/ccache" + PRERELEASE = "$PRERELEASE" + GITHUB_USER = "$GITHUB_USER" + GITHUB_REPO = "$GITHUB_REPO" + } + options { + timestamps() + } - def environment = docker.build('build-environment:build-pine64-image', 'build-environment') + stages { + stage('Prepare') { + steps { + sh 'ccache -M 0 -F 0' + sh 'git clean -ffdx -e ccache' + } + } + + stage('Build') { + steps { + sh 'make' + } + } - environment.inside("--privileged -u 0:0") { - withEnv([ - "USE_CCACHE=true", - "RELEASE_NAME=$VERSION", - "RELEASE=$BUILD_NUMBER" - ]) { - stage 'Prepare' - sh '''#!/bin/bash - set +xe - export CCACHE_DIR=$WORKSPACE/ccache - ccache -M 0 -F 0 - git clean -ffdx -e ccache - ''' + stage('Release') { + steps { + sh '''#!/bin/bash + set -xe + shopt -s nullglob - stage 'Build' - sh '''#!/bin/bash - set +xe - export CCACHE_DIR=$WORKSPACE/ccache - make - ''' - } - - withEnv([ - "VERSION=$VERSION", - "CHANGES=$CHANGES", - "PRERELEASE=$PRERELEASE", - "GITHUB_USER=$GITHUB_USER", - "GITHUB_REPO=$GITHUB_REPO" - ]) { - stage 'Release' - sh '''#!/bin/bash - set -xe - shopt -s nullglob + github-release release \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" \ + --draft - github-release release \ + for file in *.xz *.deb; do + github-release upload \ --tag "${VERSION}" \ - --name "$VERSION: $BUILD_TAG" \ - --description "${CHANGES}\n\n${BUILD_URL}" \ - --draft - - for file in *.xz *.deb; do - github-release upload \ - --tag "${VERSION}" \ - --name "$(basename "$file")" \ - --file "$file" & - done + --name "$(basename "$file")" \ + --file "$file" & + done - wait + wait - if [[ "$PRERELEASE" == "true" ]]; then - github-release edit \ - --tag "${VERSION}" \ - --name "$VERSION: $BUILD_TAG" \ - --description "${CHANGES}\n\n${BUILD_URL}" \ - --pre-release - else - github-release edit \ - --tag "${VERSION}" \ - --name "$VERSION: $BUILD_TAG" \ - --description "${CHANGES}\n\n${BUILD_URL}" - fi - ''' - } + if [[ "$PRERELEASE" == "true" ]]; then + github-release edit \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" \ + --pre-release + else + github-release edit \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" + fi + ''' } } } + + post { + always { + sh 'git clean -ffdx -e ccache' + } + } } From bdc3f51320908182ceaa75e3e99589fc7317bf58 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 1 May 2017 21:20:42 +0200 Subject: [PATCH 040/168] Revert "Use declarative pipeline" This reverts commit e00164e3478bdfcc6621a7d8a0f488873605d93f. --- Jenkinsfile | 165 ++++++++++++++++++++++++---------------------------- 1 file changed, 75 insertions(+), 90 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 113c0a94..20901142 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,102 +1,87 @@ -pipeline { - // parameters { - // string ( - // defaultValue: '1.0', - // description: 'Current version number', - // name : 'VERSION') - // text ( - // defaultValue: '', - // description: 'A list of changes', - // name : 'CHANGES') - // booleanParam ( - // defaultValue: false, - // description: 'If build should be marked as pre-release', - // name : 'PRERELEASE') - // string ( - // defaultValue: '1.0', - // description: 'GitHub username or organization', - // name : 'GITHUB_USER') - // string ( - // defaultValue: '1.0', - // description: 'GitHub repository', - // name : 'GITHUB_REPO') - // } +/** +properties([ + parameters([ + string(defaultValue: '1.0', description: 'Current version number', name: 'VERSION'), + text(defaultValue: '', description: 'A list of changes', name: 'CHANGES'), + booleanParam(defaultValue: false, description: 'If build should be marked as pre-release', name: 'PRERELEASE'), + string(defaultValue: 'ayufan-pine64', description: 'GitHub username or organization', name: 'GITHUB_USER'), + string(defaultValue: 'build-pine64-image', description: 'GitHub repository', name: 'GITHUB_REPO'), + ]) +]) +*/ - agent { - dockerfile { - dir 'build-environment' - label 'docker && linux-build' - args '--privileged -u 0:0' - } - } - environment { - USE_CCACHE = 'true' - RELEASE_NAME = "$RELEASE_NAME" - RELEASE = "$BUILD_NUMBER" - CCACHE_DIR = "$WORKSPACE/ccache" - PRERELEASE = "$PRERELEASE" - GITHUB_USER = "$GITHUB_USER" - GITHUB_REPO = "$GITHUB_REPO" - } - options { - timestamps() - } +node('docker && linux-build') { + timestamps { + wrap([$class: 'AnsiColorBuildWrapper', colorMapName: 'xterm']) { + stage "Environment" + checkout scm - stages { - stage('Prepare') { - steps { - sh 'ccache -M 0 -F 0' - sh 'git clean -ffdx -e ccache' - } - } - - stage('Build') { - steps { - sh 'make' - } - } + def environment = docker.build('build-environment:build-pine64-image', 'build-environment') - stage('Release') { - steps { - sh '''#!/bin/bash - set -xe - shopt -s nullglob + environment.inside("--privileged -u 0:0") { + withEnv([ + "USE_CCACHE=true", + "RELEASE_NAME=$VERSION", + "RELEASE=$BUILD_NUMBER" + ]) { + stage 'Prepare' + sh '''#!/bin/bash + set +xe + export CCACHE_DIR=$WORKSPACE/ccache + ccache -M 0 -F 0 + git clean -ffdx -e ccache + ''' - github-release release \ - --tag "${VERSION}" \ - --name "$VERSION: $BUILD_TAG" \ - --description "${CHANGES}\n\n${BUILD_URL}" \ - --draft + stage 'Build' + sh '''#!/bin/bash + set +xe + export CCACHE_DIR=$WORKSPACE/ccache + make + ''' + } + + withEnv([ + "VERSION=$VERSION", + "CHANGES=$CHANGES", + "PRERELEASE=$PRERELEASE", + "GITHUB_USER=$GITHUB_USER", + "GITHUB_REPO=$GITHUB_REPO" + ]) { + stage 'Release' + sh '''#!/bin/bash + set -xe + shopt -s nullglob - for file in *.xz *.deb; do - github-release upload \ + github-release release \ --tag "${VERSION}" \ - --name "$(basename "$file")" \ - --file "$file" & - done + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" \ + --draft - wait + for file in *.xz *.deb; do + github-release upload \ + --tag "${VERSION}" \ + --name "$(basename "$file")" \ + --file "$file" & + done - if [[ "$PRERELEASE" == "true" ]]; then - github-release edit \ - --tag "${VERSION}" \ - --name "$VERSION: $BUILD_TAG" \ - --description "${CHANGES}\n\n${BUILD_URL}" \ - --pre-release - else - github-release edit \ - --tag "${VERSION}" \ - --name "$VERSION: $BUILD_TAG" \ - --description "${CHANGES}\n\n${BUILD_URL}" - fi - ''' - } - } - } + wait - post { - always { - sh 'git clean -ffdx -e ccache' + if [[ "$PRERELEASE" == "true" ]]; then + github-release edit \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" \ + --pre-release + else + github-release edit \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" + fi + ''' + } + } } } } From d53dc09dea2ef975652bc75e9ba96e4a5b9b617a Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 1 May 2017 21:29:53 +0200 Subject: [PATCH 041/168] Add Pinebook touchpad deceleration --- .../X11/xorg.conf.d/50-pine64-pinebook-touchpad.conf | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 package/root/etc/X11/xorg.conf.d/50-pine64-pinebook-touchpad.conf diff --git a/package/root/etc/X11/xorg.conf.d/50-pine64-pinebook-touchpad.conf b/package/root/etc/X11/xorg.conf.d/50-pine64-pinebook-touchpad.conf new file mode 100644 index 00000000..da0172f0 --- /dev/null +++ b/package/root/etc/X11/xorg.conf.d/50-pine64-pinebook-touchpad.conf @@ -0,0 +1,11 @@ +# Taken from https://github.com/longsleep/build-pine64-image/blob/master/simpleimage/platform-scripts/install_mate_desktop.sh#L67 + +Section "InputClass" + Identifier "HAILUCK CO.,LTD USB KEYBOARD" + MatchIsPointer "1" + MatchDevicePath "/dev/input/event*" + Option "AccelerationProfile" "2" + Option "AdaptiveDeceleration" "1" + Option "ConstantDeceleration" "2.4" # Pinebook 14" + #Option "ConstantDeceleration" "1.2" # Pinebook 11" +EndSection From a6ba43eea54f2a26e16cd1385f26a9973c192e16 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 1 May 2017 22:58:10 +0200 Subject: [PATCH 042/168] Update used boot0 and u-boot --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 5959d25d..03fc6954 100644 --- a/Makefile +++ b/Makefile @@ -77,8 +77,8 @@ linux-pine64-package-$(RELEASE_NAME).deb: package package/rtk_bt/rtk_hciattach/r simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools cd simpleimage && \ - export boot0=../boot-tools/build/boot0_pinebook.bin && \ - export uboot=../boot-tools/build/u-boot-sun50iw1p1-secure-with-pinebook-dtb.bin && \ + export boot0=../boot-tools/boot/pine64/boot0-pine64-pinebook.bin && \ + export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook.bin && \ bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) xenial-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools From 446c6f408b871d4263dabec6e0278f07b6f5964b Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 2 May 2017 02:09:21 +0200 Subject: [PATCH 043/168] Add simple experimental android upgrader script --- .../usr/local/sbin/pine64_upgrade_android.sh | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100755 package/root/usr/local/sbin/pine64_upgrade_android.sh diff --git a/package/root/usr/local/sbin/pine64_upgrade_android.sh b/package/root/usr/local/sbin/pine64_upgrade_android.sh new file mode 100755 index 00000000..26318488 --- /dev/null +++ b/package/root/usr/local/sbin/pine64_upgrade_android.sh @@ -0,0 +1,98 @@ +#!/bin/bash + +set -eo pipefail + +if [[ "$(id -u)" -ne "0" ]]; then + echo "This script requires root." + exit 1 +fi + +echo "Pine A64/Pinebook Android upgrader (experimental)!" +echo "(C) 2017. Kamil Trzciński (https://ayufan.eu)." +echo "" + +usage() { + echo "Usage:" + echo "$ $0 [version]" + echo "" + echo "Systems:" + echo " - android-7.0 (https://github.com/ayufan-pine64/android-7.0/releases)" + echo " - android-7.1 (https://github.com/ayufan-pine64/android-7.0/releases)" + echo "" + echo "Version:" + echo " - latest will be used if version is not defined" + exit 1 +} + +if [[ $# -ne 2 ]] && [[ $# -ne 3 ]]; then + usage +fi + +if [[ "$2" != "android-7.0" ]] || [[ "$2" != "android-7.1" ]]; then + usage +fi + +REPO="ayufan-pine64/$2" +if [[ "$(cat /etc/pine64_model)" -eq "pinebook" ]]; then + PREFIX="$2-pine-a64-pinebook-v" +else + PREFIX="$2-pine-a64-v" +fi +SUFFIX="-r[0-9]*.img.gz" +ARCHIVER="gzip -d" + +VERSION="$3" + +if [[ -z "$VERSION" ]]; then + VERSION=$(curl -f -sS https://api.github.com/repos/$REPO/releases/latest | jq -r ".tag_name") + if [ -z "$VERSION" ]; then + echo "Latest release was not for $2." + echo "Please go to: https://github.com/$REPO/releases/latest" + exit 1 + fi + + echo "Using latest release: $VERSION from https://github.com/$REPO/releases." +fi + +NAME="$PREFIX$VERSION$SUFFIX" +NAME_SAFE="${NAME//./\\.}" +VERSION_SAFE="${VERSION//./\\.}" + +echo "Looking for download URL..." +DOWNLOAD_URL=$(curl -f -sS https://api.github.com/repos/$REPO/releases | \ + jq -r ".[].assets | .[].browser_download_url" | \ + ( grep -o "https://github\.com/$REPO/releases/download/$VERSION_SAFE/$NAME_SAFE" || true)) + +if [[ -z "$DOWNLOAD_URL" ]]; then + echo "The download URL for $NAME not found". + echo "Look at https://github.com/$REPO/releases for correct versions." + exit 1 +fi + +echo "Doing this will overwrite all data stored on eMMC." + +while true; do + echo "Type YES to continue or Ctrl-C to abort." + read CONFIRM + if [[ "$CONFIRM" == "YES" ]]; then + break + fi +done + +echo "" +echo "Using $DOWNLOAD_URL..." +echo "Umounting..." +umount -f $1* || true +echo "" + +START=16 # 8k +END=4337664 # 2,220,883,968 + +echo "Downloading and upgrade $1..." +curl -L -f "$DOWNLOAD_URL" | $ARCHIVER | \ + tail -c "+$((START*512))" | \ + dd bs=8k seek="$((START/16))" count="$(((END-START)/16))" "of=$1" +sync +echo "" + +echo "Done." From 91f60ca885a87973fed39d7d96a6447336aa85e7 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 2 May 2017 10:56:35 +0200 Subject: [PATCH 044/168] Fix Android upgrader script --- .../usr/local/sbin/pine64_upgrade_android.sh | 76 +++++++++++-------- 1 file changed, 45 insertions(+), 31 deletions(-) diff --git a/package/root/usr/local/sbin/pine64_upgrade_android.sh b/package/root/usr/local/sbin/pine64_upgrade_android.sh index 26318488..5c3c9f99 100755 --- a/package/root/usr/local/sbin/pine64_upgrade_android.sh +++ b/package/root/usr/local/sbin/pine64_upgrade_android.sh @@ -13,7 +13,7 @@ echo "" usage() { echo "Usage:" - echo "$ $0 [version]" + echo "$ $0 [version or file]" echo "" echo "Systems:" echo " - android-7.0 (https://github.com/ayufan-pine64/android-7.0/releases)" @@ -28,7 +28,7 @@ if [[ $# -ne 2 ]] && [[ $# -ne 3 ]]; then usage fi -if [[ "$2" != "android-7.0" ]] || [[ "$2" != "android-7.1" ]]; then +if [[ "$2" != "android-7.0" ]] && [[ "$2" != "android-7.1" ]]; then usage fi @@ -41,35 +41,40 @@ fi SUFFIX="-r[0-9]*.img.gz" ARCHIVER="gzip -d" -VERSION="$3" +if [[ ! -f "$3" ]]; then + VERSION="$3" -if [[ -z "$VERSION" ]]; then - VERSION=$(curl -f -sS https://api.github.com/repos/$REPO/releases/latest | jq -r ".tag_name") - if [ -z "$VERSION" ]; then - echo "Latest release was not for $2." - echo "Please go to: https://github.com/$REPO/releases/latest" - exit 1 - fi + if [[ -z "$VERSION" ]]; then + VERSION=$(curl -f -sS https://api.github.com/repos/$REPO/releases/latest | jq -r ".tag_name") + if [ -z "$VERSION" ]; then + echo "Latest release was not for $2." + echo "Please go to: https://github.com/$REPO/releases/latest" + exit 1 + fi - echo "Using latest release: $VERSION from https://github.com/$REPO/releases." -fi + echo "Using latest release: $VERSION from https://github.com/$REPO/releases." + fi -NAME="$PREFIX$VERSION$SUFFIX" -NAME_SAFE="${NAME//./\\.}" -VERSION_SAFE="${VERSION//./\\.}" + NAME="$PREFIX$VERSION$SUFFIX" + NAME_SAFE="${NAME//./\\.}" + VERSION_SAFE="${VERSION//./\\.}" -echo "Looking for download URL..." -DOWNLOAD_URL=$(curl -f -sS https://api.github.com/repos/$REPO/releases | \ - jq -r ".[].assets | .[].browser_download_url" | \ - ( grep -o "https://github\.com/$REPO/releases/download/$VERSION_SAFE/$NAME_SAFE" || true)) + echo "Looking for download URL..." + DOWNLOAD_URL=$(curl -f -sS https://api.github.com/repos/$REPO/releases | \ + jq -r ".[].assets | .[].browser_download_url" | \ + ( grep -o "https://github\.com/$REPO/releases/download/$VERSION_SAFE/$NAME_SAFE" || true)) -if [[ -z "$DOWNLOAD_URL" ]]; then - echo "The download URL for $NAME not found". - echo "Look at https://github.com/$REPO/releases for correct versions." - exit 1 + if [[ -z "$DOWNLOAD_URL" ]]; then + echo "The download URL for $NAME not found". + echo "Look at https://github.com/$REPO/releases for correct versions." + exit 1 + fi +else + FILE="$(readlink -f "$3")" + DOWNLOAD_URL="" fi -echo "Doing this will overwrite all data stored on eMMC." +echo "Doing this will overwrite some data stored on $1." while true; do echo "Type YES to continue or Ctrl-C to abort." @@ -80,18 +85,27 @@ while true; do done echo "" -echo "Using $DOWNLOAD_URL..." +echo "Using ${DOWNLOAD_URL-$FILE}..." echo "Umounting..." umount -f $1* || true echo "" -START=16 # 8k -END=4337664 # 2,220,883,968 +START=$((16*512)) # 8k +END=$((4337664*512)) # 2,220,883,968 +BS=8192 + +get_data() { + if [[ -n "$DOWNLOAD_URL" ]]; then + curl -L -f "$DOWNLOAD_URL" + else + cat "$FILE" + fi +} -echo "Downloading and upgrade $1..." -curl -L -f "$DOWNLOAD_URL" | $ARCHIVER | \ - tail -c "+$((START*512))" | \ - dd bs=8k seek="$((START/16))" count="$(((END-START)/16))" "of=$1" +echo "Downloading and upgrading $1..." +get_data | $ARCHIVER | \ + ( dd bs="$BS" count="$((START/$BS))" of=/dev/null status=none && \ + dd bs="$BS" seek="$((START/$BS))" count="$(((END-START)/$BS))" of="$1" status=none ) sync echo "" From 120285aa84c6b12db8eae043b4a17b746f29e7a8 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 2 May 2017 12:32:15 +0200 Subject: [PATCH 045/168] Restore alsa settings after resume --- .../systemd/system/restore-sound-after-resume.service | 10 ++++++++++ package/root/usr/local/sbin/pinebook_restore_sound.sh | 6 ++++++ package/scripts/postinst.deb | 2 ++ 3 files changed, 18 insertions(+) create mode 100644 package/root/etc/systemd/system/restore-sound-after-resume.service create mode 100755 package/root/usr/local/sbin/pinebook_restore_sound.sh diff --git a/package/root/etc/systemd/system/restore-sound-after-resume.service b/package/root/etc/systemd/system/restore-sound-after-resume.service new file mode 100644 index 00000000..0312a560 --- /dev/null +++ b/package/root/etc/systemd/system/restore-sound-after-resume.service @@ -0,0 +1,10 @@ +[Unit] +Description=Restore sound after resume +After=suspend.target + +[Service] +Type=oneshot +ExecStart=/usr/local/sbin/pinebook_restore_sound.sh + +[Install] +WantedBy=suspend.target diff --git a/package/root/usr/local/sbin/pinebook_restore_sound.sh b/package/root/usr/local/sbin/pinebook_restore_sound.sh new file mode 100755 index 00000000..0e83dec7 --- /dev/null +++ b/package/root/usr/local/sbin/pinebook_restore_sound.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set +x + +/usr/bin/amixer set 'DACL Mixer AIF1DA0L' on +/usr/bin/amixer set 'DACR Mixer AIF1DA0R' on diff --git a/package/scripts/postinst.deb b/package/scripts/postinst.deb index 6d92457e..03cc5728 100755 --- a/package/scripts/postinst.deb +++ b/package/scripts/postinst.deb @@ -12,6 +12,8 @@ case "$1" in systemctl enable rtk-hciattach systemctl start rtk-hciattach + + systemctl enable restore-sound-after-resume ;; *) From 111ca6ce3aa54f649cf4f9752b7a7a0fcd95371c Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 2 May 2017 16:42:31 +0200 Subject: [PATCH 046/168] Move scripts and xorg configuration to package --- .../X11/xorg.conf.d/40-pine64-fbturbo.conf | 7 +++++ .../usr/local/sbin}/install_i3_desktop.sh | 27 ------------------- .../usr/local/sbin/install_mate_desktop.sh | 13 --------- .../root/usr/local/sbin}/pine64_model.sh | 0 4 files changed, 7 insertions(+), 40 deletions(-) create mode 100644 package/root/etc/X11/xorg.conf.d/40-pine64-fbturbo.conf rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/install_i3_desktop.sh (55%) rename {simpleimage/platform-scripts => package/root/usr/local/sbin}/pine64_model.sh (100%) diff --git a/package/root/etc/X11/xorg.conf.d/40-pine64-fbturbo.conf b/package/root/etc/X11/xorg.conf.d/40-pine64-fbturbo.conf new file mode 100644 index 00000000..acb7a71c --- /dev/null +++ b/package/root/etc/X11/xorg.conf.d/40-pine64-fbturbo.conf @@ -0,0 +1,7 @@ +Section "Device" + Identifier "Allwinner A10/A13 FBDEV" + Driver "fbturbo" + Option "fbdev" "/dev/fb0" + Option "Backlight" "lcd0" + Option "SwapbuffersWait" "true" +EndSection diff --git a/simpleimage/platform-scripts/install_i3_desktop.sh b/package/root/usr/local/sbin/install_i3_desktop.sh similarity index 55% rename from simpleimage/platform-scripts/install_i3_desktop.sh rename to package/root/usr/local/sbin/install_i3_desktop.sh index 9e2539a0..2103982d 100755 --- a/simpleimage/platform-scripts/install_i3_desktop.sh +++ b/package/root/usr/local/sbin/install_i3_desktop.sh @@ -44,31 +44,4 @@ if [ ! -d /usr/share/slim/themes/pine64 ]; then sed s/^current_theme(.*)/current_theme pine64/g /etc/slim.conf fi -mkdir -p /etc/X11/xorg.conf.d - -# Make X11 use fbturbo driver. -cat > "/etc/X11/xorg.conf.d/40-pine64-fbturbo.conf" < "/etc/X11/xorg.conf.d/50-pine64-pinebook-touchpad.conf" < "/etc/X11/xorg.conf.d/40-pine64-fbturbo.conf" </etc/modules-load.d/cups-filters.conf diff --git a/simpleimage/platform-scripts/pine64_model.sh b/package/root/usr/local/sbin/pine64_model.sh similarity index 100% rename from simpleimage/platform-scripts/pine64_model.sh rename to package/root/usr/local/sbin/pine64_model.sh From 3865629ab64c5a88d26c87b7abfec0da23ce95a0 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 2 May 2017 18:41:16 +0200 Subject: [PATCH 047/168] Remove eth0 mackeeper as it is no longer needed --- .../etc/systemd/system/eth0-mackeeper.service | 10 ---------- .../usr/local/sbin/pine64_eth0-mackeeper.sh | 19 ------------------- simpleimage/make_rootfs.sh | 1 - 3 files changed, 30 deletions(-) delete mode 100644 package/root/etc/systemd/system/eth0-mackeeper.service delete mode 100755 package/root/usr/local/sbin/pine64_eth0-mackeeper.sh diff --git a/package/root/etc/systemd/system/eth0-mackeeper.service b/package/root/etc/systemd/system/eth0-mackeeper.service deleted file mode 100644 index 8cb4e45c..00000000 --- a/package/root/etc/systemd/system/eth0-mackeeper.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Fix eth0 mac address to uEnv.txt -After=systemd-modules-load.service local-fs.target - -[Service] -Type=oneshot -ExecStart=/usr/local/sbin/pine64_eth0-mackeeper.sh - -[Install] -WantedBy=multi-user.target diff --git a/package/root/usr/local/sbin/pine64_eth0-mackeeper.sh b/package/root/usr/local/sbin/pine64_eth0-mackeeper.sh deleted file mode 100755 index e23148e5..00000000 --- a/package/root/usr/local/sbin/pine64_eth0-mackeeper.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -set -e - -ENV="/boot/uEnv.txt" -ETH="eth0" - -if [ ! -w "$ENV" -o ! -e /sys/class/net/$ETH/address ]; then - exit 0 -fi - -if grep -q "ethaddr=" "$ENV"; then - exit 0 -fi - -MAC=$(cat /sys/class/net/$ETH/address) -echo $MAC - -echo "ethaddr=$MAC" >> "$ENV" diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 6ab0a9c3..9120384f 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -271,7 +271,6 @@ EOF do_chroot rm "package.deb" do_chroot /usr/local/sbin/install_mate_desktop.sh do_chroot systemctl set-default graphical.target - do_chroot systemctl enable eth0-mackeeper do_chroot systemctl enable cpu-corekeeper do_chroot systemctl enable ssh-keygen if [ "$MODEL" -eq "pinebook" ]; then From a1c6db6b2783d132b0eb9220fe30d97dc1e24aab Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 2 May 2017 18:47:25 +0200 Subject: [PATCH 048/168] Fix description --- package/root/usr/local/sbin/pine64_install_to_emmc.sh | 2 +- package/root/usr/local/sbin/pine64_upgrade_android.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/root/usr/local/sbin/pine64_install_to_emmc.sh b/package/root/usr/local/sbin/pine64_install_to_emmc.sh index 3ace91d7..1ef4aced 100755 --- a/package/root/usr/local/sbin/pine64_install_to_emmc.sh +++ b/package/root/usr/local/sbin/pine64_install_to_emmc.sh @@ -18,7 +18,7 @@ usage() { echo "Systems:" echo " - ubuntu-xenial (https://github.com/ayufan-pine64/linux-build/releases)" echo " - android-7.0 (https://github.com/ayufan-pine64/android-7.0/releases)" - echo " - android-7.1 (https://github.com/ayufan-pine64/android-7.0/releases)" + echo " - android-7.1 (https://github.com/ayufan-pine64/android-7.1/releases)" echo "" echo "Version:" echo " - latest will be used if version is not defined" diff --git a/package/root/usr/local/sbin/pine64_upgrade_android.sh b/package/root/usr/local/sbin/pine64_upgrade_android.sh index 5c3c9f99..887feec6 100755 --- a/package/root/usr/local/sbin/pine64_upgrade_android.sh +++ b/package/root/usr/local/sbin/pine64_upgrade_android.sh @@ -17,7 +17,7 @@ usage() { echo "" echo "Systems:" echo " - android-7.0 (https://github.com/ayufan-pine64/android-7.0/releases)" - echo " - android-7.1 (https://github.com/ayufan-pine64/android-7.0/releases)" + echo " - android-7.1 (https://github.com/ayufan-pine64/android-7.1/releases)" echo "" echo "Version:" echo " - latest will be used if version is not defined" From e405a18eae9e7875ba853bbc7e488ff2e2cbe0b6 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 2 May 2017 21:57:59 +0200 Subject: [PATCH 049/168] Fix simpleimage producing empty BOOT --- simpleimage/make_simpleimage.sh | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/simpleimage/make_simpleimage.sh b/simpleimage/make_simpleimage.sh index 9845bb84..2545fffd 100755 --- a/simpleimage/make_simpleimage.sh +++ b/simpleimage/make_simpleimage.sh @@ -68,13 +68,6 @@ cleanup() { } trap cleanup EXIT -if [ -n "$kernel_tarball" -a "$kernel_tarball" != "-" ]; then - echo "Using Kernel from $kernel_tarball ..." - tar -C $temp -xJf "$kernel_tarball" - kernel=$temp/boot - mv $temp/boot/uEnv.txt.in $temp/boot/uEnv.txt -fi - boot0_position=8 # KiB uboot_position=19096 # KiB part_position=20480 # KiB @@ -90,7 +83,12 @@ dd if=/dev/zero bs=1M count=${boot_size} of=${out}1 mkfs.vfat -n BOOT ${out}1 # Add boot support if there -if [ -e "${kernel}/pine64/Image" -a -e "${kernel}/pine64/sun50i-a64-pine64-plus.dtb" ]; then +if [ -n "$kernel_tarball" ]; then + echo "Using Kernel from $kernel_tarball ..." + tar -C $temp -xJf "$kernel_tarball" + mv $temp/boot/uEnv.txt.in $temp/boot/uEnv.txt + mcopy -sm -i ${out}1 ${temp}/boot/* :: +elif [ -e "${kernel}/pine64/Image" -a -e "${kernel}/pine64/sun50i-a64-pine64-plus.dtb" ]; then mcopy -sm -i ${out}1 ${kernel}/pine64 :: mcopy -m -i ${out}1 ${kernel}/initrd.img :: || true mcopy -m -i ${out}1 ${kernel}/uEnv.txt :: || true From 6feb5e10caa9d8be0c808ef60ed2b6ee3aa5dfab Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 2 May 2017 22:20:51 +0200 Subject: [PATCH 050/168] Compile different variants of xenial: i3, mate and minimal $ per longsleep request --- Jenkinsfile | 2 +- Makefile | 37 +++++++++++++++++-- build-pine64-image.sh | 8 ++-- .../usr/local/sbin/pine64_install_to_emmc.sh | 8 ++-- simpleimage/make_rootfs.sh | 16 ++++++-- 5 files changed, 57 insertions(+), 14 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 20901142..64328f9b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -36,7 +36,7 @@ node('docker && linux-build') { sh '''#!/bin/bash set +xe export CCACHE_DIR=$WORKSPACE/ccache - make + make -j4 ''' } diff --git a/Makefile b/Makefile index 03fc6954..fe427dd9 100644 --- a/Makefile +++ b/Makefile @@ -81,14 +81,36 @@ simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz b export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook.bin && \ bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) -xenial-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools +xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools sudo bash ./build-pine64-image.sh \ $(shell readlink -f $@) \ $(shell readlink -f simple-image-pinebook-$(RELEASE_NAME).img.xz) \ $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ xenial \ - pinebook + pinebook \ + minimal + +xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools + sudo bash ./build-pine64-image.sh \ + $(shell readlink -f $@) \ + $(shell readlink -f simple-image-pinebook-$(RELEASE_NAME).img.xz) \ + $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ + $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ + xenial \ + pinebook \ + mate \ + 7300 + +xenial-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools + sudo bash ./build-pine64-image.sh \ + $(shell readlink -f $@) \ + $(shell readlink -f simple-image-pinebook-$(RELEASE_NAME).img.xz) \ + $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ + $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ + xenial \ + pinebook \ + i3 .PHONY: kernel-tarball kernel-tarball: linux-pine64-$(RELEASE_NAME).tar.xz @@ -99,5 +121,14 @@ linux-package: linux-pine64-package-$(RELEASE_NAME).deb .PHONY: simple-image-pinebook-$(RELEASE_NAME).img simple-image-pinebook: simple-image-pinebook-$(RELEASE_NAME).img +.PHONY: xenial-minimal-pinebook +xenial-minimal-pinebook: xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: xenial-mate-pinebook +xenial-mate-pinebook: xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: xenial-i3-pinebook +xenial-i3-pinebook: xenial-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + .PHONY: xenial-pinebook -xenial-pinebook: xenial-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +xenial-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook diff --git a/build-pine64-image.sh b/build-pine64-image.sh index 3b171f50..f11373f3 100755 --- a/build-pine64-image.sh +++ b/build-pine64-image.sh @@ -14,13 +14,15 @@ KERNELTAR="$3" PACKAGEDEB="$4" DISTRO="$5" MODEL="$6" +VARIANT="$7" +SIZE="${8:-3650}" if [[ -z "$MODEL" ]]; then MODEL="pine64" fi export MODEL if [ -z "$SIMPLEIMAGE" -o -z "$KERNELTAR" ]; then - echo "Usage: $0 [distro] [model]" + echo "Usage: $0 [distro] [model] [variant: mate, i3, empty] [size (MiB)]" exit 1 fi @@ -36,8 +38,6 @@ fi SIMPLEIMAGE=$(readlink -f "$SIMPLEIMAGE") KERNELTAR=$(readlink -f "$KERNELTAR") -SIZE=7300 # MiB - PWD=$(readlink -f .) TEMP=$(mktemp -p $PWD -d -t "$MODEL-build-XXXXXXXXXX") IMAGE="$(basename "$OUT_IMAGE")" @@ -84,7 +84,7 @@ mount /dev/mapper/${DEVICENAME}p1 "$TEMP/boot" mount /dev/mapper/${DEVICENAME}p2 "$TEMP/rootfs" sleep 2 -(cd simpleimage && sh ./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$PACKAGEDEB" "$DISTRO" "$TEMP/boot" "$MODEL") +(cd simpleimage && sh ./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$PACKAGEDEB" "$DISTRO" "$TEMP/boot" "$MODEL" "$VARIANT") mv -v "$TEMP/$IMAGE" "$OUT_IMAGE" diff --git a/package/root/usr/local/sbin/pine64_install_to_emmc.sh b/package/root/usr/local/sbin/pine64_install_to_emmc.sh index 1ef4aced..4d195c96 100755 --- a/package/root/usr/local/sbin/pine64_install_to_emmc.sh +++ b/package/root/usr/local/sbin/pine64_install_to_emmc.sh @@ -16,7 +16,9 @@ usage() { echo "$ $0 [version]" echo "" echo "Systems:" - echo " - ubuntu-xenial (https://github.com/ayufan-pine64/linux-build/releases)" + echo " - xenial-minimal (https://github.com/ayufan-pine64/linux-build/releases)" + echo " - xenial-mate (https://github.com/ayufan-pine64/linux-build/releases)" + echo " - xenial-i3 (https://github.com/ayufan-pine64/linux-build/releases)" echo " - android-7.0 (https://github.com/ayufan-pine64/android-7.0/releases)" echo " - android-7.1 (https://github.com/ayufan-pine64/android-7.1/releases)" echo "" @@ -40,9 +42,9 @@ if [[ ! -e /dev/mmcblk1 ]]; then fi case "$1" in - ubuntu-xenial) + xenial-minimal|xenial-mate|xenial-i3) REPO="ayufan-pine64/linux-build" - PREFIX="xenial-$(cat /etc/pine64_model)-bspkernel-" + PREFIX="$1-$(cat /etc/pine64_model)-bspkernel-" SUFFIX="-[0-9]*.img.xz" ARCHIVER="xz -d" ;; diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 9120384f..b822c37f 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -17,13 +17,14 @@ PACKAGEDEB="$3" DISTRO="$4" BOOT="$5" MODEL="$6" +VARIANT="$7" if [[ -z "$MODEL" ]]; then MODEL="pine64" fi if [ -z "$DEST" -o -z "$LINUX" ]; then - echo "Usage: $0 [distro] [] [model]" + echo "Usage: $0 [distro] [] [model] [variant: mate, i3 or empty]" exit 1 fi @@ -269,8 +270,17 @@ EOF cp $PACKAGEDEB $DEST/package.deb do_chroot dpkg -i "package.deb" do_chroot rm "package.deb" - do_chroot /usr/local/sbin/install_mate_desktop.sh - do_chroot systemctl set-default graphical.target + case "$VARIANT" in + mate) + do_chroot /usr/local/sbin/install_mate_desktop.sh + do_chroot systemctl set-default graphical.target + ;; + + i3) + do_chroot /usr/local/sbin/install_i3_desktop.sh + do_chroot systemctl set-default graphical.target + ;; + esac do_chroot systemctl enable cpu-corekeeper do_chroot systemctl enable ssh-keygen if [ "$MODEL" -eq "pinebook" ]; then From c8246ece87a7c6224583cc6b9c68791ac1aa0417 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 3 May 2017 00:07:44 +0200 Subject: [PATCH 051/168] Fix various bugs in scripts: mostly comparisons --- package/root/usr/local/sbin/install_i3_desktop.sh | 2 +- package/root/usr/local/sbin/pine64_install_to_emmc.sh | 2 +- package/root/usr/local/sbin/pine64_upgrade_android.sh | 2 +- simpleimage/make_rootfs.sh | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package/root/usr/local/sbin/install_i3_desktop.sh b/package/root/usr/local/sbin/install_i3_desktop.sh index 2103982d..4ae4245c 100755 --- a/package/root/usr/local/sbin/install_i3_desktop.sh +++ b/package/root/usr/local/sbin/install_i3_desktop.sh @@ -41,7 +41,7 @@ if [ ! -d /usr/share/slim/themes/pine64 ]; then cp -ra /usr/share/slim/themes/default /usr/share/slim/themes/pine64 wget -O /usr/share/slim/themes/pine64/background.png \ https://github.com/longsleep/build-pine64-image/raw/master/bootlogo/bootlogo-pine64-1366x768.png - sed s/^current_theme(.*)/current_theme pine64/g /etc/slim.conf + sed "s/^current_theme(.*)/current_theme pine64/g" /etc/slim.conf fi echo "Done - you should reboot now." diff --git a/package/root/usr/local/sbin/pine64_install_to_emmc.sh b/package/root/usr/local/sbin/pine64_install_to_emmc.sh index 4d195c96..a7569dca 100755 --- a/package/root/usr/local/sbin/pine64_install_to_emmc.sh +++ b/package/root/usr/local/sbin/pine64_install_to_emmc.sh @@ -51,7 +51,7 @@ case "$1" in android-7.0|android-7.1) REPO="ayufan-pine64/$1" - if [[ "$(cat /etc/pine64_model)" -eq "pinebook" ]]; then + if [[ "$(cat /etc/pine64_model)" == "pinebook" ]]; then PREFIX="$1-pine-a64-pinebook-v" else PREFIX="$1-pine-a64-v" diff --git a/package/root/usr/local/sbin/pine64_upgrade_android.sh b/package/root/usr/local/sbin/pine64_upgrade_android.sh index 887feec6..02a4d545 100755 --- a/package/root/usr/local/sbin/pine64_upgrade_android.sh +++ b/package/root/usr/local/sbin/pine64_upgrade_android.sh @@ -33,7 +33,7 @@ if [[ "$2" != "android-7.0" ]] && [[ "$2" != "android-7.1" ]]; then fi REPO="ayufan-pine64/$2" -if [[ "$(cat /etc/pine64_model)" -eq "pinebook" ]]; then +if [[ "$(cat /etc/pine64_model)" == "pinebook" ]]; then PREFIX="$2-pine-a64-pinebook-v" else PREFIX="$2-pine-a64-v" diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index b822c37f..c6a2d861 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -19,7 +19,7 @@ BOOT="$5" MODEL="$6" VARIANT="$7" -if [[ -z "$MODEL" ]]; then +if [ -z "$MODEL" ]; then MODEL="pine64" fi @@ -283,7 +283,7 @@ EOF esac do_chroot systemctl enable cpu-corekeeper do_chroot systemctl enable ssh-keygen - if [ "$MODEL" -eq "pinebook" ]; then + if [ "$MODEL" = "pinebook" ]; then do_chroot systemctl enable pinebook-headphones fi sed -i 's|After=rc.local.service|#\0|;' "$DEST/lib/systemd/system/serial-getty@.service" From f782e81d7e33760e8c3b50926ddcd5bb77d6b636 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 3 May 2017 12:56:36 +0200 Subject: [PATCH 052/168] Rename if2name to p2p0 --- package/root/etc/modprobe.d/8723-rename-if2name.conf | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 package/root/etc/modprobe.d/8723-rename-if2name.conf diff --git a/package/root/etc/modprobe.d/8723-rename-if2name.conf b/package/root/etc/modprobe.d/8723-rename-if2name.conf new file mode 100644 index 00000000..ad941952 --- /dev/null +++ b/package/root/etc/modprobe.d/8723-rename-if2name.conf @@ -0,0 +1,2 @@ +options 8723bs if2name=p2p0 +options 8723cs if2name=p2p0 From 68c633221b2d35ed42845174c23c84f19e1a69de Mon Sep 17 00:00:00 2001 From: Thomas Kaiser Date: Wed, 3 May 2017 13:09:25 +0200 Subject: [PATCH 053/168] Disable Wi-Fi powermanagement entirely --- package/root/etc/modprobe.d/8723-rename-if2name.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package/root/etc/modprobe.d/8723-rename-if2name.conf b/package/root/etc/modprobe.d/8723-rename-if2name.conf index ad941952..244bf67b 100644 --- a/package/root/etc/modprobe.d/8723-rename-if2name.conf +++ b/package/root/etc/modprobe.d/8723-rename-if2name.conf @@ -1,2 +1,3 @@ -options 8723bs if2name=p2p0 -options 8723cs if2name=p2p0 +# if you want slight energy savings experiment with rtw_power_mgnt=2 instead +options 8723bs if2name=p2p0 rtw_power_mgnt=0 +options 8723cs if2name=p2p0 rtw_power_mgnt=0 From 36af981747d6c09a0551b27c4689652dc3aae9c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 3 May 2017 13:52:06 +0200 Subject: [PATCH 054/168] Remove [[ as this is not supported by /bin/sh --- package/root/usr/local/sbin/install_i3_desktop.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/root/usr/local/sbin/install_i3_desktop.sh b/package/root/usr/local/sbin/install_i3_desktop.sh index 4ae4245c..7ed6ea13 100755 --- a/package/root/usr/local/sbin/install_i3_desktop.sh +++ b/package/root/usr/local/sbin/install_i3_desktop.sh @@ -8,7 +8,7 @@ if hash apt-get 2>/dev/null; then DISTRO=debian fi -if [[ -z "$DISTRO" ]]; then +if [ -z "$DISTRO" ]; then echo "This script requires a Debian based Linux distribution." exit 1 fi From 47aa8964a46ba2de35c800e23b9630ee7ed452b0 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 3 May 2017 16:01:12 +0200 Subject: [PATCH 055/168] Add script to remove boot0 and make the device unbootable. --- .../usr/local/sbin/pine64_install_to_emmc.sh | 2 + .../root/usr/local/sbin/pine64_remove_boot.sh | 43 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100755 package/root/usr/local/sbin/pine64_remove_boot.sh diff --git a/package/root/usr/local/sbin/pine64_install_to_emmc.sh b/package/root/usr/local/sbin/pine64_install_to_emmc.sh index a7569dca..d261c0b2 100755 --- a/package/root/usr/local/sbin/pine64_install_to_emmc.sh +++ b/package/root/usr/local/sbin/pine64_install_to_emmc.sh @@ -115,5 +115,7 @@ echo "Downloading and writing to /dev/mmcblk1..." curl -L -f "$DOWNLOAD_URL" | $ARCHIVER | dd bs=30M of=/dev/mmcblk1 sync echo "" +echo "You may want to run now pine64_remove_boot.sh to make the current device unbootable." +echo "" echo "Done." diff --git a/package/root/usr/local/sbin/pine64_remove_boot.sh b/package/root/usr/local/sbin/pine64_remove_boot.sh new file mode 100755 index 00000000..22f58465 --- /dev/null +++ b/package/root/usr/local/sbin/pine64_remove_boot.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +set -eo pipefail + +if [[ "$(id -u)" -ne "0" ]]; then + echo "This script requires root." + exit 1 +fi + +echo "Pine A64/Pinebook boot remover!" +echo "(C) 2017. Kamil Trzciński (https://ayufan.eu)." +echo "" +echo "The purpose of this script is to remove boot0 and make the disk unbootable." +echo "" + +usage() { + echo "Usage:" + echo "$ $0 [disk]" + echo "" + echo "If no disk is specified the /dev/mmcblk0 will be used." + exit 1 +} + +if [[ $# -ne 1 ]] && [[ $# -ne 2 ]]; then + usage +fi + +DISK="${1-/dev/mmcblk0}" + +echo "Doing this will make the "$DISK" unbootable." + +while true; do + echo "Type YES to continue or Ctrl-C to abort." + read CONFIRM + if [[ "$CONFIRM" == "YES" ]]; then + break + fi +done + +echo "" +dd conv=notrunc bs=1k seek=8 count=32 oflag=direct if=/dev/zero of="$DISK" + +echo "Done." From 45cce2e1416975438471163119228353db24a174 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 3 May 2017 16:05:41 +0200 Subject: [PATCH 056/168] Rename pine64_remove_boot.sh to pine64_remove_boot0.sh --- package/root/usr/local/sbin/pine64_install_to_emmc.sh | 2 +- .../sbin/{pine64_remove_boot.sh => pine64_remove_boot0.sh} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename package/root/usr/local/sbin/{pine64_remove_boot.sh => pine64_remove_boot0.sh} (100%) diff --git a/package/root/usr/local/sbin/pine64_install_to_emmc.sh b/package/root/usr/local/sbin/pine64_install_to_emmc.sh index d261c0b2..4c370a4a 100755 --- a/package/root/usr/local/sbin/pine64_install_to_emmc.sh +++ b/package/root/usr/local/sbin/pine64_install_to_emmc.sh @@ -115,7 +115,7 @@ echo "Downloading and writing to /dev/mmcblk1..." curl -L -f "$DOWNLOAD_URL" | $ARCHIVER | dd bs=30M of=/dev/mmcblk1 sync echo "" -echo "You may want to run now pine64_remove_boot.sh to make the current device unbootable." +echo "You may want to run now pine64_remove_boot0.sh to make the current device unbootable." echo "" echo "Done." diff --git a/package/root/usr/local/sbin/pine64_remove_boot.sh b/package/root/usr/local/sbin/pine64_remove_boot0.sh similarity index 100% rename from package/root/usr/local/sbin/pine64_remove_boot.sh rename to package/root/usr/local/sbin/pine64_remove_boot0.sh From 440fdbdc16b6acd5b265c9489f61223b8aea8b63 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 3 May 2017 16:07:02 +0200 Subject: [PATCH 057/168] Add eGON check to remove_boot0.sh script --- package/root/usr/local/sbin/pine64_remove_boot0.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/package/root/usr/local/sbin/pine64_remove_boot0.sh b/package/root/usr/local/sbin/pine64_remove_boot0.sh index 22f58465..70b52133 100755 --- a/package/root/usr/local/sbin/pine64_remove_boot0.sh +++ b/package/root/usr/local/sbin/pine64_remove_boot0.sh @@ -37,6 +37,14 @@ while true; do fi done +# Taken from: https://github.com/longsleep/build-pine64-image/blob/master/convert-pine64-image.sh#L28 +boot0headerpos=$((8*1024+4)) +boot0header=$(xxd -p -s "$boot0headerpos" -l 4 "$DISK") +if [ "$boot0header" != "65474f4e" ]; then + echo "Error: Target image has no eGON header, aborting!" + exit 1 +fi + echo "" dd conv=notrunc bs=1k seek=8 count=32 oflag=direct if=/dev/zero of="$DISK" From b1b6e796ffb43199a2520c4385d914ce8defb950 Mon Sep 17 00:00:00 2001 From: Thomas Kaiser Date: Wed, 3 May 2017 16:28:19 +0200 Subject: [PATCH 058/168] Add RPi-Monitor installation script Relies on https://github.com/ayufan-pine64/linux-pine64/commit/7c37b2ad1b0092d7f9d83de64a1df9db7f625ee1 --- .../usr/local/sbin/install_rpi_monitor.sh | 276 ++++++++++++++++++ 1 file changed, 276 insertions(+) create mode 100755 package/root/usr/local/sbin/install_rpi_monitor.sh diff --git a/package/root/usr/local/sbin/install_rpi_monitor.sh b/package/root/usr/local/sbin/install_rpi_monitor.sh new file mode 100755 index 00000000..1e0ca8a7 --- /dev/null +++ b/package/root/usr/local/sbin/install_rpi_monitor.sh @@ -0,0 +1,276 @@ +#!/bin/bash + +# Install rpimonitor on a pine64 running ubuntu (may work for debian also) +# +# Run latest version directly from github when logged in as root / sudo with +# wget -q -O - https://raw.githubusercontent.com/pfeerick/pine64-scripts/master/install-rpimonitor.sh | /bin/bash +# +# Original code lifted from http://kaiser-edv.de/tmp/4U4tkD/install-rpi-monitor-for-a64.sh +# Original code written by tkaiser, as well as assuggestions for a deriverative work +# +# This modification written by pfeerick + +if [ "$(id -u)" != "0" ]; then + echo "This script must be executed as root. Exiting" >&2 + exit 1 +fi + +useEncodedPublicKey() +{ + echo -e "\nUsing backup copy of public key for Armbian package list" + cd /tmp && echo "LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tClZlcnNpb246IFNLUyAxLjEuNgpD +b21tZW50OiBIb3N0bmFtZToga2V5cy5mc3Bwcm9kdWN0aW9ucy5iaXoKCm1RSU5CRlVHOHA0QkVB +REdsc2VHRm1kampmbW9YdEhwWnhxZ1lIR3dlQ25HWjA1TGlHZ0VWZ2J2NVNyVHNKc3lPOEg4UnlC +UAp4Z2JwS0VZK0pDVjFJbFlRUGFFM1RpbDEra3FtUjRYTktidWZqRXVxQVY0VkpXMzI2N3RZUnVK +MzA4RTcwcTdrcFFTc0VBV0wKVlkreFYvbDVzdEF1cHA0L3dGNUJQZEFqVzdnTHVpY1BucW9LSzBq +Y2ZyanV2ZDQ1V0ZocGpMMVNkZDBQbklMZWh6MHRvNlIyCkg5TXNXK1ZZWVBGenRkakJNLzc4VUQ4 +Z3JNY0NtLzdNejhFTlJLQ25US3JnajRicFdBMGtQRUhOQmZhb1FRVWs1ZkNKWU5NTAp2TE1JR1pj +V2VHT1BvK3lGbmw0QzZxVEVnczBnNy8wRTU2eWNhUURKK2dCQ0g5WU5hOGozZUgvdDF2TU4wRVJY +aU9RZjZXWGcKUmloT0QxZmNuWkZtY3pRRlQzR0dodjN5Ky9jVXBzVWxtaGhKNnRldGl1WE51VGZy +bDNNKzk5cVVxNS84aWlxMjkyTUNtbjVzCjBCRU9peWZRMmwydVptanlEVU8rNGxMOW8zTVgwVzVY +cDFwdUUycDQyYit3NDU4YURLdXVGdkJ6Vk1pVTUxSnM2RFpuYWh4dQoycytORHp0RGd1dDdwK1A2 +MFVCQ2JsdFhFQjBaSXlXVEFrS0N3SWxhcFo5eURpSHFYaU5sdVRkQmlGV0d5VTN4bGI0ZnVRencK +bHd2bVMzeXo0QWs1R0NkRHBpTG1Kb0hPS1Y2cTg1VmFJNFQzZ2l4eDRKd0VmZGluY09HZmVwU1dG +bWJFc0R1Vng1dmJEVjVECndiM29BZzgwenAzVy91TnlYN0c0MXVJR0ROelpMODJwMlh0Z0d6a2po +RWJLQW5OYXZ3QVJBUUFCdEQxSloyOXlJRkJsWTI5MgpibWxySUNoTWFuVmliR3BoYm1Fc0lGTnNi +M1psYm1saEtTQThhV2R2Y2k1d1pXTnZkbTVwYTBCbmJXRnBiQzVqYjIwK2lRSTQKQkJNQkFnQWlC +UUpWQnZLZUFoc0RCZ3NKQ0FjREFnWVZDQUlKQ2dzRUZnSURBUUllQVFJWGdBQUtDUkNUMW9pZm53 +NTQxVDZXCkQvMFgrTEQ5R20xTlZnWmhySDM1b1EzenN0RU5yVGpENkxGK2tUK3poZTZRUjliQWRP +bWViN0plNDIzeS9VWTNuU2FKbFMvTwpXc0pzODl0WFV5RTJqYnh0TEFwTjZPTVRac0l4amd5ZzNm +amJIVi9sdy94R3ArY3FIalgrQXk1UVp1ZEpWeEdKTjdXSmFSR3gKeW1qb3A3RVg0Q0hpaWRHWlBa +b0RUMjNXQXJMaWE3RThNTEIvb0szd1c2azlRbGMyU3JobGR6cHVTbU93SFFYOXB4bXk5ZGdmClph +MmE5dzFjRXZrdERucml6UG1meHdZYUMzOEZLUnF6MUk4Q25QTUVTVkorNm1MRVl4V0p2SkFOdVZ2 +cmhxT3Rqa1k2eUkwdQpTT0ZIc21nY2krM1gyYzdXV2hsb0t1Yi9QZjdUdE02dGw2UkNIZkt2bnNy +VFpQdnhQMS9DZ3pRaUFJVFdwcEJsb2xuU1JIWHAKM25vdENGMXJWYmdJbndWdUNaQ3VXUEp2SEM2 +UjN0OS9VZ0VTYW8wdEV3cjRtdzdqTnd0c3pXb3U0cll6akVBTUUvTy9rQkJXClBiRFVSbS80Ujhs +MFhTbkcwemhlUEt2NWlDemVRYkl6VWVBRDFEY3ZrN2ZhbGdubDlGWDkvTFpDWTFrRXdGTWYyREcw +M2x3Rwo3YzRJQ1NWQXowcE5FUFpkcXB5Q2w4MlZLa0RuZThQQTBSYi91UElPUVkzYUR1OGJnY1BR +dW9rbVJSTDRyd2RuUkNWcjBBRkQKWmhWUW5VamNkeThBdkVQZXllMmZOZExodGUrS1VXaXlGTldw +MnZXMkxiSjlHeFBzdGFGaWhYWkJjQ0VwR1dzTkhlYkRkMUttCk5HeVBLY3F6YUlmekhQTFA4K2Vl +MmRlS0E5NVBWelYzaVRMK09ia0NEUVJWQnZLZUFSQUF2R2FLQ0hER2wwZUM3ZkZvazVzUApxMVdh +dHRwcVE5UUwwQmdaOTVWUUxuKzcvMW5YbUtzRGZDd0N2bkJHcUxYelBReXZXaENiQ1ROOW9Za3Fv +a0JYMkNoMXpPSUEKQnludytVQ00rS3laY21jaVlaSUYyMU9zdFdNTTBuUTA2am5vNUhxMXZTSGxn +VGthYVlXWllvcVhvY01DUzlsbHZJMk5WRzM0CmJjYWsxaEFoOUVrZm1UaFZ0dERlR1pQK29zcXQy +bWVmcENBVklUUDFlUVdVM1JVQnBPS05wdGhwTHhNaHkrbDdtOHRta0xIMwpGdXF3WnZWalkyNDF3 +MW80QVdWcEpEL0pkT3VBZkh0ZjcvVURQY2hTWkxlOUVhOFkrYm5raVp4Z1NST3RGclJ6YlZ3UDFJ +ZDQKUktUNDRCd0tNclh1OEdpWkFQdlFxNUN2SU5xWkRNcWlxcTQrakZKUE1Wb3J0dXhYc2tSaDFk +VllPaW9IMW11emVIZjU2MC9CCkxXK21CdUVkK3hFMGdkNlNYUmdQaWZsUk95bHBKQ2I5UXhpOE9m +cTZGRUhCZko4bUh6NDlkNjBxeVhaTmRObHhMaEEzZGZPdgphYWhGQmdYd05Td2phazB6ZjZScHVm +QWtoOFNpNWpjM1FoN2xwdXdzQmVseU51N3RCYkwyeThXblVlei8rYWVYOXNCU3FzNzgKbWZwRGRM +QUduSWxUOVljamtIbDVXMzg1ampoQkFocEFnaUxJc2RTUktjYzJDSTM0VmY3NzVjTExJWXJjQnJq +Vk1MWUJ3RWlaCkhPUE85MExuaXpneDFsNXQxd0cyQWE1T2FyVFRVUElnTWlUVXRLUFE4Qm1jakdN +WmlhdmRKd3FHVXppREQraE1LY3hQVU1qeQpZaXUrbmdrSDFST3VDeE1BRVFFQUFZa0NId1FZQVFJ +QUNRVUNWUWJ5bmdJYkRBQUtDUkNUMW9pZm53NTQxV203RC9zRzBvdU0KNzFjNW1UK2VnZmYrUXhm +RXh5K0pCNC92TDFwTFNIYk1SOEF0QUpMTitZaDZFemVHbVcydGdhMEJrOUF4RWVrUXJhWHJNRmha +ClNwVDk4cUpubkRwZG96ZmVJQXlUd3ppdzlLOW9wQjBkVS8rTTNzVmlka0o1bXY0TFc2Q0phYVkz +cnNvbTBUSWpheEJ2WHFTZQphZEpGNFdHVUh6ZzNldys4YWgwWkc4U0RadTE5a2V0TjJjblRNQXRn +Tys1M0VwanFwazN1TUY1aE5hRUh0OXdWajJ0cS9hbkwKRXNsNFQ1VS9la1FuZHhjVEVzVjJLSVZT +b3llMzV5ZTRhYW0xZ1doVzlKSUZ0U2hoRXRYRC81T3Z0ajcwNllMVFA4NFU4eUhTCnR6TTZMTEdw +cU04YmIxUXNCVVdSVWhJS2lkbHRtTzlLalg2ckpadWh3a2NWSkpZUmRiZXRFWGJpU0l5ZU5aeTdi +QmU0RW4rZgpWY04wZWtCRDM2TGhNY1ZMOEYxTW50cjFMNXhmMGNGRXBGcEVvZFFVdmNheU5ncEky +eTdFSVBqS21LaFZ3VzVkeDM2UTBDc0MKbndjQytLZzZCTnpsaUk5SXMrb0EyQVZJYW5GUHZqdlN3 +Zkc5cEgrMi91K0tCNEhUMlV4MUZCYkJpNUdBd28rY3UxZDRYQWM1CmJaSGRQbkFWdG5JTjlkS1J1 +c1o4SUdIV0VkOFB3MGtSZXB1TmhTbVNOQUxRa1M2QitwcFFadG1vR3NCQ3FKZU1QeFF4ait5SQov +YkwzZG1BMlVYeG5HSjN2czJ5YkZ5SEczYW9vdktKZldWeXR4T0pmRzdxajFBQ3JPWU9YZWtXbGN3 +NWxFaVlGY2NrdWtOcXEKRnYvQ1hoK0JaRmxRVDRERHZKbFkwL0tRRkZLb2dRPT0KPUkvUDgKLS0t +LS1FTkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLQo=" | base64 --decode > keyfile + + if [ -f /tmp/keyfile ]; then + apt-key add /tmp/keyfile + local keyAddState=$? + + rm /tmp/keyfile + + if [ $keyAddState -ne 0 ]; then + echo -e "\033[0;31m\nUnable to add backup public key... exiting\033[0m" + + if [ -f /etc/apt/sources.list.d/armbian.list ]; then + #remove if not Armbian + if [ ! -f /etc/armbian-release ]; then rm /etc/apt/sources.list.d/armbian.list; fi + fi + + exit 2 + fi + else + echo -e "\033[0;31m\nUnable to use provided backup public key... exiting\033[0m" + + if [ -f /etc/apt/sources.list.d/armbian.list ]; then + #remove if not Armbian + if [ ! -f /etc/armbian-release ]; then rm /etc/apt/sources.list.d/armbian.list; fi + fi + + exit 1 + fi +} #useEncodedPublicKey + +PatchRPiMonitor_for_sun50iw1p1() +{ + echo -e "\nNow patching RPi-Monitor to deal correctly with A64" + cd /etc/rpimonitor/ && echo "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" | base64 --decode | tar xzf - + + which systemctl >/dev/null 2>&1 + case $? in + 0) + # Jessie|Xenial + systemctl restart rpimonitor >/dev/null 2>&1 + ;; + *) + # Wheezy|Trusty + /etc/init.d/rpimonitor stop >/dev/null 2>&1 + /etc/init.d/rpimonitor start >/dev/null 2>&1 + ;; + esac +} # PatchRPiMonitor_for_sun50iw1p1 + +cleanupPackageLists() +{ + echo -e "\nCleaning up package lists" + + if [ -f /etc/apt/sources.list.d/armbian.list ]; then + #remove if not Armbian + if [ ! -f /etc/armbian-release ]; then + rm /etc/apt/sources.list.d/armbian.list + apt-key del 9F0E78D5 >/dev/null 2>&1 + apt-get update + fi + fi +} # cleanupPackageLists + +echo -e "$(date) Start RPi-Monitor installation\n" + +echo -e "Checking for dpkg lock\c" +while true ; do + fuser /var/lib/dpkg/lock >/dev/null 2>&1 || break + sleep 3 + echo -e ".\c" +done + +echo -e "\nAdding Armbian package list" +if [ ! -f /etc/apt/sources.list.d/armbian.list ]; then + echo 'deb http://apt.armbian.com xenial main utils xenial-desktop' > \ + /etc/apt/sources.list.d/armbian.list + + apt-key adv --keyserver keys.gnupg.net --recv-keys 0x93D6889F9F0E78D5 >/dev/null 2>&1 + + if [ $? -ne 0 ]; then + useEncodedPublicKey + fi +fi + +echo -e "\nUpdating package lists" +apt-get update + +echo -e "\nInstalling rpimonitor (this may take several minutes)..." +apt-get -f -qq -y install rpimonitor +/usr/share/rpimonitor/scripts/updatePackagesStatus.pl & + +cleanupPackageLists + +PatchRPiMonitor_for_sun50iw1p1 + +echo -e "\n$(date) Finished RPi-Monitor installation" +echo -e " \nNow you're able to enjoy RPi-Monitor at http://$((ifconfig -a) | sed -n '/inet addr/s/.*addr.\([^ ]*\) .*/\1/p' | grep -v '127.0.0.1' | head -1):8888" From 5918a0ff482a54a56feecef6f8bd02418eeebd07 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 3 May 2017 22:23:50 +0200 Subject: [PATCH 059/168] Revert change to install_i3_desktop.sh to cleanly merge longsleep changes --- package/root/usr/local/sbin/install_i3_desktop.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/root/usr/local/sbin/install_i3_desktop.sh b/package/root/usr/local/sbin/install_i3_desktop.sh index 7ed6ea13..26351001 100755 --- a/package/root/usr/local/sbin/install_i3_desktop.sh +++ b/package/root/usr/local/sbin/install_i3_desktop.sh @@ -41,7 +41,7 @@ if [ ! -d /usr/share/slim/themes/pine64 ]; then cp -ra /usr/share/slim/themes/default /usr/share/slim/themes/pine64 wget -O /usr/share/slim/themes/pine64/background.png \ https://github.com/longsleep/build-pine64-image/raw/master/bootlogo/bootlogo-pine64-1366x768.png - sed "s/^current_theme(.*)/current_theme pine64/g" /etc/slim.conf + sed s/^current_theme(.*)/current_theme pine64/g /etc/slim.conf fi echo "Done - you should reboot now." From 2a0c1ac0a1bd3566b1cc05cca2a36377c8ebea88 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 3 May 2017 22:34:52 +0200 Subject: [PATCH 060/168] Remove corekeeper per https://github.com/longsleep/build-pine64-image/commit/8b448b3b771c6d8b2983470bf394c4bb411c8407 --- .../etc/systemd/system/cpu-corekeeper.service | 8 ------ .../root/usr/local/sbin/pine64_corekeeper.sh | 26 ------------------- simpleimage/make_rootfs.sh | 1 - 3 files changed, 35 deletions(-) delete mode 100644 package/root/etc/systemd/system/cpu-corekeeper.service delete mode 100755 package/root/usr/local/sbin/pine64_corekeeper.sh diff --git a/package/root/etc/systemd/system/cpu-corekeeper.service b/package/root/etc/systemd/system/cpu-corekeeper.service deleted file mode 100644 index 5b19a75f..00000000 --- a/package/root/etc/systemd/system/cpu-corekeeper.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=CPU corekeeper - -[Service] -ExecStart=/usr/local/sbin/pine64_corekeeper.sh - -[Install] -WantedBy=multi-user.target diff --git a/package/root/usr/local/sbin/pine64_corekeeper.sh b/package/root/usr/local/sbin/pine64_corekeeper.sh deleted file mode 100755 index d22e0a0d..00000000 --- a/package/root/usr/local/sbin/pine64_corekeeper.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -# -# Simple script to enable CPU cores automatically again if cooling state is -# 3 or lower. -# - -set -e - -get_cooling_state() { - echo $(cat /sys/devices/virtual/thermal/cooling_device0/cur_state) -} - -enable_cpu() { - if [ $(cat /sys/devices/system/cpu/cpu$1/online) = 0 ]; then - echo 1 > /sys/devices/system/cpu/cpu$1/online || true - fi -} - -while true; do - for c in 0 1 2 3; do - if [ $(get_cooling_state) -le 3 ]; then - enable_cpu $c - fi - done - sleep 5 -done diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index c6a2d861..53ac8ee3 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -281,7 +281,6 @@ EOF do_chroot systemctl set-default graphical.target ;; esac - do_chroot systemctl enable cpu-corekeeper do_chroot systemctl enable ssh-keygen if [ "$MODEL" = "pinebook" ]; then do_chroot systemctl enable pinebook-headphones From 119001e13edae2c2003b8954ccc62eb87824a64f Mon Sep 17 00:00:00 2001 From: Thomas Kaiser Date: Thu, 4 May 2017 07:56:36 +0200 Subject: [PATCH 061/168] Add preliminary stretch multistrapping --- simpleimage/make_rootfs.sh | 69 +++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 53ac8ee3..b422c18c 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -83,6 +83,10 @@ case $DISTRO in ROOTFS="${DISTRO}-base-arm64.tar.gz" METHOD="debootstrap" ;; + stretch) + ROOTFS="${DISTRO}-base-arm64.tar.gz" + METHOD="multistrap" + ;; *) echo "Unknown distribution: $DISTRO" exit 1 @@ -120,6 +124,46 @@ deboostrap_rootfs() { cd - } +multistrap_rootfs() { + dist="$1" + tgz="$(readlink -f "$2")" + + [ "$TEMP" ] || exit 1 + cd $TEMP && pwd + + cat > multistrap.conf < "$aptsrcfile" < "$DEST/etc/apt/sources.list" < Date: Thu, 4 May 2017 08:02:31 +0200 Subject: [PATCH 062/168] remove and not comment cpu-corekeeper enabling --- simpleimage/make_rootfs.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index b422c18c..76566f57 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -135,7 +135,7 @@ multistrap_rootfs() { [General] noauth=true unpack=true -debootstrap=Debian Net Setup Config +debootstrap=Debian Net aptsources=Debian [Debian] @@ -347,7 +347,6 @@ EOF do_chroot systemctl set-default graphical.target ;; esac - # do_chroot systemctl enable cpu-corekeeper do_chroot systemctl enable ssh-keygen if [ "$MODEL" = "pinebook" ]; then do_chroot systemctl enable pinebook-headphones From ebea8b6ce7f1f5c95dbf86c088d849f139d0363f Mon Sep 17 00:00:00 2001 From: Thomas Kaiser Date: Thu, 4 May 2017 18:54:57 +0200 Subject: [PATCH 063/168] Build i3 Stretch variant only for now Takes less time to build and is sufficient to collect missing pieces --- Makefile | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index fe427dd9..c9ccafb4 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ export LINUX_BRANCH ?= my-hacks-1.2 export BOOT_TOOLS_BRANCH ?= master LINUX_LOCALVERSION ?= -ayufan-$(RELEASE) -all: xenial-pinebook +all: linux-pinebook linux/.git: git clone --depth=1 --branch=$(LINUX_BRANCH) --single-branch \ @@ -112,6 +112,16 @@ xenial-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebo pinebook \ i3 +stretch-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools + sudo bash ./build-pine64-image.sh \ + $(shell readlink -f $@) \ + $(shell readlink -f simple-image-pinebook-$(RELEASE_NAME).img.xz) \ + $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ + $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ + stretch \ + pinebook \ + i3 + .PHONY: kernel-tarball kernel-tarball: linux-pine64-$(RELEASE_NAME).tar.xz @@ -130,5 +140,11 @@ xenial-mate-pinebook: xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE). .PHONY: xenial-i3-pinebook xenial-i3-pinebook: xenial-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +.PHONY: stretch-i3-pinebook +stretch-i3-pinebook: stretch-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + .PHONY: xenial-pinebook xenial-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook + +.PHONY: linux-pinebook +linux-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook stretch-i3-pinebook From 48fa36491c4e1f166ba8e7f799dc4c72fa2a91b2 Mon Sep 17 00:00:00 2001 From: Thomas Kaiser Date: Thu, 4 May 2017 19:34:43 +0200 Subject: [PATCH 064/168] Add 'debootstrap multistrap' to build-environment --- build-environment/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-environment/Dockerfile b/build-environment/Dockerfile index 61166d8d..36a68074 100644 --- a/build-environment/Dockerfile +++ b/build-environment/Dockerfile @@ -9,7 +9,7 @@ RUN apt-get install -y python git-core gnupg flex bison gperf build-essential \ dosfstools gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ gcc-arm-linux-gnueabi g++-arm-linux-gnueabi ccache \ sudo cpio nano vim kmod kpartx wget bsdtar qemu-user-static \ - pxz ruby-dev + pxz ruby-dev debootstrap multistrap RUN gem install fpm From 5dde29a95b09f6a55785af34f090cc2fb5d350f9 Mon Sep 17 00:00:00 2001 From: Thomas Kaiser Date: Thu, 4 May 2017 19:36:37 +0200 Subject: [PATCH 065/168] Removed 'apt install' invocations on build host --- simpleimage/make_rootfs.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 76566f57..c8f77439 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -110,8 +110,6 @@ deboostrap_rootfs() { bsdtar --include ./usr/share/keyrings/$KR --strip-components 4 -xvf "$DATA" rm -f "$DATA" - apt-get -y install debootstrap qemu-user-static - qemu-debootstrap --arch=arm64 --keyring=$TEMP/$KR $dist rootfs http://httpredir.debian.org/debian rm -f $KR @@ -151,8 +149,6 @@ suite=stretch packages=netbase net-tools ethtool iproute iputils-ping ifupdown dhcpcd5 firmware-brcm80211 wpasupplicant ssh avahi-daemon ntp wireless-tools EOF - apt-get install -y multistrap qemu-user-static - multistrap -a arm64 -d rootfs -f multistrap.conf # keeping things clean as this is copied later again From 17961b6d4d5428ec843536b0a74828a78a9647ab Mon Sep 17 00:00:00 2001 From: whongx Date: Fri, 5 May 2017 12:51:51 +0800 Subject: [PATCH 066/168] Preinstall apps and add pinebook background image files --- .../local/sbin/pinebook_change_background.sh | 8 ++++++ .../local/sbin/pinebook_preinstall_apps.sh | 27 ++++++++++++++++++ .../Pinebook-Wallpaper-1.jpg | Bin 0 -> 75908 bytes .../Pinebook-Wallpaper-2.jpg | Bin 0 -> 76525 bytes .../Pinebook-Wallpaper-3.jpg | Bin 0 -> 79801 bytes .../Pinebook-Wallpaper-4.jpg | Bin 0 -> 227280 bytes .../Pinebook-Wallpaper-5.jpg | Bin 0 -> 228032 bytes .../Pinebook-Wallpaper-6.jpg | Bin 0 -> 233281 bytes simpleimage/make_rootfs.sh | 10 ++++--- 9 files changed, 41 insertions(+), 4 deletions(-) create mode 100755 package/root/usr/local/sbin/pinebook_change_background.sh create mode 100755 package/root/usr/local/sbin/pinebook_preinstall_apps.sh create mode 100644 package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-1.jpg create mode 100644 package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-2.jpg create mode 100644 package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-3.jpg create mode 100644 package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-4.jpg create mode 100644 package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-5.jpg create mode 100644 package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg diff --git a/package/root/usr/local/sbin/pinebook_change_background.sh b/package/root/usr/local/sbin/pinebook_change_background.sh new file mode 100755 index 00000000..4fdc62f0 --- /dev/null +++ b/package/root/usr/local/sbin/pinebook_change_background.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +set -xe + +#Add pinebook wallpaper +echo "\nChange Pinebook wallpaper..." +gsettings set org.mate.background picture-filename /usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg +echo "\nChanged!!!\n" diff --git a/package/root/usr/local/sbin/pinebook_preinstall_apps.sh b/package/root/usr/local/sbin/pinebook_preinstall_apps.sh new file mode 100755 index 00000000..743e6996 --- /dev/null +++ b/package/root/usr/local/sbin/pinebook_preinstall_apps.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +set -xe + +#Install relevant libraries and applications +echo "\nInstalling programs...\n" +add-apt-repository -y ppa:rvm/smplayer +apt-get -y update +apt-get -y install aisleriot build-essential emacs gcc geany gimp git gnomine gnome-sudoku htop libpixman-1-dev libvdpau-dev mplayer scratch smplayer smplayer-skins smplayer-themes smtube vim +echo "\nInstalled!!!\n" + + +#Solve video issue of cannot stream video smoothly +echo "\nFix Pinebook video...\n" +git clone https://github.com/linux-sunxi/libcedrus.git +make -C libcedrus install +git clone https://github.com/linux-sunxi/libvdpau-sunxi.git +make -C libvdpau-sunxi install +ln -s /usr/lib/aarch64-linux-gnu/vdpau/libvdpau_sunxi.so.1 /usr/lib/libvdpau_nvidia.so +rm -rf libcedrus libvdpau-sunxi +echo "\nPinebook video is fixed!!!\n" + + +#Remove scripts that may cause the system crash +#rm -rf /usr/local/sbin/pine64* +apt-get -y upgrade +apt-get -y update diff --git a/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-1.jpg b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5745b4cb6116fb384a0be2f84c651a4a98a8bb4d GIT binary patch literal 75908 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 e2`GG;!JIUI9r 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 SD-38J2jkUwx|y8cr2hkAuHI|_ literal 0 HcmV?d00001 diff --git a/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-3.jpg b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6493f10d8a93f7291e2188b8839760bcc10439bc GIT binary patch literal 79801 zcmb@uc|6tm`#ye1MbikWrp;2xQYb?9QW$&o>{F3s%f34;r%@zjE$bjlgo!wIGgLyD z2ysI8-LW4Wj_>_^9nH-9v;4l_KYq<)s^cuZ?&p2q*L~gBeZS7emyK^YHgy#>6&wR2 z4rdMj;Wj35>=!+*+56xaa7;KHP6d86jblA;?R?b+XZ;8Kgkgh(BjA{}pkMGi(>5mf zfBRM@rmfqVw{6?LZ5#6rW)}Fxyko~s^b3Cf@yDGz+0ie~zke|>ZQaVeoq5-e9lJPL zSy})7`Tz4@HvYh|GjG9dHQK_!j$>qJ*uu`R@fKH$V_?8-VL-p&QqeC49OD-3(pa#c z{_7cdj&aL2c#aLn$jHF3WgGJk+u$+N78djbI}`6|j`O-#Ty}50^ECO0m>%c0*MBNq zb-f#&a#Vc#rwjVW&g{vrzBbe67Qx5daxe8_e}RESjkSl=>;U17a^c>e*x?cw8MZLO z!7y&!vSlj+j)9%=H1GK>x*S(rjxgPMDz-cM^`D=%&M5WiT@~jH&p$JJcTY-n|Iv#V zHo9;-x4^sEx3J?Bacdv&2Kci)=Xlvzl%EioGtb>tVmp$o$;>NoTZxD5LGlOYioW(lp%+|aVl?16&&+=5HbL!n6dN;(E{<>x-oVJt z$;-S~9bU{UkdHlJQ-Y_Yg~T*@>n=s|vZ_CdV0Ja&WzmgRKLkJKtQKPsIuy14I3xV* zQaW3@0gtr-yef!Ki7nFR2_aL7Bl!cXI)PV6?8Aj{_~Q_Pk68&`tHd@4&)q*o$UKK$ z!g7fqcpH5@+x=4yl9|=n2uzvzY_|t9&)ww+LRSQjZ?BDeZ(r=cMEFm;Q;@Z{3Cb)? z2GR`7!G|!z8K3EaC2Y*_)Zh^Y0VSS81Z6g6B_;znG?t5OclN+Dj0Wd;_`qUZB)kw_ z$IDo!#Ev8I?LDV-guu&)&J4_WrlPELiGBb=Y=lhxEhnQ`)$gBrbQ^5E@I*`qUUT6I zyl$Ja(le#!mk4}Hm(tmvqCcNuc5_y9Jh}@O!iNY(F~jeCN{j~5%u0tM;lKu&GL<<0 z0Be((U74^`0cR*}2~TDeVq-&&y{jn8wRPPGT_T$jqwaCGJIE@q!vsu4p5zH8FdY$a zWnzmw&%EQx&lllzczD?_Ji)x3&lY)(7o2kQnA`%}jlUx=T^}nUL!_kXto* zH8DrRi-p9P)q{Az^HHql)CotA)ngC9hj3otXIHi;W-JE4Vgj!w6Luyh5IzKW4>$wP z1Nj9xDbPdiht=5+7a75v^UPR~ga0AOQy3VTU6GB-N)Vkq=h>Am@*%U4FTsLm7nv>* zc+RtcMetE0ywnI^D`}crDFA>her{3WV^pxAO zIxgUf1tpsjvgVvLmb{s_&%wU}&PO?W4xD!BDa!>&Z-%;yY~aLyf)%hKE(?d{_LVW+*^uaq2eh}j+;7pDX zEa1V1ScD`qGJL>Hhd_d)U`1|c=EX8w86NO(q%bf*>O9yghW&+(N7Bg94@w4nD(3{j zEnvrg81Bmc6f8txLCE|7);_}!41TwUP>1ZzM1g`11oF6n_iy7*qI`!_ICMLm{Rt}= z3FilP?65%zhw=@QojakKkyZ-13Ao4f10OgJAut=}Nl#e-;#YThu;j%G90#}psEa79dPO34k0Bi~(Q{l{Ey&^oW2kMKR1Cjq(FQBf>WX6d0tzi3qVl zw1BbjLN<7k8EODBSQ$)5m=FK0q*BZT-jfar3g$E)N z;0qEGpaPbL}P2k^34d8Oe}Ptwr|GIPf-2&ezk z>h*LT4^mCLkW5bnFjQxHEy1;i5Ltanox05nwfM5bOgtUn1B*W@2?Y^$4P0 zn{-75s2-ezGy>`Wm8HSE|1tMpEDeRkCQE~KPY0AjWe^NqoAKsfd1h9uvBhCCF8DTKwCEyk$9Ax%Wpq*IRhDr{F zybf7~XgbPVpro5HfbkPB4m=4lg8l%oL&nm}7t~2Oh+p7rfTbW5dxD+=4+Q#v$^B5q zZ$q5{K7tAjq$Aj{Nzb;UE5oeb5>9}g198n@K=I@wz~6t~RShbyI{G}wkQY{Xg~1w(L0KxXSRz)56cpbb|J&_z#I zNC&9WgQ#q=A*PPNdNcX~2~bd@au4rEsScGJXdbG|d(T06WM)+lYu(%FN3k0FQ9+Q;bz$#1wTQ;4(-8PU$1i-uw^z4CD3Ch+)P01DN~YNeZfUSj&b^ z_0m(|wHTQc0~$`pGDbjb46?xPEhi)C+!Ixid z2bmuL1_9l-L-+&UD{-WtSP;DPROuNY#5tfi%&H?1e^%xEhMdFzR2hf^^ouBPu_g-Z z7Le&!z_KYJ{(&)VC{n?Pp1?_i=>m7ryXgRhh3-G3oL-@r{|91TtGz?AW72(8Gc8=sF=7 zRZLJoL*pPuw;77F+U<0Vvmkc9e-E;#4lLczw8>fZfyvPu7|3A6$k`D6isXf30KA7{ z{^)iv`~(9&B{<595dGlhRODuk6tGSmC>dNo$O%V+fJ#8ujT$4sSvpg}E)$3qbYbWu zP(8Yv&wLyH24VC!?!#3fs!9(V_yk^hgTe}F59ff=9ug0l8T5$$6sjwzpTvqWs#oA% zFdf*|CN(>RT4xsBCy)imU}osTFp};H{}u!T)Kr96P~bO7+}~XX_QYT^)@|>%2Gbz? z73H~pT)%M#=oTVN0NoJnOpvc|_8c}!Ok1E7gHM9t!XbV!4$X$(3uy~=l&G2>1Q+eUi>KEynH zE*SVQN<}ajyDS1Ts=Ht`L^UFpyhuelcNfJsmbXYE;Y1$&w~FM7dK64#pcC>G2Ke_N z*8xQU!VP#Zaf0vz)I?}>u#$)h;5pQ9=mY%zEtY`y5a~j+g@AC`=E;4O)5zUm?q+-g zlp)~+i)Yl8WATesY1F$xNHAlaCj%YfnGt}quT0K3PyCE@FnZda1K0ikM9RR=>`Gf9 z2L5MKrnbq!vAh93!iIPWC?UX>poh4B3YrYaLx|Y_s+~bDqox^5M-&CLGXS>l32X{3G z5%8wSA<#XdivSxy4cP2OYk zhbjUS)WJiDj3MC0nhdC@$shI~hfsf}0<~<14OW}L`6x>N?lA$_j~+>89{n|ZrS-(; z)8PK94L;FLL%^hko=GH(Ob^bsV(MwBrmd~FhQ7j8xeOz^Wgpe77$U33I~G; zX&c?I-$(3=D1i@Me*R_Lt?qz}L?a9zY9A-^8*B8)|? zJVpiRfJ-kUgPFJ0IX2G{YC2~<9XM`7>LALF5ugTWIl(e@P~*^9qUbt$Bvs(0y80FxYA#1aH;D+GkWg?uF_#$@`(guUE6e|3x#z&i zBF~0k=VZRu$4WScWz>RXT}h%+8hVQv(%u}wR{QxSoW~wzuifO+A)jcBTJ%qw4QUxn zxPHLZ@nbrKIolw{z~LG|L-_z{%>V`c-{*UKZOvPCF&ru>J29yk15-FTblu4PAnU=8Km z^t2`9$9z%==n3@;&@4Q3+GA{>^Uq0V|G`qLw}g&1k)B7%=0d@xi_uGM#yKrC=V~*z z7LIE<_6Y?=+HO7(%hFF@o_bfp5*4FNa}WrU@WGpETkTKqD;5zxlD`SfuJ*e+D?f45~boNV-^sc+R%^iTsY>KEcWx=`=<& zUcPcE>fW?KYeW1j-+>L>+fPYf+ww?XsPejNjav38JM;sU!vq7`XLnhXb>`StjJj4i z?Jeb+zi}J?sqk=uRwZRE^r`e%n(B}3#?pVqlfoYz8G1_*F7Et&#FHeq;1N6VSf+0{ zNn;S|7f%o$cTzJm?f2W~)S6gIJ8jTro`oP@Iv~MvPZtz zUHj-Zn=^sxQ^K^9F|n18tg7ome9Y@=G&2P2>K*HK{1e-q+^;UWtFX7eGjZ*IJ(Zg= z(~$anf0MWUPZOpY(w+R$L_ztfxCmCyp*=fnR8?~NDcrg$+}8#DRowe>R_r8)$1-NK zqLYSRbsC#my3V8xp7u2-%6vRyJvt1O4skyiKSb?UR(EFCsKYT)7{|NA{s-&BYW8> z&uE2TlS0xvi8NNm0cV4z${^Cou%YTw+M^@Ak4>(1$_~j>ikKFC}ud)H$nJi(fC#C_6HZ1BZkMV1m3sLO1rmfJO3DKW*hjrsrGs2!6URn z*URI_TMxvNJSS#p+L{UGCVNmraddvA&#L`rZ2kzk&SsOe$;1(n22KL~H9|^y7@*d} z6;K0-Mo1p|mq@y)3PWoJEFM4+%k=+F#Zk$}Py}Ny|6mFxg+p=TMFQDMi_HdD>s9{k26BpZ{~=iKTsJ zostP%`F6jmVJsC>R|k`sp~A689u=%pVyV}0HM?B*sPwF0>U@%&?M%v&Xd2(lk?TGC zI9#h6CW$+A*uqkoCxgdTUerhqJv8wUs8x^5G5IY2d(L#2W{jekc>G#yEphm-5fp7D z@;Mc+zFtkqSC`c1YWZS3p{DwNM#F_g+@x2bg=#yYtvCBR?`OyM-|N!%E4dOPzs(Ai zXS4+I|G4_BHW)73u;C$JiN=uXA8Um6C5sHaQGDE$@P;pUrE1l(!ut(1g4*qWc)zrt z(ri=_y<{_)6KGR-A@`=vJ62xuGJipPb#{wtOQoKFTaE2wZAAt*VsdDJj@^r}RLzlA z>B(7TQNlG8QIDeYg677uxQ)ZsoRpVVyAn5WYP;KSz9{yy6Igxif8y=$A!j;1iBNst z3=yN}RyvEYN(M;Gks27A*rnAtqi@<@)MWFiWo747k%FUrZlJ0z-ch2uSmX5jzO+*>1V6T()ymYy3T5P{~qr+z{b?Tu2 zuH&hni$r-k?m3y*jqH1;9JZ&ko~9W+LRDVmPc=^!P^;G92&u6U`25O*0FpN}l&Cns zlwO_f@dMol*`hHv+Y5!~WAv6gle|(bd-a92k4&V$*nJ}>A|^`OAYfcPo<_?HvH zeE^q7bFQfszF0I5@y*Liv|>nVo3me7`#M!3Now#jyZ*Hv^`iv$8%sB@i0X?|SsMDq ztA4a=(AN6h)xes)BQ^4*UaJY0gs4JVeBcqYf|erhM~Rz}eI-Ay)K(3j=Y1%7{2K#1D!HCbW!zsVq#;F>u!N z{7cfuNX&OhAAuO1dX@&ag*G|=`phxDlBx7Ek?B`bLVnZPtI@oBN|aq$PDKwTKJ6b; zP;V`$*%LK%@Rogpk=F0$#*zkFa;@Slk2-65saWk6moXQfIG`{2Cro#tnCwAwAE&J6 zr0CzXEhC5WPgHB%%C{*rGvt0!JV`s*{%+waZLg+T{jl}{8)>5ajhlJN{?myUxU&a4##Tz^>)qXeNuf#7;RBArE31VX zWQkpmnz~~<%G5sHLr>^NJc>-2JvJ9Ra?X7`JmPWs4{RkaXG)G&@C|g?nvp)`jNpy# zIoXH-*FoJrl6rw4bEFDn98Zb1UOGlB+9@*?-eR=yyHBOn=SElmx2p=qYRy(zBSh!v zF=FfK-l`?n1amdrNWL0Ak?TnhSVLX=I&NNTbm-{0F6T9tbi6!byh`$3>T@I}aWlxB zSS^Ll7L6PM7tY;10<9q%rhQ>T7Lr1sgg|kDMjOf#E)wg50Yn&~jb%d0Jd`Ivl=2{} z7@SxC1*i!-8hg<@WHj{xE(2{N$Ace0HUX4@rH6mS5}?D-H6O_huAMYAGCb9tFf~`V`0xkQh%+@Q88yoDBf2??FXm@1#yl$s{`@?h zMWxGeGCl24t@}Xpz6y?y;eAnUOZwG5_slQF$XWJ@=zTm@m#z&bD^wT|T7Cn#U% zcLT?5`G! zkK~Dq@K$rKbGyeHbaqTXwL>2d=Ocr}u^V+o(70lepsE$<6usixLXh)` zS<&pdrXSqmco&2LKtWU6u4-S^%0LgR*?s)&W^yW$V{H|_3pZq><58Cb7!HybG&mTV zeZlkTm2BXQuQqBd-@=RLtR-=uZdx}!oWTD{yt^(U`yo=&4nqZ>5DqNRqpB%B8W~tW z-P*949X~z@*+$rPJ8}QI3FaA)^yr<)_m=tpu9mnm{XeNC;CEoFNCf-uYRP}-V)O^w zPDc(V?|Cjoh>_iPa4PcVz1H@*4V<4ueaDee64ptw+Jz>Q_ERLTCKm*S^tI)_5vQN*XN2%IHLL_1t7ZWVd( z>5s@oj>&IJndJBwrN1k|g+7l~uKJ7$;ry5u|0)LSMU4RH=YCZ~`dbG}rv$Tzp!|pE zZxJF7O?Dg^PkyO2nLkAPX~C^hPc6}uc=+gfq8OB%oxu=HoYgXBeV_jHT~b><`cv9W zf#UQ{TJ${!y3`@|DBd*E@<3PY$d(L)$YP00m+#k=@ReMy;G1369P{&)C?}7P$Vlg- z9WxX&0Q%779gg+wGmy_+e8wMaj~B6D%Z_<_%|7nI*sE~AY~^Te5}#vOu&YnR^})9_ z2}NK3vI|GrsfT@)g4kkKy5&9tx1rMm1G80)Rs4zsnznz!p@*o$TW0UGYWswZrI{fL zp0VgMpbi}*edziyg?n?T16tB1c7tG@LT^PNeSvGDJ(44YyP#Y`j?+gUJFw9$zyxPC zlFb-lr2q+VKr6604`?hHj6m9Bi&>b01km<WX7$a^_{nfjL6dV* z#P;T)IV~GvP;38e_p6AQ&xKW~rteaGa}-LmC35BTS~Abpgq|#Z|9-_soHI}|X>i!Z zR&~;uCN?0p=$~!a-Cpgf9I(z9&MbVL(fU{5a9M5NRGQCpSEhHei^-Z@POq}7 zM?tRe(EHA_H(Vp*;J?K7o_5FJ;5wMfbQ-!9-DERy{v+Is|5 zt|8e?weQ&T38Sy>p)7H3*03QLgfxs)9-!ap8#u{?GYZ!tCL)JskJ(z>~k zkl-P+5LWnT!8srikm6`bfK9>MYfcGf9eJv!KYbhorj67@EN(_ybq|`qDx9$!CpoP6 z9x1irO(?28RG3>bazFF4hOWZ#;wyVOts1Kfk2{Id!mEm<*@52iU2F&iU+Cm>aY)5iBG)M43 z5JV`xWKO6*5Wd)ceFJxV*P2eU>;4K~2^kMNS63%JpNKBf(Dg6pln)99**lzA984Xs zCbC7G=~if&IBAx4yhH!0rqb8;{U`YORO%CtsjDsp4tcf7*Y=i*%$Lf!f0F9rtGerQ zE5brhgTIDiDLdFQ!Hw@)u?_Pn47?M#Mt!Lg(KXWJZl)P+cq!IP>O+~Ln!+2Our({; z;-wDoWc{pKl6#;JCCq|#fh=s9<>@JD;SudAZs~Anc(6a-t@)#G-nPm{Yac6xp7k8O zw7f9Y{AibIVo}D7qiUyQ*y9OP$&8@a^9S8v3X&h2=3acQ;GhlvYbb{AicQ42ZT=!0 z<_xrIC~%9jVjR90Q6W5aK+N%1WsqA3f(d8s15H7! zf_b2B_?4a3{hw22TI=nfraVs2(|2h*??W7_6Rv+ZCK^_KO-DzCIMLDe8*08m+=AH* zd~TOu!je$m{e=98FR6P9i&mbBe0gr+(OBb@zO1IIlTqJlJUVhMK5?ZortagzS7aZH zJi8hd?Z?V!>e|4k{6uEa?8YaJb^d+rIZ5yC9dHZ8w@6j(9$L4LA033ohb`<*;^B2e zSboET3^0iSg!b=JB)tI!|D$p9e;GpG{kIeeV+OQ8x2Ze2{(CzTwzGheV#*pe0s!?0 z(^dYSzO%vP=*VWALaebxI;9u)b$bogM7Tv(7|uQ~w4Q$7z~}IFsA5jIPPoovuO?r~ zF9sk4$(*Tl7_pt{6ZAIivov~GVEQJC0MfQV`6-!~pU=8JfBn+Jviqd7_>|SH&tDhM zWVd(Luo2htXVUJOel$PcAuhsoJW;>KELNtNm}B$hU8otCJx5a1luE$sfX~@y3Kqsa zDt(8d`lACm`V$V?wz>*mSN%Go1E$rBX$GQ8WIVv`wKXxwRRo|>*B^3gUl z*QniC??7ju-J608TM_MCTbP@{HtRDOogPPXL-AY@w?}(d&cqPR?y5|ge_k|Jb8?H8 zDfm5h;Yn|7TZ97|FG0JL&fb|Ckd^q@s)A&!{JMK!K@(aU-^J14?slNM@OjTKMKP<~ zdX&M(%r98if7*-$Y-*y?rKNqrvp&`g{ZG2yq-Nn6HlzlqOryWK3^_*oU4h{$=l1keMxO<(1*f~7t|e8lK_37 zkRYhooE^gk0vaA8ccugNM5E1%o9iNI!D_Qe{XL)OV9Ipm#1ID?%l&Iojr!ot?MZ9` zfXUM^Lr0&7G1_fiH>a%UmhFT4<9i0HNG`(FbrBvFsp=~p^(MbcpK0*mEHiVQF+5y!nZh?q{P56euV#MHqCl3Nxr}#tX2o3K zo6?I3Ej=IYi|Uj1=tpwPnOQMp^VyztG9`*OD=SjGGa?68gmZ!D|VQR&1&p=Yvq;Y7jR(2uu#s7<@~&w#7u0ok;ChUCTKfu8;tc1 z%N+8v5T1S%*=rz2e$cdL^k(?Xh^VMvk7MI;v~dAZ0HZ#Ex_9Y`z;u`=+WBm^<^RxF zC1>YkRNG?7txnXntNgVq zXIo{8^I_E*0t6GLWsl8wzgZ(qQUA(YIy5p-CAe-OI+`TAekjBE2$KI5n7zFgmChkS zG#IuLupN}mNPvokHiwuXqci*ORwCS6uo)+;-3@Uq~p}@@B}# zw26kK>}L^ej+3nsn!gd?)xFpHT0gM{p5SixKe2W!zO7s(LK8JXXeU!9X<%%*%1^0g z#G|5lyg<%y_;gC*C+RQC0znyy4}oTUJ@zY!dNKR%w-hddf>hI&r@{@ETBp=uAqqAG z4raIA6f!^cI@34I!C&V}+^cNK*9BcSlSXv+&1bJk4Soz9eK)1qG#g|4qF`=1$~pGS zP(bF$8egNPj^U*5uLXL>d=2{gbHdrxL6!XZg^oHLm+gJ8cbW*vyz%36Oia_KHr!i# zFKKT%wOv&VwKFi%#6loXg=#2&s45`H$VWIVbzs5&IK8V`beq!Ib0^Im{Tca=92MpIzFZzFR5T$5dXeIioMn3;dIr#L{IIy`ntM$S5TP!9LA0x%4t3d zBnRyb0MCLguZhP!Q%Q}LioP5hxN5fz9RAxFt@&MJMD|lepSicn$*yJzL9XA{XA}Yf z3+-Y4zw55ByvzoSioWIo>s}c6KzV?o^dD0FrVzH{3bwh42HwyPBkclYG&EHHzO(*< zq~_@C$~^iy=geU?e5i1YnyaXx|8-l-9Lt0QKf(+F7DA2&=Gin=^<{SS1*@%SPSlvW zwnjMo2H^zl|Kpqk-(uc$4v!5yYaSW8@=nA&k3F>FKu3oDtB9#RE}a<~XZXtQ&n;H! zjmJs1N)E%`4Cn_~B*5~3b)1f1U+$&H4<y}NyH`2xyIno!FKc9FPQeZFE|K2k%qUrjSoA`m)kLJd53$d}O zwL-ny^SEWWZ%V7Gy~*`5I}rLi8h(QCXbpep+W``Mt(KK|R(QeeaK}iYM);RiOGP>k z9G03`^exfOy?8WRqcc4+sI+eGXIlOCFI&mSU>CxtDzC#BH1+aMSoY69A` z&s=+}m<56rkNN|aQ-3QOAYuTI#FkR9nu6#j?DNpIcOEtr0~qjQvM7`lY}mq#=5m`u zUUWBJ0We!@Rd{7_+y z%De*_sIoDuOr0@U-1BZ#POV`yC+~w+v4zhS>5?XWzd=&qZvB)?*m}H@Ze{GX8dC4G zzlx4k!02nup|K)W&ntzL<{lB~a5SII@{zIF$!FKU5{;+Em(KZFah2A@+ zQi@~KxxKMze~NN0``_!G*kzk$pC6a$U0PzaayG(>rQ}WdX^(>Ft=2#xOoU|5=oy_j zqwgnLYu(HDdci+1jPQP4W>qS~GBMZUW#6Q|uZ%R&E;Bm)ow?~Fz5e)Kh>5v?izEl- z4)gYI?UcQ@T9sT{+VYDlrYh!QG>#V>c0NwBeSw6~I35DpC8OV?0lKQpLYaH)mwBb# zvnD@n;GVtj&BEt4#nKY0I=oJQdOHXU?qT=1c-J-WFzjIg@`)){*xd!Uk&Xq5I(??i z2pk035!itEFX|{D&E~yUgMTj+X`)0%!q*OZ0b%{G>L}r#9V(^g7ZH(x+gd=T-;(m| zeX*Z%_UUc|?)vbNQS)?X@b=C4A?x_zc|p0NMwQD@Cz)V(l;KnQykYxl)SJ?g2mU)7 zFSj^G(OK_kR;JR9b@hOV1)d^x=hWwJ1(Hi4{Jzzs4EN%+*TPSOJAcZx4pk!%g>6*o zUqujYF*6)cWOFv#9sfW&vq^mnm z=1F^BqBO1VULrf?dhJ&(t~*=jtaD99edLPHK_8#`Fuf*n`@}?$_l<@2Zi}4vE5F4|_!VQec(DxHq#0W=y=g&CKk*-?qXt!E^ znmFZYcjiyDh|K9>Y#?;E>Qa7MQC2~aNK7L);a$ntUQLf2Ns?^(h*b0%3ttJ}2iQP} z9(t@^CvbbBl_u}nQl-Oy*Ih0@WKw&(HeZ7L zs%`ZIURHA=Cg)pI+fbV#oEtG9odkI0vg4J`r0xOaJv?c>cARC|2QDhdoUvvmaQ_#MM@E^s`$I@o3M z*yydVB3CPkuj1BxqLyfBr;N=Xp0}XogT=x9Fj2-9{RfX0lqEVAaTV@c?;3*G9qjiX znRlO^4>Vqp*3Q)gd)Za1b=YVxf&uE7p^ig{BG!a;L1+__iM}yMzd@D}TmSyg5dQaY zfb);Lhzc`oE=d7Prr@a-mLnAYimnaZXVE~vW{vKI=INg2wW?G4=AILU!G^W@FRy!^ zHG1W!B%I#gT(f}_rp7IggwzU`S@m(hrim^s%vte=*GbSkmPFPmq9&_Jy^(%3tD@7M zd0&O~V&m7TpSx{ci~}5BY83pX7eB2}T7G=Gf5oi1ZgypaG%+<#mP=X)%mWqOcHBo! zs+m|;lLoQdwu%q(B>Uo36%9|2bNKzKl$TYDLERR|j!aGqdALs7+vlHk`Y?8tdcq~N zzDaN{#XFGt=TzzP$mEpYK=+zY$PiUgs?>3C14k`fXeKUud2iryEe2LC$mB7Dva;@* zCn&Z(d2WuT;}xy#W7oQ6Rx@KSwHY3ki@YX!`hBOTw&k6UwZKaJE@)_c$*tX@rT#J- zIM&Kss{mq9!?*WI+Fc$?oguShYgUh&E$7}s3yi5?$=~m2M*8e`&HcwN?-L>fn^D_f zyo#*VQ;wbxX~&WrP0Oqkd-<0?S;)R9UGY_uaTm4Bz2<eQoEj?z4R;8gX?Y=KZ4yKatk51aSvgmlVPX3brA46sBL{Jw5vfsTo$s7Kv%4 z;O z#Ll>7Y4ah$l6tMi@)D`SO1JDN&vD_`O92BHhs>wuoo+b^TO20azA7j0Z#GfXa_{PG zV5)ngUOp^$!gTl#Wt#ZmDncjML5Vu6)^%@Kx7d-lWILQFKpeVZpPG2nRL- zw(AdrpQ-7J(hsWbp--rWb^f-B{A2F3ff>hvFT;B9otcQYRhdtYz?Ljl;TLwZ7sTjd^gF6nM2Z{WsbZc)>E zKgE}2ln3N>T{B2ip@ofhj6CYo(QBspGrm zxx9AycdJ`_tx^xq;>#`jymUPL7E@h~E?nqUm$9U_&PlOXH zfpZD?Ggq`Ha3xhEo5t881?cP^;SCBKpDtTF)qr;RnBgeu=iax(c99USB zU8XgSP((=hhK#W_XMDAyY-3);^ssz{MS$nXOhQtU;`E7y3*FA2dcD@$E$RX@EP4Wl zJagsya@*8IBs7IwF6FYQuxmRfEF@LX#K~((9+k97wbKvQbmkPVWsvOih>~B2R%RA< z)$nqEp(ai9Da=y~84R z%HHmX(mLN$xs8G0!R9ZP_)Z)p9vT+yp31XW^HZB>*}$E!e?hhI9LrrLEjN!G!ykS% ztvx^8v`XxzEhba&zMt^8QrI3_>7hniBAr_ zs?3pjoy)h+{j+%J^Y@z0M50;1QB(WrE*)dr3i(<^Px%pYo@a*Z=jM{a)!gaml+)jg zK4-T+@V1XM%h_|Y1?D37iY()ijSG6=)Et{{EbbFz-JxF zQy?gJtmM54)%HO0%X_mcdCBpVv5rrz+7G zN=w@Xp~`9EU!{$*i%wy7+=V|@-LkbK35JULD&TM$itoVx(*Mcor3)R`Jg?DY?FEv&YolrZP6tiFzkrA@k z92etRTRuLBmO*q8^1np$Sm+G^t^x2t+Jf~8bmPeu5F;4rZ0j6aq}g1~fcv}{7&p}k z`c0Z>GLJ@R=&khK;3wGENdyGZ+H-P~I-ETmOI>oa272`K>k5B*e|ow?-;wzGSXdp< zG4Z7`8aFi+GW6X7H384PUPv{otg@8vd|cV{jj~HQn?mXFU6SADqHOXaOXuuTsQuc3 zfymZy*V@wq<@fYp>RGS zN$lq;n$e2KlFuT=er60`sI!6FPc`#fll611eMKYRLVG);#`NxHQgxa~TkR@-RgRnIZvQf}2s+;XW;;Svx_nThp*0Yyp- zd7q14^K?h?`ouKZ$F8ik?A2$lAl3{u2d7`X1-^VWt1*8$r8+>eR-)*_- z#9DKN)$v#hCtIu0HG*$#j54=61+MQ)^SJ5;F4M1&rZA%@)wqGHn_VMr;Fc;kaQilJ z+;#J<8@R74<=3#?OIJG;L7O7Vv9Okg`ChGc*QqOHDOWq{pG5NUxbB|ej2;pBqTJcX z(Q@kTOJzsRa&$(x<7kQtj<#bI$Eg*YRc`$1V$7nSM|1P8p>-Pi=NIsPel^|B4q)9c zllZtvDyu?I@btpjkw-2AEq-CyQ{}xC191cUY2>(RImN=kQrok5{oV~++Irozj*ll7 z)vs1qB)IF%YUoz^-WQJx$_ov~-50yNg!nRZOS83|3Qsue!G6@Xg0Prcil2{1bC`Kg zN#omu0GE!r00o`Gj(2!kW2xuc#tM1ybxW)Az(Fs0uF0BS9XHwWCMv~K=GhI|`W(xs z8-6txUKVlWXLcJnmU7&G`l#69eyGh^vaEOIfPK}}ip0{?qmSkd3Wox1eEW%B`ww zdO}Tt{TWoGsVU?EQ>DN9pA#w4k#QWBL zfg=G+1@CeLDuju<6(Z6Ky8?L}i8Y+r?69~fx=d6?YnLVfL5J}y<~mzk2b60vZ;_USu&58$q81wvmRXjYEQVrG-Oj$cecaa z$a*E*VPa&ynd?~MR8haq;#;!$n!*o*jm<<0pQ?$n-cNqXtM=q=S%({^M=B3=$_eR$3UC)$+UZEP0ln((~!lJ{z&>&!tr!OU(JM5%byDv;b;d^AU3G(55;I%oBipJ9OLh`Z}g>sH5?S4!gJVYkP6 zsfbeKNI-oOEGhy;x~a&OIk7K&t$`M6#BZzArCCRcyG%i%|Bt1qvsKTh+vgRJyy=p~XS8Kj>Fe$@o2`AUAQ@C< z_i-(vGpC>CVB6i*)jv5IKW;YpGW*KXZ(R~{u|1Q$T&)F%IhQ4TeO8OkPj%=2+`fTJ zFUZhJ`CNNX-(B9M&awCP8;Ob|&Zq4ywSI^DA^KDw;&owVkP#;QN1&aB8}i`p2UrX~ zg1&$am%h2C2m@KVnu;x@X~Jue_Y?X8oXg81DsDuyPW;lh$1)|&L9*`FOw*|(&b`NH->iwwRa!~iwI7=8 zi8mpATd$f;RNNQa%Qc@TMp>>>^HMCf%EqV0o*h-xF7(~yU(uLcVmv+Kt5i8j7V7UY z%{I|A^i*5zQ2oPaiZ(Ds8y{&9iNiO_G&fKcy>zxGO{L3uI_IU0;T5N8F~xXG`Q~=} ziD_=Xu{OUj^2H^Q3Fv99?}wdjJP@-isa)~YU#;OOw_?N^K3vE1*_{1Eo>h}8c>rqD z;mYp$^qx3(nw)&EzoJpa9~ADpxohOuBp=I^g^JeHrUEOsq~DU2<@DzZhKnM7wYhc` z%&k-b?{!vNDf6i$zw2K&&dZRR!|%5($LI8BzK&8D_u8uP&9B6@FJO^;a&Jb3t$B2Z zv6t#;LZ#!JU6S=|0P)`96gAG*zLu6Zx#Ao#?cbYfMe68q!UG%hYEU$&`Wdgefm6n7 z`;GME&b_48k(>SMM&BH0ntOCqsl(noekwyvFZA?eU#)|8s@&NZiLDE?RaxP`OXLYqVXxDqS#6O3AR_##K@+0YdtxDt0T%9s@A1xbC z%cZz-)%2)SGMw}}`gJ;UQ+&)519#O^b3~xa9|-UEb#A{#OER&_SRyt0b7@$Ua^p8} z6yGcTpH^SvJ+*EIe4*%c_j;AJ%i58(xFU34w&@E$i_$5VkSXqvs5`5y<|VHe*fm?V7J%m-vGQ8kMWqIE*Nb)}ZQ$%m zH*g@YPb+TVYHkEAlc~E$h_rG1lMP%&AT0Jy1$}L-dQtUqY+9%ISd4o6mx6u=pAFm! zmndxmH|VW6>4T@@Mk@u!?pG#e< zsFc@^X6Xh}Wv@r&$t3Oaj|;1n;$`XXNshTTRYu*j9U0Y2c=@l1%haIh4V*v43-9Gs z>bpEa&C}N=Y6yC@xEPI18eI^)q5uAB!JAdN#9bn*-A?m+uR$=Z#mfac?~T(+j}aSL z#IIS_j_vZUt=Pbsr1kujB6E3SloDci_zXAaO=F5tsXt4fjq2I2uGH>;D#xi2uIBZw z()Gk1a&dEB)dtR~IWj40jo7+AGWlvRP$-|?zv%UIq>2ypSy75t=k0f@Xq&w&$*PP|#=;BIJ+X0 z`KRh{y~~sM0lP4rf!^f;+6BdxgCiYKb7vgadFF@6jgnJ;HFvYFM5igLN*Mnj;GDJG z_BcF%vVoglq)Y(Y?u(d&HfEAUJClkxrKXVZ)cb!?T&L&FD?6`;sGe|ZA$=^> z`9Rg7iS#5{DwyQ8Q}bw=i>u=EZ}C^iZ`=>}yn*c;}6?kOWb0ww3(WE!(ygm%;38@|B+exUZz_S$+4VR zSO5zR*bPN!sY+Fu%TXpo;pW|mxb=tO^9SOM9>rS2ro>5TH`&{sjS{b#RvK3rx6M~> zQOq9f<(86kE1YunlN_cGVPOu>CUYjbTHM2QR=MGBZDXV8mM+^HrR`<*36kpBd-=Bq zeUpHV|I>9Qe}937X68hz!eND6yqH98iMHsskkiD|Io`R~U_y*;VTT*{;Tv^ABin4? zR-4p!);&k}G-oc41AX!v&Y4!w2fMqH#MBbdz%AInWAV zZQ%|qJp8l$yEzDgA?ClnX@LIyIOrRWm@;8T{{0(7AHXBD+Jb}%HpSm4+&vXu#WaeS zVns!FOxARQfyCihfB7`K{(91&(fRsa$?*yUHFA}*Y2?G@TxR`qS|c|%a2E;{DJ;_+ zzUqg2SM9rfVbe#J*41a5?`7eXBYgOUcS@mYLwHuA?bwyc8#DTAPOFP^odZc+coq;R zSALWn8;J3np%Duj$cin^pRL+TuNjY1{Kv{tyA#incDV<1=ZZ(%a;znGSnXG}H*}oTG($y{jDcT01eB zmhrikn&;Kadb#tkM%3&6q4<-XAA&Y;k)(#af@b+un(;FK1}-#Fc6z4QW^H8FE3b|0 z7f|~SG=?!!_o{$HOhqO6B_+n~46&)J#cOQfWBQBEur*QcxV(G*y(>ss$l1URJHrIF zBA0)yYq5h`JCsMwSvQ{U{jBKcS5{il)p5aMy2@oNGV5~-DQn6yN5xai!K5$vzMq$b zh+8W@h$>&sCF}K!WWRQ_X#*EcEgA07a`Na{=@^-(Bt1~7dNpn3`zC-iy{{s0jHFf2 zPN8L&dK|DHsOdE3nu<>Qk`bL~L#hp8nYL{hoartvbtah*XKR-N4)|QJ6n;Z4>{zy? zRz)ggd{kF_wXROdRwd_Ec8`%I@5Z^WYI$AhY{l=gGPYRz|Q&kX`Ww@L@cxDL2pw zMmBqU&dd)kMW>LwQw?0_;GIMHcn@d+xw+Por>TFga|^N2Iu{%nw~5Oj^cJnd7c1j7 zAi;63S33sh1S$tv&vqtzVGc!IuxGv9tDkk3D3+gU^$&Jumvf1mCJyNc8&xgZDuqu= z$;Avicx~CrFZl~Goiauxe5NN^D*267)z=re-%L(I`ujwlt)2H+Zme;jHa>s7c`E=Z z$W=q}2XAJasu6qx{Q0Ff8Yg$v89`mcGTVRc8@90^?{3f*!u+S_3w2I1<_%}NECzO( z2hO*cTV($*p+_o@)sHVh zwjPn_8E&+Xo0jPr$JK_EVkpA%j&N1Sr<0RXs@tC93!2Cp+I+AtVs~aY1BUpVOGYZM zPomZf3seUT&Kp>sP=EM+{HWNdo|kp@xMHG1=xZy#TPX`l%e2)c;d7(CDVs92DF)so zzi}3kkg~X;bBZ{)F^!DT8AQ#m@4m90n-2>r$nbksSZbVCu%mgwF2BoaRNp)cqAYqX`cK3%D%z{Ob|xDb(+ag&)=l|g!1KE>2u@@XHn{I z!LK)~f*8H)xnz%ZN^MbMp|!i8#h@zf_KmSo=afk9u~?`KB(_c?X*hYK*4-xVVqkBZ z&oYw9@IqUlw#Ex<*DloT?5w*nw#v;47J_V%>xlfkA)^XsVej*m5KFyBv3==1IG&}A z8;gvQp`zsGV4>=CWMFS|$^ALk?Iv=~RzLrWi~P>kK-!Sh%tDm?rK&Bh`&aoFm=%lj zoq3e-Glb3rH|5Ckx;{UPxozaeIJLjIVId}l(!CWUl&(J?$GtM05ylL@8Dx~OZ|r)O z!9?D?K|Z66po!)3T>*CO%txwQN0S4-mghi_3biraft1{j?MPpj z%l&vuHOJYM){KaJzBu+8;=d>tssbrlug39B!aWCL|Jrv>ZU8CY$hPUF<_L!*GTX{# zyrQF&&AV~Z_OpsTa7-QhEVw7*DNx0jlXp0jte4nI` zWR1wELKOm9iH4E?AfG``tvWif?mZ-l*76gNtX;bJk6P{mTiDD4EDCH68Txmfz#%5f z`phoACt_&v*Y2I^VDW}_uMD#eC;in{Uk@RKr+pGzQUoOML)hJ?1yx@H%u)PVnNyOW zRE9H}I}Fi%)3uiK9%;~bY#kL_Y4!V_0v51^+xOBbjOV@cM!Femw9W0Mh3R{F_pa?x%Rpa!Q1A@s zodLb>-x}F}tbySD{~t=2TS&Ypyg^q__sPnQb-!;}<)+YwWI@W2Y3V*FhPMT5^?w7) zn*V=vF?$39Og*P&c3O6H*GE@ZEap&?>(s0&znli2WLa|<9C=~HSV3%Tu@rr&SUYeq z7`Nm># zw7e<}t+cTghU*h6 z-h^|V8iuIC6~lW#0r>6O9&H_z+5gl^Y+nGI=zHXkp!8UoalE0?RQ=Osydi^@-6aBk zT*eQGa?3+)x68SoZY;ek(P^q|?5eT~%QJyHi$?Yh32t~TVbkTI0YX7KPPrN5kUw`I z7MqC{F$WZ64z8}7SLO)F^~R(L@U}>lTb+K;h!{cLseWu-fwX}kfWNsX1oTpgO4 z+l>wr1SdQ3tC)y_ccKu%2sdbdX^f8A#SYP?lXk9P*~BjC_KaK2chA)7duH~CN{MBs zN`{Yz;1#wwD_Si*%rntiorSk_;gN~cT5|@7Pf}0eGFDMn*{XH`hSG5ubPLlzWl49B z$_swqx?@(zvP%)_2duuoLDV`yoX?!2%No+|GpAhwBQ~PE1Jl!T)z+Xs-Wm5hQ0+>> zLgT_o00e=>BRoYDVu6p2Eq1f_zj)k6_! zA?lrj%0_s^BD)|wR4DOLIKbSntA60XV^8cjjY(1JtR!HbODLas<$l>uu+Pxk#b-pd z=1sB>1920JT{GLD2KCle%gQVeRy(GK=9*b0YwEQ=C3VrsL2-Z_a%-SH)kIIcF5?k% zp*^@XO}S|u6@2S8OYb+avmBZG*}lkEY@Q&{As@O4TybD;$2Qdc&EVVrH_Zo#t^`l> zIg};$s>PEJEuDVM7H?x)^XPqd+7f5cOJ_HX56cxlX!L2AkL^n`eh0h@=SBCJ@N9h+ zsLI*q?W;fu@(=SGNIVeFq~D}i=X6`9x2L$2`SmSv3N4MuRkW5OD$B@OU|OP?&%c1m zM}nTYdT_SM^yGY)?~g1OOQ>^sMS)L?jjNMFq=9Ef%C6j;?^f`I@<1n*shv~H0$wE< zl=MTutd;EKAA4vZYC zBKV|@LAw0?0I47ghurdI>@QSKA-||Z3IAc|r#I8nXVB+=ZKw!UPi;_*9TFspj<$d= zUD5dA0$!d9o`a|i4#FAxHpI-DLZM`I!fYu{%~y&4Ua@^OMj;&w54xnIBfH02`u7hA z;F#A-gXOY^hfoO)UL;5#xzK+m=&*9F;%0`hC_x^$so4Jfa>&G%f=$lptEg9Ok489vzufBFO+ZYG~#74GPZJb%tJy=hdQclEs6^ zn5AwENp4fXRzK>#C+qRL5X3zS5};Iqi1B!`My^pDbNTp6%_Xyi<LGCT5Y z3H3oR-36D}zd!wB?B^DIt6*aLZ`uS$}=) z)a1V`f5knQYhU|jeM3NmHyJiO>%jiW8>HMNBla{tbG3T_dU$5vjVE946 zZ=NO`O!AqY3pI_GZ(}0rOv?t^-Nc<9dPTjF=#bQpzI4Pw{`8AIgcSJQfZ+tR-W*vz z>C>?J&>wvx%!YZ`ENoTbbE4zfk@B7{UU(biS*f@vx)m*Kh2&8nMpQIB1H#!C->z!u z*!tgcDGpogE8Mkuun`GkSq-hJlzDprW*vu~s(f6Ela@;~!#A&K)ZG(0;X^-G zOmryd-nu(_QRlUh$#7RyCK>Lv4Cn`JX4C1htQ&Q})^aVYs>(GaSDmX( zJI%^$N&QDDJf!-R-IVKOZPDy>ZqEF8s_?^c>xehc-DD#Mll`7eO9c=uU$C90N9mvQ z=E8iOA3j{Wq-vEuJtJ_yB~#6Q`;5x&*j(?}^p-`fQOd1#n+(r#ODCgWJ!7pI0|M3? z0(Uq5+P7b0rAL`G?a^hzRGqR;cF8GGwY4nkxU|qa(Y9C>S+k;j;R@d7jo=?_W zndh8Xh`6MSTMjrxxDj{x5*{|6VC0tqt0O8(hK5$Ar?ZLSL_LqK7?=WPJ5A{!$g z-KUw{Wu(U(uz`22vKAL}zLH3WzBv@rqWbq!b>PhI@5(H}QDKa+wD%D+p4vW@35cZ9 zP^wR_rF)5}e&e$9eQkFuK)nH6HDGEkH+F^PJ9_y+BXS7eK1hC@DRUg|Dj-*Wc~()P z8ZhYOI0;XwB%zzN5ortJxH)CdG2n^@?2iBaeb-v;6eNTC-Lt`}WTO;p1xE>3xx_SS z!ZKp0XdUHtqrF{!KA4wUSTd*2xpCa~Mw%M#me1O3U%~u<2E913pkY}A zdV0&ta_Nt{`*VIDp)M-KO@VnIYNfYX{XK%m!*ZwXW=9*Lh%L{R9!<}7RTV*isPT%6 zAKcU(uRW$}7;RC|Yzfe@>?ooDUXI4MM%BfZp{L%wRqv{q3!jO}-iGE%&ZClsHdUu( z)@+8_D0E04bK4z1GCC(W>EWc(p<(#(V|}8V*T7X~>%Ey4}_%U#mkQ0Gtkyw8|uaxXa%Q%8^uD@$IUu6JvJ z|E3%sYTmZeJlc5AT##)!_}%H4;E|6tThvw7ckOoGxz$?~b)6}4Zu9UZafk^h2kRkS zVprIH;uoNB+N+EI&$I%z^=q%>1rJHiO*W+F1slq?w|@kCOOdH={|^NjCPz(JrYq#* z*JWIEF~)cHEMR=AcrD!?y9V=OP7ODhACJVNUS&OE3$aK~5<@a}a4ZE1-Uvay{7ehQ zmHLN@G`j(=UHXRYw8)L+s=K~ow4eKp$*aX$6CNwMC`|t_30pL`7ENuC%;NN!Hr#rD|Q}ozACBXglL`7Y!fLiOQk8 z+`*PERmeHr{91jJU=$>(c4hRRV@HuFqS;wu%-Mg~|Kvg4IW1Sv++`2PF1DZ0lk}9A zXqLLn+c(^B!a)4I^SRWg1a1A!n3wZYU((!NXxQ9f3mH5&=upXXD+s-g;X9ODH;WDY zjiWZ)4WSr-&;mv;uEb7#$ywcl0T&boRw=rNYl<799`-id)){T1uBWn!k*c;ByQ+|x zF+h<6PC`&z0Z8s4Hs2F??OE#Pg;L=;%1xc=Q#!>)oPL&4%bwkxgZ$}l(zs+3;~<5R zSp^NA#WCvImWHxke&O|NU^ebcccB_y_U^Up9JG?4N?wl3HOPLG-bW9~bsx1#wc)2p zo!^Z#CYF#K`-uZJH8<*G=d@Vwn8^`>u0t&;o+#6z*yrOoLgL}1JYT@A-W@F;L*5{@UDNxOV#vyjmXzr@dQXUxfh)rw z>n~9we5T{*xN^HOL_Fp^sWKkL9i2$jMb{hg?tTpazmFaG{uFf_&Y>zYtB*-;-!;3R z2o)?l_j5>Y40YH_1}H9TqFkR{Gsul!q)xn2^l7n8o-w`k0PbiD=0A&^XLfl zpXW}% zyo6E~;ewBPQ|H8hneuOQ0z8VS$6c(9?HHHBXqglqizYPLst%HRuX=ubyjKZwg1a8P zNdFTR5_+s{yOS;b5OBQ7!KDqILQ?p@@>&C6f31fWgWBcB5Bs zQ4TS2pS%dI`sVk`NNe&1*ypg(sd}V)x={i^P8r;MF++95D+C`s9TvuePAFH!m8a4< z4qkV#ipX;>OL^m)4Nf32w%HuQN5w>F=6zCP^lW%8J!$%O-=@b)tzmW*vZL|IX~S2l zZG+j=5=Lr&^3D(IGrf>?8S5rGA7|q-gG|bIaAeq7S^{3$9$STN9E%<}XHgfx>5f~1 z4JlAOS(G-$mnag#-KOSJ3SK?RT}Ma$Aiy-Nz^IU!t~%1Ba?`KoC}I?&!SnLPt02We zJJlB<)7`YRYBcO9FGXz3_?v(XGQ_YPjT|!(R1<>l==} zG=}mnmV9pWuYF&7S6!BBDZ5g~)A}#3?p{F5z&EYl)xF)hxO-!};D~syzq;yQ`$|R_ zsxbEwBgRg~Z@1!DD&N>m`2YFN{Z|L>BBn^2tW(79MzW}r!*|WgGR3YaiKiw?T4zq8 zVrT6CL@FCC=McIRoBjAFWEEOuBZgz0^#hP6uKo7+L&1h!$wrO~XyLjSZ)d^oG=k*Hdrv-xJpdyRyMVD`i(I_G zd4AsUyL_4_2c2gpH>H_}o`|%ZdgF4u=oP!I0gX2p&#=!M+i3@2P4?{94BX}a4Qmn& z1wtm^C}ii!09e!YAbtl6>y|89Q*m3y@cp(&08Nm&rw#@{(I}S7bjvkw|ur=D^A|p4$qK8P6|u&H9Or)ocJsTtl8ifGsa`J zR-MX98`PJK+JaoX1Y=`=_T%I&%T04FcLk-((GjkJZ$H))OxQeOI!o@R7++ep@Ez7~ zLJL$IAyVt<(p&{|>MWls=keq7aMvIsFC~d;Ifqo-Ske1`LZbFzx(se9;N;KHuzDNy zwud%pQPZB#8fo0LU#m-377{TtrmFH@m9e6R-}I!xA6Oelj%`;9NzX)ebU|}<+do(#Quo8 zuk}flX(olXWC#_>8~Np}cJ`LBJp z5%{j`jN{-`epx)wT$}l?y~r}q!+@1CyTSrvC6LZQ_i5r_eU3r5Z+yeOG%ialW5j)x zc;ue6tjQztC6{}IDZkijY`mZAGzXuZckFPoX_!1wHGTE>MKetb`go1*w#iP;MLoIK z!^yDKkVF3w%PZa?>UwA@;>hm4Ti>3<;chE;mVTSq5#HLDRrapdGH-*scWHl#(0kyd zV&_({u`YKHf3xcRl{{L~6PRZ7{&JY@Qz2R)pI~JI% zUv~ySbz4KVRuqr^0~!(m#-JQ*HX8WQ!@)51|B+ysmDwR@U=Uc|R<^iV_-i>S6+8T| zE^%O>1%r8jjy`!uwP-s?9zFzD4o$ncDg9+?BeFfAkSc?TAEgg&cu$Wy&^j24Kt}`=)7rXWKqqcgSSp+u$i0yQ4QhF zTtG$swQo8(*w)f%JGp#3&elH2;#bD~jeK8BVQ8<;$wYK%UFesDE@|Bzm~5LcD&Mz; zq#_6W<7|K$;Jbke_WBj|%T6l+R>(TdkEPm$(+&Qy!FuA2NfaZ@K(MeitC=wI>;CKr zm}Fo3)NK3@JsBwY#a-a@_v{<3S({A;P_;5la{iLDBf)U{$y#23c-^L<6@tvz2u!<` zCX7dEDsj>p@ZmXmB+}Jsx=5Y6r{7(|xf@B90XDrx>+QXoEk0>)g1>fblcL&w} z+Gi7-LLi|gkimwUaVtyX0^ffCEFcIH1wc2T%e)Qd8=Q9!KM0we(xT+s3-NKMw`MP0 zVs+|n5aNUmEhriB#laAgp`ni--r#fHzNbBJs|{}K#eXSqv0;HPLY(-Vxaz0>=uYhB zN)#>s5tK^I!E2~bUFYdl4$$YEM|REFT|fH?KssKSz=tIW#4AeA?_lx%)Zi0twz}JQ zc_;0Q{NsM&Z{Tl`&OA5|Pj4xR(QpK!h%;BHAO#jEfB;GkycwoqSI+ladHA__{q8mz zTAMUswDHb02o`wvq9O72CdICw+RaLG&}I)jz}tA6gAev|+$o>C7xJ^Z$V3d2_(YSE z-t>J_;DvEy=CCl2yVmdQC-i>{N&({M%=sH2O^gkX+8bbshB$B#+i%9?2*olUyY?99 zZ9Zq6{(5!waiztd27V9<@XhY!qp^`fM|`5RGbR+&-sACn}|D9{RCX0@C2Bb4_H(u*CR|M?up?^~Iqhy%*wJ0b{`x&Ww_*?S^&RE{O!5s=x4YBUVUa zq}X9XmZ=KgjWgw}9j0%{EfWN))u~>mT&vAfD*B?-^jPB%WM$&HnLtbq`i&bNoc35C z1oCwbPU-r?3QxBY?Oqv|mPMWa%mUO|8}tbveg5k0<>M0ASAhtq5Ms@y<}S)R*#O-P zb8Z>d^}`YKv&$k!a&A^v5=;0NJLuehzf{PLZ!I9a-!8k8Fq?2|Njsz%D z7_&&ik%pHr{XhPAA6+2NTQ%I*NIt3=WoOpQ%n5N^xNfQssgj!S+C?mPcWih|aX4YX zxa9YwzNMRXmTk?ulMWDhg+K1qI8(tgAxWY+2zr5*9+1B6@uOL^y;-H*&=d*HULFcf z6V?#}GHkH@`Cl1wLj!1YYN=hUZckv?|*doIog$aeYj)8Q})U8?}T;}mP}JZ?b{>K2~)ip zxk9_gxh}X1PUSTfh-)Y%-gJn>mZ9SNN%RAfnv;L1#ZhJ;S{Iej=$ZuZiQK9-b?#A9x)rS!k)sfVeTJaF-ZAq-%%*THQ4z8Pmi*c zQ27y(zVj0L`st|m`E4Fb^;SblRXd~Cg`Hmw=h%H{V;M2`=jGkG7DbpX59`*`IRAM& zJHo1^`M3W$zU+K8r(+I>>ZflnMD*X3n;muR^IfK{Z>ThX$m;|Z0oWKEJVW%a@NT!c z2WAhN_rMnyHBi`_^1jf3p1)wPh9VwXbMiO5&jHub4a4IUtq z`$#OwnQChJkzD#O;1<|p&K+Ub);(qqijNuR(JyQw+`Og(e@x4`KclKq3*l*9UgM(0&y(5I-*3g^V=GmF7+dj+BPzl4^h->u)X(#Kch68m)Wt^q;rHQ|f zITeO>@}=?4KPN~Vc+M{9_n^h5BUaGHQIkdy0XA6tx=X+3 zv_pMxz_TJ|@BM4^5NC{xzGUT{n{|s>s_-sxa*Y-4(RVY+69#INI}U|e>#!B!X)kh? z)sBV4+-j>)!{lXX$|}piuuwhJB-tiD_N!g5aH*fJPh27fzc|ITzRZUR$Po=ba=%Jv zIOVIw%WqAj!E0Og6B+IWX~~lEV!;iBrJ|+g=OqXAX9>y3u@RNxZrl6}SYDZV2bDds z@zky7rc;h5KYjtGwSQ;C?Iq}8*drwnk+G@(pIODZQ0aEz3buOUt#K^lM~ny+m%YA| z(4#(-5+Uq#jcr<$lL{S*)|H4 zz&{$|3L{3GqJ#AW*|Szlj%K03vy`a=PEUL#{48#j3WOaHy5PVy4dMD;EuRv{+N4 zo&rEx-7zM0d<}7f?C`8%JL=w=XM%qSJk{*)?F9{56j^(MEL?sJ{pal(<{1~fu4T)o zsU3$cjv`5ON=HkYi&t1C+T!X{bI{RUQ8bCizCxCz%s?zf8cjUo;syt8L-LM-p$~Y^ z{}JgngR!yji>QHYSDMeRKKEbyPN{H3GUCso;`yhstwe2hp60br2jGJ)k?QxdSwL9- z*8FqiCt*%eodA*cZ`s|$n_hh+0kOriU>^v&;D2W>0)Qg-jL@jn&qOE1rHf7J2DA4d zp@7xwEZ)`d~Ohhq@LyAzX**Q7GrXe%fzOWDNe@_0nzhix)xsxGn+`t?8Ek6tiX1Otkd^DOD3Ld4o z7t6Mwt}9tur9A4x@rvV}(i)ZMpi0Ofl?z)41-so-q#TS&$LZ9~y7 zd&BnC{c%Fvr6vRK4zBf#F3s<5%$?iwKi3oSYXg^uFezP4#&AQrv~m5{s}0BVCNCLU zA5(Tp+ZtLX?T`m)>QwOAXKqO^A%hx;1p4*YYx=7ZWKF|06m_hsk-U-?p@q#n8*^Yt zLFCqA$EmhHs$y>1fJW2yn+y+`Cc?+@^`X)AEo6F7zr|Nv8qFr%osKx2n_h`hAd6H> zV{ZhU@a;GQh(pmXF?|&eT|1}aC%3KjM^PLST0w5tbMb>N>GmV?GYZLAb1r6!hfSo? zZG_en>E9F-;@-GXmpfsx?9G?n-dO4Huxk*Tx_>VtfJ4XE#~SLEnDJo4o0P{?B#>16 zBX^5FxB3e~f3d3g9?FPJ%|Gen5b>CjXm($mE@O47%MM5sBBJmpG^-uf)BLKZ~9 zDuGYIDDmbHU|6?FACaNh7P>N1Rp(Y2(d+1RpXY2zR{-xi%`B@EyVhBhytz*9+LjWT z%!Rl&ZK`gn>S_qIeMNW#J^+d>i7e<|1+FM7H!ER-KCTfTi;^4_I(10Dlc0H9Y4O)F zdC4E~q(1$xaT|A}Xwr8ob-pz0Nt|+kSsoH&3lwzYZ<#vG`A2u4yPssNnd4GPt3*i2H+HdXW`OW{l?O)nui_!{? zy-BD`->lW${qnM?=wr)+Kx4QD;`52LY~jt)`nBQG4f6>tsl=`XxFuIDU$505TPPM4 zKWlE(6R|{T+h{g>Y01te|7Y(H7Lj}U7oNK2KW<6e4W@U4ZB5{5!tyrluYD)xgYJt% z45iNk2Bm|;zL#mnre!k7azZ}*=_^mKRLpuaVU*+O=_s78{7lMM2O?S5^X5%hqoL#z zY}9!W82?Y`fNBNHrt{?1_|NI5OX9qgxV6V*(+!p9jy)f23+Ap=tm>3?HjJC6Lo={S zE!z?Ab^9yU10UilJc{b%Op`a?ujGtr(O=tG2@0#IG*6ho37svJVxY)gWtiiKOdfO> zBS?yVK|J1TvEG%=Ye}B=UBJxtpLOd$*vQMOC5qp=wlC&s=8$d7TW6}|!Hkd1&IaSQ z=*l|YM}=;B7P#bTWTLNL@L9Q3Ts;6`(yAofOyel7{f;ld?rFxh6(%4_f)`@)HJ1tF zat)ifRxkUmgIQUBa7kK2Z9*KHq_a+`Y@SIg(dtc1GN6eX+Qg^0W0M_UfXo+gVX#{V zknqA5=7FMzt%p#BeRq+LfmzEUg1K#6HM&1nW2BZ96mWCC*1XO_>A4mMd%xwV<%~Xx z8B|_?kEl)Gn5cC^z1+=3=3>^>^yixb7%uZQ+HZWfBuTW!f`tOFgwEI$XVHdcOv+4q zzn{@^t;0AOLM|Uj^`Msnp>g=u(D@|;MRLDW`og5$+jy3$k8E73_*QGARfn3c6J<$ zFt*0d7r2*}HwcIQic^nHvHQ40XQYca)*7Lb19`)99&Tb%QRk)-Z3NU4J*hC@JpA`H zz+N>0wkU`#2L4QTY;J%RVJ=w}`2|j@hOI%jjcvn}Rx?X`&n4CxkalHyg9{95kFp!~ zRW%Zc0X)KYALe!0y&{k(8K3w|5~M;qy#^16}=b4(mF0@SR zyni3Ke7r!5r@bR7ZJM8JAfQKUt0Y#C!7Z1&!Iwnx(+qX z`w4HjP)-?|!&nM-`|kLo_Ga*YRe3_rT65%m1)nx(xou4Ap?N22$}%Q(-mw_=wL`-f z`M4}G))Av4u{6@7aC$j9p#Oe!5WqJ&f+^bnecm~=dz@p9i5`L^{Z1SH2bpG-#mZ#W z9fxKr@v!Ofqfxlc&t-v>Py}U%b`3Yybpxzhylc71nuCAXv+Ta@UcmzRAlOQuzH`J? zerzXPLTToXzFqEskI1dVA;A59r%&0La9R z<<0!?FEsUCoXXh6i2b!sB`r}Us%!w$t*&0s>Tx@lPaK)UDIw4Lks@0*oLCU5Rrz`} zv!Ut!&NKBvF5)U05(`qwiU4DSJ}QO`&cNE~4=z!3H~ z5qd81hbz44tWCVlG^kG2vJ~ynT#1+jgJK!~0$sy=uR4gu76scXQEzOCfZgg_QwqQ- z7gzDd{7FlzQcxpCm9bHh|8@G=1}r|YOvd;ZEl)hE=-Sx!E1Jp;LYNVgA--EMQ?Whc zHIhLKJC6?KS!XHCu1y6`CwS5e(AuJJP+O?mYql>}JHmHI!Ect6iPe~9@Y(KzN7LbOJ zPTy+vnjPq9z)Vk1dvmH{Hc8uLYRy4(5uvNIycWa!YBV(Uq%#qaHrlg2rQEyQtC zy7Gp);IKp&-D{?8Xh3Fa*N1*-(5OI%;sU=sT$Fh^UeYby$}u4Uh@;O=i?tQGGNTu2 zSy6Hr_w{6_@_Np3znn8sxm;e@30dnQKKv9;VQ^C{ZWg{J_j9-Ca=DbAB}8JN^Jxn#cFf@hJ5A_ut~J}q@ho>w=1o9C$D$7SCwl}=9%m6y+e@a zKVUg&LMbwl=miN>T81SyL+N0rjk^MNcEsb7lf|_&AB=|vQ1%NwwL3VuRNIb>;ra$q zjOQ}q>soQTMiTkM*Cg84mrJDWnb|P0uf0&;O`g%A&O<&eJdlxfKzz>9XlKjl{@TaZ z(TN_$B>N$G2gBd~=biv{?4Do`-}b&hQ-Lt-K5~Vc^nfjM;)B5mP`q|q(nMh7Ylxv_ zZYeg3_wMfrr}?fzVn^bJvF>pj#K!xwK6%Bw7DthLQ}phCf-Cp$CpEn_<9}G00nM2G z^DL3#P*?$7u&=f|Y~;YRd%tW)*A+c$cl~gx&5dN20OZjZV7B$&@l))+`;KhL_>qPS zZw`0V6MV$WQ^sn49~<@0 z+O}gnj5@YC;My?Vli!;a^C{&C5HX$nkANim>VeFX`YvlHiGJr8iyY~fe$4?rv)^Iy zY=X~z4ik8GBBcKX1F9;JhMgEJ*eTmkZQU)2g9i3v{|+KUF2h6iUM(;_VC*{Sf+L8; z7$R1wL#frL+Lu1oh^<`0&=4q_*BC}%f)2BFZ)EuS1rX?i-v`8V1Ad^G#EWctUEko? znO^>R>J!6nJ_?10eSty2AuV}hGsXBgT5_~HciHtP9T~f&A5(B zioQr^)n*pSKWJK8U_xkz>{1dOmtmAgFhKZrZ?pPh+k3iMJXL}ppF*Jo##C{Y9pc!g z^@W=Sayde_CVuch_O;rb%;`y6d^^=JM5RGB|$MEfuy>+YBZL??g6wWFM4Cvea_AnVMHe87wuPhC0vJL)=}9 z`|b1ku%=KYDJfWqE~@i4g!13d>(a{cD92ZKuK>I!Sbl>C21J~L`CP`S!iyzmEtkPm z00@A9U{{eo*{I}Ms~D{7xnX>z8^)sr>=tE%V{a7~do3pXnE?@=43}TOKT&CEN>Znv z?T?+(x)=h6K?@N3nd2$w#cy0{~i&0FE(y(RCqo$nO&6}bQ=!UNEdd>U$(H- zd@ydFX+R?cM4B=hf1JgErNe`l`$@TtRXm<^uP4x3&D!|A8}6YN_Z=nJDs{$j)Jj*& z!_d<&u17FG-{n^|vs*#e(`sG60OnL8By1REQv(Gl zG=gB=xThHdz-Q5KmsMkA3q;0^=LA=a=(}9!WL#3|H?9G4;{&!~>2Yc{^9COOCu1b~ z-E-;&E+t2SM1ETfNn5@+Io2znB#Pgony{}&ISkF%RWiEwNUD09XYTigq>xH@j~Oqv zE%?LJ(VXqx=3hYQTUb%A4x;dqGfZ+s5kLEP55K8tt5S&q`vdlx6%@brpE!mLE8C9E_v1o@H0M%Pxl`=Bt188O!+&#W1+82_Pux5g#s zi$M8_+Q7;_3?gDHu|WJy*yUTkPv7QgR#Z<8gCNy4_4V>ZllZZ5#c|;pLSozJ-#`WO zjYGSIExQ!O+%h*95rMo*h*Q5DP&iXi^0-q!{A2Zy=gwRNda7w`qt!)@io-SC8&OrM z@{ZwE4kR&?-~NgP^8;qx&hajr@{V{mz- zq}OT<;xa-TBYTZ+SCiV!LDBF zez6^%ASXkCMZ5u_bg@r3_{02Byq(kB?R9TeN-}&$YH!3YUfK@w3UbMf!w7?*>xfXf z@^{|^cz_*64nF96D81S|fZDXkp#aB+id#O~5V=JF#D9(TFd;TZoJZ*~H4(+51@Ekr@j9}^W^snc3x4Z^By@Q}aVTWJ? z@z|BKSqN2sI?gqGNSJuGUn2V3v_mwnspXJn{9pT?$|ZjOGUb?^6*VW#6V$o|T`y@! zC0J&+P9rk*70uRo_S^#CQ2H1B#&$zohW^>v21MTk(9+4G#h8H zG_!TDKqSU4JEGOaNXm$svT3rRa`T3ySF!_WMmThAYTNK6f3bqf(WJ`!=Ae8z)#7$j z*Z4nQsmh}pBX~=wHymN8hv8_0f?(eJXdYJCSCQfW;NTQt}H3E1gHsKP z+xM*Oq)O)2|6nCqV4wvwLFv*d%wvy6)fH_S8Uew7NW86 z(@TX8yQUY`j2b#oDI3bm-d;|e?Zn2Gu~B6Ok!E)TxWU;vsG3^i>C)c8^Etc-OV99u zV_DNpl&>V7C}|g3&1A5}nIGTc*)lFL+rExZU!`^((l5t-a>I;aOTO^r#_W&C#QMq9Gc`XDDT%I_P+GzS){^JIJbN9;?wlSj;(0SoO5+Z<6B# zG=^~s+`?GNY>iz?7$`UU@pM}Hd6l(4!kB}oN_LxJ|54l600$o4uZi0U{Lw`0Wtn-> zP{xry7ki>x<9XG8rK>J`cFm9%C_91HzAPug3b;6qfEiS@UOA6a$mnKTxpKr7J?@tRT`3dw9( zc$wntuTqcRZ|Q5@n;bl5@sp;buLj8`46Sdy?}089WDc`+cdlK#-nNBFK?xaePRGSox3|=_h=|&shb;^(w3U?5Q_Y@2wa-FfV%I+H2Lii2T-0?3 z$W{BztU3~aa64+59|G|SW9%IS?U>Vv4=9(R3pmXK2c*B0?}+-1Zap|yn96O{>VE@Y za`C|0QQ*IU%G(5md*0f*XeabLINC_XiLjQ#pTS<2D8j7xkt@mw? zH|b9`_3z{?4n5isA{Dp81xm3f^B;BIPuN=7JBJY+uPhs%GIhN$M_fA1G8;(!lqk_3 z7^AbPHq!ek zi6%Ip9&4cRUwYiQEmd7g?d9mh7A{L$=LA-^Z|qpaTf-{6QXao}*=6(ELOGu_fT$g` z>hV}=%XS*LK)2k|h%M>p5v?_OOWYWj;u`tZHh0{}Y))0L_PSp74svW_+j!XKRwSgq zb?)FAi`Y<)dyd_muP6+oy*cApD%H~pf5pCtPILV2pW#ncFh zO2)UPl}jZ(9<Yj>S5OTxHepb(I)d9A_t8!x}x{y6V%|scG@#y~M?T zrfI&WgMEF!@)N>Y+%xWaKLx+%rUpSTEkxU3JA{6e6XpTc(^y?Fot(x@nB2V#uB1q~ zGEojY_j;$yXYTuuIo9*esaHdrUc>G)W3|L+$8*e;21;xTHq))@lh`a|SbkLS7rVr1 zp{P8Cu~WXfzT0Wtt?F#p_~2G^-d6G_CF9|_j?OQX;DW7SB?DB_{B}C{W4lW(I60j? zLmwc8&(!qf`E@!!o$mJ5hUD~e$5$U#N^JjUB$B4Z4RbFya&Ab_ZG_TQEN<8Mw6@y8 zT`P-ZVd!8VaK4i7#o zMVX&*E-Z9@IX3d>TQ&{XPE-rkS^|H zUqWCo2^2v^XnBD_XH6b4h4{TvLh(+nV3Y6{TZxQ@_Tyl#k$cqQxXmW0U;d18;1m6? zX~>ay_O7G_=oEhk!g{v2?|^&Ooz3NrSK>Qk^9soz&ja{<_xQXm+=i!a`nB&mQD4xS z9_}d6DAeeMqdPCo78pbI&xK(x7uL58^W6M1uMA8puH5Fib2eo-oFdYfd(`KTbLG8b z*0vR|ZT5a#*E}W?^Rv#Qnc{0;TMh7FRcm$wlBX(FjSw}%3zs#$7;0pCP4a-lhs=~| zGHu{%QHrsNN&M(L4XxMTf7ZkcfiP*QUohGzCW|zUQjzoOg{&D04GTO^3t{rUXt@8d@D~-oIDSt8P^}7AOWE zmLoc)SE}f=d`JT+NuJ5}pa9f*FBdWi9d+>ZNac;UCt&cHBZg(C%VelsT)f3_%R?mY z5Hgs?$aN)A3JXpdVUYY3xBkiR#H_{G`)h^nS!_Q5C~HmkGEk3Q<~^jk(&ntmNWNg*}1hh&cAy$JNE!czZQ}MMs@;5o{JLKVj2w z5#Bu`RydK{XVh@KgipI>@Pj%z$Ea#%)ur56${z8!Kuh}|DJDq z!*6yxBRhBiC?mg~`sJ9w zsUU3d)5dJ_&(x;OyeV0{rqQu)nO4u#XE-ONF$P49METxx zC8A_n&7RfoTizY@%lga#E~~cn=?!mIwC^Ra9=x0?h> zFoPg?E$7uoT&F>6b!LAVcgwM`&euanaQo3te2SgSW$KRf5oO->gIcGLJ~@3x`{!(C zQ-?^?aPXPKhk!=2K}F$W5rKH^y6*`@fL~gA=Bfqc0CZBE-+rZ)c$Phixgy9Xu` zv`x{>CI*VUe-fMdKa|ZA)LFCoo^bbK8{ft|xCHip!oP`|+7D9ywUOBuIQ7~I1_fF^ zWmL7IAN7~;{n7@AxlXzo*yqYVDG|K$@OOA9Qh7E|VP%<|eO#2D@a0gwt&%t+5UiK9 z-m9OSv(A~;Gd%yrV?crMrg9-DFe1B=Qpmb&5o}Y7OfU-N$u1U`_gJr zQq*1&Oc6@N9{bX1wQ8T*LTqE-sb~^{Xeny1Eh&oH39;|neDCPIKfm9Zf94!#=0qg- z>v><#>v~)wSJ360LRFv5ShR^Ebfd3Y3h+Nxku4Nde=lZZJXqATFqOem80_>UZU8Y( z2yHs!8%y1)-Ox%(lCVlH`uk4Aj=v%~5qg%d!NtTn_4dit=4j^ExLwOY#nk`23#8sL zyGYv(7@wllHe1_rBwD6#%AUjPPr~a!_@e<)>G7;GyK|JsCN4A0KD*EEDWbgZpdTE3Ic+=Zhlmx9Y@@%h_s0dWzo6l7ZnuMcrYk{!vM zRKVGm1KLcH*ILkOr&@GeVM6a_%|`Ozj-x%L>skLCbY@TRlA(<3hYyT%9To$Mb$><; zq>fZbJW)4Tf10UkT;6qhs62Lrone0aUBmXS1XkpsxXn7;MNVe2gsSO`H`Zz)W}mCN zL+yK0d1Iqdu`iW)ar|vYTqx#Dq!>I?7=#12??Kn3Qhqch0v{~1N)xBeydRicaQ{tda`EIX4%a^gU^1<_;P zym!WpT)&H3k|+Yj04Iy8^Skc;@Q) zV#LRfgZVpB4sm7jHa;M1CcY!}p=_Ctv2a|!R&>G4 z|BXoPEA0_$b_Syi_7D%#N6Ss&En0pF!ifQ@Eim89!fM5XEUIGj?(e-LG^Ry8ucozN zb;5pAp($yJztog6gtCR8gNR!0ffcb=UYBT#+7IJ?^!)e&w)0HglQiWClrz)mw7mqO zz}4%At19aW=HecRYn6fW*^T=~@$$0MDkG!8TLB@Ff{3O|;64xb*kF(aTN`uqQ2Ed! zGs?9cW$z4!-WQ#+IZxH-d~qvY_V+^D<6&K)v-?5d{4p8wL-?M)5^-vBx;x22z~b`6 zWzX#5;^uMRSxx77CxEQ-RJV?;hA@X!F;OzJE^IfsoN+5fSsVaY&9-Y91-!Xbpb3 zmjKZPK6!xg!R&eFVAqmd_t>z@Q{nFzM9$Qm@k>l8;nqhGQP8KP*E+e{>;kR@VIy}p zJ1pePwdzeGNinF@m|%V)bDI{#O{!KHSi86G-n!T?%Pf;jIdDwc*p_LpWCm9`fxok3 z=6MkuBWK8tQCKO(xGniy_zXZ`T21zI0r_d_sTdc~(*#_Q%y7|fOuY}lzT|hwxN@5+ zLr&ql*vrnoMP)lITjsP?ec45)E4bOLAR}9P^AaR2nGSzfOQ` zeBYV=vLpIA5Jl;fS4H}KUDX%;0*)xi^{otxA2Gj1sv+&TO)Oq>reY{3S#n^Kr?-lQ zcm@#?mNGb)>^XM>w_BDvB-qkt4=Ly!%8ze0lYK_(_Ew6p;fYE^C811h5`onz zDl%1T|0;Ntt;Wu+XU5Su(t-TSWQc)}<}HagF~w7&0qZqNACEKR`eJ6OnQIpMzSTVJ zlgzqDD5OT>@e#d09f>j#x>Ij0n5dX@n&Ln(YD=96ji@L|)45XKYaTl1_s?^Ah*evv z1+Tc-ANN6?j0rVOP@D7HYMi8)I~+vs|6|W&(gbAy9Md^+V4L3hm9%~nb6qt&(59Gs zF=m0*ud?yqk(d^5-+yZO6~884ui`#7uHB(-wU##j@Hb;=eBXeGC*E9n0C55zzR@F8 zs|SbdUTb+?oXZw+7dM>RXmG^iMd7P)Dk3(&XLPBir)=lq(zs~4gmjl}p`1`sWT^$p zwJg^(X)sB&#e1i~awBNnBOp+&PTBmf{pU>o+b3D)I7@8YhcYr!*Ewj zVDufOqs24EN?LbLGJ58oZ(&dc8!3`vbxHQlh_2}RrgmRBQet^mzP|}7-M_Y7kY&g0 z@1UO*R;ClLgTK;;+P>3n-q2p)esU+6X$JXc*K}8U`|rW?aV?a4P!Oeiq)RJUR3MZ-|0)e?IWLMhu z4{1rm=V_qo_PyrfdGyW3M4;6F{x|UY<|qee#8M1bbuH8g*vS{2nE7dD(YZVr&{Y!9 z_@+vC5s&SQ1nXA8Mg7o%geALiqS&MpHD=QKZ^A!=ygYz!aW%-+P#UpiS7M~}BIn>Y zTQCIeN7V0xp>hE(-@@jmmY2rDnuT4*D+&yHdA31!S>*2C3ygNyU{UbeI!*lvccOp3 z3#`S$DSyEZKj?^MDUY3=)2LMD&%f7h34%o@L#6HLo^*k9C%jAWfET19k*6J5NU$g% zPtJ6>y3n0$|3-xaIBE^h8=$ zaSh__cV-Iczv+jmBBQSk<`b{#v&lR7iG@yE{&-T9Sb?E06ol52W_hyp>`jxfiw=kp zDP`V9E0ZJ~mBzsx%&RVb=_)hgAYavkTz}ZxGfR8Zb4poIcD89eFv)jyOZ^hKg{hvu zPyc40ncd6(tYU40*C>OqQkc311H7j| z`A;%dUlu(^CC^O`h?z#tRjq!E$uKA48pk(;^a8DL8xB1)? zh(Wc>cvR$L3L{ryMaPB|ww=GJF@h8znK-qM8GW9z?#v3{I|f~&Agd0L!ZDchxjwLq(7yAFsnqd7B8~3&V55Z(-r#T?WGW~ z`6f!kZc1pnOvSJFZl?d0%pb8D;p4GuLb%o^%%}DdGMLZO`l2mPJ0F^k9AdP`HGW6aS^!6p&uUQwJJKg}DN zetI@AY6#T(b+^7*-7u;yJ%&vCs4cMJ%8tBx`^Jl2vz#;z@lmuT%t}wkC)$^N#=2Zk zghMek4NlStg(Aq_%JoUx(Y|Tz*uPe;6d^Pxl6euyLSaE;%Y4nxb1K6U^dAgYI!?q$*53}X2~-0nZGuiTo4 zil&czR;Jc>m!zRH#+f1|8t$0ulwuuq#lKUGGz+=wt#5>nZRQXq?GfcRz_S3-Loc1T zU&&$YKKH3F{TWM%t)BHt`V3vSFUyGRlXt+{<_6~~dA75(wAw!|?e(Y#;_mOdph8$8 zwTuW}elBb$8FX8N6a>5xFJ~iz^}`2Qp7^71rC+ka8YRu$0<9PyTH8i3sx?X&_0J#Q zgS3lXAn036*!@Gn)P{+QaBr%K`c#HH^wAv=QgGf2x(e#^MR(e*VJHp2f&lB)SfIZ6 zk4z28*Zzf=w}1s-+HJo+7!ECr9XxjOJopV8+mF=-2E+WY>Rr3$Apj470(giB$pO?k z2fLJOze>MOfb=lam~mRGTDW-OzK;}PD7F=L*4MwRF$cBzG_cA{baFq{?f(!gopP1` znT0P64e!b~&iEv=?7!pNQ&R}c?rGjhwpHf=^U5tB*!ICfP<5}I83)V5elk9ZEzjzR&paCZ2Dy@n z4&OH&#CCmlu?J?Q{>a=)|3FvAe5GPiK;lusEeDNndQg%gBO`Gs@5=M!x#R z`QgW~v`6}FY44KE!%BsXOavWLV%Da9WK)M>_0SL?S{~Yae>3pt-(v<;WMv9 zn$L88#*2RLwsfy>T#r;pdVUOYdf$Y7-VfMHSH7GlQzPKd}&byL?aC$KErch9__NYF>PyR6_-&g zk}=s}=IXq@{BCQwZt#vJ(HHu3Z~xJqebaxBu$n(nU%Yac4V78CG8>0qFOFyHf2;fj zVd^ewme+Jn&!Az&AXWj54q#O*Q|#*)i~$V@HK4Nb7XbEf|9<)1`4*RR$8$R15HrC- z5!aQ*yP{&YEML*l2DdaSKK9hZ_3wM4qAAeLpuoU5R|HnQd)H)aDS?)&Mx5*W;{N9Z zn3{i~+D^V)%ZF9*N0y+#Qr!J-Cg^1ju{hzi9qCE0n4bk-t3^f9-9c|BlmmSNpkE&V zWk@&9#Vz?yQgc={&(HeOn(U@wT)%L~u5%^!MxDg?zQhCw@f7U+2v!3p&@lt2E_!Ze zFD>tt-p>GcPGCchwRos=wqs!Gd9kAi+_zrqoK)r#JU)J=(7nfZ$aN?+ZiW)8CDk_9 zOsS|n!B6}})CAa(J3-u~53(Z*HV2yPVFqU8B(~-f`Q`2r9N8p-_+^WfQ(1dlt{p+Z zg&@Y#&%H0mCbKkHikUqo&oROoL`TzeK!an_DVUfu;J!VqXpj1vQ+NL)cm#4{j2^~W zqCS`H-9mwyL?%m#8F#sLC{IX#wkX>6!SaiXGh+4M2)+{a-PS4IQ~flUQ_gDJr-u!Z z(tJb^hyAtPSF_|>eY5`fvzChf>8Gom@HH%h@0$Vm{(=z>v|~R8wv~^A1?CY+673>t znrb!qA2*<7abSXA8fb5nd>_A{$M0oMo3wrd(y2V3G=Vw%5REFOQe7fTVc*`i(3`xj zFX+a3QiOfG(gHqt@)PrB4&E9MTyQ=a%3IHdm96OtGD7n9hB&f5!S~TwHl_&ms&>YY zxWL<0E$TaK`Gj?nq`HNnLj&uAZBHCz_lNFQ>wJRE=osH7!e{W#5fREz^)6q1baqvp z=7)fDX|p;_7Y1I5rRcwEH3=Jn5R^{~<;~IpM3Kc7yYCLTLAe;G!)o`2&fFCXwbH`a zo|7QScYiRqcQ7XgQ!51*DuIPwL3Ha_K@v@zXE%JHVPUFM7Ohz^9f70Gi#wuDCdvKH z;Y;I(6`(LH9V;!4>qk%Cz>d+PhK-2sP5WO)O=BcmOCL_P>{be7G>w*dz*;5b!BdQx zp}YSd!E-2=V(M$p53fUU9{UJ8UMg3 zt_;NG`=XeVtdbYX)NFxpts|C~$Jbue~TGb6_i=wIQbhZ@LEp&n}#! zo4ggN+nrUr1g%Y*LM?NWdiGfVBca%zb7S6Ue&f64q;trc>D+&h+}OO~UF}`n8l3#^ zk=s9M4HI9+FTAv0H%lJq=`*vCRgW~6o&FlIP_9tRPCJJ+a|2g+t<`4IQc}!Wc>HzX zjAF{cz$?f!uQ4&*>Sq5Q3C`#?tnB<)vv2#U_LHTXX|*~(@giVm_5Ty=;MQddDn}rv z6uT<_s~j2ZtMR{y4^QV;VJ?j|MSW1-B>AHc!6z5|uYtgMexC!XZ@hU9;gug|A8G;a z89?J#7W`s`N`0R%My+%r52=<@W?f9A6Cd{`Bv}6VAPMg0%qZtk+Rz7ve3QCGsXth% zbIXt95VCeM4L3ZngSMrzFdIhc-Q36RlSM_qKnhAf6oo}s2X07;I%euL1jM8?T_uRl{o!`i$8==EeR-kczz;`490Vu~9Ax+gxXs9- z)-60IW=TDYwMiY!p(NvXV73P!MgVbSvQL8{>R&JL9Rx95k(yFXVO;?Z^X7@(ABGZP&78t;rQP$TtJa;{!yM zemC_q#UCk0pcA*XiVMAN_&zqlFT%FM0^hj)1=6chi$De?h=&7l5`@7oUQ&6adIP=M z>o^(TybsxZ3}Uv-b0E%TJo)*YWc8m?t&z>0?}^`D1BN>=#xPUrCodmbnWFiI>QC1w zD|PC>#~jq1<(1W1)|iaD_VRE^c1(9jc~UYoZND*}f3TC?vr*Y(yEF5+Y~dG|BqYsq z^u@v7W_w+=7-wlMAh>lWp5i-#F#AeY3Z1m8F4JpPaq25K+PYHm39a9WaIh+Q6;* zwg@4-CQCzyle=Y701tm~wo!avZn;*;Xiq}`L}Zq)Mas(lXD2HUQ88)BZ4=Xm;t)d& zMZV=q%=b{TN1?suol)~i?Q6Cdi`7E8;Sm%o`&tXi`&7?TPfr%b zzTy2IV{eO``8BeZCB>lgO`{nOufXa;sLM=lpqN!z;DGV!9SvPxT>s505ZtFL%0)v0 z(s%zoGQzpHxlvA$@7`*vUa%L-;Og;s`YcE=JV^smCBHc>w4X-Y_4hN?vc1r}8>KXC zR$NUnE9mW$hj3^o^5?#tbIj-MBPzS^^D7FjGS=*IjOukqt zvgTZJGhC)p%+MxWH(f2<6$zPl6MxaZ;x6hlzx;QABh0J#*p%>&r|w6c*o2PwYc$x#*GHg}9?k6z7>+=!`i@nsHtZLaGlU150d} zyxi8Nhd_|4T5#jmP~3~9S*TqD3X_?|XUg0rBa#JK(Z#?n8dXa{H3;oRWEVi+HF}R%y*>4-)Zc3 z6P1KV$NPSLZ)5he*dtExs2qQaH=KSm?>n}UOAVEBra4V+#~j@7<IL2U%F( zmX{e|;Rs;F+-PAbx^HfoyN2VRD7)O?8mGe@4mbJ+&oo`N_WZr-qF5B);nt0*>m9|D zCv8moS!OjB9{rLt+vYu#HP+p3LD>Q2=FmHLpWbB%cFBt-Jx?p<;T37kuXc27jVx{_ z8L1_eq-=D|aXKWq#!CrTx4vhOIc3PAy<3>UnG*dp3Xyt|bm}bw^P$Snn!Xp?E6{P! z@iCL@&O?)L)s-y~c(0s_)n!=Y^77H5yq81SHM8r$YYjOutsbrG3t^)YFSpgX+vb&+ zYH7vMr0dymQ$!aPm{`Eop375g*;Y;9Q6;V*zCK#sNV=+>ZxwpZgrx@LPvMRF=a7d4 z5T_pce9y9)Op3%_i!Jf;9Ad8>{ivL$!pX;!pwamNt6<|}qVTuY#JW|j0W{E_7 zmEHPf76U+b*IENVz&S|$hG*hTBqzwD=lT7+eX#>x@|0Q-kB=T%xc4DOLraxPb5XIqEkd8C~X%Un1-&nOP`DwhTguBD)SB|;+V(|TWLC`a) zU$;l>Ww5cSBdVJ>XM~4~dRkK~zk8*fF_)4{x$vPSuxAjAFH+*8Y5i$umM?e~`1-R8 z6$~IhyF(EBCcJEuprWl20ye=QBc%eK19#*kSp*5O#-b|vQCwX*;wx8B@2KU_k~uS) ziF=J8gr8EW5Dys6zu>+Qj+zmqpIi3`ghMIYSyRW|c7^w+?~b^Y6VR5|T>BBTc+9g3 zhyO0Jj)*dw(B67N!}b^PHXSc z4m`7$476INkj#V%Uw~EN`udzOTH91g&*PE18G>Cqa{%Jm8G!vUn`^@GW&kQHv@8eX z3g!Z^)cy?=Yvh!hmGLa7*U!gHv&->SDx8HpR@#mlV9h}D0tr!Q?+Oo`%sojWPJ_^r=V=F3O_ zkp10tH4hbEY5Q4pGvk~paG|_EYsF8vmNT)*qf27xnYC>7H=HRUwWvPlZ*dBB5*?cn zI0DRgU)5&ka|j)iqJQ~4Vh_C&%%gHlmtcwm(O*?ZY>U~GgsTO1E}xfa9i$S%SMfuX z9=Kyxj~M*D+HGKg`0E&Rm&3!fS2$V10`4=Y8oDPv{n+<-8}g#JjTIv> zs@{cl+fO=bjCN$&#pk<3I^-fOmQeOw%fhQ{Z|+Y1gsj=iiUU(Bo)LLz{W+IFXX9hS zAsWyFvFp#mwnw%oAM7IrXo3oX+b%$@*b#3AWXtQit1WQCehkK;x4WWn+T| z6*Q??ui8JG-xfCj56vyHm@vJtFY&$9M%+opMkq8PlC-oq(br(BynKhW4PPZ&Mf_L1>Cn6gSFeSZ;(7n9YQts1=x4=N#x+6Q6!TBvI6UntZ}os%O8C#Wvr+>a8rHBX7D!v z`~3kQ-u&`c=TspLvaR4lOVL`r1DGtrxRghbYqKA>Bcn+P)7H7d9j>!}Vee1LchjV_ z#OLBW77C}$oQB>6egvDK;gay@S(J8y_T?UXHo>QXSCMBiS8g_z*GKMTtM=r;5$56~ zXbqG~Ou`D8ydA&@+?xmBf*dCW`E1s0%WbYY*eSyuTLZ&B7@-Gd?SP2F!QRIs;w4#v zo=%((T_+c0e!g*|bj$6_=ms(tR%Al3Wyrymm7m0{&%_jOrCnv>413$wlsdCWD^LOP zbr1E#?+^lWXF?xwWrU5gZjOatu2aI>A;G;?FV(EV)o_< zb;;ihZZQR3U?BR+8SLS((WoXyMBW`wauU0-F`(VVsD>C@@Z%a=c`Ua zYa~x(4(mo{uxu7<@X_5k9vRKhxo5o~vn9mJ^F9cFrL^XrfLeWU-vSbf2~e37rT;ym z{mt2tI+u~WJ(@F&HH&iUnv)G+vUkY=DFM>k3ghL`U~>w-q$bSy3Ap=&f-o=KQ~Ruw zC;RQ}5k6t5eJ9=BNMymd#6btY0UBa25rs+ZlWEM`Fx50Zo|tA@4L(^Z|d@TUS3Zx&ws`s_M*>Eo`$b z=;I<5x(e$bZPsVXbB(VPpK`<>oPQe{V7TJhIn#76IIJ_^iUgQA&f#15i5VnP(1VnA z`5fx}M{@iqNcn&Zv&ReN%SJDT8Be@!107PyT>}f4W01>Uzk8w^@ZXn9 z;qKLe9}~o@_&QgRU;dY}#(6QB_mW>hdSVT*P5`H^y>J9nJ=FCFg>~c(;0gbX5s6Ukqgj;AB5^U=b4DFhROv)%bhV|n-I*j_a=2EtU zGn7Sr5FI9Mk?p)hg11dqu=(9-j13bK4Cxcsjwn+u6S?m7_oh$kh`M4N{7HpyP$95? z<+6?0WVb4aJxM<~A3VB=jGm;-eD-J0m=qNnv)ykGBrsE{henb69-jVvb<=9;h zEG}f3Uf7ml?NDj*frZq<;qpg1ATe@La%KvcGLGHm1N3Q7`=B21W@%=(#cxf8uwGic zcS(#SvG3td3p=Q)(2jh3?AW2LD2ThZN;oLn)|1YYnL~weN|RZeR;GVCU6>-e4SOax zX^EnSn$br34zolNDKJYmEb4{Tt82JU+gxKdOXv;_4fy2B($`^f!UFmP$MKi|G%81@ zIo@q}m={{Z>-)uxj$x&jmg~E<$1Cw$S(=@4g;d_4YTRq6tV9X&fXfgwpv8PG(zEUx z^u@QSaY?+LWgt;IatDU89<;k_-;S<`EOyMvqj4^FY1DA&NR+#ghdR)1uBxsg@olrB z(($D7kotG@2^A$ZZ(9oU*i6!b)}S95wMH9B)m$G#6~G?}UTf6 zP1pPXy7V%2nfs2bj-*cADr&!SR;}X-OJ3f~SJD=EKh6x@rEC&&{Ryl>fQWp01)P1T z=}CWBY}ji-@d`l%bk&tYyjYhj{MFiF!$i2^Is)24;+Sle0SYvDHQ?PD%+2sgN>}w7 zOKLR#62CDxp@Ft$8c3nox|%Xe?j+23pi_9ebzp zN9rYsH%>J88I1n?u-#jM{MEXT>1?Ag?!${6&{0!PG_!peQY7%tIaa2qs{iHB#O z;%^w!^#<;UN9x92svdK?e}t}!8LJ96w+d)rG&HUl5nXZM%woN-B5&V=DtZ+=i5-)R|qmLkw6txe%@WGV}gLRK5=u{yZr3+?qlE5bVh0s&zhtXXX9W_CEC8Cw(w>x zMXq=D#O9gj`-&Jl8n5lK339FyzyH`S0D#+s?k>=b{WrAxyR%(mCqPK-xJdirOpF~5 zugGIy+cY3n>P9pkkx{xvd-d1t{dgdr1N2vVms;G$k z+NNF6d};8p%@PBe9LkDm9<>Bv%~L9ujvl+ktS}G{;4pvr`bJ;pz-qH= zW@qJS8td5P%#4-~Uv}%&x(y9S z7hiod)C(-X4f~4Sb(%Fj*`Y*RBCO4tDEU=h%-9PZbxv;4xT}QL)qLIE(Z*{V+S%U3 z*K*l88DYy7qFN-`MLY_KS*j;50t1k-7fLY7rr0e%fc~W@xIa}l%E1ByW+uVFyzV7f zypOkx*SH8|>{A27SmIl;Nc0E*r|LwrzaytbxTrUN+caqt6J_Zt?V{&(+ufqa6x@r8 z!E^fid1&nAP5KBZ`;XTnLXJp>=`;@ ziWl~F(FA+6tL?92KJIFYgO4yoo^@)`%v|6d(aqw(*G-2DWLu53woUK$N@;$DW(Jyp zE-%C}MnZgdO)ex;uqlVVcn(+$zAOf_j{PjhFavgg0QwMq4VcgKg6^~ZC1c%3XX`FG^ zz(W~D=I2>I;*qKmsG2hNFzgLfA%fb*NqABw~h$}RDWwpn_LY2S7 zmDGQa^iNI9|Gcjm6`g9b_>_5uc74j#a!an@zS$(|3#YP)Y#?(kSDmWM{(PdA>hF*T zwoE`T0!PvPeic3P$4wU@K&Y|eZQ$jtsopx&lU{-=>npyO1~|Liww_B=&vm9OJ$#bGN;fW|z|R|a?1l6ig#1|C2Iq;VGZDDB!qwttqTuURLE?_Dmy9 zl=aW3&NN?%CiVUR>NvJxw^daUT3!I6NN|^A(|Yij(c;Q3ZXF#^uyc~De08`BxFwHW z@ljal1)fo_Z>b|^2bM)*6#B+wBE(%!*t}+`BIwwbgZiB@owi6heLwTx<$Z)eBg0W* zacHyKgZ+8+aR__+?cad@#t0tY^c$tL3snI)ZGHJAY$!rW$~Lqn86`Z5w&};HSFK0z zYnQZKa9^-bpyWzlZQIS*MTy#U)3$diNUiL*1=)8ImzE#f>|6^Yd^6tm@iyIFNWF7V z>?iD>u`b88AotE8^R;#*$GvbK3PpypwDF}i)x*RgnURzXs-K8^4!y{CH*ULURG9N# zFoGMuPWTg9Z;{_{8r0nVvd>o-HN{6&nIlg`hL*%v+ zE^CkWGr;Mci?&sG&k4v$bq6SmeI`4m^sSv`vECr0Eq6}6C4Bs*bn;49KmN1-Z z1tE%u{TSQUMYc*kXR_|^@ZrJCBzs3Z)D=9snHdYvy9+=Li#Pmn{l?!3kC2FD54~8{ z#SAy94aR+7eWqzQyr{n*qgcHo){A$eaMY0vZ^7NK8_IfO4!N$ zvSWA9?*~v=DL#a+`SG?Jka}gZ;%e=q4f77TAU`=F(*%h?u22awRa~Q9EPnAcq%VX zsAYZm0$^uAdI#zWATA~x=D|3F{DvpX_q7a^*XGg=B+|f^;y4I5ZynBa87Ezt)*hzS z(3hld#@14!W*()>rkyQZtfHmFQ#sZhO_yDikaJ`29$O#HHOwhj&o9?|jf)_kiLxjZ*(mfbRSqz4+%*gyV`b46wIBe_J=bOMM&M=b z?rq_yzg$HU6;$2vrucik7Q(9CWIJA7yr8=!k*_3(c&GW*I!ci5e5>+_2U@<_`7sm= zmFqzY)i$=m<~MV`-**UWIBcmhaR~iXlo6hJT~kv`ThBLo;5!GbieP8+U4U(8B|_&@ zR!_h&W+GeXc}D3f#w>IFMR9B6{Ld9@a0W)~DB8T%$%~Y1?^B?;mn5YnDobhcqHITOnAmRLQ<5Q!pPNFE^evlym(U!jA z{`uu~ySF3RiGDU1(<#Z;a{Vow7Gy79J7k@@g&o3~|1NquT@=XG^r% zW0F=LHSR%+=u@%T|D&I_f53w#1P|k3pMkN$xSC=Z#uMV8aN2JClg%vqrcpr8&}N`+ z76wM^(Q0ZswJdt&QA0`_C<wcwNNr6wcM`lJrEf8=Y{NLfI zD5#va@O`M(@E^@8@5x-Ji`ZVLH)}GIr=D6M7{r|Ui#%|xrlmSsYaAo0L4P&#QB`IiGppdAjx98L!%rv1dP(bl}s z#~oxcj;1)rl}9+6BoBle%R8M+cinhoWZ;Hc^KI#_#S`=s8Vx-}pdU9(_%wPW=tQu1ya*5D)f^s$6z{2!ZC=xgr5dD*q zpiE$n8UQu*w;Y(}Y#G^#&8jYQ@%NUHbGP5A1fKq1H1^+1^|mB;lx+5S_YnznGefQ?n`#$Y* zmSUv>4oadAf3@~?(E2`J==mT?k?k&n_bg|oj?xIMTmp9awO>r+FxOuzVgk>mB*P#o zCy*E4;_~L8m-Lcrb8_GYxc(*xJ$Kyyx`d;TTCR2ph^*TR3dO|5IO>7VEVP~_M1^Uj z;{cGF&S2^1>i-_Od$ywxWKTrM%2!nL3*$*=#(UFjMY(SJsX2);;Y#v6HMwdFtG7AGq7pjAwee7ae-1Es*q(rz$CPv_OH<5~{~0-@ zb@O{?kxe;73@olrTXycV5H>EpgTvy-t{JW!Di`U!v|;35u;qFX|72IJ!NRi$!O;_# zi6m=KV3*0Yg!9)$KQ#3z@%99qUzlBJHzun0Pa2iNEHQLn{@g8z{<~w#(1^MAVJrVB zxiu#(5g&}(W+y8SARpoyXxTl=Vu~BGJi8|D&5l#>b6Y!YWwo&21dJOnCIQFgFM}vB z9$i#VFYF(x89I-_q}lr^Psq;g6#51v{FM6uE}-B@`$cWxkUM8lMz?Z{;?TKAF45?N zhN#yirV!fdO@A1f?u(Yukp{>nn5H{?js{I=ZK%yc5uXz)N>VKLl{GjQBHImrNX=OY zz(;*7$vodLs;RY5qAX{w z`myoYXMY`ug2|3JmuU;_$9|Not5QVTt`DauQwOmOg_lM{$y;J$n3HXrzg0Kh05 zEC&8Pg8u2SC+}%lB};j@{}NQ}T^_}K!OH5UP<$d&rQ zDRqZbz^-}y=$WvaN2P~}!-BQleQIIsS~_yA89Lc$=OrZON|AY7#=hc!9iQ2GPDldG zDjcg|jmOQZG9{r1u-jCVZ1mY>wSs9T)O1%eqFyP*EW0LBB6N%eW3zer0j)27c%vV< zDqGw)>5zI=eIhLSl54<&M79gC2kGTH*6XH8g6Vdn{3ZOk5UbTce>`u1gh*~)8<@`2 zll77(*J=(rVTDkkB}%6>n)mBXiq_0&T7f;Yf?@Dn8#MNf#*+W%sE~Lm)Ox%sO)#s# zmmZvWq5P)kZT~WfXJ+NEl#19u(Oc`~52GyJy7J{muR9-I-@hyzmDN4Lob*4s* zOg$5G<^w5-11%bE{dwNDlZ7Tz8jid-->t{U)Xj2zi{uC8l0SbjSW7IUch^} zdLT9)cv*ajn7rpJ6UfTtJNB;Sxd-OoBP?E5YybS}Wp}{6q`p7O%C|oG6Ljl-kqcgu zo!UF)holRAtGv6%@Am}rut7avdL4UksTZ>uo*!9a=;5?vb=o4O9Qxn^^VV$6=7^}t zMs33C`iaJN=QT6Ou?M$b7J9Qh?bHvv#$f=%W3TpFcDH3-#baSxAx5%WkbdvvUH;>1m2f-R0GnQbHF(D401uL7qj(hMcIJlm1?S&d+H z%Y1=r$@l+7i2>i*OwJw^5zt>?($g?T-juhYXwF#h?>WS8gz@_H_=B>KaaV=;FkDga;+^acidAj2O)# z#-ea)>{lcx97KW$Z*kLVlg~q#sw7AEo)Z1lWUu+eL4=rww=Fl<0&2g6+u`E>4&z%= z`i5YOstUHKjhQEl8F=`sCshPb6TK2++3Q@`oBlmf{`&q zSCA7nk(!iMEN-qQc4jKa_3&H0_`v5@NTZjeY^d*-TPkd2h|5)IR5fSz4|g_l=)3N{I`w3VO?ka zJ&T(bjFVpc2ckpPU#sLmQ$V%e{+kQ77R#BVdiyWUl9eMaT>baR(#s9q10ki&`Rn(p zAbZce1ONP5C7O2O+Se+!W*Pr1%H_!$w)*phQCF1=Y9KAko!=gwl|Qvw$P-kIm^ zyg<4zARhLiJd>fm5gzt|l&F-G)+qkx2I~&R0Fhwc>6zE4f2MyC)Mq~gz2kvPxf{>g z?xnC5uebXfiHDU{fmUC!zdbyBqQ10czfK>3 z(B%5QTeyJs-^@xa*Y_LED68l@y;S7-y6Fm9GTv{fsdHjw*AV~(6)OGbHuZNo;^=~v zomDxzd@Xh^jn3wgZM?}&(D4;tio;?KSG)F)lGC(veuZ)CLD17A(CG5%}qQ?TaUftB4)7m$vZ9AdL{gYa7Cn7iSWcPz&C&gMYl~i8#fH>nQ>p=o6QGqz;zy4$erDQy8&l~ z7dcdye-f6BNDnHVMe>%PpDGGLSu^H+DHTf(bo8ZB{VRfP+~YB6@3aZNvhv=-UBTbO zwsecceSMXjUWr*;tYg8nXJr%S`-AQwQwGA~%60LY{2xCId?%hd^UQ;$JPd1W4YF#I zrsy%1igk|TFt43#O5J*bDj=aY6dK+RwPku6LFVV8aZBMp@Z_9Zj!tuGS z(W`W3m^>&mAT)2NsHaa<#Y0VeN4RMFETgWu?+vwT0YB?wq|v_KJW-xu^oN>riGC~m z4l{CYU2ki5&HLk`FGp1OlH1W_e&IUAp>!GbhrSg57VB zePQ>^SQx9O<9=&+Z>Q7}?s0QbTh`IfbhnQ6J2mIL)Qfn*9K#~DO9Q>^BW$$VfT1bE z+Cq|yKIjtyP)2adVmzbPcjD-SGNlE}%hze|s$3_fTKSqA08C9|QYrR?j+d&iSxo2` zk%lfrh-vKd&yKTmb&OUpozDhB)AdIJVlHCkb9CAR{~uNF9mw|jhy8b*o@%Q_jn?Y2 z6;*q786`sPBB)x8h#h;J(<-gmS}8FOL24vw#&$|kBh*YuQ6q@GH|M$Ie9!ZHe*d>d zB=_fiU+?RBT_$?Gtd5cEh>sJpU%ml`>7QqOnhZ?{%vh@(&+6nkUDiy34zScFmRDzs8c943^?(Z;#BeTNurH>iqLmJ+_$LvT)W zYJGWHvan*mAONQ4>^B2C4S+4@9Qz|x3ussJs)YJN9PHCN+cFn2U&^oOJkp-O80y)I z`zx8d<^7+`APNn1>4#6j%yPD)LR)gvhHcVp=j&BFu+gID)!+W6h3`IjnYHT2Ww>ME zf%9(`FNSdvTqhUtM|`!;&+UrpTq+RrlA%^TpN{Sv^<51!Ewen(oV>E)Q_tp!;ae5)TlU5QuWV~Zry>AGQl8j8PHqy~k&(@Oh zx~3+(O5Ji${Ju_Jk_tXHkUIGsW)MI*cb*x?A{CqbOpa8wM z(03#rX{^~^6s~_ce}}Kup!*LJ)$!8fClR2$@P^V&{F`E<`H96)lbc>4iVQAI!EsiF zwT#zVv1XgL!7;{7#C+{Tad*n&5A|C3)u7;uNk+w;@T8|vIR0~Y+Mz-@broO|)Riz4 z`D@*hLH{gK#(W$ZB$({0GY>Qk;I-j;*;IY)XS%h)u=ZV735fua6HKA>D^!G%Uxyt0y#ILpT)N7A)ujt;3 z{F*h$iTHqZ{)>(w)p#1qI>}btmNR)8Ypn_pa#rPo_qoBkD(q(!>6VC+%;mBknhQ0Y zhh;A|`abLGFG&Tw6?fQ>Yp+$=c8e#>Sh?|s|M$4B=ty^2z-u>8;Z4~!8e=v20d+~> zE4?OOUIzJS7KYUUplB9=h$w;<8j}}>KY9-oC|VFvOxBItgVU zv6!zekgLIk4q*ODz7A}yb9D8g+W2muM|8*| zi7-_)sKc#A|0*ajFw%!-(ELH8P4X^eaqgR-k_u<@1AI-Eh9L(RGF$~l|8Im;5%An+ z1gOHw?Rp60S}FFu(1VT4gKh8jx;^|^$4h?jsRQaJ-%d4VT49w)s&}M^zrTTK$$y3G zW0!WwLZ7T<^7EXZ_BX@grgh=vo92@Ho>OD>2SZ|-USqp^W;EP94cB~m*PD8{p@USK z>LQjLji^(+%!iSIi9Zk1yBnr`bFG6?zk-74m;JLc)ygWm>8R#CsRZlOb4fG5WMq%4 zYk{(>pJ4JNx+lwEO2G8e(O#DR@`c;69nr?%Kqg4;MENfF(x%d^Y-27FZe#+dHZV); zWP$A6#w0LpEgh*0j|7^BtN1$>*VpiNW79n|<|yO$F*sTV*Fn0AEW%HvS&h!?@G=Zs|=?{F3g0>3eK1~{;#{s0pdf>WB zN}=wTuV>e(+E1^iI+8tydJnJgjG7GrL?VmLIq;wUT#N5i=|dVASSF0#8nuxyu`XWw zUL4^|};K$jHVIMk6TRi9U zdxSL8t$%^*fJJ&N?lRqqn*VRccy|(0aTg}NJR*8Md#~!lZzkV{R9}vx+9rRs>6^}w z6?aWDu7mC1jWc2i92eFL0zhd>C05SJp)${pifRDW61Vl$=nJ${%w)p4NlM1J{^dg$ z<;X*wVEAPAy9Fl-)!rJBJ>uQ4v7pPcChM?LnpA^GlkLK=-vKqcmXf~q4lTbiKYb7S z)rVy`;J9H!IR@LyiPGD-=`9&j{K=-e(kWw)!?p55Zr19{eINU4?_e}R_cP55E=<(Q zFQNPzSK;HSz4v2hOJqzhO{hN8#YWMTq2lSIv+dsAahuPNwlS*_h3AjEPe5sOO#QNx zsS3!d=SSuci-omtXZNzPamcxTPw9!DcE$X~xUPtHK!yf|DLli^v}VgaW7|=^Q(OGk z~5vWD-k3devcNaA~0lJ>Kh_Q{e9 z*o?+!VfYUfu%5=1G5~HoyQrE@g63DRRDdFip{vcV2^qK4=r$~r;#+M|NN#(t$vV-t zB%qSIDy}~6qBWYdgWV+~$;_l>I7Cnx4#L+wzdI}Tqels0+ zw3~oFYn8Do?Vn#|^Cd92;1{AJBbZgs;I9`l(>p5!P@x0#r**JRp176qGJcJ z>iOxBhE}-@AkY0hAcvzwKM2G+WRpLdxqA$aaz3M>uI8=6@exF*T-|_5fr@BPkWk9; zpa;0HOu)@`V(K;)N*H{(zCi5CJ``$%s?#e|A%(T&vZdkL%Zm7;8g(dXxukqyD}*+o zDletl>25lbZnF@8)!$XbNS989|TpEf4`b3(@vP7#o)TN%^yKse6OCV4CoRCqSN zkrow59e;vuQ`#__tgCJ)+ZNma?Dl2*ihL@MI9j*grQeKwRoErUwp5}qHgZXI&bMA> z%U5-HSM{>RCfCM{+0r6;J6k-asHU)9-&;eR1z)jal=ZVhH88clZ)qkD>PyH#Z4q^A zTiZ8fR4Ils01G9zn_HsH>EgyiD1z9nv+7PoN}ZuM5j1QK-&y zRABTDrJDyqaGomoF`$IGDp*-^e^x9*Q8XUUtmYh*RZ!!x;XrKN`s;3*2Y$jL{YRS% z;;$-=xFj0EZ8>>`j~e z1*MXFl;k3tjVvNN>;X(4yD#Z{xUhve{1o25Zh71ZyLY}vmA&Qce4 zJA^XgM&U@Kbd#S)B$sOyj4-0#lZUFrpEVF&ic>9D;m@&Q>$&ZCg>|j9kvRr># z5!Q5|EnesS+Y9_$iP{X>3)$Nb{q?r4+|J#)pmlSo42>6CG03}^e zBni;-`U1@4k;MQ@RNI7{L$X|zs9{*(wKh6v8ayEAOr4j*H)5iBGvVdTC6EZ*M~lnm zpoh#iYUpFhM6^{J4Rr;ltp5zv9rrY@(|%m1WSajYSUAwn%LpbWU>;X+hMV0DEBu!<4$2|i%$tdx|X;Uq6XA-px?a#njRBhSYO2Amgbr0t={;p zR{P#FI6)(M?&>;@r$V!`0IJurmZDSMIkFxkqAPt4ywA% zX%VV!s*ZRSVc2Q&Ta{P6$*viS%;4RTCiR4V;GXWq?v5^%YH!VX`8DWu%>^J|&25ke z6-F_R1HGt^8-6pIeDoj-o#FO2^K_}EZD@biPrGzOJ;tlUG6l;a*}R9d8|B@VHS-2o z(dFnA#HMPXMO+j&H?=~3{2Ar-O7Q+7ey=?C=e|T`JZ-qndf;-<;o!iw`e8?Ie}D$o zRK5n;t1Z`9NtRKrEyE!B-$pL6^5c(shr^TJhi13&gJ zD4V=c6_)yrs8@(>q`+3KbaCp1J>`o=x`lhFH)y}0-xUYNlP{+euEr1xHgDtOW z7{-MfCS>1eQmQ?6b^TF$X|lA9+P;Dh zCq-0v7ZOm+rPX-&W8-kO^jW9d>Aw%$sZ_0hoph*LqzP3#R3$LbFYWPBS*v_o(&U>1 zoj~#iBhgr9pYeI>sNz5xzg}2%X*jCD_0(=b;Fuglvb7*Jx$jv>I1n z1$dwIO+QE|gFV?Fz$2G%Q@A7S!X3ucr?~H57dMZz=Vs=)qg`~NRm#M=&%ixpUvnF# zfJKu9GhUy0eF}?Mr|D5mcC32>OcNN@&uO?-{Let8^IEk_7KyWKpmz-laT1*aNWTM! z6{Xa|IOEGi!;y|<1{JIm6g)V=s7t=yyhLlI(h3c&9}P4~T!{*_TdGS9OTO^{fXmO& z`#?I=zoL~+7uE7%^A>KcGfEpXw=6XEA_y>pm1Oc8g8yPka?5b;xScosL$!(3sZoN8 z6YXj6a*6E~>ot&`JRySY#bK=6vwTVKoAC5cwG_=q+qFZSS zl5Ni=pJ~z#x=MViP!drQgHse2J$eRcj_g-Y(p&iyHnvkmJeV3lB=m`ut0PN7(2RJ` zdNpmygw!dj7=F?Ifqr?d{%_sF_gS8#wJ=BFgc=#zJ>VLm2;|a}Pm2}qJ*Hw}_w@8- zqK%6KSdO^O1568deO!QnyucKv$y~v74m7);2o)|{BmViLT*e7~wnk(uz96FWpA+jG z?Ut%&t4aA*MgVGZ0t(wt-&K*Bikjy;nKIvx#O4!9sF=G$BV&UmhgQNtABn4sl`_Q9JUSrst9C~NP?Kthe8Cd>W5?&EG|efenOw{+=O=f~BYU$D_lt`PVKTKQ zQcFSpk!dn`V+f)Y%I^V5`y@*qe9};*sI8S!T=1uM zch(E{-Yx8Q|3xJZ1T|oC8+5v-);+sW9&{9Kx-5PioQ@$1P|JCq(&8=iW>TOjXcC){ zP%3&mgM%y{r1{LNbOR?mXlaS5JNv;2CrlCV(A1vnw~Sh8{UGiK@zRg3Xe9xTcN?NS z*3{1THa!K%>2#$%l%sKUSM}I|RRPQWLEmgKgFy~dXSM6y+kSH9;(T$VS&QM2P#sD2 z0oU`a{;YLa#g_xUoD-&Y1+H8#wzMTYA2^Ck3e|{Eexs=`$L?2aXk>v)Jl*LM{dovl zlo6&X2M~(=PpAH8`=oom|A_dPzjXeXza*e@&En&VNhN{`E5e5YJ_6GlL4ml@ty_%f zvc+^c!8ZduZy%K>AhWde!YppfG)Y{V`DKS?5M-a&l3pQei<|=OS*~y{c5$=7Bne1U z*Tbl}1Qs-a79rd{6s28XrP;2XpsdH)2K?oy=n$gJbgVVX+ax zVg9*UoeRZnHMXO0@EQQv8Bf~CTPNO}@m2^&@W@a7q08Jq_0uXFTW=$4>+rzC`)7|v zN&AbrI8%7`y2zc57{9^0K$~rQ(N3$;vdVn89hmy_d1_h7!H=1)b$1%R7URz#u3(|U z>sJBN0smv#%FQmD2dR6L+)XkVKUj-YiC>dAk7Vg=PK}0MhJGpu+o|O1jT_HPF%}H~n4}mG7&A;}uV6fI^4!-?HrI6B0j5eI&hpNsn3YsVLce_N zAWrDZ!MFOWyUg@Oa+Yx0r)K-QcWg-=c1a?yJ8kOLI}+dG?bVnox-~u>{M@0u5XCnv zes=rk#QvK|mcX(`h)*9PB){6nF(Ymj*vM^8OaU4x$Zr5pEe~gqWeQ5j#!L->Ad(kD zi#uX8I|qB|7tTe18O5g!3#%lIQgN7rC-v>V;{ozXeia)YABXqK1+g89Reyz^!R9Z2 z?SbQ|_^x*-!Iq5h=%SO!B#S1%wY?P0jvGQTl@mm^T7LKsw7t+@$%W?Hhzk$G>(Kg& z@smY%`5AavlC8vfTZ@lo5#Ql)XMlGQ>~NL#`#P)fARw!!ZakTytL$Ozq|=gWkFVnv z)ZnRx`V)xR15L#5ZB%lqHcN;|RUmpQFju^8Mhr5%Qtr>8!;S;asmF3}VM(0m0+}`Y zo{qK;gdv)rc;!40QC~5q8Jh)t&iz)z9up!SH)%T+(8nUj4K@Yws6o?K6JUeCsO@Ev7I7$jFk zP^p&+COp4ZI$Tx($Y94z_6?=va>C>hk7DF~YL7yo=6%8I=yg|Jn1Z9G^f9Q1p{q)` zQCG^sC~JlM=8O+vcTmf1u2SaxNVE=H+x;Mtx;%JltoA|uUXovE_8NsB>)s1uW4pJs-RK#|BY4&88+UWEFcka*c z0C+idX=$Op(o97l7u*P70it%>4`=R{&eheKN!BhaMAHJSL{s*}ddD2nXICgjse-%- zD=x6kVh8c7Yzb!%1wez&YF{s!wW3PpLzD?w7<7mXwpH}%6q4mGrFrKQ&b^d|?lVd# zBW*?;X6(>$q944bx=Pml5D58HdZ_4@5Zy@+0Lzc`Pp)A*RocOxf?_loZk&M@w>DmX zZ!51|CEwvMa<1!XT!Ix})q~+lE;Jj2JurWF&vyS*St3|6o;h`vT&i2|H8uj-0w~G< z+)RKL_nW{d3(&vM0gROQ(9BSq^{qX!n+3!UPrGES8>P=WgxEVy zus#PDTV(mFkj4BR2u;)W5D+WrEX&*SW+G!LTPn0gsMlXgl{VrF2lr)t#&(haoH)fD zi!1-xxs53O6UW}4#5tN=!36s_mODKX`+dOPYr3m8=kS;B{91@u{H8@H~$s zo9x0YP)!Cp+_b~!acp+8-!ng<>clgQxy=GON-1Kiy5-ZV8FD0RwaytvD{hvA+@IO& zf_0_Nr$R5)FCJB3c;_%xn+9pI2Lj&XC~8M-pV;T1#2{Qpx{)G>=+0ZbL-Kq8~vJ6pRYSdzwG8T_L2exn^%l4-o*w%S4176x% zqBq5vD=HI8xTnV`$8kNXi{$j92x~Dtw`zimH)bo*JA6{KDppI2GHY~Hu3GM+FcPstm!C;LHaLm>XU%UvA+YGIX{r?4FM<2uovDuOQwf4m#i+u*2m( zbN3_da;sS}zMP#p0%SQcf#e5Xvzx@1(^L~~fl6dPBBJItiNF0_MHQg_5jAxQRZcaf z@~yfUw_v$*CASPu?1Z|EmONJPq+eBp7eY&*dH?ShNGPQ>Ewg4Ah(c@Er<0; z_}J7h#k-F{>JO~7LF6UC)dF}i*!)G12`I%FuJXIVUN&b-&+phLCS|Zzc#3<5SGamC zE>-I&gjB*^j);$8m@$X6edPmv-Ro|&#nOn@YAYLam-&XhAls~vrh$h!ztRG&o@J&1 z617V8s3?~b*7}^1jj5~lm`l2TwXj#E934b$RBg)MPpSeInQy%5xZTCy{0E4JIpbL4 zuJP&uWyqfZo}b>J`(x9q!KfQcQmm39T&Zve4W4GQ*sD27lpk>dZZ@-XxJ%1fmK0oE zQkL)5e%2bs!dM?M)x4*dWXZt2nLdx%QA7rnURm|4Qc?f~4*%bw^Lu+Nn5V$a?vJtG zDGz~&DtkX^mt3%aPKJ#I=u*)x&s{oQhwf-BX}K88Pusq6qO%)q@X`0cBIJ)hMr@l= zn$uOjl${S}OS1m2jS@imJxax#Bj^}xeN2fAfzxN{m>+eE5#)>LLk6tdKpY6Dkpa4H_@$~7w?{nP`YzqwVd0Xh{NPsGL_0c?ijuX?ug0KZQ$O@blhkD zOL4!ovtR7qhF7tX^GGvK=_;u$-io~ndhaa@*8YOrW2JcLrdXkI6xRf@ZuzB}kxSnk zp-;gZDX(Xr*akRLDf$7|?zDG=Yuexjkv;VtPq%4~VxYqTC)Y6B;R+FOrn;wd$A``z zujc>LVR9cH|H{WrNNj7Wru|`HuuS}7{;LR+xLN#X!{eR&#Vdygp4JEE>q0x`ou<9~ zv;jx#dph)TzGpXaZi)IvTrx;j`z~Uk>RMfrwDE5WNZ(f!xy}zB5p7#>9xd#%1Uup_ zEE5a12C5?zD&zk#PoWn6G62W7+AQ%gBYI&*($yh*X=cDuX;XH@E_FtsN?Q-%=a4;% zF3>jvW3}38@csjy{Rq}Z#WIY@AS5MY)#BWNgR2A1M>5w^+G)m!M=GKQDwu4jGBgu8 z#?kxEM*P}P_M7*Kd%{Xi5u`-OI>J)e)mp*VO<=SjR`X`AWzdKa-d-Q`Rm>&1{^f8g z*NR}gl3VrKOoBawyw(eSq)cZ|#e+v@4|#KFDCQb&Hwu?%Kn^U4|N42mQc3$}MbiC} zIevpco=14PH3*^!)zeF>z^DO@r@?VSuLutcjp^erdkiDNH$>2E1{o( zU~zG-y8TXc8Hw!7Ya?GPO%{3i%|6Q^%&$gFEuc1JuaS4>)^^&};*nx2Q zHHfSA1y`OlT#?T@Srm(ke41Tk5R{c}R9Q+?proeFd}%p&mY6_~zFc|&$n^%yCu!Ru z>(v$k`4-MF^XTgb&sw{~$q}pBo?yGDh#0h)PWvyxd+yQiAwKmyf_~t6)zNZ+U^=iW z;7LhdKZ>4j-VHHj7$E(dyF2|p_HhlIaK3A`zZn9}X=U^nvG3iu*<0Zb$-Fwcl}73H zsY~^-wBPF5&j!4G&(!oSN{7SL*CuxAJAGD1%OqnN#oTe3YVgXAtCikv*l)=vrFA|XdR!(e za*)-mMeF42B;fQ?+IsIKaznPoy;#Vyt%Ti!5Z?9bb1FZqSiEd-x~k{tnFkM$4R-xO z&zgO+N~uf;pg!ElKEC~paMI=buUjq0c@tYDdu0iY3q7xXzPc;)fd2e=aFfd#qh?wp zaKQY``U1dACGb54Z(^uxWcv!My_b>0P7s4%&)kcPr$95(rLHyK!6DNX-M%@I;%;ZRh4=lSfKts%Jmd!;IO7 z_g4kIYh=uJK&PzMVrkI_-}BMxc7G1!W>tQfmx1iQtbJ6rD*CT6c@0(OFxr!+6f;WF zCCFKX-@%0zvt1Q?$6v)48KvPl&;_Rt&ER1|cPN8D5{hOey*Ie)6cs4`T-q4>%B5dJ&dcFzjsz>_f9h5ob9I_5)-b&>?*}@2lD&66 zFtkEFj+|en-@ol?9<6Q+MlKJ1G(rJBwN=zKVP%&gYB46+JrdbhCq`f_J41*ZN4_Z$J!4tK(kclBcT+oSRzW~uj{DIkBMXGL?_kmd=i_-h2L0dcm=nEq zF*lJ0?j=>ik0AaDR)!aNMrf8EX+h(-h!~7{>W;~*dBZ*4-^&9Bqu>GlU|v(IycF}2 z-a&A@@e4zfmhgdx@E+@7PxS63pG}P!8iDR%69P^Ypv?(ojX(!zv#~rCZ5qrleB5zC zinmYVrbFG?B$&C1xa~Fk;Il&|Wr-KNdDnVi8CnLez#?AxFdAU zXsz##E|JXOAo10KCTbYKRo9^DO>%g}4XdDK&t^n+g-4uAryNUco6_4pG8?^2XpicS~~A^o5m9Q5VUd%A#?yOCq8K9*Wlb&gQOW(|CzrCE8Zol-Dj@3AsASg1G!!sZMf$&_aMEJ$G zU>MO$)#%$@aJoJEiXHk@Y@|K5QS01xUT?GeM44bB!ZnFPcKQaJ&hDMM-&Wv-x)B7B0rAo;(O=6A#Xlx ztC2sP3HBAay9jjJ@8gl`=(_}uOr4uT^UrWK_7bB`h2z#Mb7sN63u`VU|EKnA%sS_` zc1>P?bD+lA{`U79>i>@;#3e8fS0}wCy_z2J$K=BGZ}X}-#751Q-f6BzjH051@a(Zct+ zoNkfK^m<|2rMPu=w`l+{KgX;;`*M`fJ|F>%lJOy@qA)Q&m0E(02dT5otpv_wuX!&S zF;z5YKK5_i*}^!JN8B)dgHZW&Phpp~H1BzT8Px2g{?go`0_77(-e`Z?;TIR&X56&R z+WOJ77bIhRK+`NoAK_S5`C$IZPBq4P{kFskZ~oal+1@#e4|X3gNXM)JppbA(#$1pr zAyyl=z0ePW|3XSJxLZm*=G-5|i~DYD>9P=7*YeUi(LYc~ii}M* zQYr&9Ug?P!PCSj@MRmAdtc^{)Ry|Wl%_AcI9+>4}Yc` z8y)T44QWHQT6HO7o&!M)Y%=Mgk=wmX-7_M@YW{i;I6RWV6Vjpa@yFlV(DpG!K5LLTzWhw3PYoewQ z0&W2-TWoi?R;)-MTVGOyD96(Y6eBQ|%YHqi<5eV3?&w%1)n|U_$_EeV>*yPxMUcBO z00FvnOr>n_nO!Jnvw~e^m`}*hKj^^WwB7Q}Q9<4=NZxlni zA~!uHN=jGHN89|*lxuO*#FTsNw_u{^EF>ZMn)c7uSLI)de(dCME`rb~~&x$La58sdg7Rz+wsxFYsc=@XIHL>}qxw2|Y-S(w%uV+V)#AmIh7@?w* z?|SiW+AOcfQ<`Kum{^&IM(>Avd8MX26EWYNzn3xQAy8ic3;S^9#sg%4(5uZH!3iyi zC`KD_`4Bj(r68RJ#-mrVD~%a?-KG7zqWFV{&$Qd1(|XE3+q~F#r031?@Xfnh(f2lN z1m8VY&8}G4L|UG8hGD?p5nP(KHq;&5Tg32zvx`H3oRUSV)A3hey!YsaVj24*&Nr4t ztX65V#43#d`TBydwPz?{SZHEbfuM0@*f*^f_kjMal^$E^N0&VGW44$nqor2;pTeoM zc|txS&)pd1*_owe1jTK7OB=geU7fXS%d5oyYdkV`R4(Jy^T`^U zdQ;1;1Y7MD<)M{JdEfVSlaxeznh)k36*`tGC2lltN~v&c^JpIs&ikbqH?mlp3q#sf zK5v^8pcErVT`Ron{n|RlW%!~f2s4mg1^C3RG8S_@V;@2>W+8V-Gp)yG{IHFrg{rqr z8j&DX4F;x54v+vnj^}V?2esaZOU#LqKH_|yDN&1 c!K!vr;@fsC6pf?Uli6j-Aw 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 VB7`9bfJz{Q1R^Lvf*h28|JjMyHhlm9 literal 0 HcmV?d00001 diff --git a/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-4.jpg b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f8e33d9f841981418be8b4af55562605a614bc8a GIT binary patch literal 227280 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

  • ;qZ;63{FaYLL9?(uzQnU1j~@S3 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"Gz>x0< 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

    %R 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 literal 0 HcmV?d00001 diff --git a/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-5.jpg b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..00fca2c2cdb22d549cfcf76da802c1127b87dfef GIT binary patch literal 228032 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≦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≧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 Y0o_)!WrnJ?VdFG}*Flz9`S0Za1FcjTUH||9 literal 0 HcmV?d00001 diff --git a/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg b/package/root/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b6aa4756fef0e7db47e0c6ed248795cc3aa5cec8 GIT binary patch literal 233281 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

    B)k)|Qe3ol}s?CM1WkX>Y`VZ<- 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 QIChF7 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

    aNQ<^`q{6e+e?- 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

    aX zhedskl#P64NXSI+p2(v@|EL|XeFwArg1C;C+r9me zX}!ywc=xk9!P`!PG0Pe|m2sA``}yul2n4U_Z0cQmH|gFXOI~)UnqJZ2mD4lcz9m*!=YS5z;r`n$sE?Ye7>S`%gvJZr*z}>1cJ$E9cN{$8UZt{U@U&ohs`~YG%Yg z@f#*a8eMRdyiu)B8G^4YAwmwmz%Xvck;P2lLfT9Z@3b52L^;22_6}x9j`h_**r`{fS2z+8?8QLEgep2qxQx&15 zH$gjHA2f)e#JL`d;mYxaFxPhqynZOSd~nFQ*BymFQEcXO6_s|X%jLB5^}D2!*IiWg zRfkLU<|Bpk5n|g+17<|L8&bd@AlVzQ5$9Mg) za9L+Lq1m15QR&t(k>X~s&hqAdSvi@#)3`RnR8MjEh&yBOXvIHOq+gx?wSFBMA$|ZnuDMqtDlDz9pU@k)n1}r+J9A(a!*FX z<7${W_j(zXh!_khV2{kUnSfRh`Xa%dTDQU40X^mRbA~X4Mm(Qw zIx+i_Sk0L8?j;>W4rQBmUXpt+_dz5iDS@-!z6IjknYyDFPoa&5O2!=kJ|E! z6MiSGqwKjlDgA}r`9IVkH;!}>Lj-IG6LJyblzZHbx9|FhAdT^)Py`IS|66RBUbTft zhnstEeqns9-YfIGaErrZm_4h7sCQiq5+16ug?{y2+s#dxwhsD`ZNcO($PQmsV>&1Q zAjF(KrLQy**Ji=cccj_^!jCctbavckrZifEFBIaIh0b4m(E?05|C=D>Mb_XjfyZ6% z%QXsD*8B7>{_VTIsK>T2%($w`oO1skAVZUo9{kH62?YVbjSUK^xW{aI-x;Km1w;|`M5j#{j$O-^5Hd>$;yotK3_u;0K z0gMB-)+7jAhP!bFj?xyk$Dl$J(d5y&Qy~43E&ocUQDm~l1cBN515&WqNa)tc*_zR<=Gfxlr`p-JTMQl=|qWidv4C3BnZZ z1U-C+pvxGVGp8r43=?m-(M%t><8yo$QKZ}w8LAH+T|~^v75QXW@4(utsD>Fh0B!|( z&3H~5d(CG;q!?lO%M_zEAh4A-qNPwt#U{0#;=-Xjp*STrq3uIHcqz4m#X<-5n^KP$CsG>oLTc{_H*|1c}M8`nH+ ziJod_7>-Ppp~BBTI8f*vjGO%|!~aq7Hrw|H&Cw5Q>RzQ@2;KEEHDur3<(zXP1dZ-x z1!cSLVQamirG}A28KV4dMGApJqvX&7R&Wpmyw2jqNOFp04C`g0XKy&I$QETscl(AI zmzNV2xgE9@jr>yg>0f7&1*PWV_*&LF%Q=2S1%EU~QqWv`wOMiJ-Nrip0a}i z?ovipcv=IRo?P<#{`I{a>L2cJUUo8T9x7|BaH{Jb;XvbfZ99`{mq%Cg=XuGLFsh>L z3f~moT{bqilvG5g;0sG@9DI0e*9O=hN z0SpYfJ(%}^)&l`}h$yAMBS-$<(NjEs$x~otGC^)=H~pbSK*ab(w(bVoUKN=_B`brx z9?A5)15$5X|M%4DYcMzk=nqcY2GvH150np5Q-l%ibiK zKq3~kW6S7L(>F3qm_QG)ouneq)R4u73=YXz^S0`Q#^^m4zwXz&sPr#Os3}XntCFs5 zMSE>dB<9yau$*mK>)bwC zzx%`$gz%wy-wmad0huju6-HJ)us*0~N77*s8kSv(fKq%*9g=$L2Hp=uQ~+Tx1no{l z9vB_R|Ay+B_j!xtu9#WYAF1SBFupxj0R{u44GI@%qy1rH0S|`#Clb*K1LuP|>q10fpr3Q&{5Kng zL7t!Rf|R$v4?~pamqFcBv3L5B>IcWp49f`6E?!H%qV0_dTp% zn2PwczroXIE^Y*trahiOHZt0eC;AWxM(HaE5rZ+39kK}k7$MY-)$LDLLzR?{e+}Cq zqlz|p{Py#Vr9fNk4dVvS0F@*69~^X%5+iyPzi*sYDa!JWRuMD6eRWwWF5B)MH53!J zi!(gl7q`Vo^oWI$bCy!H$kEU}F;QQnLVjK&-8mSC^Ei*&$)ON$u!;{F$u3l_d%sxW zr1<$6yzEUaFa8#r4|w@H1}&u9c-b{Su?odX^HlB{b6y%6a4qX1CJ=s7|D-3DWoV$##}umsnMPs4db>nuf6SkVTwO?SRk z_2{bR%XrysJZo)d!gk)0TXgy}6g z?(_Ml=Sa1SqzGKsAEfR#lWQPs^Kfn$76QPv`_5mb`}tT0E+QfAq#lDHcD2^ zr*#%(%jCeK}8fsW}QV%u*-W6x0>%tbqpbnC+^lG7SPqc_uz#HxW1pguHHuC zBehyh)Qq%s7WW4y!gwUkIVFtDe*0G|i+7DbhVD@3g^|U)CdZ)*Pn8zcs}FL197;@I z!HyAD(pG~P2o!=Cy>-PnA7kl0Ng@hodPL&AaR#IW+A#T2NQzrW$yZ}H^A_B!7r=%p zJ-k+uU-@NGF*>Vp%L6-~@X?^8`EDh<3-ig-J3eRpo`t&v%HxZ9s-)7KozQS*PqK)x zmbTDS4j#2(Eo4z5udelmnVZnBQ|sD$QS*c&qOYd#NuOwnnI5+V*O z#GUtsx96s;*hO|V^S3vYxOi|zewR~=6*&Dw&{2HPYx)I78ktYIJgbwm&T??IT>CO( zxrgzE5rc-BY@J2ZYFvxdi1(@9v*$JZR*Aod?`M2e@RX}$a9|n^&yg1LcCW0MV;ANM zD;^IxdYhvi33`f&>nstKD;WuSsB<wF;wsmBe#qs-ODXs z9#BRpx@TyWkN174_<&Mn>Hf{*USM-5)UfImPI3}CbBb@!#L(_JK5X(F|FIYup`5Xm z*DGc@DI>GXarNFNb2*kp)Jffeu%}KGj5fiqp{{5#HDb5mC-y;F)=wFTmj$DK%vWsD z*0l?YSOv`57}k89g<-TLw9dk%zlnb1hr}w;W%b9>o^_T^ELm}#MHr^$jMR0O^tE;} zS%dL`eu})ufv&sa+eg;Kzqx!CbClN9PL{jo<*4^sEn3(e3+VD~tF6QMFDUX6req|C7YU#+YQSre; z(bglZjjv})fks|EFismbr;$CU==f6VrTlJk;(eKu&5T)^=i59AQDVgF^sPN_Un}Ya z1cVVxO{Z2sCscUe3nj-eLxgag%-Sg0X>?kz+-_B358?JA ze4sq0*au8r3E!h$!WFJYyG+qnMYxanWaQ06qp6x{LLASpI_Jx){Cjq9_32gd(n*xx zLbkT>t+L%@$rX=;*+l*NWwK-uWj4{C_^GEPjkcAYzWNafj=Lz}oNIdp~GKCZJwkt^D2PV;8Y!wdu3 zfBb?KeCt;gNR#fSvq@-ER436b1?*?;Pn|cH z5aK_iNI5GMw0TkLQ+nFl{+%};hG!L$9_3p1CzK4I)cYMFcYS49D3$H0@`i zVVNq!PF)t(ZFk2W%Fa1b*I7#JYhnk-7HsQMknQ!$_m#7hw=-1TfD8GX+_OCXdCGD< zq3-_OYp-PvJ<%Tg*Nd>DJ38u`3bqb6LI_zC>7mEZSAVW+nwmW)hd*RvVHoq46!UW6 z#)0oGwy)~rtNsVah<$Q{fD6;?dM2X?*w_gBHarQOJ4pPTtvoVS1^?-ND-=R@j!5z@ z!leY@hj(wbPzm6gj+Q&AcxG`qS8{|OrJ0=UM9N#mZZ0KcoGpj(_sd%af;A)IQPO%I z?mL3s<;zL_bLX}R6x;ta!IJh3Zb#}HdGEcm89}~d!RLb254ARMC|3#gw$0shdmMV$ z?{tV#`}3+}G>~4dvt+hs3)5AtMWHP?@%A-h=+oY>o>6ec<_J6=fZ8&LjoGkXMFf*b z;Bh+??A*-4y%eG%|JHLG^GZb2zB-`WjU1zCZXZz`U_A6+~cNw0uXsS@p9kTtvLh`9Y zx!wC39>^i^Wb?jTFcz#TC1#a$W4_0%Wv7E46x=wEHi!x!uM+tWQ|X8s3US-O0v@za zyQZ1zTZi=VSh0-qOL)wWt%9y>6h&tcX>olFx zF+8OK#l35K!3`rANt;akUGiRZ*%(Q`%lW6hKpxT&*(X7kp48gNWYnoAMF{;K9I_r# zei_W8t)QIcqFRJM=lS}|`}BbZwH^NmJ{I=oZ7%dt?nV)#MZ~H{udKQ>)Kt~*hlQ^=1S!$jcB5;CmX#(FD=sAV1}(jCl8 z`VH}t$Q|H&Zulw4Y(XNBD*Gb5AT7{NDI%JLM)Asv8r?kN${z=*6X92>moji%8$tC{Fz?IhZbvlrg(dN2ww7KX9dvI{#}Xx-P$9uY^xI} z_Di59nSk!g72c8o#26cga(ja(WoX}b*O0oE=+v}3pySz zf0cDWb0BH#m&x~$|K(Z7J~Am!sJ1@PrRVHyYLr*XcUuqnlTkKj<-`Rk0TDY6TVe)l zQEYE;q~RsBN8hKskTA|z%H6BywURsH%6{SAR%d)m|#%6X(GrY#Jx2UnfZvXvP zNBXcrCA-wEF!vR5bZ`0HAuY=qdk6>q8k>#~3v`$J&tG2e*5gByg_09qMg$7+{~r1( zxEtjVx&QR*^K(Z;qFwFjIAV!I5!HT6Y5iiaS*%anmXY7h0jiRl7ZmpXQ;4~B8W0M< z4evtnUC!CK1IV!NbCF6NW~4_ycD@$_h+R!2Pz(@O&+&qzvhUv_!Y&8hgK#tS8+*j< z$`Jwl0q6)gpCBwC=}bfi)$`N>`C-^AgT^C|1)+GcrP@Ki|O9!rnRig5)V!Jh#~II_lso#T+2#-`WDups|~c z$lmc@lrwhk|HMeY4zWy^7+5z+% zX_j~77hqH^kjmZ^%Rhg3o#m;o> z;Mbaub7C2Uu!+?&-{yHEzX>RWLL}&@6<0vHgs-y<8jmx18Zupjyz7l;=hEs}^CdbUNX z?^>;2a{fAt5Mc#{t@5U5uSxKfoJ@)*kjT9d-~eZY?8+8~?m7#OaJyPYzJlCXTBGj0 zScN|`T{`JR%gg2uQ;5I_n$P$V8S!-0$`zZny1P&h`iAu8vaJ}d;XIbw3w?1(5`Zh;4LW7ar$SwYvsZ8>u>x}T9m>0SKw-rKkRLBuUBhM{-d zSlH~oUV{>BbKopyfqz`0bJtYEE??sEI4!<>aQWku-zxRw6PMq8*E&4=$+9^q-cf&c zEW7vmoZ5ft-=h2JmexrlQ*-?3ME*3VZcMcK;u};!v3vig&~xv|#6+8Urzy;t9L5q| zsKLv;s1EHWiOF?xN2Y`^DSQ#FlIwUR(I_VA*gr-^sc`hJqa zv5r)~CUQ~5P?zgBeo_C!?%lKbXRJNrsHK@vs{LR1I3~U0yyNs?@N0_8iVYm_9jx`D zomh#E#x?n2%L@s^=#*6tW8a(`*(gu!>^ch#Uefv+FJrjyRSc}NP%Er_^{UqJ56zO7 zb4N{fN%`JRCjXK=GA70KJ_i%-QxEyAdzV@Ah)$k50mZ81dy3P_qUT2Z#>wHo^ zWniqQKf20L{n>?)D?)SWICYcX($3R1V8gLeoTXgxVpCm2;W4UWz2Nsa=jtD{(7`GSUu)IZZa*uJ1ll=osz#T~@xZP8Cv^ma zNABo8N*x&?g&2DWKCDT)Q5|&nK$VwbtNc0(wwpwr_0~tD92Y$nEA6OeMN`+isU;+D zy%c-2nb0^Xjlr+jFtT!j=pGV0Uh$jUVrgZqK5uz=lJIkT1^yb_L2HfT4=d;R+YYU~ z+)a6PJDC!O`!sffPdjSv-?UJg;&68Ls7L*pDb5|5-)pIsF;j8oU5dTP6*L)T)SCT=KL~#&#c|JFhg)hmAeQ`1B9&kvW91am3tSZ7uYGhRUv2KUC%+XXBIC z=c~@S;KUfN^_dC5rIV4~sM4|ao>-&Xi&$ZL^a?Fzmgwj4fGjawB>RR!fbcu{e3Die znnbS`FYR1H-zXgF9>;vdszI~5kGhuleI=vE7;C+xD#LeZK`?|?jd#OWV$P+ zj4Mdtad}IJov7i$j;58Y0zx}aC`s0R;ZE(K_R$koHBFsbx5oM;3O%Rm&STp!DsxUh z7#aEQ&9UmHySd#7&nMBEpsw*H!p0!NhDOLxRQG%DYr(j)&hopK2p!cb8nr6xv~pps zmL}J6zniF6MI_msOd5T}s3Sp73NQgfH1F z@Kg9Z2%57J3v$_AWV%d8B(cIAW7A-0iQZp6MaJAOJ5YK6eZYzJCn=)am%MPev`C?5 zO1!6UwWdri`hpC}zXh_QUFziL&z{ZPfKXfC<< zSK*!fugi)jfD@uKr{^Vc4Cl8L-&-o0_nlfg`t?MZ>{pBFYm*WTXZ{fd_a8)e4ebx* z5s4C_nz3x{24yXZ{^@67cNSPa<+JMWU+eK=x; zEMbg~j5o!JJSyai=pn3qV+@wM7wNz0o9oDOmnkDh_Rj4%U7;D*iIyW+6HR+F`9sgT z9SMegQ13U`uGZ*uknicytXZM z;i-FdlvXpKQm~}*oCK0Vc;msKZiBr;76R2jeg)SQ+ntjaH8tXXV-(42A zh?(^Bs54ygH|8_`f%f4^w87Za8<*@>jGn`ZdSt|-wA%Nbd-8Y%KQAy*)8gA|OH@dA ze?#1~bh2-i;NawGoLbvUPa+XD9*CYp`zG~~(n_2Xl1S&z&t3fR>#p^X=-D&s@>!^B zP99EPTEwW#2&1&1`9#G9Obg)-eW!aPp=~jd+<+^skL&;qrxR~^BhH;PZaq~}`L$B< z#uR0pWvzxbpvYKd{0kE%f-kz?eh|kVEZ6BiMS5&AMbPp_YfaG-)>)iMiwZ-D%v@@A0`PNvGD8EO4mj44IX(b_!SfTBNx2Z?1H4;f3-BwWz z;*+#eqV;G%RI}UCJ&Th5N6ScA+sRskz_20(lz`?@a=T~GNpr`>vH0FO_*{OCNmk%8 z)caPA+bzL!pKB|fYx;xFS+RWT68fUCQ}EYEqb>R(=JTV5?{7nNoKx!pIH*Cr0CT2+ zkDA}>qxT#a&2pcuKfq=joVoj0c-yq+(5*XfrmY0I;|wLIN{A0i$uGGBh|}HXzPD|9 z4vMUS&m}Xlv!YXEXPLoF@f?@-`E9v#aoY>VV_IjY!mvAy z5T*mBgdIt&gS}qz<)p~+`H-#Ptpdqb6~q$&1eya9j9rdoaC6@nQ3$PhmHecs*Cye4 zsywH_bGA$O>)-Bvp4y?p;C)8mXq>-U?ijF1T|T^Why3fhiSQckC=Yj;J1U0-bAe#F z-5!;xch>gRjN``^i~1w0nUEdbH8q2pP{H!BX`Nm+QolHDUdc65#T~@UTVJ1^n^p|< z^PUsU!DG52e^y~^ulXJ@FR*~xV6C(xyDC`8?eJxKdTL=)hd8x`xIu9jr-X>Y*PwX? z4>+jN1WeeN8<&_A=w*?xp<_(a#}4c0V}x@(NzG;#yp1aTv4i3Vd>ip%h1S9Jgr>(T z8B#c5-PnttFtS$WOIgq6S97{s()G$!-Xpelm=8S!nO6=HGs?LEclp~lBjPXMrTka) zo*H^`pZkdNZm+ne@0=7#`9xBReM0 zX+ZrccBR9|Ota~-%3{NX+x+zc@}1{SX#YuW-2cGG;BKxo+qXM0YTmvRRrB+PH8~c-+|*pFqjL{-j#m$LIMam zhvD12rIfhn;b_n?hg)Y6%=O7PH@q4(tXYPq7}w=&{kYO`v9_~(jfk4tIpAr!TCX@G z>h}7j5lLPo^8I$m=tUOeq1iMTHF%x9Qn0Xdmi~P>i$-WERZkrfj|hs0K|oe zkd%Q!6OjPPjWCgb_n~GU7Q)&vN?Aho#dncWN{D9Chw^XaB}dK*bN-7?kt5EdvsS

    5G;w>n7qr|TRr5DV$1dbMe=ZdrFQE>CD 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

    4_JBF#NaW@2E@A}82c=zeUBgTMb(se<7m6_vmK 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 literal 0 HcmV?d00001 diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 53ac8ee3..d301bd50 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -177,7 +177,7 @@ deb http://security.debian.org/ ${release}/updates main contrib non-free EOF } -add_ubuntu_apt_sources() { +add_pine64_apt_sources() { local release="$1" cat > "$DEST/etc/apt/sources.list" < Date: Fri, 5 May 2017 16:22:20 +0800 Subject: [PATCH 067/168] Preinstall apps and add pinebook background image files --- simpleimage/make_rootfs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index d301bd50..83f810ed 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -274,7 +274,7 @@ EOF mate) do_chroot /usr/local/sbin/install_mate_desktop.sh do_chroot systemctl set-default graphical.target - do_chroot /usr/loca/sbin/pinebook_preinstall_apps.sh + do_chroot /usr/local/sbin/pinebook_preinstall_apps.sh ;; i3) From 691c37c79d8c35dbc88a5df86017c746fc213010 Mon Sep 17 00:00:00 2001 From: whongx Date: Fri, 5 May 2017 18:12:08 +0800 Subject: [PATCH 068/168] Preinstall apps and add pinebook background image files --- .../local/sbin/pinebook_change_background.sh | 8 -------- .../local/sbin/pinebook_preinstall_apps.sh | 19 ++----------------- 2 files changed, 2 insertions(+), 25 deletions(-) delete mode 100755 package/root/usr/local/sbin/pinebook_change_background.sh diff --git a/package/root/usr/local/sbin/pinebook_change_background.sh b/package/root/usr/local/sbin/pinebook_change_background.sh deleted file mode 100755 index 4fdc62f0..00000000 --- a/package/root/usr/local/sbin/pinebook_change_background.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -set -xe - -#Add pinebook wallpaper -echo "\nChange Pinebook wallpaper..." -gsettings set org.mate.background picture-filename /usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg -echo "\nChanged!!!\n" diff --git a/package/root/usr/local/sbin/pinebook_preinstall_apps.sh b/package/root/usr/local/sbin/pinebook_preinstall_apps.sh index 743e6996..e17848d5 100755 --- a/package/root/usr/local/sbin/pinebook_preinstall_apps.sh +++ b/package/root/usr/local/sbin/pinebook_preinstall_apps.sh @@ -3,25 +3,10 @@ set -xe #Install relevant libraries and applications -echo "\nInstalling programs...\n" add-apt-repository -y ppa:rvm/smplayer +add-apt-repository -y ppa:longsleep/ubuntu-pine64-flavour-makers apt-get -y update -apt-get -y install aisleriot build-essential emacs gcc geany gimp git gnomine gnome-sudoku htop libpixman-1-dev libvdpau-dev mplayer scratch smplayer smplayer-skins smplayer-themes smtube vim -echo "\nInstalled!!!\n" +apt-get -y install aisleriot build-essential emacs gcc geany gimp git gnomine gnome-sudoku htop libpixman-1-dev libvdpau-dev libvdpau-sunxi1 mplayer scratch smplayer smplayer-skins smplayer-themes smtube vim - -#Solve video issue of cannot stream video smoothly -echo "\nFix Pinebook video...\n" -git clone https://github.com/linux-sunxi/libcedrus.git -make -C libcedrus install -git clone https://github.com/linux-sunxi/libvdpau-sunxi.git -make -C libvdpau-sunxi install -ln -s /usr/lib/aarch64-linux-gnu/vdpau/libvdpau_sunxi.so.1 /usr/lib/libvdpau_nvidia.so -rm -rf libcedrus libvdpau-sunxi -echo "\nPinebook video is fixed!!!\n" - - -#Remove scripts that may cause the system crash -#rm -rf /usr/local/sbin/pine64* apt-get -y upgrade apt-get -y update From f684eb3c70580d1a153b721008cb2adb152dc65d Mon Sep 17 00:00:00 2001 From: whongx Date: Fri, 5 May 2017 18:51:04 +0800 Subject: [PATCH 069/168] Auto resize rootfs partition after boot up --- package/root/etc/original_rc.local | 14 ++++++++++++++ package/root/etc/rc.local | 16 ++++++++++++++++ .../usr/local/sbin/pinebook_autoresize_rootfs.sh | 15 +++++++++++++++ 3 files changed, 45 insertions(+) create mode 100755 package/root/etc/original_rc.local create mode 100755 package/root/etc/rc.local create mode 100755 package/root/usr/local/sbin/pinebook_autoresize_rootfs.sh diff --git a/package/root/etc/original_rc.local b/package/root/etc/original_rc.local new file mode 100755 index 00000000..65634dfa --- /dev/null +++ b/package/root/etc/original_rc.local @@ -0,0 +1,14 @@ +#!/bin/sh -e +# +# rc.local +# +# This script is executed at the end of each multiuser runlevel. +# Make sure that the script will "exit 0" on success or any other +# value on error. +# +# In order to enable or disable this script just change the execution +# bits. +# +# By default this script does nothing. + +exit 0 diff --git a/package/root/etc/rc.local b/package/root/etc/rc.local new file mode 100755 index 00000000..2596298e --- /dev/null +++ b/package/root/etc/rc.local @@ -0,0 +1,16 @@ +#!/bin/sh -e +# +# rc.local +# +# This script is executed at the end of each multiuser runlevel. +# Make sure that the script will "exit 0" on success or any other +# value on error. +# +# In order to enable or disable this script just change the execution +# bits. +# +# By default this script does nothing. + +/usr/local/sbin/pinebook_autoresize_rootfs.sh + +exit 0 diff --git a/package/root/usr/local/sbin/pinebook_autoresize_rootfs.sh b/package/root/usr/local/sbin/pinebook_autoresize_rootfs.sh new file mode 100755 index 00000000..57da4fbf --- /dev/null +++ b/package/root/usr/local/sbin/pinebook_autoresize_rootfs.sh @@ -0,0 +1,15 @@ +#!/bin/sh -e +# +# rc.local +# +#This script is executed to resize the rootfs and it is execured only once after boot up +# + +if [ -e /etc/original_rc.local ]; then + /usr/local/sbin/resize_rootfs.sh + mv /etc/original_rc.local /etc/rc.local +fi + +rm -f "$0" + +exit 0 From 246ffd5f29d143bfd45183b5cbee97e677b8463d Mon Sep 17 00:00:00 2001 From: Thomas Kaiser Date: Sat, 6 May 2017 14:09:10 +0200 Subject: [PATCH 070/168] Adopt install_rpi_monitor.sh for new battery drain readout --- .../usr/local/sbin/install_rpi_monitor.sh | 230 ++++++++---------- 1 file changed, 108 insertions(+), 122 deletions(-) diff --git a/package/root/usr/local/sbin/install_rpi_monitor.sh b/package/root/usr/local/sbin/install_rpi_monitor.sh index 1e0ca8a7..641b617b 100755 --- a/package/root/usr/local/sbin/install_rpi_monitor.sh +++ b/package/root/usr/local/sbin/install_rpi_monitor.sh @@ -1,9 +1,6 @@ #!/bin/bash -# Install rpimonitor on a pine64 running ubuntu (may work for debian also) -# -# Run latest version directly from github when logged in as root / sudo with -# wget -q -O - https://raw.githubusercontent.com/pfeerick/pine64-scripts/master/install-rpimonitor.sh | /bin/bash +# Install rpimonitor on a pine64 running ubuntu or debian # # Original code lifted from http://kaiser-edv.de/tmp/4U4tkD/install-rpi-monitor-for-a64.sh # Original code written by tkaiser, as well as assuggestions for a deriverative work @@ -106,124 +103,113 @@ LS1FTkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLQo=" | base64 --decode > keyfile PatchRPiMonitor_for_sun50iw1p1() { echo -e "\nNow patching RPi-Monitor to deal correctly with A64" - cd /etc/rpimonitor/ && echo "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" | base64 --decode | tar xzf - - - which systemctl >/dev/null 2>&1 - case $? in - 0) - # Jessie|Xenial - systemctl restart rpimonitor >/dev/null 2>&1 - ;; - *) - # Wheezy|Trusty - /etc/init.d/rpimonitor stop >/dev/null 2>&1 - /etc/init.d/rpimonitor start >/dev/null 2>&1 - ;; - esac + cd /etc/rpimonitor/ && echo "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 +vbbX9tpe22t7ba/t1XT9L9Ege4cAeAAA" | base64 --decode | tar xzf - + + systemctl restart rpimonitor >/dev/null 2>&1 } # PatchRPiMonitor_for_sun50iw1p1 cleanupPackageLists() From 909e7364673ad9a66717a45135bd7a200016d615 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 6 May 2017 20:16:14 +0200 Subject: [PATCH 071/168] Disable stretch as it doesn't compile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c9ccafb4..2912be74 100644 --- a/Makefile +++ b/Makefile @@ -147,4 +147,4 @@ stretch-i3-pinebook: stretch-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).im xenial-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook .PHONY: linux-pinebook -linux-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook stretch-i3-pinebook +linux-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook From 04077991d9d0631aa28c1a4af2c47c104faa1a50 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 6 May 2017 20:33:20 +0200 Subject: [PATCH 072/168] Fix script failure --- simpleimage/make_simpleimage.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpleimage/make_simpleimage.sh b/simpleimage/make_simpleimage.sh index 2545fffd..b2f86eea 100755 --- a/simpleimage/make_simpleimage.sh +++ b/simpleimage/make_simpleimage.sh @@ -36,7 +36,7 @@ if [ "$disk_size" -lt 60 ]; then exit 2 fi -if [ -z "$model" = "" ]; then +if [ -z "$model" ]; then model="pine64" fi From ae42ff6b3239dc386a6f85eb595faeaa98f71f23 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 6 May 2017 21:02:30 +0200 Subject: [PATCH 073/168] Store download tarball in temp directory to allow concurrent access --- simpleimage/make_rootfs.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index f41ccefe..82e112a8 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -161,7 +161,7 @@ EOF } mkdir -p $BUILD -TARBALL="$BUILD/$(basename $ROOTFS)" +TARBALL="$TEMP/$(basename $ROOTFS)" mkdir -p "$BUILD" if [ ! -e "$TARBALL" ]; then if [ "$METHOD" = "download" ]; then @@ -182,6 +182,7 @@ echo -n "Extracting ... " set -x $UNTAR "$TARBALL" -C "$DEST" echo "OK" +rm -f "$TARBALL" # Add qemu emulation. cp /usr/bin/qemu-aarch64-static "$DEST/usr/bin" From 9f00a9e52bff302b83cdbf39720e48dea460f780 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 8 May 2017 22:28:55 +0200 Subject: [PATCH 074/168] (WARNING) Removed unused bits from longsleep/build-pine64-image --- README.md | 2 +- blobs/README.md | 38 - blobs/boot0.bin | Bin 32768 -> 0 bytes blobs/boot0pinebook.bin | Bin 32768 -> 0 bytes blobs/boot0so.bin | Bin 32768 -> 0 bytes blobs/pine64.dts | 3441 ---------------------- blobs/pine64noplus.dts | 3441 ---------------------- blobs/pine64pinebook.dts | 3441 ---------------------- blobs/pine64so.dts | 3436 --------------------- blobs/scp.bin | Bin 104660 -> 0 bytes blobs/sys_config.fex | 2 - bootlogo/Makefile | 15 - bootlogo/battery/Makefile | 23 - bootlogo/battery/README.md | 4 - bootlogo/battery/battery-empty.svg | 1 - bootlogo/battery/battery-full.svg | 1 - bootlogo/battery/battery-half.svg | 1 - bootlogo/battery/battery-low.svg | 1 - bootlogo/battery/battery_charge.bmp | Bin 4196490 -> 0 bytes bootlogo/battery/bempty.bmp | Bin 4196490 -> 0 bytes bootlogo/battery/charge.svg | 1 - bootlogo/battery/icon-battery-empty.bmp | Bin 37630 -> 0 bytes bootlogo/battery/icon-battery-low.bmp | Bin 21974 -> 0 bytes bootlogo/battery/icon-charge.bmp | Bin 29674 -> 0 bytes bootlogo/battery/low_pwr.bmp | Bin 4196490 -> 0 bytes bootlogo/bootlogo-pine64-1366x768.bmp | Bin 4196490 -> 0 bytes bootlogo/bootlogo-pine64-1366x768.png | Bin 3839 -> 0 bytes bootlogo/pine64-logo-120x175.png | Bin 3765 -> 0 bytes convert-pine64-image.sh | 48 - kernel/README.md | 5 - kernel/install_kernel.sh | 31 - simpleimage/flash_boot0_only.sh | 29 - simpleimage/flash_u-boot_only.sh | 28 - simpleimage/make_rootfs.sh | 5 - simpleimage/make_simpleimage.sh | 6 +- snappy/README.md | 6 - snappy/common.mk | 5 - snappy/gadget.mk | 34 - snappy/gadget/meta/gadget.yaml | 24 - snappy/gadget/meta/hooks/prepare-device | 10 - snappy/gadget/meta/icon.png | 0 snappy/gadget/meta/readme.md | 1 - snappy/gadget/meta/snap.yaml | 8 - snappy/gadget/uboot.env.in | 30 - snappy/kernel.mk | 11 - snappy/kernel/snapcraft.yaml | 25 - snappy/pine64-model.json | 11 - snappy/pine64.model | 21 - u-boot-postprocess/README.md | 85 - u-boot-postprocess/u-boot-postprocess.sh | 66 - 50 files changed, 5 insertions(+), 14332 deletions(-) delete mode 100644 blobs/README.md delete mode 100644 blobs/boot0.bin delete mode 100644 blobs/boot0pinebook.bin delete mode 100644 blobs/boot0so.bin delete mode 100644 blobs/pine64.dts delete mode 100644 blobs/pine64noplus.dts delete mode 100644 blobs/pine64pinebook.dts delete mode 100644 blobs/pine64so.dts delete mode 100644 blobs/scp.bin delete mode 100644 blobs/sys_config.fex delete mode 100644 bootlogo/Makefile delete mode 100644 bootlogo/battery/Makefile delete mode 100644 bootlogo/battery/README.md delete mode 100644 bootlogo/battery/battery-empty.svg delete mode 100644 bootlogo/battery/battery-full.svg delete mode 100644 bootlogo/battery/battery-half.svg delete mode 100644 bootlogo/battery/battery-low.svg delete mode 100644 bootlogo/battery/battery_charge.bmp delete mode 100644 bootlogo/battery/bempty.bmp delete mode 100644 bootlogo/battery/charge.svg delete mode 100644 bootlogo/battery/icon-battery-empty.bmp delete mode 100644 bootlogo/battery/icon-battery-low.bmp delete mode 100644 bootlogo/battery/icon-charge.bmp delete mode 100644 bootlogo/battery/low_pwr.bmp delete mode 100644 bootlogo/bootlogo-pine64-1366x768.bmp delete mode 100644 bootlogo/bootlogo-pine64-1366x768.png delete mode 100644 bootlogo/pine64-logo-120x175.png delete mode 100755 convert-pine64-image.sh delete mode 100755 simpleimage/flash_boot0_only.sh delete mode 100755 simpleimage/flash_u-boot_only.sh delete mode 100644 snappy/README.md delete mode 100644 snappy/common.mk delete mode 100644 snappy/gadget.mk delete mode 100644 snappy/gadget/meta/gadget.yaml delete mode 100755 snappy/gadget/meta/hooks/prepare-device delete mode 100644 snappy/gadget/meta/icon.png delete mode 100644 snappy/gadget/meta/readme.md delete mode 100644 snappy/gadget/meta/snap.yaml delete mode 100644 snappy/gadget/uboot.env.in delete mode 100644 snappy/kernel.mk delete mode 100644 snappy/kernel/snapcraft.yaml delete mode 100644 snappy/pine64-model.json delete mode 100644 snappy/pine64.model delete mode 100644 u-boot-postprocess/README.md delete mode 100755 u-boot-postprocess/u-boot-postprocess.sh diff --git a/README.md b/README.md index 0076ac4a..5f9a0a39 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Various scripts i created while looking into Pine64 U-Boot and booting. +Various scripts i created (ayufan) based on @longsleep changes to help with automated Linux building. ## License diff --git a/blobs/README.md b/blobs/README.md deleted file mode 100644 index 6ccede0a..00000000 --- a/blobs/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Binary blobs extracted from A64 BSP - -Not everything to boot an A64 has been released as source. While that is -this is questionable in itself, for now one has to stick with the blobs -as found in the BSP. This folder holds the collection as extracted -from the BSP found on the Pine64 wiki. - -BSP download: http://wiki.pine64.org/index.php/Pine_A64_Software_Release - -## Boot0 boot loader - -The boot0 loader is the first thing executed. It is extracted from the -Android image. At this time, Allwinner has not released the source code for -boot0 for A64. - -Android image download: http://wiki.pine64.org/index.php/Pine_A64_Software_Release#Android_Image_Release_20160112 - -### Extract yourself like this - -```bash -dd if="$IMAGE" bs=1k skip=8 count=32 of=boot0.bin -``` - -## SCP firmware for the on-SoC management controller - -Binary blob scp.bin taken from the BSP `tools/pack/chips/sun50iw1p1/bin/scp.bin`. - -## Device tree for U-Boot and BSP Kernel - -The U-Boot uses its own FDT. A binary dtb has been extraced from the BSP `out/sun50iw1p1/android/common/sunxi.dtb` and dumped as source to `pine64.dts` with the `fdtdump` -utility from git://git.kernel.org/pub/scm/utils/dtc/dtc.git. This device tree -also works for booting the BSP Kernel. Some values in the device tree have -been changed to match the values which are found in the Android image. - -## FEX description for U-Boot - -The FEX file is minimal and does not contain any settings. It is just required -to get the corret boot loader format to make the U-Boot acceptable to boot0. diff --git a/blobs/boot0.bin b/blobs/boot0.bin deleted file mode 100644 index 3ad8341f86190f61c71a729f40ac47dc1dfb4b50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 diff --git a/blobs/boot0so.bin b/blobs/boot0so.bin deleted file mode 100644 index 78a1ebff85d8ef2094a2987866ac9b58204b5ba4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 fkj@`2n+NuPq~; - #address-cells = <0x2>; - #size-cells = <0x2>; - - clocks { - compatible = "allwinner,sunxi-clk-init"; - device_type = "clocks"; - #address-cells = <0x2>; - #size-cells = <0x2>; - ranges; - reg = <0x0 0x1c20000 0x0 0x320 0x0 0x1f01400 0x0 0xb0 0x0 0x1f00060 0x0 0x4>; - - losc { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-clock"; - clock-frequency = <0x8000>; - clock-output-names = "losc"; - linux,phandle = <0xc>; - phandle = <0xc>; - }; - - iosc { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-clock"; - clock-frequency = <0xf42400>; - clock-output-names = "iosc"; - linux,phandle = <0xd>; - phandle = <0xd>; - }; - - hosc { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-clock"; - clock-frequency = <0x16e3600>; - clock-output-names = "hosc"; - linux,phandle = <0x6>; - phandle = <0x6>; - }; - - pll_cpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_cpu"; - }; - - pll_audio { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x1770000>; - clock-output-names = "pll_audio"; - linux,phandle = <0x2>; - phandle = <0x2>; - }; - - pll_video0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "pll_video0"; - linux,phandle = <0x3>; - phandle = <0x3>; - }; - - pll_ve { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_ve"; - linux,phandle = <0x16>; - phandle = <0x16>; - }; - - pll_ddr0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_ddr0"; - linux,phandle = <0x93>; - phandle = <0x93>; - }; - - pll_periph0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_periph0"; - linux,phandle = <0x4>; - phandle = <0x4>; - }; - - pll_periph1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_periph1"; - linux,phandle = <0x5>; - phandle = <0x5>; - }; - - pll_video1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "pll_video1"; - }; - - pll_gpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_gpu"; - linux,phandle = <0x96>; - phandle = <0x96>; - }; - - pll_mipi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_mipi"; - linux,phandle = <0x8>; - phandle = <0x8>; - }; - - pll_hsic { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_hsic"; - linux,phandle = <0x3a>; - phandle = <0x3a>; - }; - - pll_de { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "pll_de"; - linux,phandle = <0x7>; - phandle = <0x7>; - }; - - pll_ddr1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_ddr1"; - linux,phandle = <0x94>; - phandle = <0x94>; - }; - - pll_audiox8 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x2>; - clock-mult = <0x8>; - clock-div = <0x1>; - clock-output-names = "pll_audiox8"; - }; - - pll_audiox4 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x2>; - clock-mult = <0x8>; - clock-div = <0x2>; - clock-output-names = "pll_audiox4"; - linux,phandle = <0x3c>; - phandle = <0x3c>; - }; - - pll_audiox2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x2>; - clock-mult = <0x8>; - clock-div = <0x4>; - clock-output-names = "pll_audiox2"; - }; - - pll_video0x2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x3>; - clock-mult = <0x2>; - clock-div = <0x1>; - clock-output-names = "pll_video0x2"; - }; - - pll_periph0x2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x4>; - clock-mult = <0x2>; - clock-div = <0x1>; - clock-output-names = "pll_periph0x2"; - linux,phandle = <0x7b>; - phandle = <0x7b>; - }; - - pll_periph1x2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x5>; - clock-mult = <0x2>; - clock-div = <0x1>; - clock-output-names = "pll_periph1x2"; - linux,phandle = <0x5a>; - phandle = <0x5a>; - }; - - pll_periph0d2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x4>; - clock-mult = <0x1>; - clock-div = <0x2>; - clock-output-names = "pll_periph0d2"; - }; - - hoscd2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x6>; - clock-mult = <0x1>; - clock-div = <0x2>; - clock-output-names = "hoscd2"; - }; - - cpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "cpu"; - }; - - cpuapb { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "cpuapb"; - }; - - axi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "axi"; - }; - - pll_periphahb0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "pll_periphahb0"; - }; - - ahb1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ahb1"; - linux,phandle = <0x95>; - phandle = <0x95>; - }; - - apb1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "apb1"; - }; - - apb2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "apb2"; - linux,phandle = <0x7e>; - phandle = <0x7e>; - }; - - ahb2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ahb2"; - }; - - ths { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ths"; - linux,phandle = <0x84>; - phandle = <0x84>; - }; - - nand { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "nand"; - linux,phandle = <0x80>; - phandle = <0x80>; - }; - - sdmmc0_mod { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc0_mod"; - linux,phandle = <0x60>; - phandle = <0x60>; - }; - - sdmmc0_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc0_bus"; - linux,phandle = <0x61>; - phandle = <0x61>; - }; - - sdmmc0_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc0_rst"; - linux,phandle = <0x62>; - phandle = <0x62>; - }; - - sdmmc1_mod { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc1_mod"; - linux,phandle = <0x65>; - phandle = <0x65>; - }; - - sdmmc1_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc1_bus"; - linux,phandle = <0x66>; - phandle = <0x66>; - }; - - sdmmc1_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc1_rst"; - linux,phandle = <0x67>; - phandle = <0x67>; - }; - - sdmmc2_mod { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc2_mod"; - linux,phandle = <0x5b>; - phandle = <0x5b>; - }; - - sdmmc2_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc2_bus"; - linux,phandle = <0x5c>; - phandle = <0x5c>; - }; - - sdmmc2_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc2_rst"; - linux,phandle = <0x5d>; - phandle = <0x5d>; - }; - - ts { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ts"; - }; - - ce { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ce"; - linux,phandle = <0x7a>; - phandle = <0x7a>; - }; - - spi0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "spi0"; - linux,phandle = <0x52>; - phandle = <0x52>; - }; - - spi1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "spi1"; - linux,phandle = <0x56>; - phandle = <0x56>; - }; - - i2s0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "i2s0"; - linux,phandle = <0x42>; - phandle = <0x42>; - }; - - i2s1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "i2s1"; - linux,phandle = <0x47>; - phandle = <0x47>; - }; - - i2s2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "i2s2"; - linux,phandle = <0x48>; - phandle = <0x48>; - }; - - spdif { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "spdif"; - linux,phandle = <0x49>; - phandle = <0x49>; - }; - - usbphy0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbphy0"; - linux,phandle = <0x32>; - phandle = <0x32>; - }; - - usbphy1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbphy1"; - linux,phandle = <0x36>; - phandle = <0x36>; - }; - - usbhsic { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbhsic"; - linux,phandle = <0x38>; - phandle = <0x38>; - }; - - usbhsic12m { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbhsic12m"; - linux,phandle = <0x39>; - phandle = <0x39>; - }; - - usbohci1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbohci1"; - linux,phandle = <0x3b>; - phandle = <0x3b>; - }; - - usbohci0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbohci0"; - linux,phandle = <0x35>; - phandle = <0x35>; - }; - - de { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x7>; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "de"; - linux,phandle = <0x6a>; - phandle = <0x6a>; - }; - - tcon0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x8>; - clock-output-names = "tcon0"; - linux,phandle = <0x6b>; - phandle = <0x6b>; - }; - - tcon1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x3>; - clock-output-names = "tcon1"; - linux,phandle = <0x6e>; - phandle = <0x6e>; - }; - - deinterlace { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "deinterlace"; - linux,phandle = <0x7c>; - phandle = <0x7c>; - }; - - csi_s { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "csi_s"; - linux,phandle = <0x73>; - phandle = <0x73>; - }; - - csi_m { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "csi_m"; - linux,phandle = <0x74>; - phandle = <0x74>; - }; - - csi_misc { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "csi_misc"; - linux,phandle = <0x75>; - phandle = <0x75>; - }; - - ve { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ve"; - linux,phandle = <0x17>; - phandle = <0x17>; - }; - - adda { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "adda"; - linux,phandle = <0x41>; - phandle = <0x41>; - }; - - addax4 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "addax4"; - }; - - avs { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "avs"; - }; - - hdmi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x3>; - clock-output-names = "hdmi"; - linux,phandle = <0x6f>; - phandle = <0x6f>; - }; - - hdmi_slow { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "hdmi_slow"; - linux,phandle = <0x70>; - phandle = <0x70>; - }; - - mbus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "mbus"; - }; - - mipidsi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "mipidsi"; - linux,phandle = <0x6d>; - phandle = <0x6d>; - }; - - gpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "gpu"; - linux,phandle = <0x97>; - phandle = <0x97>; - }; - - usbehci_16 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbohci_16"; - }; - - usbehci1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbehci1"; - linux,phandle = <0x37>; - phandle = <0x37>; - }; - - usbehci0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbehci0"; - linux,phandle = <0x34>; - phandle = <0x34>; - }; - - usbotg { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbotg"; - linux,phandle = <0x33>; - phandle = <0x33>; - }; - - gmac { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "gmac"; - linux,phandle = <0x8f>; - phandle = <0x8f>; - }; - - sdram { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdram"; - }; - - dma { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "dma"; - linux,phandle = <0xb>; - phandle = <0xb>; - }; - - hwspinlock_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "hwspinlock_rst"; - linux,phandle = <0xf>; - phandle = <0xf>; - }; - - hwspinlock_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "hwspinlock_bus"; - linux,phandle = <0x10>; - phandle = <0x10>; - }; - - msgbox { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "msgbox"; - linux,phandle = <0xe>; - phandle = <0xe>; - }; - - lvds { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "lvds"; - linux,phandle = <0x6c>; - phandle = <0x6c>; - }; - - uart0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart0"; - linux,phandle = <0x18>; - phandle = <0x18>; - }; - - uart1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart1"; - linux,phandle = <0x1b>; - phandle = <0x1b>; - }; - - uart2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart2"; - linux,phandle = <0x1e>; - phandle = <0x1e>; - }; - - uart3 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart3"; - linux,phandle = <0x21>; - phandle = <0x21>; - }; - - uart4 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart4"; - linux,phandle = <0x24>; - phandle = <0x24>; - }; - - scr { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "scr"; - linux,phandle = <0x7d>; - phandle = <0x7d>; - }; - - twi0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi0"; - linux,phandle = <0x27>; - phandle = <0x27>; - }; - - twi1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi1"; - linux,phandle = <0x2a>; - phandle = <0x2a>; - }; - - twi2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi2"; - linux,phandle = <0x2d>; - phandle = <0x2d>; - }; - - twi3 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi3"; - }; - - pio { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "pio"; - linux,phandle = <0xa>; - phandle = <0xa>; - }; - - cpurcir { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurcir"; - linux,phandle = <0x12>; - phandle = <0x12>; - }; - - cpurpio { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurpio"; - linux,phandle = <0x9>; - phandle = <0x9>; - }; - - cpurpll_peri0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurpll_peri0"; - }; - - cpurcpus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurcpus"; - }; - - cpurahbs { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurahbs"; - }; - - cpurapbs { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurapbs"; - }; - - losc_out { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "losc_out"; - linux,phandle = <0x98>; - phandle = <0x98>; - }; - }; - - soc@01c00000 { - compatible = "simple-bus"; - #address-cells = <0x2>; - #size-cells = <0x2>; - ranges; - device_type = "soc"; - - pinctrl@01f02c00 { - compatible = "allwinner,sun50i-r-pinctrl"; - reg = <0x0 0x1f02c00 0x0 0x400>; - interrupts = <0x0 0x2d 0x4>; - clocks = <0x9>; - device_type = "r_pio"; - gpio-controller; - interrupt-controller; - #interrupt-cells = <0x2>; - #size-cells = <0x0>; - #gpio-cells = <0x6>; - linux,phandle = <0x79>; - phandle = <0x79>; - - s_cir0@0 { - allwinner,pins = "PL11"; - allwinner,function = "s_cir0"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x2>; - allwinner,pull = <0x1>; - linux,phandle = <0x11>; - phandle = <0x11>; - }; - - spwm0@0 { - linux,phandle = <0xaf>; - phandle = <0xaf>; - allwinner,pins = "PL10"; - allwinner,function = "spwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spwm0@1 { - linux,phandle = <0xb0>; - phandle = <0xb0>; - allwinner,pins = "PL10"; - allwinner,function = "spwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x7>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - s_uart0@0 { - linux,phandle = <0xb6>; - phandle = <0xb6>; - allwinner,pins = "PL2", "PL3"; - allwinner,function = "s_uart0"; - allwinner,pname = "s_uart0_tx", "s_uart0_rx"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - s_rsb0@0 { - linux,phandle = <0xb7>; - phandle = <0xb7>; - allwinner,pins = "PL0", "PL1"; - allwinner,function = "s_rsb0"; - allwinner,pname = "s_rsb0_sck", "s_rsb0_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - s_jtag0@0 { - linux,phandle = <0xb8>; - phandle = <0xb8>; - allwinner,pins = "PL4", "PL5", "PL6", "PL7"; - allwinner,function = "s_jtag0"; - allwinner,pname = "s_jtag0_tms", "s_jtag0_tck", "s_jtag0_tdo", "s_jtag0_tdi"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - }; - - pinctrl@01c20800 { - compatible = "allwinner,sun50i-pinctrl"; - reg = <0x0 0x1c20800 0x0 0x400>; - interrupts = <0x0 0xb 0x4 0x0 0x11 0x4 0x0 0x15 0x4>; - device_type = "pio"; - clocks = <0xa>; - gpio-controller; - interrupt-controller; - #interrupt-cells = <0x2>; - #size-cells = <0x0>; - #gpio-cells = <0x6>; - linux,phandle = <0x30>; - phandle = <0x30>; - - uart0@1 { - allwinner,pins = "PB8", "PB9"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x1a>; - phandle = <0x1a>; - }; - - uart1@1 { - allwinner,pins = "PG6", "PG7", "PG8", "PG9"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x1d>; - phandle = <0x1d>; - }; - - uart2@1 { - allwinner,pins = "PB0", "PB1", "PB2", "PB3"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x20>; - phandle = <0x20>; - }; - - uart3@1 { - allwinner,pins = "PH4", "PH5", "PH6", "PH7"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x23>; - phandle = <0x23>; - }; - - uart4@1 { - allwinner,pins = "PD2", "PD3", "PD4", "PD5"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x26>; - phandle = <0x26>; - }; - - twi0@1 { - allwinner,pins = "PH0", "PH1"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x29>; - phandle = <0x29>; - }; - - twi1@1 { - allwinner,pins = "PH2", "PH3"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x2c>; - phandle = <0x2c>; - }; - - twi2@1 { - allwinner,pins = "PE14", "PE15"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x2f>; - phandle = <0x2f>; - }; - - spi0@2 { - allwinner,pins = "PC3", "PC2", "PC0", "PC1"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x55>; - phandle = <0x55>; - }; - - spi1@2 { - allwinner,pins = "PD0", "PD1", "PD2", "PD3"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x59>; - phandle = <0x59>; - }; - - sdc0@1 { - allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x64>; - phandle = <0x64>; - }; - - sdc1@1 { - allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x69>; - phandle = <0x69>; - }; - - sdc2@1 { - allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x5f>; - phandle = <0x5f>; - }; - - daudio0@0 { - allwinner,pins = "PB6", "PB3", "PB4", "PB5", "PB7"; - allwinner,function = "pcm0"; - allwinner,muxsel = <0x3>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x43>; - phandle = <0x43>; - }; - - daudio0_sleep@0 { - allwinner,pins = "PB6", "PB3", "PB4", "PB5", "PB7"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x44>; - phandle = <0x44>; - }; - - daudio1@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "pcm1"; - allwinner,muxsel = <0x3>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x45>; - phandle = <0x45>; - }; - - daudio1_sleep@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x46>; - phandle = <0x46>; - }; - - aif3@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "aif3"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x3e>; - phandle = <0x3e>; - }; - - aif2_sleep@0 { - allwinner,pins = "PB6", "PB4", "PB5", "PB7"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x3f>; - phandle = <0x3f>; - }; - - aif3_sleep@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x40>; - phandle = <0x40>; - }; - - spdif@0 { - allwinner,pins = "PH8"; - allwinner,function = "spdif0"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x4a>; - phandle = <0x4a>; - }; - - spdif_sleep@0 { - allwinner,pins = "PH8"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x4b>; - phandle = <0x4b>; - }; - - csi0_sleep@0 { - allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13"; - allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7", "csi0_sck", "csi0_sda"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - allwinner,data = <0x0>; - linux,phandle = <0x77>; - phandle = <0x77>; - }; - - smartcard@0 { - allwinner,pins = "PB1", "PB4", "PB5", "PB6", "PB7"; - allwinner,function = "sim0"; - allwinner,muxsel = <0x5>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x7f>; - phandle = <0x7f>; - }; - - nand0@2 { - allwinner,pins = "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PC18"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x83>; - phandle = <0x83>; - }; - - card0_boot_para@0 { - linux,phandle = <0x99>; - phandle = <0x99>; - allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - allwinner,function = "card0_boot_para"; - allwinner,pname = "sdc_d1", "sdc_d0", "sdc_clk", "sdc_cmd", "sdc_d3", "sdc_d2"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - card2_boot_para@0 { - linux,phandle = <0x9a>; - phandle = <0x9a>; - allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "card2_boot_para"; - allwinner,pname = "sdc_ds", "sdc_clk", "sdc_cmd", "sdc_d0", "sdc_d1", "sdc_d2", "sdc_d3", "sdc_d4", "sdc_d5", "sdc_d6", "sdc_d7", "sdc_emmc_rst"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - twi_para@0 { - linux,phandle = <0x9b>; - phandle = <0x9b>; - allwinner,pins = "PH0", "PH1"; - allwinner,function = "twi_para"; - allwinner,pname = "twi_scl", "twi_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart_para@0 { - linux,phandle = <0x9c>; - phandle = <0x9c>; - allwinner,pins = "PB8", "PB9"; - allwinner,function = "uart_para"; - allwinner,pname = "uart_debug_tx", "uart_debug_rx"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - jtag_para@0 { - linux,phandle = <0x9d>; - phandle = <0x9d>; - allwinner,pins = "PB0", "PB1", "PB2", "PB3"; - allwinner,function = "jtag_para"; - allwinner,pname = "jtag_ms", "jtag_ck", "jtag_do", "jtag_di"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - gmac0@0 { - linux,phandle = <0x9e>; - phandle = <0x9e>; - allwinner,pins = "PD18", "PD17", "PD16", "PD15", "PD20", "PD19", "PD11", "PD10", "PD9", "PD8", "PD13", "PD12", "PD21", "PD22", "PD23"; - allwinner,function = "gmac0"; - allwinner,pname = "gmac_txd0", "gmac_txd1", "gmac_txd2", "gmac_txd3", "gmac_txen", "gmac_gtxclk", "gmac_rxd0", "gmac_rxd1", "gmac_rxd2", "gmac_rxd3", "gmac_rxdv", "gmac_rxclk", "gmac_clkin", "gmac_mdc", "gmac_mdio"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - twi0@0 { - linux,phandle = <0x9f>; - phandle = <0x9f>; - allwinner,pins = "PH0", "PH1"; - allwinner,function = "twi0"; - allwinner,pname = "twi0_scl", "twi0_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - twi1@0 { - linux,phandle = <0xa0>; - phandle = <0xa0>; - allwinner,pins = "PH2", "PH3"; - allwinner,function = "twi1"; - allwinner,pname = "twi1_scl", "twi1_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - twi2@0 { - linux,phandle = <0xa1>; - phandle = <0xa1>; - allwinner,pins = "PE14", "PE15"; - allwinner,function = "twi2"; - allwinner,pname = "twi2_scl", "twi2_sda"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart0@0 { - linux,phandle = <0xa2>; - phandle = <0xa2>; - allwinner,pins = "PB8", "PB9"; - allwinner,function = "uart0"; - allwinner,pname = "uart0_tx", "uart0_rx"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart1@0 { - linux,phandle = <0xa3>; - phandle = <0xa3>; - allwinner,pins = "PG6", "PG7", "PG8", "PG9"; - allwinner,function = "uart1"; - allwinner,pname = "uart1_tx", "uart1_rx", "uart1_rts", "uart1_cts"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart2@0 { - linux,phandle = <0xa4>; - phandle = <0xa4>; - allwinner,pins = "PB0", "PB1", "PB2", "PB3"; - allwinner,function = "uart2"; - allwinner,pname = "uart2_tx", "uart2_rx", "uart2_rts", "uart2_cts"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart3@0 { - linux,phandle = <0xa5>; - phandle = <0xa5>; - allwinner,pins = "PD0", "PD1"; - allwinner,function = "uart3"; - allwinner,pname = "uart3_tx", "uart3_rx"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart4@0 { - linux,phandle = <0xa6>; - phandle = <0xa6>; - allwinner,pins = "PD2", "PD3", "PD4", "PD5"; - allwinner,function = "uart4"; - allwinner,pname = "uart4_tx", "uart4_rx", "uart4_rts", "uart4_cts"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi0@0 { - linux,phandle = <0xa7>; - phandle = <0xa7>; - allwinner,pins = "PC3"; - allwinner,function = "spi0"; - allwinner,pname = "spi0_cs0"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi0@1 { - linux,phandle = <0xa8>; - phandle = <0xa8>; - allwinner,pins = "PC2", "PC0", "PC1"; - allwinner,function = "spi0"; - allwinner,pname = "spi0_sclk", "spi0_mosi", "spi0_miso"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi1@0 { - linux,phandle = <0xa9>; - phandle = <0xa9>; - allwinner,pins = "PD0"; - allwinner,function = "spi1"; - allwinner,pname = "spi1_cs0"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi1@1 { - linux,phandle = <0xaa>; - phandle = <0xaa>; - allwinner,pins = "PD1", "PD2", "PD3"; - allwinner,function = "spi1"; - allwinner,pname = "spi1_sclk", "spi1_mosi", "spi1_miso"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - nand0@0 { - linux,phandle = <0xab>; - phandle = <0xab>; - allwinner,pins = "PC0", "PC1", "PC2", "PC5", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "nand0"; - allwinner,pname = "nand0_we", "nand0_ale", "nand0_cle", "nand0_nre", "nand0_d0", "nand0_d1", "nand0_d2", "nand0_d3", "nand0_d4", "nand0_d5", "nand0_d6", "nand0_d7", "nand0_ndqs"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x0>; - allwinner,drive = <0x1>; - allwinner,data = <0xffffffff>; - }; - - nand0@1 { - linux,phandle = <0xac>; - phandle = <0xac>; - allwinner,pins = "PC3", "PC4", "PC6", "PC7", "PC17", "PC18"; - allwinner,function = "nand0"; - allwinner,pname = "nand0_ce1", "nand0_ce0", "nand0_rb0", "nand0_rb1", "nand0_ce2", "nand0_ce3"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x1>; - allwinner,data = <0xffffffff>; - }; - - pwm0@0 { - linux,phandle = <0xad>; - phandle = <0xad>; - allwinner,pins = "PD22"; - allwinner,function = "pwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - pwm0@1 { - linux,phandle = <0xae>; - phandle = <0xae>; - allwinner,pins = "PD22"; - allwinner,function = "pwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x7>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - csi0@0 { - linux,phandle = <0xb1>; - phandle = <0xb1>; - allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13"; - allwinner,function = "csi0"; - allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7", "csi0_sck", "csi0_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - sdc0@0 { - linux,phandle = <0xb2>; - phandle = <0xb2>; - allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - allwinner,function = "sdc0"; - allwinner,pname = "sdc0_d1", "sdc0_d0", "sdc0_clk", "sdc0_cmd", "sdc0_d3", "sdc0_d2"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - sdc1@0 { - linux,phandle = <0xb3>; - phandle = <0xb3>; - allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; - allwinner,function = "sdc1"; - allwinner,pname = "sdc1_clk", "sdc1_cmd", "sdc1_d0", "sdc1_d1", "sdc1_d2", "sdc1_d3"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - sdc2@0 { - linux,phandle = <0xb4>; - phandle = <0xb4>; - allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "sdc2"; - allwinner,pname = "sdc2_ds", "sdc2_clk", "sdc2_cmd", "sdc2_d0", "sdc2_d1", "sdc2_d2", "sdc2_d3", "sdc2_d4", "sdc2_d5", "sdc2_d6", "sdc2_d7", "sdc2_emmc_rst"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - codec@0 { - linux,phandle = <0xb5>; - phandle = <0xb5>; - allwinner,pins = "PH7"; - allwinner,function = "codec"; - allwinner,pname = "gpio-spk"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - Vdevice@0 { - linux,phandle = <0xb9>; - phandle = <0xb9>; - allwinner,pins = "PB1", "PB2"; - allwinner,function = "Vdevice"; - allwinner,pname = "Vdevice_0", "Vdevice_1"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - w1_pin@0 { - linux,phandle = <0xba>; - phandle = <0xba>; - allwinner,pins = "PC8"; - allwinner,function = "gpio_in"; - allwinner,pname = "w1"; - allwinner,muxsel = <0x0>; - allwinner,pull = <0x1>; - allwinner,drive = <0x0>; - allwinner,data = <0xffffffff>; - }; - }; - - pinctrl@0 { - compatible = "allwinner,axp-pinctrl"; - gpio-controller; - #size-cells = <0x0>; - #gpio-cells = <0x6>; - device_type = "axp_pio"; - linux,phandle = <0x31>; - phandle = <0x31>; - }; - - dma-controller@01c02000 { - compatible = "allwinner,sun50i-dma"; - reg = <0x0 0x1c02000 0x0 0x1000>; - interrupts = <0x0 0x32 0x4>; - clocks = <0xb>; - #dma-cells = <0x1>; - }; - - mbus-controller@01c62000 { - compatible = "allwinner,sun50i-mbus"; - reg = <0x0 0x1c62000 0x0 0x110>; - #mbus-cells = <0x1>; - }; - - arisc { - compatible = "allwinner,sunxi-arisc"; - #address-cells = <0x2>; - #size-cells = <0x2>; - clocks = <0xc 0xd 0x6 0x4>; - clock-names = "losc", "iosc", "hosc", "pll_periph0"; - powchk_used = <0x0>; - power_reg = <0x2309621>; - system_power = <0x32>; - }; - - arisc_space { - compatible = "allwinner,arisc_space"; - space1 = <0x40000 0x0 0x14000>; - space2 = <0x40100000 0x18000 0x4000>; - space3 = <0x40104000 0x0 0x1000>; - space4 = <0x40105000 0x0 0x1000>; - }; - - standby_space { - compatible = "allwinner,standby_space"; - space1 = <0x41020000 0x0 0x800>; - }; - - msgbox@1c17000 { - compatible = "allwinner,msgbox"; - clocks = <0xe>; - clock-names = "clk_msgbox"; - reg = <0x0 0x1c17000 0x0 0x1000>; - interrupts = <0x0 0x31 0x1>; - status = "okay"; - }; - - hwspinlock@1c18000 { - compatible = "allwinner,sunxi-hwspinlock"; - clocks = <0xf 0x10>; - clock-names = "clk_hwspinlock_rst", "clk_hwspinlock_bus"; - reg = <0x0 0x1c18000 0x0 0x1000>; - status = "okay"; - num-locks = <0x8>; - }; - - s_cir@1f02000 { - compatible = "allwinner,s_cir"; - reg = <0x0 0x1f02000 0x0 0x400>; - interrupts = <0x0 0x25 0x4>; - pinctrl-names = "default"; - pinctrl-0 = <0x11>; - clocks = <0x6 0x12>; - supply = "vcc-pl"; - ir_power_key_code = <0x4d>; - ir_addr_code = <0x4040>; - status = "okay"; - device_type = "s_cir0"; - }; - - s_uart@1f02800 { - compatible = "allwinner,s_uart"; - reg = <0x0 0x1f02800 0x0 0x400>; - interrupts = <0x0 0x26 0x4>; - pinctrl-names = "default"; - status = "okay"; - device_type = "s_uart0"; - pinctrl-0 = <0xb6>; - }; - - s_rsb@1f03400 { - compatible = "allwinner,s_rsb"; - reg = <0x0 0x1f03400 0x0 0x400>; - interrupts = <0x0 0x27 0x4>; - pinctrl-names = "default"; - status = "okay"; - device_type = "s_rsb0"; - pinctrl-0 = <0xb7>; - }; - - s_jtag0 { - compatible = "allwinner,s_jtag"; - pinctrl-names = "default"; - status = "disabled"; - device_type = "s_jtag0"; - pinctrl-0 = <0xb8>; - }; - - timer@1c20c00 { - compatible = "allwinner,sunxi-timer"; - device_type = "timer"; - reg = <0x0 0x1c20c00 0x0 0x90>; - interrupts = <0x0 0x12 0x1>; - clock-frequency = <0x16e3600>; - timer-prescale = <0x10>; - }; - - rtc@01f00000 { - compatible = "allwinner,sun50i-rtc"; - device_type = "rtc"; - reg = <0x0 0x1f00000 0x0 0x218>; - interrupts = <0x0 0x28 0x4>; - gpr_offset = <0x100>; - gpr_len = <0x4>; - }; - - ve@01c0e000 { - compatible = "allwinner,sunxi-cedar-ve"; - reg = <0x0 0x1c0e000 0x0 0x1000 0x0 0x1c00000 0x0 0x10 0x0 0x1c20000 0x0 0x800>; - interrupts = <0x0 0x3a 0x4>; - clocks = <0x16 0x17>; - }; - - uart@01c28000 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart0"; - reg = <0x0 0x1c28000 0x0 0x400>; - interrupts = <0x0 0x0 0x4>; - clocks = <0x18>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x1a>; - uart0_port = <0x0>; - uart0_type = <0x2>; - status = "okay"; - pinctrl-0 = <0xa2>; - }; - - uart@01c28400 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart1"; - reg = <0x0 0x1c28400 0x0 0x400>; - interrupts = <0x0 0x1 0x4>; - clocks = <0x1b>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x1d>; - uart1_port = <0x1>; - uart1_type = <0x4>; - status = "okay"; - pinctrl-0 = <0xa3>; - }; - - uart@01c28800 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart2"; - reg = <0x0 0x1c28800 0x0 0x400>; - interrupts = <0x0 0x2 0x4>; - clocks = <0x1e>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x20>; - uart2_port = <0x2>; - uart2_type = <0x4>; - status = "okay"; - pinctrl-0 = <0xa4>; - }; - - uart@01c28c00 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart3"; - reg = <0x0 0x1c28c00 0x0 0x400>; - interrupts = <0x0 0x3 0x4>; - clocks = <0x21>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x23>; - uart3_port = <0x3>; - uart3_type = <0x4>; - status = "okay"; - pinctrl-0 = <0xa5>; - }; - - uart@01c29000 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart4"; - reg = <0x0 0x1c29000 0x0 0x400>; - interrupts = <0x0 0x4 0x4>; - clocks = <0x24>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x26>; - uart4_port = <0x4>; - uart4_type = <0x4>; - status = "okay"; - pinctrl-0 = <0xa6>; - }; - - twi@0x01c2ac00 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi0"; - reg = <0x0 0x1c2ac00 0x0 0x400>; - interrupts = <0x0 0x6 0x4>; - clocks = <0x27>; - clock-frequency = <0x61a80>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x29>; - status = "okay"; - pinctrl-0 = <0x9f>; - }; - - twi@0x01c2b000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi1"; - reg = <0x0 0x1c2b000 0x0 0x400>; - interrupts = <0x0 0x7 0x4>; - clocks = <0x2a>; - clock-frequency = <0x30d40>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x2c>; - status = "okay"; - pinctrl-0 = <0xa0>; - }; - - twi@0x01c2b400 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi2"; - reg = <0x0 0x1c2b400 0x0 0x400>; - interrupts = <0x0 0x8 0x4>; - clocks = <0x2d>; - clock-frequency = <0x30d40>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x2f>; - status = "disabled"; - pinctrl-0 = <0xa1>; - }; - - usbc0@0 { - device_type = "usbc0"; - compatible = "allwinner,sunxi-otg-manager"; - usb_port_type = <0x1>; - usb_detect_type = <0x0>; - usb_host_init_state = <0x1>; - usb_regulator_io = "nocare"; - usb_wakeup_suspend = <0x1>; - usb_luns = <0x3>; - usb_serial_unique = <0x1>; - usb_serial_number = "20080411"; - rndis_wceis = <0x1>; - status = "okay"; - usb_id_gpio; - usb_det_vbus_gpio; - usb_drv_vbus_gpio; - }; - - udc-controller@0x01c19000 { - compatible = "allwinner,sunxi-udc"; - reg = <0x0 0x1c19000 0x0 0x1000 0x0 0x1c00000 0x0 0x100>; - interrupts = <0x0 0x47 0x4>; - clocks = <0x32 0x33>; - status = "okay"; - }; - - ehci0-controller@0x01c1a000 { - compatible = "allwinner,sunxi-ehci0"; - reg = <0x0 0x1c1a000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x48 0x4>; - clocks = <0x32 0x34>; - hci_ctrl_no = <0x0>; - status = "okay"; - }; - - ohci0-controller@0x01c1a400 { - compatible = "allwinner,sunxi-ohci0"; - reg = <0x0 0x1c1a000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x49 0x4>; - clocks = <0x32 0x35>; - hci_ctrl_no = <0x0>; - status = "okay"; - }; - - usbc1@0 { - device_type = "usbc1"; - usb_host_init_state = <0x1>; - usb_regulator_io = "nocare"; - usb_wakeup_suspend = <0x1>; - usb_hsic_used = <0x0>; - usb_hsic_regulator_io = "vcc-hsic-12"; - usb_hsic_ctrl = <0x0>; - usb_hsic_usb3503_flag = <0x0>; - status = "okay"; - usb_port_type = <0x1>; - usb_detect_type = <0x0>; - usb_drv_vbus_gpio; - usb_hsic_rdy_gpio; - usb_hsic_hub_connect_gpio; - usb_hsic_int_n_gpio; - usb_hsic_reset_n_gpio; - }; - - ehci1-controller@0x01c1b000 { - compatible = "allwinner,sunxi-ehci1"; - reg = <0x0 0x1c1b000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x4a 0x4>; - clocks = <0x36 0x37 0x38 0x39 0x3a>; - hci_ctrl_no = <0x1>; - status = "okay"; - }; - - ohci1-controller@0x01c1b400 { - compatible = "allwinner,sunxi-ohci1"; - reg = <0x0 0x1c1b000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x4b 0x4>; - clocks = <0x36 0x3b>; - hci_ctrl_no = <0x1>; - status = "okay"; - }; - - codec@0x01c22c00 { - compatible = "allwinner,sunxi-internal-codec"; - reg = <0x0 0x1c22c00 0x0 0x478 0x0 0x1f015c0 0x0 0x0>; - clocks = <0x3c>; - pinctrl-names = "aif2-default", "aif3-default", "aif2-sleep", "aif3-sleep"; - pinctrl-1 = <0x3e>; - pinctrl-2 = <0x3f>; - pinctrl-3 = <0x40>; - gpio-spk = <0x30 0x7 0x7 0x1 0x1 0x1 0x1>; - headphonevol = <0x3b>; - spkervol = <0x1a>; - earpiecevol = <0x1e>; - maingain = <0x4>; - headsetmicgain = <0x4>; - adcagc_cfg = <0x0>; - adcdrc_cfg = <0x0>; - adchpf_cfg = <0x0>; - dacdrc_cfg = <0x0>; - dachpf_cfg = <0x0>; - aif1_lrlk_div = <0x40>; - aif2_lrlk_div = <0x40>; - aif2config = <0x0>; - aif3config = <0x0>; - pa_sleep_time = <0x15e>; - dac_digital_vol = <0xa0a0>; - status = "okay"; - linux,phandle = <0x4d>; - phandle = <0x4d>; - device_type = "codec"; - pinctrl-0 = <0xb5>; - }; - - i2s0-controller@0x01c22c00 { - compatible = "allwinner,sunxi-internal-i2s"; - reg = <0x0 0x1c22c00 0x0 0x478>; - clocks = <0x2 0x41>; - status = "okay"; - linux,phandle = <0x4c>; - phandle = <0x4c>; - device_type = "i2s"; - }; - - daudio@0x01c22000 { - compatible = "allwinner,sunxi-daudio"; - reg = <0x0 0x1c22000 0x0 0x58>; - clocks = <0x2 0x42>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x43>; - pinctrl-1 = <0x44>; - pcm_lrck_period = <0x20>; - pcm_lrckr_period = <0x1>; - slot_width_select = <0x20>; - pcm_lsb_first = <0x0>; - tx_data_mode = <0x0>; - rx_data_mode = <0x0>; - daudio_master = <0x4>; - audio_format = <0x1>; - signal_inversion = <0x1>; - frametype = <0x0>; - tdm_config = <0x1>; - tdm_num = <0x0>; - status = "disabled"; - linux,phandle = <0x4e>; - phandle = <0x4e>; - device_type = "daudio0"; - }; - - daudio@0x01c22400 { - compatible = "allwinner,sunxi-daudio"; - reg = <0x0 0x1c22400 0x0 0x58>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x45>; - pinctrl-1 = <0x46>; - clocks = <0x2 0x47>; - pcm_lrck_period = <0x20>; - pcm_lrckr_period = <0x1>; - slot_width_select = <0x20>; - pcm_lsb_first = <0x0>; - tx_data_mode = <0x0>; - rx_data_mode = <0x0>; - daudio_master = <0x4>; - audio_format = <0x1>; - signal_inversion = <0x1>; - frametype = <0x0>; - tdm_config = <0x1>; - tdm_num = <0x1>; - status = "disabled"; - linux,phandle = <0x4f>; - phandle = <0x4f>; - device_type = "daudio1"; - }; - - daudio@0x01c22800 { - compatible = "allwinner,sunxi-tdmhdmi"; - reg = <0x0 0x1c22800 0x0 0x58>; - clocks = <0x2 0x48>; - status = "okay"; - linux,phandle = <0x50>; - phandle = <0x50>; - device_type = "daudio2"; - }; - - spdif-controller@0x01c21000 { - compatible = "allwinner,sunxi-spdif"; - reg = <0x0 0x1c21000 0x0 0x38>; - clocks = <0x2 0x49>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x4a>; - pinctrl-1 = <0x4b>; - status = "disabled"; - linux,phandle = <0x51>; - phandle = <0x51>; - device_type = "spdif"; - }; - - sound@0 { - compatible = "allwinner,sunxi-codec-machine"; - interrupts = <0x0 0x1c 0x4>; - sunxi,i2s-controller = <0x4c>; - sunxi,audio-codec = <0x4d>; - aif2fmt = <0x3>; - aif3fmt = <0x3>; - aif2master = <0x1>; - hp_detect_case = <0x1>; - status = "okay"; - device_type = "sndcodec"; - }; - - sound@1 { - compatible = "allwinner,sunxi-daudio0-machine"; - sunxi,daudio0-controller = <0x4e>; - status = "disabled"; - device_type = "snddaudio0"; - }; - - sound@2 { - compatible = "allwinner,sunxi-daudio1-machine"; - sunxi,daudio1-controller = <0x4f>; - status = "disabled"; - device_type = "snddaudio1"; - }; - - sound@3 { - compatible = "allwinner,sunxi-hdmi-machine"; - sunxi,hdmi-controller = <0x50>; - status = "okay"; - device_type = "sndhdmi"; - }; - - sound@4 { - compatible = "allwinner,sunxi-spdif-machine"; - sunxi,spdif-controller = <0x51>; - status = "disabled"; - device_type = "sndspdif"; - }; - - spi@01c68000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-spi"; - device_type = "spi0"; - reg = <0x0 0x1c68000 0x0 0x1000>; - interrupts = <0x0 0x41 0x4>; - clocks = <0x4 0x52>; - clock-frequency = <0x5f5e100>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x55>; - spi0_cs_number = <0x1>; - spi0_cs_bitmap = <0x1>; - status = "disabled"; - pinctrl-0 = <0xa7 0xa8>; - - spidev@0 { - compatible = "spidev"; - reg = <0x0>; - spi-max-frequency = <0x2faf080>; - }; - }; - - spi@01c69000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-spi"; - device_type = "spi1"; - reg = <0x0 0x1c69000 0x0 0x1000>; - interrupts = <0x0 0x42 0x4>; - clocks = <0x4 0x56>; - clock-frequency = <0x5f5e100>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x59>; - spi1_cs_number = <0x1>; - spi1_cs_bitmap = <0x1>; - status = "disabled"; - pinctrl-0 = <0xa9 0xaa>; - }; - - sdmmc@01C11000 { - compatible = "allwinner,sun50i-sdmmc2"; - device_type = "sdc2"; - reg = <0x0 0x1c11000 0x0 0x1000>; - interrupts = <0x0 0x3e 0x104>; - clocks = <0x6 0x5a 0x5b 0x5c 0x5d>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x5f>; - bus-width = <0x8>; - max-frequency = <0x5f5e100>; - sdc_tm4_sm0_freq0 = <0x0>; - sdc_tm4_sm0_freq1 = <0x0>; - sdc_tm4_sm1_freq0 = <0x0>; - sdc_tm4_sm1_freq1 = <0x0>; - sdc_tm4_sm2_freq0 = <0x0>; - sdc_tm4_sm2_freq1 = <0x0>; - sdc_tm4_sm3_freq0 = <0x5000000>; - sdc_tm4_sm3_freq1 = <0x405>; - sdc_tm4_sm4_freq0 = <0x50000>; - sdc_tm4_sm4_freq1 = <0x408>; - status = "disabled"; - non-removable; - pinctrl-0 = <0xb4>; - cd-gpios; - sunxi-power-save-mode; - sunxi-dis-signal-vol-sw; - mmc-ddr-1_8v; - mmc-hs200-1_8v; - mmc-hs400-1_8v; - vmmc = "vcc-emmc"; - vqmmc = "vcc-lpddr"; - vdmmc = "none"; - }; - - sdmmc@01c0f000 { - compatible = "allwinner,sun50i-sdmmc0"; - device_type = "sdc0"; - reg = <0x0 0x1c0f000 0x0 0x1000>; - interrupts = <0x0 0x3c 0x104>; - clocks = <0x6 0x5a 0x60 0x61 0x62>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x64>; - max-frequency = <0x2faf080>; - bus-width = <0x4>; - broken-cd; - status = "okay"; - pinctrl-0 = <0xb2>; - cd-gpios = <0x30 0x5 0x6 0x0 0x1 0x2 0xffffffff>; - sunxi-power-save-mode; - vmmc = "none"; - vqmmc = "none"; - vdmmc = "vcc-sdc"; - }; - - sdmmc@1C10000 { - compatible = "allwinner,sun50i-sdmmc1"; - device_type = "sdc1"; - reg = <0x0 0x1c10000 0x0 0x1000>; - interrupts = <0x0 0x3d 0x104>; - clocks = <0x6 0x5a 0x65 0x66 0x67>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x69>; - max-frequency = <0x8f0d180>; - bus-width = <0x4>; - sunxi-dly-52M-ddr4 = <0x1 0x0 0x0 0x0 0x2>; - sunxi-dly-104M = <0x1 0x0 0x0 0x0 0x1>; - sunxi-dly-208M = <0x1 0x0 0x0 0x0 0x1>; - status = "okay"; - pinctrl-0 = <0xb3>; - sd-uhs-sdr50; - sd-uhs-ddr50; - sd-uhs-sdr104; - cap-sdio-irq; - keep-power-in-suspend; - ignore-pm-notify; - }; - - disp@01000000 { - compatible = "allwinner,sun50i-disp"; - reg = <0x0 0x1000000 0x0 0x300000 0x0 0x1c0c000 0x0 0x17fc 0x0 0x1ca0000 0x0 0x10fc>; - interrupts = <0x0 0x56 0x104 0x0 0x57 0x104 0x0 0x59 0x104>; - clocks = <0x6a 0x6b 0x6c 0x6d 0x6e>; - status = "okay"; - device_type = "disp"; - disp_init_enable = <0x1>; - disp_mode = <0x0>; - screen0_output_type = <0x3>; - screen0_output_mode = <0xa>; - screen1_output_type = <0x3>; - screen1_output_mode = <0xa>; - fb0_format = <0x0>; - fb0_width = <0x0>; - fb0_height = <0x0>; - fb1_format = <0x0>; - fb1_width = <0x0>; - fb1_height = <0x0>; - }; - - lcd0@01c0c000 { - compatible = "allwinner,sunxi-lcd0"; - pinctrl-names = "active", "sleep"; - status = "okay"; - device_type = "lcd0"; - lcd_used = <0x0>; - lcd_driver_name = "mb709_mipi"; - lcd_backlight = <0x32>; - lcd_if = <0x4>; - lcd_x = <0x400>; - lcd_y = <0x258>; - lcd_width = <0x0>; - lcd_height = <0x0>; - lcd_dclk_freq = <0x37>; - lcd_pwm_used = <0x1>; - lcd_pwm_ch = <0x10>; - lcd_pwm_freq = <0xc350>; - lcd_pwm_pol = <0x1>; - lcd_pwm_max_limit = <0xfa>; - lcd_hbp = <0x78>; - lcd_ht = <0x604>; - lcd_hspw = <0x14>; - lcd_vbp = <0x17>; - lcd_vt = <0x27b>; - lcd_vspw = <0x2>; - lcd_dsi_if = <0x2>; - lcd_dsi_lane = <0x4>; - lcd_dsi_format = <0x0>; - lcd_dsi_eotp = <0x0>; - lcd_dsi_vc = <0x0>; - lcd_dsi_te = <0x0>; - lcd_frm = <0x0>; - lcd_gamma_en = <0x0>; - lcd_bright_curve_en = <0x0>; - lcd_cmap_en = <0x0>; - lcd_bl_en = <0x30 0x7 0xa 0x1 0x0 0xffffffff 0x1>; - lcd_bl_en_power = "none"; - lcd_power = "vcc-mipi"; - lcd_fix_power = "vcc-dsi-33"; - lcd_gpio_0 = <0x30 0x3 0x18 0x1 0x0 0xffffffff 0x1>; - }; - - hdmi@01ee0000 { - compatible = "allwinner,sunxi-hdmi"; - reg = <0x0 0x1ee0000 0x0 0x20000>; - clocks = <0x6f 0x70>; - device_type = "hdmi"; - status = "okay"; - hdmi_power = "vcc-hdmi-33"; - hdmi_hdcp_enable = <0x0>; - hdmi_cts_compatibility = <0x0>; - }; - - tr@01000000 { - compatible = "allwinner,sun50i-tr"; - reg = <0x0 0x1000000 0x0 0x200bc>; - interrupts = <0x0 0x60 0x104>; - clocks = <0x6a>; - status = "okay"; - }; - - pwm@01c21400 { - compatible = "allwinner,sunxi-pwm"; - reg = <0x0 0x1c21400 0x0 0x3c>; - pwm-number = <0x1>; - pwm-base = <0x0>; - pwms = <0x71>; - }; - - pwm0@01c21400 { - compatible = "allwinner,sunxi-pwm0"; - pinctrl-names = "active", "sleep"; - reg_base = <0x1c21400>; - reg_busy_offset = <0x0>; - reg_busy_shift = <0x1c>; - reg_enable_offset = <0x0>; - reg_enable_shift = <0x4>; - reg_clk_gating_offset = <0x0>; - reg_clk_gating_shift = <0x6>; - reg_bypass_offset = <0x0>; - reg_bypass_shift = <0x9>; - reg_pulse_start_offset = <0x0>; - reg_pulse_start_shift = <0x8>; - reg_mode_offset = <0x0>; - reg_mode_shift = <0x7>; - reg_polarity_offset = <0x0>; - reg_polarity_shift = <0x5>; - reg_period_offset = <0x4>; - reg_period_shift = <0x10>; - reg_period_width = <0x10>; - reg_active_offset = <0x4>; - reg_active_shift = <0x0>; - reg_active_width = <0x10>; - reg_prescal_offset = <0x0>; - reg_prescal_shift = <0x0>; - reg_prescal_width = <0x4>; - linux,phandle = <0x71>; - phandle = <0x71>; - device_type = "pwm0"; - pwm_used = <0x0>; - pinctrl-0 = <0xad>; - pinctrl-1 = <0xae>; - }; - - s_pwm@1f03800 { - compatible = "allwinner,sunxi-s_pwm"; - reg = <0x0 0x1f03800 0x0 0x3c>; - pwm-number = <0x1>; - pwm-base = <0x10>; - pwms = <0x72>; - }; - - spwm0@0x01f03800 { - compatible = "allwinner,sunxi-pwm16"; - pinctrl-names = "active", "sleep"; - reg_base = <0x1f03800>; - reg_busy_offset = <0x0>; - reg_busy_shift = <0x1c>; - reg_enable_offset = <0x0>; - reg_enable_shift = <0x4>; - reg_clk_gating_offset = <0x0>; - reg_clk_gating_shift = <0x6>; - reg_bypass_offset = <0x0>; - reg_bypass_shift = <0x9>; - reg_pulse_start_offset = <0x0>; - reg_pulse_start_shift = <0x8>; - reg_mode_offset = <0x0>; - reg_mode_shift = <0x7>; - reg_polarity_offset = <0x0>; - reg_polarity_shift = <0x5>; - reg_period_offset = <0x4>; - reg_period_shift = <0x10>; - reg_period_width = <0x10>; - reg_active_offset = <0x4>; - reg_active_shift = <0x0>; - reg_active_width = <0x10>; - reg_prescal_offset = <0x0>; - reg_prescal_shift = <0x0>; - reg_prescal_width = <0x4>; - linux,phandle = <0x72>; - phandle = <0x72>; - device_type = "spwm0"; - s_pwm_used = <0x1>; - pinctrl-0 = <0xaf>; - pinctrl-1 = <0xb0>; - }; - - boot_disp { - compatible = "allwinner,boot_disp"; - device_type = "boot_disp"; - output_disp = <0x0>; - output_type = <0x3>; - output_mode = <0xa>; - }; - - cci@0x01cb3000 { - compatible = "allwinner,sunxi-csi_cci"; - reg = <0x0 0x1cb3000 0x0 0x1000>; - interrupts = <0x0 0x55 0x4>; - status = "okay"; - }; - - csi_res@0x01cb0000 { - compatible = "allwinner,sunxi-csi"; - reg = <0x0 0x1cb0000 0x0 0x1000>; - status = "okay"; - }; - - vfe@0 { - device_type = "csi0"; - compatible = "allwinner,sunxi-vfe"; - interrupts = <0x0 0x54 0x4>; - clocks = <0x73 0x74 0x75 0x4 0x6 0x5>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x77>; - csi0_sensor_list = <0x1>; - status = "okay"; - pinctrl-0 = <0xb1>; - csi0_mck = <0x30 0x4 0x1 0x0 0x0 0x1 0x0>; - - dev@0 { - csi0_dev0_mname = "s5k4ec"; - csi0_dev0_twi_addr = <0x5a>; - csi0_dev0_pos = "rear"; - csi0_dev0_isp_used = <0x1>; - csi0_dev0_fmt = <0x0>; - csi0_dev0_stby_mode = <0x1>; - csi0_dev0_vflip = <0x0>; - csi0_dev0_hflip = <0x0>; - csi0_dev0_iovdd = "iovdd-csi"; - csi0_dev0_iovdd_vol = <0x2ab980>; - csi0_dev0_avdd = "avdd-csi"; - csi0_dev0_avdd_vol = <0x2ab980>; - csi0_dev0_dvdd = "dvdd-csi-18"; - csi0_dev0_dvdd_vol = <0x16e360>; - csi0_dev0_flash_used = <0x0>; - csi0_dev0_flash_type = <0x2>; - csi0_dev0_flvdd = "vdd-csi-led"; - csi0_dev0_flvdd_vol = <0x325aa0>; - csi0_dev0_act_used = <0x0>; - csi0_dev0_act_name = "ad5820_act"; - csi0_dev0_act_slave = <0x18>; - status = "disabled"; - device_type = "csi0_dev0"; - csi0_dev0_afvdd; - csi0_dev0_afvdd_vol; - csi0_dev0_power_en; - csi0_dev0_reset = <0x30 0x4 0x10 0x0 0x0 0x1 0x0>; - csi0_dev0_pwdn = <0x30 0x4 0x11 0x0 0x0 0x1 0x0>; - csi0_dev0_flash_en; - csi0_dev0_flash_mode; - csi0_dev0_af_pwdn; - }; - - dev@1 { - csi0_dev1_mname = "gc2145"; - csi0_dev1_twi_addr = <0x78>; - csi0_dev1_pos = "front"; - csi0_dev1_isp_used = <0x1>; - csi0_dev1_fmt = <0x0>; - csi0_dev1_stby_mode = <0x1>; - csi0_dev1_vflip = <0x0>; - csi0_dev1_hflip = <0x0>; - csi0_dev1_iovdd = "iovdd-csi"; - csi0_dev1_iovdd_vol = <0x2ab980>; - csi0_dev1_avdd = "avdd-csi"; - csi0_dev1_avdd_vol = <0x2ab980>; - csi0_dev1_dvdd = "dvdd-csi-18"; - csi0_dev1_dvdd_vol = <0x1b7740>; - csi0_dev1_flash_used = <0x0>; - csi0_dev1_flash_type = <0x2>; - csi0_dev1_flvdd = "vdd-csi-led"; - csi0_dev1_flvdd_vol = <0x325aa0>; - csi0_dev1_act_used = <0x0>; - csi0_dev1_act_name = "ad5820_act"; - csi0_dev1_act_slave = <0x18>; - status = "disabled"; - device_type = "csi0_dev1"; - csi0_dev1_afvdd; - csi0_dev1_afvdd_vol; - csi0_dev1_power_en; - csi0_dev1_reset = <0x30 0x4 0x10 0x0 0x0 0x1 0x0>; - csi0_dev1_pwdn = <0x30 0x4 0x11 0x0 0x0 0x1 0x0>; - csi0_dev1_flash_en; - csi0_dev1_flash_mode; - csi0_dev1_af_pwdn; - }; - }; - - vdevice@0 { - compatible = "allwinner,sun50i-vdevice"; - pinctrl-names = "default"; - test-gpios = <0x79 0xb 0x0 0x1 0x2 0x3 0x4>; - status = "okay"; - device_type = "Vdevice"; - pinctrl-0 = <0xb9>; - }; - - onewire_device@0 { - compatible = "w1-gpio"; - gpios = <0x30 0x2 0x8 0x0 0x0 0x0 0x0>; - pinctrl-names = "default"; - pinctrl-0 = <0xba>; - status = "okay"; - }; - - ce@1c15000 { - compatible = "allwinner,sunxi-ce"; - reg = <0x0 0x1c15000 0x0 0x80 0x0 0x1c15800 0x0 0x80>; - interrupts = <0x0 0x5e 0xff01 0x0 0x50 0xff01>; - clock-frequency = <0x11e1a300 0xbebc200>; - clocks = <0x7a 0x7b>; - }; - - deinterlace@0x01e00000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sunxi-deinterlace"; - reg = <0x0 0x1e00000 0x0 0x77c>; - interrupts = <0x0 0x5d 0x4>; - clocks = <0x7c 0x4>; - status = "okay"; - device_type = "di"; - }; - - smartcard@0x01c2c400 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sunxi-scr"; - reg = <0x0 0x1c2c400 0x0 0x100>; - interrupts = <0x0 0x53 0x4>; - clocks = <0x7d 0x7e>; - clock-frequency = <0x16e3600>; - pinctrl-names = "default"; - pinctrl-0 = <0x7f>; - status = "okay"; - device_type = "smc"; - smc_used; - smc_rst; - smc_vppen; - smc_vppp; - smc_det; - smc_vccen; - smc_sck; - smc_sda; - }; - - nmi@0x01f00c00 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sunxi-nmi"; - reg = <0x0 0x1f00c00 0x0 0x50>; - nmi_irq_ctrl = <0xc>; - nmi_irq_en = <0x40>; - nmi_irq_status = <0x10>; - nmi_irq_mask = <0x50>; - status = "okay"; - }; - - pmu0@0 { - compatible = "allwinner,pmu0"; - device_type = "pmu0"; - pmu_batdeten = <0x1>; - pmu_init_chgend_rate = <0x14>; - pmu_init_chg_enabled = <0x1>; - pmu_init_adc_freq = <0x320>; - pmu_init_adcts_freq = <0x320>; - pmu_init_chg_pretime = <0x46>; - pmu_init_chg_csttime = <0x2d0>; - pmu_batt_cap_correct = <0x1>; - pmu_chg_end_on_en = <0x0>; - pmu_pwroff_vol = <0xce4>; - pmu_pwron_vol = <0xa28>; - pmu_powkey_off_delay_time = <0x0>; - pmu_pwrok_time = <0x40>; - pmu_reset_shutdown_en = <0x1>; - pmu_restvol_adjust_time = <0x3c>; - pmu_ocv_cou_adjust_time = <0x3c>; - pmu_vbusen_func = <0x1>; - pmu_reset = <0x0>; - pmu_IRQ_wakeup = <0x1>; - pmu_hot_shutdowm = <0x1>; - pmu_inshort = <0x0>; - pmu_bat_shutdown_ltf = <0xc80>; - pmu_bat_shutdown_htf = <0xed>; - status = "okay"; - pmu_id = <0x6>; - pmu_twi_addr = <0x34>; - pmu_twi_id = <0x1>; - pmu_irq_id = <0x40>; - pmu_chg_ic_temp = <0x0>; - pmu_battery_rdc = <0x58>; - pmu_battery_cap = <0x12c0>; - pmu_runtime_chgcur = <0x1c2>; - pmu_suspend_chgcur = <0x5dc>; - pmu_shutdown_chgcur = <0x5dc>; - pmu_init_chgvol = <0x1068>; - pmu_ac_vol = <0xfa0>; - pmu_ac_cur = <0xdac>; - pmu_usbpc_vol = <0x1130>; - pmu_usbpc_cur = <0x1f4>; - pmu_battery_warning_level1 = <0xf>; - pmu_battery_warning_level2 = <0x0>; - pmu_chgled_func = <0x0>; - pmu_chgled_type = <0x0>; - pmu_bat_para1 = <0x0>; - pmu_bat_para2 = <0x0>; - pmu_bat_para3 = <0x0>; - pmu_bat_para4 = <0x0>; - pmu_bat_para5 = <0x0>; - pmu_bat_para6 = <0x0>; - pmu_bat_para7 = <0x1>; - pmu_bat_para8 = <0x1>; - pmu_bat_para9 = <0x2>; - pmu_bat_para10 = <0x3>; - pmu_bat_para11 = <0x4>; - pmu_bat_para12 = <0xa>; - pmu_bat_para13 = <0x11>; - pmu_bat_para14 = <0x1a>; - pmu_bat_para15 = <0x29>; - pmu_bat_para16 = <0x2e>; - pmu_bat_para17 = <0x33>; - pmu_bat_para18 = <0x38>; - pmu_bat_para19 = <0x3b>; - pmu_bat_para20 = <0x41>; - pmu_bat_para21 = <0x45>; - pmu_bat_para22 = <0x4b>; - pmu_bat_para23 = <0x4f>; - pmu_bat_para24 = <0x53>; - pmu_bat_para25 = <0x59>; - pmu_bat_para26 = <0x5f>; - pmu_bat_para27 = <0x62>; - pmu_bat_para28 = <0x64>; - pmu_bat_para29 = <0x64>; - pmu_bat_para30 = <0x64>; - pmu_bat_para31 = <0x64>; - pmu_bat_para32 = <0x64>; - pmu_bat_temp_enable = <0x1>; - pmu_bat_charge_ltf = <0x8d5>; - pmu_bat_charge_htf = <0x184>; - pmu_bat_temp_para1 = <0x1d2a>; - pmu_bat_temp_para2 = <0x1180>; - pmu_bat_temp_para3 = <0xdbe>; - pmu_bat_temp_para4 = <0xae2>; - pmu_bat_temp_para5 = <0x8af>; - pmu_bat_temp_para6 = <0x6fc>; - pmu_bat_temp_para7 = <0x5a8>; - pmu_bat_temp_para8 = <0x3c9>; - pmu_bat_temp_para9 = <0x298>; - pmu_bat_temp_para10 = <0x1d2>; - pmu_bat_temp_para11 = <0x189>; - pmu_bat_temp_para12 = <0x14d>; - pmu_bat_temp_para13 = <0x11b>; - pmu_bat_temp_para14 = <0xf2>; - pmu_bat_temp_para15 = <0xb3>; - pmu_bat_temp_para16 = <0x86>; - pmu_powkey_off_time = <0x1770>; - pmu_powkey_off_func = <0x0>; - pmu_powkey_off_en = <0x1>; - pmu_powkey_long_time = <0x5dc>; - pmu_powkey_on_time = <0x3e8>; - power_start = <0x0>; - }; - - regu@0 { - compatible = "allwinner,pmu0_regu"; - regulator_count = <0x17>; - status = "okay"; - device_type = "pmu0_regu"; - regulator1 = "axp81x_dcdc1 none vcc-nand vcc-emmc vcc-sdc vcc-usb-30 vcc-io vcc-pd"; - regulator2 = "axp81x_dcdc2 none vdd-cpua"; - regulator3 = "axp81x_dcdc3 none"; - regulator4 = "axp81x_dcdc4 none"; - regulator5 = "axp81x_dcdc5 none vcc-dram"; - regulator6 = "axp81x_dcdc6 none vdd-sys"; - regulator7 = "axp81x_dcdc7 none"; - regulator8 = "axp81x_rtc none"; - regulator9 = "axp81x_aldo1 none vdd-csi-led iovdd-csi vcc-pe"; - regulator10 = "axp81x_aldo2 none vcc-pl"; - regulator11 = "axp81x_aldo3 none vcc-avcc vcc-pll"; - regulator12 = "axp81x_dldo1 none vcc-hdmi-33"; - regulator13 = "axp81x_dldo2 none vcc-mipi"; - regulator14 = "axp81x_dldo3 none avdd-csi"; - regulator15 = "axp81x_dldo4 none vcc-deviceio"; - regulator16 = "axp81x_eldo1 none vcc-cpvdd vcc-wifi-io vcc-pc vcc-pg"; - regulator17 = "axp81x_eldo2 none vcc-lcd-0"; - regulator18 = "axp81x_eldo3 none dvdd-csi-18"; - regulator19 = "axp81x_fldo1 none vcc-hsic-12"; - regulator20 = "axp81x_fldo2 none vdd-cpus"; - regulator21 = "axp81x_gpio0ldo none vcc-ctp"; - regulator22 = "axp81x_gpio1ldo none"; - regulator23 = "axp81x_dc1sw none vcc-lvds vcc-dsi-33"; - }; - - nand0@01c03000 { - compatible = "allwinner,sun50i-nand"; - device_type = "nand0"; - reg = <0x0 0x1c03000 0x0 0x1000>; - interrupts = <0x0 0x46 0x4>; - clocks = <0x4 0x80>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x83>; - nand0_regulator1 = "vcc-nand"; - nand0_regulator2 = "none"; - nand0_cache_level = <0x55aaaa55>; - nand0_flush_cache_num = <0x55aaaa55>; - nand0_capacity_level = <0x55aaaa55>; - nand0_id_number_ctl = <0x55aaaa55>; - nand0_print_level = <0x55aaaa55>; - nand0_p0 = <0x55aaaa55>; - nand0_p1 = <0x55aaaa55>; - nand0_p2 = <0x55aaaa55>; - nand0_p3 = <0x55aaaa55>; - status = "disabled"; - nand0_support_2ch = <0x0>; - pinctrl-0 = <0xab 0xac>; - }; - - thermal_sensor { - compatible = "allwinner,thermal_sensor"; - reg = <0x0 0x1c25000 0x0 0x400>; - interrupts = <0x0 0x1f 0x0>; - clocks = <0x6 0x84>; - sensor_num = <0x3>; - shut_temp = <0x78>; - status = "okay"; - - combine0 { - #thermal-sensor-cells = <0x1>; - combine_cnt = <0x3>; - combine_type = "max"; - combine_chn = <0x0 0x1 0x2>; - linux,phandle = <0x85>; - phandle = <0x85>; - }; - }; - - cpu_budget_cool { - compatible = "allwinner,budget_cooling"; - #cooling-cells = <0x2>; - status = "okay"; - state_cnt = <0xa>; - cluster_num = <0x1>; - state0 = <0x119400 0x4>; - state1 = <0x10d880 0x4>; - state2 = <0x101d00 0x4>; - state3 = <0xf6180 0x4>; - state4 = <0xea600 0x4>; - state5 = <0xdea80 0x4>; - state6 = <0xc7380 0x4>; - state7 = <0x9e340 0x4>; - state8 = <0x9e340 0x2>; - state9 = <0x9e340 0x1>; - linux,phandle = <0x87>; - phandle = <0x87>; - }; - - gpu_cooling { - compatible = "allwinner,gpu_cooling"; - reg = <0x0 0x0 0x0 0x0>; - #cooling-cells = <0x2>; - status = "okay"; - state_cnt = <0x3>; - state0 = <0x0>; - state1 = <0x168>; - state2 = <0x90>; - linux,phandle = <0x8c>; - phandle = <0x8c>; - }; - - thermal-zones { - - soc_thermal { - polling-delay-passive = <0x1f4>; - polling-delay = <0x7d0>; - thermal-sensors = <0x85 0x0>; - - trips { - - t0 { - temperature = <0x50>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x86>; - phandle = <0x86>; - }; - - t1 { - temperature = <0x55>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x88>; - phandle = <0x88>; - }; - - t2 { - temperature = <0x5a>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x89>; - phandle = <0x89>; - }; - - t3 { - temperature = <0x5f>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x8a>; - phandle = <0x8a>; - }; - - t4 { - temperature = <0x55>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x8b>; - phandle = <0x8b>; - }; - - t5 { - temperature = <0x5a>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x8d>; - phandle = <0x8d>; - }; - - t6 { - temperature = <0x6c>; - type = "critical"; - hysteresis = <0x0>; - }; - }; - - cooling-maps { - - bind0 { - contribution = <0x0>; - trip = <0x86>; - cooling-device = <0x87 0x1 0x1>; - }; - - bind1 { - contribution = <0x0>; - trip = <0x88>; - cooling-device = <0x87 0x2 0x2>; - }; - - bind2 { - contribution = <0x0>; - trip = <0x89>; - cooling-device = <0x87 0x3 0x6>; - }; - - bind3 { - contribution = <0x0>; - trip = <0x8a>; - cooling-device = <0x87 0x7 0x9>; - }; - - bind4 { - contribution = <0x0>; - trip = <0x8b>; - cooling-device = <0x8c 0x1 0x1>; - }; - - bind5 { - contribution = <0x0>; - trip = <0x8d>; - cooling-device = <0x8c 0x2 0x2>; - }; - }; - }; - }; - - keyboard { - compatible = "allwinner,keyboard_2000mv"; - reg = <0x0 0x1c21800 0x0 0x400>; - interrupts = <0x0 0x1e 0x0>; - status = "okay"; - key_cnt = <0x5>; - key1 = <0xf0 0x73>; - key2 = <0x1f4 0x72>; - key3 = <0x2bc 0x8b>; - key4 = <0x37a 0x1c>; - key5 = <0x7d0 0x66>; - }; - - eth@01c30000 { - compatible = "allwinner,sunxi-gmac"; - reg = <0x0 0x1c30000 0x0 0x10000 0x0 0x1c00000 0x0 0x30>; - pinctrl-names = "default"; - interrupts = <0x0 0x52 0x4>; - interrupt-names = "gmacirq"; - clocks = <0x8f>; - clock-names = "gmac"; - phy-mode = "rgmii"; - tx-delay = <0x3>; - rx-delay = <0x0>; - gmac_power1 = "axp81x_dc1sw:0"; - status = "okay"; - device_type = "gmac0"; - pinctrl-0 = <0x9e>; - gmac_power2; - gmac_power3; - }; - - product { - device_type = "product"; - version = "100"; - machine = "evb"; - }; - - platform { - device_type = "platform"; - eraseflag = <0x1>; - }; - - target { - device_type = "target"; - boot_clock = <0x3f0>; - storage_type = <0xffffffff>; - burn_key = <0x0>; - }; - - power_sply { - device_type = "power_sply"; - dcdc1_vol = <0xf4f24>; - dcdc2_vol = <0xf468c>; - dcdc6_vol = <0xf468c>; - aldo1_vol = <0xaf0>; - aldo2_vol = <0xf4948>; - aldo3_vol = <0xf4df8>; - dldo1_vol = <0xce4>; - dldo2_vol = <0xce4>; - dldo3_vol = <0xaf0>; - dldo4_vol = <0xf4f24>; - eldo1_vol = <0xf4948>; - eldo2_vol = <0x708>; - eldo3_vol = <0x708>; - fldo1_vol = <0x4b0>; - fldo2_vol = <0xf468c>; - gpio0_vol = <0xc1c>; - }; - - card_boot { - device_type = "card_boot"; - logical_start = <0xa000>; - sprite_gpio0; - }; - - pm_para { - device_type = "pm_para"; - standby_mode = <0x1>; - }; - - card0_boot_para { - device_type = "card0_boot_para"; - card_ctrl = <0x0>; - card_high_speed = <0x1>; - card_line = <0x4>; - pinctrl-0 = <0x99>; - }; - - card2_boot_para { - device_type = "card2_boot_para"; - sdc_io_1v8 = <0x1>; - card_ctrl = <0x2>; - card_high_speed = <0x1>; - card_line = <0x8>; - pinctrl-0 = <0x9a>; - sdc_ex_dly_used = <0x2>; - }; - - twi_para { - device_type = "twi_para"; - twi_port = <0x0>; - pinctrl-0 = <0x9b>; - }; - - uart_para { - device_type = "uart_para"; - uart_debug_port = <0x0>; - pinctrl-0 = <0x9c>; - }; - - jtag_para { - device_type = "jtag_para"; - jtag_enable = <0x1>; - pinctrl-0 = <0x9d>; - }; - - clock { - device_type = "clock"; - pll4 = <0x12c>; - pll6 = <0x258>; - pll8 = <0x168>; - pll9 = <0x129>; - pll10 = <0x108>; - }; - - rtp_para { - device_type = "rtp_para"; - rtp_used = <0x0>; - rtp_screen_size = <0x5>; - rtp_regidity_level = <0x5>; - rtp_press_threshold_enable = <0x0>; - rtp_press_threshold = <0x1f40>; - rtp_sensitive_level = <0xf>; - rtp_exchange_x_y_flag = <0x0>; - }; - - ctp { - device_type = "ctp"; - compatible = "allwinner,sun50i-ctp-para"; - status = "disabled"; - ctp_name = "gt911_DB"; - ctp_twi_id = <0x0>; - ctp_twi_addr = <0x40>; - ctp_screen_max_x = <0x400>; - ctp_screen_max_y = <0x258>; - ctp_revert_x_flag = <0x1>; - ctp_revert_y_flag = <0x1>; - ctp_exchange_x_y_flag = <0x0>; - ctp_int_port = <0x30 0x7 0x4 0x6 0xffffffff 0xffffffff 0xffffffff>; - ctp_wakeup = <0x30 0x7 0xb 0x1 0xffffffff 0xffffffff 0x1>; - ctp_power_ldo = "vcc-ctp"; - ctp_power_ldo_vol = <0xce4>; - ctp_power_io; - }; - - ctp_list { - device_type = "ctp_list"; - compatible = "allwinner,sun50i-ctp-list"; - status = "okay"; - gslX680new = <0x1>; - gt9xx_ts = <0x0>; - gt9xxf_ts = <0x1>; - gt9xxnew_ts = <0x0>; - gt82x = <0x1>; - zet622x = <0x1>; - aw5306_ts = <0x1>; - }; - - tkey_para { - device_type = "tkey_para"; - tkey_used = <0x0>; - tkey_twi_id; - tkey_twi_addr; - tkey_int; - }; - - motor_para { - device_type = "motor_para"; - motor_used = <0x0>; - motor_shake = <0x31 0xfffe 0x3 0x1 0xffffffff 0xffffffff 0x1>; - }; - - tvout_para { - device_type = "tvout_para"; - tvout_used; - tvout_channel_num; - tv_en; - }; - - tvin_para { - device_type = "tvin_para"; - tvin_used; - tvin_channel_num; - }; - - serial_feature { - device_type = "serial_feature"; - sn_filename = "sn.txt"; - }; - - gsensor { - device_type = "gsensor"; - compatible = "allwinner,sun50i-gsensor-para"; - status = "okay"; - gsensor_twi_id = <0x1>; - gsensor_twi_addr = <0x1d>; - gsensor_vcc_io = "vcc-deviceio"; - gsensor_vcc_io_val = <0xce4>; - gsensor_int1 = <0x30 0x7 0x5 0x6 0x1 0xffffffff 0xffffffff>; - gsensor_int2 = <0x30 0x7 0x6 0x6 0x1 0xffffffff 0xffffffff>; - }; - - gsensor_list { - device_type = "gsensor_list"; - compatible = "allwinner,sun50i-gsensor-list-para"; - gsensor_list__used = <0x1>; - lsm9ds0_acc_mag = <0x1>; - bma250 = <0x1>; - mma8452 = <0x1>; - mma7660 = <0x1>; - mma865x = <0x1>; - afa750 = <0x1>; - lis3de_acc = <0x1>; - lis3dh_acc = <0x1>; - kxtik = <0x1>; - dmard10 = <0x0>; - dmard06 = <0x1>; - mxc622x = <0x1>; - fxos8700 = <0x1>; - lsm303d = <0x0>; - sc7a30 = <0x1>; - }; - - 3g_para { - device_type = "3g_para"; - 3g_used = <0x0>; - 3g_usbc_num = <0x2>; - 3g_uart_num = <0x0>; - bb_vbat = <0x79 0xb 0x3 0x1 0xffffffff 0xffffffff 0x0>; - bb_host_wake = <0x79 0xc 0x0 0x1 0xffffffff 0xffffffff 0x0>; - bb_on = <0x79 0xc 0x1 0x1 0xffffffff 0xffffffff 0x0>; - bb_pwr_on = <0x79 0xc 0x3 0x1 0xffffffff 0xffffffff 0x0>; - bb_wake = <0x79 0xc 0x4 0x1 0xffffffff 0xffffffff 0x0>; - bb_rf_dis = <0x79 0xc 0x5 0x1 0xffffffff 0xffffffff 0x0>; - bb_rst = <0x79 0xc 0x6 0x1 0xffffffff 0xffffffff 0x0>; - 3g_int; - }; - - gyroscopesensor { - device_type = "gyroscopesensor"; - compatible = "allwinner,sun50i-gyr_sensors-para"; - status = "disabled"; - gy_twi_id = <0x2>; - gy_twi_addr = <0x6a>; - gy_int1 = <0x30 0x0 0xa 0x6 0x1 0xffffffff 0xffffffff>; - gy_int2; - }; - - gy_list { - device_type = "gy_list"; - compatible = "allwinner,sun50i-gyr_sensors-list-para"; - status = "disabled"; - lsm9ds0_gyr = <0x1>; - l3gd20_gyr = <0x0>; - bmg160_gyr = <0x1>; - }; - - lightsensor { - device_type = "lightsensor"; - compatible = "allwinner,sun50i-lsensors-para"; - status = "disabled"; - ls_twi_id = <0x2>; - ls_twi_addr = <0x23>; - ls_int = <0x30 0x0 0xc 0x6 0x1 0xffffffff 0xffffffff>; - }; - - ls_list { - device_type = "ls_list"; - compatible = "allwinner,sun50i-lsensors-list-para"; - status = "disabled"; - ltr_501als = <0x1>; - jsa1212 = <0x0>; - jsa1127 = <0x1>; - stk3x1x = <0x0>; - }; - - compasssensor { - device_type = "compasssensor"; - compatible = "allwinner,sun50i-compass-para"; - status = "disabled"; - compass_twi_id = <0x2>; - compass_twi_addr = <0xd>; - compass_int = <0x30 0x0 0xb 0x6 0x1 0xffffffff 0xffffffff>; - }; - - compass_list { - device_type = "compass_list"; - compatible = "allwinner,sun50i-compass-list-para"; - status = "disabled"; - lsm9ds0 = <0x1>; - lsm303d = <0x0>; - }; - - recovery_key { - device_type = "recovery_key"; - key_max = <0xc>; - key_min = <0xa>; - }; - - fastboot_key { - device_type = "fastboot_key"; - key_max = <0x6>; - key_min = <0x4>; - }; - }; - - aliases { - serial0 = "/soc@01c00000/uart@01c28000"; - serial1 = "/soc@01c00000/uart@01c28400"; - serial2 = "/soc@01c00000/uart@01c28800"; - serial3 = "/soc@01c00000/uart@01c28c00"; - serial4 = "/soc@01c00000/uart@01c29000"; - twi0 = "/soc@01c00000/twi@0x01c2ac00"; - twi1 = "/soc@01c00000/twi@0x01c2b000"; - twi2 = "/soc@01c00000/twi@0x01c2b400"; - spi0 = "/soc@01c00000/spi@01c68000"; - spi1 = "/soc@01c00000/spi@01c69000"; - global_timer0 = "/soc@01c00000/timer@1c20c00"; - cci0 = "/soc@01c00000/cci@0x01cb3000"; - csi_res0 = "/soc@01c00000/csi_res@0x01cb0000"; - vfe0 = "/soc@01c00000/vfe@0"; - mmc0 = "/soc@01c00000/sdmmc@01c0f000"; - mmc2 = "/soc@01c00000/sdmmc@01C11000"; - nand0 = "/soc@01c00000/nand0@01c03000"; - disp = "/soc@01c00000/disp@01000000"; - lcd0 = "/soc@01c00000/lcd0@01c0c000"; - hdmi = "/soc@01c00000/hdmi@01ee0000"; - pwm = "/soc@01c00000/pwm@01c21400"; - pwm0 = "/soc@01c00000/pwm0@01c21400"; - s_pwm = "/soc@01c00000/s_pwm@1f03800"; - spwm0 = "/soc@01c00000/spwm0@0x01f03800"; - boot_disp = "/soc@01c00000/boot_disp"; - }; - - chosen { - bootargs = "earlyprintk=sunxi-uart,0x01c28000 loglevel=8 initcall_debug=1 console=ttyS0 init=/init"; - linux,initrd-start = <0x0 0x0>; - linux,initrd-end = <0x0 0x0>; - }; - - cpus { - #address-cells = <0x2>; - #size-cells = <0x0>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x0>; - enable-method = "psci"; - cpufreq_tbl = <0x75300 0x927c0 0xafc80 0xc7380 0xdea80 0xea600 0xf6180 0x101d00 0x10d880 0x119400 0x124f80 0x148200>; - clock-latency = <0x1e8480>; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - cpu@1 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x1>; - enable-method = "psci"; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - cpu@2 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x2>; - enable-method = "psci"; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - cpu@3 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x3>; - enable-method = "psci"; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - idle-states { - entry-method = "arm,psci"; - - cpu-sleep-0 { - compatible = "arm,idle-state"; - arm,psci-suspend-param = <0x10000>; - entry-latency-us = <0x28>; - exit-latency-us = <0x64>; - min-residency-us = <0x96>; - linux,phandle = <0x90>; - phandle = <0x90>; - }; - - cluster-sleep-0 { - compatible = "arm,idle-state"; - arm,psci-suspend-param = <0x1010000>; - entry-latency-us = <0x1f4>; - exit-latency-us = <0x3e8>; - min-residency-us = <0x9c4>; - linux,phandle = <0x91>; - phandle = <0x91>; - }; - - sys-sleep-0 { - compatible = "arm,idle-state"; - arm,psci-suspend-param = <0x2010000>; - entry-latency-us = <0x3e8>; - exit-latency-us = <0x7d0>; - min-residency-us = <0x1194>; - linux,phandle = <0x92>; - phandle = <0x92>; - }; - }; - }; - - psci { - compatible = "arm,psci-0.2"; - method = "smc"; - psci_version = <0x84000000>; - cpu_suspend = <0xc4000001>; - cpu_off = <0x84000002>; - cpu_on = <0xc4000003>; - affinity_info = <0xc4000004>; - migrate = <0xc4000005>; - migrate_info_type = <0x84000006>; - migrate_info_up_cpu = <0xc4000007>; - system_off = <0x84000008>; - system_reset = <0x84000009>; - }; - - n_brom { - compatible = "allwinner,n-brom"; - reg = <0x0 0x0 0x0 0xc000>; - }; - - s_brom { - compatible = "allwinner,s-brom"; - reg = <0x0 0x0 0x0 0x10000>; - }; - - sram_a1 { - compatible = "allwinner,sram_a1"; - reg = <0x0 0x10000 0x0 0x8000>; - }; - - sram_a2 { - compatible = "allwinner,sram_a2"; - reg = <0x0 0x40000 0x0 0x14000>; - }; - - prcm { - compatible = "allwinner,prcm"; - reg = <0x0 0x1f01400 0x0 0x400>; - }; - - cpuscfg { - compatible = "allwinner,cpuscfg"; - reg = <0x0 0x1f01c00 0x0 0x400>; - }; - - ion { - compatible = "allwinner,sunxi-ion"; - - system_contig { - type = <0x1>; - }; - - cma { - type = <0x4>; - }; - - system { - type = <0x0>; - }; - }; - - dram { - compatible = "allwinner,dram"; - clocks = <0x93 0x94>; - clock-names = "pll_ddr0", "pll_ddr1"; - dram_clk = <0x2a0>; - dram_type = <0x3>; - dram_zq = <0x3b3bdd>; - dram_odt_en = <0x1>; - dram_para1 = <0x10e40400>; - dram_para2 = <0x4000000>; - dram_mr0 = <0x1c70>; - dram_mr1 = <0x40>; - dram_mr2 = <0x18>; - dram_mr3 = <0x0>; - dram_tpr0 = <0x48a192>; - dram_tpr1 = <0x1c2418d>; - dram_tpr2 = <0x76051>; - dram_tpr3 = <0x50005dc>; - dram_tpr4 = <0x0>; - dram_tpr5 = <0x0>; - dram_tpr6 = <0x0>; - dram_tpr7 = <0x2a066198>; - dram_tpr8 = <0x0>; - dram_tpr9 = <0x0>; - dram_tpr10 = <0x8808>; - dram_tpr11 = <0x40a60066>; - dram_tpr12 = <0x55550000>; - dram_tpr13 = <0x4000903>; - device_type = "dram"; - }; - - memory@40000000 { - device_type = "memory"; - reg = <0x0 0x41000000 0x0 0x3f000000>; - }; - - interrupt-controller@1c81000 { - compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; - #interrupt-cells = <0x3>; - #address-cells = <0x0>; - device_type = "gic"; - interrupt-controller; - reg = <0x0 0x1c81000 0x0 0x1000 0x0 0x1c82000 0x0 0x2000 0x0 0x1c84000 0x0 0x2000 0x0 0x1c86000 0x0 0x2000>; - interrupts = <0x1 0x9 0xf04>; - linux,phandle = <0x1>; - phandle = <0x1>; - }; - - sunxi-chipid@1c14200 { - compatible = "allwinner,sunxi-chipid"; - device_type = "chipid"; - reg = <0x0 0x1c14200 0x0 0x400>; - }; - - timer { - compatible = "arm,armv8-timer"; - interrupts = <0x1 0xd 0xff01 0x1 0xe 0xff01 0x1 0xb 0xff01 0x1 0xa 0xff01>; - clock-frequency = <0x16e3600>; - }; - - pmu { - compatible = "arm,armv8-pmuv3"; - interrupts = <0x0 0x78 0x4 0x0 0x79 0x4 0x0 0x7a 0x4 0x0 0x7b 0x4>; - }; - - dvfs_table { - compatible = "allwinner,dvfs_table"; - max_freq = <0x44aa2000>; - min_freq = <0x1c9c3800>; - lv_count = <0x8>; - lv1_freq = <0x44aa2000>; - lv1_volt = <0x514>; - lv2_freq = <0x41cdb400>; - lv2_volt = <0x4ec>; - lv3_freq = <0x3ef14800>; - lv3_volt = <0x4d8>; - lv4_freq = <0x3c14dc00>; - lv4_volt = <0x4b0>; - lv5_freq = <0x39387000>; - lv5_volt = <0x488>; - lv6_freq = <0x365c0400>; - lv6_volt = <0x460>; - lv7_freq = <0x30a32c00>; - lv7_volt = <0x438>; - lv8_freq = <0x269fb200>; - lv8_volt = <0x410>; - device_type = "dvfs_table"; - }; - - dramfreq { - compatible = "allwinner,sunxi-dramfreq"; - reg = <0x0 0x1c62000 0x0 0x1000 0x0 0x1c63000 0x0 0x1000 0x0 0x1c20000 0x0 0x800>; - clocks = <0x93 0x94 0x95>; - status = "okay"; - }; - - uboot { - }; - - gpu@0x01c40000 { - compatible = "arm,mali-400", "arm,mali-utgard"; - reg = <0x0 0x1c40000 0x0 0x10000>; - interrupts = <0x0 0x61 0x4 0x0 0x62 0x4 0x0 0x63 0x4 0x0 0x64 0x4 0x0 0x66 0x4 0x0 0x67 0x4>; - interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", "IRQPP1", "IRQPPMMU1"; - clocks = <0x96 0x97>; - device_type = "gpu_mali400_0"; - normal_freq = <0x198>; - scene_ctrl_status = <0x0>; - temp_ctrl_status = <0x1>; - }; - - wlan { - compatible = "allwinner,sunxi-wlan"; - wlan_io_regulator = "vcc-wifi-io"; - wlan_busnum = <0x1>; - status = "okay"; - device_type = "wlan"; - clocks; - wlan_power; - wlan_regon = <0x79 0xb 0x2 0x1 0xffffffff 0xffffffff 0x0>; - wlan_hostwake = <0x79 0xb 0x3 0x6 0xffffffff 0xffffffff 0x0>; - efuse_map_path = "wifi_efuse_8189e_for_MB1019Q5.map"; - }; - - bt { - compatible = "allwinner,sunxi-bt"; - bt_io_regulator = "vcc-wifi-io"; - status = "okay"; - device_type = "bt"; - clocks; - bt_power; - bt_rst_n = <0x79 0xb 0x4 0x1 0xffffffff 0xffffffff 0x0>; - }; - - btlpm { - compatible = "allwinner,sunxi-btlpm"; - uart_index = <0x1>; - status = "okay"; - device_type = "btlpm"; - bt_wake = <0x79 0xb 0x6 0x1 0xffffffff 0xffffffff 0x1>; - bt_hostwake = <0x79 0xb 0x5 0x6 0xffffffff 0xffffffff 0x0>; - }; -}; diff --git a/blobs/pine64noplus.dts b/blobs/pine64noplus.dts deleted file mode 100644 index 850e8ad9..00000000 --- a/blobs/pine64noplus.dts +++ /dev/null @@ -1,3441 +0,0 @@ -/dts-v1/; - -/memreserve/ 0x0000000045000000 0x0000000000200000; -/memreserve/ 0x0000000041010000 0x0000000000010000; -/memreserve/ 0x0000000041020000 0x0000000000000800; -/memreserve/ 0x0000000040100000 0x0000000000004000; -/memreserve/ 0x0000000040104000 0x0000000000001000; -/memreserve/ 0x0000000040105000 0x0000000000001000; -/ { - model = "Pine64"; - compatible = "pine64,pine64"; - interrupt-parent = <0x1>; - #address-cells = <0x2>; - #size-cells = <0x2>; - - clocks { - compatible = "allwinner,sunxi-clk-init"; - device_type = "clocks"; - #address-cells = <0x2>; - #size-cells = <0x2>; - ranges; - reg = <0x0 0x1c20000 0x0 0x320 0x0 0x1f01400 0x0 0xb0 0x0 0x1f00060 0x0 0x4>; - - losc { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-clock"; - clock-frequency = <0x8000>; - clock-output-names = "losc"; - linux,phandle = <0xc>; - phandle = <0xc>; - }; - - iosc { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-clock"; - clock-frequency = <0xf42400>; - clock-output-names = "iosc"; - linux,phandle = <0xd>; - phandle = <0xd>; - }; - - hosc { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-clock"; - clock-frequency = <0x16e3600>; - clock-output-names = "hosc"; - linux,phandle = <0x6>; - phandle = <0x6>; - }; - - pll_cpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_cpu"; - }; - - pll_audio { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x1770000>; - clock-output-names = "pll_audio"; - linux,phandle = <0x2>; - phandle = <0x2>; - }; - - pll_video0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "pll_video0"; - linux,phandle = <0x3>; - phandle = <0x3>; - }; - - pll_ve { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_ve"; - linux,phandle = <0x16>; - phandle = <0x16>; - }; - - pll_ddr0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_ddr0"; - linux,phandle = <0x93>; - phandle = <0x93>; - }; - - pll_periph0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_periph0"; - linux,phandle = <0x4>; - phandle = <0x4>; - }; - - pll_periph1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_periph1"; - linux,phandle = <0x5>; - phandle = <0x5>; - }; - - pll_video1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "pll_video1"; - }; - - pll_gpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_gpu"; - linux,phandle = <0x96>; - phandle = <0x96>; - }; - - pll_mipi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_mipi"; - linux,phandle = <0x8>; - phandle = <0x8>; - }; - - pll_hsic { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_hsic"; - linux,phandle = <0x3a>; - phandle = <0x3a>; - }; - - pll_de { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "pll_de"; - linux,phandle = <0x7>; - phandle = <0x7>; - }; - - pll_ddr1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_ddr1"; - linux,phandle = <0x94>; - phandle = <0x94>; - }; - - pll_audiox8 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x2>; - clock-mult = <0x8>; - clock-div = <0x1>; - clock-output-names = "pll_audiox8"; - }; - - pll_audiox4 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x2>; - clock-mult = <0x8>; - clock-div = <0x2>; - clock-output-names = "pll_audiox4"; - linux,phandle = <0x3c>; - phandle = <0x3c>; - }; - - pll_audiox2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x2>; - clock-mult = <0x8>; - clock-div = <0x4>; - clock-output-names = "pll_audiox2"; - }; - - pll_video0x2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x3>; - clock-mult = <0x2>; - clock-div = <0x1>; - clock-output-names = "pll_video0x2"; - }; - - pll_periph0x2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x4>; - clock-mult = <0x2>; - clock-div = <0x1>; - clock-output-names = "pll_periph0x2"; - linux,phandle = <0x7b>; - phandle = <0x7b>; - }; - - pll_periph1x2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x5>; - clock-mult = <0x2>; - clock-div = <0x1>; - clock-output-names = "pll_periph1x2"; - linux,phandle = <0x5a>; - phandle = <0x5a>; - }; - - pll_periph0d2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x4>; - clock-mult = <0x1>; - clock-div = <0x2>; - clock-output-names = "pll_periph0d2"; - }; - - hoscd2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x6>; - clock-mult = <0x1>; - clock-div = <0x2>; - clock-output-names = "hoscd2"; - }; - - cpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "cpu"; - }; - - cpuapb { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "cpuapb"; - }; - - axi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "axi"; - }; - - pll_periphahb0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "pll_periphahb0"; - }; - - ahb1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ahb1"; - linux,phandle = <0x95>; - phandle = <0x95>; - }; - - apb1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "apb1"; - }; - - apb2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "apb2"; - linux,phandle = <0x7e>; - phandle = <0x7e>; - }; - - ahb2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ahb2"; - }; - - ths { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ths"; - linux,phandle = <0x84>; - phandle = <0x84>; - }; - - nand { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "nand"; - linux,phandle = <0x80>; - phandle = <0x80>; - }; - - sdmmc0_mod { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc0_mod"; - linux,phandle = <0x60>; - phandle = <0x60>; - }; - - sdmmc0_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc0_bus"; - linux,phandle = <0x61>; - phandle = <0x61>; - }; - - sdmmc0_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc0_rst"; - linux,phandle = <0x62>; - phandle = <0x62>; - }; - - sdmmc1_mod { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc1_mod"; - linux,phandle = <0x65>; - phandle = <0x65>; - }; - - sdmmc1_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc1_bus"; - linux,phandle = <0x66>; - phandle = <0x66>; - }; - - sdmmc1_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc1_rst"; - linux,phandle = <0x67>; - phandle = <0x67>; - }; - - sdmmc2_mod { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc2_mod"; - linux,phandle = <0x5b>; - phandle = <0x5b>; - }; - - sdmmc2_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc2_bus"; - linux,phandle = <0x5c>; - phandle = <0x5c>; - }; - - sdmmc2_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc2_rst"; - linux,phandle = <0x5d>; - phandle = <0x5d>; - }; - - ts { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ts"; - }; - - ce { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ce"; - linux,phandle = <0x7a>; - phandle = <0x7a>; - }; - - spi0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "spi0"; - linux,phandle = <0x52>; - phandle = <0x52>; - }; - - spi1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "spi1"; - linux,phandle = <0x56>; - phandle = <0x56>; - }; - - i2s0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "i2s0"; - linux,phandle = <0x42>; - phandle = <0x42>; - }; - - i2s1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "i2s1"; - linux,phandle = <0x47>; - phandle = <0x47>; - }; - - i2s2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "i2s2"; - linux,phandle = <0x48>; - phandle = <0x48>; - }; - - spdif { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "spdif"; - linux,phandle = <0x49>; - phandle = <0x49>; - }; - - usbphy0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbphy0"; - linux,phandle = <0x32>; - phandle = <0x32>; - }; - - usbphy1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbphy1"; - linux,phandle = <0x36>; - phandle = <0x36>; - }; - - usbhsic { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbhsic"; - linux,phandle = <0x38>; - phandle = <0x38>; - }; - - usbhsic12m { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbhsic12m"; - linux,phandle = <0x39>; - phandle = <0x39>; - }; - - usbohci1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbohci1"; - linux,phandle = <0x3b>; - phandle = <0x3b>; - }; - - usbohci0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbohci0"; - linux,phandle = <0x35>; - phandle = <0x35>; - }; - - de { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x7>; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "de"; - linux,phandle = <0x6a>; - phandle = <0x6a>; - }; - - tcon0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x8>; - clock-output-names = "tcon0"; - linux,phandle = <0x6b>; - phandle = <0x6b>; - }; - - tcon1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x3>; - clock-output-names = "tcon1"; - linux,phandle = <0x6e>; - phandle = <0x6e>; - }; - - deinterlace { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "deinterlace"; - linux,phandle = <0x7c>; - phandle = <0x7c>; - }; - - csi_s { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "csi_s"; - linux,phandle = <0x73>; - phandle = <0x73>; - }; - - csi_m { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "csi_m"; - linux,phandle = <0x74>; - phandle = <0x74>; - }; - - csi_misc { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "csi_misc"; - linux,phandle = <0x75>; - phandle = <0x75>; - }; - - ve { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ve"; - linux,phandle = <0x17>; - phandle = <0x17>; - }; - - adda { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "adda"; - linux,phandle = <0x41>; - phandle = <0x41>; - }; - - addax4 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "addax4"; - }; - - avs { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "avs"; - }; - - hdmi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x3>; - clock-output-names = "hdmi"; - linux,phandle = <0x6f>; - phandle = <0x6f>; - }; - - hdmi_slow { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "hdmi_slow"; - linux,phandle = <0x70>; - phandle = <0x70>; - }; - - mbus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "mbus"; - }; - - mipidsi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "mipidsi"; - linux,phandle = <0x6d>; - phandle = <0x6d>; - }; - - gpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "gpu"; - linux,phandle = <0x97>; - phandle = <0x97>; - }; - - usbehci_16 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbohci_16"; - }; - - usbehci1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbehci1"; - linux,phandle = <0x37>; - phandle = <0x37>; - }; - - usbehci0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbehci0"; - linux,phandle = <0x34>; - phandle = <0x34>; - }; - - usbotg { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbotg"; - linux,phandle = <0x33>; - phandle = <0x33>; - }; - - gmac { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "gmac"; - linux,phandle = <0x8f>; - phandle = <0x8f>; - }; - - sdram { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdram"; - }; - - dma { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "dma"; - linux,phandle = <0xb>; - phandle = <0xb>; - }; - - hwspinlock_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "hwspinlock_rst"; - linux,phandle = <0xf>; - phandle = <0xf>; - }; - - hwspinlock_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "hwspinlock_bus"; - linux,phandle = <0x10>; - phandle = <0x10>; - }; - - msgbox { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "msgbox"; - linux,phandle = <0xe>; - phandle = <0xe>; - }; - - lvds { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "lvds"; - linux,phandle = <0x6c>; - phandle = <0x6c>; - }; - - uart0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart0"; - linux,phandle = <0x18>; - phandle = <0x18>; - }; - - uart1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart1"; - linux,phandle = <0x1b>; - phandle = <0x1b>; - }; - - uart2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart2"; - linux,phandle = <0x1e>; - phandle = <0x1e>; - }; - - uart3 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart3"; - linux,phandle = <0x21>; - phandle = <0x21>; - }; - - uart4 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart4"; - linux,phandle = <0x24>; - phandle = <0x24>; - }; - - scr { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "scr"; - linux,phandle = <0x7d>; - phandle = <0x7d>; - }; - - twi0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi0"; - linux,phandle = <0x27>; - phandle = <0x27>; - }; - - twi1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi1"; - linux,phandle = <0x2a>; - phandle = <0x2a>; - }; - - twi2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi2"; - linux,phandle = <0x2d>; - phandle = <0x2d>; - }; - - twi3 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi3"; - }; - - pio { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "pio"; - linux,phandle = <0xa>; - phandle = <0xa>; - }; - - cpurcir { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurcir"; - linux,phandle = <0x12>; - phandle = <0x12>; - }; - - cpurpio { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurpio"; - linux,phandle = <0x9>; - phandle = <0x9>; - }; - - cpurpll_peri0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurpll_peri0"; - }; - - cpurcpus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurcpus"; - }; - - cpurahbs { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurahbs"; - }; - - cpurapbs { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurapbs"; - }; - - losc_out { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "losc_out"; - linux,phandle = <0x98>; - phandle = <0x98>; - }; - }; - - soc@01c00000 { - compatible = "simple-bus"; - #address-cells = <0x2>; - #size-cells = <0x2>; - ranges; - device_type = "soc"; - - pinctrl@01f02c00 { - compatible = "allwinner,sun50i-r-pinctrl"; - reg = <0x0 0x1f02c00 0x0 0x400>; - interrupts = <0x0 0x2d 0x4>; - clocks = <0x9>; - device_type = "r_pio"; - gpio-controller; - interrupt-controller; - #interrupt-cells = <0x2>; - #size-cells = <0x0>; - #gpio-cells = <0x6>; - linux,phandle = <0x79>; - phandle = <0x79>; - - s_cir0@0 { - allwinner,pins = "PL11"; - allwinner,function = "s_cir0"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x2>; - allwinner,pull = <0x1>; - linux,phandle = <0x11>; - phandle = <0x11>; - }; - - spwm0@0 { - linux,phandle = <0xaf>; - phandle = <0xaf>; - allwinner,pins = "PL10"; - allwinner,function = "spwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spwm0@1 { - linux,phandle = <0xb0>; - phandle = <0xb0>; - allwinner,pins = "PL10"; - allwinner,function = "spwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x7>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - s_uart0@0 { - linux,phandle = <0xb6>; - phandle = <0xb6>; - allwinner,pins = "PL2", "PL3"; - allwinner,function = "s_uart0"; - allwinner,pname = "s_uart0_tx", "s_uart0_rx"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - s_rsb0@0 { - linux,phandle = <0xb7>; - phandle = <0xb7>; - allwinner,pins = "PL0", "PL1"; - allwinner,function = "s_rsb0"; - allwinner,pname = "s_rsb0_sck", "s_rsb0_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - s_jtag0@0 { - linux,phandle = <0xb8>; - phandle = <0xb8>; - allwinner,pins = "PL4", "PL5", "PL6", "PL7"; - allwinner,function = "s_jtag0"; - allwinner,pname = "s_jtag0_tms", "s_jtag0_tck", "s_jtag0_tdo", "s_jtag0_tdi"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - }; - - pinctrl@01c20800 { - compatible = "allwinner,sun50i-pinctrl"; - reg = <0x0 0x1c20800 0x0 0x400>; - interrupts = <0x0 0xb 0x4 0x0 0x11 0x4 0x0 0x15 0x4>; - device_type = "pio"; - clocks = <0xa>; - gpio-controller; - interrupt-controller; - #interrupt-cells = <0x2>; - #size-cells = <0x0>; - #gpio-cells = <0x6>; - linux,phandle = <0x30>; - phandle = <0x30>; - - uart0@1 { - allwinner,pins = "PB8", "PB9"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x1a>; - phandle = <0x1a>; - }; - - uart1@1 { - allwinner,pins = "PG6", "PG7", "PG8", "PG9"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x1d>; - phandle = <0x1d>; - }; - - uart2@1 { - allwinner,pins = "PB0", "PB1", "PB2", "PB3"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x20>; - phandle = <0x20>; - }; - - uart3@1 { - allwinner,pins = "PH4", "PH5", "PH6", "PH7"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x23>; - phandle = <0x23>; - }; - - uart4@1 { - allwinner,pins = "PD2", "PD3", "PD4", "PD5"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x26>; - phandle = <0x26>; - }; - - twi0@1 { - allwinner,pins = "PH0", "PH1"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x29>; - phandle = <0x29>; - }; - - twi1@1 { - allwinner,pins = "PH2", "PH3"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x2c>; - phandle = <0x2c>; - }; - - twi2@1 { - allwinner,pins = "PE14", "PE15"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x2f>; - phandle = <0x2f>; - }; - - spi0@2 { - allwinner,pins = "PC3", "PC2", "PC0", "PC1"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x55>; - phandle = <0x55>; - }; - - spi1@2 { - allwinner,pins = "PD0", "PD1", "PD2", "PD3"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x59>; - phandle = <0x59>; - }; - - sdc0@1 { - allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x64>; - phandle = <0x64>; - }; - - sdc1@1 { - allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x69>; - phandle = <0x69>; - }; - - sdc2@1 { - allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x5f>; - phandle = <0x5f>; - }; - - daudio0@0 { - allwinner,pins = "PB6", "PB3", "PB4", "PB5", "PB7"; - allwinner,function = "pcm0"; - allwinner,muxsel = <0x3>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x43>; - phandle = <0x43>; - }; - - daudio0_sleep@0 { - allwinner,pins = "PB6", "PB3", "PB4", "PB5", "PB7"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x44>; - phandle = <0x44>; - }; - - daudio1@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "pcm1"; - allwinner,muxsel = <0x3>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x45>; - phandle = <0x45>; - }; - - daudio1_sleep@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x46>; - phandle = <0x46>; - }; - - aif3@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "aif3"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x3e>; - phandle = <0x3e>; - }; - - aif2_sleep@0 { - allwinner,pins = "PB6", "PB4", "PB5", "PB7"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x3f>; - phandle = <0x3f>; - }; - - aif3_sleep@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x40>; - phandle = <0x40>; - }; - - spdif@0 { - allwinner,pins = "PH8"; - allwinner,function = "spdif0"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x4a>; - phandle = <0x4a>; - }; - - spdif_sleep@0 { - allwinner,pins = "PH8"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x4b>; - phandle = <0x4b>; - }; - - csi0_sleep@0 { - allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13"; - allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7", "csi0_sck", "csi0_sda"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - allwinner,data = <0x0>; - linux,phandle = <0x77>; - phandle = <0x77>; - }; - - smartcard@0 { - allwinner,pins = "PB1", "PB4", "PB5", "PB6", "PB7"; - allwinner,function = "sim0"; - allwinner,muxsel = <0x5>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x7f>; - phandle = <0x7f>; - }; - - nand0@2 { - allwinner,pins = "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PC18"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x83>; - phandle = <0x83>; - }; - - card0_boot_para@0 { - linux,phandle = <0x99>; - phandle = <0x99>; - allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - allwinner,function = "card0_boot_para"; - allwinner,pname = "sdc_d1", "sdc_d0", "sdc_clk", "sdc_cmd", "sdc_d3", "sdc_d2"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - card2_boot_para@0 { - linux,phandle = <0x9a>; - phandle = <0x9a>; - allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "card2_boot_para"; - allwinner,pname = "sdc_ds", "sdc_clk", "sdc_cmd", "sdc_d0", "sdc_d1", "sdc_d2", "sdc_d3", "sdc_d4", "sdc_d5", "sdc_d6", "sdc_d7", "sdc_emmc_rst"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - twi_para@0 { - linux,phandle = <0x9b>; - phandle = <0x9b>; - allwinner,pins = "PH0", "PH1"; - allwinner,function = "twi_para"; - allwinner,pname = "twi_scl", "twi_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart_para@0 { - linux,phandle = <0x9c>; - phandle = <0x9c>; - allwinner,pins = "PB8", "PB9"; - allwinner,function = "uart_para"; - allwinner,pname = "uart_debug_tx", "uart_debug_rx"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - jtag_para@0 { - linux,phandle = <0x9d>; - phandle = <0x9d>; - allwinner,pins = "PB0", "PB1", "PB2", "PB3"; - allwinner,function = "jtag_para"; - allwinner,pname = "jtag_ms", "jtag_ck", "jtag_do", "jtag_di"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - gmac0@0 { - linux,phandle = <0x9e>; - phandle = <0x9e>; - allwinner,pins = "PD18", "PD17", "PD19", "PD20", "PD11", "PD10", "PD13", "PD22", "PD23"; - allwinner,function = "gmac0"; - allwinner,pname = "gmac_txd0", "gmac_txd1", "gmac_txclk", "gmac_txen", "gmac_rxd0", "gmac_rxd1", "gmac_rxdv", "gmac_mdc", "gmac_mdio"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - twi0@0 { - linux,phandle = <0x9f>; - phandle = <0x9f>; - allwinner,pins = "PH0", "PH1"; - allwinner,function = "twi0"; - allwinner,pname = "twi0_scl", "twi0_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - twi1@0 { - linux,phandle = <0xa0>; - phandle = <0xa0>; - allwinner,pins = "PH2", "PH3"; - allwinner,function = "twi1"; - allwinner,pname = "twi1_scl", "twi1_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - twi2@0 { - linux,phandle = <0xa1>; - phandle = <0xa1>; - allwinner,pins = "PE14", "PE15"; - allwinner,function = "twi2"; - allwinner,pname = "twi2_scl", "twi2_sda"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart0@0 { - linux,phandle = <0xa2>; - phandle = <0xa2>; - allwinner,pins = "PB8", "PB9"; - allwinner,function = "uart0"; - allwinner,pname = "uart0_tx", "uart0_rx"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart1@0 { - linux,phandle = <0xa3>; - phandle = <0xa3>; - allwinner,pins = "PG6", "PG7", "PG8", "PG9"; - allwinner,function = "uart1"; - allwinner,pname = "uart1_tx", "uart1_rx", "uart1_rts", "uart1_cts"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart2@0 { - linux,phandle = <0xa4>; - phandle = <0xa4>; - allwinner,pins = "PB0", "PB1", "PB2", "PB3"; - allwinner,function = "uart2"; - allwinner,pname = "uart2_tx", "uart2_rx", "uart2_rts", "uart2_cts"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart3@0 { - linux,phandle = <0xa5>; - phandle = <0xa5>; - allwinner,pins = "PD0", "PD1"; - allwinner,function = "uart3"; - allwinner,pname = "uart3_tx", "uart3_rx"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart4@0 { - linux,phandle = <0xa6>; - phandle = <0xa6>; - allwinner,pins = "PD2", "PD3", "PD4", "PD5"; - allwinner,function = "uart4"; - allwinner,pname = "uart4_tx", "uart4_rx", "uart4_rts", "uart4_cts"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi0@0 { - linux,phandle = <0xa7>; - phandle = <0xa7>; - allwinner,pins = "PC3"; - allwinner,function = "spi0"; - allwinner,pname = "spi0_cs0"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi0@1 { - linux,phandle = <0xa8>; - phandle = <0xa8>; - allwinner,pins = "PC2", "PC0", "PC1"; - allwinner,function = "spi0"; - allwinner,pname = "spi0_sclk", "spi0_mosi", "spi0_miso"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi1@0 { - linux,phandle = <0xa9>; - phandle = <0xa9>; - allwinner,pins = "PD0"; - allwinner,function = "spi1"; - allwinner,pname = "spi1_cs0"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi1@1 { - linux,phandle = <0xaa>; - phandle = <0xaa>; - allwinner,pins = "PD1", "PD2", "PD3"; - allwinner,function = "spi1"; - allwinner,pname = "spi1_sclk", "spi1_mosi", "spi1_miso"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - nand0@0 { - linux,phandle = <0xab>; - phandle = <0xab>; - allwinner,pins = "PC0", "PC1", "PC2", "PC5", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "nand0"; - allwinner,pname = "nand0_we", "nand0_ale", "nand0_cle", "nand0_nre", "nand0_d0", "nand0_d1", "nand0_d2", "nand0_d3", "nand0_d4", "nand0_d5", "nand0_d6", "nand0_d7", "nand0_ndqs"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x0>; - allwinner,drive = <0x1>; - allwinner,data = <0xffffffff>; - }; - - nand0@1 { - linux,phandle = <0xac>; - phandle = <0xac>; - allwinner,pins = "PC3", "PC4", "PC6", "PC7", "PC17", "PC18"; - allwinner,function = "nand0"; - allwinner,pname = "nand0_ce1", "nand0_ce0", "nand0_rb0", "nand0_rb1", "nand0_ce2", "nand0_ce3"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x1>; - allwinner,data = <0xffffffff>; - }; - - pwm0@0 { - linux,phandle = <0xad>; - phandle = <0xad>; - allwinner,pins = "PD22"; - allwinner,function = "pwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - pwm0@1 { - linux,phandle = <0xae>; - phandle = <0xae>; - allwinner,pins = "PD22"; - allwinner,function = "pwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x7>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - csi0@0 { - linux,phandle = <0xb1>; - phandle = <0xb1>; - allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13"; - allwinner,function = "csi0"; - allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7", "csi0_sck", "csi0_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - sdc0@0 { - linux,phandle = <0xb2>; - phandle = <0xb2>; - allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - allwinner,function = "sdc0"; - allwinner,pname = "sdc0_d1", "sdc0_d0", "sdc0_clk", "sdc0_cmd", "sdc0_d3", "sdc0_d2"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - sdc1@0 { - linux,phandle = <0xb3>; - phandle = <0xb3>; - allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; - allwinner,function = "sdc1"; - allwinner,pname = "sdc1_clk", "sdc1_cmd", "sdc1_d0", "sdc1_d1", "sdc1_d2", "sdc1_d3"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - sdc2@0 { - linux,phandle = <0xb4>; - phandle = <0xb4>; - allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "sdc2"; - allwinner,pname = "sdc2_ds", "sdc2_clk", "sdc2_cmd", "sdc2_d0", "sdc2_d1", "sdc2_d2", "sdc2_d3", "sdc2_d4", "sdc2_d5", "sdc2_d6", "sdc2_d7", "sdc2_emmc_rst"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - codec@0 { - linux,phandle = <0xb5>; - phandle = <0xb5>; - allwinner,pins = "PH7"; - allwinner,function = "codec"; - allwinner,pname = "gpio-spk"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - Vdevice@0 { - linux,phandle = <0xb9>; - phandle = <0xb9>; - allwinner,pins = "PB1", "PB2"; - allwinner,function = "Vdevice"; - allwinner,pname = "Vdevice_0", "Vdevice_1"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - w1_pin@0 { - linux,phandle = <0xba>; - phandle = <0xba>; - allwinner,pins = "PC8"; - allwinner,function = "gpio_in"; - allwinner,pname = "w1"; - allwinner,muxsel = <0x0>; - allwinner,pull = <0x1>; - allwinner,drive = <0x0>; - allwinner,data = <0xffffffff>; - }; - }; - - pinctrl@0 { - compatible = "allwinner,axp-pinctrl"; - gpio-controller; - #size-cells = <0x0>; - #gpio-cells = <0x6>; - device_type = "axp_pio"; - linux,phandle = <0x31>; - phandle = <0x31>; - }; - - dma-controller@01c02000 { - compatible = "allwinner,sun50i-dma"; - reg = <0x0 0x1c02000 0x0 0x1000>; - interrupts = <0x0 0x32 0x4>; - clocks = <0xb>; - #dma-cells = <0x1>; - }; - - mbus-controller@01c62000 { - compatible = "allwinner,sun50i-mbus"; - reg = <0x0 0x1c62000 0x0 0x110>; - #mbus-cells = <0x1>; - }; - - arisc { - compatible = "allwinner,sunxi-arisc"; - #address-cells = <0x2>; - #size-cells = <0x2>; - clocks = <0xc 0xd 0x6 0x4>; - clock-names = "losc", "iosc", "hosc", "pll_periph0"; - powchk_used = <0x0>; - power_reg = <0x2309621>; - system_power = <0x32>; - }; - - arisc_space { - compatible = "allwinner,arisc_space"; - space1 = <0x40000 0x0 0x14000>; - space2 = <0x40100000 0x18000 0x4000>; - space3 = <0x40104000 0x0 0x1000>; - space4 = <0x40105000 0x0 0x1000>; - }; - - standby_space { - compatible = "allwinner,standby_space"; - space1 = <0x41020000 0x0 0x800>; - }; - - msgbox@1c17000 { - compatible = "allwinner,msgbox"; - clocks = <0xe>; - clock-names = "clk_msgbox"; - reg = <0x0 0x1c17000 0x0 0x1000>; - interrupts = <0x0 0x31 0x1>; - status = "okay"; - }; - - hwspinlock@1c18000 { - compatible = "allwinner,sunxi-hwspinlock"; - clocks = <0xf 0x10>; - clock-names = "clk_hwspinlock_rst", "clk_hwspinlock_bus"; - reg = <0x0 0x1c18000 0x0 0x1000>; - status = "okay"; - num-locks = <0x8>; - }; - - s_cir@1f02000 { - compatible = "allwinner,s_cir"; - reg = <0x0 0x1f02000 0x0 0x400>; - interrupts = <0x0 0x25 0x4>; - pinctrl-names = "default"; - pinctrl-0 = <0x11>; - clocks = <0x6 0x12>; - supply = "vcc-pl"; - ir_power_key_code = <0x4d>; - ir_addr_code = <0x4040>; - status = "okay"; - device_type = "s_cir0"; - }; - - s_uart@1f02800 { - compatible = "allwinner,s_uart"; - reg = <0x0 0x1f02800 0x0 0x400>; - interrupts = <0x0 0x26 0x4>; - pinctrl-names = "default"; - status = "okay"; - device_type = "s_uart0"; - pinctrl-0 = <0xb6>; - }; - - s_rsb@1f03400 { - compatible = "allwinner,s_rsb"; - reg = <0x0 0x1f03400 0x0 0x400>; - interrupts = <0x0 0x27 0x4>; - pinctrl-names = "default"; - status = "okay"; - device_type = "s_rsb0"; - pinctrl-0 = <0xb7>; - }; - - s_jtag0 { - compatible = "allwinner,s_jtag"; - pinctrl-names = "default"; - status = "disabled"; - device_type = "s_jtag0"; - pinctrl-0 = <0xb8>; - }; - - timer@1c20c00 { - compatible = "allwinner,sunxi-timer"; - device_type = "timer"; - reg = <0x0 0x1c20c00 0x0 0x90>; - interrupts = <0x0 0x12 0x1>; - clock-frequency = <0x16e3600>; - timer-prescale = <0x10>; - }; - - rtc@01f00000 { - compatible = "allwinner,sun50i-rtc"; - device_type = "rtc"; - reg = <0x0 0x1f00000 0x0 0x218>; - interrupts = <0x0 0x28 0x4>; - gpr_offset = <0x100>; - gpr_len = <0x4>; - }; - - ve@01c0e000 { - compatible = "allwinner,sunxi-cedar-ve"; - reg = <0x0 0x1c0e000 0x0 0x1000 0x0 0x1c00000 0x0 0x10 0x0 0x1c20000 0x0 0x800>; - interrupts = <0x0 0x3a 0x4>; - clocks = <0x16 0x17>; - }; - - uart@01c28000 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart0"; - reg = <0x0 0x1c28000 0x0 0x400>; - interrupts = <0x0 0x0 0x4>; - clocks = <0x18>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x1a>; - uart0_port = <0x0>; - uart0_type = <0x2>; - status = "okay"; - pinctrl-0 = <0xa2>; - }; - - uart@01c28400 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart1"; - reg = <0x0 0x1c28400 0x0 0x400>; - interrupts = <0x0 0x1 0x4>; - clocks = <0x1b>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x1d>; - uart1_port = <0x1>; - uart1_type = <0x4>; - status = "okay"; - pinctrl-0 = <0xa3>; - }; - - uart@01c28800 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart2"; - reg = <0x0 0x1c28800 0x0 0x400>; - interrupts = <0x0 0x2 0x4>; - clocks = <0x1e>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x20>; - uart2_port = <0x2>; - uart2_type = <0x4>; - status = "okay"; - pinctrl-0 = <0xa4>; - }; - - uart@01c28c00 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart3"; - reg = <0x0 0x1c28c00 0x0 0x400>; - interrupts = <0x0 0x3 0x4>; - clocks = <0x21>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x23>; - uart3_port = <0x3>; - uart3_type = <0x4>; - status = "okay"; - pinctrl-0 = <0xa5>; - }; - - uart@01c29000 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart4"; - reg = <0x0 0x1c29000 0x0 0x400>; - interrupts = <0x0 0x4 0x4>; - clocks = <0x24>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x26>; - uart4_port = <0x4>; - uart4_type = <0x4>; - status = "okay"; - pinctrl-0 = <0xa6>; - }; - - twi@0x01c2ac00 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi0"; - reg = <0x0 0x1c2ac00 0x0 0x400>; - interrupts = <0x0 0x6 0x4>; - clocks = <0x27>; - clock-frequency = <0x61a80>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x29>; - status = "okay"; - pinctrl-0 = <0x9f>; - }; - - twi@0x01c2b000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi1"; - reg = <0x0 0x1c2b000 0x0 0x400>; - interrupts = <0x0 0x7 0x4>; - clocks = <0x2a>; - clock-frequency = <0x30d40>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x2c>; - status = "okay"; - pinctrl-0 = <0xa0>; - }; - - twi@0x01c2b400 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi2"; - reg = <0x0 0x1c2b400 0x0 0x400>; - interrupts = <0x0 0x8 0x4>; - clocks = <0x2d>; - clock-frequency = <0x30d40>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x2f>; - status = "disabled"; - pinctrl-0 = <0xa1>; - }; - - usbc0@0 { - device_type = "usbc0"; - compatible = "allwinner,sunxi-otg-manager"; - usb_port_type = <0x1>; - usb_detect_type = <0x0>; - usb_host_init_state = <0x1>; - usb_regulator_io = "nocare"; - usb_wakeup_suspend = <0x1>; - usb_luns = <0x3>; - usb_serial_unique = <0x1>; - usb_serial_number = "20080411"; - rndis_wceis = <0x1>; - status = "okay"; - usb_id_gpio; - usb_det_vbus_gpio; - usb_drv_vbus_gpio; - }; - - udc-controller@0x01c19000 { - compatible = "allwinner,sunxi-udc"; - reg = <0x0 0x1c19000 0x0 0x1000 0x0 0x1c00000 0x0 0x100>; - interrupts = <0x0 0x47 0x4>; - clocks = <0x32 0x33>; - status = "okay"; - }; - - ehci0-controller@0x01c1a000 { - compatible = "allwinner,sunxi-ehci0"; - reg = <0x0 0x1c1a000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x48 0x4>; - clocks = <0x32 0x34>; - hci_ctrl_no = <0x0>; - status = "okay"; - }; - - ohci0-controller@0x01c1a400 { - compatible = "allwinner,sunxi-ohci0"; - reg = <0x0 0x1c1a000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x49 0x4>; - clocks = <0x32 0x35>; - hci_ctrl_no = <0x0>; - status = "okay"; - }; - - usbc1@0 { - device_type = "usbc1"; - usb_host_init_state = <0x1>; - usb_regulator_io = "nocare"; - usb_wakeup_suspend = <0x1>; - usb_hsic_used = <0x0>; - usb_hsic_regulator_io = "vcc-hsic-12"; - usb_hsic_ctrl = <0x0>; - usb_hsic_usb3503_flag = <0x0>; - status = "okay"; - usb_port_type = <0x1>; - usb_detect_type = <0x0>; - usb_drv_vbus_gpio; - usb_hsic_rdy_gpio; - usb_hsic_hub_connect_gpio; - usb_hsic_int_n_gpio; - usb_hsic_reset_n_gpio; - }; - - ehci1-controller@0x01c1b000 { - compatible = "allwinner,sunxi-ehci1"; - reg = <0x0 0x1c1b000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x4a 0x4>; - clocks = <0x36 0x37 0x38 0x39 0x3a>; - hci_ctrl_no = <0x1>; - status = "okay"; - }; - - ohci1-controller@0x01c1b400 { - compatible = "allwinner,sunxi-ohci1"; - reg = <0x0 0x1c1b000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x4b 0x4>; - clocks = <0x36 0x3b>; - hci_ctrl_no = <0x1>; - status = "okay"; - }; - - codec@0x01c22c00 { - compatible = "allwinner,sunxi-internal-codec"; - reg = <0x0 0x1c22c00 0x0 0x478 0x0 0x1f015c0 0x0 0x0>; - clocks = <0x3c>; - pinctrl-names = "aif2-default", "aif3-default", "aif2-sleep", "aif3-sleep"; - pinctrl-1 = <0x3e>; - pinctrl-2 = <0x3f>; - pinctrl-3 = <0x40>; - gpio-spk = <0x30 0x7 0x7 0x1 0x1 0x1 0x1>; - headphonevol = <0x3b>; - spkervol = <0x1a>; - earpiecevol = <0x1e>; - maingain = <0x4>; - headsetmicgain = <0x4>; - adcagc_cfg = <0x0>; - adcdrc_cfg = <0x0>; - adchpf_cfg = <0x0>; - dacdrc_cfg = <0x0>; - dachpf_cfg = <0x0>; - aif1_lrlk_div = <0x40>; - aif2_lrlk_div = <0x40>; - aif2config = <0x0>; - aif3config = <0x0>; - pa_sleep_time = <0x15e>; - dac_digital_vol = <0xa0a0>; - status = "okay"; - linux,phandle = <0x4d>; - phandle = <0x4d>; - device_type = "codec"; - pinctrl-0 = <0xb5>; - }; - - i2s0-controller@0x01c22c00 { - compatible = "allwinner,sunxi-internal-i2s"; - reg = <0x0 0x1c22c00 0x0 0x478>; - clocks = <0x2 0x41>; - status = "okay"; - linux,phandle = <0x4c>; - phandle = <0x4c>; - device_type = "i2s"; - }; - - daudio@0x01c22000 { - compatible = "allwinner,sunxi-daudio"; - reg = <0x0 0x1c22000 0x0 0x58>; - clocks = <0x2 0x42>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x43>; - pinctrl-1 = <0x44>; - pcm_lrck_period = <0x20>; - pcm_lrckr_period = <0x1>; - slot_width_select = <0x20>; - pcm_lsb_first = <0x0>; - tx_data_mode = <0x0>; - rx_data_mode = <0x0>; - daudio_master = <0x4>; - audio_format = <0x1>; - signal_inversion = <0x1>; - frametype = <0x0>; - tdm_config = <0x1>; - tdm_num = <0x0>; - status = "disabled"; - linux,phandle = <0x4e>; - phandle = <0x4e>; - device_type = "daudio0"; - }; - - daudio@0x01c22400 { - compatible = "allwinner,sunxi-daudio"; - reg = <0x0 0x1c22400 0x0 0x58>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x45>; - pinctrl-1 = <0x46>; - clocks = <0x2 0x47>; - pcm_lrck_period = <0x20>; - pcm_lrckr_period = <0x1>; - slot_width_select = <0x20>; - pcm_lsb_first = <0x0>; - tx_data_mode = <0x0>; - rx_data_mode = <0x0>; - daudio_master = <0x4>; - audio_format = <0x1>; - signal_inversion = <0x1>; - frametype = <0x0>; - tdm_config = <0x1>; - tdm_num = <0x1>; - status = "disabled"; - linux,phandle = <0x4f>; - phandle = <0x4f>; - device_type = "daudio1"; - }; - - daudio@0x01c22800 { - compatible = "allwinner,sunxi-tdmhdmi"; - reg = <0x0 0x1c22800 0x0 0x58>; - clocks = <0x2 0x48>; - status = "okay"; - linux,phandle = <0x50>; - phandle = <0x50>; - device_type = "daudio2"; - }; - - spdif-controller@0x01c21000 { - compatible = "allwinner,sunxi-spdif"; - reg = <0x0 0x1c21000 0x0 0x38>; - clocks = <0x2 0x49>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x4a>; - pinctrl-1 = <0x4b>; - status = "disabled"; - linux,phandle = <0x51>; - phandle = <0x51>; - device_type = "spdif"; - }; - - sound@0 { - compatible = "allwinner,sunxi-codec-machine"; - interrupts = <0x0 0x1c 0x4>; - sunxi,i2s-controller = <0x4c>; - sunxi,audio-codec = <0x4d>; - aif2fmt = <0x3>; - aif3fmt = <0x3>; - aif2master = <0x1>; - hp_detect_case = <0x1>; - status = "okay"; - device_type = "sndcodec"; - }; - - sound@1 { - compatible = "allwinner,sunxi-daudio0-machine"; - sunxi,daudio0-controller = <0x4e>; - status = "disabled"; - device_type = "snddaudio0"; - }; - - sound@2 { - compatible = "allwinner,sunxi-daudio1-machine"; - sunxi,daudio1-controller = <0x4f>; - status = "disabled"; - device_type = "snddaudio1"; - }; - - sound@3 { - compatible = "allwinner,sunxi-hdmi-machine"; - sunxi,hdmi-controller = <0x50>; - status = "okay"; - device_type = "sndhdmi"; - }; - - sound@4 { - compatible = "allwinner,sunxi-spdif-machine"; - sunxi,spdif-controller = <0x51>; - status = "disabled"; - device_type = "sndspdif"; - }; - - spi@01c68000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-spi"; - device_type = "spi0"; - reg = <0x0 0x1c68000 0x0 0x1000>; - interrupts = <0x0 0x41 0x4>; - clocks = <0x4 0x52>; - clock-frequency = <0x5f5e100>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x55>; - spi0_cs_number = <0x1>; - spi0_cs_bitmap = <0x1>; - status = "disabled"; - pinctrl-0 = <0xa7 0xa8>; - - spidev@0 { - compatible = "spidev"; - reg = <0x0>; - spi-max-frequency = <0x2faf080>; - }; - }; - - spi@01c69000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-spi"; - device_type = "spi1"; - reg = <0x0 0x1c69000 0x0 0x1000>; - interrupts = <0x0 0x42 0x4>; - clocks = <0x4 0x56>; - clock-frequency = <0x5f5e100>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x59>; - spi1_cs_number = <0x1>; - spi1_cs_bitmap = <0x1>; - status = "disabled"; - pinctrl-0 = <0xa9 0xaa>; - }; - - sdmmc@01C11000 { - compatible = "allwinner,sun50i-sdmmc2"; - device_type = "sdc2"; - reg = <0x0 0x1c11000 0x0 0x1000>; - interrupts = <0x0 0x3e 0x104>; - clocks = <0x6 0x5a 0x5b 0x5c 0x5d>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x5f>; - bus-width = <0x8>; - max-frequency = <0x5f5e100>; - sdc_tm4_sm0_freq0 = <0x0>; - sdc_tm4_sm0_freq1 = <0x0>; - sdc_tm4_sm1_freq0 = <0x0>; - sdc_tm4_sm1_freq1 = <0x0>; - sdc_tm4_sm2_freq0 = <0x0>; - sdc_tm4_sm2_freq1 = <0x0>; - sdc_tm4_sm3_freq0 = <0x5000000>; - sdc_tm4_sm3_freq1 = <0x405>; - sdc_tm4_sm4_freq0 = <0x50000>; - sdc_tm4_sm4_freq1 = <0x408>; - status = "disabled"; - non-removable; - pinctrl-0 = <0xb4>; - cd-gpios; - sunxi-power-save-mode; - sunxi-dis-signal-vol-sw; - mmc-ddr-1_8v; - mmc-hs200-1_8v; - mmc-hs400-1_8v; - vmmc = "vcc-emmc"; - vqmmc = "vcc-lpddr"; - vdmmc = "none"; - }; - - sdmmc@01c0f000 { - compatible = "allwinner,sun50i-sdmmc0"; - device_type = "sdc0"; - reg = <0x0 0x1c0f000 0x0 0x1000>; - interrupts = <0x0 0x3c 0x104>; - clocks = <0x6 0x5a 0x60 0x61 0x62>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x64>; - max-frequency = <0x2faf080>; - bus-width = <0x4>; - broken-cd; - status = "okay"; - pinctrl-0 = <0xb2>; - cd-gpios = <0x30 0x5 0x6 0x0 0x1 0x2 0xffffffff>; - sunxi-power-save-mode; - vmmc = "none"; - vqmmc = "none"; - vdmmc = "vcc-sdc"; - }; - - sdmmc@1C10000 { - compatible = "allwinner,sun50i-sdmmc1"; - device_type = "sdc1"; - reg = <0x0 0x1c10000 0x0 0x1000>; - interrupts = <0x0 0x3d 0x104>; - clocks = <0x6 0x5a 0x65 0x66 0x67>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x69>; - max-frequency = <0x8f0d180>; - bus-width = <0x4>; - sunxi-dly-52M-ddr4 = <0x1 0x0 0x0 0x0 0x2>; - sunxi-dly-104M = <0x1 0x0 0x0 0x0 0x1>; - sunxi-dly-208M = <0x1 0x0 0x0 0x0 0x1>; - status = "okay"; - pinctrl-0 = <0xb3>; - sd-uhs-sdr50; - sd-uhs-ddr50; - sd-uhs-sdr104; - cap-sdio-irq; - keep-power-in-suspend; - ignore-pm-notify; - }; - - disp@01000000 { - compatible = "allwinner,sun50i-disp"; - reg = <0x0 0x1000000 0x0 0x300000 0x0 0x1c0c000 0x0 0x17fc 0x0 0x1ca0000 0x0 0x10fc>; - interrupts = <0x0 0x56 0x104 0x0 0x57 0x104 0x0 0x59 0x104>; - clocks = <0x6a 0x6b 0x6c 0x6d 0x6e>; - status = "okay"; - device_type = "disp"; - disp_init_enable = <0x1>; - disp_mode = <0x0>; - screen0_output_type = <0x3>; - screen0_output_mode = <0xa>; - screen1_output_type = <0x3>; - screen1_output_mode = <0xa>; - fb0_format = <0x0>; - fb0_width = <0x0>; - fb0_height = <0x0>; - fb1_format = <0x0>; - fb1_width = <0x0>; - fb1_height = <0x0>; - }; - - lcd0@01c0c000 { - compatible = "allwinner,sunxi-lcd0"; - pinctrl-names = "active", "sleep"; - status = "okay"; - device_type = "lcd0"; - lcd_used = <0x0>; - lcd_driver_name = "mb709_mipi"; - lcd_backlight = <0x32>; - lcd_if = <0x4>; - lcd_x = <0x400>; - lcd_y = <0x258>; - lcd_width = <0x0>; - lcd_height = <0x0>; - lcd_dclk_freq = <0x37>; - lcd_pwm_used = <0x1>; - lcd_pwm_ch = <0x10>; - lcd_pwm_freq = <0xc350>; - lcd_pwm_pol = <0x1>; - lcd_pwm_max_limit = <0xfa>; - lcd_hbp = <0x78>; - lcd_ht = <0x604>; - lcd_hspw = <0x14>; - lcd_vbp = <0x17>; - lcd_vt = <0x27b>; - lcd_vspw = <0x2>; - lcd_dsi_if = <0x2>; - lcd_dsi_lane = <0x4>; - lcd_dsi_format = <0x0>; - lcd_dsi_eotp = <0x0>; - lcd_dsi_vc = <0x0>; - lcd_dsi_te = <0x0>; - lcd_frm = <0x0>; - lcd_gamma_en = <0x0>; - lcd_bright_curve_en = <0x0>; - lcd_cmap_en = <0x0>; - lcd_bl_en = <0x30 0x7 0xa 0x1 0x0 0xffffffff 0x1>; - lcd_bl_en_power = "none"; - lcd_power = "vcc-mipi"; - lcd_fix_power = "vcc-dsi-33"; - lcd_gpio_0 = <0x30 0x3 0x18 0x1 0x0 0xffffffff 0x1>; - }; - - hdmi@01ee0000 { - compatible = "allwinner,sunxi-hdmi"; - reg = <0x0 0x1ee0000 0x0 0x20000>; - clocks = <0x6f 0x70>; - device_type = "hdmi"; - status = "okay"; - hdmi_power = "vcc-hdmi-33"; - hdmi_hdcp_enable = <0x0>; - hdmi_cts_compatibility = <0x0>; - }; - - tr@01000000 { - compatible = "allwinner,sun50i-tr"; - reg = <0x0 0x1000000 0x0 0x200bc>; - interrupts = <0x0 0x60 0x104>; - clocks = <0x6a>; - status = "okay"; - }; - - pwm@01c21400 { - compatible = "allwinner,sunxi-pwm"; - reg = <0x0 0x1c21400 0x0 0x3c>; - pwm-number = <0x1>; - pwm-base = <0x0>; - pwms = <0x71>; - }; - - pwm0@01c21400 { - compatible = "allwinner,sunxi-pwm0"; - pinctrl-names = "active", "sleep"; - reg_base = <0x1c21400>; - reg_busy_offset = <0x0>; - reg_busy_shift = <0x1c>; - reg_enable_offset = <0x0>; - reg_enable_shift = <0x4>; - reg_clk_gating_offset = <0x0>; - reg_clk_gating_shift = <0x6>; - reg_bypass_offset = <0x0>; - reg_bypass_shift = <0x9>; - reg_pulse_start_offset = <0x0>; - reg_pulse_start_shift = <0x8>; - reg_mode_offset = <0x0>; - reg_mode_shift = <0x7>; - reg_polarity_offset = <0x0>; - reg_polarity_shift = <0x5>; - reg_period_offset = <0x4>; - reg_period_shift = <0x10>; - reg_period_width = <0x10>; - reg_active_offset = <0x4>; - reg_active_shift = <0x0>; - reg_active_width = <0x10>; - reg_prescal_offset = <0x0>; - reg_prescal_shift = <0x0>; - reg_prescal_width = <0x4>; - linux,phandle = <0x71>; - phandle = <0x71>; - device_type = "pwm0"; - pwm_used = <0x0>; - pinctrl-0 = <0xad>; - pinctrl-1 = <0xae>; - }; - - s_pwm@1f03800 { - compatible = "allwinner,sunxi-s_pwm"; - reg = <0x0 0x1f03800 0x0 0x3c>; - pwm-number = <0x1>; - pwm-base = <0x10>; - pwms = <0x72>; - }; - - spwm0@0x01f03800 { - compatible = "allwinner,sunxi-pwm16"; - pinctrl-names = "active", "sleep"; - reg_base = <0x1f03800>; - reg_busy_offset = <0x0>; - reg_busy_shift = <0x1c>; - reg_enable_offset = <0x0>; - reg_enable_shift = <0x4>; - reg_clk_gating_offset = <0x0>; - reg_clk_gating_shift = <0x6>; - reg_bypass_offset = <0x0>; - reg_bypass_shift = <0x9>; - reg_pulse_start_offset = <0x0>; - reg_pulse_start_shift = <0x8>; - reg_mode_offset = <0x0>; - reg_mode_shift = <0x7>; - reg_polarity_offset = <0x0>; - reg_polarity_shift = <0x5>; - reg_period_offset = <0x4>; - reg_period_shift = <0x10>; - reg_period_width = <0x10>; - reg_active_offset = <0x4>; - reg_active_shift = <0x0>; - reg_active_width = <0x10>; - reg_prescal_offset = <0x0>; - reg_prescal_shift = <0x0>; - reg_prescal_width = <0x4>; - linux,phandle = <0x72>; - phandle = <0x72>; - device_type = "spwm0"; - s_pwm_used = <0x1>; - pinctrl-0 = <0xaf>; - pinctrl-1 = <0xb0>; - }; - - boot_disp { - compatible = "allwinner,boot_disp"; - device_type = "boot_disp"; - output_disp = <0x0>; - output_type = <0x3>; - output_mode = <0xa>; - }; - - cci@0x01cb3000 { - compatible = "allwinner,sunxi-csi_cci"; - reg = <0x0 0x1cb3000 0x0 0x1000>; - interrupts = <0x0 0x55 0x4>; - status = "okay"; - }; - - csi_res@0x01cb0000 { - compatible = "allwinner,sunxi-csi"; - reg = <0x0 0x1cb0000 0x0 0x1000>; - status = "okay"; - }; - - vfe@0 { - device_type = "csi0"; - compatible = "allwinner,sunxi-vfe"; - interrupts = <0x0 0x54 0x4>; - clocks = <0x73 0x74 0x75 0x4 0x6 0x5>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x77>; - csi0_sensor_list = <0x1>; - status = "okay"; - pinctrl-0 = <0xb1>; - csi0_mck = <0x30 0x4 0x1 0x0 0x0 0x1 0x0>; - - dev@0 { - csi0_dev0_mname = "s5k4ec"; - csi0_dev0_twi_addr = <0x5a>; - csi0_dev0_pos = "rear"; - csi0_dev0_isp_used = <0x1>; - csi0_dev0_fmt = <0x0>; - csi0_dev0_stby_mode = <0x1>; - csi0_dev0_vflip = <0x0>; - csi0_dev0_hflip = <0x0>; - csi0_dev0_iovdd = "iovdd-csi"; - csi0_dev0_iovdd_vol = <0x2ab980>; - csi0_dev0_avdd = "avdd-csi"; - csi0_dev0_avdd_vol = <0x2ab980>; - csi0_dev0_dvdd = "dvdd-csi-18"; - csi0_dev0_dvdd_vol = <0x16e360>; - csi0_dev0_flash_used = <0x0>; - csi0_dev0_flash_type = <0x2>; - csi0_dev0_flvdd = "vdd-csi-led"; - csi0_dev0_flvdd_vol = <0x325aa0>; - csi0_dev0_act_used = <0x0>; - csi0_dev0_act_name = "ad5820_act"; - csi0_dev0_act_slave = <0x18>; - status = "disabled"; - device_type = "csi0_dev0"; - csi0_dev0_afvdd; - csi0_dev0_afvdd_vol; - csi0_dev0_power_en; - csi0_dev0_reset = <0x30 0x4 0x10 0x0 0x0 0x1 0x0>; - csi0_dev0_pwdn = <0x30 0x4 0x11 0x0 0x0 0x1 0x0>; - csi0_dev0_flash_en; - csi0_dev0_flash_mode; - csi0_dev0_af_pwdn; - }; - - dev@1 { - csi0_dev1_mname = "gc2145"; - csi0_dev1_twi_addr = <0x78>; - csi0_dev1_pos = "front"; - csi0_dev1_isp_used = <0x1>; - csi0_dev1_fmt = <0x0>; - csi0_dev1_stby_mode = <0x1>; - csi0_dev1_vflip = <0x0>; - csi0_dev1_hflip = <0x0>; - csi0_dev1_iovdd = "iovdd-csi"; - csi0_dev1_iovdd_vol = <0x2ab980>; - csi0_dev1_avdd = "avdd-csi"; - csi0_dev1_avdd_vol = <0x2ab980>; - csi0_dev1_dvdd = "dvdd-csi-18"; - csi0_dev1_dvdd_vol = <0x1b7740>; - csi0_dev1_flash_used = <0x0>; - csi0_dev1_flash_type = <0x2>; - csi0_dev1_flvdd = "vdd-csi-led"; - csi0_dev1_flvdd_vol = <0x325aa0>; - csi0_dev1_act_used = <0x0>; - csi0_dev1_act_name = "ad5820_act"; - csi0_dev1_act_slave = <0x18>; - status = "disabled"; - device_type = "csi0_dev1"; - csi0_dev1_afvdd; - csi0_dev1_afvdd_vol; - csi0_dev1_power_en; - csi0_dev1_reset = <0x30 0x4 0x10 0x0 0x0 0x1 0x0>; - csi0_dev1_pwdn = <0x30 0x4 0x11 0x0 0x0 0x1 0x0>; - csi0_dev1_flash_en; - csi0_dev1_flash_mode; - csi0_dev1_af_pwdn; - }; - }; - - vdevice@0 { - compatible = "allwinner,sun50i-vdevice"; - pinctrl-names = "default"; - test-gpios = <0x79 0xb 0x0 0x1 0x2 0x3 0x4>; - status = "okay"; - device_type = "Vdevice"; - pinctrl-0 = <0xb9>; - }; - - onewire_device@0 { - compatible = "w1-gpio"; - gpios = <0x30 0x2 0x8 0x0 0x0 0x0 0x0>; - pinctrl-names = "default"; - pinctrl-0 = <0xba>; - status = "okay"; - }; - - ce@1c15000 { - compatible = "allwinner,sunxi-ce"; - reg = <0x0 0x1c15000 0x0 0x80 0x0 0x1c15800 0x0 0x80>; - interrupts = <0x0 0x5e 0xff01 0x0 0x50 0xff01>; - clock-frequency = <0x11e1a300 0xbebc200>; - clocks = <0x7a 0x7b>; - }; - - deinterlace@0x01e00000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sunxi-deinterlace"; - reg = <0x0 0x1e00000 0x0 0x77c>; - interrupts = <0x0 0x5d 0x4>; - clocks = <0x7c 0x4>; - status = "okay"; - device_type = "di"; - }; - - smartcard@0x01c2c400 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sunxi-scr"; - reg = <0x0 0x1c2c400 0x0 0x100>; - interrupts = <0x0 0x53 0x4>; - clocks = <0x7d 0x7e>; - clock-frequency = <0x16e3600>; - pinctrl-names = "default"; - pinctrl-0 = <0x7f>; - status = "okay"; - device_type = "smc"; - smc_used; - smc_rst; - smc_vppen; - smc_vppp; - smc_det; - smc_vccen; - smc_sck; - smc_sda; - }; - - nmi@0x01f00c00 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sunxi-nmi"; - reg = <0x0 0x1f00c00 0x0 0x50>; - nmi_irq_ctrl = <0xc>; - nmi_irq_en = <0x40>; - nmi_irq_status = <0x10>; - nmi_irq_mask = <0x50>; - status = "okay"; - }; - - pmu0@0 { - compatible = "allwinner,pmu0"; - device_type = "pmu0"; - pmu_batdeten = <0x1>; - pmu_init_chgend_rate = <0x14>; - pmu_init_chg_enabled = <0x1>; - pmu_init_adc_freq = <0x320>; - pmu_init_adcts_freq = <0x320>; - pmu_init_chg_pretime = <0x46>; - pmu_init_chg_csttime = <0x2d0>; - pmu_batt_cap_correct = <0x1>; - pmu_chg_end_on_en = <0x0>; - pmu_pwroff_vol = <0xce4>; - pmu_pwron_vol = <0xa28>; - pmu_powkey_off_delay_time = <0x0>; - pmu_pwrok_time = <0x40>; - pmu_reset_shutdown_en = <0x1>; - pmu_restvol_adjust_time = <0x3c>; - pmu_ocv_cou_adjust_time = <0x3c>; - pmu_vbusen_func = <0x1>; - pmu_reset = <0x0>; - pmu_IRQ_wakeup = <0x1>; - pmu_hot_shutdowm = <0x1>; - pmu_inshort = <0x0>; - pmu_bat_shutdown_ltf = <0xc80>; - pmu_bat_shutdown_htf = <0xed>; - status = "okay"; - pmu_id = <0x6>; - pmu_twi_addr = <0x34>; - pmu_twi_id = <0x1>; - pmu_irq_id = <0x40>; - pmu_chg_ic_temp = <0x0>; - pmu_battery_rdc = <0x58>; - pmu_battery_cap = <0x12c0>; - pmu_runtime_chgcur = <0x1c2>; - pmu_suspend_chgcur = <0x5dc>; - pmu_shutdown_chgcur = <0x5dc>; - pmu_init_chgvol = <0x1068>; - pmu_ac_vol = <0xfa0>; - pmu_ac_cur = <0xdac>; - pmu_usbpc_vol = <0x1130>; - pmu_usbpc_cur = <0x1f4>; - pmu_battery_warning_level1 = <0xf>; - pmu_battery_warning_level2 = <0x0>; - pmu_chgled_func = <0x0>; - pmu_chgled_type = <0x0>; - pmu_bat_para1 = <0x0>; - pmu_bat_para2 = <0x0>; - pmu_bat_para3 = <0x0>; - pmu_bat_para4 = <0x0>; - pmu_bat_para5 = <0x0>; - pmu_bat_para6 = <0x0>; - pmu_bat_para7 = <0x1>; - pmu_bat_para8 = <0x1>; - pmu_bat_para9 = <0x2>; - pmu_bat_para10 = <0x3>; - pmu_bat_para11 = <0x4>; - pmu_bat_para12 = <0xa>; - pmu_bat_para13 = <0x11>; - pmu_bat_para14 = <0x1a>; - pmu_bat_para15 = <0x29>; - pmu_bat_para16 = <0x2e>; - pmu_bat_para17 = <0x33>; - pmu_bat_para18 = <0x38>; - pmu_bat_para19 = <0x3b>; - pmu_bat_para20 = <0x41>; - pmu_bat_para21 = <0x45>; - pmu_bat_para22 = <0x4b>; - pmu_bat_para23 = <0x4f>; - pmu_bat_para24 = <0x53>; - pmu_bat_para25 = <0x59>; - pmu_bat_para26 = <0x5f>; - pmu_bat_para27 = <0x62>; - pmu_bat_para28 = <0x64>; - pmu_bat_para29 = <0x64>; - pmu_bat_para30 = <0x64>; - pmu_bat_para31 = <0x64>; - pmu_bat_para32 = <0x64>; - pmu_bat_temp_enable = <0x1>; - pmu_bat_charge_ltf = <0x8d5>; - pmu_bat_charge_htf = <0x184>; - pmu_bat_temp_para1 = <0x1d2a>; - pmu_bat_temp_para2 = <0x1180>; - pmu_bat_temp_para3 = <0xdbe>; - pmu_bat_temp_para4 = <0xae2>; - pmu_bat_temp_para5 = <0x8af>; - pmu_bat_temp_para6 = <0x6fc>; - pmu_bat_temp_para7 = <0x5a8>; - pmu_bat_temp_para8 = <0x3c9>; - pmu_bat_temp_para9 = <0x298>; - pmu_bat_temp_para10 = <0x1d2>; - pmu_bat_temp_para11 = <0x189>; - pmu_bat_temp_para12 = <0x14d>; - pmu_bat_temp_para13 = <0x11b>; - pmu_bat_temp_para14 = <0xf2>; - pmu_bat_temp_para15 = <0xb3>; - pmu_bat_temp_para16 = <0x86>; - pmu_powkey_off_time = <0x1770>; - pmu_powkey_off_func = <0x0>; - pmu_powkey_off_en = <0x1>; - pmu_powkey_long_time = <0x5dc>; - pmu_powkey_on_time = <0x3e8>; - power_start = <0x0>; - }; - - regu@0 { - compatible = "allwinner,pmu0_regu"; - regulator_count = <0x17>; - status = "okay"; - device_type = "pmu0_regu"; - regulator1 = "axp81x_dcdc1 none vcc-nand vcc-emmc vcc-sdc vcc-usb-30 vcc-io vcc-pd"; - regulator2 = "axp81x_dcdc2 none vdd-cpua"; - regulator3 = "axp81x_dcdc3 none"; - regulator4 = "axp81x_dcdc4 none"; - regulator5 = "axp81x_dcdc5 none vcc-dram"; - regulator6 = "axp81x_dcdc6 none vdd-sys"; - regulator7 = "axp81x_dcdc7 none"; - regulator8 = "axp81x_rtc none"; - regulator9 = "axp81x_aldo1 none vdd-csi-led iovdd-csi vcc-pe"; - regulator10 = "axp81x_aldo2 none vcc-pl"; - regulator11 = "axp81x_aldo3 none vcc-avcc vcc-pll"; - regulator12 = "axp81x_dldo1 none vcc-hdmi-33"; - regulator13 = "axp81x_dldo2 none vcc-mipi"; - regulator14 = "axp81x_dldo3 none avdd-csi"; - regulator15 = "axp81x_dldo4 none vcc-deviceio"; - regulator16 = "axp81x_eldo1 none vcc-cpvdd vcc-wifi-io vcc-pc vcc-pg"; - regulator17 = "axp81x_eldo2 none vcc-lcd-0"; - regulator18 = "axp81x_eldo3 none dvdd-csi-18"; - regulator19 = "axp81x_fldo1 none vcc-hsic-12"; - regulator20 = "axp81x_fldo2 none vdd-cpus"; - regulator21 = "axp81x_gpio0ldo none vcc-ctp"; - regulator22 = "axp81x_gpio1ldo none"; - regulator23 = "axp81x_dc1sw none vcc-lvds vcc-dsi-33"; - }; - - nand0@01c03000 { - compatible = "allwinner,sun50i-nand"; - device_type = "nand0"; - reg = <0x0 0x1c03000 0x0 0x1000>; - interrupts = <0x0 0x46 0x4>; - clocks = <0x4 0x80>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x83>; - nand0_regulator1 = "vcc-nand"; - nand0_regulator2 = "none"; - nand0_cache_level = <0x55aaaa55>; - nand0_flush_cache_num = <0x55aaaa55>; - nand0_capacity_level = <0x55aaaa55>; - nand0_id_number_ctl = <0x55aaaa55>; - nand0_print_level = <0x55aaaa55>; - nand0_p0 = <0x55aaaa55>; - nand0_p1 = <0x55aaaa55>; - nand0_p2 = <0x55aaaa55>; - nand0_p3 = <0x55aaaa55>; - status = "disabled"; - nand0_support_2ch = <0x0>; - pinctrl-0 = <0xab 0xac>; - }; - - thermal_sensor { - compatible = "allwinner,thermal_sensor"; - reg = <0x0 0x1c25000 0x0 0x400>; - interrupts = <0x0 0x1f 0x0>; - clocks = <0x6 0x84>; - sensor_num = <0x3>; - shut_temp = <0x78>; - status = "okay"; - - combine0 { - #thermal-sensor-cells = <0x1>; - combine_cnt = <0x3>; - combine_type = "max"; - combine_chn = <0x0 0x1 0x2>; - linux,phandle = <0x85>; - phandle = <0x85>; - }; - }; - - cpu_budget_cool { - compatible = "allwinner,budget_cooling"; - #cooling-cells = <0x2>; - status = "okay"; - state_cnt = <0xa>; - cluster_num = <0x1>; - state0 = <0x119400 0x4>; - state1 = <0x10d880 0x4>; - state2 = <0x101d00 0x4>; - state3 = <0xf6180 0x4>; - state4 = <0xea600 0x4>; - state5 = <0xdea80 0x4>; - state6 = <0xc7380 0x4>; - state7 = <0x9e340 0x4>; - state8 = <0x9e340 0x2>; - state9 = <0x9e340 0x1>; - linux,phandle = <0x87>; - phandle = <0x87>; - }; - - gpu_cooling { - compatible = "allwinner,gpu_cooling"; - reg = <0x0 0x0 0x0 0x0>; - #cooling-cells = <0x2>; - status = "okay"; - state_cnt = <0x3>; - state0 = <0x0>; - state1 = <0x168>; - state2 = <0x90>; - linux,phandle = <0x8c>; - phandle = <0x8c>; - }; - - thermal-zones { - - soc_thermal { - polling-delay-passive = <0x1f4>; - polling-delay = <0x7d0>; - thermal-sensors = <0x85 0x0>; - - trips { - - t0 { - temperature = <0x50>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x86>; - phandle = <0x86>; - }; - - t1 { - temperature = <0x55>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x88>; - phandle = <0x88>; - }; - - t2 { - temperature = <0x5a>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x89>; - phandle = <0x89>; - }; - - t3 { - temperature = <0x5f>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x8a>; - phandle = <0x8a>; - }; - - t4 { - temperature = <0x55>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x8b>; - phandle = <0x8b>; - }; - - t5 { - temperature = <0x5a>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x8d>; - phandle = <0x8d>; - }; - - t6 { - temperature = <0x6c>; - type = "critical"; - hysteresis = <0x0>; - }; - }; - - cooling-maps { - - bind0 { - contribution = <0x0>; - trip = <0x86>; - cooling-device = <0x87 0x1 0x1>; - }; - - bind1 { - contribution = <0x0>; - trip = <0x88>; - cooling-device = <0x87 0x2 0x2>; - }; - - bind2 { - contribution = <0x0>; - trip = <0x89>; - cooling-device = <0x87 0x3 0x6>; - }; - - bind3 { - contribution = <0x0>; - trip = <0x8a>; - cooling-device = <0x87 0x7 0x9>; - }; - - bind4 { - contribution = <0x0>; - trip = <0x8b>; - cooling-device = <0x8c 0x1 0x1>; - }; - - bind5 { - contribution = <0x0>; - trip = <0x8d>; - cooling-device = <0x8c 0x2 0x2>; - }; - }; - }; - }; - - keyboard { - compatible = "allwinner,keyboard_2000mv"; - reg = <0x0 0x1c21800 0x0 0x400>; - interrupts = <0x0 0x1e 0x0>; - status = "okay"; - key_cnt = <0x5>; - key1 = <0xf0 0x73>; - key2 = <0x1f4 0x72>; - key3 = <0x2bc 0x8b>; - key4 = <0x37a 0x1c>; - key5 = <0x7d0 0x66>; - }; - - eth@01c30000 { - compatible = "allwinner,sunxi-gmac"; - reg = <0x0 0x1c30000 0x0 0x10000 0x0 0x1c00000 0x0 0x30>; - pinctrl-names = "default"; - interrupts = <0x0 0x52 0x4>; - interrupt-names = "gmacirq"; - clocks = <0x8f>; - clock-names = "gmac"; - phy-mode = "rmii"; - tx-delay = <0x0>; - rx-delay = <0x0>; - gmac_power1 = "axp81x_dc1sw:0"; - status = "okay"; - device_type = "gmac0"; - pinctrl-0 = <0x9e>; - gmac_power2; - gmac_power3; - }; - - product { - device_type = "product"; - version = "100"; - machine = "evb"; - }; - - platform { - device_type = "platform"; - eraseflag = <0x1>; - }; - - target { - device_type = "target"; - boot_clock = <0x3f0>; - storage_type = <0xffffffff>; - burn_key = <0x0>; - }; - - power_sply { - device_type = "power_sply"; - dcdc1_vol = <0xf4f24>; - dcdc2_vol = <0xf468c>; - dcdc6_vol = <0xf468c>; - aldo1_vol = <0xaf0>; - aldo2_vol = <0xf4948>; - aldo3_vol = <0xf4df8>; - dldo1_vol = <0xce4>; - dldo2_vol = <0xce4>; - dldo3_vol = <0xaf0>; - dldo4_vol = <0xf4f24>; - eldo1_vol = <0xf4948>; - eldo2_vol = <0x708>; - eldo3_vol = <0x708>; - fldo1_vol = <0x4b0>; - fldo2_vol = <0xf468c>; - gpio0_vol = <0xc1c>; - }; - - card_boot { - device_type = "card_boot"; - logical_start = <0xa000>; - sprite_gpio0; - }; - - pm_para { - device_type = "pm_para"; - standby_mode = <0x1>; - }; - - card0_boot_para { - device_type = "card0_boot_para"; - card_ctrl = <0x0>; - card_high_speed = <0x1>; - card_line = <0x4>; - pinctrl-0 = <0x99>; - }; - - card2_boot_para { - device_type = "card2_boot_para"; - sdc_io_1v8 = <0x1>; - card_ctrl = <0x2>; - card_high_speed = <0x1>; - card_line = <0x8>; - pinctrl-0 = <0x9a>; - sdc_ex_dly_used = <0x2>; - }; - - twi_para { - device_type = "twi_para"; - twi_port = <0x0>; - pinctrl-0 = <0x9b>; - }; - - uart_para { - device_type = "uart_para"; - uart_debug_port = <0x0>; - pinctrl-0 = <0x9c>; - }; - - jtag_para { - device_type = "jtag_para"; - jtag_enable = <0x1>; - pinctrl-0 = <0x9d>; - }; - - clock { - device_type = "clock"; - pll4 = <0x12c>; - pll6 = <0x258>; - pll8 = <0x168>; - pll9 = <0x129>; - pll10 = <0x108>; - }; - - rtp_para { - device_type = "rtp_para"; - rtp_used = <0x0>; - rtp_screen_size = <0x5>; - rtp_regidity_level = <0x5>; - rtp_press_threshold_enable = <0x0>; - rtp_press_threshold = <0x1f40>; - rtp_sensitive_level = <0xf>; - rtp_exchange_x_y_flag = <0x0>; - }; - - ctp { - device_type = "ctp"; - compatible = "allwinner,sun50i-ctp-para"; - status = "disabled"; - ctp_name = "gt911_DB"; - ctp_twi_id = <0x0>; - ctp_twi_addr = <0x40>; - ctp_screen_max_x = <0x400>; - ctp_screen_max_y = <0x258>; - ctp_revert_x_flag = <0x1>; - ctp_revert_y_flag = <0x1>; - ctp_exchange_x_y_flag = <0x0>; - ctp_int_port = <0x30 0x7 0x4 0x6 0xffffffff 0xffffffff 0xffffffff>; - ctp_wakeup = <0x30 0x7 0xb 0x1 0xffffffff 0xffffffff 0x1>; - ctp_power_ldo = "vcc-ctp"; - ctp_power_ldo_vol = <0xce4>; - ctp_power_io; - }; - - ctp_list { - device_type = "ctp_list"; - compatible = "allwinner,sun50i-ctp-list"; - status = "okay"; - gslX680new = <0x1>; - gt9xx_ts = <0x0>; - gt9xxf_ts = <0x1>; - gt9xxnew_ts = <0x0>; - gt82x = <0x1>; - zet622x = <0x1>; - aw5306_ts = <0x1>; - }; - - tkey_para { - device_type = "tkey_para"; - tkey_used = <0x0>; - tkey_twi_id; - tkey_twi_addr; - tkey_int; - }; - - motor_para { - device_type = "motor_para"; - motor_used = <0x0>; - motor_shake = <0x31 0xfffe 0x3 0x1 0xffffffff 0xffffffff 0x1>; - }; - - tvout_para { - device_type = "tvout_para"; - tvout_used; - tvout_channel_num; - tv_en; - }; - - tvin_para { - device_type = "tvin_para"; - tvin_used; - tvin_channel_num; - }; - - serial_feature { - device_type = "serial_feature"; - sn_filename = "sn.txt"; - }; - - gsensor { - device_type = "gsensor"; - compatible = "allwinner,sun50i-gsensor-para"; - status = "okay"; - gsensor_twi_id = <0x1>; - gsensor_twi_addr = <0x1d>; - gsensor_vcc_io = "vcc-deviceio"; - gsensor_vcc_io_val = <0xce4>; - gsensor_int1 = <0x30 0x7 0x5 0x6 0x1 0xffffffff 0xffffffff>; - gsensor_int2 = <0x30 0x7 0x6 0x6 0x1 0xffffffff 0xffffffff>; - }; - - gsensor_list { - device_type = "gsensor_list"; - compatible = "allwinner,sun50i-gsensor-list-para"; - gsensor_list__used = <0x1>; - lsm9ds0_acc_mag = <0x1>; - bma250 = <0x1>; - mma8452 = <0x1>; - mma7660 = <0x1>; - mma865x = <0x1>; - afa750 = <0x1>; - lis3de_acc = <0x1>; - lis3dh_acc = <0x1>; - kxtik = <0x1>; - dmard10 = <0x0>; - dmard06 = <0x1>; - mxc622x = <0x1>; - fxos8700 = <0x1>; - lsm303d = <0x0>; - sc7a30 = <0x1>; - }; - - 3g_para { - device_type = "3g_para"; - 3g_used = <0x0>; - 3g_usbc_num = <0x2>; - 3g_uart_num = <0x0>; - bb_vbat = <0x79 0xb 0x3 0x1 0xffffffff 0xffffffff 0x0>; - bb_host_wake = <0x79 0xc 0x0 0x1 0xffffffff 0xffffffff 0x0>; - bb_on = <0x79 0xc 0x1 0x1 0xffffffff 0xffffffff 0x0>; - bb_pwr_on = <0x79 0xc 0x3 0x1 0xffffffff 0xffffffff 0x0>; - bb_wake = <0x79 0xc 0x4 0x1 0xffffffff 0xffffffff 0x0>; - bb_rf_dis = <0x79 0xc 0x5 0x1 0xffffffff 0xffffffff 0x0>; - bb_rst = <0x79 0xc 0x6 0x1 0xffffffff 0xffffffff 0x0>; - 3g_int; - }; - - gyroscopesensor { - device_type = "gyroscopesensor"; - compatible = "allwinner,sun50i-gyr_sensors-para"; - status = "disabled"; - gy_twi_id = <0x2>; - gy_twi_addr = <0x6a>; - gy_int1 = <0x30 0x0 0xa 0x6 0x1 0xffffffff 0xffffffff>; - gy_int2; - }; - - gy_list { - device_type = "gy_list"; - compatible = "allwinner,sun50i-gyr_sensors-list-para"; - status = "disabled"; - lsm9ds0_gyr = <0x1>; - l3gd20_gyr = <0x0>; - bmg160_gyr = <0x1>; - }; - - lightsensor { - device_type = "lightsensor"; - compatible = "allwinner,sun50i-lsensors-para"; - status = "disabled"; - ls_twi_id = <0x2>; - ls_twi_addr = <0x23>; - ls_int = <0x30 0x0 0xc 0x6 0x1 0xffffffff 0xffffffff>; - }; - - ls_list { - device_type = "ls_list"; - compatible = "allwinner,sun50i-lsensors-list-para"; - status = "disabled"; - ltr_501als = <0x1>; - jsa1212 = <0x0>; - jsa1127 = <0x1>; - stk3x1x = <0x0>; - }; - - compasssensor { - device_type = "compasssensor"; - compatible = "allwinner,sun50i-compass-para"; - status = "disabled"; - compass_twi_id = <0x2>; - compass_twi_addr = <0xd>; - compass_int = <0x30 0x0 0xb 0x6 0x1 0xffffffff 0xffffffff>; - }; - - compass_list { - device_type = "compass_list"; - compatible = "allwinner,sun50i-compass-list-para"; - status = "disabled"; - lsm9ds0 = <0x1>; - lsm303d = <0x0>; - }; - - recovery_key { - device_type = "recovery_key"; - key_max = <0xc>; - key_min = <0xa>; - }; - - fastboot_key { - device_type = "fastboot_key"; - key_max = <0x6>; - key_min = <0x4>; - }; - }; - - aliases { - serial0 = "/soc@01c00000/uart@01c28000"; - serial1 = "/soc@01c00000/uart@01c28400"; - serial2 = "/soc@01c00000/uart@01c28800"; - serial3 = "/soc@01c00000/uart@01c28c00"; - serial4 = "/soc@01c00000/uart@01c29000"; - twi0 = "/soc@01c00000/twi@0x01c2ac00"; - twi1 = "/soc@01c00000/twi@0x01c2b000"; - twi2 = "/soc@01c00000/twi@0x01c2b400"; - spi0 = "/soc@01c00000/spi@01c68000"; - spi1 = "/soc@01c00000/spi@01c69000"; - global_timer0 = "/soc@01c00000/timer@1c20c00"; - cci0 = "/soc@01c00000/cci@0x01cb3000"; - csi_res0 = "/soc@01c00000/csi_res@0x01cb0000"; - vfe0 = "/soc@01c00000/vfe@0"; - mmc0 = "/soc@01c00000/sdmmc@01c0f000"; - mmc2 = "/soc@01c00000/sdmmc@01C11000"; - nand0 = "/soc@01c00000/nand0@01c03000"; - disp = "/soc@01c00000/disp@01000000"; - lcd0 = "/soc@01c00000/lcd0@01c0c000"; - hdmi = "/soc@01c00000/hdmi@01ee0000"; - pwm = "/soc@01c00000/pwm@01c21400"; - pwm0 = "/soc@01c00000/pwm0@01c21400"; - s_pwm = "/soc@01c00000/s_pwm@1f03800"; - spwm0 = "/soc@01c00000/spwm0@0x01f03800"; - boot_disp = "/soc@01c00000/boot_disp"; - }; - - chosen { - bootargs = "earlyprintk=sunxi-uart,0x01c28000 loglevel=8 initcall_debug=1 console=ttyS0 init=/init"; - linux,initrd-start = <0x0 0x0>; - linux,initrd-end = <0x0 0x0>; - }; - - cpus { - #address-cells = <0x2>; - #size-cells = <0x0>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x0>; - enable-method = "psci"; - cpufreq_tbl = <0x75300 0x927c0 0xafc80 0xc7380 0xdea80 0xea600 0xf6180 0x101d00 0x10d880 0x119400 0x124f80 0x148200>; - clock-latency = <0x1e8480>; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - cpu@1 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x1>; - enable-method = "psci"; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - cpu@2 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x2>; - enable-method = "psci"; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - cpu@3 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x3>; - enable-method = "psci"; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - idle-states { - entry-method = "arm,psci"; - - cpu-sleep-0 { - compatible = "arm,idle-state"; - arm,psci-suspend-param = <0x10000>; - entry-latency-us = <0x28>; - exit-latency-us = <0x64>; - min-residency-us = <0x96>; - linux,phandle = <0x90>; - phandle = <0x90>; - }; - - cluster-sleep-0 { - compatible = "arm,idle-state"; - arm,psci-suspend-param = <0x1010000>; - entry-latency-us = <0x1f4>; - exit-latency-us = <0x3e8>; - min-residency-us = <0x9c4>; - linux,phandle = <0x91>; - phandle = <0x91>; - }; - - sys-sleep-0 { - compatible = "arm,idle-state"; - arm,psci-suspend-param = <0x2010000>; - entry-latency-us = <0x3e8>; - exit-latency-us = <0x7d0>; - min-residency-us = <0x1194>; - linux,phandle = <0x92>; - phandle = <0x92>; - }; - }; - }; - - psci { - compatible = "arm,psci-0.2"; - method = "smc"; - psci_version = <0x84000000>; - cpu_suspend = <0xc4000001>; - cpu_off = <0x84000002>; - cpu_on = <0xc4000003>; - affinity_info = <0xc4000004>; - migrate = <0xc4000005>; - migrate_info_type = <0x84000006>; - migrate_info_up_cpu = <0xc4000007>; - system_off = <0x84000008>; - system_reset = <0x84000009>; - }; - - n_brom { - compatible = "allwinner,n-brom"; - reg = <0x0 0x0 0x0 0xc000>; - }; - - s_brom { - compatible = "allwinner,s-brom"; - reg = <0x0 0x0 0x0 0x10000>; - }; - - sram_a1 { - compatible = "allwinner,sram_a1"; - reg = <0x0 0x10000 0x0 0x8000>; - }; - - sram_a2 { - compatible = "allwinner,sram_a2"; - reg = <0x0 0x40000 0x0 0x14000>; - }; - - prcm { - compatible = "allwinner,prcm"; - reg = <0x0 0x1f01400 0x0 0x400>; - }; - - cpuscfg { - compatible = "allwinner,cpuscfg"; - reg = <0x0 0x1f01c00 0x0 0x400>; - }; - - ion { - compatible = "allwinner,sunxi-ion"; - - system_contig { - type = <0x1>; - }; - - cma { - type = <0x4>; - }; - - system { - type = <0x0>; - }; - }; - - dram { - compatible = "allwinner,dram"; - clocks = <0x93 0x94>; - clock-names = "pll_ddr0", "pll_ddr1"; - dram_clk = <0x2a0>; - dram_type = <0x3>; - dram_zq = <0x3b3bdd>; - dram_odt_en = <0x1>; - dram_para1 = <0x10e40400>; - dram_para2 = <0x4000000>; - dram_mr0 = <0x1c70>; - dram_mr1 = <0x40>; - dram_mr2 = <0x18>; - dram_mr3 = <0x0>; - dram_tpr0 = <0x48a192>; - dram_tpr1 = <0x1c2418d>; - dram_tpr2 = <0x76051>; - dram_tpr3 = <0x50005dc>; - dram_tpr4 = <0x0>; - dram_tpr5 = <0x0>; - dram_tpr6 = <0x0>; - dram_tpr7 = <0x2a066198>; - dram_tpr8 = <0x0>; - dram_tpr9 = <0x0>; - dram_tpr10 = <0x8808>; - dram_tpr11 = <0x40a60066>; - dram_tpr12 = <0x55550000>; - dram_tpr13 = <0x4000903>; - device_type = "dram"; - }; - - memory@40000000 { - device_type = "memory"; - reg = <0x0 0x41000000 0x0 0x3f000000>; - }; - - interrupt-controller@1c81000 { - compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; - #interrupt-cells = <0x3>; - #address-cells = <0x0>; - device_type = "gic"; - interrupt-controller; - reg = <0x0 0x1c81000 0x0 0x1000 0x0 0x1c82000 0x0 0x2000 0x0 0x1c84000 0x0 0x2000 0x0 0x1c86000 0x0 0x2000>; - interrupts = <0x1 0x9 0xf04>; - linux,phandle = <0x1>; - phandle = <0x1>; - }; - - sunxi-chipid@1c14200 { - compatible = "allwinner,sunxi-chipid"; - device_type = "chipid"; - reg = <0x0 0x1c14200 0x0 0x400>; - }; - - timer { - compatible = "arm,armv8-timer"; - interrupts = <0x1 0xd 0xff01 0x1 0xe 0xff01 0x1 0xb 0xff01 0x1 0xa 0xff01>; - clock-frequency = <0x16e3600>; - }; - - pmu { - compatible = "arm,armv8-pmuv3"; - interrupts = <0x0 0x78 0x4 0x0 0x79 0x4 0x0 0x7a 0x4 0x0 0x7b 0x4>; - }; - - dvfs_table { - compatible = "allwinner,dvfs_table"; - max_freq = <0x44aa2000>; - min_freq = <0x1c9c3800>; - lv_count = <0x8>; - lv1_freq = <0x44aa2000>; - lv1_volt = <0x514>; - lv2_freq = <0x41cdb400>; - lv2_volt = <0x4ec>; - lv3_freq = <0x3ef14800>; - lv3_volt = <0x4d8>; - lv4_freq = <0x3c14dc00>; - lv4_volt = <0x4b0>; - lv5_freq = <0x39387000>; - lv5_volt = <0x488>; - lv6_freq = <0x365c0400>; - lv6_volt = <0x460>; - lv7_freq = <0x30a32c00>; - lv7_volt = <0x438>; - lv8_freq = <0x269fb200>; - lv8_volt = <0x410>; - device_type = "dvfs_table"; - }; - - dramfreq { - compatible = "allwinner,sunxi-dramfreq"; - reg = <0x0 0x1c62000 0x0 0x1000 0x0 0x1c63000 0x0 0x1000 0x0 0x1c20000 0x0 0x800>; - clocks = <0x93 0x94 0x95>; - status = "okay"; - }; - - uboot { - }; - - gpu@0x01c40000 { - compatible = "arm,mali-400", "arm,mali-utgard"; - reg = <0x0 0x1c40000 0x0 0x10000>; - interrupts = <0x0 0x61 0x4 0x0 0x62 0x4 0x0 0x63 0x4 0x0 0x64 0x4 0x0 0x66 0x4 0x0 0x67 0x4>; - interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", "IRQPP1", "IRQPPMMU1"; - clocks = <0x96 0x97>; - device_type = "gpu_mali400_0"; - normal_freq = <0x198>; - scene_ctrl_status = <0x0>; - temp_ctrl_status = <0x1>; - }; - - wlan { - compatible = "allwinner,sunxi-wlan"; - wlan_io_regulator = "vcc-wifi-io"; - wlan_busnum = <0x1>; - status = "okay"; - device_type = "wlan"; - clocks; - wlan_power; - wlan_regon = <0x79 0xb 0x2 0x1 0xffffffff 0xffffffff 0x0>; - wlan_hostwake = <0x79 0xb 0x3 0x6 0xffffffff 0xffffffff 0x0>; - efuse_map_path = "wifi_efuse_8189e_for_MB1019Q5.map"; - }; - - bt { - compatible = "allwinner,sunxi-bt"; - bt_io_regulator = "vcc-wifi-io"; - status = "okay"; - device_type = "bt"; - clocks; - bt_power; - bt_rst_n = <0x79 0xb 0x4 0x1 0xffffffff 0xffffffff 0x0>; - }; - - btlpm { - compatible = "allwinner,sunxi-btlpm"; - uart_index = <0x1>; - status = "okay"; - device_type = "btlpm"; - bt_wake = <0x79 0xb 0x6 0x1 0xffffffff 0xffffffff 0x1>; - bt_hostwake = <0x79 0xb 0x5 0x6 0xffffffff 0xffffffff 0x0>; - }; -}; diff --git a/blobs/pine64pinebook.dts b/blobs/pine64pinebook.dts deleted file mode 100644 index bfd2bc8a..00000000 --- a/blobs/pine64pinebook.dts +++ /dev/null @@ -1,3441 +0,0 @@ -/dts-v1/; - -/memreserve/ 0x0000000045000000 0x0000000000200000; -/memreserve/ 0x0000000041010000 0x0000000000010000; -/memreserve/ 0x0000000041020000 0x0000000000000800; -/memreserve/ 0x0000000040100000 0x0000000000004000; -/memreserve/ 0x0000000040104000 0x0000000000001000; -/memreserve/ 0x0000000040105000 0x0000000000001000; -/ { - model = "Pinebook"; - compatible = "pine64,pine64-plus,pinebook64"; - interrupt-parent = <0x1>; - #address-cells = <0x2>; - #size-cells = <0x2>; - - clocks { - compatible = "allwinner,sunxi-clk-init"; - device_type = "clocks"; - #address-cells = <0x2>; - #size-cells = <0x2>; - ranges; - reg = <0x0 0x1c20000 0x0 0x320 0x0 0x1f01400 0x0 0xb0 0x0 0x1f00060 0x0 0x4>; - - losc { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-clock"; - clock-frequency = <0x8000>; - clock-output-names = "losc"; - linux,phandle = <0xc>; - phandle = <0xc>; - }; - - iosc { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-clock"; - clock-frequency = <0xf42400>; - clock-output-names = "iosc"; - linux,phandle = <0xd>; - phandle = <0xd>; - }; - - hosc { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-clock"; - clock-frequency = <0x16e3600>; - clock-output-names = "hosc"; - linux,phandle = <0x6>; - phandle = <0x6>; - }; - - pll_cpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_cpu"; - }; - - pll_audio { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x1770000>; - clock-output-names = "pll_audio"; - linux,phandle = <0x2>; - phandle = <0x2>; - }; - - pll_video0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "pll_video0"; - linux,phandle = <0x3>; - phandle = <0x3>; - }; - - pll_ve { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_ve"; - linux,phandle = <0x16>; - phandle = <0x16>; - }; - - pll_ddr0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_ddr0"; - linux,phandle = <0x93>; - phandle = <0x93>; - }; - - pll_periph0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_periph0"; - linux,phandle = <0x4>; - phandle = <0x4>; - }; - - pll_periph1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_periph1"; - linux,phandle = <0x5>; - phandle = <0x5>; - }; - - pll_video1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "pll_video1"; - }; - - pll_gpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_gpu"; - linux,phandle = <0x96>; - phandle = <0x96>; - }; - - pll_mipi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_mipi"; - linux,phandle = <0x8>; - phandle = <0x8>; - }; - - pll_hsic { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_hsic"; - linux,phandle = <0x3a>; - phandle = <0x3a>; - }; - - pll_de { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "pll_de"; - linux,phandle = <0x7>; - phandle = <0x7>; - }; - - pll_ddr1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_ddr1"; - linux,phandle = <0x94>; - phandle = <0x94>; - }; - - pll_audiox8 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x2>; - clock-mult = <0x8>; - clock-div = <0x1>; - clock-output-names = "pll_audiox8"; - }; - - pll_audiox4 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x2>; - clock-mult = <0x8>; - clock-div = <0x2>; - clock-output-names = "pll_audiox4"; - linux,phandle = <0x3c>; - phandle = <0x3c>; - }; - - pll_audiox2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x2>; - clock-mult = <0x8>; - clock-div = <0x4>; - clock-output-names = "pll_audiox2"; - }; - - pll_video0x2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x3>; - clock-mult = <0x2>; - clock-div = <0x1>; - clock-output-names = "pll_video0x2"; - }; - - pll_periph0x2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x4>; - clock-mult = <0x2>; - clock-div = <0x1>; - clock-output-names = "pll_periph0x2"; - linux,phandle = <0x7b>; - phandle = <0x7b>; - }; - - pll_periph1x2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x5>; - clock-mult = <0x2>; - clock-div = <0x1>; - clock-output-names = "pll_periph1x2"; - linux,phandle = <0x5a>; - phandle = <0x5a>; - }; - - pll_periph0d2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x4>; - clock-mult = <0x1>; - clock-div = <0x2>; - clock-output-names = "pll_periph0d2"; - }; - - hoscd2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x6>; - clock-mult = <0x1>; - clock-div = <0x2>; - clock-output-names = "hoscd2"; - }; - - cpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "cpu"; - }; - - cpuapb { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "cpuapb"; - }; - - axi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "axi"; - }; - - pll_periphahb0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "pll_periphahb0"; - }; - - ahb1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ahb1"; - linux,phandle = <0x95>; - phandle = <0x95>; - }; - - apb1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "apb1"; - }; - - apb2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "apb2"; - linux,phandle = <0x7e>; - phandle = <0x7e>; - }; - - ahb2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ahb2"; - }; - - ths { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ths"; - linux,phandle = <0x84>; - phandle = <0x84>; - }; - - nand { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "nand"; - linux,phandle = <0x80>; - phandle = <0x80>; - }; - - sdmmc0_mod { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc0_mod"; - linux,phandle = <0x60>; - phandle = <0x60>; - }; - - sdmmc0_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc0_bus"; - linux,phandle = <0x61>; - phandle = <0x61>; - }; - - sdmmc0_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc0_rst"; - linux,phandle = <0x62>; - phandle = <0x62>; - }; - - sdmmc1_mod { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc1_mod"; - linux,phandle = <0x65>; - phandle = <0x65>; - }; - - sdmmc1_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc1_bus"; - linux,phandle = <0x66>; - phandle = <0x66>; - }; - - sdmmc1_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc1_rst"; - linux,phandle = <0x67>; - phandle = <0x67>; - }; - - sdmmc2_mod { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc2_mod"; - linux,phandle = <0x5b>; - phandle = <0x5b>; - }; - - sdmmc2_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc2_bus"; - linux,phandle = <0x5c>; - phandle = <0x5c>; - }; - - sdmmc2_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc2_rst"; - linux,phandle = <0x5d>; - phandle = <0x5d>; - }; - - ts { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ts"; - }; - - ce { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ce"; - linux,phandle = <0x7a>; - phandle = <0x7a>; - }; - - spi0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "spi0"; - linux,phandle = <0x52>; - phandle = <0x52>; - }; - - spi1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "spi1"; - linux,phandle = <0x56>; - phandle = <0x56>; - }; - - i2s0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "i2s0"; - linux,phandle = <0x42>; - phandle = <0x42>; - }; - - i2s1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "i2s1"; - linux,phandle = <0x47>; - phandle = <0x47>; - }; - - i2s2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "i2s2"; - linux,phandle = <0x48>; - phandle = <0x48>; - }; - - spdif { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "spdif"; - linux,phandle = <0x49>; - phandle = <0x49>; - }; - - usbphy0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbphy0"; - linux,phandle = <0x32>; - phandle = <0x32>; - }; - - usbphy1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbphy1"; - linux,phandle = <0x36>; - phandle = <0x36>; - }; - - usbhsic { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbhsic"; - linux,phandle = <0x38>; - phandle = <0x38>; - }; - - usbhsic12m { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbhsic12m"; - linux,phandle = <0x39>; - phandle = <0x39>; - }; - - usbohci1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbohci1"; - linux,phandle = <0x3b>; - phandle = <0x3b>; - }; - - usbohci0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbohci0"; - linux,phandle = <0x35>; - phandle = <0x35>; - }; - - de { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x7>; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "de"; - linux,phandle = <0x6a>; - phandle = <0x6a>; - }; - - tcon0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x8>; - clock-output-names = "tcon0"; - linux,phandle = <0x6b>; - phandle = <0x6b>; - }; - - tcon1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x3>; - clock-output-names = "tcon1"; - linux,phandle = <0x6e>; - phandle = <0x6e>; - }; - - deinterlace { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "deinterlace"; - linux,phandle = <0x7c>; - phandle = <0x7c>; - }; - - csi_s { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "csi_s"; - linux,phandle = <0x73>; - phandle = <0x73>; - }; - - csi_m { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "csi_m"; - linux,phandle = <0x74>; - phandle = <0x74>; - }; - - csi_misc { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "csi_misc"; - linux,phandle = <0x75>; - phandle = <0x75>; - }; - - ve { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ve"; - linux,phandle = <0x17>; - phandle = <0x17>; - }; - - adda { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "adda"; - linux,phandle = <0x41>; - phandle = <0x41>; - }; - - addax4 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "addax4"; - }; - - avs { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "avs"; - }; - - hdmi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x3>; - clock-output-names = "hdmi"; - linux,phandle = <0x6f>; - phandle = <0x6f>; - }; - - hdmi_slow { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "hdmi_slow"; - linux,phandle = <0x70>; - phandle = <0x70>; - }; - - mbus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "mbus"; - }; - - mipidsi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "mipidsi"; - linux,phandle = <0x6d>; - phandle = <0x6d>; - }; - - gpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "gpu"; - linux,phandle = <0x97>; - phandle = <0x97>; - }; - - usbehci_16 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbohci_16"; - }; - - usbehci1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbehci1"; - linux,phandle = <0x37>; - phandle = <0x37>; - }; - - usbehci0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbehci0"; - linux,phandle = <0x34>; - phandle = <0x34>; - }; - - usbotg { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbotg"; - linux,phandle = <0x33>; - phandle = <0x33>; - }; - - gmac { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "gmac"; - linux,phandle = <0x8f>; - phandle = <0x8f>; - }; - - sdram { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdram"; - }; - - dma { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "dma"; - linux,phandle = <0xb>; - phandle = <0xb>; - }; - - hwspinlock_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "hwspinlock_rst"; - linux,phandle = <0xf>; - phandle = <0xf>; - }; - - hwspinlock_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "hwspinlock_bus"; - linux,phandle = <0x10>; - phandle = <0x10>; - }; - - msgbox { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "msgbox"; - linux,phandle = <0xe>; - phandle = <0xe>; - }; - - lvds { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "lvds"; - linux,phandle = <0x6c>; - phandle = <0x6c>; - }; - - uart0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart0"; - linux,phandle = <0x18>; - phandle = <0x18>; - }; - - uart1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart1"; - linux,phandle = <0x1b>; - phandle = <0x1b>; - }; - - uart2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart2"; - linux,phandle = <0x1e>; - phandle = <0x1e>; - }; - - uart3 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart3"; - linux,phandle = <0x21>; - phandle = <0x21>; - }; - - uart4 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart4"; - linux,phandle = <0x24>; - phandle = <0x24>; - }; - - scr { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "scr"; - linux,phandle = <0x7d>; - phandle = <0x7d>; - }; - - twi0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi0"; - linux,phandle = <0x27>; - phandle = <0x27>; - }; - - twi1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi1"; - linux,phandle = <0x2a>; - phandle = <0x2a>; - }; - - twi2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi2"; - linux,phandle = <0x2d>; - phandle = <0x2d>; - }; - - twi3 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi3"; - }; - - pio { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "pio"; - linux,phandle = <0xa>; - phandle = <0xa>; - }; - - cpurcir { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurcir"; - linux,phandle = <0x12>; - phandle = <0x12>; - }; - - cpurpio { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurpio"; - linux,phandle = <0x9>; - phandle = <0x9>; - }; - - cpurpll_peri0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurpll_peri0"; - }; - - cpurcpus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurcpus"; - }; - - cpurahbs { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurahbs"; - }; - - cpurapbs { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurapbs"; - }; - - losc_out { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "losc_out"; - linux,phandle = <0x98>; - phandle = <0x98>; - }; - }; - - soc@01c00000 { - compatible = "simple-bus"; - #address-cells = <0x2>; - #size-cells = <0x2>; - ranges; - device_type = "soc"; - - pinctrl@01f02c00 { - compatible = "allwinner,sun50i-r-pinctrl"; - reg = <0x0 0x1f02c00 0x0 0x400>; - interrupts = <0x0 0x2d 0x4>; - clocks = <0x9>; - device_type = "r_pio"; - gpio-controller; - interrupt-controller; - #interrupt-cells = <0x2>; - #size-cells = <0x0>; - #gpio-cells = <0x6>; - linux,phandle = <0x79>; - phandle = <0x79>; - - s_cir0@0 { - allwinner,pins = "PL11"; - allwinner,function = "s_cir0"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x2>; - allwinner,pull = <0x1>; - linux,phandle = <0x11>; - phandle = <0x11>; - }; - - s_uart0@0 { - linux,phandle = <0xb5>; - phandle = <0xb5>; - allwinner,pins = "PL2", "PL3"; - allwinner,function = "s_uart0"; - allwinner,pname = "s_uart0_tx", "s_uart0_rx"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - s_rsb0@0 { - linux,phandle = <0xb6>; - phandle = <0xb6>; - allwinner,pins = "PL0", "PL1"; - allwinner,function = "s_rsb0"; - allwinner,pname = "s_rsb0_sck", "s_rsb0_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - s_jtag0@0 { - linux,phandle = <0xb7>; - phandle = <0xb7>; - allwinner,pins = "PL4", "PL5", "PL6", "PL7"; - allwinner,function = "s_jtag0"; - allwinner,pname = "s_jtag0_tms", "s_jtag0_tck", "s_jtag0_tdo", "s_jtag0_tdi"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - }; - - pinctrl@01c20800 { - compatible = "allwinner,sun50i-pinctrl"; - reg = <0x0 0x1c20800 0x0 0x400>; - interrupts = <0x0 0xb 0x4 0x0 0x11 0x4 0x0 0x15 0x4>; - device_type = "pio"; - clocks = <0xa>; - gpio-controller; - interrupt-controller; - #interrupt-cells = <0x2>; - #size-cells = <0x0>; - #gpio-cells = <0x6>; - linux,phandle = <0x30>; - phandle = <0x30>; - - uart0@1 { - allwinner,pins = "PB8", "PB9"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x1a>; - phandle = <0x1a>; - }; - - uart1@1 { - allwinner,pins = "PG6", "PG7", "PG8", "PG9"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x1d>; - phandle = <0x1d>; - }; - - uart2@1 { - allwinner,pins = "PB0", "PB1", "PB2", "PB3"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x20>; - phandle = <0x20>; - }; - - uart3@1 { - allwinner,pins = "PH4", "PH5", "PH6", "PH7"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x23>; - phandle = <0x23>; - }; - - uart4@1 { - allwinner,pins = "PD2", "PD3", "PD4", "PD5"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x26>; - phandle = <0x26>; - }; - - twi0@1 { - allwinner,pins = "PH0", "PH1"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x29>; - phandle = <0x29>; - }; - - twi1@1 { - allwinner,pins = "PH2", "PH3"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x2c>; - phandle = <0x2c>; - }; - - twi2@0 { - allwinner,pins = "PE14", "PE15"; - allwinner,pname = "twi2_scl", "twi2_sda"; - allwinner,function = "twi2"; - allwinner,muxsel = <0x3>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x2e>; - phandle = <0x2e>; - }; - - twi2@1 { - allwinner,pins = "PE14", "PE15"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x2f>; - phandle = <0x2f>; - }; - - spi0@2 { - allwinner,pins = "PC3", "PC2", "PC0", "PC1"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x55>; - phandle = <0x55>; - }; - - spi1@2 { - allwinner,pins = "PD0", "PD1", "PD2", "PD3"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x59>; - phandle = <0x59>; - }; - - sdc0@1 { - allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x64>; - phandle = <0x64>; - }; - - sdc1@1 { - allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x69>; - phandle = <0x69>; - }; - - sdc2@1 { - allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x5f>; - phandle = <0x5f>; - }; - - daudio0@0 { - allwinner,pins = "PB6", "PB3", "PB4", "PB5", "PB7"; - allwinner,function = "pcm0"; - allwinner,muxsel = <0x3>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x43>; - phandle = <0x43>; - }; - - daudio0_sleep@0 { - allwinner,pins = "PB6", "PB3", "PB4", "PB5", "PB7"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x44>; - phandle = <0x44>; - }; - - daudio1@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "pcm1"; - allwinner,muxsel = <0x3>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x45>; - phandle = <0x45>; - }; - - daudio1_sleep@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x46>; - phandle = <0x46>; - }; - - aif3@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "aif3"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x3e>; - phandle = <0x3e>; - }; - - aif2_sleep@0 { - allwinner,pins = "PB6", "PB4", "PB5", "PB7"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x3f>; - phandle = <0x3f>; - }; - - aif3_sleep@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x40>; - phandle = <0x40>; - }; - - spdif@0 { - allwinner,pins = "PH8"; - allwinner,function = "spdif0"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x4a>; - phandle = <0x4a>; - }; - - spdif_sleep@0 { - allwinner,pins = "PH8"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x4b>; - phandle = <0x4b>; - }; - - csi0_sleep@0 { - allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13"; - allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7", "csi0_sck", "csi0_sda"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - allwinner,data = <0x0>; - linux,phandle = <0x77>; - phandle = <0x77>; - }; - - smartcard@0 { - allwinner,pins = "PB1", "PB4", "PB5", "PB6", "PB7"; - allwinner,function = "sim0"; - allwinner,muxsel = <0x5>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x7f>; - phandle = <0x7f>; - }; - - nand0@2 { - allwinner,pins = "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PC18"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x83>; - phandle = <0x83>; - }; - - gmac@0 { - allwinner,pins = "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21", "PD22", "PD23"; - allwinner,function = "gmac0"; - allwinner,muxsel = <0x4>; - allwinner,drive = <0x3>; - allwinner,pull = <0x0>; - linux,phandle = <0x8e>; - phandle = <0x8e>; - }; - - card0_boot_para@0 { - linux,phandle = <0x99>; - phandle = <0x99>; - allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - allwinner,function = "card0_boot_para"; - allwinner,pname = "sdc_d1", "sdc_d0", "sdc_clk", "sdc_cmd", "sdc_d3", "sdc_d2"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - card2_boot_para@0 { - linux,phandle = <0x9a>; - phandle = <0x9a>; - allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "card2_boot_para"; - allwinner,pname = "sdc_ds", "sdc_clk", "sdc_cmd", "sdc_d0", "sdc_d1", "sdc_d2", "sdc_d3", "sdc_d4", "sdc_d5", "sdc_d6", "sdc_d7", "sdc_emmc_rst"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - twi_para@0 { - linux,phandle = <0x9b>; - phandle = <0x9b>; - allwinner,pins = "PH0", "PH1"; - allwinner,function = "twi_para"; - allwinner,pname = "twi_scl", "twi_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart_para@0 { - linux,phandle = <0x9c>; - phandle = <0x9c>; - allwinner,pins = "PB8", "PB9"; - allwinner,function = "uart_para"; - allwinner,pname = "uart_debug_tx", "uart_debug_rx"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - jtag_para@0 { - linux,phandle = <0x9d>; - phandle = <0x9d>; - allwinner,pins = "PB0", "PB1", "PB2", "PB3"; - allwinner,function = "jtag_para"; - allwinner,pname = "jtag_ms", "jtag_ck", "jtag_do", "jtag_di"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - gmac_para@0 { - linux,phandle = <0x9e>; - phandle = <0x9e>; - allwinner,pins = "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PA18", "PA19", "PA20", "PA21", "PA22", "PA23", "PA24", "PA25", "PA26", "PA27"; - allwinner,function = "gmac_para"; - allwinner,pname = "gmac_txd0", "gmac_txd1", "gmac_txd2", "gmac_txd3", "gmac_txd4", "gmac_txd5", "gmac_txd6", "gmac_txd7", "gmac_txclk", "gmac_txen", "gmac_gtxclk", "gmac_rxd0", "gmac_rxd1", "gmac_rxd2", "gmac_rxd3", "gmac_rxd4", "gmac_rxd5", "gmac_rxd6", "gmac_rxd7", "gmac_rxdv", "gmac_rxclk", "gmac_txerr", "gmac_rxerr", "gmac_col", "gmac_crs", "gmac_clkin", "gmac_mdc", "gmac_mdio"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - twi0@0 { - linux,phandle = <0x9f>; - phandle = <0x9f>; - allwinner,pins = "PH0", "PH1"; - allwinner,function = "twi0"; - allwinner,pname = "twi0_scl", "twi0_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - twi1@0 { - linux,phandle = <0xa0>; - phandle = <0xa0>; - allwinner,pins = "PH2", "PH3"; - allwinner,function = "twi1"; - allwinner,pname = "twi1_scl", "twi1_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart0@0 { - linux,phandle = <0xa1>; - phandle = <0xa1>; - allwinner,pins = "PB8", "PB9"; - allwinner,function = "uart0"; - allwinner,pname = "uart0_tx", "uart0_rx"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart1@0 { - linux,phandle = <0xa2>; - phandle = <0xa2>; - allwinner,pins = "PG6", "PG7", "PG8", "PG9"; - allwinner,function = "uart1"; - allwinner,pname = "uart1_tx", "uart1_rx", "uart1_rts", "uart1_cts"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart2@0 { - linux,phandle = <0xa3>; - phandle = <0xa3>; - allwinner,pins = "PB0", "PB1", "PB2", "PB3"; - allwinner,function = "uart2"; - allwinner,pname = "uart2_tx", "uart2_rx", "uart2_rts", "uart2_cts"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart3@0 { - linux,phandle = <0xa4>; - phandle = <0xa4>; - allwinner,pins = "PH4", "PH5", "PH6", "PH7"; - allwinner,function = "uart3"; - allwinner,pname = "uart3_tx", "uart3_rx", "uart3_rts", "uart3_cts"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart4@0 { - linux,phandle = <0xa5>; - phandle = <0xa5>; - allwinner,pins = "PD2", "PD3", "PD4", "PD5"; - allwinner,function = "uart4"; - allwinner,pname = "uart4_tx", "uart4_rx", "uart4_rts", "uart4_cts"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi0@0 { - linux,phandle = <0xa6>; - phandle = <0xa6>; - allwinner,pins = "PC3"; - allwinner,function = "spi0"; - allwinner,pname = "spi0_cs0"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi0@1 { - linux,phandle = <0xa7>; - phandle = <0xa7>; - allwinner,pins = "PC2", "PC0", "PC1"; - allwinner,function = "spi0"; - allwinner,pname = "spi0_sclk", "spi0_mosi", "spi0_miso"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi1@0 { - linux,phandle = <0xa8>; - phandle = <0xa8>; - allwinner,pins = "PD0"; - allwinner,function = "spi1"; - allwinner,pname = "spi1_cs0"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi1@1 { - linux,phandle = <0xa9>; - phandle = <0xa9>; - allwinner,pins = "PD1", "PD2", "PD3"; - allwinner,function = "spi1"; - allwinner,pname = "spi1_sclk", "spi1_mosi", "spi1_miso"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - nand0@0 { - linux,phandle = <0xaa>; - phandle = <0xaa>; - allwinner,pins = "PC0", "PC1", "PC2", "PC5", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "nand0"; - allwinner,pname = "nand0_we", "nand0_ale", "nand0_cle", "nand0_nre", "nand0_d0", "nand0_d1", "nand0_d2", "nand0_d3", "nand0_d4", "nand0_d5", "nand0_d6", "nand0_d7", "nand0_ndqs"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x0>; - allwinner,drive = <0x1>; - allwinner,data = <0xffffffff>; - }; - - nand0@1 { - linux,phandle = <0xab>; - phandle = <0xab>; - allwinner,pins = "PC3", "PC4", "PC6", "PC7", "PC17", "PC18"; - allwinner,function = "nand0"; - allwinner,pname = "nand0_ce1", "nand0_ce0", "nand0_rb0", "nand0_rb1", "nand0_ce2", "nand0_ce3"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x1>; - allwinner,data = <0xffffffff>; - }; - - lcd0@0 { - linux,phandle = <0xac>; - phandle = <0xac>; - allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21"; - allwinner,function = "lcd0"; - allwinner,pname = "lcdd2", "lcdd3", "lcdd4", "lcdd5", "lcdd6", "lcdd7", "lcdd10", "lcdd11", "lcdd12", "lcdd13", "lcdd14", "lcdd15", "lcdd18", "lcdd19", "lcdd20", "lcdd21", "lcdd22", "lcdd23", "lcdclk", "lcdde", "lcdhsync", "lcdvsync"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x0>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - lcd0@1 { - linux,phandle = <0xad>; - phandle = <0xad>; - allwinner,pins = "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21"; - allwinner,function = "lcd0"; - allwinner,pname = "lcdd0", "lcdd1", "lcdd2", "lcdd3", "lcdd4", "lcdd5", "lcdd6", "lcdd7", "lcdd8", "lcdd9"; - allwinner,muxsel = <0x7>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - pwm0@0 { - linux,phandle = <0xae>; - phandle = <0xae>; - allwinner,pins = "PD22"; - allwinner,function = "pwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - pwm0@1 { - linux,phandle = <0xaf>; - phandle = <0xaf>; - allwinner,pins = "PD22"; - allwinner,function = "pwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x7>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - csi0@0 { - linux,phandle = <0xb0>; - phandle = <0xb0>; - allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13"; - allwinner,function = "csi0"; - allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7", "csi0_sck", "csi0_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - sdc0@0 { - linux,phandle = <0xb1>; - phandle = <0xb1>; - allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - allwinner,function = "sdc0"; - allwinner,pname = "sdc0_d1", "sdc0_d0", "sdc0_clk", "sdc0_cmd", "sdc0_d3", "sdc0_d2"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - sdc1@0 { - linux,phandle = <0xb2>; - phandle = <0xb2>; - allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; - allwinner,function = "sdc1"; - allwinner,pname = "sdc1_clk", "sdc1_cmd", "sdc1_d0", "sdc1_d1", "sdc1_d2", "sdc1_d3"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - sdc2@0 { - linux,phandle = <0xb3>; - phandle = <0xb3>; - allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "sdc2"; - allwinner,pname = "sdc2_ds", "sdc2_clk", "sdc2_cmd", "sdc2_d0", "sdc2_d1", "sdc2_d2", "sdc2_d3", "sdc2_d4", "sdc2_d5", "sdc2_d6", "sdc2_d7", "sdc2_emmc_rst"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - codec@0 { - linux,phandle = <0xb4>; - phandle = <0xb4>; - allwinner,pins = "PH7"; - allwinner,function = "codec"; - allwinner,pname = "gpio-spk"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - Vdevice@0 { - linux,phandle = <0xb8>; - phandle = <0xb8>; - allwinner,pins = "PB1", "PB2"; - allwinner,function = "Vdevice"; - allwinner,pname = "Vdevice_0", "Vdevice_1"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - }; - - pinctrl@0 { - compatible = "allwinner,axp-pinctrl"; - gpio-controller; - #size-cells = <0x0>; - #gpio-cells = <0x6>; - device_type = "axp_pio"; - linux,phandle = <0x31>; - phandle = <0x31>; - }; - - dma-controller@01c02000 { - compatible = "allwinner,sun50i-dma"; - reg = <0x0 0x1c02000 0x0 0x1000>; - interrupts = <0x0 0x32 0x4>; - clocks = <0xb>; - #dma-cells = <0x1>; - }; - - mbus-controller@01c62000 { - compatible = "allwinner,sun50i-mbus"; - reg = <0x0 0x1c62000 0x0 0x110>; - #mbus-cells = <0x1>; - }; - - arisc { - compatible = "allwinner,sunxi-arisc"; - #address-cells = <0x2>; - #size-cells = <0x2>; - clocks = <0xc 0xd 0x6 0x4>; - clock-names = "losc", "iosc", "hosc", "pll_periph0"; - powchk_used = <0x0>; - power_reg = <0x2309621>; - system_power = <0x32>; - }; - - arisc_space { - compatible = "allwinner,arisc_space"; - space1 = <0x40000 0x0 0x14000>; - space2 = <0x40100000 0x18000 0x4000>; - space3 = <0x40104000 0x0 0x1000>; - space4 = <0x40105000 0x0 0x1000>; - }; - - standby_space { - compatible = "allwinner,standby_space"; - space1 = <0x41020000 0x0 0x800>; - }; - - msgbox@1c17000 { - compatible = "allwinner,msgbox"; - clocks = <0xe>; - clock-names = "clk_msgbox"; - reg = <0x0 0x1c17000 0x0 0x1000>; - interrupts = <0x0 0x31 0x1>; - status = "okay"; - }; - - hwspinlock@1c18000 { - compatible = "allwinner,sunxi-hwspinlock"; - clocks = <0xf 0x10>; - clock-names = "clk_hwspinlock_rst", "clk_hwspinlock_bus"; - reg = <0x0 0x1c18000 0x0 0x1000>; - status = "okay"; - num-locks = <0x8>; - }; - - s_cir@1f02000 { - compatible = "allwinner,s_cir"; - reg = <0x0 0x1f02000 0x0 0x400>; - interrupts = <0x0 0x25 0x4>; - pinctrl-names = "default"; - pinctrl-0 = <0x11>; - clocks = <0x6 0x12>; - supply = "vcc-pl"; - ir_power_key_code = <0x0>; - ir_addr_code = <0x0>; - status = "disabled"; - device_type = "s_cir0"; - }; - - s_uart@1f02800 { - compatible = "allwinner,s_uart"; - reg = <0x0 0x1f02800 0x0 0x400>; - interrupts = <0x0 0x26 0x4>; - pinctrl-names = "default"; - status = "okay"; - device_type = "s_uart0"; - pinctrl-0 = <0xb5>; - }; - - s_rsb@1f03400 { - compatible = "allwinner,s_rsb"; - reg = <0x0 0x1f03400 0x0 0x400>; - interrupts = <0x0 0x27 0x4>; - pinctrl-names = "default"; - status = "okay"; - device_type = "s_rsb0"; - pinctrl-0 = <0xb6>; - }; - - s_jtag0 { - compatible = "allwinner,s_jtag"; - pinctrl-names = "default"; - status = "disabled"; - device_type = "s_jtag0"; - pinctrl-0 = <0xb7>; - }; - - timer@1c20c00 { - compatible = "allwinner,sunxi-timer"; - device_type = "timer"; - reg = <0x0 0x1c20c00 0x0 0x90>; - interrupts = <0x0 0x12 0x1>; - clock-frequency = <0x16e3600>; - timer-prescale = <0x10>; - }; - - rtc@01f00000 { - compatible = "allwinner,sun50i-rtc"; - device_type = "rtc"; - reg = <0x0 0x1f00000 0x0 0x218>; - interrupts = <0x0 0x28 0x4>; - gpr_offset = <0x100>; - gpr_len = <0x4>; - }; - - ve@01c0e000 { - compatible = "allwinner,sunxi-cedar-ve"; - reg = <0x0 0x1c0e000 0x0 0x1000 0x0 0x1c00000 0x0 0x10 0x0 0x1c20000 0x0 0x800>; - interrupts = <0x0 0x3a 0x4>; - clocks = <0x16 0x17>; - }; - - uart@01c28000 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart0"; - reg = <0x0 0x1c28000 0x0 0x400>; - interrupts = <0x0 0x0 0x4>; - clocks = <0x18>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x1a>; - uart0_port = <0x0>; - uart0_type = <0x2>; - status = "okay"; - pinctrl-0 = <0xa1>; - }; - - uart@01c28400 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart1"; - reg = <0x0 0x1c28400 0x0 0x400>; - interrupts = <0x0 0x1 0x4>; - clocks = <0x1b>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x1d>; - uart1_port = <0x1>; - uart1_type = <0x4>; - status = "okay"; - pinctrl-0 = <0xa2>; - }; - - uart@01c28800 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart2"; - reg = <0x0 0x1c28800 0x0 0x400>; - interrupts = <0x0 0x2 0x4>; - clocks = <0x1e>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x20>; - uart2_port = <0x2>; - uart2_type = <0x4>; - status = "disabled"; - pinctrl-0 = <0xa3>; - }; - - uart@01c28c00 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart3"; - reg = <0x0 0x1c28c00 0x0 0x400>; - interrupts = <0x0 0x3 0x4>; - clocks = <0x21>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x23>; - uart3_port = <0x3>; - uart3_type = <0x4>; - status = "disabled"; - pinctrl-0 = <0xa4>; - }; - - uart@01c29000 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart4"; - reg = <0x0 0x1c29000 0x0 0x400>; - interrupts = <0x0 0x4 0x4>; - clocks = <0x24>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x26>; - uart4_port = <0x4>; - uart4_type = <0x4>; - status = "disabled"; - pinctrl-0 = <0xa5>; - }; - - twi@0x01c2ac00 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi0"; - reg = <0x0 0x1c2ac00 0x0 0x400>; - interrupts = <0x0 0x6 0x4>; - clocks = <0x27>; - clock-frequency = <0x61a80>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x29>; - status = "okay"; - pinctrl-0 = <0x9f>; - }; - - twi@0x01c2b000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi1"; - reg = <0x0 0x1c2b000 0x0 0x400>; - interrupts = <0x0 0x7 0x4>; - clocks = <0x2a>; - clock-frequency = <0x30d40>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x2c>; - status = "okay"; - pinctrl-0 = <0xa0>; - }; - - twi@0x01c2b400 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi2"; - reg = <0x0 0x1c2b400 0x0 0x400>; - interrupts = <0x0 0x8 0x4>; - clocks = <0x2d>; - clock-frequency = <0x30d40>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x2e>; - pinctrl-1 = <0x2f>; - status = "disabled"; - }; - - usbc0@0 { - device_type = "usbc0"; - compatible = "allwinner,sunxi-otg-manager"; - usb_port_type = <0x1>; - usb_detect_type = <0x0>; - usb_det_vbus_gpio = "axp_ctrl"; - usb_host_init_state = <0x0>; - usb_regulator_io = "nocare"; - usb_wakeup_suspend = <0x0>; - usb_luns = <0x3>; - usb_serial_unique = <0x1>; - usb_serial_number = "20080411"; - rndis_wceis = <0x1>; - status = "okay"; - usb_id_gpio; - usb_drv_vbus_gpio = <0x31 0xfffe 0x3 0x1 0x0 0xffffffff 0x0>; - }; - - udc-controller@0x01c19000 { - compatible = "allwinner,sunxi-udc"; - reg = <0x0 0x1c19000 0x0 0x1000 0x0 0x1c00000 0x0 0x100>; - interrupts = <0x0 0x47 0x4>; - clocks = <0x32 0x33>; - status = "okay"; - }; - - ehci0-controller@0x01c1a000 { - compatible = "allwinner,sunxi-ehci0"; - reg = <0x0 0x1c1a000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x48 0x4>; - clocks = <0x32 0x34>; - hci_ctrl_no = <0x0>; - status = "okay"; - }; - - ohci0-controller@0x01c1a400 { - compatible = "allwinner,sunxi-ohci0"; - reg = <0x0 0x1c1a000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x49 0x4>; - clocks = <0x32 0x35>; - hci_ctrl_no = <0x0>; - status = "okay"; - }; - - usbc1@0 { - device_type = "usbc1"; - usb_host_init_state = <0x1>; - usb_regulator_io = "nocare"; - usb_wakeup_suspend = <0x0>; - usb_hsic_used = <0x0>; - usb_hsic_regulator_io = "vcc-hsic-12"; - usb_hsic_ctrl = <0x0>; - usb_hsic_usb3503_flag = <0x0>; - status = "okay"; - usb_port_type = <0x1>; - usb_detect_type = <0x0>; - usb_drv_vbus_gpio; - usb_hsic_rdy_gpio; - usb_hsic_hub_connect_gpio; - usb_hsic_int_n_gpio; - usb_hsic_reset_n_gpio; - }; - - ehci1-controller@0x01c1b000 { - compatible = "allwinner,sunxi-ehci1"; - reg = <0x0 0x1c1b000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x4a 0x4>; - clocks = <0x36 0x37 0x38 0x39 0x3a>; - hci_ctrl_no = <0x1>; - status = "okay"; - }; - - ohci1-controller@0x01c1b400 { - compatible = "allwinner,sunxi-ohci1"; - reg = <0x0 0x1c1b000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x4b 0x4>; - clocks = <0x36 0x3b>; - hci_ctrl_no = <0x1>; - status = "okay"; - }; - - codec@0x01c22c00 { - compatible = "allwinner,sunxi-internal-codec"; - reg = <0x0 0x1c22c00 0x0 0x478 0x0 0x1f015c0 0x0 0x0>; - clocks = <0x3c>; - pinctrl-names = "aif2-default", "aif3-default", "aif2-sleep", "aif3-sleep"; - pinctrl-1 = <0x3e>; - pinctrl-2 = <0x3f>; - pinctrl-3 = <0x40>; - gpio-spk = <0x30 0x7 0x7 0x1 0x1 0x1 0x1>; - headphonevol = <0x3b>; - spkervol = <0x1a>; - earpiecevol = <0x1e>; - maingain = <0x4>; - headsetmicgain = <0x4>; - adcagc_cfg = <0x0>; - adcdrc_cfg = <0x0>; - adchpf_cfg = <0x0>; - dacdrc_cfg = <0x0>; - dachpf_cfg = <0x0>; - aif1_lrlk_div = <0x40>; - aif2_lrlk_div = <0x40>; - aif2config = <0x0>; - aif3config = <0x0>; - pa_sleep_time = <0x15e>; - dac_digital_vol = <0xa0a0>; - status = "okay"; - linux,phandle = <0x4d>; - phandle = <0x4d>; - device_type = "codec"; - pinctrl-0 = <0xb4>; - }; - - i2s0-controller@0x01c22c00 { - compatible = "allwinner,sunxi-internal-i2s"; - reg = <0x0 0x1c22c00 0x0 0x478>; - clocks = <0x2 0x41>; - status = "okay"; - linux,phandle = <0x4c>; - phandle = <0x4c>; - device_type = "i2s"; - }; - - daudio@0x01c22000 { - compatible = "allwinner,sunxi-daudio"; - reg = <0x0 0x1c22000 0x0 0x58>; - clocks = <0x2 0x42>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x43>; - pinctrl-1 = <0x44>; - pcm_lrck_period = <0x20>; - pcm_lrckr_period = <0x1>; - slot_width_select = <0x20>; - pcm_lsb_first = <0x0>; - tx_data_mode = <0x0>; - rx_data_mode = <0x0>; - daudio_master = <0x4>; - audio_format = <0x1>; - signal_inversion = <0x1>; - frametype = <0x0>; - tdm_config = <0x1>; - tdm_num = <0x0>; - status = "disabled"; - linux,phandle = <0x4e>; - phandle = <0x4e>; - device_type = "daudio0"; - }; - - daudio@0x01c22400 { - compatible = "allwinner,sunxi-daudio"; - reg = <0x0 0x1c22400 0x0 0x58>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x45>; - pinctrl-1 = <0x46>; - clocks = <0x2 0x47>; - pcm_lrck_period = <0x20>; - pcm_lrckr_period = <0x1>; - slot_width_select = <0x20>; - pcm_lsb_first = <0x0>; - tx_data_mode = <0x0>; - rx_data_mode = <0x0>; - daudio_master = <0x4>; - audio_format = <0x1>; - signal_inversion = <0x1>; - frametype = <0x0>; - tdm_config = <0x1>; - tdm_num = <0x1>; - status = "disabled"; - linux,phandle = <0x4f>; - phandle = <0x4f>; - device_type = "daudio1"; - }; - - daudio@0x01c22800 { - compatible = "allwinner,sunxi-tdmhdmi"; - reg = <0x0 0x1c22800 0x0 0x58>; - clocks = <0x2 0x48>; - status = "okay"; - linux,phandle = <0x50>; - phandle = <0x50>; - device_type = "daudio2"; - }; - - spdif-controller@0x01c21000 { - compatible = "allwinner,sunxi-spdif"; - reg = <0x0 0x1c21000 0x0 0x38>; - clocks = <0x2 0x49>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x4a>; - pinctrl-1 = <0x4b>; - status = "disabled"; - linux,phandle = <0x51>; - phandle = <0x51>; - device_type = "spdif"; - }; - - sound@0 { - compatible = "allwinner,sunxi-codec-machine"; - interrupts = <0x0 0x1c 0x4>; - sunxi,i2s-controller = <0x4c>; - sunxi,audio-codec = <0x4d>; - aif2fmt = <0x3>; - aif3fmt = <0x3>; - aif2master = <0x1>; - hp_detect_case = <0x1>; - status = "okay"; - device_type = "sndcodec"; - }; - - sound@1 { - compatible = "allwinner,sunxi-daudio0-machine"; - sunxi,daudio0-controller = <0x4e>; - status = "disabled"; - device_type = "snddaudio0"; - }; - - sound@2 { - compatible = "allwinner,sunxi-daudio1-machine"; - sunxi,daudio1-controller = <0x4f>; - status = "disabled"; - device_type = "snddaudio1"; - }; - - sound@3 { - compatible = "allwinner,sunxi-hdmi-machine"; - sunxi,hdmi-controller = <0x50>; - status = "okay"; - device_type = "sndhdmi"; - }; - - sound@4 { - compatible = "allwinner,sunxi-spdif-machine"; - sunxi,spdif-controller = <0x51>; - status = "disabled"; - device_type = "sndspdif"; - }; - - spi@01c68000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-spi"; - device_type = "spi0"; - reg = <0x0 0x1c68000 0x0 0x1000>; - interrupts = <0x0 0x41 0x4>; - clocks = <0x4 0x52>; - clock-frequency = <0x5f5e100>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x55>; - spi0_cs_number = <0x1>; - spi0_cs_bitmap = <0x1>; - status = "disabled"; - pinctrl-0 = <0xa6 0xa7>; - }; - - spi@01c69000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-spi"; - device_type = "spi1"; - reg = <0x0 0x1c69000 0x0 0x1000>; - interrupts = <0x0 0x42 0x4>; - clocks = <0x4 0x56>; - clock-frequency = <0x5f5e100>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x59>; - spi1_cs_number = <0x1>; - spi1_cs_bitmap = <0x1>; - status = "disabled"; - pinctrl-0 = <0xa8 0xa9>; - }; - - sdmmc@01C11000 { - compatible = "allwinner,sun50i-sdmmc2"; - device_type = "sdc2"; - reg = <0x0 0x1c11000 0x0 0x1000>; - interrupts = <0x0 0x3e 0x104>; - clocks = <0x6 0x5a 0x5b 0x5c 0x5d>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x5f>; - bus-width = <0x8>; - max-frequency = <0x5f5e100>; - sdc_tm4_sm0_freq0 = <0x0>; - sdc_tm4_sm0_freq1 = <0x0>; - sdc_tm4_sm1_freq0 = <0x0>; - sdc_tm4_sm1_freq1 = <0x0>; - sdc_tm4_sm2_freq0 = <0x0>; - sdc_tm4_sm2_freq1 = <0x0>; - sdc_tm4_sm3_freq0 = <0x5000000>; - sdc_tm4_sm3_freq1 = <0x405>; - sdc_tm4_sm4_freq0 = <0x50000>; - sdc_tm4_sm4_freq1 = <0x408>; - status = "okay"; - non-removable; - pinctrl-0 = <0xb3>; - cd-gpios; - sunxi-power-save-mode; - sunxi-dis-signal-vol-sw; - mmc-ddr-1_8v; - mmc-hs200-1_8v; - mmc-hs400-1_8v; - vmmc = "vcc-emmc"; - vqmmc = "vcc-lpddr"; - vdmmc = "none"; - }; - - sdmmc@01c0f000 { - compatible = "allwinner,sun50i-sdmmc0"; - device_type = "sdc0"; - reg = <0x0 0x1c0f000 0x0 0x1000>; - interrupts = <0x0 0x3c 0x104>; - clocks = <0x6 0x5a 0x60 0x61 0x62>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x64>; - max-frequency = <0x2faf080>; - bus-width = <0x4>; - broken-cd; - status = "okay"; - pinctrl-0 = <0xb1>; - cd-gpios = <0x30 0x5 0x6 0x0 0x1 0x2 0xffffffff>; - sunxi-power-save-mode; - vmmc = "none"; - vqmmc = "none"; - vdmmc = "vcc-sdc"; - }; - - sdmmc@1C10000 { - compatible = "allwinner,sun50i-sdmmc1"; - device_type = "sdc1"; - reg = <0x0 0x1c10000 0x0 0x1000>; - interrupts = <0x0 0x3d 0x104>; - clocks = <0x6 0x5a 0x65 0x66 0x67>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x69>; - max-frequency = <0x8f0d180>; - bus-width = <0x4>; - sunxi-dly-52M-ddr4 = <0x1 0x0 0x0 0x0 0x2>; - sunxi-dly-104M = <0x1 0x0 0x0 0x0 0x1>; - sunxi-dly-208M = <0x1 0x0 0x0 0x0 0x1>; - status = "okay"; - pinctrl-0 = <0xb2>; - sd-uhs-sdr50; - sd-uhs-ddr50; - sd-uhs-sdr104; - cap-sdio-irq; - keep-power-in-suspend; - ignore-pm-notify; - }; - - disp@01000000 { - compatible = "allwinner,sun50i-disp"; - reg = <0x0 0x1000000 0x0 0x300000 0x0 0x1c0c000 0x0 0x17fc 0x0 0x1ca0000 0x0 0x10fc>; - interrupts = <0x0 0x56 0x104 0x0 0x57 0x104 0x0 0x59 0x104>; - clocks = <0x6a 0x6b 0x6c 0x6d 0x6e>; - status = "okay"; - device_type = "disp"; - disp_init_enable = <0x1>; - disp_mode = <0x0>; - screen0_output_type = <0x1>; - screen0_output_mode = <0x4>; - screen1_output_type = <0x3>; - screen1_output_mode = <0xa>; - fb0_format = <0x0>; - fb0_width = <0x0>; - fb0_height = <0x0>; - fb1_format = <0x0>; - fb1_width = <0x0>; - fb1_height = <0x0>; - }; - - lcd0@01c0c000 { - compatible = "allwinner,sunxi-lcd0"; - pinctrl-names = "active", "sleep"; - status = "okay"; - device_type = "lcd0"; - lcd_used = <0x1>; - lcd_driver_name = "anx9804_panel"; - lcd_model_name = <0x2>; - lcd_backlight = <0x32>; - lcd_if = <0x0>; - lcd_x = <0x556>; - lcd_y = <0x300>; - lcd_width = <0x100>; - lcd_height = <0x90>; - lcd_dclk_freq = <0x48>; - lcd_pwm_used = <0x1>; - lcd_pwm_ch = <0x0>; - lcd_pwm_freq = <0x2ee0>; - lcd_pwm_pol = <0x0>; - lcd_pwm_max_limit = <0xfa>; - lcd_hbp = <0x40>; - lcd_ht = <0x5dc>; - lcd_hspw = <0x36>; - lcd_vbp = <0x14>; - lcd_vt = <0x320>; - lcd_vspw = <0x5>; - lcd_lvds_if = <0x0>; - lcd_lvds_colordepth = <0x0>; - lcd_lvds_mode = <0x0>; - lcd_frm = <0x1>; - lcd_hv_clk_phase = <0x0>; - lcd_hv_sync_polarity = <0x0>; - lcd_dsi_if = <0x0>; - lcd_dsi_lane = <0x4>; - lcd_dsi_format = <0x0>; - lcd_dsi_te = <0x0>; - lcd_gamma_en = <0x0>; - lcd_bright_curve_en = <0x0>; - lcd_cmap_en = <0x0>; - lcd_edp_tx_rate = <0x2>; - lcd_edp_tx_lane = <0x2>; - lcd_edp_colordepth = <0x1>; - lcdgamma4iep = <0x16>; - lcd_bl_en = <0x30 0x3 0x17 0x1 0x0 0xffffffff 0x1>; - lcd_bl_en_power = "none"; - lcd_power = "vcc-lvds"; - lcd_power1 = "vcc-mipi"; - lcd_power2 = "vcc-hsic-12"; - lcd_gpio_0 = <0x30 0x3 0x18 0x1 0x0 0xffffffff 0x0>; - lcd_gpio_1 = <0x30 0x7 0x6 0x1 0x0 0xffffffff 0x1>; - lcd_gpio_2 = <0x30 0x0 0x8 0x0 0x1 0xffffffff 0x0>; - lcd_gpio_3 = <0x30 0x0 0x9 0x0 0x1 0xffffffff 0x0>; - pinctrl-0 = <0xac>; - lcd_pin_power = "vcc-pd"; - pinctrl-1 = <0xad>; - }; - - hdmi@01ee0000 { - compatible = "allwinner,sunxi-hdmi"; - reg = <0x0 0x1ee0000 0x0 0x20000>; - clocks = <0x6f 0x70>; - device_type = "hdmi"; - status = "okay"; - hdmi_power = "vcc-hdmi-33"; - hdmi_hdcp_enable = <0x0>; - hdmi_cts_compatibility = <0x0>; - }; - - tr@01000000 { - compatible = "allwinner,sun50i-tr"; - reg = <0x0 0x1000000 0x0 0x200bc>; - interrupts = <0x0 0x60 0x104>; - clocks = <0x6a>; - status = "okay"; - }; - - pwm@01c21400 { - compatible = "allwinner,sunxi-pwm"; - reg = <0x0 0x1c21400 0x0 0x3c>; - pwm-number = <0x1>; - pwm-base = <0x0>; - pwms = <0x71>; - }; - - pwm0@01c21400 { - compatible = "allwinner,sunxi-pwm0"; - pinctrl-names = "active", "sleep"; - reg_base = <0x1c21400>; - reg_busy_offset = <0x0>; - reg_busy_shift = <0x1c>; - reg_enable_offset = <0x0>; - reg_enable_shift = <0x4>; - reg_clk_gating_offset = <0x0>; - reg_clk_gating_shift = <0x6>; - reg_bypass_offset = <0x0>; - reg_bypass_shift = <0x9>; - reg_pulse_start_offset = <0x0>; - reg_pulse_start_shift = <0x8>; - reg_mode_offset = <0x0>; - reg_mode_shift = <0x7>; - reg_polarity_offset = <0x0>; - reg_polarity_shift = <0x5>; - reg_period_offset = <0x4>; - reg_period_shift = <0x10>; - reg_period_width = <0x10>; - reg_active_offset = <0x4>; - reg_active_shift = <0x0>; - reg_active_width = <0x10>; - reg_prescal_offset = <0x0>; - reg_prescal_shift = <0x0>; - reg_prescal_width = <0x4>; - linux,phandle = <0x71>; - phandle = <0x71>; - device_type = "pwm0"; - pwm_used = <0x1>; - pinctrl-0 = <0xae>; - pinctrl-1 = <0xaf>; - }; - - s_pwm@1f03800 { - compatible = "allwinner,sunxi-s_pwm"; - reg = <0x0 0x1f03800 0x0 0x3c>; - pwm-number = <0x1>; - pwm-base = <0x10>; - pwms = <0x72>; - }; - - spwm0@0x01f03800 { - compatible = "allwinner,sunxi-pwm16"; - pinctrl-names = "active", "sleep"; - reg_base = <0x1f03800>; - reg_busy_offset = <0x0>; - reg_busy_shift = <0x1c>; - reg_enable_offset = <0x0>; - reg_enable_shift = <0x4>; - reg_clk_gating_offset = <0x0>; - reg_clk_gating_shift = <0x6>; - reg_bypass_offset = <0x0>; - reg_bypass_shift = <0x9>; - reg_pulse_start_offset = <0x0>; - reg_pulse_start_shift = <0x8>; - reg_mode_offset = <0x0>; - reg_mode_shift = <0x7>; - reg_polarity_offset = <0x0>; - reg_polarity_shift = <0x5>; - reg_period_offset = <0x4>; - reg_period_shift = <0x10>; - reg_period_width = <0x10>; - reg_active_offset = <0x4>; - reg_active_shift = <0x0>; - reg_active_width = <0x10>; - reg_prescal_offset = <0x0>; - reg_prescal_shift = <0x0>; - reg_prescal_width = <0x4>; - linux,phandle = <0x72>; - phandle = <0x72>; - }; - - boot_disp { - compatible = "allwinner,boot_disp"; - device_type = "boot_disp"; - output_disp = <0x0>; - output_type = <0x1>; - output_mode = <0x4>; - }; - - cci@0x01cb3000 { - compatible = "allwinner,sunxi-csi_cci"; - reg = <0x0 0x1cb3000 0x0 0x1000>; - interrupts = <0x0 0x55 0x4>; - status = "okay"; - }; - - csi_res@0x01cb0000 { - compatible = "allwinner,sunxi-csi"; - reg = <0x0 0x1cb0000 0x0 0x1000>; - status = "okay"; - }; - - vfe@0 { - device_type = "csi0"; - compatible = "allwinner,sunxi-vfe"; - interrupts = <0x0 0x54 0x4>; - clocks = <0x73 0x74 0x75 0x4 0x6 0x5>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x77>; - csi0_sensor_list = <0x0>; - status = "okay"; - pinctrl-0 = <0xb0>; - csi0_mck = <0x30 0x4 0x1 0x0 0x0 0x1 0x0>; - - dev@0 { - csi0_dev0_mname = "bf3703"; - csi0_dev0_twi_addr = <0x3e>; - csi0_dev0_pos = "rear"; - csi0_dev0_isp_used = <0x1>; - csi0_dev0_fmt = <0x0>; - csi0_dev0_stby_mode = <0x1>; - csi0_dev0_vflip = <0x0>; - csi0_dev0_hflip = <0x0>; - csi0_dev0_iovdd = "iovdd-csi"; - csi0_dev0_iovdd_vol = <0x2ab980>; - csi0_dev0_avdd = "avdd-csi"; - csi0_dev0_avdd_vol = <0x2ab980>; - csi0_dev0_dvdd = "dvdd-csi-18"; - csi0_dev0_dvdd_vol = <0x1b7740>; - csi0_dev0_flash_used = <0x0>; - csi0_dev0_flash_type = <0x2>; - csi0_dev0_flvdd = "vdd-csi-led"; - csi0_dev0_flvdd_vol = <0x325aa0>; - csi0_dev0_act_used = <0x0>; - csi0_dev0_act_name = "ad5820_act"; - csi0_dev0_act_slave = <0x18>; - status = "okay"; - device_type = "csi0_dev0"; - csi0_dev0_afvdd; - csi0_dev0_afvdd_vol; - csi0_dev0_power_en; - csi0_dev0_reset = <0x30 0x4 0xe 0x0 0x0 0x1 0x0>; - csi0_dev0_pwdn = <0x30 0x4 0xf 0x0 0x0 0x1 0x0>; - csi0_dev0_flash_en; - csi0_dev0_flash_mode; - csi0_dev0_af_pwdn; - }; - - dev@1 { - csi0_dev1_mname = "gc2145"; - csi0_dev1_twi_addr = <0x78>; - csi0_dev1_pos = "front"; - csi0_dev1_isp_used = <0x1>; - csi0_dev1_fmt = <0x0>; - csi0_dev1_stby_mode = <0x1>; - csi0_dev1_vflip = <0x0>; - csi0_dev1_hflip = <0x0>; - csi0_dev1_iovdd = "iovdd-csi"; - csi0_dev1_iovdd_vol = <0x2ab980>; - csi0_dev1_avdd = "avdd-csi"; - csi0_dev1_avdd_vol = <0x2ab980>; - csi0_dev1_dvdd = "dvdd-csi-18"; - csi0_dev1_dvdd_vol = <0x1b7740>; - csi0_dev1_flash_used = <0x0>; - csi0_dev1_flash_type = <0x2>; - csi0_dev1_flvdd = "vdd-csi-led"; - csi0_dev1_flvdd_vol = <0x325aa0>; - csi0_dev1_act_used = <0x0>; - csi0_dev1_act_name = "ad5820_act"; - csi0_dev1_act_slave = <0x18>; - status = "disabled"; - device_type = "csi0_dev1"; - csi0_dev1_afvdd; - csi0_dev1_afvdd_vol; - csi0_dev1_power_en; - csi0_dev1_reset = <0x30 0x4 0x10 0x0 0x0 0x1 0x0>; - csi0_dev1_pwdn = <0x30 0x4 0x11 0x0 0x0 0x1 0x0>; - csi0_dev1_flash_en; - csi0_dev1_flash_mode; - csi0_dev1_af_pwdn; - }; - }; - - vdevice@0 { - compatible = "allwinner,sun50i-vdevice"; - pinctrl-names = "default"; - test-gpios = <0x79 0xb 0x0 0x1 0x2 0x3 0x4>; - status = "okay"; - device_type = "Vdevice"; - pinctrl-0 = <0xb8>; - }; - - ce@1c15000 { - compatible = "allwinner,sunxi-ce"; - reg = <0x0 0x1c15000 0x0 0x80 0x0 0x1c15800 0x0 0x80>; - interrupts = <0x0 0x5e 0xff01 0x0 0x50 0xff01>; - clock-frequency = <0x11e1a300 0xbebc200>; - clocks = <0x7a 0x7b>; - }; - - deinterlace@0x01e00000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sunxi-deinterlace"; - reg = <0x0 0x1e00000 0x0 0x77c>; - interrupts = <0x0 0x5d 0x4>; - clocks = <0x7c 0x4>; - status = "okay"; - device_type = "di"; - }; - - smartcard@0x01c2c400 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sunxi-scr"; - reg = <0x0 0x1c2c400 0x0 0x100>; - interrupts = <0x0 0x53 0x4>; - clocks = <0x7d 0x7e>; - clock-frequency = <0x16e3600>; - pinctrl-names = "default"; - pinctrl-0 = <0x7f>; - status = "okay"; - device_type = "smc"; - smc_used; - smc_rst; - smc_vppen; - smc_vppp; - smc_det; - smc_vccen; - smc_sck; - smc_sda; - }; - - nmi@0x01f00c00 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sunxi-nmi"; - reg = <0x0 0x1f00c00 0x0 0x50>; - nmi_irq_ctrl = <0xc>; - nmi_irq_en = <0x40>; - nmi_irq_status = <0x10>; - nmi_irq_mask = <0x50>; - status = "okay"; - }; - - pmu0@0 { - compatible = "allwinner,pmu0"; - device_type = "pmu0"; - pmu_batdeten = <0x1>; - pmu_init_chgend_rate = <0x14>; - pmu_init_chg_enabled = <0x1>; - pmu_init_adc_freq = <0x320>; - pmu_init_adcts_freq = <0x320>; - pmu_init_chg_pretime = <0x46>; - pmu_init_chg_csttime = <0x2d0>; - pmu_batt_cap_correct = <0x1>; - pmu_chg_end_on_en = <0x0>; - pmu_pwroff_vol = <0xce4>; - pmu_pwron_vol = <0xa28>; - pmu_powkey_off_delay_time = <0x0>; - pmu_pwrok_time = <0x40>; - pmu_reset_shutdown_en = <0x1>; - pmu_restvol_adjust_time = <0x3c>; - pmu_ocv_cou_adjust_time = <0x3c>; - pmu_vbusen_func = <0x1>; - pmu_reset = <0x0>; - pmu_IRQ_wakeup = <0x1>; - pmu_hot_shutdowm = <0x1>; - pmu_inshort = <0x0>; - pmu_bat_shutdown_ltf = <0xc80>; - pmu_bat_shutdown_htf = <0xed>; - status = "okay"; - pmu_id = <0x6>; - pmu_twi_addr = <0x34>; - pmu_twi_id = <0x1>; - pmu_irq_id = <0x40>; - pmu_chg_ic_temp = <0x0>; - pmu_battery_rdc = <0x79>; - pmu_battery_cap = <0x27dc>; - pmu_runtime_chgcur = <0x708>; - pmu_suspend_chgcur = <0x5dc>; - pmu_shutdown_chgcur = <0x5dc>; - pmu_init_chgvol = <0x1068>; - pmu_ac_vol = <0xfa0>; - pmu_ac_cur = <0xdac>; - pmu_usbpc_vol = <0x1130>; - pmu_usbpc_cur = <0x1f4>; - pmu_battery_warning_level1 = <0xf>; - pmu_battery_warning_level2 = <0x0>; - pmu_chgled_func = <0x1>; - pmu_chgled_type = <0x0>; - pmu_bat_para1 = <0x0>; - pmu_bat_para2 = <0x0>; - pmu_bat_para3 = <0x0>; - pmu_bat_para4 = <0x0>; - pmu_bat_para5 = <0x0>; - pmu_bat_para6 = <0x0>; - pmu_bat_para7 = <0x1>; - pmu_bat_para8 = <0x1>; - pmu_bat_para9 = <0x2>; - pmu_bat_para10 = <0x2>; - pmu_bat_para11 = <0x3>; - pmu_bat_para12 = <0xa>; - pmu_bat_para13 = <0x12>; - pmu_bat_para14 = <0x1e>; - pmu_bat_para15 = <0x2c>; - pmu_bat_para16 = <0x32>; - pmu_bat_para17 = <0x36>; - pmu_bat_para18 = <0x3a>; - pmu_bat_para19 = <0x3d>; - pmu_bat_para20 = <0x42>; - pmu_bat_para21 = <0x48>; - pmu_bat_para22 = <0x4d>; - pmu_bat_para23 = <0x52>; - pmu_bat_para24 = <0x55>; - pmu_bat_para25 = <0x5b>; - pmu_bat_para26 = <0x60>; - pmu_bat_para27 = <0x62>; - pmu_bat_para28 = <0x64>; - pmu_bat_para29 = <0x64>; - pmu_bat_para30 = <0x64>; - pmu_bat_para31 = <0x64>; - pmu_bat_para32 = <0x64>; - pmu_bat_charge_ltf = <0x8d5>; - pmu_bat_charge_htf = <0x184>; - pmu_powkey_off_time = <0x1770>; - pmu_powkey_off_func = <0x0>; - pmu_powkey_off_en = <0x1>; - pmu_powkey_long_time = <0x5dc>; - pmu_powkey_on_time = <0x3e8>; - power_start = <0x0>; - }; - - regu@0 { - compatible = "allwinner,pmu0_regu"; - regulator_count = <0x17>; - status = "okay"; - device_type = "pmu0_regu"; - regulator1 = "axp81x_dcdc1 none vcc-nand vcc-emmc vcc-sdc vcc-usb-30 vcc-io vcc-pd"; - regulator2 = "axp81x_dcdc2 none vdd-cpua"; - regulator3 = "axp81x_dcdc3 none"; - regulator4 = "axp81x_dcdc4 none"; - regulator5 = "axp81x_dcdc5 none vcc-dram"; - regulator6 = "axp81x_dcdc6 none vdd-sys"; - regulator7 = "axp81x_dcdc7 none"; - regulator8 = "axp81x_rtc none"; - regulator9 = "axp81x_aldo1 none vdd-csi-led iovdd-csi vcc-pe"; - regulator10 = "axp81x_aldo2 none vcc-pl"; - regulator11 = "axp81x_aldo3 none vcc-avcc vcc-pll"; - regulator12 = "axp81x_dldo1 none vcc-hdmi-33 vcc-dsi-33 vcc-sensor"; - regulator13 = "axp81x_dldo2 none vcc-mipi"; - regulator14 = "axp81x_dldo3 none avdd-csi"; - regulator15 = "axp81x_dldo4 none vcc-wifi-io"; - regulator16 = "axp81x_eldo1 none vcc-cpvdd vcc-pc vcc-pg"; - regulator17 = "axp81x_eldo2 none vcc-lcd-0 hall-vcc-18"; - regulator18 = "axp81x_eldo3 none dvdd-csi-18"; - regulator19 = "axp81x_fldo1 none vcc-hsic-12"; - regulator20 = "axp81x_fldo2 none vdd-cpus"; - regulator21 = "axp81x_gpio0ldo none vcc-ctp"; - regulator22 = "axp81x_gpio1ldo none"; - regulator23 = "axp81x_dc1sw none vcc-lvds"; - }; - - nand0@01c03000 { - compatible = "allwinner,sun50i-nand"; - device_type = "nand0"; - reg = <0x0 0x1c03000 0x0 0x1000>; - interrupts = <0x0 0x46 0x4>; - clocks = <0x4 0x80>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x83>; - nand0_regulator1 = "vcc-nand"; - nand0_regulator2 = "none"; - nand0_cache_level = <0x55aaaa55>; - nand0_flush_cache_num = <0x55aaaa55>; - nand0_capacity_level = <0x55aaaa55>; - nand0_id_number_ctl = <0x55aaaa55>; - nand0_print_level = <0x55aaaa55>; - nand0_p0 = <0x55aaaa55>; - nand0_p1 = <0x55aaaa55>; - nand0_p2 = <0x55aaaa55>; - nand0_p3 = <0x55aaaa55>; - status = "okay"; - nand0_support_2ch = <0x0>; - pinctrl-0 = <0xaa 0xab>; - }; - - thermal_sensor { - compatible = "allwinner,thermal_sensor"; - reg = <0x0 0x1c25000 0x0 0x400>; - interrupts = <0x0 0x1f 0x0>; - clocks = <0x6 0x84>; - sensor_num = <0x3>; - shut_temp = <0x78>; - status = "okay"; - - combine0 { - #thermal-sensor-cells = <0x1>; - combine_cnt = <0x3>; - combine_type = "max"; - combine_chn = <0x0 0x1 0x2>; - linux,phandle = <0x85>; - phandle = <0x85>; - }; - }; - - cpu_budget_cool { - compatible = "allwinner,budget_cooling"; - #cooling-cells = <0x2>; - status = "okay"; - state_cnt = <0xa>; - cluster_num = <0x1>; - state0 = <0x119400 0x4>; - state1 = <0x10d880 0x4>; - state2 = <0x101d00 0x4>; - state3 = <0xf6180 0x4>; - state4 = <0xea600 0x4>; - state5 = <0xdea80 0x4>; - state6 = <0xc7380 0x4>; - state7 = <0x9e340 0x4>; - state8 = <0x9e340 0x2>; - state9 = <0x9e340 0x1>; - linux,phandle = <0x87>; - phandle = <0x87>; - }; - - gpu_cooling { - compatible = "allwinner,gpu_cooling"; - reg = <0x0 0x0 0x0 0x0>; - #cooling-cells = <0x2>; - status = "okay"; - state_cnt = <0x3>; - state0 = <0x0>; - state1 = <0x168>; - state2 = <0x90>; - linux,phandle = <0x8c>; - phandle = <0x8c>; - }; - - thermal-zones { - - soc_thermal { - polling-delay-passive = <0x1f4>; - polling-delay = <0x7d0>; - thermal-sensors = <0x85 0x0>; - - trips { - - t0 { - temperature = <0x50>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x86>; - phandle = <0x86>; - }; - - t1 { - temperature = <0x55>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x88>; - phandle = <0x88>; - }; - - t2 { - temperature = <0x5a>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x89>; - phandle = <0x89>; - }; - - t3 { - temperature = <0x5f>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x8a>; - phandle = <0x8a>; - }; - - t4 { - temperature = <0x55>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x8b>; - phandle = <0x8b>; - }; - - t5 { - temperature = <0x5f>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x8d>; - phandle = <0x8d>; - }; - - t6 { - temperature = <0x6e>; - type = "critical"; - hysteresis = <0x0>; - }; - }; - - cooling-maps { - - bind0 { - contribution = <0x0>; - trip = <0x86>; - cooling-device = <0x87 0x1 0x1>; - }; - - bind1 { - contribution = <0x0>; - trip = <0x88>; - cooling-device = <0x87 0x2 0x2>; - }; - - bind2 { - contribution = <0x0>; - trip = <0x89>; - cooling-device = <0x87 0x3 0x6>; - }; - - bind3 { - contribution = <0x0>; - trip = <0x8a>; - cooling-device = <0x87 0x7 0x9>; - }; - - bind4 { - contribution = <0x0>; - trip = <0x8b>; - cooling-device = <0x8c 0x1 0x1>; - }; - - bind5 { - contribution = <0x0>; - trip = <0x8d>; - cooling-device = <0x8c 0x2 0x2>; - }; - }; - }; - }; - - keyboard { - compatible = "allwinner,keyboard_2000mv"; - reg = <0x0 0x1c21800 0x0 0x400>; - interrupts = <0x0 0x1e 0x0>; - status = "okay"; - key_cnt = <0x5>; - key1 = <0xf0 0x73>; - key2 = <0x1f4 0x72>; - key3 = <0x2bc 0x8b>; - key4 = <0x37a 0x1c>; - key5 = <0x7d0 0x66>; - }; - - eth@01c30000 { - compatible = "allwinner,sunxi-gmac"; - reg = <0x0 0x1c30000 0x0 0x40000 0x0 0x1c00000 0x0 0x30>; - pinctrl-names = "default"; - pinctrl-0 = <0x8e>; - interrupts = <0x0 0x52 0x4>; - interrupt-names = "gmacirq"; - clocks = <0x8f>; - clock-names = "gmac"; - phy-mode = "rgmii"; - tx-delay = <0x7>; - rx-delay = <0x1f>; - gmac_power1 = "axp81x_dldo2:2500000"; - gmac_power2 = "axp81x_eldo2:1800000"; - gmac_power3 = "axp81x_fldo1:1200000"; - status = "disable"; - }; - - product { - device_type = "product"; - version = "100"; - machine = "evb"; - }; - - platform { - device_type = "platform"; - eraseflag = <0x1>; - }; - - target { - device_type = "target"; - boot_clock = <0x3f0>; - storage_type = <0xffffffff>; - burn_key = <0x0>; - }; - - power_sply { - device_type = "power_sply"; - dcdc1_vol = <0xf4f24>; - dcdc2_vol = <0xf468c>; - dcdc6_vol = <0xf468c>; - aldo1_vol = <0xaf0>; - aldo2_vol = <0xf4948>; - aldo3_vol = <0xf4df8>; - dldo1_vol = <0xce4>; - dldo2_vol = <0x9c4>; - dldo3_vol = <0xaf0>; - dldo4_vol = <0xf4f24>; - eldo1_vol = <0xf4948>; - eldo2_vol = <0x708>; - eldo3_vol = <0x708>; - fldo1_vol = <0x4b0>; - fldo2_vol = <0xf468c>; - gpio0_vol = <0xf4e5c>; - }; - - card_boot { - device_type = "card_boot"; - logical_start = <0xa000>; - sprite_gpio0; - }; - - pm_para { - device_type = "pm_para"; - standby_mode = <0x1>; - }; - - card0_boot_para { - device_type = "card0_boot_para"; - card_ctrl = <0x0>; - card_high_speed = <0x1>; - card_line = <0x4>; - pinctrl-0 = <0x99>; - }; - - card2_boot_para { - device_type = "card2_boot_para"; - sdc_io_1v8 = <0x1>; - card_ctrl = <0x2>; - card_high_speed = <0x1>; - card_line = <0x8>; - pinctrl-0 = <0x9a>; - sdc_ex_dly_used = <0x2>; - tm4_smx_fx_0 = <0x0>; - tm4_smx_fx_1 = <0x0>; - tm4_smx_fx_2 = <0x2fffff>; - tm4_smx_fx_3 = <0x0>; - tm4_smx_fx_4 = <0xdffff>; - tm4_smx_fx_5 = <0x0>; - tm4_smx_fx_6 = <0xd2fffff>; - tm4_smx_fx_7 = <0xb2d>; - tm4_smx_fx_8 = <0x0>; - tm4_smx_fx_9 = <0x0>; - }; - - twi_para { - device_type = "twi_para"; - twi_port = <0x0>; - pinctrl-0 = <0x9b>; - }; - - uart_para { - device_type = "uart_para"; - uart_debug_port = <0x0>; - pinctrl-0 = <0x9c>; - }; - - jtag_para { - device_type = "jtag_para"; - jtag_enable = <0x0>; - pinctrl-0 = <0x9d>; - }; - - clock { - device_type = "clock"; - pll4 = <0x12c>; - pll6 = <0x258>; - pll8 = <0x168>; - pll9 = <0x129>; - pll10 = <0x108>; - }; - - gmac_para { - device_type = "gmac_para"; - gmac_used = <0x0>; - pinctrl-0 = <0x9e>; - }; - - rtp_para { - device_type = "rtp_para"; - rtp_used = <0x0>; - rtp_screen_size = <0x5>; - rtp_regidity_level = <0x5>; - rtp_press_threshold_enable = <0x0>; - rtp_press_threshold = <0x1f40>; - rtp_sensitive_level = <0xf>; - rtp_exchange_x_y_flag = <0x0>; - }; - - ctp { - device_type = "ctp"; - compatible = "allwinner,sun50i-ctp-para"; - status = "disabled"; - ctp_name = "gt9271_D116"; - ctp_twi_id = <0x0>; - ctp_twi_addr = <0x40>; - ctp_screen_max_x = <0x556>; - ctp_screen_max_y = <0x300>; - ctp_revert_x_flag = <0x0>; - ctp_revert_y_flag = <0x0>; - ctp_exchange_x_y_flag = <0x0>; - ctp_int_port = <0x30 0x7 0x4 0x6 0xffffffff 0xffffffff 0xffffffff>; - ctp_wakeup = <0x30 0x7 0x8 0x1 0xffffffff 0xffffffff 0x1>; - ctp_power_ldo_vol = <0xce4>; - ctp_power_io; - }; - - ctp_list { - device_type = "ctp_list"; - compatible = "allwinner,sun50i-ctp-list"; - status = "okay"; - gslX680new = <0x1>; - gt9xx_ts = <0x0>; - gt9xxf_ts = <0x1>; - gt9xxnew_ts = <0x0>; - gt82x = <0x1>; - zet622x = <0x1>; - aw5306_ts = <0x1>; - }; - - tkey_para { - device_type = "tkey_para"; - tkey_used = <0x0>; - tkey_twi_id; - tkey_twi_addr; - tkey_int; - }; - - motor_para { - device_type = "motor_para"; - motor_used = <0x0>; - motor_shake = <0x31 0xfffe 0x3 0x1 0xffffffff 0xffffffff 0x1>; - }; - - tvout_para { - device_type = "tvout_para"; - tvout_used; - tvout_channel_num; - tv_en; - }; - - tvin_para { - device_type = "tvin_para"; - tvin_used; - tvin_channel_num; - }; - - serial_feature { - device_type = "serial_feature"; - sn_filename = "sn.txt"; - }; - - gsensor { - device_type = "gsensor"; - compatible = "allwinner,sun50i-gsensor-para"; - status = "disabled"; - gsensor_twi_id = <0x1>; - gsensor_twi_addr = <0x1d>; - gsensor_vcc_io = "vcc-sensor"; - gsensor_vcc_io_val = <0xce4>; - gsensor_int1 = <0x30 0x7 0x5 0x6 0x1 0xffffffff 0xffffffff>; - gsensor_int2 = <0x30 0x7 0x6 0x6 0x1 0xffffffff 0xffffffff>; - }; - - gsensor_list { - device_type = "gsensor_list"; - compatible = "allwinner,sun50i-gsensor-list-para"; - gsensor_list__used = <0x0>; - lsm9ds0_acc_mag = <0x1>; - bma250 = <0x1>; - mma8452 = <0x1>; - mma7660 = <0x1>; - mma865x = <0x1>; - afa750 = <0x1>; - lis3de_acc = <0x1>; - lis3dh_acc = <0x1>; - kxtik = <0x1>; - dmard10 = <0x0>; - dmard06 = <0x1>; - mxc622x = <0x1>; - fxos8700 = <0x1>; - lsm303d = <0x0>; - sc7a30 = <0x1>; - }; - - 3g_para { - device_type = "3g_para"; - 3g_used = <0x0>; - 3g_usbc_num = <0x2>; - 3g_uart_num = <0x0>; - bb_vbat = <0x79 0xb 0x3 0x1 0xffffffff 0xffffffff 0x0>; - bb_host_wake = <0x79 0xc 0x0 0x1 0xffffffff 0xffffffff 0x0>; - bb_on = <0x79 0xc 0x1 0x1 0xffffffff 0xffffffff 0x0>; - bb_pwr_on = <0x79 0xc 0x3 0x1 0xffffffff 0xffffffff 0x0>; - bb_wake = <0x79 0xc 0x4 0x1 0xffffffff 0xffffffff 0x0>; - bb_rf_dis = <0x79 0xc 0x5 0x1 0xffffffff 0xffffffff 0x0>; - bb_rst = <0x79 0xc 0x6 0x1 0xffffffff 0xffffffff 0x0>; - 3g_int; - }; - - gyroscopesensor { - device_type = "gyroscopesensor"; - compatible = "allwinner,sun50i-gyr_sensors-para"; - status = "disabled"; - gy_twi_id = <0x2>; - gy_twi_addr = <0x6a>; - gy_int1 = <0x30 0x0 0xa 0x6 0x1 0xffffffff 0xffffffff>; - gy_int2; - }; - - gy_list { - device_type = "gy_list"; - compatible = "allwinner,sun50i-gyr_sensors-list-para"; - status = "disabled"; - lsm9ds0_gyr = <0x1>; - l3gd20_gyr = <0x0>; - bmg160_gyr = <0x1>; - }; - - lightsensor { - device_type = "lightsensor"; - compatible = "allwinner,sun50i-lsensors-para"; - status = "disabled"; - ls_twi_id = <0x2>; - ls_twi_addr = <0x23>; - ls_int = <0x30 0x0 0xc 0x6 0x1 0xffffffff 0xffffffff>; - }; - - ls_list { - device_type = "ls_list"; - compatible = "allwinner,sun50i-lsensors-list-para"; - status = "disabled"; - ltr_501als = <0x1>; - jsa1212 = <0x0>; - jsa1127 = <0x1>; - stk3x1x = <0x0>; - }; - - compasssensor { - device_type = "compasssensor"; - compatible = "allwinner,sun50i-compass-para"; - status = "disabled"; - compass_twi_id = <0x2>; - compass_twi_addr = <0xd>; - compass_int = <0x30 0x0 0xb 0x6 0x1 0xffffffff 0xffffffff>; - }; - - compass_list { - device_type = "compass_list"; - compatible = "allwinner,sun50i-compass-list-para"; - status = "disabled"; - lsm9ds0 = <0x1>; - lsm303d = <0x0>; - }; - - recovery_key { - device_type = "recovery_key"; - key_max = <0xa>; - key_min = <0xa>; - }; - - fastboot_key { - device_type = "fastboot_key"; - key_max = <0x4>; - key_min = <0x4>; - }; - }; - - aliases { - serial0 = "/soc@01c00000/uart@01c28000"; - serial1 = "/soc@01c00000/uart@01c28400"; - serial2 = "/soc@01c00000/uart@01c28800"; - serial3 = "/soc@01c00000/uart@01c28c00"; - serial4 = "/soc@01c00000/uart@01c29000"; - twi0 = "/soc@01c00000/twi@0x01c2ac00"; - twi1 = "/soc@01c00000/twi@0x01c2b000"; - twi2 = "/soc@01c00000/twi@0x01c2b400"; - spi0 = "/soc@01c00000/spi@01c68000"; - spi1 = "/soc@01c00000/spi@01c69000"; - global_timer0 = "/soc@01c00000/timer@1c20c00"; - cci0 = "/soc@01c00000/cci@0x01cb3000"; - csi_res0 = "/soc@01c00000/csi_res@0x01cb0000"; - vfe0 = "/soc@01c00000/vfe@0"; - mmc0 = "/soc@01c00000/sdmmc@01c0f000"; - mmc2 = "/soc@01c00000/sdmmc@01C11000"; - nand0 = "/soc@01c00000/nand0@01c03000"; - disp = "/soc@01c00000/disp@01000000"; - lcd0 = "/soc@01c00000/lcd0@01c0c000"; - hdmi = "/soc@01c00000/hdmi@01ee0000"; - pwm = "/soc@01c00000/pwm@01c21400"; - pwm0 = "/soc@01c00000/pwm0@01c21400"; - s_pwm = "/soc@01c00000/s_pwm@1f03800"; - spwm0 = "/soc@01c00000/spwm0@0x01f03800"; - boot_disp = "/soc@01c00000/boot_disp"; - }; - - chosen { - bootargs = "earlyprintk=sunxi-uart,0x01c28000 loglevel=8 initcall_debug=1 console=ttyS0 init=/init"; - linux,initrd-start = <0x0 0x0>; - linux,initrd-end = <0x0 0x0>; - }; - - cpus { - #address-cells = <0x2>; - #size-cells = <0x0>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x0>; - enable-method = "psci"; - cpufreq_tbl = <0x75300 0x927c0 0xafc80 0xc7380 0xdea80 0xea600 0xf6180 0x101d00 0x10d880 0x119400 0x124f80 0x148200>; - clock-latency = <0x1e8480>; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - cpu@1 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x1>; - enable-method = "psci"; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - cpu@2 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x2>; - enable-method = "psci"; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - cpu@3 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x3>; - enable-method = "psci"; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - idle-states { - entry-method = "arm,psci"; - - cpu-sleep-0 { - compatible = "arm,idle-state"; - arm,psci-suspend-param = <0x10000>; - entry-latency-us = <0x28>; - exit-latency-us = <0x64>; - min-residency-us = <0x96>; - linux,phandle = <0x90>; - phandle = <0x90>; - }; - - cluster-sleep-0 { - compatible = "arm,idle-state"; - arm,psci-suspend-param = <0x1010000>; - entry-latency-us = <0x1f4>; - exit-latency-us = <0x3e8>; - min-residency-us = <0x9c4>; - linux,phandle = <0x91>; - phandle = <0x91>; - }; - - sys-sleep-0 { - compatible = "arm,idle-state"; - arm,psci-suspend-param = <0x2010000>; - entry-latency-us = <0x3e8>; - exit-latency-us = <0x7d0>; - min-residency-us = <0x1194>; - linux,phandle = <0x92>; - phandle = <0x92>; - }; - }; - }; - - psci { - compatible = "arm,psci-0.2"; - method = "smc"; - psci_version = <0x84000000>; - cpu_suspend = <0xc4000001>; - cpu_off = <0x84000002>; - cpu_on = <0xc4000003>; - affinity_info = <0xc4000004>; - migrate = <0xc4000005>; - migrate_info_type = <0x84000006>; - migrate_info_up_cpu = <0xc4000007>; - system_off = <0x84000008>; - system_reset = <0x84000009>; - }; - - n_brom { - compatible = "allwinner,n-brom"; - reg = <0x0 0x0 0x0 0xc000>; - }; - - s_brom { - compatible = "allwinner,s-brom"; - reg = <0x0 0x0 0x0 0x10000>; - }; - - sram_a1 { - compatible = "allwinner,sram_a1"; - reg = <0x0 0x10000 0x0 0x8000>; - }; - - sram_a2 { - compatible = "allwinner,sram_a2"; - reg = <0x0 0x40000 0x0 0x14000>; - }; - - prcm { - compatible = "allwinner,prcm"; - reg = <0x0 0x1f01400 0x0 0x400>; - }; - - cpuscfg { - compatible = "allwinner,cpuscfg"; - reg = <0x0 0x1f01c00 0x0 0x400>; - }; - - ion { - compatible = "allwinner,sunxi-ion"; - - system_contig { - type = <0x1>; - }; - - cma { - type = <0x4>; - }; - - system { - type = <0x0>; - }; - }; - - dram { - compatible = "allwinner,dram"; - clocks = <0x93 0x94>; - clock-names = "pll_ddr0", "pll_ddr1"; - dram_clk = <0x228>; - dram_type = <0x3>; - dram_zq = <0x3b3bbb>; - dram_odt_en = <0x1>; - dram_para1 = <0x10e410e4>; - dram_para2 = <0x1000>; - dram_mr0 = <0x1840>; - dram_mr1 = <0x40>; - dram_mr2 = <0x18>; - dram_mr3 = <0x2>; - dram_tpr0 = <0x4a2195>; - dram_tpr1 = <0x2424190>; - dram_tpr2 = <0x8b060>; - dram_tpr3 = <0x4b005dc>; - dram_tpr4 = <0x0>; - dram_tpr5 = <0x0>; - dram_tpr6 = <0x0>; - dram_tpr7 = <0x0>; - dram_tpr8 = <0x0>; - dram_tpr9 = <0x0>; - dram_tpr10 = <0x8808>; - dram_tpr11 = <0x20250000>; - dram_tpr12 = <0x0>; - dram_tpr13 = <0x4000800>; - device_type = "dram"; - }; - - memory@40000000 { - device_type = "memory"; - reg = <0x0 0x40000000 0x0 0x40000000>; - }; - - interrupt-controller@1c81000 { - compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; - #interrupt-cells = <0x3>; - #address-cells = <0x0>; - device_type = "gic"; - interrupt-controller; - reg = <0x0 0x1c81000 0x0 0x1000 0x0 0x1c82000 0x0 0x2000 0x0 0x1c84000 0x0 0x2000 0x0 0x1c86000 0x0 0x2000>; - interrupts = <0x1 0x9 0xf04>; - linux,phandle = <0x1>; - phandle = <0x1>; - }; - - sunxi-chipid@1c14200 { - compatible = "allwinner,sunxi-chipid"; - device_type = "chipid"; - reg = <0x0 0x1c14200 0x0 0x200>; - }; - - timer { - compatible = "arm,armv8-timer"; - interrupts = <0x1 0xd 0xff01 0x1 0xe 0xff01 0x1 0xb 0xff01 0x1 0xa 0xff01>; - clock-frequency = <0x16e3600>; - }; - - pmu { - compatible = "arm,armv8-pmuv3"; - interrupts = <0x0 0x78 0x4 0x0 0x79 0x4 0x0 0x7a 0x4 0x0 0x7b 0x4>; - }; - - dvfs_table { - compatible = "allwinner,dvfs_table"; - max_freq = <0x44aa2000>; - min_freq = <0x1c9c3800>; - lv_count = <0x8>; - lv1_freq = <0x44aa2000>; - lv1_volt = <0x514>; - lv2_freq = <0x41cdb400>; - lv2_volt = <0x4ec>; - lv3_freq = <0x3ef14800>; - lv3_volt = <0x4d8>; - lv4_freq = <0x3c14dc00>; - lv4_volt = <0x4b0>; - lv5_freq = <0x39387000>; - lv5_volt = <0x488>; - lv6_freq = <0x365c0400>; - lv6_volt = <0x460>; - lv7_freq = <0x30a32c00>; - lv7_volt = <0x438>; - lv8_freq = <0x269fb200>; - lv8_volt = <0x410>; - device_type = "dvfs_table"; - }; - - dramfreq { - compatible = "allwinner,sunxi-dramfreq"; - reg = <0x0 0x1c62000 0x0 0x1000 0x0 0x1c63000 0x0 0x1000 0x0 0x1c20000 0x0 0x800>; - clocks = <0x93 0x94 0x95>; - status = "okay"; - }; - - uboot { - }; - - gpu@0x01c40000 { - compatible = "arm,mali-400", "arm,mali-utgard"; - reg = <0x0 0x1c40000 0x0 0x10000>; - interrupts = <0x0 0x61 0x4 0x0 0x62 0x4 0x0 0x63 0x4 0x0 0x64 0x4 0x0 0x66 0x4 0x0 0x67 0x4>; - interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", "IRQPP1", "IRQPPMMU1"; - clocks = <0x96 0x97>; - device_type = "gpu_mali400_0"; - normal_freq = <0x1c8>; - scene_ctrl_status = <0x0>; - temp_ctrl_status = <0x1>; - }; - - wlan { - compatible = "allwinner,sunxi-wlan"; - wlan_io_regulator = "vcc-wifi-io"; - wlan_busnum = <0x1>; - status = "okay"; - device_type = "wlan"; - clocks; - wlan_power; - wlan_regon = <0x79 0xb 0x2 0x1 0xffffffff 0xffffffff 0x0>; - wlan_hostwake = <0x79 0xb 0x3 0x6 0xffffffff 0xffffffff 0x0>; - }; - - bt { - compatible = "allwinner,sunxi-bt"; - bt_io_regulator = "vcc-wifi-io"; - status = "okay"; - device_type = "bt"; - clocks; - bt_power; - bt_rst_n = <0x79 0xb 0x4 0x1 0xffffffff 0xffffffff 0x0>; - }; - - btlpm { - compatible = "allwinner,sunxi-btlpm"; - uart_index = <0x1>; - status = "okay"; - device_type = "btlpm"; - bt_wake = <0x79 0xb 0x6 0x1 0xffffffff 0xffffffff 0x1>; - bt_hostwake = <0x79 0xb 0x5 0x6 0xffffffff 0xffffffff 0x0>; - }; - - hall { - compatible = "allwinner,hall"; - hall_pos = <0x0>; - status = "okay"; - device_type = "hall"; - hall_power = "hall-vcc-18"; - hall_power_vol = <0x708>; - hall_gpio = <0x79 0xb 0xc 0x6 0xffffffff 0xffffffff 0x0>; - }; -}; diff --git a/blobs/pine64so.dts b/blobs/pine64so.dts deleted file mode 100644 index 1c610fce..00000000 --- a/blobs/pine64so.dts +++ /dev/null @@ -1,3436 +0,0 @@ -/dts-v1/; - -/memreserve/ 0x0000000045000000 0x0000000000200000; -/memreserve/ 0x0000000041010000 0x0000000000010000; -/memreserve/ 0x0000000041020000 0x0000000000000800; -/memreserve/ 0x0000000040100000 0x0000000000004000; -/memreserve/ 0x0000000040104000 0x0000000000001000; -/memreserve/ 0x0000000040105000 0x0000000000001000; -/ { - model = "SOPine"; - compatible = "pine64,pine64-plus,sopine"; - interrupt-parent = <0x1>; - #address-cells = <0x2>; - #size-cells = <0x2>; - - clocks { - compatible = "allwinner,sunxi-clk-init"; - device_type = "clocks"; - #address-cells = <0x2>; - #size-cells = <0x2>; - ranges; - reg = <0x0 0x1c20000 0x0 0x320 0x0 0x1f01400 0x0 0xb0 0x0 0x1f00060 0x0 0x4>; - - losc { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-clock"; - clock-frequency = <0x8000>; - clock-output-names = "losc"; - linux,phandle = <0xc>; - phandle = <0xc>; - }; - - iosc { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-clock"; - clock-frequency = <0xf42400>; - clock-output-names = "iosc"; - linux,phandle = <0xd>; - phandle = <0xd>; - }; - - hosc { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-clock"; - clock-frequency = <0x16e3600>; - clock-output-names = "hosc"; - linux,phandle = <0x6>; - phandle = <0x6>; - }; - - pll_cpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_cpu"; - }; - - pll_audio { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x1770000>; - clock-output-names = "pll_audio"; - linux,phandle = <0x2>; - phandle = <0x2>; - }; - - pll_video0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "pll_video0"; - linux,phandle = <0x3>; - phandle = <0x3>; - }; - - pll_ve { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_ve"; - linux,phandle = <0x16>; - phandle = <0x16>; - }; - - pll_ddr0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_ddr0"; - linux,phandle = <0x93>; - phandle = <0x93>; - }; - - pll_periph0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_periph0"; - linux,phandle = <0x4>; - phandle = <0x4>; - }; - - pll_periph1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_periph1"; - linux,phandle = <0x5>; - phandle = <0x5>; - }; - - pll_video1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "pll_video1"; - }; - - pll_gpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_gpu"; - linux,phandle = <0x96>; - phandle = <0x96>; - }; - - pll_mipi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_mipi"; - linux,phandle = <0x8>; - phandle = <0x8>; - }; - - pll_hsic { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_hsic"; - linux,phandle = <0x3a>; - phandle = <0x3a>; - }; - - pll_de { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "pll_de"; - linux,phandle = <0x7>; - phandle = <0x7>; - }; - - pll_ddr1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-pll-clock"; - lock-mode = "new"; - clock-output-names = "pll_ddr1"; - linux,phandle = <0x94>; - phandle = <0x94>; - }; - - pll_audiox8 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x2>; - clock-mult = <0x8>; - clock-div = <0x1>; - clock-output-names = "pll_audiox8"; - }; - - pll_audiox4 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x2>; - clock-mult = <0x8>; - clock-div = <0x2>; - clock-output-names = "pll_audiox4"; - linux,phandle = <0x3c>; - phandle = <0x3c>; - }; - - pll_audiox2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x2>; - clock-mult = <0x8>; - clock-div = <0x4>; - clock-output-names = "pll_audiox2"; - }; - - pll_video0x2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x3>; - clock-mult = <0x2>; - clock-div = <0x1>; - clock-output-names = "pll_video0x2"; - }; - - pll_periph0x2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x4>; - clock-mult = <0x2>; - clock-div = <0x1>; - clock-output-names = "pll_periph0x2"; - linux,phandle = <0x7b>; - phandle = <0x7b>; - }; - - pll_periph1x2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x5>; - clock-mult = <0x2>; - clock-div = <0x1>; - clock-output-names = "pll_periph1x2"; - linux,phandle = <0x5a>; - phandle = <0x5a>; - }; - - pll_periph0d2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x4>; - clock-mult = <0x1>; - clock-div = <0x2>; - clock-output-names = "pll_periph0d2"; - }; - - hoscd2 { - #clock-cells = <0x0>; - compatible = "allwinner,fixed-factor-clock"; - clocks = <0x6>; - clock-mult = <0x1>; - clock-div = <0x2>; - clock-output-names = "hoscd2"; - }; - - cpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "cpu"; - }; - - cpuapb { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "cpuapb"; - }; - - axi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "axi"; - }; - - pll_periphahb0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "pll_periphahb0"; - }; - - ahb1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ahb1"; - linux,phandle = <0x95>; - phandle = <0x95>; - }; - - apb1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "apb1"; - }; - - apb2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "apb2"; - linux,phandle = <0x7e>; - phandle = <0x7e>; - }; - - ahb2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ahb2"; - }; - - ths { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ths"; - linux,phandle = <0x84>; - phandle = <0x84>; - }; - - nand { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "nand"; - linux,phandle = <0x80>; - phandle = <0x80>; - }; - - sdmmc0_mod { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc0_mod"; - linux,phandle = <0x60>; - phandle = <0x60>; - }; - - sdmmc0_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc0_bus"; - linux,phandle = <0x61>; - phandle = <0x61>; - }; - - sdmmc0_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc0_rst"; - linux,phandle = <0x62>; - phandle = <0x62>; - }; - - sdmmc1_mod { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc1_mod"; - linux,phandle = <0x65>; - phandle = <0x65>; - }; - - sdmmc1_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc1_bus"; - linux,phandle = <0x66>; - phandle = <0x66>; - }; - - sdmmc1_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc1_rst"; - linux,phandle = <0x67>; - phandle = <0x67>; - }; - - sdmmc2_mod { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc2_mod"; - linux,phandle = <0x5b>; - phandle = <0x5b>; - }; - - sdmmc2_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc2_bus"; - linux,phandle = <0x5c>; - phandle = <0x5c>; - }; - - sdmmc2_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdmmc2_rst"; - linux,phandle = <0x5d>; - phandle = <0x5d>; - }; - - ts { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ts"; - }; - - ce { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ce"; - linux,phandle = <0x7a>; - phandle = <0x7a>; - }; - - spi0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "spi0"; - linux,phandle = <0x52>; - phandle = <0x52>; - }; - - spi1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "spi1"; - linux,phandle = <0x56>; - phandle = <0x56>; - }; - - i2s0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "i2s0"; - linux,phandle = <0x42>; - phandle = <0x42>; - }; - - i2s1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "i2s1"; - linux,phandle = <0x47>; - phandle = <0x47>; - }; - - i2s2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "i2s2"; - linux,phandle = <0x48>; - phandle = <0x48>; - }; - - spdif { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "spdif"; - linux,phandle = <0x49>; - phandle = <0x49>; - }; - - usbphy0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbphy0"; - linux,phandle = <0x32>; - phandle = <0x32>; - }; - - usbphy1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbphy1"; - linux,phandle = <0x36>; - phandle = <0x36>; - }; - - usbhsic { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbhsic"; - linux,phandle = <0x38>; - phandle = <0x38>; - }; - - usbhsic12m { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbhsic12m"; - linux,phandle = <0x39>; - phandle = <0x39>; - }; - - usbohci1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbohci1"; - linux,phandle = <0x3b>; - phandle = <0x3b>; - }; - - usbohci0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbohci0"; - linux,phandle = <0x35>; - phandle = <0x35>; - }; - - de { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x7>; - assigned-clock-rates = <0x11b3dc40>; - clock-output-names = "de"; - linux,phandle = <0x6a>; - phandle = <0x6a>; - }; - - tcon0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x8>; - clock-output-names = "tcon0"; - linux,phandle = <0x6b>; - phandle = <0x6b>; - }; - - tcon1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x3>; - clock-output-names = "tcon1"; - linux,phandle = <0x6e>; - phandle = <0x6e>; - }; - - deinterlace { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "deinterlace"; - linux,phandle = <0x7c>; - phandle = <0x7c>; - }; - - csi_s { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "csi_s"; - linux,phandle = <0x73>; - phandle = <0x73>; - }; - - csi_m { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "csi_m"; - linux,phandle = <0x74>; - phandle = <0x74>; - }; - - csi_misc { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "csi_misc"; - linux,phandle = <0x75>; - phandle = <0x75>; - }; - - ve { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "ve"; - linux,phandle = <0x17>; - phandle = <0x17>; - }; - - adda { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "adda"; - linux,phandle = <0x41>; - phandle = <0x41>; - }; - - addax4 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "addax4"; - }; - - avs { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "avs"; - }; - - hdmi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - assigned-clock-parents = <0x3>; - clock-output-names = "hdmi"; - linux,phandle = <0x6f>; - phandle = <0x6f>; - }; - - hdmi_slow { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "hdmi_slow"; - linux,phandle = <0x70>; - phandle = <0x70>; - }; - - mbus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "mbus"; - }; - - mipidsi { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "mipidsi"; - linux,phandle = <0x6d>; - phandle = <0x6d>; - }; - - gpu { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "gpu"; - linux,phandle = <0x97>; - phandle = <0x97>; - }; - - usbehci_16 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbohci_16"; - }; - - usbehci1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbehci1"; - linux,phandle = <0x37>; - phandle = <0x37>; - }; - - usbehci0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbehci0"; - linux,phandle = <0x34>; - phandle = <0x34>; - }; - - usbotg { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "usbotg"; - linux,phandle = <0x33>; - phandle = <0x33>; - }; - - gmac { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "gmac"; - linux,phandle = <0x8f>; - phandle = <0x8f>; - }; - - sdram { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "sdram"; - }; - - dma { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "dma"; - linux,phandle = <0xb>; - phandle = <0xb>; - }; - - hwspinlock_rst { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "hwspinlock_rst"; - linux,phandle = <0xf>; - phandle = <0xf>; - }; - - hwspinlock_bus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "hwspinlock_bus"; - linux,phandle = <0x10>; - phandle = <0x10>; - }; - - msgbox { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "msgbox"; - linux,phandle = <0xe>; - phandle = <0xe>; - }; - - lvds { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "lvds"; - linux,phandle = <0x6c>; - phandle = <0x6c>; - }; - - uart0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart0"; - linux,phandle = <0x18>; - phandle = <0x18>; - }; - - uart1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart1"; - linux,phandle = <0x1b>; - phandle = <0x1b>; - }; - - uart2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart2"; - linux,phandle = <0x1e>; - phandle = <0x1e>; - }; - - uart3 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart3"; - linux,phandle = <0x21>; - phandle = <0x21>; - }; - - uart4 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "uart4"; - linux,phandle = <0x24>; - phandle = <0x24>; - }; - - scr { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "scr"; - linux,phandle = <0x7d>; - phandle = <0x7d>; - }; - - twi0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi0"; - linux,phandle = <0x27>; - phandle = <0x27>; - }; - - twi1 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi1"; - linux,phandle = <0x2a>; - phandle = <0x2a>; - }; - - twi2 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi2"; - linux,phandle = <0x2d>; - phandle = <0x2d>; - }; - - twi3 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "twi3"; - }; - - pio { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-clock"; - clock-output-names = "pio"; - linux,phandle = <0xa>; - phandle = <0xa>; - }; - - cpurcir { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurcir"; - linux,phandle = <0x12>; - phandle = <0x12>; - }; - - cpurpio { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurpio"; - linux,phandle = <0x9>; - phandle = <0x9>; - }; - - cpurpll_peri0 { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurpll_peri0"; - }; - - cpurcpus { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurcpus"; - }; - - cpurahbs { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurahbs"; - }; - - cpurapbs { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "cpurapbs"; - }; - - losc_out { - #clock-cells = <0x0>; - compatible = "allwinner,sunxi-periph-cpus-clock"; - clock-output-names = "losc_out"; - linux,phandle = <0x98>; - phandle = <0x98>; - }; - }; - - soc@01c00000 { - compatible = "simple-bus"; - #address-cells = <0x2>; - #size-cells = <0x2>; - ranges; - device_type = "soc"; - - pinctrl@01f02c00 { - compatible = "allwinner,sun50i-r-pinctrl"; - reg = <0x0 0x1f02c00 0x0 0x400>; - interrupts = <0x0 0x2d 0x4>; - clocks = <0x9>; - device_type = "r_pio"; - gpio-controller; - interrupt-controller; - #interrupt-cells = <0x2>; - #size-cells = <0x0>; - #gpio-cells = <0x6>; - linux,phandle = <0x79>; - phandle = <0x79>; - - s_cir0@0 { - allwinner,pins = "PL11"; - allwinner,function = "s_cir0"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x2>; - allwinner,pull = <0x1>; - linux,phandle = <0x11>; - phandle = <0x11>; - }; - - spwm0@0 { - linux,phandle = <0xaf>; - phandle = <0xaf>; - allwinner,pins = "PL10"; - allwinner,function = "spwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spwm0@1 { - linux,phandle = <0xb0>; - phandle = <0xb0>; - allwinner,pins = "PL10"; - allwinner,function = "spwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x7>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - s_uart0@0 { - linux,phandle = <0xb6>; - phandle = <0xb6>; - allwinner,pins = "PL2", "PL3"; - allwinner,function = "s_uart0"; - allwinner,pname = "s_uart0_tx", "s_uart0_rx"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - s_rsb0@0 { - linux,phandle = <0xb7>; - phandle = <0xb7>; - allwinner,pins = "PL0", "PL1"; - allwinner,function = "s_rsb0"; - allwinner,pname = "s_rsb0_sck", "s_rsb0_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - s_jtag0@0 { - linux,phandle = <0xb8>; - phandle = <0xb8>; - allwinner,pins = "PL4", "PL5", "PL6", "PL7"; - allwinner,function = "s_jtag0"; - allwinner,pname = "s_jtag0_tms", "s_jtag0_tck", "s_jtag0_tdo", "s_jtag0_tdi"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - }; - - pinctrl@01c20800 { - compatible = "allwinner,sun50i-pinctrl"; - reg = <0x0 0x1c20800 0x0 0x400>; - interrupts = <0x0 0xb 0x4 0x0 0x11 0x4 0x0 0x15 0x4>; - device_type = "pio"; - clocks = <0xa>; - gpio-controller; - interrupt-controller; - #interrupt-cells = <0x2>; - #size-cells = <0x0>; - #gpio-cells = <0x6>; - linux,phandle = <0x30>; - phandle = <0x30>; - - uart0@1 { - allwinner,pins = "PB8", "PB9"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x1a>; - phandle = <0x1a>; - }; - - uart1@1 { - allwinner,pins = "PG6", "PG7", "PG8", "PG9"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x1d>; - phandle = <0x1d>; - }; - - uart2@1 { - allwinner,pins = "PB0", "PB1", "PB2", "PB3"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x20>; - phandle = <0x20>; - }; - - uart3@1 { - allwinner,pins = "PH4", "PH5", "PH6", "PH7"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x23>; - phandle = <0x23>; - }; - - uart4@1 { - allwinner,pins = "PD2", "PD3", "PD4", "PD5"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x26>; - phandle = <0x26>; - }; - - twi0@1 { - allwinner,pins = "PH0", "PH1"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x29>; - phandle = <0x29>; - }; - - twi1@1 { - allwinner,pins = "PH2", "PH3"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x2c>; - phandle = <0x2c>; - }; - - twi2@1 { - allwinner,pins = "PE14", "PE15"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x2f>; - phandle = <0x2f>; - }; - - spi0@2 { - allwinner,pins = "PC3", "PC2", "PC0", "PC1"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x55>; - phandle = <0x55>; - }; - - spi1@2 { - allwinner,pins = "PD0", "PD1", "PD2", "PD3"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x59>; - phandle = <0x59>; - }; - - sdc0@1 { - allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x64>; - phandle = <0x64>; - }; - - sdc1@1 { - allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x69>; - phandle = <0x69>; - }; - - sdc2@1 { - allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x5f>; - phandle = <0x5f>; - }; - - daudio0@0 { - allwinner,pins = "PB6", "PB3", "PB4", "PB5", "PB7"; - allwinner,function = "pcm0"; - allwinner,muxsel = <0x3>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x43>; - phandle = <0x43>; - }; - - daudio0_sleep@0 { - allwinner,pins = "PB6", "PB3", "PB4", "PB5", "PB7"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x44>; - phandle = <0x44>; - }; - - daudio1@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "pcm1"; - allwinner,muxsel = <0x3>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x45>; - phandle = <0x45>; - }; - - daudio1_sleep@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x46>; - phandle = <0x46>; - }; - - aif3@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "aif3"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x3e>; - phandle = <0x3e>; - }; - - aif2_sleep@0 { - allwinner,pins = "PB6", "PB4", "PB5", "PB7"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x3f>; - phandle = <0x3f>; - }; - - aif3_sleep@0 { - allwinner,pins = "PG10", "PG11", "PG12", "PG13"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x40>; - phandle = <0x40>; - }; - - spdif@0 { - allwinner,pins = "PH8"; - allwinner,function = "spdif0"; - allwinner,muxsel = <0x2>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x4a>; - phandle = <0x4a>; - }; - - spdif_sleep@0 { - allwinner,pins = "PH8"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x4b>; - phandle = <0x4b>; - }; - - csi0_sleep@0 { - allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13"; - allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7", "csi0_sck", "csi0_sda"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - allwinner,data = <0x0>; - linux,phandle = <0x77>; - phandle = <0x77>; - }; - - smartcard@0 { - allwinner,pins = "PB1", "PB4", "PB5", "PB6", "PB7"; - allwinner,function = "sim0"; - allwinner,muxsel = <0x5>; - allwinner,drive = <0x1>; - allwinner,pull = <0x1>; - linux,phandle = <0x7f>; - phandle = <0x7f>; - }; - - nand0@2 { - allwinner,pins = "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PC18"; - allwinner,function = "io_disabled"; - allwinner,muxsel = <0x7>; - allwinner,drive = <0x1>; - allwinner,pull = <0x0>; - linux,phandle = <0x83>; - phandle = <0x83>; - }; - - card0_boot_para@0 { - linux,phandle = <0x99>; - phandle = <0x99>; - allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - allwinner,function = "card0_boot_para"; - allwinner,pname = "sdc_d1", "sdc_d0", "sdc_clk", "sdc_cmd", "sdc_d3", "sdc_d2"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - card2_boot_para@0 { - linux,phandle = <0x9a>; - phandle = <0x9a>; - allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "card2_boot_para"; - allwinner,pname = "sdc_ds", "sdc_clk", "sdc_cmd", "sdc_d0", "sdc_d1", "sdc_d2", "sdc_d3", "sdc_d4", "sdc_d5", "sdc_d6", "sdc_d7", "sdc_emmc_rst"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - twi_para@0 { - linux,phandle = <0x9b>; - phandle = <0x9b>; - allwinner,pins = "PH0", "PH1"; - allwinner,function = "twi_para"; - allwinner,pname = "twi_scl", "twi_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart_para@0 { - linux,phandle = <0x9c>; - phandle = <0x9c>; - allwinner,pins = "PB8", "PB9"; - allwinner,function = "uart_para"; - allwinner,pname = "uart_debug_tx", "uart_debug_rx"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - jtag_para@0 { - linux,phandle = <0x9d>; - phandle = <0x9d>; - allwinner,pins = "PB0", "PB1", "PB2", "PB3"; - allwinner,function = "jtag_para"; - allwinner,pname = "jtag_ms", "jtag_ck", "jtag_do", "jtag_di"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - gmac0@0 { - linux,phandle = <0x9e>; - phandle = <0x9e>; - allwinner,pins = "PD18", "PD17", "PD16", "PD15", "PD20", "PD19", "PD11", "PD10", "PD9", "PD8", "PD13", "PD12", "PD21", "PD22", "PD23"; - allwinner,function = "gmac0"; - allwinner,pname = "gmac_txd0", "gmac_txd1", "gmac_txd2", "gmac_txd3", "gmac_txen", "gmac_gtxclk", "gmac_rxd0", "gmac_rxd1", "gmac_rxd2", "gmac_rxd3", "gmac_rxdv", "gmac_rxclk", "gmac_clkin", "gmac_mdc", "gmac_mdio"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - twi0@0 { - linux,phandle = <0x9f>; - phandle = <0x9f>; - allwinner,pins = "PH0", "PH1"; - allwinner,function = "twi0"; - allwinner,pname = "twi0_scl", "twi0_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - twi1@0 { - linux,phandle = <0xa0>; - phandle = <0xa0>; - allwinner,pins = "PH2", "PH3"; - allwinner,function = "twi1"; - allwinner,pname = "twi1_scl", "twi1_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - twi2@0 { - linux,phandle = <0xa1>; - phandle = <0xa1>; - allwinner,pins = "PE14", "PE15"; - allwinner,function = "twi2"; - allwinner,pname = "twi2_scl", "twi2_sda"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart0@0 { - linux,phandle = <0xa2>; - phandle = <0xa2>; - allwinner,pins = "PB8", "PB9"; - allwinner,function = "uart0"; - allwinner,pname = "uart0_tx", "uart0_rx"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart1@0 { - linux,phandle = <0xa3>; - phandle = <0xa3>; - allwinner,pins = "PG6", "PG7", "PG8", "PG9"; - allwinner,function = "uart1"; - allwinner,pname = "uart1_tx", "uart1_rx", "uart1_rts", "uart1_cts"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart2@0 { - linux,phandle = <0xa4>; - phandle = <0xa4>; - allwinner,pins = "PB0", "PB1", "PB2", "PB3"; - allwinner,function = "uart2"; - allwinner,pname = "uart2_tx", "uart2_rx", "uart2_rts", "uart2_cts"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart3@0 { - linux,phandle = <0xa5>; - phandle = <0xa5>; - allwinner,pins = "PD0", "PD1"; - allwinner,function = "uart3"; - allwinner,pname = "uart3_tx", "uart3_rx"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - uart4@0 { - linux,phandle = <0xa6>; - phandle = <0xa6>; - allwinner,pins = "PD2", "PD3", "PD4", "PD5"; - allwinner,function = "uart4"; - allwinner,pname = "uart4_tx", "uart4_rx", "uart4_rts", "uart4_cts"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi0@0 { - linux,phandle = <0xa7>; - phandle = <0xa7>; - allwinner,pins = "PC3"; - allwinner,function = "spi0"; - allwinner,pname = "spi0_cs0"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi0@1 { - linux,phandle = <0xa8>; - phandle = <0xa8>; - allwinner,pins = "PC2", "PC0", "PC1"; - allwinner,function = "spi0"; - allwinner,pname = "spi0_sclk", "spi0_mosi", "spi0_miso"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi1@0 { - linux,phandle = <0xa9>; - phandle = <0xa9>; - allwinner,pins = "PD0"; - allwinner,function = "spi1"; - allwinner,pname = "spi1_cs0"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - spi1@1 { - linux,phandle = <0xaa>; - phandle = <0xaa>; - allwinner,pins = "PD1", "PD2", "PD3"; - allwinner,function = "spi1"; - allwinner,pname = "spi1_sclk", "spi1_mosi", "spi1_miso"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - nand0@0 { - linux,phandle = <0xab>; - phandle = <0xab>; - allwinner,pins = "PC0", "PC1", "PC2", "PC5", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "nand0"; - allwinner,pname = "nand0_we", "nand0_ale", "nand0_cle", "nand0_nre", "nand0_d0", "nand0_d1", "nand0_d2", "nand0_d3", "nand0_d4", "nand0_d5", "nand0_d6", "nand0_d7", "nand0_ndqs"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x0>; - allwinner,drive = <0x1>; - allwinner,data = <0xffffffff>; - }; - - nand0@1 { - linux,phandle = <0xac>; - phandle = <0xac>; - allwinner,pins = "PC3", "PC4", "PC6", "PC7", "PC17", "PC18"; - allwinner,function = "nand0"; - allwinner,pname = "nand0_ce1", "nand0_ce0", "nand0_rb0", "nand0_rb1", "nand0_ce2", "nand0_ce3"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x1>; - allwinner,data = <0xffffffff>; - }; - - pwm0@0 { - linux,phandle = <0xad>; - phandle = <0xad>; - allwinner,pins = "PD22"; - allwinner,function = "pwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - pwm0@1 { - linux,phandle = <0xae>; - phandle = <0xae>; - allwinner,pins = "PD22"; - allwinner,function = "pwm0"; - allwinner,pname = "pwm_positive"; - allwinner,muxsel = <0x7>; - allwinner,pull = <0x0>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - csi0@0 { - linux,phandle = <0xb1>; - phandle = <0xb1>; - allwinner,pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13"; - allwinner,function = "csi0"; - allwinner,pname = "csi0_pck", "csi0_hsync", "csi0_vsync", "csi0_d0", "csi0_d1", "csi0_d2", "csi0_d3", "csi0_d4", "csi0_d5", "csi0_d6", "csi0_d7", "csi0_sck", "csi0_sda"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0xffffffff>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - sdc0@0 { - linux,phandle = <0xb2>; - phandle = <0xb2>; - allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; - allwinner,function = "sdc0"; - allwinner,pname = "sdc0_d1", "sdc0_d0", "sdc0_clk", "sdc0_cmd", "sdc0_d3", "sdc0_d2"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - sdc1@0 { - linux,phandle = <0xb3>; - phandle = <0xb3>; - allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5"; - allwinner,function = "sdc1"; - allwinner,pname = "sdc1_clk", "sdc1_cmd", "sdc1_d0", "sdc1_d1", "sdc1_d2", "sdc1_d3"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - sdc2@0 { - linux,phandle = <0xb4>; - phandle = <0xb4>; - allwinner,pins = "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16"; - allwinner,function = "sdc2"; - allwinner,pname = "sdc2_ds", "sdc2_clk", "sdc2_cmd", "sdc2_d0", "sdc2_d1", "sdc2_d2", "sdc2_d3", "sdc2_d4", "sdc2_d5", "sdc2_d6", "sdc2_d7", "sdc2_emmc_rst"; - allwinner,muxsel = <0x3>; - allwinner,pull = <0x1>; - allwinner,drive = <0x3>; - allwinner,data = <0xffffffff>; - }; - - codec@0 { - linux,phandle = <0xb5>; - phandle = <0xb5>; - allwinner,pins = "PH7"; - allwinner,function = "codec"; - allwinner,pname = "gpio-spk"; - allwinner,muxsel = <0x2>; - allwinner,pull = <0x1>; - allwinner,drive = <0xffffffff>; - allwinner,data = <0xffffffff>; - }; - - Vdevice@0 { - linux,phandle = <0xb9>; - phandle = <0xb9>; - allwinner,pins = "PB1", "PB2"; - allwinner,function = "Vdevice"; - allwinner,pname = "Vdevice_0", "Vdevice_1"; - allwinner,muxsel = <0x4>; - allwinner,pull = <0x1>; - allwinner,drive = <0x2>; - allwinner,data = <0xffffffff>; - }; - - w1_pin@0 { - linux,phandle = <0xba>; - phandle = <0xba>; - allwinner,pins = "PC8"; - allwinner,function = "gpio_in"; - allwinner,pname = "w1"; - allwinner,muxsel = <0x0>; - allwinner,pull = <0x1>; - allwinner,drive = <0x0>; - allwinner,data = <0xffffffff>; - }; - }; - - pinctrl@0 { - compatible = "allwinner,axp-pinctrl"; - gpio-controller; - #size-cells = <0x0>; - #gpio-cells = <0x6>; - device_type = "axp_pio"; - linux,phandle = <0x31>; - phandle = <0x31>; - }; - - dma-controller@01c02000 { - compatible = "allwinner,sun50i-dma"; - reg = <0x0 0x1c02000 0x0 0x1000>; - interrupts = <0x0 0x32 0x4>; - clocks = <0xb>; - #dma-cells = <0x1>; - }; - - mbus-controller@01c62000 { - compatible = "allwinner,sun50i-mbus"; - reg = <0x0 0x1c62000 0x0 0x110>; - #mbus-cells = <0x1>; - }; - - arisc { - compatible = "allwinner,sunxi-arisc"; - #address-cells = <0x2>; - #size-cells = <0x2>; - clocks = <0xc 0xd 0x6 0x4>; - clock-names = "losc", "iosc", "hosc", "pll_periph0"; - powchk_used = <0x0>; - power_reg = <0x2309621>; - system_power = <0x32>; - }; - - arisc_space { - compatible = "allwinner,arisc_space"; - space1 = <0x40000 0x0 0x14000>; - space2 = <0x40100000 0x18000 0x4000>; - space3 = <0x40104000 0x0 0x1000>; - space4 = <0x40105000 0x0 0x1000>; - }; - - standby_space { - compatible = "allwinner,standby_space"; - space1 = <0x41020000 0x0 0x800>; - }; - - msgbox@1c17000 { - compatible = "allwinner,msgbox"; - clocks = <0xe>; - clock-names = "clk_msgbox"; - reg = <0x0 0x1c17000 0x0 0x1000>; - interrupts = <0x0 0x31 0x1>; - status = "okay"; - }; - - hwspinlock@1c18000 { - compatible = "allwinner,sunxi-hwspinlock"; - clocks = <0xf 0x10>; - clock-names = "clk_hwspinlock_rst", "clk_hwspinlock_bus"; - reg = <0x0 0x1c18000 0x0 0x1000>; - status = "okay"; - num-locks = <0x8>; - }; - - s_cir@1f02000 { - compatible = "allwinner,s_cir"; - reg = <0x0 0x1f02000 0x0 0x400>; - interrupts = <0x0 0x25 0x4>; - pinctrl-names = "default"; - pinctrl-0 = <0x11>; - clocks = <0x6 0x12>; - supply = "vcc-pl"; - ir_power_key_code = <0x4d>; - ir_addr_code = <0x4040>; - status = "okay"; - device_type = "s_cir0"; - }; - - s_uart@1f02800 { - compatible = "allwinner,s_uart"; - reg = <0x0 0x1f02800 0x0 0x400>; - interrupts = <0x0 0x26 0x4>; - pinctrl-names = "default"; - status = "okay"; - device_type = "s_uart0"; - pinctrl-0 = <0xb6>; - }; - - s_rsb@1f03400 { - compatible = "allwinner,s_rsb"; - reg = <0x0 0x1f03400 0x0 0x400>; - interrupts = <0x0 0x27 0x4>; - pinctrl-names = "default"; - status = "okay"; - device_type = "s_rsb0"; - pinctrl-0 = <0xb7>; - }; - - s_jtag0 { - compatible = "allwinner,s_jtag"; - pinctrl-names = "default"; - status = "disabled"; - device_type = "s_jtag0"; - pinctrl-0 = <0xb8>; - }; - - timer@1c20c00 { - compatible = "allwinner,sunxi-timer"; - device_type = "timer"; - reg = <0x0 0x1c20c00 0x0 0x90>; - interrupts = <0x0 0x12 0x1>; - clock-frequency = <0x16e3600>; - timer-prescale = <0x10>; - }; - - rtc@01f00000 { - compatible = "allwinner,sun50i-rtc"; - device_type = "rtc"; - reg = <0x0 0x1f00000 0x0 0x218>; - interrupts = <0x0 0x28 0x4>; - gpr_offset = <0x100>; - gpr_len = <0x4>; - }; - - ve@01c0e000 { - compatible = "allwinner,sunxi-cedar-ve"; - reg = <0x0 0x1c0e000 0x0 0x1000 0x0 0x1c00000 0x0 0x10 0x0 0x1c20000 0x0 0x800>; - interrupts = <0x0 0x3a 0x4>; - clocks = <0x16 0x17>; - }; - - uart@01c28000 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart0"; - reg = <0x0 0x1c28000 0x0 0x400>; - interrupts = <0x0 0x0 0x4>; - clocks = <0x18>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x1a>; - uart0_port = <0x0>; - uart0_type = <0x2>; - status = "okay"; - pinctrl-0 = <0xa2>; - }; - - uart@01c28400 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart1"; - reg = <0x0 0x1c28400 0x0 0x400>; - interrupts = <0x0 0x1 0x4>; - clocks = <0x1b>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x1d>; - uart1_port = <0x1>; - uart1_type = <0x4>; - status = "okay"; - pinctrl-0 = <0xa3>; - }; - - uart@01c28800 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart2"; - reg = <0x0 0x1c28800 0x0 0x400>; - interrupts = <0x0 0x2 0x4>; - clocks = <0x1e>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x20>; - uart2_port = <0x2>; - uart2_type = <0x4>; - status = "okay"; - pinctrl-0 = <0xa4>; - }; - - uart@01c28c00 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart3"; - reg = <0x0 0x1c28c00 0x0 0x400>; - interrupts = <0x0 0x3 0x4>; - clocks = <0x21>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x23>; - uart3_port = <0x3>; - uart3_type = <0x4>; - status = "okay"; - pinctrl-0 = <0xa5>; - }; - - uart@01c29000 { - compatible = "allwinner,sun50i-uart"; - device_type = "uart4"; - reg = <0x0 0x1c29000 0x0 0x400>; - interrupts = <0x0 0x4 0x4>; - clocks = <0x24>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x26>; - uart4_port = <0x4>; - uart4_type = <0x4>; - status = "okay"; - pinctrl-0 = <0xa6>; - }; - - twi@0x01c2ac00 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi0"; - reg = <0x0 0x1c2ac00 0x0 0x400>; - interrupts = <0x0 0x6 0x4>; - clocks = <0x27>; - clock-frequency = <0x61a80>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x29>; - status = "okay"; - pinctrl-0 = <0x9f>; - }; - - twi@0x01c2b000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi1"; - reg = <0x0 0x1c2b000 0x0 0x400>; - interrupts = <0x0 0x7 0x4>; - clocks = <0x2a>; - clock-frequency = <0x30d40>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x2c>; - status = "okay"; - pinctrl-0 = <0xa0>; - }; - - twi@0x01c2b400 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-twi"; - device_type = "twi2"; - reg = <0x0 0x1c2b400 0x0 0x400>; - interrupts = <0x0 0x8 0x4>; - clocks = <0x2d>; - clock-frequency = <0x30d40>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x2f>; - status = "disabled"; - pinctrl-0 = <0xa1>; - }; - - usbc0@0 { - device_type = "usbc0"; - compatible = "allwinner,sunxi-otg-manager"; - usb_port_type = <0x1>; - usb_detect_type = <0x0>; - usb_host_init_state = <0x1>; - usb_regulator_io = "nocare"; - usb_wakeup_suspend = <0x1>; - usb_luns = <0x3>; - usb_serial_unique = <0x1>; - usb_serial_number = "20080411"; - rndis_wceis = <0x1>; - status = "okay"; - usb_id_gpio; - usb_det_vbus_gpio; - usb_drv_vbus_gpio; - }; - - udc-controller@0x01c19000 { - compatible = "allwinner,sunxi-udc"; - reg = <0x0 0x1c19000 0x0 0x1000 0x0 0x1c00000 0x0 0x100>; - interrupts = <0x0 0x47 0x4>; - clocks = <0x32 0x33>; - status = "okay"; - }; - - ehci0-controller@0x01c1a000 { - compatible = "allwinner,sunxi-ehci0"; - reg = <0x0 0x1c1a000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x48 0x4>; - clocks = <0x32 0x34>; - hci_ctrl_no = <0x0>; - status = "okay"; - }; - - ohci0-controller@0x01c1a400 { - compatible = "allwinner,sunxi-ohci0"; - reg = <0x0 0x1c1a000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x49 0x4>; - clocks = <0x32 0x35>; - hci_ctrl_no = <0x0>; - status = "okay"; - }; - - usbc1@0 { - device_type = "usbc1"; - usb_host_init_state = <0x1>; - usb_regulator_io = "nocare"; - usb_wakeup_suspend = <0x1>; - usb_hsic_used = <0x0>; - usb_hsic_regulator_io = "vcc-hsic-12"; - usb_hsic_ctrl = <0x0>; - usb_hsic_usb3503_flag = <0x0>; - status = "okay"; - usb_port_type = <0x1>; - usb_detect_type = <0x0>; - usb_drv_vbus_gpio; - usb_hsic_rdy_gpio; - usb_hsic_hub_connect_gpio; - usb_hsic_int_n_gpio; - usb_hsic_reset_n_gpio; - }; - - ehci1-controller@0x01c1b000 { - compatible = "allwinner,sunxi-ehci1"; - reg = <0x0 0x1c1b000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x4a 0x4>; - clocks = <0x36 0x37 0x38 0x39 0x3a>; - hci_ctrl_no = <0x1>; - status = "okay"; - }; - - ohci1-controller@0x01c1b400 { - compatible = "allwinner,sunxi-ohci1"; - reg = <0x0 0x1c1b000 0x0 0xfff 0x0 0x1c00000 0x0 0x100 0x0 0x1c19000 0x0 0x1000>; - interrupts = <0x0 0x4b 0x4>; - clocks = <0x36 0x3b>; - hci_ctrl_no = <0x1>; - status = "okay"; - }; - - codec@0x01c22c00 { - compatible = "allwinner,sunxi-internal-codec"; - reg = <0x0 0x1c22c00 0x0 0x478 0x0 0x1f015c0 0x0 0x0>; - clocks = <0x3c>; - pinctrl-names = "aif2-default", "aif3-default", "aif2-sleep", "aif3-sleep"; - pinctrl-1 = <0x3e>; - pinctrl-2 = <0x3f>; - pinctrl-3 = <0x40>; - gpio-spk = <0x30 0x7 0x7 0x1 0x1 0x1 0x1>; - headphonevol = <0x3b>; - spkervol = <0x1a>; - earpiecevol = <0x1e>; - maingain = <0x4>; - headsetmicgain = <0x4>; - adcagc_cfg = <0x0>; - adcdrc_cfg = <0x0>; - adchpf_cfg = <0x0>; - dacdrc_cfg = <0x0>; - dachpf_cfg = <0x0>; - aif1_lrlk_div = <0x40>; - aif2_lrlk_div = <0x40>; - aif2config = <0x0>; - aif3config = <0x0>; - pa_sleep_time = <0x15e>; - dac_digital_vol = <0xa0a0>; - status = "okay"; - linux,phandle = <0x4d>; - phandle = <0x4d>; - device_type = "codec"; - pinctrl-0 = <0xb5>; - }; - - i2s0-controller@0x01c22c00 { - compatible = "allwinner,sunxi-internal-i2s"; - reg = <0x0 0x1c22c00 0x0 0x478>; - clocks = <0x2 0x41>; - status = "okay"; - linux,phandle = <0x4c>; - phandle = <0x4c>; - device_type = "i2s"; - }; - - daudio@0x01c22000 { - compatible = "allwinner,sunxi-daudio"; - reg = <0x0 0x1c22000 0x0 0x58>; - clocks = <0x2 0x42>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x43>; - pinctrl-1 = <0x44>; - pcm_lrck_period = <0x20>; - pcm_lrckr_period = <0x1>; - slot_width_select = <0x20>; - pcm_lsb_first = <0x0>; - tx_data_mode = <0x0>; - rx_data_mode = <0x0>; - daudio_master = <0x4>; - audio_format = <0x1>; - signal_inversion = <0x1>; - frametype = <0x0>; - tdm_config = <0x1>; - tdm_num = <0x0>; - status = "disabled"; - linux,phandle = <0x4e>; - phandle = <0x4e>; - device_type = "daudio0"; - }; - - daudio@0x01c22400 { - compatible = "allwinner,sunxi-daudio"; - reg = <0x0 0x1c22400 0x0 0x58>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x45>; - pinctrl-1 = <0x46>; - clocks = <0x2 0x47>; - pcm_lrck_period = <0x20>; - pcm_lrckr_period = <0x1>; - slot_width_select = <0x20>; - pcm_lsb_first = <0x0>; - tx_data_mode = <0x0>; - rx_data_mode = <0x0>; - daudio_master = <0x4>; - audio_format = <0x1>; - signal_inversion = <0x1>; - frametype = <0x0>; - tdm_config = <0x1>; - tdm_num = <0x1>; - status = "disabled"; - linux,phandle = <0x4f>; - phandle = <0x4f>; - device_type = "daudio1"; - }; - - daudio@0x01c22800 { - compatible = "allwinner,sunxi-tdmhdmi"; - reg = <0x0 0x1c22800 0x0 0x58>; - clocks = <0x2 0x48>; - status = "okay"; - linux,phandle = <0x50>; - phandle = <0x50>; - device_type = "daudio2"; - }; - - spdif-controller@0x01c21000 { - compatible = "allwinner,sunxi-spdif"; - reg = <0x0 0x1c21000 0x0 0x38>; - clocks = <0x2 0x49>; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <0x4a>; - pinctrl-1 = <0x4b>; - status = "disabled"; - linux,phandle = <0x51>; - phandle = <0x51>; - device_type = "spdif"; - }; - - sound@0 { - compatible = "allwinner,sunxi-codec-machine"; - interrupts = <0x0 0x1c 0x4>; - sunxi,i2s-controller = <0x4c>; - sunxi,audio-codec = <0x4d>; - aif2fmt = <0x3>; - aif3fmt = <0x3>; - aif2master = <0x1>; - hp_detect_case = <0x1>; - status = "okay"; - device_type = "sndcodec"; - }; - - sound@1 { - compatible = "allwinner,sunxi-daudio0-machine"; - sunxi,daudio0-controller = <0x4e>; - status = "disabled"; - device_type = "snddaudio0"; - }; - - sound@2 { - compatible = "allwinner,sunxi-daudio1-machine"; - sunxi,daudio1-controller = <0x4f>; - status = "disabled"; - device_type = "snddaudio1"; - }; - - sound@3 { - compatible = "allwinner,sunxi-hdmi-machine"; - sunxi,hdmi-controller = <0x50>; - status = "okay"; - device_type = "sndhdmi"; - }; - - sound@4 { - compatible = "allwinner,sunxi-spdif-machine"; - sunxi,spdif-controller = <0x51>; - status = "disabled"; - device_type = "sndspdif"; - }; - - spi@01c68000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-spi"; - device_type = "spi0"; - reg = <0x0 0x1c68000 0x0 0x1000>; - interrupts = <0x0 0x41 0x4>; - clocks = <0x4 0x52>; - clock-frequency = <0x5f5e100>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x55>; - spi0_cs_number = <0x1>; - spi0_cs_bitmap = <0x1>; - status = "disabled"; - pinctrl-0 = <0xa7 0xa8>; - }; - - spi@01c69000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sun50i-spi"; - device_type = "spi1"; - reg = <0x0 0x1c69000 0x0 0x1000>; - interrupts = <0x0 0x42 0x4>; - clocks = <0x4 0x56>; - clock-frequency = <0x5f5e100>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x59>; - spi1_cs_number = <0x1>; - spi1_cs_bitmap = <0x1>; - status = "disabled"; - pinctrl-0 = <0xa9 0xaa>; - }; - - sdmmc@01C11000 { - compatible = "allwinner,sun50i-sdmmc2"; - device_type = "sdc2"; - reg = <0x0 0x1c11000 0x0 0x1000>; - interrupts = <0x0 0x3e 0x104>; - clocks = <0x6 0x5a 0x5b 0x5c 0x5d>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x5f>; - bus-width = <0x8>; - max-frequency = <0x5f5e100>; - sdc_tm4_sm0_freq0 = <0x0>; - sdc_tm4_sm0_freq1 = <0x0>; - sdc_tm4_sm1_freq0 = <0x0>; - sdc_tm4_sm1_freq1 = <0x0>; - sdc_tm4_sm2_freq0 = <0x0>; - sdc_tm4_sm2_freq1 = <0x0>; - sdc_tm4_sm3_freq0 = <0x5000000>; - sdc_tm4_sm3_freq1 = <0x405>; - sdc_tm4_sm4_freq0 = <0x50000>; - sdc_tm4_sm4_freq1 = <0x408>; - status = "disabled"; - non-removable; - pinctrl-0 = <0xb4>; - cd-gpios; - sunxi-power-save-mode; - sunxi-dis-signal-vol-sw; - mmc-ddr-1_8v; - mmc-hs200-1_8v; - mmc-hs400-1_8v; - vmmc = "vcc-emmc"; - vqmmc = "vcc-lpddr"; - vdmmc = "none"; - }; - - sdmmc@01c0f000 { - compatible = "allwinner,sun50i-sdmmc0"; - device_type = "sdc0"; - reg = <0x0 0x1c0f000 0x0 0x1000>; - interrupts = <0x0 0x3c 0x104>; - clocks = <0x6 0x5a 0x60 0x61 0x62>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x64>; - max-frequency = <0x2faf080>; - bus-width = <0x4>; - broken-cd; - status = "okay"; - non-removable = <0x1>; - pinctrl-0 = <0xb2>; - cd-gpios = <0x30 0x5 0x6 0x0 0x1 0x2 0x0>; - sunxi-power-save-mode; - vmmc = "none"; - vqmmc = "none"; - vdmmc = "vcc-sdc"; - }; - - sdmmc@1C10000 { - compatible = "allwinner,sun50i-sdmmc1"; - device_type = "sdc1"; - reg = <0x0 0x1c10000 0x0 0x1000>; - interrupts = <0x0 0x3d 0x104>; - clocks = <0x6 0x5a 0x65 0x66 0x67>; - clock-names = "osc24m", "pll_periph", "mmc", "ahb", "rst"; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x69>; - max-frequency = <0x8f0d180>; - bus-width = <0x4>; - sunxi-dly-52M-ddr4 = <0x1 0x0 0x0 0x0 0x2>; - sunxi-dly-104M = <0x1 0x0 0x0 0x0 0x1>; - sunxi-dly-208M = <0x1 0x0 0x0 0x0 0x1>; - status = "okay"; - pinctrl-0 = <0xb3>; - sd-uhs-sdr50; - sd-uhs-ddr50; - sd-uhs-sdr104; - cap-sdio-irq; - keep-power-in-suspend; - ignore-pm-notify; - }; - - disp@01000000 { - compatible = "allwinner,sun50i-disp"; - reg = <0x0 0x1000000 0x0 0x300000 0x0 0x1c0c000 0x0 0x17fc 0x0 0x1ca0000 0x0 0x10fc>; - interrupts = <0x0 0x56 0x104 0x0 0x57 0x104 0x0 0x59 0x104>; - clocks = <0x6a 0x6b 0x6c 0x6d 0x6e>; - status = "okay"; - device_type = "disp"; - disp_init_enable = <0x1>; - disp_mode = <0x0>; - screen0_output_type = <0x3>; - screen0_output_mode = <0xa>; - screen1_output_type = <0x3>; - screen1_output_mode = <0xa>; - fb0_format = <0x0>; - fb0_width = <0x0>; - fb0_height = <0x0>; - fb1_format = <0x0>; - fb1_width = <0x0>; - fb1_height = <0x0>; - }; - - lcd0@01c0c000 { - compatible = "allwinner,sunxi-lcd0"; - pinctrl-names = "active", "sleep"; - status = "okay"; - device_type = "lcd0"; - lcd_used = <0x0>; - lcd_driver_name = "mb709_mipi"; - lcd_backlight = <0x32>; - lcd_if = <0x4>; - lcd_x = <0x400>; - lcd_y = <0x258>; - lcd_width = <0x0>; - lcd_height = <0x0>; - lcd_dclk_freq = <0x37>; - lcd_pwm_used = <0x1>; - lcd_pwm_ch = <0x10>; - lcd_pwm_freq = <0xc350>; - lcd_pwm_pol = <0x1>; - lcd_pwm_max_limit = <0xfa>; - lcd_hbp = <0x78>; - lcd_ht = <0x604>; - lcd_hspw = <0x14>; - lcd_vbp = <0x17>; - lcd_vt = <0x27b>; - lcd_vspw = <0x2>; - lcd_dsi_if = <0x2>; - lcd_dsi_lane = <0x4>; - lcd_dsi_format = <0x0>; - lcd_dsi_eotp = <0x0>; - lcd_dsi_vc = <0x0>; - lcd_dsi_te = <0x0>; - lcd_frm = <0x0>; - lcd_gamma_en = <0x0>; - lcd_bright_curve_en = <0x0>; - lcd_cmap_en = <0x0>; - lcd_bl_en = <0x30 0x7 0xa 0x1 0x0 0xffffffff 0x1>; - lcd_bl_en_power = "none"; - lcd_power = "vcc-mipi"; - lcd_fix_power = "vcc-dsi-33"; - lcd_gpio_0 = <0x30 0x3 0x18 0x1 0x0 0xffffffff 0x1>; - }; - - hdmi@01ee0000 { - compatible = "allwinner,sunxi-hdmi"; - reg = <0x0 0x1ee0000 0x0 0x20000>; - clocks = <0x6f 0x70>; - device_type = "hdmi"; - status = "okay"; - hdmi_power = "vcc-hdmi-33"; - hdmi_hdcp_enable = <0x0>; - hdmi_cts_compatibility = <0x0>; - }; - - tr@01000000 { - compatible = "allwinner,sun50i-tr"; - reg = <0x0 0x1000000 0x0 0x200bc>; - interrupts = <0x0 0x60 0x104>; - clocks = <0x6a>; - status = "okay"; - }; - - pwm@01c21400 { - compatible = "allwinner,sunxi-pwm"; - reg = <0x0 0x1c21400 0x0 0x3c>; - pwm-number = <0x1>; - pwm-base = <0x0>; - pwms = <0x71>; - }; - - pwm0@01c21400 { - compatible = "allwinner,sunxi-pwm0"; - pinctrl-names = "active", "sleep"; - reg_base = <0x1c21400>; - reg_busy_offset = <0x0>; - reg_busy_shift = <0x1c>; - reg_enable_offset = <0x0>; - reg_enable_shift = <0x4>; - reg_clk_gating_offset = <0x0>; - reg_clk_gating_shift = <0x6>; - reg_bypass_offset = <0x0>; - reg_bypass_shift = <0x9>; - reg_pulse_start_offset = <0x0>; - reg_pulse_start_shift = <0x8>; - reg_mode_offset = <0x0>; - reg_mode_shift = <0x7>; - reg_polarity_offset = <0x0>; - reg_polarity_shift = <0x5>; - reg_period_offset = <0x4>; - reg_period_shift = <0x10>; - reg_period_width = <0x10>; - reg_active_offset = <0x4>; - reg_active_shift = <0x0>; - reg_active_width = <0x10>; - reg_prescal_offset = <0x0>; - reg_prescal_shift = <0x0>; - reg_prescal_width = <0x4>; - linux,phandle = <0x71>; - phandle = <0x71>; - device_type = "pwm0"; - pwm_used = <0x0>; - pinctrl-0 = <0xad>; - pinctrl-1 = <0xae>; - }; - - s_pwm@1f03800 { - compatible = "allwinner,sunxi-s_pwm"; - reg = <0x0 0x1f03800 0x0 0x3c>; - pwm-number = <0x1>; - pwm-base = <0x10>; - pwms = <0x72>; - }; - - spwm0@0x01f03800 { - compatible = "allwinner,sunxi-pwm16"; - pinctrl-names = "active", "sleep"; - reg_base = <0x1f03800>; - reg_busy_offset = <0x0>; - reg_busy_shift = <0x1c>; - reg_enable_offset = <0x0>; - reg_enable_shift = <0x4>; - reg_clk_gating_offset = <0x0>; - reg_clk_gating_shift = <0x6>; - reg_bypass_offset = <0x0>; - reg_bypass_shift = <0x9>; - reg_pulse_start_offset = <0x0>; - reg_pulse_start_shift = <0x8>; - reg_mode_offset = <0x0>; - reg_mode_shift = <0x7>; - reg_polarity_offset = <0x0>; - reg_polarity_shift = <0x5>; - reg_period_offset = <0x4>; - reg_period_shift = <0x10>; - reg_period_width = <0x10>; - reg_active_offset = <0x4>; - reg_active_shift = <0x0>; - reg_active_width = <0x10>; - reg_prescal_offset = <0x0>; - reg_prescal_shift = <0x0>; - reg_prescal_width = <0x4>; - linux,phandle = <0x72>; - phandle = <0x72>; - device_type = "spwm0"; - s_pwm_used = <0x1>; - pinctrl-0 = <0xaf>; - pinctrl-1 = <0xb0>; - }; - - boot_disp { - compatible = "allwinner,boot_disp"; - device_type = "boot_disp"; - output_disp = <0x0>; - output_type = <0x3>; - output_mode = <0xa>; - }; - - cci@0x01cb3000 { - compatible = "allwinner,sunxi-csi_cci"; - reg = <0x0 0x1cb3000 0x0 0x1000>; - interrupts = <0x0 0x55 0x4>; - status = "okay"; - }; - - csi_res@0x01cb0000 { - compatible = "allwinner,sunxi-csi"; - reg = <0x0 0x1cb0000 0x0 0x1000>; - status = "okay"; - }; - - vfe@0 { - device_type = "csi0"; - compatible = "allwinner,sunxi-vfe"; - interrupts = <0x0 0x54 0x4>; - clocks = <0x73 0x74 0x75 0x4 0x6 0x5>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x77>; - csi0_sensor_list = <0x1>; - status = "okay"; - pinctrl-0 = <0xb1>; - csi0_mck = <0x30 0x4 0x1 0x0 0x0 0x1 0x0>; - - dev@0 { - csi0_dev0_mname = "s5k4ec"; - csi0_dev0_twi_addr = <0x5a>; - csi0_dev0_pos = "rear"; - csi0_dev0_isp_used = <0x1>; - csi0_dev0_fmt = <0x0>; - csi0_dev0_stby_mode = <0x1>; - csi0_dev0_vflip = <0x0>; - csi0_dev0_hflip = <0x0>; - csi0_dev0_iovdd = "iovdd-csi"; - csi0_dev0_iovdd_vol = <0x2ab980>; - csi0_dev0_avdd = "avdd-csi"; - csi0_dev0_avdd_vol = <0x2ab980>; - csi0_dev0_dvdd = "dvdd-csi-18"; - csi0_dev0_dvdd_vol = <0x16e360>; - csi0_dev0_flash_used = <0x0>; - csi0_dev0_flash_type = <0x2>; - csi0_dev0_flvdd = "vdd-csi-led"; - csi0_dev0_flvdd_vol = <0x325aa0>; - csi0_dev0_act_used = <0x0>; - csi0_dev0_act_name = "ad5820_act"; - csi0_dev0_act_slave = <0x18>; - status = "disabled"; - device_type = "csi0_dev0"; - csi0_dev0_afvdd; - csi0_dev0_afvdd_vol; - csi0_dev0_power_en; - csi0_dev0_reset = <0x30 0x4 0x10 0x0 0x0 0x1 0x0>; - csi0_dev0_pwdn = <0x30 0x4 0x11 0x0 0x0 0x1 0x0>; - csi0_dev0_flash_en; - csi0_dev0_flash_mode; - csi0_dev0_af_pwdn; - }; - - dev@1 { - csi0_dev1_mname = "gc2145"; - csi0_dev1_twi_addr = <0x78>; - csi0_dev1_pos = "front"; - csi0_dev1_isp_used = <0x1>; - csi0_dev1_fmt = <0x0>; - csi0_dev1_stby_mode = <0x1>; - csi0_dev1_vflip = <0x0>; - csi0_dev1_hflip = <0x0>; - csi0_dev1_iovdd = "iovdd-csi"; - csi0_dev1_iovdd_vol = <0x2ab980>; - csi0_dev1_avdd = "avdd-csi"; - csi0_dev1_avdd_vol = <0x2ab980>; - csi0_dev1_dvdd = "dvdd-csi-18"; - csi0_dev1_dvdd_vol = <0x1b7740>; - csi0_dev1_flash_used = <0x0>; - csi0_dev1_flash_type = <0x2>; - csi0_dev1_flvdd = "vdd-csi-led"; - csi0_dev1_flvdd_vol = <0x325aa0>; - csi0_dev1_act_used = <0x0>; - csi0_dev1_act_name = "ad5820_act"; - csi0_dev1_act_slave = <0x18>; - status = "disabled"; - device_type = "csi0_dev1"; - csi0_dev1_afvdd; - csi0_dev1_afvdd_vol; - csi0_dev1_power_en; - csi0_dev1_reset = <0x30 0x4 0x10 0x0 0x0 0x1 0x0>; - csi0_dev1_pwdn = <0x30 0x4 0x11 0x0 0x0 0x1 0x0>; - csi0_dev1_flash_en; - csi0_dev1_flash_mode; - csi0_dev1_af_pwdn; - }; - }; - - vdevice@0 { - compatible = "allwinner,sun50i-vdevice"; - pinctrl-names = "default"; - test-gpios = <0x79 0xb 0x0 0x1 0x2 0x3 0x4>; - status = "okay"; - device_type = "Vdevice"; - pinctrl-0 = <0xb9>; - }; - - onewire_device@0 { - compatible = "w1-gpio"; - gpios = <0x30 0x2 0x8 0x0 0x0 0x0 0x0>; - pinctrl-names = "default"; - pinctrl-0 = <0xba>; - status = "okay"; - }; - - ce@1c15000 { - compatible = "allwinner,sunxi-ce"; - reg = <0x0 0x1c15000 0x0 0x80 0x0 0x1c15800 0x0 0x80>; - interrupts = <0x0 0x5e 0xff01 0x0 0x50 0xff01>; - clock-frequency = <0x11e1a300 0xbebc200>; - clocks = <0x7a 0x7b>; - }; - - deinterlace@0x01e00000 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sunxi-deinterlace"; - reg = <0x0 0x1e00000 0x0 0x77c>; - interrupts = <0x0 0x5d 0x4>; - clocks = <0x7c 0x4>; - status = "okay"; - device_type = "di"; - }; - - smartcard@0x01c2c400 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sunxi-scr"; - reg = <0x0 0x1c2c400 0x0 0x100>; - interrupts = <0x0 0x53 0x4>; - clocks = <0x7d 0x7e>; - clock-frequency = <0x16e3600>; - pinctrl-names = "default"; - pinctrl-0 = <0x7f>; - status = "okay"; - device_type = "smc"; - smc_used; - smc_rst; - smc_vppen; - smc_vppp; - smc_det; - smc_vccen; - smc_sck; - smc_sda; - }; - - nmi@0x01f00c00 { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "allwinner,sunxi-nmi"; - reg = <0x0 0x1f00c00 0x0 0x50>; - nmi_irq_ctrl = <0xc>; - nmi_irq_en = <0x40>; - nmi_irq_status = <0x10>; - nmi_irq_mask = <0x50>; - status = "okay"; - }; - - pmu0@0 { - compatible = "allwinner,pmu0"; - device_type = "pmu0"; - pmu_batdeten = <0x1>; - pmu_init_chgend_rate = <0x14>; - pmu_init_chg_enabled = <0x1>; - pmu_init_adc_freq = <0x320>; - pmu_init_adcts_freq = <0x320>; - pmu_init_chg_pretime = <0x46>; - pmu_init_chg_csttime = <0x2d0>; - pmu_batt_cap_correct = <0x1>; - pmu_chg_end_on_en = <0x0>; - pmu_pwroff_vol = <0xce4>; - pmu_pwron_vol = <0xa28>; - pmu_powkey_off_delay_time = <0x0>; - pmu_pwrok_time = <0x40>; - pmu_reset_shutdown_en = <0x1>; - pmu_restvol_adjust_time = <0x3c>; - pmu_ocv_cou_adjust_time = <0x3c>; - pmu_vbusen_func = <0x1>; - pmu_reset = <0x0>; - pmu_IRQ_wakeup = <0x1>; - pmu_hot_shutdowm = <0x1>; - pmu_inshort = <0x0>; - pmu_bat_shutdown_ltf = <0xc80>; - pmu_bat_shutdown_htf = <0xed>; - status = "okay"; - pmu_id = <0x6>; - pmu_twi_addr = <0x34>; - pmu_twi_id = <0x1>; - pmu_irq_id = <0x40>; - pmu_chg_ic_temp = <0x0>; - pmu_battery_rdc = <0x58>; - pmu_battery_cap = <0x12c0>; - pmu_runtime_chgcur = <0x1c2>; - pmu_suspend_chgcur = <0x5dc>; - pmu_shutdown_chgcur = <0x5dc>; - pmu_init_chgvol = <0x1068>; - pmu_ac_vol = <0xfa0>; - pmu_ac_cur = <0xdac>; - pmu_usbpc_vol = <0x1130>; - pmu_usbpc_cur = <0x1f4>; - pmu_battery_warning_level1 = <0xf>; - pmu_battery_warning_level2 = <0x0>; - pmu_chgled_func = <0x0>; - pmu_chgled_type = <0x0>; - pmu_bat_para1 = <0x0>; - pmu_bat_para2 = <0x0>; - pmu_bat_para3 = <0x0>; - pmu_bat_para4 = <0x0>; - pmu_bat_para5 = <0x0>; - pmu_bat_para6 = <0x0>; - pmu_bat_para7 = <0x1>; - pmu_bat_para8 = <0x1>; - pmu_bat_para9 = <0x2>; - pmu_bat_para10 = <0x3>; - pmu_bat_para11 = <0x4>; - pmu_bat_para12 = <0xa>; - pmu_bat_para13 = <0x11>; - pmu_bat_para14 = <0x1a>; - pmu_bat_para15 = <0x29>; - pmu_bat_para16 = <0x2e>; - pmu_bat_para17 = <0x33>; - pmu_bat_para18 = <0x38>; - pmu_bat_para19 = <0x3b>; - pmu_bat_para20 = <0x41>; - pmu_bat_para21 = <0x45>; - pmu_bat_para22 = <0x4b>; - pmu_bat_para23 = <0x4f>; - pmu_bat_para24 = <0x53>; - pmu_bat_para25 = <0x59>; - pmu_bat_para26 = <0x5f>; - pmu_bat_para27 = <0x62>; - pmu_bat_para28 = <0x64>; - pmu_bat_para29 = <0x64>; - pmu_bat_para30 = <0x64>; - pmu_bat_para31 = <0x64>; - pmu_bat_para32 = <0x64>; - pmu_bat_temp_enable = <0x1>; - pmu_bat_charge_ltf = <0x8d5>; - pmu_bat_charge_htf = <0x184>; - pmu_bat_temp_para1 = <0x1d2a>; - pmu_bat_temp_para2 = <0x1180>; - pmu_bat_temp_para3 = <0xdbe>; - pmu_bat_temp_para4 = <0xae2>; - pmu_bat_temp_para5 = <0x8af>; - pmu_bat_temp_para6 = <0x6fc>; - pmu_bat_temp_para7 = <0x5a8>; - pmu_bat_temp_para8 = <0x3c9>; - pmu_bat_temp_para9 = <0x298>; - pmu_bat_temp_para10 = <0x1d2>; - pmu_bat_temp_para11 = <0x189>; - pmu_bat_temp_para12 = <0x14d>; - pmu_bat_temp_para13 = <0x11b>; - pmu_bat_temp_para14 = <0xf2>; - pmu_bat_temp_para15 = <0xb3>; - pmu_bat_temp_para16 = <0x86>; - pmu_powkey_off_time = <0x1770>; - pmu_powkey_off_func = <0x0>; - pmu_powkey_off_en = <0x1>; - pmu_powkey_long_time = <0x5dc>; - pmu_powkey_on_time = <0x3e8>; - power_start = <0x3>; - }; - - regu@0 { - compatible = "allwinner,pmu0_regu"; - regulator_count = <0x17>; - status = "okay"; - device_type = "pmu0_regu"; - regulator1 = "axp81x_dcdc1 none vcc-nand vcc-emmc vcc-sdc vcc-usb-30 vcc-io vcc-pd"; - regulator2 = "axp81x_dcdc2 none vdd-cpua"; - regulator3 = "axp81x_dcdc3 none"; - regulator4 = "axp81x_dcdc4 none"; - regulator5 = "axp81x_dcdc5 none vcc-dram"; - regulator6 = "axp81x_dcdc6 none vdd-sys"; - regulator7 = "axp81x_dcdc7 none"; - regulator8 = "axp81x_rtc none"; - regulator9 = "axp81x_aldo1 none vdd-csi-led iovdd-csi vcc-pe"; - regulator10 = "axp81x_aldo2 none vcc-pl"; - regulator11 = "axp81x_aldo3 none vcc-avcc vcc-pll"; - regulator12 = "axp81x_dldo1 none vcc-hdmi-33"; - regulator13 = "axp81x_dldo2 none vcc-mipi"; - regulator14 = "axp81x_dldo3 none avdd-csi"; - regulator15 = "axp81x_dldo4 none vcc-deviceio"; - regulator16 = "axp81x_eldo1 none vcc-cpvdd vcc-wifi-io vcc-pc vcc-pg"; - regulator17 = "axp81x_eldo2 none vcc-lcd-0"; - regulator18 = "axp81x_eldo3 none dvdd-csi-18"; - regulator19 = "axp81x_fldo1 none vcc-hsic-12"; - regulator20 = "axp81x_fldo2 none vdd-cpus"; - regulator21 = "axp81x_gpio0ldo none vcc-ctp"; - regulator22 = "axp81x_gpio1ldo none"; - regulator23 = "axp81x_dc1sw none vcc-lvds vcc-dsi-33"; - }; - - nand0@01c03000 { - compatible = "allwinner,sun50i-nand"; - device_type = "nand0"; - reg = <0x0 0x1c03000 0x0 0x1000>; - interrupts = <0x0 0x46 0x4>; - clocks = <0x4 0x80>; - pinctrl-names = "default", "sleep"; - pinctrl-1 = <0x83>; - nand0_regulator1 = "vcc-nand"; - nand0_regulator2 = "none"; - nand0_cache_level = <0x55aaaa55>; - nand0_flush_cache_num = <0x55aaaa55>; - nand0_capacity_level = <0x55aaaa55>; - nand0_id_number_ctl = <0x55aaaa55>; - nand0_print_level = <0x55aaaa55>; - nand0_p0 = <0x55aaaa55>; - nand0_p1 = <0x55aaaa55>; - nand0_p2 = <0x55aaaa55>; - nand0_p3 = <0x55aaaa55>; - status = "disabled"; - nand0_support_2ch = <0x0>; - pinctrl-0 = <0xab 0xac>; - }; - - thermal_sensor { - compatible = "allwinner,thermal_sensor"; - reg = <0x0 0x1c25000 0x0 0x400>; - interrupts = <0x0 0x1f 0x0>; - clocks = <0x6 0x84>; - sensor_num = <0x3>; - shut_temp = <0x78>; - status = "okay"; - - combine0 { - #thermal-sensor-cells = <0x1>; - combine_cnt = <0x3>; - combine_type = "max"; - combine_chn = <0x0 0x1 0x2>; - linux,phandle = <0x85>; - phandle = <0x85>; - }; - }; - - cpu_budget_cool { - compatible = "allwinner,budget_cooling"; - #cooling-cells = <0x2>; - status = "okay"; - state_cnt = <0xa>; - cluster_num = <0x1>; - state0 = <0x119400 0x4>; - state1 = <0x10d880 0x4>; - state2 = <0x101d00 0x4>; - state3 = <0xf6180 0x4>; - state4 = <0xea600 0x4>; - state5 = <0xdea80 0x4>; - state6 = <0xc7380 0x4>; - state7 = <0x9e340 0x4>; - state8 = <0x9e340 0x2>; - state9 = <0x9e340 0x1>; - linux,phandle = <0x87>; - phandle = <0x87>; - }; - - gpu_cooling { - compatible = "allwinner,gpu_cooling"; - reg = <0x0 0x0 0x0 0x0>; - #cooling-cells = <0x2>; - status = "okay"; - state_cnt = <0x3>; - state0 = <0x0>; - state1 = <0x168>; - state2 = <0x90>; - linux,phandle = <0x8c>; - phandle = <0x8c>; - }; - - thermal-zones { - - soc_thermal { - polling-delay-passive = <0x1f4>; - polling-delay = <0x7d0>; - thermal-sensors = <0x85 0x0>; - - trips { - - t0 { - temperature = <0x50>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x86>; - phandle = <0x86>; - }; - - t1 { - temperature = <0x55>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x88>; - phandle = <0x88>; - }; - - t2 { - temperature = <0x5a>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x89>; - phandle = <0x89>; - }; - - t3 { - temperature = <0x5f>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x8a>; - phandle = <0x8a>; - }; - - t4 { - temperature = <0x55>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x8b>; - phandle = <0x8b>; - }; - - t5 { - temperature = <0x5a>; - type = "passive"; - hysteresis = <0x0>; - linux,phandle = <0x8d>; - phandle = <0x8d>; - }; - - t6 { - temperature = <0x6c>; - type = "critical"; - hysteresis = <0x0>; - }; - }; - - cooling-maps { - - bind0 { - contribution = <0x0>; - trip = <0x86>; - cooling-device = <0x87 0x1 0x1>; - }; - - bind1 { - contribution = <0x0>; - trip = <0x88>; - cooling-device = <0x87 0x2 0x2>; - }; - - bind2 { - contribution = <0x0>; - trip = <0x89>; - cooling-device = <0x87 0x3 0x6>; - }; - - bind3 { - contribution = <0x0>; - trip = <0x8a>; - cooling-device = <0x87 0x7 0x9>; - }; - - bind4 { - contribution = <0x0>; - trip = <0x8b>; - cooling-device = <0x8c 0x1 0x1>; - }; - - bind5 { - contribution = <0x0>; - trip = <0x8d>; - cooling-device = <0x8c 0x2 0x2>; - }; - }; - }; - }; - - keyboard { - compatible = "allwinner,keyboard_2000mv"; - reg = <0x0 0x1c21800 0x0 0x400>; - interrupts = <0x0 0x1e 0x0>; - status = "okay"; - key_cnt = <0x5>; - key1 = <0xf0 0x73>; - key2 = <0x1f4 0x72>; - key3 = <0x2bc 0x8b>; - key4 = <0x37a 0x1c>; - key5 = <0x7d0 0x66>; - }; - - eth@01c30000 { - compatible = "allwinner,sunxi-gmac"; - reg = <0x0 0x1c30000 0x0 0x40000 0x0 0x1c00000 0x0 0x30>; - pinctrl-names = "default"; - interrupts = <0x0 0x52 0x4>; - interrupt-names = "gmacirq"; - clocks = <0x8f>; - clock-names = "gmac"; - phy-mode = "rgmii"; - tx-delay = <0x3>; - rx-delay = <0x0>; - gmac_power1 = "axp81x_dc1sw:0"; - status = "okay"; - device_type = "gmac0"; - pinctrl-0 = <0x9e>; - gmac_power2; - gmac_power3; - }; - - product { - device_type = "product"; - version = "100"; - machine = "evb"; - }; - - platform { - device_type = "platform"; - eraseflag = <0x1>; - }; - - target { - device_type = "target"; - boot_clock = <0x3f0>; - storage_type = <0xffffffff>; - burn_key = <0x0>; - }; - - power_sply { - device_type = "power_sply"; - dcdc1_vol = <0xf4f24>; - dcdc2_vol = <0xf468c>; - dcdc6_vol = <0xf468c>; - aldo1_vol = <0xaf0>; - aldo2_vol = <0xf4948>; - aldo3_vol = <0xf4df8>; - dldo1_vol = <0xce4>; - dldo2_vol = <0xce4>; - dldo3_vol = <0xaf0>; - dldo4_vol = <0xf4f24>; - eldo1_vol = <0xf4948>; - eldo2_vol = <0x708>; - eldo3_vol = <0x708>; - fldo1_vol = <0x4b0>; - fldo2_vol = <0xf468c>; - gpio0_vol = <0xc1c>; - }; - - card_boot { - device_type = "card_boot"; - logical_start = <0xa000>; - sprite_gpio0; - }; - - pm_para { - device_type = "pm_para"; - standby_mode = <0x1>; - }; - - card0_boot_para { - device_type = "card0_boot_para"; - card_ctrl = <0x0>; - card_high_speed = <0x1>; - card_line = <0x4>; - pinctrl-0 = <0x99>; - }; - - card2_boot_para { - device_type = "card2_boot_para"; - sdc_io_1v8 = <0x1>; - card_ctrl = <0x2>; - card_high_speed = <0x1>; - card_line = <0x8>; - pinctrl-0 = <0x9a>; - sdc_ex_dly_used = <0x2>; - }; - - twi_para { - device_type = "twi_para"; - twi_port = <0x0>; - pinctrl-0 = <0x9b>; - }; - - uart_para { - device_type = "uart_para"; - uart_debug_port = <0x0>; - pinctrl-0 = <0x9c>; - }; - - jtag_para { - device_type = "jtag_para"; - jtag_enable = <0x1>; - pinctrl-0 = <0x9d>; - }; - - clock { - device_type = "clock"; - pll4 = <0x12c>; - pll6 = <0x258>; - pll8 = <0x168>; - pll9 = <0x129>; - pll10 = <0x108>; - }; - - rtp_para { - device_type = "rtp_para"; - rtp_used = <0x0>; - rtp_screen_size = <0x5>; - rtp_regidity_level = <0x5>; - rtp_press_threshold_enable = <0x0>; - rtp_press_threshold = <0x1f40>; - rtp_sensitive_level = <0xf>; - rtp_exchange_x_y_flag = <0x0>; - }; - - ctp { - device_type = "ctp"; - compatible = "allwinner,sun50i-ctp-para"; - status = "disabled"; - ctp_name = "gt911_DB"; - ctp_twi_id = <0x0>; - ctp_twi_addr = <0x40>; - ctp_screen_max_x = <0x400>; - ctp_screen_max_y = <0x258>; - ctp_revert_x_flag = <0x1>; - ctp_revert_y_flag = <0x1>; - ctp_exchange_x_y_flag = <0x0>; - ctp_int_port = <0x30 0x7 0x4 0x6 0xffffffff 0xffffffff 0xffffffff>; - ctp_wakeup = <0x30 0x7 0xb 0x1 0xffffffff 0xffffffff 0x1>; - ctp_power_ldo = "vcc-ctp"; - ctp_power_ldo_vol = <0xce4>; - ctp_power_io; - }; - - ctp_list { - device_type = "ctp_list"; - compatible = "allwinner,sun50i-ctp-list"; - status = "okay"; - gslX680new = <0x1>; - gt9xx_ts = <0x0>; - gt9xxf_ts = <0x1>; - gt9xxnew_ts = <0x0>; - gt82x = <0x1>; - zet622x = <0x1>; - aw5306_ts = <0x1>; - }; - - tkey_para { - device_type = "tkey_para"; - tkey_used = <0x0>; - tkey_twi_id; - tkey_twi_addr; - tkey_int; - }; - - motor_para { - device_type = "motor_para"; - motor_used = <0x0>; - motor_shake = <0x31 0xfffe 0x3 0x1 0xffffffff 0xffffffff 0x1>; - }; - - tvout_para { - device_type = "tvout_para"; - tvout_used; - tvout_channel_num; - tv_en; - }; - - tvin_para { - device_type = "tvin_para"; - tvin_used; - tvin_channel_num; - }; - - serial_feature { - device_type = "serial_feature"; - sn_filename = "sn.txt"; - }; - - gsensor { - device_type = "gsensor"; - compatible = "allwinner,sun50i-gsensor-para"; - status = "disabled"; - gsensor_twi_id = <0x1>; - gsensor_twi_addr = <0x1d>; - gsensor_vcc_io = "vcc-deviceio"; - gsensor_vcc_io_val = <0xce4>; - gsensor_int1 = <0x30 0x7 0x5 0x6 0x1 0xffffffff 0xffffffff>; - gsensor_int2 = <0x30 0x7 0x6 0x6 0x1 0xffffffff 0xffffffff>; - }; - - gsensor_list { - device_type = "gsensor_list"; - compatible = "allwinner,sun50i-gsensor-list-para"; - gsensor_list__used = <0x1>; - lsm9ds0_acc_mag = <0x1>; - bma250 = <0x1>; - mma8452 = <0x1>; - mma7660 = <0x1>; - mma865x = <0x1>; - afa750 = <0x1>; - lis3de_acc = <0x1>; - lis3dh_acc = <0x1>; - kxtik = <0x1>; - dmard10 = <0x0>; - dmard06 = <0x1>; - mxc622x = <0x1>; - fxos8700 = <0x1>; - lsm303d = <0x0>; - sc7a30 = <0x1>; - }; - - 3g_para { - device_type = "3g_para"; - 3g_used = <0x0>; - 3g_usbc_num = <0x2>; - 3g_uart_num = <0x0>; - bb_vbat = <0x79 0xb 0x3 0x1 0xffffffff 0xffffffff 0x0>; - bb_host_wake = <0x79 0xc 0x0 0x1 0xffffffff 0xffffffff 0x0>; - bb_on = <0x79 0xc 0x1 0x1 0xffffffff 0xffffffff 0x0>; - bb_pwr_on = <0x79 0xc 0x3 0x1 0xffffffff 0xffffffff 0x0>; - bb_wake = <0x79 0xc 0x4 0x1 0xffffffff 0xffffffff 0x0>; - bb_rf_dis = <0x79 0xc 0x5 0x1 0xffffffff 0xffffffff 0x0>; - bb_rst = <0x79 0xc 0x6 0x1 0xffffffff 0xffffffff 0x0>; - 3g_int; - }; - - gyroscopesensor { - device_type = "gyroscopesensor"; - compatible = "allwinner,sun50i-gyr_sensors-para"; - status = "disabled"; - gy_twi_id = <0x2>; - gy_twi_addr = <0x6a>; - gy_int1 = <0x30 0x0 0xa 0x6 0x1 0xffffffff 0xffffffff>; - gy_int2; - }; - - gy_list { - device_type = "gy_list"; - compatible = "allwinner,sun50i-gyr_sensors-list-para"; - status = "disabled"; - lsm9ds0_gyr = <0x1>; - l3gd20_gyr = <0x0>; - bmg160_gyr = <0x1>; - }; - - lightsensor { - device_type = "lightsensor"; - compatible = "allwinner,sun50i-lsensors-para"; - status = "disabled"; - ls_twi_id = <0x2>; - ls_twi_addr = <0x23>; - ls_int = <0x30 0x0 0xc 0x6 0x1 0xffffffff 0xffffffff>; - }; - - ls_list { - device_type = "ls_list"; - compatible = "allwinner,sun50i-lsensors-list-para"; - status = "disabled"; - ltr_501als = <0x1>; - jsa1212 = <0x0>; - jsa1127 = <0x1>; - stk3x1x = <0x0>; - }; - - compasssensor { - device_type = "compasssensor"; - compatible = "allwinner,sun50i-compass-para"; - status = "disabled"; - compass_twi_id = <0x2>; - compass_twi_addr = <0xd>; - compass_int = <0x30 0x0 0xb 0x6 0x1 0xffffffff 0xffffffff>; - }; - - compass_list { - device_type = "compass_list"; - compatible = "allwinner,sun50i-compass-list-para"; - status = "disabled"; - lsm9ds0 = <0x1>; - lsm303d = <0x0>; - }; - - recovery_key { - device_type = "recovery_key"; - key_max = <0xc>; - key_min = <0xa>; - }; - - fastboot_key { - device_type = "fastboot_key"; - key_max = <0x6>; - key_min = <0x4>; - }; - }; - - aliases { - serial0 = "/soc@01c00000/uart@01c28000"; - serial1 = "/soc@01c00000/uart@01c28400"; - serial2 = "/soc@01c00000/uart@01c28800"; - serial3 = "/soc@01c00000/uart@01c28c00"; - serial4 = "/soc@01c00000/uart@01c29000"; - twi0 = "/soc@01c00000/twi@0x01c2ac00"; - twi1 = "/soc@01c00000/twi@0x01c2b000"; - twi2 = "/soc@01c00000/twi@0x01c2b400"; - spi0 = "/soc@01c00000/spi@01c68000"; - spi1 = "/soc@01c00000/spi@01c69000"; - global_timer0 = "/soc@01c00000/timer@1c20c00"; - cci0 = "/soc@01c00000/cci@0x01cb3000"; - csi_res0 = "/soc@01c00000/csi_res@0x01cb0000"; - vfe0 = "/soc@01c00000/vfe@0"; - mmc0 = "/soc@01c00000/sdmmc@01c0f000"; - mmc2 = "/soc@01c00000/sdmmc@01C11000"; - nand0 = "/soc@01c00000/nand0@01c03000"; - disp = "/soc@01c00000/disp@01000000"; - lcd0 = "/soc@01c00000/lcd0@01c0c000"; - hdmi = "/soc@01c00000/hdmi@01ee0000"; - pwm = "/soc@01c00000/pwm@01c21400"; - pwm0 = "/soc@01c00000/pwm0@01c21400"; - s_pwm = "/soc@01c00000/s_pwm@1f03800"; - spwm0 = "/soc@01c00000/spwm0@0x01f03800"; - boot_disp = "/soc@01c00000/boot_disp"; - }; - - chosen { - bootargs = "earlyprintk=sunxi-uart,0x01c28000 loglevel=8 initcall_debug=1 console=ttyS0 init=/init"; - linux,initrd-start = <0x0 0x0>; - linux,initrd-end = <0x0 0x0>; - }; - - cpus { - #address-cells = <0x2>; - #size-cells = <0x0>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x0>; - enable-method = "psci"; - cpufreq_tbl = <0x75300 0x927c0 0xafc80 0xc7380 0xdea80 0xea600 0xf6180 0x101d00 0x10d880 0x119400 0x124f80 0x148200>; - clock-latency = <0x1e8480>; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - cpu@1 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x1>; - enable-method = "psci"; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - cpu@2 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x2>; - enable-method = "psci"; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - cpu@3 { - device_type = "cpu"; - compatible = "arm,cortex-a53", "arm,armv8"; - reg = <0x0 0x3>; - enable-method = "psci"; - clock-frequency = <0x3c14dc00>; - cpu-idle-states = <0x90 0x91 0x92>; - }; - - idle-states { - entry-method = "arm,psci"; - - cpu-sleep-0 { - compatible = "arm,idle-state"; - arm,psci-suspend-param = <0x10000>; - entry-latency-us = <0x28>; - exit-latency-us = <0x64>; - min-residency-us = <0x96>; - linux,phandle = <0x90>; - phandle = <0x90>; - }; - - cluster-sleep-0 { - compatible = "arm,idle-state"; - arm,psci-suspend-param = <0x1010000>; - entry-latency-us = <0x1f4>; - exit-latency-us = <0x3e8>; - min-residency-us = <0x9c4>; - linux,phandle = <0x91>; - phandle = <0x91>; - }; - - sys-sleep-0 { - compatible = "arm,idle-state"; - arm,psci-suspend-param = <0x2010000>; - entry-latency-us = <0x3e8>; - exit-latency-us = <0x7d0>; - min-residency-us = <0x1194>; - linux,phandle = <0x92>; - phandle = <0x92>; - }; - }; - }; - - psci { - compatible = "arm,psci-0.2"; - method = "smc"; - psci_version = <0x84000000>; - cpu_suspend = <0xc4000001>; - cpu_off = <0x84000002>; - cpu_on = <0xc4000003>; - affinity_info = <0xc4000004>; - migrate = <0xc4000005>; - migrate_info_type = <0x84000006>; - migrate_info_up_cpu = <0xc4000007>; - system_off = <0x84000008>; - system_reset = <0x84000009>; - }; - - n_brom { - compatible = "allwinner,n-brom"; - reg = <0x0 0x0 0x0 0xc000>; - }; - - s_brom { - compatible = "allwinner,s-brom"; - reg = <0x0 0x0 0x0 0x10000>; - }; - - sram_a1 { - compatible = "allwinner,sram_a1"; - reg = <0x0 0x10000 0x0 0x8000>; - }; - - sram_a2 { - compatible = "allwinner,sram_a2"; - reg = <0x0 0x40000 0x0 0x14000>; - }; - - prcm { - compatible = "allwinner,prcm"; - reg = <0x0 0x1f01400 0x0 0x400>; - }; - - cpuscfg { - compatible = "allwinner,cpuscfg"; - reg = <0x0 0x1f01c00 0x0 0x400>; - }; - - ion { - compatible = "allwinner,sunxi-ion"; - - system_contig { - type = <0x1>; - }; - - cma { - type = <0x4>; - }; - - system { - type = <0x0>; - }; - }; - - dram { - compatible = "allwinner,dram"; - clocks = <0x93 0x94>; - clock-names = "pll_ddr0", "pll_ddr1"; - dram_clk = <0x228>; - dram_type = <0x7>; - dram_zq = <0x3b3bdd>; - dram_odt_en = <0x1>; - dram_para1 = <0x10e410e4>; - dram_para2 = <0x1000>; - dram_mr0 = <0x1840>; - dram_mr1 = <0x40>; - dram_mr2 = <0x18>; - dram_mr3 = <0x2>; - dram_tpr0 = <0x4a2195>; - dram_tpr1 = <0x2424190>; - dram_tpr2 = <0x8b060>; - dram_tpr3 = <0x50005dc>; - dram_tpr4 = <0x0>; - dram_tpr5 = <0x0>; - dram_tpr6 = <0x0>; - dram_tpr7 = <0x2a066198>; - dram_tpr8 = <0x0>; - dram_tpr9 = <0x0>; - dram_tpr10 = <0x8808>; - dram_tpr11 = <0x40a60066>; - dram_tpr12 = <0x55550000>; - dram_tpr13 = <0x4000900>; - device_type = "dram"; - }; - - memory@40000000 { - device_type = "memory"; - reg = <0x0 0x40000000 0x0 0x40000000>; - }; - - interrupt-controller@1c81000 { - compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; - #interrupt-cells = <0x3>; - #address-cells = <0x0>; - device_type = "gic"; - interrupt-controller; - reg = <0x0 0x1c81000 0x0 0x1000 0x0 0x1c82000 0x0 0x2000 0x0 0x1c84000 0x0 0x2000 0x0 0x1c86000 0x0 0x2000>; - interrupts = <0x1 0x9 0xf04>; - linux,phandle = <0x1>; - phandle = <0x1>; - }; - - sunxi-chipid@1c14200 { - compatible = "allwinner,sunxi-chipid"; - device_type = "chipid"; - reg = <0x0 0x1c14200 0x0 0x400>; - }; - - timer { - compatible = "arm,armv8-timer"; - interrupts = <0x1 0xd 0xff01 0x1 0xe 0xff01 0x1 0xb 0xff01 0x1 0xa 0xff01>; - clock-frequency = <0x16e3600>; - }; - - pmu { - compatible = "arm,armv8-pmuv3"; - interrupts = <0x0 0x78 0x4 0x0 0x79 0x4 0x0 0x7a 0x4 0x0 0x7b 0x4>; - }; - - dvfs_table { - compatible = "allwinner,dvfs_table"; - max_freq = <0x44aa2000>; - min_freq = <0x1c9c3800>; - lv_count = <0x8>; - lv1_freq = <0x44aa2000>; - lv1_volt = <0x514>; - lv2_freq = <0x41cdb400>; - lv2_volt = <0x4ec>; - lv3_freq = <0x3ef14800>; - lv3_volt = <0x4d8>; - lv4_freq = <0x3c14dc00>; - lv4_volt = <0x4b0>; - lv5_freq = <0x39387000>; - lv5_volt = <0x488>; - lv6_freq = <0x365c0400>; - lv6_volt = <0x460>; - lv7_freq = <0x30a32c00>; - lv7_volt = <0x438>; - lv8_freq = <0x269fb200>; - lv8_volt = <0x410>; - device_type = "dvfs_table"; - }; - - dramfreq { - compatible = "allwinner,sunxi-dramfreq"; - reg = <0x0 0x1c62000 0x0 0x1000 0x0 0x1c63000 0x0 0x1000 0x0 0x1c20000 0x0 0x800>; - clocks = <0x93 0x94 0x95>; - status = "okay"; - }; - - uboot { - }; - - gpu@0x01c40000 { - compatible = "arm,mali-400", "arm,mali-utgard"; - reg = <0x0 0x1c40000 0x0 0x10000>; - interrupts = <0x0 0x61 0x4 0x0 0x62 0x4 0x0 0x63 0x4 0x0 0x64 0x4 0x0 0x66 0x4 0x0 0x67 0x4>; - interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", "IRQPP1", "IRQPPMMU1"; - clocks = <0x96 0x97>; - device_type = "gpu_mali400_0"; - normal_freq = <0x198>; - scene_ctrl_status = <0x0>; - temp_ctrl_status = <0x1>; - }; - - wlan { - compatible = "allwinner,sunxi-wlan"; - wlan_io_regulator = "vcc-wifi-io"; - wlan_busnum = <0x1>; - status = "okay"; - device_type = "wlan"; - clocks; - wlan_power; - wlan_regon = <0x79 0xb 0x2 0x1 0xffffffff 0xffffffff 0x0>; - wlan_hostwake = <0x79 0xb 0x3 0x6 0xffffffff 0xffffffff 0x0>; - efuse_map_path = "wifi_efuse_8189e_for_MB1019Q5.map"; - }; - - bt { - compatible = "allwinner,sunxi-bt"; - bt_io_regulator = "vcc-wifi-io"; - status = "okay"; - device_type = "bt"; - clocks; - bt_power; - bt_rst_n = <0x79 0xb 0x4 0x1 0xffffffff 0xffffffff 0x0>; - }; - - btlpm { - compatible = "allwinner,sunxi-btlpm"; - uart_index = <0x1>; - status = "okay"; - device_type = "btlpm"; - bt_wake = <0x79 0xb 0x6 0x1 0xffffffff 0xffffffff 0x1>; - bt_hostwake = <0x79 0xb 0x5 0x6 0xffffffff 0xffffffff 0x0>; - }; -}; diff --git a/blobs/scp.bin b/blobs/scp.bin deleted file mode 100644 index dcb803bf7cae7559c0cf1a8f943f75e63150764f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104660 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 a0gfRY \ No newline at end of file diff --git a/bootlogo/battery/battery-full.svg b/bootlogo/battery/battery-full.svg deleted file mode 100644 index ceb6da27..00000000 --- a/bootlogo/battery/battery-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/bootlogo/battery/battery-half.svg b/bootlogo/battery/battery-half.svg deleted file mode 100644 index 386269d7..00000000 --- a/bootlogo/battery/battery-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/bootlogo/battery/battery-low.svg b/bootlogo/battery/battery-low.svg deleted file mode 100644 index fda971b2..00000000 --- a/bootlogo/battery/battery-low.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/bootlogo/battery/battery_charge.bmp b/bootlogo/battery/battery_charge.bmp deleted file mode 100644 index 59bda5941b484b6c148f3db104a62e104d8849a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4196490 zcmeF)zi%UX6##H21_W$#0-<#1vOv5ZB3*+t z-8B)CE9x}Vmp>r||3ErgsE2(U%w~7}{f>W(=Q}h0tj_1ejy>b|K3^A4Z{GK--+lAL zFDCKtn>V-fH@820|IPoVlgZKK)3}>V-aP-4N0Ya=`1Sr@J(=A97r)kD{r2~N{`$NB z{OV8t`1#L1{mZ|OzWDs}pML%7)i1wz_38(I`}W%({pQF2oc`jEfBp6UUi|j%dk=rP z|M|^3#=E+S0Rs#$zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 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 zaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~ z0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv z9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p# zzySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^ z2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvw zaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~ z0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv z9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p# zzySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^ z2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvw zaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~ z0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv z9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p# zzySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^ z2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvw zaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~ Gf&V~Fnpxif diff --git a/bootlogo/battery/bempty.bmp b/bootlogo/battery/bempty.bmp deleted file mode 100644 index d1563e6019d173da9d8532000712fc6f33ccb26f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4196490 zcmeF)&ug5=83%BMx>eOgCa83SB2-CO*a8tmWTJyyQ0zi_NeS|yU@)Z^YN(GY^{LQA zrI&=zpi_Jah1e%wYI^ahhl>6MI`kj#t=IOv_2bk*nD<$&W`DfzyZb5KTAJONeP`w~ zI($3tyf=RS>G$8CiT`~1{Pp|iuU~xk`Tu-pX6Ch-)%a&-=K1>zug|=A#joG|r#mzA z&41(9?v0<_{O!m8`0vKAp8ohptAG0UYwusZ`ooX!-o5<(-MioW%Yz4VKl#DGzO#P& z&)fg6{NkSrr+@k8=jSa(t6s){0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ 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 \ No newline at end of file diff --git a/bootlogo/battery/icon-battery-empty.bmp b/bootlogo/battery/icon-battery-empty.bmp deleted file mode 100644 index d16fcaf6418828d76427688116c16b7765fad55a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37630 zcmeHQ!HOM46n!Cs661)BB$9|a;t&TUgk&%aBP5QX8%4}c3?hOfx{OIy0i)tZ5hW{U z69VeWO@f=OTqu5l3x6QHY;|kZ~v^n zck8JGt6$#Pb7o`Xu`63!N6u_*J#c+{d*4eB{k3=P+_xv3HO@=&Vy8U!2(RUs8U_#U zd!{<{^!e)flfPFdU-^6Y!1dbEAF4-IUM|nY0^;Jywa=>)r*H4_A-R!d@U(yVc;ToA zj+T}ly&Dq}|E4lHJov=>g`dRyV6JN7Lc3q)xOD42))o!-Huc9|{If#bO>JFHJziki zW_@Ym2sH`+D$&*pXb8au`?j{L;k)IMcATVyEn>!}ySxTX7>_C(G6v1>WRqOPS}& z%4@8=#oF6p-YcB&oH*>P7_jCwtov^MtDh}9*KRpCbBBFz9b0*gy_pZkro70CIiJ5$ z=jW=+K3ZbP+DRX!?B~Scg4mF;QZH+z>}3zme^^Bufv%+V|}Q{ zi@Ub;7}k#I_~O%xD#q4++R7}!Y3DcP9A z8jQK#*T+TGVJ-Jz(^RMR7qQr7uY%`QYm3b(Sv%~Ly7WEPYc(vbHCe+9^_oAHYhPPz z?67veKJ-ziVL4=OfD4;bva!<#7xgxB<%ZQ`Si3rIeO%|t4X_!zj*~MtY);AQIDN#5 zY$IoGFb-CaVeKS#smr-@)3=V3nh)t;Y(HgL z!?JBXa%QO^Xm+W%0XD22!`h|fL;BXR>{1VYoIa`9rR0XqDMMmTVwkF|VcE6b<*J%p zN^XD+n^UrOsrZn7H7uEW#Exc{nj1EDSUZVfs3(H|Xn_bQ}%mT)7#Ojx#oH5Id|M!`k`g zmKb$oOjx%;{SUrZd3yl?NKXz^~)?9TQjT^jQ2HnPYXf{L8 z)8upK%DL(|8qQ2T-ka9!z?;Kr5ocD9VeMj!QNxm{$M4*0c8lgFM;%AQvTMD=UbA!e zV?0lckC2>lQ96!>WtaME-+#0FSy9by(cFMfR*zxrm}f}ZXjrzb$M2}g&+uw?L*RzZ zDMMmTV%@c@VQKBtzz48)zxO2D)cg&B8}yUaV^}+hP1mx9rS-n2)rRJ8DBQ5I!`fL` zHQm#&94j}#BNrWKirlbz3~SdEAKLvXasw=K&~c{9O%6IvU)*Tzq^`HV1BTUOSUarY zF~)0sH-k?)!`g+$jy0AhZg3y(6%37^`ez^AIM|$$jk%ET$C0|F>pycw z+{Ie^V#JO$N3(hiYlpsc9TRM%Zpm;`w*g1^Tn>CM@<1QzeRJ1r?67vgxGff#gJN^y z#+}PK7ab=TJY)8g)niz@n0=puuN-uoDe&MMV-7lwuisOtWAzx;ZYsFO7-tF{2XkeN zzD?Z+n^OWeOUJ=}d+ON67(c7WSa#UY#pv7AeXuzt{`R~3`y%x-c$+$|vBuBnF@>A- ze{To;GO<(Uw0^h&KbDSzy_Z}=EM73bmAyb*-Yh+)zMfdu$bDkXwZ+dpj;+|S_>lLY zHxx|oVHyhy%tcn-B02Dt!ELO*6hHU#Yw2u0K3pBa)DR^ry z`U&*l#gl@51pj>jZyxlZ=XIaNk##fAB(uBCrtK5@c6Z;|nb7Aq@65ZiyPd!N_-Tl;I3pd{e_%55-&WF!c$JWkn^)W3gldm&n z15LNLe{|T&$}9Rkw)5e0)k!iA4{9B;8Qg1Ru@M`MY5sjcapSL9zvidB*{rU<3nnJ2 zR#Pru&$V$4d89N)?cm5+YktL8BagN9H*jGLP-d&MUwllknaeWs}#D_&o{ch z@sHbn%{O8rHf-$Pjef5XR#3*%{TsipkHyL^|b8RFlH{l*3;S8yxbf%4wDk4ky%6*PR!?m5V`JuevGHfX#xe#f?8Rre!aFjAJHV zy0N)3_p)Ox)2waU?mNSW`_<;0=yrB?`Cnf!-@6yLi~*jTf$q%W&kP!ESbK4X=6pTZ z$>WJ>=~{<2y4tp^J+a{oY&ycnv=keEEt$qi{bG|p1IA8l#0Gh`?VXVem+lAakAGSX zWwtu|#n-R6Vc#Ra{h0ulF45~rHXhpi$h}?ds?487Tr)h|Y}3A*54m!@Egh%l5!H~r zGuVv{{tu2~CtDU#F6=t78y8cKcRjG46Kzxb>3JocXABp!Mf{*GF-p$_<52XyO`~xZ R+x?RB?!@1jbZ)V6`vZON>XrZi diff --git a/bootlogo/battery/icon-charge.bmp b/bootlogo/battery/icon-charge.bmp deleted file mode 100644 index be12ec88bb4141edd005bc4ad8c3188f4673e830..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29674 zcmeI2J!=&~6oz+iM9?&%h@C_cv9ZuJ78WrGsYJ9Ciy(Nh)wC&sAcBpME{zCQ);8Aq z6H@pGthCj7-Ph~U$uc`;BH(r=M50Kb}9k_TqcJvA%w0Z$7`gF`plQ zdvI{#=E*NBmma>pPFEv8W*#ic?HzH~|7i+?YZvQg|M9H(`evp1@qUp$?9Q6!4`!;F zKDu51z=NYvME1W=vLE_#n=j{T^D@z-KBO zFf5&qi_N>INA=uhQzi3(?%4WFb@y)6N9H?JZ{{WQIo$s@*E9Q!GHeI@(Esjt=5eWf zIIX&MwN}jsYXj2`%rfT0nA>W#AJ~S;qg#e;Y374v4^IT=N~+5ctu$S{onu4X5eEMq~ULqUoCX4AFG0e1>YeRz5>DT_c|{ny!)07){s4 zXRM}c<1<#%wecCN>6-XV(R59Grf9krK2tSa3!kZ)u7Qt_rfcBiqv;y>_-K0Re0(*% zbUwbCUNWB$nqD%W5Sm^ppHP}!DxXlAUMinZnqDHGkeXg1pOBhf8lTXbUK*d!nx2af ze(Oh^2${J3f!HHw_IGSK=KciCM-Ugd{d=_UCPt327|X;wKL#J%)3rw;1_#?cX^))Q z-?8P8d|)qVldY{e>U?bnEJN{mcGtb1FEt-%+E`n$ogada1YaWlA$-c@^@^fAF0hSYHGULiR2-D4^rmu82Ei+$})T|b47YpoO7|5NkmK5r-=Xg99K z`F(zcdc1?_K4Y1Whwy>DP#;~kW9~br^Orpz!iQ`p<~ms_M~)BHf7JGv>tuR{Zw~)P zJ3}R`Z~Nj2ol=xh&b@~-=Oi)4$Gj)!=Q-BtoNu|}sM)s= zWmj8L+A;M-l5a`WbVZ@n zsim$Mn6e!dcO?0iL`|3ETM{*0if?i4$f45_a)qNYpn zEvcF=#kVACx)k5y#weGjOYtqKnvVB4uHOVw=$2GXhwX6Vmcp*3YC8D9K3w*b;ys~M zO_$(XQZ-$QZ%Ng33BDy+(PHG-53QfwjwDy=4FAqZV0i{c^+aS^v2yNnRAbmK;F z=WNe%GdWl zSZJkR_qWHL?eWcf+kYHxwGOqW(_gLD_U)77t(}p+eEq9xwO;>DUshMHu6%d**S}_N z{PM}i(?9%iXyL+zkM6FmeY&u=_WnaX50R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ 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 z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?0z~AlCfdBvi0DvHW>j^d}h8%Ff0S6p#zySvwaKHfv9B{w^ z2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvw zaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~ z0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv z9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p# zzySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^ z2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvw zaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~ z0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv z9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p# zzySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKHfv9B{w^ o2OMy~0S6p#zySvwaKHfv9B{w^2OMy~0S6p#zySvwaKM2-5dRUE`v3p{ diff --git a/bootlogo/bootlogo-pine64-1366x768.bmp b/bootlogo/bootlogo-pine64-1366x768.bmp deleted file mode 100644 index 73deaba51554a74dff58a14cb0f3a73e026dcc11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4196490 zcmeF)ziVq-dIn$*lLRM~AOuu}5rhzx%2a|B7c~Jx8W&TT6am9+T%PiznBt@v2GZPS z;1p?YdCLo_Q_P=`{1K^B@94E>&(+b9Ev>cpmbbQ^%Xs8tZ~a>9St?$C>sy{q47Z`^~rC{@H*0?stFw4}bALKmVJ5{`bHC>Har2f3o|J zm+!Zam`C+x3>aX50R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz 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 zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;= zV1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~ z0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz z7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|Xg zfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_ z1{h#~0R|XgfB^;=V1NMz7+`<_1{h#~0R|XgfB^;=V1NMz7+`<_2L8WYIu-x`000=| zZ#|72#gGFIIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg jfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIB-1>JarQR diff --git a/bootlogo/bootlogo-pine64-1366x768.png b/bootlogo/bootlogo-pine64-1366x768.png deleted file mode 100644 index fb87cf196224fe5b722c0d50e983c84eb296e18f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3839 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 diff --git a/bootlogo/pine64-logo-120x175.png b/bootlogo/pine64-logo-120x175.png deleted file mode 100644 index 2c5ba8cd11c55229a4ea32c0f451f2edc4082a99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3765 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 diff --git a/convert-pine64-image.sh b/convert-pine64-image.sh deleted file mode 100755 index 981ca791..00000000 --- a/convert-pine64-image.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -# -# This scripts converts an existing uncompressed Pine64 disk image between the -# different Pine64 variants by replacing the bootloader (boot0 and U-Boot) while -# keeping all the rest intact. -# - -set -e - -DISKIMAGE="$1" -MODEL="$2" - -if [ -z "$DISKIMAGE" -o -z "$MODEL" ]; then - echo "Usage: $0 " - exit 1 -fi - -if [ "$MODEL" = "pine64" ]; then - MODEL="" -fi -SUFFIX="" -if [ -n "$MODEL" ]; then - SUFFIX="-$MODEL" -fi - -DISKIMAGE=$(readlink -f "$DISKIMAGE") - -# check image for boot0 -boot0headerpos=$((8*1024+4)) -boot0header=$(xxd -p -s $boot0headerpos -l 4 "$DISKIMAGE") -if [ "$boot0header" != "65474f4e" ]; then - echo "Error: Target image has no eGON header, aborting!" - exit 1 -fi - -ubootheaderpos=$((19096*1024+4)) -ubootheader=$(xxd -p -s $ubootheaderpos -l 5 "$DISKIMAGE") -if [ "$ubootheader" != "75626f6f74" ]; then - echo "Error: Target image has no uboot header, aborting!" - exit 1 -fi - -set -x -(cd simpleimage && ./flash_boot0_only.sh "$DISKIMAGE" "../blobs/boot0$MODEL.bin") -(cd simpleimage && ./flash_u-boot_only.sh "$DISKIMAGE" "../build/u-boot-with-dtb$SUFFIX.bin") -set +x - -echo "Done - image converted to $2" diff --git a/kernel/README.md b/kernel/README.md index 106025a5..7b12e029 100644 --- a/kernel/README.md +++ b/kernel/README.md @@ -36,11 +36,6 @@ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 LOCALVERSION= modules This creates the Kernel image in `arch/arm64/boot/Image`. -We do not compile a device tree with the BSP Kernel tree as it does not -contain any proper source for the Pine64. Instead this build repository -contains a device tree source in `blobs/pine64.dts` which was extracted and -dumped from BSP tarball. - With the BSP Kernel, MMC, USB and Ethernet (at 100baseTx-FD) work. And Arch Linux boots just fine when used as rootfs together with the rest of the tools found in this build scripts repository. diff --git a/kernel/install_kernel.sh b/kernel/install_kernel.sh index c16689b2..5541c5c5 100755 --- a/kernel/install_kernel.sh +++ b/kernel/install_kernel.sh @@ -18,18 +18,13 @@ if [ -z "$DEST" ]; then exit 1 fi -BLOBS="../blobs" LINUX="../linux" INITRD="./initrd.gz" -BOOTLOGO="../bootlogo/bootlogo-pine64-1366x768.bmp" -BATTERY="../bootlogo/battery" # Targets file names as loaded by U-Boot. SUBFOLDER="pine64" KERNEL="kernel" INITRD_IMG="initrd.img" -BOOTLOGO_TARGET="bootlogo.bmp" -BATTERY_TARGET="bat" if [ "$DEST" = "-" ]; then DEST="../build" @@ -79,32 +74,6 @@ else echo "Kernel with DRM driver!" basename="pine64drm" fi - - # Not found, use device tree from BSP. - echo "Compiling device tree from $BLOBS/${basename}.dts" - dtc -Odtb -o "$DEST/$SUBFOLDER/sun50i-a64-pine64-plus.dtb" "$BLOBS/${basename}.dts" - echo "Compiling device tree from $BLOBS/${basename}noplus.dts" - dtc -Odtb -o "$DEST/$SUBFOLDER/sun50i-a64-pine64.dtb" "$BLOBS/${basename}noplus.dts" - echo "Compiling device tree from $BLOBS/${basename}so.dts" - dtc -Odtb -o "$DEST/$SUBFOLDER/sun50i-a64-pine64-so.dtb" "$BLOBS/${basename}so.dts" - echo "Compiling device tree from $BLOBS/${basename}pinebook.dts" - dtc -Odtb -o "$DEST/$SUBFOLDER/sun50i-a64-pine64-pinebook.dtb" "$BLOBS/${basename}pinebook.dts" - - # Add bootlogo. - cp -v "$BOOTLOGO" "$DEST/$BOOTLOGO_TARGET" - # Add battery icons. - mkdir -p "$DEST/$BATTERY_TARGET" - cp -v "$BATTERY/bempty.bmp" "$DEST/$BATTERY_TARGET" - cp -v "$BATTERY/low_pwr.bmp" "$DEST/$BATTERY_TARGET" - cp -v "$BATTERY/battery_charge.bmp" "$DEST/$BATTERY_TARGET" -fi - -if [ ! -e "$DEST/uEnv.txt" ]; then - cat < "$DEST/uEnv.txt" -console=tty0 console=ttyS0,115200n8 no_console_suspend -kernel_filename=$KERNEL -initrd_filename=$INITRD_IMG -EOF fi sync diff --git a/simpleimage/flash_boot0_only.sh b/simpleimage/flash_boot0_only.sh deleted file mode 100755 index fc891003..00000000 --- a/simpleimage/flash_boot0_only.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# -# Simple script to replace boot0.bin in an existing image. -# - -set -e - -out="$1" -boot0="$2" - -if [ -z "$out" ]; then - echo "Usage: $0 /dev/sdX []" - exit 1 -fi - -if [ -z "$boot0" ]; then - boot0="../blobs/boot0.bin" -fi -boot0_position=8 # KiB -boot0_size=$(wc -c $boot0) - -if [ ! -e "$out" ]; then - echo "Error: $out not found" - exit 1 -fi - -pv "$boot0" | dd conv=notrunc bs=1k seek=$boot0_position count=32 oflag=direct of="$out" - -sync diff --git a/simpleimage/flash_u-boot_only.sh b/simpleimage/flash_u-boot_only.sh deleted file mode 100755 index 72191417..00000000 --- a/simpleimage/flash_u-boot_only.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -# -# Simple script to replace u-boot-with-dtb.bin in an existing image. -# - -set -e - -out="$1" -uboot="$2" - -if [ -z "$out" ]; then - echo "Usage: $0 /dev/sdX []" - exit 1 -fi - -if [ -z "$uboot" ]; then - uboot="../build/u-boot-with-dtb.bin" -fi -uboot_position=19096 # KiB - -if [ ! -e "$out" ]; then - echo "Error: $out not found" - exit 1 -fi - -pv "$uboot" | dd conv=notrunc bs=1k seek=$uboot_position of="$out" - -sync diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 5334e21c..6b42d3d4 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -255,11 +255,6 @@ deb-src http://ports.ubuntu.com/ ${release}-security main restricted universe mu EOF } -add_asound_state() { - mkdir -p "$DEST/var/lib/alsa" - cp -vf ../blobs/asound.state.$MODEL "$DEST/var/lib/alsa/asound.state" -} - # Run stuff in new system. case $DISTRO in arch) diff --git a/simpleimage/make_simpleimage.sh b/simpleimage/make_simpleimage.sh index b2f86eea..627be332 100755 --- a/simpleimage/make_simpleimage.sh +++ b/simpleimage/make_simpleimage.sh @@ -51,11 +51,13 @@ if [ -n "$model" ]; then fi if [[ -z "$boot0" ]]; then - boot0="../blobs/boot0$model.bin" + echo "You must specify boot0 environment variable" + exit 2 fi if [[ -z "$uboot" ]]; then - uboot="../build/u-boot-with-dtb$suffix.bin" + echo "You must specify uboot environment variable" + exit 2 fi kernel="../build" diff --git a/snappy/README.md b/snappy/README.md deleted file mode 100644 index 8fa5606d..00000000 --- a/snappy/README.md +++ /dev/null @@ -1,6 +0,0 @@ - -## Build image - -``` -UBUNTU_IMAGE_SKIP_COPY_UNVERIFIED_MODEL=1 ubuntu-image -c stable --image-size 2G --extra-snaps pine64_16.04-2_arm64.snap --extra-snaps kernel/pine64-kernel_3.10.104-2_arm64.snap -o test2.img pine64.model --debug -``` diff --git a/snappy/common.mk b/snappy/common.mk deleted file mode 100644 index 0a218813..00000000 --- a/snappy/common.mk +++ /dev/null @@ -1,5 +0,0 @@ -OUTPUT_DIR := $(PWD) -BLOBS_DIR := $(OUTPUT_DIR)/../blobs -GADGET_DIR := $(OUTPUT_DIR)/gadget - -UBOOT_BIN := $(OUTPUT_DIR)/../build/u-boot-with-dtb.bin diff --git a/snappy/gadget.mk b/snappy/gadget.mk deleted file mode 100644 index 430a93fe..00000000 --- a/snappy/gadget.mk +++ /dev/null @@ -1,34 +0,0 @@ -include common.mk - -all: build - -clean: - rm -rf $(GADGET_DIR)/boot-assets - rm -f $(GADGET_DIR)/uboot.conf - rm -f $(GADGET_DIR)/uboot.env - rm -f $(GADGET_SNAP) - -distclean: clean - -u-boot: - @if [ ! -d $(GADGET_DIR)/boot-assets ] ; then mkdir -p $(GADGET_DIR)/boot-assets; fi - @if [ ! -f $(UBOOT_BIN) ]; then echo "Build u-boot first."; exit 1; fi - cp -fa $(UBOOT_BIN) $(GADGET_DIR)/boot-assets/u-boot-with-dtb.bin - -dtbs: - @if [ ! -d $(GADGET_DIR)/boot-assets/dtbs ] ; then mkdir -p $(GADGET_DIR)/boot-assets/dtbs; fi - dtc -Odtb -o $(GADGET_DIR)/boot-assets/dtbs/sun50i-a64-pine64-plus.dtb $(BLOBS_DIR)/pine64.dts - dtc -Odtb -o $(GADGET_DIR)/boot-assets/dtbs/sun50i-a64-pine64.dtb $(BLOBS_DIR)/pine64noplus.dts - dtc -Odtb -o $(GADGET_DIR)/boot-assets/dtbs/sun50i-a64-pine64so.dtb $(BLOBS_DIR)/pine64so.dts - -preload: u-boot dtbs - cp -fa $(BLOBS_DIR)/boot0.bin $(GADGET_DIR)/boot-assets/boot0.bin - mkenvimage -r -s 131072 -o $(GADGET_DIR)/uboot.env $(GADGET_DIR)/uboot.env.in - @if [ ! -f $(GADGET_DIR)/uboot.conf ]; then ln -s uboot.env $(GADGET_DIR)/uboot.conf; fi - -snappy: preload - snapcraft snap gadget - -build: dtbs preload snappy - -.PHONY: u-boot dtbs preload snappy build diff --git a/snappy/gadget/meta/gadget.yaml b/snappy/gadget/meta/gadget.yaml deleted file mode 100644 index 28a894b0..00000000 --- a/snappy/gadget/meta/gadget.yaml +++ /dev/null @@ -1,24 +0,0 @@ -volumes: - pine64: - schema: mbr - bootloader: u-boot - structure: - - offset: 0 - type: mbr - size: 446 - - offset: 512 - type: bare - size: 20971008 # 1024 * 20 * 1024 - 512 - content: - - image: boot-assets/boot0.bin - offset: 8192 # 8 * 1024 (sector 16) - - image: boot-assets/u-boot-with-dtb.bin - offset: 19554304 # 19096 * 1024 (sector 38192) - - offset: 20971520 # 1024 * 20 * 1024 - type: 0C - filesystem: vfat - filesystem-label: system-boot - size: 128M - content: - - source: boot-assets/ - target: / diff --git a/snappy/gadget/meta/hooks/prepare-device b/snappy/gadget/meta/hooks/prepare-device deleted file mode 100755 index 38e7ca90..00000000 --- a/snappy/gadget/meta/hooks/prepare-device +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -set -ex - -# Pin eth0 mac address to uboot environment. - -MAC=$(cat /sys/class/net/eth0/address) -cat <] []" - exit 1 -fi -MODEL="$1" -if [ "$MODEL" = "pine64" ]; then - MODEL="" -fi -SUFFIX="" -if [ -n "$MODEL" ]; then - SUFFIX="-$MODEL" -fi - -TRUSTED_FIRMWARE_BUILD="$2" -if [ -z "$TRUSTED_FIRMWARE_BUILD" ]; then - TRUSTED_FIRMWARE_BUILD="release" -fi - -BUILD="../build" -mkdir -p $BUILD - -echo "ATF build: $TRUSTED_FIRMWARE_BUILD" -cp -avf $TRUSTED_FIRMWARE/build/sun50iw1p1/$TRUSTED_FIRMWARE_BUILD/bl31.bin $BUILD -cp -avf $UBOOT/u-boot-sun50iw1p1.bin $BUILD/u-boot.bin -cp -avf $BLOBS/scp.bin $BUILD -cp -avf $BLOBS/sys_config.fex $BUILD - -# build binary device tree -DT="pine64$MODEL" -echo "Device tree: $DT" -dtc -Odtb -o $BUILD/$DT.dtb $BLOBS/$DT.dts - -unix2dos $BUILD/sys_config.fex -$SUNXI_PACK_TOOLS/script $BUILD/sys_config.fex - -# merge_uboot.exe u-boot.bin infile outfile mode[secmonitor|secos|scp] -$SUNXI_PACK_TOOLS/merge_uboot $BUILD/u-boot.bin $BUILD/bl31.bin $BUILD/u-boot-merged$SUFFIX.bin secmonitor -$SUNXI_PACK_TOOLS/merge_uboot $BUILD/u-boot-merged$SUFFIX.bin $BUILD/scp.bin $BUILD/u-boot-merged2$SUFFIX.bin scp - -# update_fdt.exe u-boot.bin xxx.dtb output_file.bin -$SUNXI_PACK_TOOLS/update_uboot_fdt $BUILD/u-boot-merged2$SUFFIX.bin $BUILD/$DT.dtb $BUILD/u-boot-with-dtb$SUFFIX.bin - -# Add fex file to u-boot so it actually is accepted by boot0. -$SUNXI_PACK_TOOLS/update_uboot $BUILD/u-boot-with-dtb$SUFFIX.bin $BUILD/sys_config.bin - -echo "Done - created $BUILD/u-boot-with-dtb$SUFFIX.bin" From c952ac0d1dc3d16209e311e2e05ed7da2b612f73 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 8 May 2017 22:36:24 +0200 Subject: [PATCH 075/168] Add first boot service that does resize partition for the first time --- .../root/etc/systemd/system/pine64_first_boot.service | 10 ++++++++++ package/root/usr/local/sbin/pine64_first_boot.sh | 10 ++++++++++ package/scripts/postinst.deb | 2 ++ 3 files changed, 22 insertions(+) create mode 100644 package/root/etc/systemd/system/pine64_first_boot.service create mode 100755 package/root/usr/local/sbin/pine64_first_boot.sh diff --git a/package/root/etc/systemd/system/pine64_first_boot.service b/package/root/etc/systemd/system/pine64_first_boot.service new file mode 100644 index 00000000..4d9c7488 --- /dev/null +++ b/package/root/etc/systemd/system/pine64_first_boot.service @@ -0,0 +1,10 @@ +[Unit] +Description=Pine A64 First boot +After=systemd-modules-load.service local-fs.target + +[Service] +Type=oneshot +ExecStart=/usr/local/sbin/pine64_first_boot.sh + +[Install] +WantedBy=multi-user.target diff --git a/package/root/usr/local/sbin/pine64_first_boot.sh b/package/root/usr/local/sbin/pine64_first_boot.sh new file mode 100755 index 00000000..63f719fd --- /dev/null +++ b/package/root/usr/local/sbin/pine64_first_boot.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +set -x + +mkdir -p /var/lib/pine64 + +if [ ! -e /var/lib/pine64/resized ]; then + touch /var/lib/pine64/resized + /usr/local/sbin/resize_rootfs.sh +fi diff --git a/package/scripts/postinst.deb b/package/scripts/postinst.deb index edbbdf2f..b0f04f66 100755 --- a/package/scripts/postinst.deb +++ b/package/scripts/postinst.deb @@ -15,6 +15,8 @@ case "$1" in systemctl enable restore-sound-after-resume systemctl enable store-sound-after-suspend + + systemctl enable pine64-first-boot ;; *) From 59e15785d6e6b32b16e0168bf34752bf8ab5b9a5 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 8 May 2017 22:40:35 +0200 Subject: [PATCH 076/168] Install a bunch of additional applications on first boot --- package/root/usr/local/sbin/install_desktop.sh | 10 ++++++++++ simpleimage/make_rootfs.sh | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/package/root/usr/local/sbin/install_desktop.sh b/package/root/usr/local/sbin/install_desktop.sh index a7bc32fd..4bb2c8fa 100755 --- a/package/root/usr/local/sbin/install_desktop.sh +++ b/package/root/usr/local/sbin/install_desktop.sh @@ -29,6 +29,16 @@ PACKAGES=( xserver-xorg-video-fbturbo libvdpau-sunxi1 vdpauinfo + aisleriot + geany + gnomine + gnome-sudoku + mplayer + scratch + smplayer + smplayer-skins + smplayer-themes + smtube ) # Add packages based on desktop selection. diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 6b42d3d4..fbb01243 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -276,7 +276,6 @@ case $DISTRO in zram-config \ ubuntu-minimal \ sunxi-disp-tool \ - nano \ " elif [ "$DISTRO" = "sid" -o "$DISTRO" = "jessie" ]; then DEB=debian @@ -305,7 +304,8 @@ export DEBIAN_FRONTEND=noninteractive locale-gen en_US.UTF-8 $ADDPPACMD apt-get -y update -apt-get -y install dosfstools curl xz-utils iw rfkill wpasupplicant openssh-server alsa-utils jq $EXTRADEBS +apt-get -y install dosfstools curl xz-utils iw rfkill wpasupplicant openssh-server alsa-utils \ + nano git build-essential vim jq $EXTRADEBS apt-get -y remove --purge ureadahead apt-get -y update adduser --gecos $DEBUSER --disabled-login $DEBUSER --uid 1000 From 4149ccf6c5de34ae0aa4c2396b964b7caa18d714 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 8 May 2017 22:42:08 +0200 Subject: [PATCH 077/168] All distribution do use pine64/pine64 as credentials --- simpleimage/make_rootfs.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index fbb01243..73b09922 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -266,8 +266,8 @@ case $DISTRO in cp /etc/resolv.conf "$DEST/etc/resolv.conf" if [ "$DISTRO" = "xenial" ]; then DEB=ubuntu - DEBUSER=ubuntu - DEBUSERPW=ubuntu + DEBUSER=pine64 + DEBUSERPW=pine64 ADDPPACMD="apt-get -y update && \ apt-get install -y software-properties-common && \ apt-add-repository -y ppa:longsleep/ubuntu-pine64-flavour-makers \ @@ -279,16 +279,16 @@ case $DISTRO in " elif [ "$DISTRO" = "sid" -o "$DISTRO" = "jessie" ]; then DEB=debian - DEBUSER=debian - DEBUSERPW=debian + DEBUSER=pine64 + DEBUSERPW=pine64 ADDPPACMD="" EXTRADEBS="sudo" ADDPPACMD= DISPTOOLCMD= elif [ "$DISTRO" = "stretch" ]; then DEB=stretch - DEBUSER=debian - DEBUSERPW=debian + DEBUSER=pine64 + DEBUSERPW=pine64 EXTRADEBS="sudo" ADDPPACMD= DISPTOOLCMD= From 3119bbfeb458aa63651ec04001955b9498648582 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 8 May 2017 22:43:05 +0200 Subject: [PATCH 078/168] Make stretch just yet-another debian distribution --- simpleimage/make_rootfs.sh | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 73b09922..699870ee 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -225,19 +225,6 @@ deb http://security.debian.org/ ${release}/updates main contrib non-free EOF } -add_stretch_apt_sources() { - local release="$1" - local aptsrcfile="$DEST/etc/apt/sources.list" - cat > "$aptsrcfile" < "$DEST/etc/apt/sources.list" < Date: Mon, 8 May 2017 23:13:16 +0200 Subject: [PATCH 079/168] Fix package compilation --- .../{pine64_first_boot.service => pine64-first-boot.service} | 0 package/scripts/postinst.deb | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename package/root/etc/systemd/system/{pine64_first_boot.service => pine64-first-boot.service} (100%) diff --git a/package/root/etc/systemd/system/pine64_first_boot.service b/package/root/etc/systemd/system/pine64-first-boot.service similarity index 100% rename from package/root/etc/systemd/system/pine64_first_boot.service rename to package/root/etc/systemd/system/pine64-first-boot.service diff --git a/package/scripts/postinst.deb b/package/scripts/postinst.deb index b0f04f66..5e1f147d 100755 --- a/package/scripts/postinst.deb +++ b/package/scripts/postinst.deb @@ -14,7 +14,7 @@ case "$1" in systemctl start rtk-hciattach systemctl enable restore-sound-after-resume - systemctl enable store-sound-after-suspend + systemctl enable store-sound-on-suspend systemctl enable pine64-first-boot ;; From 3d47d3f427b87e427bc61018396bba08d8d71506 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 8 May 2017 23:36:24 +0200 Subject: [PATCH 080/168] Remove smplayer-skins which is not existing --- package/root/usr/local/sbin/install_desktop.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/package/root/usr/local/sbin/install_desktop.sh b/package/root/usr/local/sbin/install_desktop.sh index 4bb2c8fa..ed8e9087 100755 --- a/package/root/usr/local/sbin/install_desktop.sh +++ b/package/root/usr/local/sbin/install_desktop.sh @@ -36,7 +36,6 @@ PACKAGES=( mplayer scratch smplayer - smplayer-skins smplayer-themes smtube ) From 5585908bdc59ab84000e23b58a51d0358e88488c Mon Sep 17 00:00:00 2001 From: whongx Date: Tue, 9 May 2017 16:37:30 +0800 Subject: [PATCH 081/168] Add missing "CURRENTFILE" variable content --- package/root/usr/local/sbin/pine64_update_package.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/package/root/usr/local/sbin/pine64_update_package.sh b/package/root/usr/local/sbin/pine64_update_package.sh index b2aa5efd..15d75cb2 100755 --- a/package/root/usr/local/sbin/pine64_update_package.sh +++ b/package/root/usr/local/sbin/pine64_update_package.sh @@ -16,6 +16,7 @@ fi DEVICE="/dev/mmcblk0" URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/linux-pine64-package-$VERSION.deb" +CURRENTFILE="/var/lib/misc/pine64_update_package.status" if [ "$(id -u)" -ne "0" ]; then echo "This script requires root." From cc4e05ffe232fcb9b01a8bf453988704664c5a43 Mon Sep 17 00:00:00 2001 From: whongx Date: Tue, 9 May 2017 16:51:38 +0800 Subject: [PATCH 082/168] Remove CURRENTFILE variable --- package/root/usr/local/sbin/pine64_update_package.sh | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/package/root/usr/local/sbin/pine64_update_package.sh b/package/root/usr/local/sbin/pine64_update_package.sh index 15d75cb2..7099cab8 100755 --- a/package/root/usr/local/sbin/pine64_update_package.sh +++ b/package/root/usr/local/sbin/pine64_update_package.sh @@ -16,7 +16,6 @@ fi DEVICE="/dev/mmcblk0" URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/linux-pine64-package-$VERSION.deb" -CURRENTFILE="/var/lib/misc/pine64_update_package.status" if [ "$(id -u)" -ne "0" ]; then echo "This script requires root." @@ -32,11 +31,6 @@ cleanup() { } trap cleanup EXIT INT -CURRENT="" -if [ -e "${CURRENTFILE}" ]; then - CURRENT=$(cat $CURRENTFILE) -fi - echo "Checking for update ..." FILENAME=$TEMP/$(basename ${URL}) @@ -50,6 +44,4 @@ if [ -z "$MARK_ONLY" ]; then echo "Done - you should reboot now." else echo "Mark only." -fi - -echo $ETAG > "$CURRENTFILE" +ficu From 5b7f403f7dc746b09f966976c2f879109ad6e0fa Mon Sep 17 00:00:00 2001 From: whongx Date: Tue, 9 May 2017 17:03:07 +0800 Subject: [PATCH 083/168] Remove CURRENTFILE variable --- package/root/usr/local/sbin/pine64_update_package.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/root/usr/local/sbin/pine64_update_package.sh b/package/root/usr/local/sbin/pine64_update_package.sh index 7099cab8..6a28a4ac 100755 --- a/package/root/usr/local/sbin/pine64_update_package.sh +++ b/package/root/usr/local/sbin/pine64_update_package.sh @@ -44,4 +44,4 @@ if [ -z "$MARK_ONLY" ]; then echo "Done - you should reboot now." else echo "Mark only." -ficu +fi From 5f641eaf5905a5285230f92951b34af54e3e3fe7 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 9 May 2017 20:11:07 +0200 Subject: [PATCH 084/168] Install chromium-browser --- package/root/usr/local/sbin/install_desktop.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/package/root/usr/local/sbin/install_desktop.sh b/package/root/usr/local/sbin/install_desktop.sh index ed8e9087..d24ba3cb 100755 --- a/package/root/usr/local/sbin/install_desktop.sh +++ b/package/root/usr/local/sbin/install_desktop.sh @@ -38,6 +38,7 @@ PACKAGES=( smplayer smplayer-themes smtube + chromium-browser ) # Add packages based on desktop selection. From c190aa9025e843b3d3f936a4a729e0aea2cc8909 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 13 May 2017 00:49:15 +0200 Subject: [PATCH 085/168] Set login background --- .../etc/lightdm/lightdm-gtk-greeter.conf.d/99_xxx_pinebook.conf | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 package/root/etc/lightdm/lightdm-gtk-greeter.conf.d/99_xxx_pinebook.conf diff --git a/package/root/etc/lightdm/lightdm-gtk-greeter.conf.d/99_xxx_pinebook.conf b/package/root/etc/lightdm/lightdm-gtk-greeter.conf.d/99_xxx_pinebook.conf new file mode 100644 index 00000000..2b5293c8 --- /dev/null +++ b/package/root/etc/lightdm/lightdm-gtk-greeter.conf.d/99_xxx_pinebook.conf @@ -0,0 +1,2 @@ +[greeter] +background=/usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg From 39bbc90589c5037767f54ac3697c28de5d1896f5 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 13 May 2017 12:46:43 +0200 Subject: [PATCH 086/168] Compile also pine64 xenial --- Makefile | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 2912be74..ffa7aa35 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ export LINUX_BRANCH ?= my-hacks-1.2 export BOOT_TOOLS_BRANCH ?= master LINUX_LOCALVERSION ?= -ayufan-$(RELEASE) -all: linux-pinebook +all: linux-pinebook linux-pine64 linux/.git: git clone --depth=1 --branch=$(LINUX_BRANCH) --single-branch \ @@ -75,16 +75,30 @@ linux-pine64-package-$(RELEASE_NAME).deb: package package/rtk_bt/rtk_hciattach/r %.img.xz: %.img pxz -f -3 $< -simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools +boot-tools/boot/pine64/boot0-pine64-%.bin: boot-tools +boot-tools/boot/pine64/u-boot-pine64-%.bin: boot-tools + +simple-image-%-$(RELEASE_NAME).img: boot-tools/boot/pine64/boot0-pine64-%.bin boot-tools/boot/pine64/u-boot-pine64-%.bin \ + linux-pine64-$(RELEASE_NAME).tar.xz cd simpleimage && \ - export boot0=../boot-tools/boot/pine64/boot0-pine64-pinebook.bin && \ - export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook.bin && \ + export boot0=$(word 1,$^) && \ + export uboot=$(word 2,$^) && \ bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) +xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-plus-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools + sudo bash ./build-pine64-image.sh \ + $(shell readlink -f $@) \ + $(shell readlink -f $<) \ + $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ + $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ + xenial \ + pine64 \ + minimal + xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools sudo bash ./build-pine64-image.sh \ $(shell readlink -f $@) \ - $(shell readlink -f simple-image-pinebook-$(RELEASE_NAME).img.xz) \ + $(shell readlink -f $<) \ $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ xenial \ @@ -94,7 +108,7 @@ xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-p xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools sudo bash ./build-pine64-image.sh \ $(shell readlink -f $@) \ - $(shell readlink -f simple-image-pinebook-$(RELEASE_NAME).img.xz) \ + $(shell readlink -f $<) \ $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ xenial \ @@ -105,7 +119,7 @@ xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pine xenial-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools sudo bash ./build-pine64-image.sh \ $(shell readlink -f $@) \ - $(shell readlink -f simple-image-pinebook-$(RELEASE_NAME).img.xz) \ + $(shell readlink -f $<) \ $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ xenial \ @@ -115,7 +129,7 @@ xenial-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebo stretch-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools sudo bash ./build-pine64-image.sh \ $(shell readlink -f $@) \ - $(shell readlink -f simple-image-pinebook-$(RELEASE_NAME).img.xz) \ + $(shell readlink -f $<) \ $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ stretch \ @@ -148,3 +162,9 @@ xenial-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook .PHONY: linux-pinebook linux-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook + +.PHONY: xenial-minimal-pine64 + xenial-minimal-pine64: xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: linux-pine64 +linux-pine64: xenial-minimal-pine64 From 09f2124421001bc5da50c1261c9408aa3cd47902 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sat, 13 May 2017 14:36:10 +0200 Subject: [PATCH 087/168] Fix support for pine64 --- Makefile | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index ffa7aa35..21551810 100644 --- a/Makefile +++ b/Makefile @@ -75,17 +75,19 @@ linux-pine64-package-$(RELEASE_NAME).deb: package package/rtk_bt/rtk_hciattach/r %.img.xz: %.img pxz -f -3 $< -boot-tools/boot/pine64/boot0-pine64-%.bin: boot-tools -boot-tools/boot/pine64/u-boot-pine64-%.bin: boot-tools +simple-image-pine64-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools + cd simpleimage && \ + export boot0=../boot-tools/boot/pine64/boot0-pine64-plus.bin && \ + export uboot=../boot-tools/boot/pine64/u-boot-pine64-plus.bin && \ + bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) -simple-image-%-$(RELEASE_NAME).img: boot-tools/boot/pine64/boot0-pine64-%.bin boot-tools/boot/pine64/u-boot-pine64-%.bin \ - linux-pine64-$(RELEASE_NAME).tar.xz +simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools cd simpleimage && \ - export boot0=$(word 1,$^) && \ - export uboot=$(word 2,$^) && \ + export boot0=../boot-tools/boot/pine64/boot0-pine64-pinebook.bin && \ + export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook.bin && \ bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) -xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-plus-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools +xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pine64-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools sudo bash ./build-pine64-image.sh \ $(shell readlink -f $@) \ $(shell readlink -f $<) \ From 17337344ce1d4019460d2e16b52abeeb68577c4e Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 21 May 2017 11:30:12 +0200 Subject: [PATCH 088/168] Update configuration-files --- .../root/etc}/fstab | 0 .../modules-load.d/pine64-pinebook-hall.conf | 2 +- .../etc/modules-load.d/pinebook-hall.conf | 1 - .../50-enable-pinebook-modules | 0 .../systemd/system}/pine64-firstboot.service | 0 ...start-network-manager-after-resume.service | 0 .../modprobe.d/blacklist-pine64.conf | 3 --- .../modprobe.d/wifi-rt8723-pine64.conf | 3 --- .../modules-load.d/pine64-speakers-jack.conf | 4 ---- .../modules-load.d/pine64-wifi.conf | 2 -- .../90-sunxi-disp-permission.rules | 4 ---- .../restore-sound-after-resume.service | 14 ------------- .../systemd-services/ssh-keygen.service | 21 ------------------- .../store-sound-on-suspend.service | 11 ---------- 14 files changed, 1 insertion(+), 64 deletions(-) rename {simpleimage/configuration-files => package/root/etc}/fstab (100%) rename {simpleimage/configuration-files => package/root/etc}/modules-load.d/pine64-pinebook-hall.conf (86%) delete mode 100644 package/root/etc/modules-load.d/pinebook-hall.conf rename {simpleimage/configuration-files => package/root/etc}/pine64-firstboot.d/50-enable-pinebook-modules (100%) rename {simpleimage/systemd-services => package/root/etc/systemd/system}/pine64-firstboot.service (100%) rename {simpleimage/systemd-services => package/root/etc/systemd/system}/restart-network-manager-after-resume.service (100%) delete mode 100644 simpleimage/configuration-files/modprobe.d/blacklist-pine64.conf delete mode 100644 simpleimage/configuration-files/modprobe.d/wifi-rt8723-pine64.conf delete mode 100644 simpleimage/configuration-files/modules-load.d/pine64-speakers-jack.conf delete mode 100644 simpleimage/configuration-files/modules-load.d/pine64-wifi.conf delete mode 100644 simpleimage/configuration-files/udev-rules.d/90-sunxi-disp-permission.rules delete mode 100644 simpleimage/systemd-services/restore-sound-after-resume.service delete mode 100644 simpleimage/systemd-services/ssh-keygen.service delete mode 100644 simpleimage/systemd-services/store-sound-on-suspend.service diff --git a/simpleimage/configuration-files/fstab b/package/root/etc/fstab similarity index 100% rename from simpleimage/configuration-files/fstab rename to package/root/etc/fstab diff --git a/simpleimage/configuration-files/modules-load.d/pine64-pinebook-hall.conf b/package/root/etc/modules-load.d/pine64-pinebook-hall.conf similarity index 86% rename from simpleimage/configuration-files/modules-load.d/pine64-pinebook-hall.conf rename to package/root/etc/modules-load.d/pine64-pinebook-hall.conf index dcd1b76f..d1a4863d 100644 --- a/simpleimage/configuration-files/modules-load.d/pine64-pinebook-hall.conf +++ b/package/root/etc/modules-load.d/pine64-pinebook-hall.conf @@ -1,2 +1,2 @@ # Auto load hall driver (LID close). -#hall +hall diff --git a/package/root/etc/modules-load.d/pinebook-hall.conf b/package/root/etc/modules-load.d/pinebook-hall.conf deleted file mode 100644 index d7ab325f..00000000 --- a/package/root/etc/modules-load.d/pinebook-hall.conf +++ /dev/null @@ -1 +0,0 @@ -hall diff --git a/simpleimage/configuration-files/pine64-firstboot.d/50-enable-pinebook-modules b/package/root/etc/pine64-firstboot.d/50-enable-pinebook-modules similarity index 100% rename from simpleimage/configuration-files/pine64-firstboot.d/50-enable-pinebook-modules rename to package/root/etc/pine64-firstboot.d/50-enable-pinebook-modules diff --git a/simpleimage/systemd-services/pine64-firstboot.service b/package/root/etc/systemd/system/pine64-firstboot.service similarity index 100% rename from simpleimage/systemd-services/pine64-firstboot.service rename to package/root/etc/systemd/system/pine64-firstboot.service diff --git a/simpleimage/systemd-services/restart-network-manager-after-resume.service b/package/root/etc/systemd/system/restart-network-manager-after-resume.service similarity index 100% rename from simpleimage/systemd-services/restart-network-manager-after-resume.service rename to package/root/etc/systemd/system/restart-network-manager-after-resume.service diff --git a/simpleimage/configuration-files/modprobe.d/blacklist-pine64.conf b/simpleimage/configuration-files/modprobe.d/blacklist-pine64.conf deleted file mode 100644 index 5fa895d0..00000000 --- a/simpleimage/configuration-files/modprobe.d/blacklist-pine64.conf +++ /dev/null @@ -1,3 +0,0 @@ -blacklist vfe_v4l2 -blacklist vfe_io -blacklist 8723bs_vq0 diff --git a/simpleimage/configuration-files/modprobe.d/wifi-rt8723-pine64.conf b/simpleimage/configuration-files/modprobe.d/wifi-rt8723-pine64.conf deleted file mode 100644 index ecc9b9ff..00000000 --- a/simpleimage/configuration-files/modprobe.d/wifi-rt8723-pine64.conf +++ /dev/null @@ -1,3 +0,0 @@ -# Disable secondary interface and power management. -options 8723bs if2name=p2p0 rtw_power_mgnt=0 -options 8723cs if2name=p2p0 rtw_power_mgnt=0 diff --git a/simpleimage/configuration-files/modules-load.d/pine64-speakers-jack.conf b/simpleimage/configuration-files/modules-load.d/pine64-speakers-jack.conf deleted file mode 100644 index ee0750e2..00000000 --- a/simpleimage/configuration-files/modules-load.d/pine64-speakers-jack.conf +++ /dev/null @@ -1,4 +0,0 @@ -# Auto load the sndcodec driver (Audio jack, speakers) when not commented. -#sunxi_codec -#sunxi_i2s -#sunxi_sndcodec diff --git a/simpleimage/configuration-files/modules-load.d/pine64-wifi.conf b/simpleimage/configuration-files/modules-load.d/pine64-wifi.conf deleted file mode 100644 index 423c0ef3..00000000 --- a/simpleimage/configuration-files/modules-load.d/pine64-wifi.conf +++ /dev/null @@ -1,2 +0,0 @@ -8723bs -#8723cs diff --git a/simpleimage/configuration-files/udev-rules.d/90-sunxi-disp-permission.rules b/simpleimage/configuration-files/udev-rules.d/90-sunxi-disp-permission.rules deleted file mode 100644 index e5704a4b..00000000 --- a/simpleimage/configuration-files/udev-rules.d/90-sunxi-disp-permission.rules +++ /dev/null @@ -1,4 +0,0 @@ -KERNEL=="disp", MODE="0770", GROUP="video" -KERNEL=="cedar_dev", MODE="0770", GROUP="video" -KERNEL=="ion", MODE="0770", GROUP="video" -KERNEL=="mali", MODE="0770", GROUP="video" diff --git a/simpleimage/systemd-services/restore-sound-after-resume.service b/simpleimage/systemd-services/restore-sound-after-resume.service deleted file mode 100644 index 866e0d63..00000000 --- a/simpleimage/systemd-services/restore-sound-after-resume.service +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=Restore sound after resume -After=suspend.target -After=tmp.mount -ConditionPathExists=/tmp/.before-suspend-asound.state -ConditionFileIsExecutable=/usr/sbin/alsactl - -[Service] -Type=oneshot -ExecStart=/usr/sbin/alsactl -f /tmp/.before-suspend-asound.state restore -ExecStart=/bin/rm -f /tmp/.before-suspend-asound.state - -[Install] -WantedBy=suspend.target diff --git a/simpleimage/systemd-services/ssh-keygen.service b/simpleimage/systemd-services/ssh-keygen.service deleted file mode 100644 index ca5006d6..00000000 --- a/simpleimage/systemd-services/ssh-keygen.service +++ /dev/null @@ -1,21 +0,0 @@ -[Unit] -Description=Generate SSH keys if not there -Before=ssh.service -ConditionPathExists=|!/etc/ssh/ssh_host_key -ConditionPathExists=|!/etc/ssh/ssh_host_key.pub -ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key -ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key.pub -ConditionPathExists=|!/etc/ssh/ssh_host_dsa_key -ConditionPathExists=|!/etc/ssh/ssh_host_dsa_key.pub -ConditionPathExists=|!/etc/ssh/ssh_host_ecdsa_key -ConditionPathExists=|!/etc/ssh/ssh_host_ecdsa_key.pub -ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key -ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key.pub - -[Service] -ExecStart=/usr/bin/ssh-keygen -A -Type=oneshot -RemainAfterExit=yes - -[Install] -WantedBy=ssh.service diff --git a/simpleimage/systemd-services/store-sound-on-suspend.service b/simpleimage/systemd-services/store-sound-on-suspend.service deleted file mode 100644 index 3be91132..00000000 --- a/simpleimage/systemd-services/store-sound-on-suspend.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Store sound on suspend -ConditionFileIsExecutable=/usr/sbin/alsactl - -[Service] -Type=oneshot -UMask=0077 -ExecStart=/usr/sbin/alsactl -f /tmp/.before-suspend-asound.state store - -[Install] -WantedBy=sleep.target From c951eff4a2e8c14820cc358c58ecaae85b600c56 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 21 May 2017 11:30:23 +0200 Subject: [PATCH 089/168] Add default chromium configuration --- package/root/etc/chromium-browser/default | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 package/root/etc/chromium-browser/default diff --git a/package/root/etc/chromium-browser/default b/package/root/etc/chromium-browser/default new file mode 100644 index 00000000..ec6ff8ee --- /dev/null +++ b/package/root/etc/chromium-browser/default @@ -0,0 +1,12 @@ +# Default settings for chromium-browser. This file is sourced by /bin/sh from +# /usr/bin/chromium-browser + +# Options to pass to chromium-browser +CHROMIUM_FLAGS="\ +--disable-smooth-scrolling \ +--disable-low-res-tiling \ +--enable-low-end-device-mode \ +--num-raster-threads=4 \ +--profiler-timing=0 \ +--disable-composited-antialiasing \ +" From a4afb3b1e98238f2f579ceb963ccb29137450146 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Thu, 25 May 2017 10:30:12 +0200 Subject: [PATCH 090/168] Revert back manual fstab configuration --- package/root/etc/fstab | 3 --- simpleimage/make_rootfs.sh | 7 +++++-- 2 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 package/root/etc/fstab diff --git a/package/root/etc/fstab b/package/root/etc/fstab deleted file mode 100644 index 79419481..00000000 --- a/package/root/etc/fstab +++ /dev/null @@ -1,3 +0,0 @@ -#

    -/dev/mmcblk0p1 /boot vfat defaults 0 2 -/dev/mmcblk0p2 / ext4 defaults,noatime 0 1 diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 3f9576cb..af85c413 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -355,8 +355,11 @@ mkdir -p "$DEST/lib" mkdir -p "$DEST/usr" # Create fstab -cp -a ./configuration-files/fstab "$DEST/etc/fstab" -chown root.root "$DEST/etc/fstab" +cat < "$DEST/etc/fstab" +# +/dev/mmcblk0p1 /boot vfat defaults 0 2 +/dev/mmcblk0p2 / ext4 defaults,noatime 0 1 +EOF # Direct Kernel install if [ -n "$LINUX" -a "$LINUX" != "-" -a -d "$LINUX" ]; then From 67f72d3213b93d8a8300d8e000138723eef60a14 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 28 May 2017 22:43:06 +0200 Subject: [PATCH 091/168] Use customizations instead of default for chromium settings --- .../{default => customizations/pine64-optimisations} | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) rename package/root/etc/chromium-browser/{default => customizations/pine64-optimisations} (62%) diff --git a/package/root/etc/chromium-browser/default b/package/root/etc/chromium-browser/customizations/pine64-optimisations similarity index 62% rename from package/root/etc/chromium-browser/default rename to package/root/etc/chromium-browser/customizations/pine64-optimisations index ec6ff8ee..1a9e9772 100644 --- a/package/root/etc/chromium-browser/default +++ b/package/root/etc/chromium-browser/customizations/pine64-optimisations @@ -1,8 +1,5 @@ -# Default settings for chromium-browser. This file is sourced by /bin/sh from -# /usr/bin/chromium-browser - # Options to pass to chromium-browser -CHROMIUM_FLAGS="\ +CHROMIUM_FLAGS="$CHROMIUM_FLAGS \ --disable-smooth-scrolling \ --disable-low-res-tiling \ --enable-low-end-device-mode \ From 7c6b406484acc3c2235b641a361484adfffa34e2 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 30 May 2017 19:26:02 +0200 Subject: [PATCH 092/168] Build minimal sopine image --- Makefile | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 21551810..c05af45c 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ export LINUX_BRANCH ?= my-hacks-1.2 export BOOT_TOOLS_BRANCH ?= master LINUX_LOCALVERSION ?= -ayufan-$(RELEASE) -all: linux-pinebook linux-pine64 +all: linux-pinebook linux-pine64 linux-sopine linux/.git: git clone --depth=1 --branch=$(LINUX_BRANCH) --single-branch \ @@ -81,6 +81,12 @@ simple-image-pine64-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boo export uboot=../boot-tools/boot/pine64/u-boot-pine64-plus.bin && \ bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) +simple-image-sopine-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools + cd simpleimage && \ + export boot0=../boot-tools/boot/pine64/boot0-pine64-sopine.bin && \ + export uboot=../boot-tools/boot/pine64/u-boot-pine64-sopine.bin && \ + bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) + simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools cd simpleimage && \ export boot0=../boot-tools/boot/pine64/boot0-pine64-pinebook.bin && \ @@ -97,6 +103,16 @@ xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pin pine64 \ minimal +xenial-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-sopine-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools + sudo bash ./build-pine64-image.sh \ + $(shell readlink -f $@) \ + $(shell readlink -f $<) \ + $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ + $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ + xenial \ + sopine \ + minimal + xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools sudo bash ./build-pine64-image.sh \ $(shell readlink -f $@) \ @@ -170,3 +186,9 @@ linux-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook .PHONY: linux-pine64 linux-pine64: xenial-minimal-pine64 + +.PHONY: xenial-minimal-sopine + xenial-minimal-sopine: xenial-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: linux-sopine +linux-sopine: xenial-minimal-sopine From f1628fadb7acff2c7f7d2b950f298dfe8997aabb Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 31 May 2017 17:40:43 +0200 Subject: [PATCH 093/168] Store asound.state as debian config file --- Makefile | 1 + .../{asound.state.pinebook => asound.state} | 0 package/root/var/lib/alsa/asound.state.pine64 | 1342 ----------------- package/scripts/postinst.deb | 4 - 4 files changed, 1 insertion(+), 1346 deletions(-) rename package/root/var/lib/alsa/{asound.state.pinebook => asound.state} (100%) delete mode 100644 package/root/var/lib/alsa/asound.state.pine64 diff --git a/Makefile b/Makefile index c05af45c..401bfc5f 100644 --- a/Makefile +++ b/Makefile @@ -66,6 +66,7 @@ linux-pine64-package-$(RELEASE_NAME).deb: package package/rtk_bt/rtk_hciattach/r --license "MIT" \ --vendor "Kamil Trzciński" \ -a arm64 \ + --config-files /var/lib/alsa/asound.state \ package/root/=/ \ package/rtk_bt/rtk_hciattach/rtk_hciattach=/usr/local/sbin/rtk_hciattach diff --git a/package/root/var/lib/alsa/asound.state.pinebook b/package/root/var/lib/alsa/asound.state similarity index 100% rename from package/root/var/lib/alsa/asound.state.pinebook rename to package/root/var/lib/alsa/asound.state diff --git a/package/root/var/lib/alsa/asound.state.pine64 b/package/root/var/lib/alsa/asound.state.pine64 deleted file mode 100644 index fc4d2abf..00000000 --- a/package/root/var/lib/alsa/asound.state.pine64 +++ /dev/null @@ -1,1342 +0,0 @@ -state.audiocodec { - control.1 { - iface MIXER - name 'AIF1 ADC timeslot 0 volume' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 - } - } - control.2 { - iface MIXER - name 'AIF1 ADC timeslot 1 volume' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 - } - } - control.3 { - iface MIXER - name 'AIF1 DAC timeslot 0 volume' - value.0 153 - value.1 153 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 -450 - dbvalue.1 -450 - } - } - control.4 { - iface MIXER - name 'AIF1 DAC timeslot 1 volume' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 - } - } - control.5 { - iface MIXER - name 'AIF1 ADC timeslot 0 mixer gain' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 15' - dbmin -600 - dbmax 8400 - dbvalue.0 -600 - dbvalue.1 -600 - } - } - control.6 { - iface MIXER - name 'AIF1 ADC timeslot 1 mixer gain' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 3' - dbmin -600 - dbmax 1200 - dbvalue.0 -600 - dbvalue.1 -600 - } - } - control.7 { - iface MIXER - name 'AIF2 ADC volume' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 - } - } - control.8 { - iface MIXER - name 'AIF2 DAC volume' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 - } - } - control.9 { - iface MIXER - name 'AIF2 ADC mixer gain' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 15' - dbmin -600 - dbmax 8400 - dbvalue.0 -600 - dbvalue.1 -600 - } - } - control.10 { - iface MIXER - name 'ADC volume' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 - } - } - control.11 { - iface MIXER - name 'DAC volume' - value.0 160 - value.1 160 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 75 - dbvalue.1 75 - } - } - control.12 { - iface MIXER - name 'DAC mixer gain' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 15' - dbmin -600 - dbmax 8400 - dbvalue.0 -600 - dbvalue.1 -600 - } - } - control.13 { - iface MIXER - name 'digital volume' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 63' - dbmin -7308 - dbmax 0 - dbvalue.0 -7308 - } - } - control.14 { - iface MIXER - name 'earpiece volume' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 31' - dbmin -4350 - dbmax 300 - dbvalue.0 -4350 - } - } - control.15 { - iface MIXER - name 'speaker volume' - value 23 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 31' - dbmin -4800 - dbmax -150 - dbvalue.0 -1350 - } - } - control.16 { - iface MIXER - name 'headphone volume' - value 44 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 63' - dbmin -6300 - dbmax 0 - dbvalue.0 -1900 - } - } - control.17 { - iface MIXER - name 'MIC1_G boost stage output mixer control' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin -450 - dbmax 600 - dbvalue.0 -450 - } - } - control.18 { - iface MIXER - name 'MIC1 boost AMP gain control' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin 0 - dbmax 1400 - dbvalue.0 0 - } - } - control.19 { - iface MIXER - name 'MIC2 BST stage to L_R outp mixer gain' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin -450 - dbmax 600 - dbvalue.0 -450 - } - } - control.20 { - iface MIXER - name 'MIC2 boost AMP gain control' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin 0 - dbmax 1400 - dbvalue.0 0 - } - } - control.21 { - iface MIXER - name 'LINEINL/R to L_R output mixer gain' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin -450 - dbmax 600 - dbvalue.0 -450 - } - } - control.22 { - iface MIXER - name 'ADC input gain control' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin -450 - dbmax 600 - dbvalue.0 -450 - } - } - control.23 { - iface MIXER - name 'Phoneout gain control' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin -450 - dbmax 600 - dbvalue.0 -450 - } - } - control.24 { - iface MIXER - name 'SRC FUCTION' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.25 { - iface MIXER - name 'I2S HUB FUNC' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.26 { - iface MIXER - name 'Phoneout Mixer MIC1 boost Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.27 { - iface MIXER - name 'Phoneout Mixer MIC2 boost Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.28 { - iface MIXER - name 'Phoneout Mixer Rout_Mixer_Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.29 { - iface MIXER - name 'Phoneout Mixer Lout_Mixer_Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.30 { - iface MIXER - name 'ADCR Mux' - value DMIC - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 ADC - item.1 DMIC - } - } - control.31 { - iface MIXER - name 'ADCL Mux' - value DMIC - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 ADC - item.1 DMIC - } - } - control.32 { - iface MIXER - name 'MIC2 SRC' - value MIC2 - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 MIC3 - item.1 MIC2 - } - } - control.33 { - iface MIXER - name 'RADC input Mixer MIC1 boost Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.34 { - iface MIXER - name 'RADC input Mixer MIC2 boost Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.35 { - iface MIXER - name 'RADC input Mixer LINEINR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.36 { - iface MIXER - name 'RADC input Mixer r_output mixer Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.37 { - iface MIXER - name 'RADC input Mixer l_output mixer Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.38 { - iface MIXER - name 'RADC input Mixer PHONINN Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.39 { - iface MIXER - name 'RADC input Mixer PHONINN-PHONINP Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.40 { - iface MIXER - name 'LADC input Mixer MIC1 boost Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.41 { - iface MIXER - name 'LADC input Mixer MIC2 boost Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.42 { - iface MIXER - name 'LADC input Mixer LINEINL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.43 { - iface MIXER - name 'LADC input Mixer l_output mixer Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.44 { - iface MIXER - name 'LADC input Mixer r_output mixer Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.45 { - iface MIXER - name 'LADC input Mixer PHONINP Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.46 { - iface MIXER - name 'LADC input Mixer PHONINP-PHONINN Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.47 { - iface MIXER - name 'AIF3OUT Mux' - value 'AIF2 ADC left channel' - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 'AIF2 ADC left channel' - item.1 'AIF2 ADC right channel' - } - } - control.48 { - iface MIXER - name 'AIF2 ADR Mixer AIF1 DA0R Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.49 { - iface MIXER - name 'AIF2 ADR Mixer AIF1 DA1R Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.50 { - iface MIXER - name 'AIF2 ADR Mixer AIF2 DACL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.51 { - iface MIXER - name 'AIF2 ADR Mixer ADCR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.52 { - iface MIXER - name 'AIF2 ADL Mixer AIF1 DA0L Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.53 { - iface MIXER - name 'AIF2 ADL Mixer AIF1 DA1L Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.54 { - iface MIXER - name 'AIF2 ADL Mixer AIF2 DACR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.55 { - iface MIXER - name 'AIF2 ADL Mixer ADCL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.56 { - iface MIXER - name 'AIF2INR Mux' - value AIF2_DACR - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF2_DACR - item.1 AIF2_DACL - item.2 SUM_AIF2DACL_AIF2DACR - item.3 AVE_AIF2DACL_AIF2DACR - } - } - control.57 { - iface MIXER - name 'AIF2INL Mux' - value AIF2_DACL - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF2_DACL - item.1 AIF2_DACR - item.2 SUM_AIF2DACL_AIF2DACR - item.3 AVE_AIF2DACL_AIF2DACR - } - } - control.58 { - iface MIXER - name 'AIF2OUTR Mux' - value AIF2_ADCR - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF2_ADCR - item.1 AIF2_ADCL - item.2 SUM_AIF2_ADCL_AIF2_ADCR - item.3 AVE_AIF2_ADCL_AIF2_ADCR - } - } - control.59 { - iface MIXER - name 'AIF2OUTL Mux' - value AIF2_ADCL - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF2_ADCL - item.1 AIF2_ADCR - item.2 SUM_AIF2_ADCL_AIF2_ADCR - item.3 AVE_AIF2_ADCL_AIF2_ADCR - } - } - control.60 { - iface MIXER - name 'EAR Mux' - value DACR - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 DACR - item.1 DACL - item.2 'Right Analog Mixer' - item.3 'Left Analog Mixer' - } - } - control.61 { - iface MIXER - name 'SPK_L Mux' - value 'MIXEL Switch' - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 'MIXEL Switch' - item.1 'MIXL MIXR Switch' - } - } - control.62 { - iface MIXER - name 'SPK_R Mux' - value 'MIXER Switch' - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 'MIXER Switch' - item.1 'MIXR MIXL Switch' - } - } - control.63 { - iface MIXER - name 'HP_L Mux' - value 'DACL HPL Switch' - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 'DACL HPL Switch' - item.1 'Left Analog Mixer HPL Switch' - } - } - control.64 { - iface MIXER - name 'HP_R Mux' - value 'DACR HPR Switch' - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 'DACR HPR Switch' - item.1 'Right Analog Mixer HPR Switch' - } - } - control.65 { - iface MIXER - name 'Right Output Mixer DACL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.66 { - iface MIXER - name 'Right Output Mixer DACR Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.67 { - iface MIXER - name 'Right Output Mixer LINEINR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.68 { - iface MIXER - name 'Right Output Mixer MIC2Booststage Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.69 { - iface MIXER - name 'Right Output Mixer MIC1Booststage Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.70 { - iface MIXER - name 'Right Output Mixer PHONEINN Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.71 { - iface MIXER - name 'Right Output Mixer PHONEINN-PHONEINP Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.72 { - iface MIXER - name 'Left Output Mixer DACR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.73 { - iface MIXER - name 'Left Output Mixer DACL Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.74 { - iface MIXER - name 'Left Output Mixer LINEINL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.75 { - iface MIXER - name 'Left Output Mixer MIC2Booststage Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.76 { - iface MIXER - name 'Left Output Mixer MIC1Booststage Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.77 { - iface MIXER - name 'Left Output Mixer PHONEINP Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.78 { - iface MIXER - name 'Left Output Mixer PHONEINP-PHONEINN Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.79 { - iface MIXER - name 'DACR Mixer ADCR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.80 { - iface MIXER - name 'DACR Mixer AIF2DACR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.81 { - iface MIXER - name 'DACR Mixer AIF1DA1R Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.82 { - iface MIXER - name 'DACR Mixer AIF1DA0R Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.83 { - iface MIXER - name 'DACL Mixer ADCL Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.84 { - iface MIXER - name 'DACL Mixer AIF2DACL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.85 { - iface MIXER - name 'DACL Mixer AIF1DA1L Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.86 { - iface MIXER - name 'DACL Mixer AIF1DA0L Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.87 { - iface MIXER - name 'AIF1 AD1R Mixer AIF2 DACR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.88 { - iface MIXER - name 'AIF1 AD1R Mixer ADCR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.89 { - iface MIXER - name 'AIF1 AD1L Mixer AIF2 DACL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.90 { - iface MIXER - name 'AIF1 AD1L Mixer ADCL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.91 { - iface MIXER - name 'AIF1 AD0R Mixer AIF1 DA0R Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.92 { - iface MIXER - name 'AIF1 AD0R Mixer AIF2 DACR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.93 { - iface MIXER - name 'AIF1 AD0R Mixer ADCR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.94 { - iface MIXER - name 'AIF1 AD0R Mixer AIF2 DACL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.95 { - iface MIXER - name 'AIF1 AD0L Mixer AIF1 DA0L Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.96 { - iface MIXER - name 'AIF1 AD0L Mixer AIF2 DACL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.97 { - iface MIXER - name 'AIF1 AD0L Mixer ADCL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.98 { - iface MIXER - name 'AIF1 AD0L Mixer AIF2 DACR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.99 { - iface MIXER - name 'AIF1IN1R Mux' - value AIF1_DA1L - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_DA1R - item.1 AIF1_DA1L - item.2 SUM_AIF1DA1L_AIF1DA1R - item.3 AVE_AIF1DA1L_AIF1DA1R - } - } - control.100 { - iface MIXER - name 'AIF1IN1L Mux' - value AIF1_DA1L - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_DA1L - item.1 AIF1_DA1R - item.2 SUM_AIF1DA1L_AIF1DA1R - item.3 AVE_AIF1DA1L_AIF1DA1R - } - } - control.101 { - iface MIXER - name 'AIF1IN0R Mux' - value AIF1_DA0R - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_DA0R - item.1 AIF1_DA0L - item.2 SUM_AIF1DA0L_AIF1DA0R - item.3 AVE_AIF1DA0L_AIF1DA0R - } - } - control.102 { - iface MIXER - name 'AIF1IN0L Mux' - value AIF1_DA0L - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_DA0L - item.1 AIF1_DA0R - item.2 SUM_AIF1DA0L_AIF1DA0R - item.3 AVE_AIF1DA0L_AIF1DA0R - } - } - control.103 { - iface MIXER - name 'AIF1OUT1R Mux' - value AIF1_AD1R - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_AD1R - item.1 AIF1_AD1L - item.2 SUM_AIF1ADC1L_AIF1ADC1R - item.3 AVE_AIF1ADC1L_AIF1ADC1R - } - } - control.104 { - iface MIXER - name 'AIF1OUT1L Mux' - value AIF1_AD1L - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_AD1L - item.1 AIF1_AD1R - item.2 SUM_AIF1ADC1L_AIF1ADC1R - item.3 AVE_AIF1ADC1L_AIF1ADC1R - } - } - control.105 { - iface MIXER - name 'AIF1OUT0R Mux' - value AIF1_AD0R - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_AD0R - item.1 AIF1_AD0L - item.2 SUM_AIF1AD0L_AIF1AD0R - item.3 AVE_AIF1AD0L_AIF1AD0R - } - } - control.106 { - iface MIXER - name 'AIF1OUT0L Mux' - value AIF1_AD0L - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_AD0L - item.1 AIF1_AD0R - item.2 SUM_AIF1AD0L_AIF1AD0R - item.3 AVE_AIF1AD0L_AIF1AD0R - } - } - control.107 { - iface MIXER - name 'AIF2INR Mux VIR switch aif2inr aif3' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.108 { - iface MIXER - name 'AIF2INL Mux VIR switch aif2inl aif3' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.109 { - iface MIXER - name 'AIF2INR Mux switch aif2inr aif2' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.110 { - iface MIXER - name 'AIF2INL Mux switch aif2inl aif2' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.111 { - iface MIXER - name 'External Speaker Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.112 { - iface MIXER - name 'Headphone Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.113 { - iface MIXER - name 'Earpiece Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } -} -state.sndhdmi { - control.1 { - iface MIXER - name 'hdmi audio format Function' - value pcm - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 null - item.1 pcm - item.2 AC3 - item.3 MPEG1 - item.4 MP3 - item.5 MPEG2 - item.6 AAC - item.7 DTS - item.8 ATRAC - item.9 ONE_BIT_AUDIO - item.10 DOLBY_DIGITAL_PLUS - item.11 DTS_HD - item.12 MAT - item.13 WMAPRO - } - } -} diff --git a/package/scripts/postinst.deb b/package/scripts/postinst.deb index 5e1f147d..2c4b16cf 100755 --- a/package/scripts/postinst.deb +++ b/package/scripts/postinst.deb @@ -6,10 +6,6 @@ case "$1" in ;; configure) - if [ ! -e /var/lib/alsa/asound.state ] && [ -e /etc/pine64_model ]; then - cp /var/lib/alsa/asound.state.$(cat /etc/pine64_model) /var/lib/alsa/asound.state - fi - systemctl enable rtk-hciattach systemctl start rtk-hciattach From 6e698d75a5a19082917209427c4b40e302105333 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 31 May 2017 17:40:54 +0200 Subject: [PATCH 094/168] Support SoPine for more boards --- package/root/usr/local/sbin/pine64_install_to_emmc.sh | 2 ++ package/root/usr/local/sbin/pine64_model.sh | 8 +------- package/root/usr/local/sbin/pine64_update_uboot.sh | 7 ------- package/root/usr/local/sbin/pine64_upgrade_android.sh | 2 ++ 4 files changed, 5 insertions(+), 14 deletions(-) diff --git a/package/root/usr/local/sbin/pine64_install_to_emmc.sh b/package/root/usr/local/sbin/pine64_install_to_emmc.sh index 4c370a4a..c73de04a 100755 --- a/package/root/usr/local/sbin/pine64_install_to_emmc.sh +++ b/package/root/usr/local/sbin/pine64_install_to_emmc.sh @@ -53,6 +53,8 @@ case "$1" in REPO="ayufan-pine64/$1" if [[ "$(cat /etc/pine64_model)" == "pinebook" ]]; then PREFIX="$1-pine-a64-pinebook-v" + elif [[ "$(cat /etc/pine64_model)" == "sopine" ]]; then + PREFIX="$1-pine-a64-sopine-v" else PREFIX="$1-pine-a64-v" fi diff --git a/package/root/usr/local/sbin/pine64_model.sh b/package/root/usr/local/sbin/pine64_model.sh index 25568b2e..08492b13 100755 --- a/package/root/usr/local/sbin/pine64_model.sh +++ b/package/root/usr/local/sbin/pine64_model.sh @@ -2,10 +2,4 @@ set -e -MODEL="pine64" -# Detect Pinebook. -if [ -e "/proc/device-tree/soc@01c00000/lcd0@01c0c000/lcd_driver_name" \ - -a "$(cat /proc/device-tree/soc\@01c00000/lcd0\@01c0c000/lcd_driver_name)" = "anx9804_panel" ]; then - MODEL="pinebook" -fi -echo "$MODEL" +cat /etc/pine64-model diff --git a/package/root/usr/local/sbin/pine64_update_uboot.sh b/package/root/usr/local/sbin/pine64_update_uboot.sh index 1807e5b1..647d6c8f 100755 --- a/package/root/usr/local/sbin/pine64_update_uboot.sh +++ b/package/root/usr/local/sbin/pine64_update_uboot.sh @@ -14,13 +14,6 @@ if [ -z "$1" ]; then echo "Using latest release: $VERSION." fi -MODEL="pine64" -# Detect Pinebook. -if [ -e "/proc/device-tree/soc@01c00000/lcd0@01c0c000/lcd_driver_name" \ - -a "$(cat /proc/device-tree/soc\@01c00000/lcd0\@01c0c000/lcd_driver_name)" = "anx9804_panel" ]; then - MODEL="pinebook" -fi - DEVICE="/dev/mmcblk0" URL="https://github.com/ayufan-pine64/linux-build/releases/download/$VERSION/simple-image-$(cat /etc/pine64_model)-$VERSION.img.xz" # URL="https://www.stdin.xyz/downloads/people/longsleep/pine64-images/simpleimage-pine64-$VERSION.img.xz" diff --git a/package/root/usr/local/sbin/pine64_upgrade_android.sh b/package/root/usr/local/sbin/pine64_upgrade_android.sh index 02a4d545..5521ee62 100755 --- a/package/root/usr/local/sbin/pine64_upgrade_android.sh +++ b/package/root/usr/local/sbin/pine64_upgrade_android.sh @@ -35,6 +35,8 @@ fi REPO="ayufan-pine64/$2" if [[ "$(cat /etc/pine64_model)" == "pinebook" ]]; then PREFIX="$2-pine-a64-pinebook-v" +elif [[ "$(cat /etc/pine64_model)" == "sopine" ]]; then + PREFIX="$2-pine-a64-sopine-v" else PREFIX="$2-pine-a64-v" fi From ae32d39d467225d52b680bd9ccc0e07543833e44 Mon Sep 17 00:00:00 2001 From: pfeerick Date: Thu, 1 Jun 2017 15:31:32 +1000 Subject: [PATCH 095/168] Additional of conditional release based on parameter Test of additional of a conditional release parameter to Jenkinsfile --- Jenkinsfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 64328f9b..3b9b63eb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,6 +6,7 @@ properties([ booleanParam(defaultValue: false, description: 'If build should be marked as pre-release', name: 'PRERELEASE'), string(defaultValue: 'ayufan-pine64', description: 'GitHub username or organization', name: 'GITHUB_USER'), string(defaultValue: 'build-pine64-image', description: 'GitHub repository', name: 'GITHUB_REPO'), + booleanParam(defaultValue: true, descriptoin: 'Whether to upload to Github for release or not', name: 'GITHUB_RELEASE'), ]) ]) */ @@ -48,6 +49,7 @@ node('docker && linux-build') { "GITHUB_REPO=$GITHUB_REPO" ]) { stage 'Release' + if (GITHUB_UPLOAD == true) { sh '''#!/bin/bash set -xe shopt -s nullglob @@ -80,6 +82,11 @@ node('docker && linux-build') { --description "${CHANGES}\n\n${BUILD_URL}" fi ''' + } + else + { + echo 'Flagged as non-release build' + } } } } From 5b4e7e99c3b3e123c73530a5e535e4cbe6ee8b9a Mon Sep 17 00:00:00 2001 From: pfeerick Date: Thu, 1 Jun 2017 17:46:59 +1000 Subject: [PATCH 096/168] Typos and parameterised make Fixed up some typos in the last commit and added parameter for make target to allow for specific builds to be jenkinised easily --- Jenkinsfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3b9b63eb..9b738f2c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,7 +6,8 @@ properties([ booleanParam(defaultValue: false, description: 'If build should be marked as pre-release', name: 'PRERELEASE'), string(defaultValue: 'ayufan-pine64', description: 'GitHub username or organization', name: 'GITHUB_USER'), string(defaultValue: 'build-pine64-image', description: 'GitHub repository', name: 'GITHUB_REPO'), - booleanParam(defaultValue: true, descriptoin: 'Whether to upload to Github for release or not', name: 'GITHUB_RELEASE'), + booleanParam(defaultValue: true, description: 'Whether to upload to Github for release or not', name: 'GITHUB_UPLOAD'), + string(devaultValue: 'all', description: 'What build type to target', name: 'MAKE_TARGET'), ]) ]) */ @@ -37,7 +38,7 @@ node('docker && linux-build') { sh '''#!/bin/bash set +xe export CCACHE_DIR=$WORKSPACE/ccache - make -j4 + make -j4 $MAKE_TARGET ''' } From 6a665f4d0690512d7babb2a5f4ef1367e8ccc4a2 Mon Sep 17 00:00:00 2001 From: pfeerick Date: Thu, 1 Jun 2017 18:27:10 +1000 Subject: [PATCH 097/168] Minor wording changes Just some minor wording changes. Test of xenial-minimal-pine64 only build passed. --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9b738f2c..5f875559 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -7,7 +7,7 @@ properties([ string(defaultValue: 'ayufan-pine64', description: 'GitHub username or organization', name: 'GITHUB_USER'), string(defaultValue: 'build-pine64-image', description: 'GitHub repository', name: 'GITHUB_REPO'), booleanParam(defaultValue: true, description: 'Whether to upload to Github for release or not', name: 'GITHUB_UPLOAD'), - string(devaultValue: 'all', description: 'What build type to target', name: 'MAKE_TARGET'), + string(devaultValue: 'all', description: 'What makefile build type to target', name: 'MAKE_TARGET'), ]) ]) */ @@ -86,7 +86,7 @@ node('docker && linux-build') { } else { - echo 'Flagged as non-release build' + echo 'Flagged as no upload release job' } } } From 22edc33e5e24f78e78cd736df0aab50d48e26936 Mon Sep 17 00:00:00 2001 From: Peter Date: Sun, 18 Jun 2017 18:51:39 +1000 Subject: [PATCH 098/168] allow-hotplug instead of auto for eth0 This is not the appropriate setting for the pinebook, as it does not have a eth0 connection! It causes an error in the networking.service log instead of clean exit. It will additionally delay boot on pine64s/sopines without a ethernet cable plugged in. This is the expected output (http://sprunge.us/NVjZ) as opposed to the output met (http://sprunge.us/EHFW) --- simpleimage/make_rootfs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index af85c413..2f11de24 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -300,7 +300,7 @@ EOF chmod +x "$DEST/second-phase" do_chroot /second-phase cat > "$DEST/etc/network/interfaces.d/eth0" < "$DEST/etc/hostname" < Date: Tue, 20 Jun 2017 15:41:37 +1000 Subject: [PATCH 099/168] Change the default wallpaper Hacky fix that diverts the default Ubuntu Mate wallapper and links to a Pinebook one --- package/root/usr/local/sbin/install_desktop.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/package/root/usr/local/sbin/install_desktop.sh b/package/root/usr/local/sbin/install_desktop.sh index d24ba3cb..4d6aed70 100755 --- a/package/root/usr/local/sbin/install_desktop.sh +++ b/package/root/usr/local/sbin/install_desktop.sh @@ -90,6 +90,12 @@ fi # Desktop dependent post installation. case $DESKTOP in + mate) + # Change default wallpaper + dpkg-divert --divert /usr/share/backgrounds/ubuntu-mate-common/Ubuntu-Mate-Cold-stock.jpg --rename /usr/share/backgrounds/ubuntu-mate-common/Ubuntu-Mate-Cold.jpg + ln /usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg /usr/share/backgrounds/ubuntu-mate-common/Ubuntu-Mate-Cold.jpg + ;; + i3|i3wm) if [ ! -d /usr/share/slim/themes/pine64 ]; then cp -ra /usr/share/slim/themes/default /usr/share/slim/themes/pine64 From a569600fd4c2039162518acacee24588bc592158 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Wed, 21 Jun 2017 15:36:30 +1000 Subject: [PATCH 100/168] Changed wallpaper link to be symbolic --- package/root/usr/local/sbin/install_desktop.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/root/usr/local/sbin/install_desktop.sh b/package/root/usr/local/sbin/install_desktop.sh index 4d6aed70..a03b81a6 100755 --- a/package/root/usr/local/sbin/install_desktop.sh +++ b/package/root/usr/local/sbin/install_desktop.sh @@ -93,7 +93,7 @@ case $DESKTOP in mate) # Change default wallpaper dpkg-divert --divert /usr/share/backgrounds/ubuntu-mate-common/Ubuntu-Mate-Cold-stock.jpg --rename /usr/share/backgrounds/ubuntu-mate-common/Ubuntu-Mate-Cold.jpg - ln /usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg /usr/share/backgrounds/ubuntu-mate-common/Ubuntu-Mate-Cold.jpg + ln -s /usr/share/backgrounds/ubuntu-mate-pinebook/Pinebook-Wallpaper-6.jpg /usr/share/backgrounds/ubuntu-mate-common/Ubuntu-Mate-Cold.jpg ;; i3|i3wm) From 0306f88b75888cff7dcccdba94661fedb894a57c Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Wed, 21 Jun 2017 15:41:25 +1000 Subject: [PATCH 101/168] Choice make tarket parameter and formatting changes --- Jenkinsfile | 66 ++++++++++++++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5f875559..4684d166 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -7,7 +7,7 @@ properties([ string(defaultValue: 'ayufan-pine64', description: 'GitHub username or organization', name: 'GITHUB_USER'), string(defaultValue: 'build-pine64-image', description: 'GitHub repository', name: 'GITHUB_REPO'), booleanParam(defaultValue: true, description: 'Whether to upload to Github for release or not', name: 'GITHUB_UPLOAD'), - string(devaultValue: 'all', description: 'What makefile build type to target', name: 'MAKE_TARGET'), + choice(choices: 'all\nkernel-tarball\nlinux-package\nxenial-minimal-pinebook\nxenial-mate-pinebook\nstretch-i3-pinebook\nxenial-pinebook\nlinux-pinebook\nxenial-minimal-pine64\nlinux-pine64\nxenial-minimal-sopine\nlinux-sopine', description: 'What makefile build type to target', name: 'MAKE_TARGET') ]) ]) */ @@ -50,43 +50,41 @@ node('docker && linux-build') { "GITHUB_REPO=$GITHUB_REPO" ]) { stage 'Release' - if (GITHUB_UPLOAD == true) { - sh '''#!/bin/bash - set -xe - shopt -s nullglob - - github-release release \ - --tag "${VERSION}" \ - --name "$VERSION: $BUILD_TAG" \ - --description "${CHANGES}\n\n${BUILD_URL}" \ - --draft + if (params.GITHUB_UPLOAD) { + sh '''#!/bin/bash + set -xe + shopt -s nullglob - for file in *.xz *.deb; do - github-release upload \ + github-release release \ --tag "${VERSION}" \ - --name "$(basename "$file")" \ - --file "$file" & - done + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" \ + --draft - wait + for file in *.xz *.deb; do + github-release upload \ + --tag "${VERSION}" \ + --name "$(basename "$file")" \ + --file "$file" & + done - if [[ "$PRERELEASE" == "true" ]]; then - github-release edit \ - --tag "${VERSION}" \ - --name "$VERSION: $BUILD_TAG" \ - --description "${CHANGES}\n\n${BUILD_URL}" \ - --pre-release - else - github-release edit \ - --tag "${VERSION}" \ - --name "$VERSION: $BUILD_TAG" \ - --description "${CHANGES}\n\n${BUILD_URL}" - fi - ''' - } - else - { - echo 'Flagged as no upload release job' + wait + + if [[ "$PRERELEASE" == "true" ]]; then + github-release edit \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" \ + --pre-release + else + github-release edit \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" + fi + ''' + } else { + echo 'Flagged as an no upload release job' } } } From 6461ab026fe16da6d9634d01fba02fb6e2fe1080 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 21 Jun 2017 11:23:13 +0200 Subject: [PATCH 102/168] Rename PRERELEASE to GITHUB_PRERELEASE --- Jenkinsfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4684d166..184bf6b8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,11 +3,11 @@ properties([ parameters([ string(defaultValue: '1.0', description: 'Current version number', name: 'VERSION'), text(defaultValue: '', description: 'A list of changes', name: 'CHANGES'), - booleanParam(defaultValue: false, description: 'If build should be marked as pre-release', name: 'PRERELEASE'), + choice(choices: 'all\nkernel-tarball\nlinux-package\nxenial-minimal-pinebook\nxenial-mate-pinebook\nstretch-i3-pinebook\nxenial-pinebook\nlinux-pinebook\nxenial-minimal-pine64\nlinux-pine64\nxenial-minimal-sopine\nlinux-sopine', description: 'What makefile build type to target', name: 'MAKE_TARGET') + booleanParam(defaultValue: true, description: 'Whether to upload to Github for release or not', name: 'GITHUB_UPLOAD'), + booleanParam(defaultValue: false, description: 'If build should be marked as pre-release', name: 'GITHUB_PRERELEASE'), string(defaultValue: 'ayufan-pine64', description: 'GitHub username or organization', name: 'GITHUB_USER'), string(defaultValue: 'build-pine64-image', description: 'GitHub repository', name: 'GITHUB_REPO'), - booleanParam(defaultValue: true, description: 'Whether to upload to Github for release or not', name: 'GITHUB_UPLOAD'), - choice(choices: 'all\nkernel-tarball\nlinux-package\nxenial-minimal-pinebook\nxenial-mate-pinebook\nstretch-i3-pinebook\nxenial-pinebook\nlinux-pinebook\nxenial-minimal-pine64\nlinux-pine64\nxenial-minimal-sopine\nlinux-sopine', description: 'What makefile build type to target', name: 'MAKE_TARGET') ]) ]) */ @@ -45,7 +45,7 @@ node('docker && linux-build') { withEnv([ "VERSION=$VERSION", "CHANGES=$CHANGES", - "PRERELEASE=$PRERELEASE", + "GITHUB_PRERELEASE=$GITHUB_PRERELEASE", "GITHUB_USER=$GITHUB_USER", "GITHUB_REPO=$GITHUB_REPO" ]) { @@ -70,7 +70,7 @@ node('docker && linux-build') { wait - if [[ "$PRERELEASE" == "true" ]]; then + if [[ "$GITHUB_PRERELEASE" == "true" ]]; then github-release edit \ --tag "${VERSION}" \ --name "$VERSION: $BUILD_TAG" \ From 154d204c3830dcead4d9c44eb66cff52268656a7 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 21 Jun 2017 15:46:22 +0200 Subject: [PATCH 103/168] Use prebuilt rootfs for all images --- build-environment/Dockerfile | 2 + simpleimage/make_rootfs.sh | 150 +++++------------------------------ 2 files changed, 22 insertions(+), 130 deletions(-) diff --git a/build-environment/Dockerfile b/build-environment/Dockerfile index 36a68074..b83115b4 100644 --- a/build-environment/Dockerfile +++ b/build-environment/Dockerfile @@ -11,6 +11,8 @@ RUN apt-get install -y python git-core gnupg flex bison gperf build-essential \ sudo cpio nano vim kmod kpartx wget bsdtar qemu-user-static \ pxz ruby-dev debootstrap multistrap +RUN apt-get install -y libssl-dev jq + RUN gem install fpm RUN curl -L https://github.com/aktau/github-release/releases/download/v0.6.2/linux-amd64-github-release.tar.bz2 | tar -C /tmp -jx && \ diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 2f11de24..84fea4af 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -18,6 +18,8 @@ DISTRO="$4" BOOT="$5" MODEL="$6" VARIANT="$7" +RELEASE_REPO=ayufan-rock64/linux-rootfs +BUILD_ARCH=arm64 if [ -z "$MODEL" ]; then MODEL="pine64" @@ -74,23 +76,22 @@ cleanup() { trap cleanup EXIT ROOTFS="" -UNTAR="bsdtar -xpf" -METHOD="download" +TAR_OPTIONS="" case $DISTRO in arch) ROOTFS="http://archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz" + TAR_OPTIONS="-z" ;; - xenial) - ROOTFS="http://cdimage.ubuntu.com/ubuntu-base/releases/16.04.2/release/ubuntu-base-16.04.2-base-arm64.tar.gz" + xenial|zesty) + version=$(curl -s https://api.github.com/repos/$RELEASE_REPO/releases/latest | jq -r ".tag_name") + ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/ubuntu-${DISTRO}-${VARIANT}-${version}-${BUILD_ARCH}.tar.xz" + TAR_OPTIONS="-J --strip-components=1 binary" ;; - sid|jessie) - ROOTFS="${DISTRO}-base-arm64.tar.gz" - METHOD="debootstrap" - ;; - stretch) - ROOTFS="${DISTRO}-base-arm64.tar.gz" - METHOD="multistrap" + sid|jessie|stretch) + version=$(curl -s https://api.github.com/repos/$RELEASE_REPO/releases/latest | jq -r ".tag_name") + ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/debian-${DISTRO}-${VARIANT}-${version}-${BUILD_ARCH}.tar.xz" + TAR_OPTIONS="-J --strip-components=1 binary" ;; *) echo "Unknown distribution: $DISTRO" @@ -98,99 +99,25 @@ case $DISTRO in ;; esac -deboostrap_rootfs() { - dist="$1" - tgz="$(readlink -f "$2")" - - [ "$TEMP" ] || exit 1 - cd $TEMP && pwd - - # this is updated very seldom, so is ok to hardcode - debian_archive_keyring_deb='https://ftp.de.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2014.3_all.deb' - wget -O keyring.deb "$debian_archive_keyring_deb" - ar -x keyring.deb && rm -f control.tar.gz debian-binary && rm -f keyring.deb - DATA=$(ls data.tar.*) && compress=${DATA#data.tar.} - - KR=debian-archive-keyring.gpg - bsdtar --include ./usr/share/keyrings/$KR --strip-components 4 -xvf "$DATA" - rm -f "$DATA" - - qemu-debootstrap --arch=arm64 --keyring=$TEMP/$KR $dist rootfs http://httpredir.debian.org/debian - rm -f $KR - - # keeping things clean as this is copied later again - rm -f rootfs/usr/bin/qemu-aarch64-static - - bsdtar -C $TEMP/rootfs -a -cf $tgz . - rm -fr $TEMP/rootfs - - cd - -} - -multistrap_rootfs() { - dist="$1" - tgz="$(readlink -f "$2")" - - [ "$TEMP" ] || exit 1 - cd $TEMP && pwd - - cat > multistrap.conf < "$DEST/usr/sbin/policy-rc.d" < "$aptsrcfile" <> "$aptsrcfile" < "$DEST/etc/apt/sources.list" < "$DEST/second-phase" < Date: Fri, 23 Jun 2017 10:27:03 +0200 Subject: [PATCH 104/168] Update Makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 401bfc5f..28a7e7a8 100644 --- a/Makefile +++ b/Makefile @@ -61,7 +61,7 @@ linux-pine64-package-$(RELEASE_NAME).deb: package package/rtk_bt/rtk_hciattach/r --after-install package/scripts/postinst.deb \ --before-remove package/scripts/prerm.deb \ --url https://gitlab.com/ayufan-pine64/linux-build \ - --description "GitLab Runner" \ + --description "Pine A64 Linux support package" \ -m "Kamil Trzciński " \ --license "MIT" \ --vendor "Kamil Trzciński" \ From a419d04a9c33fdfc9bd8ac34bacb1a12c58efc30 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Sat, 8 Jul 2017 20:16:35 +1000 Subject: [PATCH 105/168] Changed boot partition size from 50MiB to 100MiB This will allow the Software Updater shipped with Ubuntu Mate to run without error. --- simpleimage/make_simpleimage.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpleimage/make_simpleimage.sh b/simpleimage/make_simpleimage.sh index 627be332..ffe7f308 100755 --- a/simpleimage/make_simpleimage.sh +++ b/simpleimage/make_simpleimage.sh @@ -73,7 +73,7 @@ trap cleanup EXIT boot0_position=8 # KiB uboot_position=19096 # KiB part_position=20480 # KiB -boot_size=50 # MiB +boot_size=100 # MiB # Create beginning of disk dd if=/dev/zero bs=1M count=$((part_position/1024)) of="$out" From 2a04751a512279f989009183825492c1a67a4991 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Sat, 8 Jul 2017 20:18:05 +1000 Subject: [PATCH 106/168] Alignment --- simpleimage/make_simpleimage.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpleimage/make_simpleimage.sh b/simpleimage/make_simpleimage.sh index ffe7f308..241f8293 100755 --- a/simpleimage/make_simpleimage.sh +++ b/simpleimage/make_simpleimage.sh @@ -73,7 +73,7 @@ trap cleanup EXIT boot0_position=8 # KiB uboot_position=19096 # KiB part_position=20480 # KiB -boot_size=100 # MiB +boot_size=100 # MiB # Create beginning of disk dd if=/dev/zero bs=1M count=$((part_position/1024)) of="$out" From 4c0e1943127fae4db783da6e86be59cb5d52ca64 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 9 Jul 2017 13:13:45 +0200 Subject: [PATCH 107/168] Use 150MB for simpleimage --- Makefile | 6 +++--- simpleimage/make_simpleimage.sh | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 28a7e7a8..1cdacd7c 100644 --- a/Makefile +++ b/Makefile @@ -80,19 +80,19 @@ simple-image-pine64-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boo cd simpleimage && \ export boot0=../boot-tools/boot/pine64/boot0-pine64-plus.bin && \ export uboot=../boot-tools/boot/pine64/u-boot-pine64-plus.bin && \ - bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) + bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) simple-image-sopine-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools cd simpleimage && \ export boot0=../boot-tools/boot/pine64/boot0-pine64-sopine.bin && \ export uboot=../boot-tools/boot/pine64/u-boot-pine64-sopine.bin && \ - bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) + bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools cd simpleimage && \ export boot0=../boot-tools/boot/pine64/boot0-pine64-pinebook.bin && \ export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook.bin && \ - bash ./make_simpleimage.sh $(shell readlink -f "$@") 100 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) + bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pine64-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools sudo bash ./build-pine64-image.sh \ diff --git a/simpleimage/make_simpleimage.sh b/simpleimage/make_simpleimage.sh index 241f8293..1c5da78d 100755 --- a/simpleimage/make_simpleimage.sh +++ b/simpleimage/make_simpleimage.sh @@ -28,7 +28,7 @@ if [ -z "$out" ]; then fi if [ -z "$disk_size" ]; then - disk_size=100 #MiB + disk_size=150 #MiB fi if [ "$disk_size" -lt 60 ]; then From 4c7543e78d040d49d8b941add41b79bfa7c3ec19 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Tue, 11 Jul 2017 18:43:59 +1000 Subject: [PATCH 108/168] Changes to enable internal mic by default --- package/root/var/lib/alsa/asound.state | 75 +++++++++++--------------- 1 file changed, 31 insertions(+), 44 deletions(-) diff --git a/package/root/var/lib/alsa/asound.state b/package/root/var/lib/alsa/asound.state index 2c8a1389..504aa22d 100644 --- a/package/root/var/lib/alsa/asound.state +++ b/package/root/var/lib/alsa/asound.state @@ -2,8 +2,8 @@ state.audiocodec { control.1 { iface MIXER name 'AIF1 ADC timeslot 0 volume' - value.0 0 - value.1 0 + value.0 228 + value.1 228 comment { access 'read write' type INTEGER @@ -11,15 +11,15 @@ state.audiocodec { range '0 - 255' dbmin -11925 dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 + dbvalue.0 5175 + dbvalue.1 5175 } } control.2 { iface MIXER name 'AIF1 ADC timeslot 1 volume' - value.0 0 - value.1 0 + value.0 225 + value.1 225 comment { access 'read write' type INTEGER @@ -27,8 +27,8 @@ state.audiocodec { range '0 - 255' dbmin -11925 dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 + dbvalue.0 4950 + dbvalue.1 4950 } } control.3 { @@ -66,8 +66,8 @@ state.audiocodec { control.5 { iface MIXER name 'AIF1 ADC timeslot 0 mixer gain' - value.0 0 - value.1 0 + value.0 14 + value.1 14 comment { access 'read write' type INTEGER @@ -75,15 +75,15 @@ state.audiocodec { range '0 - 15' dbmin -600 dbmax 8400 - dbvalue.0 -600 - dbvalue.1 -600 + dbvalue.0 7800 + dbvalue.1 7800 } } control.6 { iface MIXER name 'AIF1 ADC timeslot 1 mixer gain' - value.0 0 - value.1 0 + value.0 3 + value.1 3 comment { access 'read write' type INTEGER @@ -91,8 +91,8 @@ state.audiocodec { range '0 - 3' dbmin -600 dbmax 1200 - dbvalue.0 -600 - dbvalue.1 -600 + dbvalue.0 1200 + dbvalue.1 1200 } } control.7 { @@ -146,8 +146,8 @@ state.audiocodec { control.10 { iface MIXER name 'ADC volume' - value.0 0 - value.1 0 + value.0 153 + value.1 153 comment { access 'read write' type INTEGER @@ -155,8 +155,8 @@ state.audiocodec { range '0 - 255' dbmin -11925 dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 + dbvalue.0 -450 + dbvalue.1 -450 } } control.11 { @@ -320,7 +320,7 @@ state.audiocodec { control.22 { iface MIXER name 'ADC input gain control' - value 0 + value 4 comment { access 'read write' type INTEGER @@ -328,7 +328,7 @@ state.audiocodec { range '0 - 7' dbmin -450 dbmax 600 - dbvalue.0 -450 + dbvalue.0 150 } } control.23 { @@ -368,7 +368,7 @@ state.audiocodec { control.26 { iface MIXER name 'Phoneout Mixer MIC1 boost Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -378,7 +378,7 @@ state.audiocodec { control.27 { iface MIXER name 'Phoneout Mixer MIC2 boost Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -408,7 +408,7 @@ state.audiocodec { control.30 { iface MIXER name 'ADCR Mux' - value DMIC + value ADC comment { access 'read write' type ENUMERATED @@ -420,7 +420,7 @@ state.audiocodec { control.31 { iface MIXER name 'ADCL Mux' - value DMIC + value ADC comment { access 'read write' type ENUMERATED @@ -454,7 +454,7 @@ state.audiocodec { control.34 { iface MIXER name 'RADC input Mixer MIC2 boost Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -514,7 +514,7 @@ state.audiocodec { control.40 { iface MIXER name 'LADC input Mixer MIC1 boost Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -524,7 +524,7 @@ state.audiocodec { control.41 { iface MIXER name 'LADC input Mixer MIC2 boost Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -1074,7 +1074,7 @@ state.audiocodec { control.93 { iface MIXER name 'AIF1 AD0R Mixer ADCR Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -1114,7 +1114,7 @@ state.audiocodec { control.97 { iface MIXER name 'AIF1 AD0L Mixer ADCL Switch' - value false + value true comment { access 'read write' type BOOLEAN @@ -1339,18 +1339,5 @@ state.sndhdmi { item.13 WMAPRO } } - control.2 { - iface MIXER - name 'sunxi daudio audio hub mode' - value hub_disable - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 null - item.1 hub_disable - item.2 hub_enable - } - } } From ff8d41532dfe72751bee5e2a7dc81782168ee41d Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Tue, 11 Jul 2017 18:52:58 +1000 Subject: [PATCH 109/168] Changed file line endings to UNIX Since alsactl saves as UNIX, future modifications should be easier to track --- package/root/var/lib/alsa/asound.state | 2686 ++++++++++++------------ 1 file changed, 1343 insertions(+), 1343 deletions(-) diff --git a/package/root/var/lib/alsa/asound.state b/package/root/var/lib/alsa/asound.state index 504aa22d..22695185 100644 --- a/package/root/var/lib/alsa/asound.state +++ b/package/root/var/lib/alsa/asound.state @@ -1,1343 +1,1343 @@ -state.audiocodec { - control.1 { - iface MIXER - name 'AIF1 ADC timeslot 0 volume' - value.0 228 - value.1 228 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 5175 - dbvalue.1 5175 - } - } - control.2 { - iface MIXER - name 'AIF1 ADC timeslot 1 volume' - value.0 225 - value.1 225 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 4950 - dbvalue.1 4950 - } - } - control.3 { - iface MIXER - name 'AIF1 DAC timeslot 0 volume' - value.0 165 - value.1 165 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 450 - dbvalue.1 450 - } - } - control.4 { - iface MIXER - name 'AIF1 DAC timeslot 1 volume' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 - } - } - control.5 { - iface MIXER - name 'AIF1 ADC timeslot 0 mixer gain' - value.0 14 - value.1 14 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 15' - dbmin -600 - dbmax 8400 - dbvalue.0 7800 - dbvalue.1 7800 - } - } - control.6 { - iface MIXER - name 'AIF1 ADC timeslot 1 mixer gain' - value.0 3 - value.1 3 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 3' - dbmin -600 - dbmax 1200 - dbvalue.0 1200 - dbvalue.1 1200 - } - } - control.7 { - iface MIXER - name 'AIF2 ADC volume' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 - } - } - control.8 { - iface MIXER - name 'AIF2 DAC volume' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 -11925 - dbvalue.1 -11925 - } - } - control.9 { - iface MIXER - name 'AIF2 ADC mixer gain' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 15' - dbmin -600 - dbmax 8400 - dbvalue.0 -600 - dbvalue.1 -600 - } - } - control.10 { - iface MIXER - name 'ADC volume' - value.0 153 - value.1 153 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 -450 - dbvalue.1 -450 - } - } - control.11 { - iface MIXER - name 'DAC volume' - value.0 160 - value.1 160 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 255' - dbmin -11925 - dbmax 7200 - dbvalue.0 75 - dbvalue.1 75 - } - } - control.12 { - iface MIXER - name 'DAC mixer gain' - value.0 0 - value.1 0 - comment { - access 'read write' - type INTEGER - count 2 - range '0 - 15' - dbmin -600 - dbmax 8400 - dbvalue.0 -600 - dbvalue.1 -600 - } - } - control.13 { - iface MIXER - name 'digital volume' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 63' - dbmin -7308 - dbmax 0 - dbvalue.0 -7308 - } - } - control.14 { - iface MIXER - name 'earpiece volume' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 31' - dbmin -4350 - dbmax 300 - dbvalue.0 -4350 - } - } - control.15 { - iface MIXER - name 'speaker volume' - value 23 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 31' - dbmin -4800 - dbmax -150 - dbvalue.0 -1350 - } - } - control.16 { - iface MIXER - name 'headphone volume' - value 30 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 63' - dbmin -6300 - dbmax 0 - dbvalue.0 -6300 - } - } - control.17 { - iface MIXER - name 'MIC1_G boost stage output mixer control' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin -450 - dbmax 600 - dbvalue.0 -450 - } - } - control.18 { - iface MIXER - name 'MIC1 boost AMP gain control' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin 0 - dbmax 1400 - dbvalue.0 0 - } - } - control.19 { - iface MIXER - name 'MIC2 BST stage to L_R outp mixer gain' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin -450 - dbmax 600 - dbvalue.0 -450 - } - } - control.20 { - iface MIXER - name 'MIC2 boost AMP gain control' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin 0 - dbmax 1400 - dbvalue.0 0 - } - } - control.21 { - iface MIXER - name 'LINEINL/R to L_R output mixer gain' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin -450 - dbmax 600 - dbvalue.0 -450 - } - } - control.22 { - iface MIXER - name 'ADC input gain control' - value 4 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin -450 - dbmax 600 - dbvalue.0 150 - } - } - control.23 { - iface MIXER - name 'Phoneout gain control' - value 0 - comment { - access 'read write' - type INTEGER - count 1 - range '0 - 7' - dbmin -450 - dbmax 600 - dbvalue.0 -450 - } - } - control.24 { - iface MIXER - name 'SRC FUCTION' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.25 { - iface MIXER - name 'I2S HUB FUNC' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.26 { - iface MIXER - name 'Phoneout Mixer MIC1 boost Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.27 { - iface MIXER - name 'Phoneout Mixer MIC2 boost Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.28 { - iface MIXER - name 'Phoneout Mixer Rout_Mixer_Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.29 { - iface MIXER - name 'Phoneout Mixer Lout_Mixer_Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.30 { - iface MIXER - name 'ADCR Mux' - value ADC - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 ADC - item.1 DMIC - } - } - control.31 { - iface MIXER - name 'ADCL Mux' - value ADC - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 ADC - item.1 DMIC - } - } - control.32 { - iface MIXER - name 'MIC2 SRC' - value MIC2 - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 MIC3 - item.1 MIC2 - } - } - control.33 { - iface MIXER - name 'RADC input Mixer MIC1 boost Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.34 { - iface MIXER - name 'RADC input Mixer MIC2 boost Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.35 { - iface MIXER - name 'RADC input Mixer LINEINR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.36 { - iface MIXER - name 'RADC input Mixer r_output mixer Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.37 { - iface MIXER - name 'RADC input Mixer l_output mixer Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.38 { - iface MIXER - name 'RADC input Mixer PHONINN Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.39 { - iface MIXER - name 'RADC input Mixer PHONINN-PHONINP Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.40 { - iface MIXER - name 'LADC input Mixer MIC1 boost Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.41 { - iface MIXER - name 'LADC input Mixer MIC2 boost Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.42 { - iface MIXER - name 'LADC input Mixer LINEINL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.43 { - iface MIXER - name 'LADC input Mixer l_output mixer Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.44 { - iface MIXER - name 'LADC input Mixer r_output mixer Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.45 { - iface MIXER - name 'LADC input Mixer PHONINP Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.46 { - iface MIXER - name 'LADC input Mixer PHONINP-PHONINN Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.47 { - iface MIXER - name 'AIF3OUT Mux' - value 'AIF2 ADC left channel' - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 'AIF2 ADC left channel' - item.1 'AIF2 ADC right channel' - } - } - control.48 { - iface MIXER - name 'AIF2 ADR Mixer AIF1 DA0R Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.49 { - iface MIXER - name 'AIF2 ADR Mixer AIF1 DA1R Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.50 { - iface MIXER - name 'AIF2 ADR Mixer AIF2 DACL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.51 { - iface MIXER - name 'AIF2 ADR Mixer ADCR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.52 { - iface MIXER - name 'AIF2 ADL Mixer AIF1 DA0L Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.53 { - iface MIXER - name 'AIF2 ADL Mixer AIF1 DA1L Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.54 { - iface MIXER - name 'AIF2 ADL Mixer AIF2 DACR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.55 { - iface MIXER - name 'AIF2 ADL Mixer ADCL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.56 { - iface MIXER - name 'AIF2INR Mux' - value AIF2_DACR - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF2_DACR - item.1 AIF2_DACL - item.2 SUM_AIF2DACL_AIF2DACR - item.3 AVE_AIF2DACL_AIF2DACR - } - } - control.57 { - iface MIXER - name 'AIF2INL Mux' - value AIF2_DACL - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF2_DACL - item.1 AIF2_DACR - item.2 SUM_AIF2DACL_AIF2DACR - item.3 AVE_AIF2DACL_AIF2DACR - } - } - control.58 { - iface MIXER - name 'AIF2OUTR Mux' - value AIF2_ADCR - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF2_ADCR - item.1 AIF2_ADCL - item.2 SUM_AIF2_ADCL_AIF2_ADCR - item.3 AVE_AIF2_ADCL_AIF2_ADCR - } - } - control.59 { - iface MIXER - name 'AIF2OUTL Mux' - value AIF2_ADCL - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF2_ADCL - item.1 AIF2_ADCR - item.2 SUM_AIF2_ADCL_AIF2_ADCR - item.3 AVE_AIF2_ADCL_AIF2_ADCR - } - } - control.60 { - iface MIXER - name 'EAR Mux' - value DACR - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 DACR - item.1 DACL - item.2 'Right Analog Mixer' - item.3 'Left Analog Mixer' - } - } - control.61 { - iface MIXER - name 'SPK_L Mux' - value 'MIXEL Switch' - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 'MIXEL Switch' - item.1 'MIXL MIXR Switch' - } - } - control.62 { - iface MIXER - name 'SPK_R Mux' - value 'MIXER Switch' - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 'MIXER Switch' - item.1 'MIXR MIXL Switch' - } - } - control.63 { - iface MIXER - name 'HP_L Mux' - value 'DACL HPL Switch' - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 'DACL HPL Switch' - item.1 'Left Analog Mixer HPL Switch' - } - } - control.64 { - iface MIXER - name 'HP_R Mux' - value 'DACR HPR Switch' - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 'DACR HPR Switch' - item.1 'Right Analog Mixer HPR Switch' - } - } - control.65 { - iface MIXER - name 'Right Output Mixer DACL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.66 { - iface MIXER - name 'Right Output Mixer DACR Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.67 { - iface MIXER - name 'Right Output Mixer LINEINR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.68 { - iface MIXER - name 'Right Output Mixer MIC2Booststage Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.69 { - iface MIXER - name 'Right Output Mixer MIC1Booststage Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.70 { - iface MIXER - name 'Right Output Mixer PHONEINN Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.71 { - iface MIXER - name 'Right Output Mixer PHONEINN-PHONEINP Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.72 { - iface MIXER - name 'Left Output Mixer DACR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.73 { - iface MIXER - name 'Left Output Mixer DACL Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.74 { - iface MIXER - name 'Left Output Mixer LINEINL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.75 { - iface MIXER - name 'Left Output Mixer MIC2Booststage Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.76 { - iface MIXER - name 'Left Output Mixer MIC1Booststage Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.77 { - iface MIXER - name 'Left Output Mixer PHONEINP Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.78 { - iface MIXER - name 'Left Output Mixer PHONEINP-PHONEINN Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.79 { - iface MIXER - name 'DACR Mixer ADCR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.80 { - iface MIXER - name 'DACR Mixer AIF2DACR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.81 { - iface MIXER - name 'DACR Mixer AIF1DA1R Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.82 { - iface MIXER - name 'DACR Mixer AIF1DA0R Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.83 { - iface MIXER - name 'DACL Mixer ADCL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.84 { - iface MIXER - name 'DACL Mixer AIF2DACL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.85 { - iface MIXER - name 'DACL Mixer AIF1DA1L Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.86 { - iface MIXER - name 'DACL Mixer AIF1DA0L Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.87 { - iface MIXER - name 'AIF1 AD1R Mixer AIF2 DACR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.88 { - iface MIXER - name 'AIF1 AD1R Mixer ADCR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.89 { - iface MIXER - name 'AIF1 AD1L Mixer AIF2 DACL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.90 { - iface MIXER - name 'AIF1 AD1L Mixer ADCL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.91 { - iface MIXER - name 'AIF1 AD0R Mixer AIF1 DA0R Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.92 { - iface MIXER - name 'AIF1 AD0R Mixer AIF2 DACR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.93 { - iface MIXER - name 'AIF1 AD0R Mixer ADCR Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.94 { - iface MIXER - name 'AIF1 AD0R Mixer AIF2 DACL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.95 { - iface MIXER - name 'AIF1 AD0L Mixer AIF1 DA0L Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.96 { - iface MIXER - name 'AIF1 AD0L Mixer AIF2 DACL Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.97 { - iface MIXER - name 'AIF1 AD0L Mixer ADCL Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.98 { - iface MIXER - name 'AIF1 AD0L Mixer AIF2 DACR Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.99 { - iface MIXER - name 'AIF1IN1R Mux' - value AIF1_DA1R - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_DA1R - item.1 AIF1_DA1L - item.2 SUM_AIF1DA1L_AIF1DA1R - item.3 AVE_AIF1DA1L_AIF1DA1R - } - } - control.100 { - iface MIXER - name 'AIF1IN1L Mux' - value AIF1_DA1L - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_DA1L - item.1 AIF1_DA1R - item.2 SUM_AIF1DA1L_AIF1DA1R - item.3 AVE_AIF1DA1L_AIF1DA1R - } - } - control.101 { - iface MIXER - name 'AIF1IN0R Mux' - value AIF1_DA0R - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_DA0R - item.1 AIF1_DA0L - item.2 SUM_AIF1DA0L_AIF1DA0R - item.3 AVE_AIF1DA0L_AIF1DA0R - } - } - control.102 { - iface MIXER - name 'AIF1IN0L Mux' - value AIF1_DA0L - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_DA0L - item.1 AIF1_DA0R - item.2 SUM_AIF1DA0L_AIF1DA0R - item.3 AVE_AIF1DA0L_AIF1DA0R - } - } - control.103 { - iface MIXER - name 'AIF1OUT1R Mux' - value AIF1_AD1R - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_AD1R - item.1 AIF1_AD1L - item.2 SUM_AIF1ADC1L_AIF1ADC1R - item.3 AVE_AIF1ADC1L_AIF1ADC1R - } - } - control.104 { - iface MIXER - name 'AIF1OUT1L Mux' - value AIF1_AD1L - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_AD1L - item.1 AIF1_AD1R - item.2 SUM_AIF1ADC1L_AIF1ADC1R - item.3 AVE_AIF1ADC1L_AIF1ADC1R - } - } - control.105 { - iface MIXER - name 'AIF1OUT0R Mux' - value AIF1_AD0R - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_AD0R - item.1 AIF1_AD0L - item.2 SUM_AIF1AD0L_AIF1AD0R - item.3 AVE_AIF1AD0L_AIF1AD0R - } - } - control.106 { - iface MIXER - name 'AIF1OUT0L Mux' - value AIF1_AD0L - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 AIF1_AD0L - item.1 AIF1_AD0R - item.2 SUM_AIF1AD0L_AIF1AD0R - item.3 AVE_AIF1AD0L_AIF1AD0R - } - } - control.107 { - iface MIXER - name 'AIF2INR Mux VIR switch aif2inr aif3' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.108 { - iface MIXER - name 'AIF2INL Mux VIR switch aif2inl aif3' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.109 { - iface MIXER - name 'AIF2INR Mux switch aif2inr aif2' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.110 { - iface MIXER - name 'AIF2INL Mux switch aif2inl aif2' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.111 { - iface MIXER - name 'External Speaker Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.112 { - iface MIXER - name 'Headphone Switch' - value true - comment { - access 'read write' - type BOOLEAN - count 1 - } - } - control.113 { - iface MIXER - name 'Earpiece Switch' - value false - comment { - access 'read write' - type BOOLEAN - count 1 - } - } -} -state.sndhdmi { - control.1 { - iface MIXER - name 'hdmi audio format Function' - value pcm - comment { - access 'read write' - type ENUMERATED - count 1 - item.0 null - item.1 pcm - item.2 AC3 - item.3 MPEG1 - item.4 MP3 - item.5 MPEG2 - item.6 AAC - item.7 DTS - item.8 ATRAC - item.9 ONE_BIT_AUDIO - item.10 DOLBY_DIGITAL_PLUS - item.11 DTS_HD - item.12 MAT - item.13 WMAPRO - } - } -} - +state.audiocodec { + control.1 { + iface MIXER + name 'AIF1 ADC timeslot 0 volume' + value.0 228 + value.1 228 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 5175 + dbvalue.1 5175 + } + } + control.2 { + iface MIXER + name 'AIF1 ADC timeslot 1 volume' + value.0 225 + value.1 225 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 4950 + dbvalue.1 4950 + } + } + control.3 { + iface MIXER + name 'AIF1 DAC timeslot 0 volume' + value.0 165 + value.1 165 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 450 + dbvalue.1 450 + } + } + control.4 { + iface MIXER + name 'AIF1 DAC timeslot 1 volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 -11925 + dbvalue.1 -11925 + } + } + control.5 { + iface MIXER + name 'AIF1 ADC timeslot 0 mixer gain' + value.0 14 + value.1 14 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 15' + dbmin -600 + dbmax 8400 + dbvalue.0 7800 + dbvalue.1 7800 + } + } + control.6 { + iface MIXER + name 'AIF1 ADC timeslot 1 mixer gain' + value.0 3 + value.1 3 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 3' + dbmin -600 + dbmax 1200 + dbvalue.0 1200 + dbvalue.1 1200 + } + } + control.7 { + iface MIXER + name 'AIF2 ADC volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 -11925 + dbvalue.1 -11925 + } + } + control.8 { + iface MIXER + name 'AIF2 DAC volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 -11925 + dbvalue.1 -11925 + } + } + control.9 { + iface MIXER + name 'AIF2 ADC mixer gain' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 15' + dbmin -600 + dbmax 8400 + dbvalue.0 -600 + dbvalue.1 -600 + } + } + control.10 { + iface MIXER + name 'ADC volume' + value.0 153 + value.1 153 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 -450 + dbvalue.1 -450 + } + } + control.11 { + iface MIXER + name 'DAC volume' + value.0 160 + value.1 160 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -11925 + dbmax 7200 + dbvalue.0 75 + dbvalue.1 75 + } + } + control.12 { + iface MIXER + name 'DAC mixer gain' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 15' + dbmin -600 + dbmax 8400 + dbvalue.0 -600 + dbvalue.1 -600 + } + } + control.13 { + iface MIXER + name 'digital volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 63' + dbmin -7308 + dbmax 0 + dbvalue.0 -7308 + } + } + control.14 { + iface MIXER + name 'earpiece volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -4350 + dbmax 300 + dbvalue.0 -4350 + } + } + control.15 { + iface MIXER + name 'speaker volume' + value 23 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -4800 + dbmax -150 + dbvalue.0 -1350 + } + } + control.16 { + iface MIXER + name 'headphone volume' + value 30 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 63' + dbmin -6300 + dbmax 0 + dbvalue.0 -6300 + } + } + control.17 { + iface MIXER + name 'MIC1_G boost stage output mixer control' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -450 + dbmax 600 + dbvalue.0 -450 + } + } + control.18 { + iface MIXER + name 'MIC1 boost AMP gain control' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin 0 + dbmax 1400 + dbvalue.0 0 + } + } + control.19 { + iface MIXER + name 'MIC2 BST stage to L_R outp mixer gain' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -450 + dbmax 600 + dbvalue.0 -450 + } + } + control.20 { + iface MIXER + name 'MIC2 boost AMP gain control' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin 0 + dbmax 1400 + dbvalue.0 0 + } + } + control.21 { + iface MIXER + name 'LINEINL/R to L_R output mixer gain' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -450 + dbmax 600 + dbvalue.0 -450 + } + } + control.22 { + iface MIXER + name 'ADC input gain control' + value 4 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -450 + dbmax 600 + dbvalue.0 150 + } + } + control.23 { + iface MIXER + name 'Phoneout gain control' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -450 + dbmax 600 + dbvalue.0 -450 + } + } + control.24 { + iface MIXER + name 'SRC FUCTION' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.25 { + iface MIXER + name 'I2S HUB FUNC' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'Phoneout Mixer MIC1 boost Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.27 { + iface MIXER + name 'Phoneout Mixer MIC2 boost Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.28 { + iface MIXER + name 'Phoneout Mixer Rout_Mixer_Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.29 { + iface MIXER + name 'Phoneout Mixer Lout_Mixer_Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.30 { + iface MIXER + name 'ADCR Mux' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 DMIC + } + } + control.31 { + iface MIXER + name 'ADCL Mux' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 DMIC + } + } + control.32 { + iface MIXER + name 'MIC2 SRC' + value MIC2 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 MIC3 + item.1 MIC2 + } + } + control.33 { + iface MIXER + name 'RADC input Mixer MIC1 boost Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.34 { + iface MIXER + name 'RADC input Mixer MIC2 boost Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.35 { + iface MIXER + name 'RADC input Mixer LINEINR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.36 { + iface MIXER + name 'RADC input Mixer r_output mixer Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.37 { + iface MIXER + name 'RADC input Mixer l_output mixer Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.38 { + iface MIXER + name 'RADC input Mixer PHONINN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.39 { + iface MIXER + name 'RADC input Mixer PHONINN-PHONINP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.40 { + iface MIXER + name 'LADC input Mixer MIC1 boost Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.41 { + iface MIXER + name 'LADC input Mixer MIC2 boost Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.42 { + iface MIXER + name 'LADC input Mixer LINEINL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.43 { + iface MIXER + name 'LADC input Mixer l_output mixer Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.44 { + iface MIXER + name 'LADC input Mixer r_output mixer Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.45 { + iface MIXER + name 'LADC input Mixer PHONINP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.46 { + iface MIXER + name 'LADC input Mixer PHONINP-PHONINN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name 'AIF3OUT Mux' + value 'AIF2 ADC left channel' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'AIF2 ADC left channel' + item.1 'AIF2 ADC right channel' + } + } + control.48 { + iface MIXER + name 'AIF2 ADR Mixer AIF1 DA0R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'AIF2 ADR Mixer AIF1 DA1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.50 { + iface MIXER + name 'AIF2 ADR Mixer AIF2 DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'AIF2 ADR Mixer ADCR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.52 { + iface MIXER + name 'AIF2 ADL Mixer AIF1 DA0L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.53 { + iface MIXER + name 'AIF2 ADL Mixer AIF1 DA1L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.54 { + iface MIXER + name 'AIF2 ADL Mixer AIF2 DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.55 { + iface MIXER + name 'AIF2 ADL Mixer ADCL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.56 { + iface MIXER + name 'AIF2INR Mux' + value AIF2_DACR + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2_DACR + item.1 AIF2_DACL + item.2 SUM_AIF2DACL_AIF2DACR + item.3 AVE_AIF2DACL_AIF2DACR + } + } + control.57 { + iface MIXER + name 'AIF2INL Mux' + value AIF2_DACL + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2_DACL + item.1 AIF2_DACR + item.2 SUM_AIF2DACL_AIF2DACR + item.3 AVE_AIF2DACL_AIF2DACR + } + } + control.58 { + iface MIXER + name 'AIF2OUTR Mux' + value AIF2_ADCR + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2_ADCR + item.1 AIF2_ADCL + item.2 SUM_AIF2_ADCL_AIF2_ADCR + item.3 AVE_AIF2_ADCL_AIF2_ADCR + } + } + control.59 { + iface MIXER + name 'AIF2OUTL Mux' + value AIF2_ADCL + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2_ADCL + item.1 AIF2_ADCR + item.2 SUM_AIF2_ADCL_AIF2_ADCR + item.3 AVE_AIF2_ADCL_AIF2_ADCR + } + } + control.60 { + iface MIXER + name 'EAR Mux' + value DACR + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DACR + item.1 DACL + item.2 'Right Analog Mixer' + item.3 'Left Analog Mixer' + } + } + control.61 { + iface MIXER + name 'SPK_L Mux' + value 'MIXEL Switch' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'MIXEL Switch' + item.1 'MIXL MIXR Switch' + } + } + control.62 { + iface MIXER + name 'SPK_R Mux' + value 'MIXER Switch' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'MIXER Switch' + item.1 'MIXR MIXL Switch' + } + } + control.63 { + iface MIXER + name 'HP_L Mux' + value 'DACL HPL Switch' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'DACL HPL Switch' + item.1 'Left Analog Mixer HPL Switch' + } + } + control.64 { + iface MIXER + name 'HP_R Mux' + value 'DACR HPR Switch' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'DACR HPR Switch' + item.1 'Right Analog Mixer HPR Switch' + } + } + control.65 { + iface MIXER + name 'Right Output Mixer DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.66 { + iface MIXER + name 'Right Output Mixer DACR Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.67 { + iface MIXER + name 'Right Output Mixer LINEINR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.68 { + iface MIXER + name 'Right Output Mixer MIC2Booststage Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.69 { + iface MIXER + name 'Right Output Mixer MIC1Booststage Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.70 { + iface MIXER + name 'Right Output Mixer PHONEINN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.71 { + iface MIXER + name 'Right Output Mixer PHONEINN-PHONEINP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.72 { + iface MIXER + name 'Left Output Mixer DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.73 { + iface MIXER + name 'Left Output Mixer DACL Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.74 { + iface MIXER + name 'Left Output Mixer LINEINL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.75 { + iface MIXER + name 'Left Output Mixer MIC2Booststage Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.76 { + iface MIXER + name 'Left Output Mixer MIC1Booststage Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.77 { + iface MIXER + name 'Left Output Mixer PHONEINP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.78 { + iface MIXER + name 'Left Output Mixer PHONEINP-PHONEINN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.79 { + iface MIXER + name 'DACR Mixer ADCR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.80 { + iface MIXER + name 'DACR Mixer AIF2DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.81 { + iface MIXER + name 'DACR Mixer AIF1DA1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.82 { + iface MIXER + name 'DACR Mixer AIF1DA0R Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.83 { + iface MIXER + name 'DACL Mixer ADCL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.84 { + iface MIXER + name 'DACL Mixer AIF2DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.85 { + iface MIXER + name 'DACL Mixer AIF1DA1L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.86 { + iface MIXER + name 'DACL Mixer AIF1DA0L Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.87 { + iface MIXER + name 'AIF1 AD1R Mixer AIF2 DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.88 { + iface MIXER + name 'AIF1 AD1R Mixer ADCR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.89 { + iface MIXER + name 'AIF1 AD1L Mixer AIF2 DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.90 { + iface MIXER + name 'AIF1 AD1L Mixer ADCL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.91 { + iface MIXER + name 'AIF1 AD0R Mixer AIF1 DA0R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.92 { + iface MIXER + name 'AIF1 AD0R Mixer AIF2 DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.93 { + iface MIXER + name 'AIF1 AD0R Mixer ADCR Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.94 { + iface MIXER + name 'AIF1 AD0R Mixer AIF2 DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.95 { + iface MIXER + name 'AIF1 AD0L Mixer AIF1 DA0L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.96 { + iface MIXER + name 'AIF1 AD0L Mixer AIF2 DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.97 { + iface MIXER + name 'AIF1 AD0L Mixer ADCL Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.98 { + iface MIXER + name 'AIF1 AD0L Mixer AIF2 DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.99 { + iface MIXER + name 'AIF1IN1R Mux' + value AIF1_DA1R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_DA1R + item.1 AIF1_DA1L + item.2 SUM_AIF1DA1L_AIF1DA1R + item.3 AVE_AIF1DA1L_AIF1DA1R + } + } + control.100 { + iface MIXER + name 'AIF1IN1L Mux' + value AIF1_DA1L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_DA1L + item.1 AIF1_DA1R + item.2 SUM_AIF1DA1L_AIF1DA1R + item.3 AVE_AIF1DA1L_AIF1DA1R + } + } + control.101 { + iface MIXER + name 'AIF1IN0R Mux' + value AIF1_DA0R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_DA0R + item.1 AIF1_DA0L + item.2 SUM_AIF1DA0L_AIF1DA0R + item.3 AVE_AIF1DA0L_AIF1DA0R + } + } + control.102 { + iface MIXER + name 'AIF1IN0L Mux' + value AIF1_DA0L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_DA0L + item.1 AIF1_DA0R + item.2 SUM_AIF1DA0L_AIF1DA0R + item.3 AVE_AIF1DA0L_AIF1DA0R + } + } + control.103 { + iface MIXER + name 'AIF1OUT1R Mux' + value AIF1_AD1R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_AD1R + item.1 AIF1_AD1L + item.2 SUM_AIF1ADC1L_AIF1ADC1R + item.3 AVE_AIF1ADC1L_AIF1ADC1R + } + } + control.104 { + iface MIXER + name 'AIF1OUT1L Mux' + value AIF1_AD1L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_AD1L + item.1 AIF1_AD1R + item.2 SUM_AIF1ADC1L_AIF1ADC1R + item.3 AVE_AIF1ADC1L_AIF1ADC1R + } + } + control.105 { + iface MIXER + name 'AIF1OUT0R Mux' + value AIF1_AD0R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_AD0R + item.1 AIF1_AD0L + item.2 SUM_AIF1AD0L_AIF1AD0R + item.3 AVE_AIF1AD0L_AIF1AD0R + } + } + control.106 { + iface MIXER + name 'AIF1OUT0L Mux' + value AIF1_AD0L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1_AD0L + item.1 AIF1_AD0R + item.2 SUM_AIF1AD0L_AIF1AD0R + item.3 AVE_AIF1AD0L_AIF1AD0R + } + } + control.107 { + iface MIXER + name 'AIF2INR Mux VIR switch aif2inr aif3' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.108 { + iface MIXER + name 'AIF2INL Mux VIR switch aif2inl aif3' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.109 { + iface MIXER + name 'AIF2INR Mux switch aif2inr aif2' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.110 { + iface MIXER + name 'AIF2INL Mux switch aif2inl aif2' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.111 { + iface MIXER + name 'External Speaker Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.112 { + iface MIXER + name 'Headphone Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.113 { + iface MIXER + name 'Earpiece Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } +} +state.sndhdmi { + control.1 { + iface MIXER + name 'hdmi audio format Function' + value pcm + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 null + item.1 pcm + item.2 AC3 + item.3 MPEG1 + item.4 MP3 + item.5 MPEG2 + item.6 AAC + item.7 DTS + item.8 ATRAC + item.9 ONE_BIT_AUDIO + item.10 DOLBY_DIGITAL_PLUS + item.11 DTS_HD + item.12 MAT + item.13 WMAPRO + } + } +} + From 180ba731c1a7f4e5df49c58d2ed5d751a29f8d42 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 12 Jul 2017 12:36:09 +0200 Subject: [PATCH 110/168] Allow to enable and disable sunxidrm --- .../40-pine64-armsoc.conf.disabled | 21 +++++++++++++++++++ .../pine64-sunxidrm.conf.disabled | 2 ++ .../usr/local/sbin/pine64_disable_sunxidrm.sh | 11 ++++++++++ .../usr/local/sbin/pine64_enable_sunxidrm.sh | 11 ++++++++++ 4 files changed, 45 insertions(+) create mode 100644 package/root/etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled create mode 100644 package/root/etc/modules-load.d/pine64-sunxidrm.conf.disabled create mode 100755 package/root/usr/local/sbin/pine64_disable_sunxidrm.sh create mode 100755 package/root/usr/local/sbin/pine64_enable_sunxidrm.sh diff --git a/package/root/etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled b/package/root/etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled new file mode 100644 index 00000000..10d424ba --- /dev/null +++ b/package/root/etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled @@ -0,0 +1,21 @@ +Section "Device" + Identifier "armsoc_sunxi" + Driver "armsoc" +# Option "Debug" "true" + Option "NoFlip" "false" +# Option "DRICard" "0" +# Option "BusID" "" +# Option "DriverName" "false" + Option "DRI2MaxBuffers" "2" + Option "InitFromFBDev" "/dev/fb0" +EndSection + +Section "Screen" + Identifier "Mali-Screen" + Device "armsoc_sunxi" + DefaultDepth 24 + DefaultBpp 32 + SubSection "RGB565" + Depth 16 + EndSubSection +EndSection diff --git a/package/root/etc/modules-load.d/pine64-sunxidrm.conf.disabled b/package/root/etc/modules-load.d/pine64-sunxidrm.conf.disabled new file mode 100644 index 00000000..a8b86cd1 --- /dev/null +++ b/package/root/etc/modules-load.d/pine64-sunxidrm.conf.disabled @@ -0,0 +1,2 @@ +disp +hdmi diff --git a/package/root/usr/local/sbin/pine64_disable_sunxidrm.sh b/package/root/usr/local/sbin/pine64_disable_sunxidrm.sh new file mode 100755 index 00000000..480b55a0 --- /dev/null +++ b/package/root/usr/local/sbin/pine64_disable_sunxidrm.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -xe + +dpkg-divert --divert /etc/modules-load.d/pine64-disp.conf --rename /etc/modules-load.d/pine64-disp.conf.disabled +dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-fbturbo.conf --rename /etc/modules-load.d/40-pine64-fbturbo.conf.disabled + +dpkg-divert --divert /etc/modules-load.d/pine64-sunxidrm.conf.disabled --rename /etc/modules-load.d/pine64-sunxidrm.conf +dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled --rename /etc/modules-load.d/40-pine64-armsoc.conf + +echo "Done. Please reboot!" diff --git a/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh b/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh new file mode 100755 index 00000000..77d94b7e --- /dev/null +++ b/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -xe + +dpkg-divert --divert /etc/modules-load.d/pine64-disp.conf.disabled --rename /etc/modules-load.d/pine64-disp.conf +dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-fbturbo.conf.disabled --rename /etc/modules-load.d/40-pine64-fbturbo.conf + +dpkg-divert --divert /etc/modules-load.d/pine64-sunxidrm.conf --rename /etc/modules-load.d/pine64-sunxidrm.conf.disabled +dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-armsoc.conf --rename /etc/modules-load.d/40-pine64-armsoc.conf.disabled + +echo "Done. Please reboot!" From 2eb62014219088428ca79d3d3cb8d57a8aed98a9 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 12 Jul 2017 17:08:33 +0200 Subject: [PATCH 111/168] Add additional repositories and libmali --- package/root/usr/local/sbin/install_desktop.sh | 2 ++ simpleimage/make_rootfs.sh | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/package/root/usr/local/sbin/install_desktop.sh b/package/root/usr/local/sbin/install_desktop.sh index a03b81a6..a02d90fc 100755 --- a/package/root/usr/local/sbin/install_desktop.sh +++ b/package/root/usr/local/sbin/install_desktop.sh @@ -27,6 +27,8 @@ fi # Default packages. PACKAGES=( xserver-xorg-video-fbturbo + xserver-xorg-video-armsoc-sunxi + libmali-sunxi-utgard0-r6p0 libvdpau-sunxi1 vdpauinfo aisleriot diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 84fea4af..33828908 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -152,7 +152,8 @@ case $DISTRO in DEBUSERPW=pine64 ADDPPACMD="apt-get -y update && \ apt-get install -y software-properties-common && \ - apt-add-repository -y ppa:longsleep/ubuntu-pine64-flavour-makers \ + apt-add-repository -y ppa:longsleep/ubuntu-pine64-flavour-makers && \ + apt-add-repository -y ppa:ayufan/pine64-ppa \ " EXTRADEBS="\ zram-config \ @@ -177,6 +178,7 @@ set -ex export DEBIAN_FRONTEND=noninteractive locale-gen en_US.UTF-8 $ADDPPACMD +curl -fsSL http://deb.ayufan.eu/orgs/ayufan-rock64/archive.key | apt-key add - apt-get -y update apt-get -y install dosfstools curl xz-utils iw rfkill wpasupplicant openssh-server alsa-utils \ nano git build-essential vim jq wget ca-certificates $EXTRADEBS @@ -191,6 +193,12 @@ apt-get clean EOF chmod +x "$DEST/second-phase" do_chroot /second-phase + cat > "$DEST/etc/apt/sources.list.d/ayufan-pine64.list" < "$DEST/etc/network/interfaces.d/eth0" < Date: Wed, 12 Jul 2017 23:20:43 +0200 Subject: [PATCH 112/168] Use with-drm variant --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 1cdacd7c..5b82ec55 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ export RELEASE_NAME ?= 0.1~dev export RELEASE ?= 1 -export LINUX_BRANCH ?= my-hacks-1.2 -export BOOT_TOOLS_BRANCH ?= master +export LINUX_BRANCH ?= my-hacks-1.2-with-drm +export BOOT_TOOLS_BRANCH ?= with-drm LINUX_LOCALVERSION ?= -ayufan-$(RELEASE) all: linux-pinebook linux-pine64 linux-sopine From 71db10c11a970a40341e47bd37f31640705ede36 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Thu, 13 Jul 2017 01:31:48 +0200 Subject: [PATCH 113/168] Fix enable/disable scripts for sunxidrm --- package/root/usr/local/sbin/pine64_disable_sunxidrm.sh | 8 ++++---- package/root/usr/local/sbin/pine64_enable_sunxidrm.sh | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package/root/usr/local/sbin/pine64_disable_sunxidrm.sh b/package/root/usr/local/sbin/pine64_disable_sunxidrm.sh index 480b55a0..36f9aef6 100755 --- a/package/root/usr/local/sbin/pine64_disable_sunxidrm.sh +++ b/package/root/usr/local/sbin/pine64_disable_sunxidrm.sh @@ -2,10 +2,10 @@ set -xe -dpkg-divert --divert /etc/modules-load.d/pine64-disp.conf --rename /etc/modules-load.d/pine64-disp.conf.disabled -dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-fbturbo.conf --rename /etc/modules-load.d/40-pine64-fbturbo.conf.disabled +dpkg-divert --remove --rename /etc/modules-load.d/pine64-disp.conf +dpkg-divert --remove --rename /etc/X11/xorg.conf.d/40-pine64-fbturbo.conf -dpkg-divert --divert /etc/modules-load.d/pine64-sunxidrm.conf.disabled --rename /etc/modules-load.d/pine64-sunxidrm.conf -dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled --rename /etc/modules-load.d/40-pine64-armsoc.conf +dpkg-divert --remove --rename /etc/modules-load.d/pine64-sunxidrm.conf.disabled +dpkg-divert --remove --rename /etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled echo "Done. Please reboot!" diff --git a/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh b/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh index 77d94b7e..8ceb6194 100755 --- a/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh +++ b/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh @@ -3,9 +3,9 @@ set -xe dpkg-divert --divert /etc/modules-load.d/pine64-disp.conf.disabled --rename /etc/modules-load.d/pine64-disp.conf -dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-fbturbo.conf.disabled --rename /etc/modules-load.d/40-pine64-fbturbo.conf +dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-fbturbo.conf.disabled --rename /etc/X11/xorg.conf.d/40-pine64-fbturbo.conf dpkg-divert --divert /etc/modules-load.d/pine64-sunxidrm.conf --rename /etc/modules-load.d/pine64-sunxidrm.conf.disabled -dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-armsoc.conf --rename /etc/modules-load.d/40-pine64-armsoc.conf.disabled +dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-armsoc.conf --rename /etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled echo "Done. Please reboot!" From 458c1cc5ffbe305d26b4a2f5068349e08899c0a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Thu, 13 Jul 2017 11:55:31 +0200 Subject: [PATCH 114/168] Load sunxidrm when requested --- package/root/etc/modules-load.d/pine64-sunxidrm.conf.disabled | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package/root/etc/modules-load.d/pine64-sunxidrm.conf.disabled b/package/root/etc/modules-load.d/pine64-sunxidrm.conf.disabled index a8b86cd1..5917becb 100644 --- a/package/root/etc/modules-load.d/pine64-sunxidrm.conf.disabled +++ b/package/root/etc/modules-load.d/pine64-sunxidrm.conf.disabled @@ -1,2 +1 @@ -disp -hdmi +sunxidrm From d0ec59e5e309a0a5380b495c23a305783216346e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Thu, 13 Jul 2017 12:02:56 +0200 Subject: [PATCH 115/168] Add glmark2-es2 and mesa-utils-extra --- package/root/usr/local/sbin/install_desktop.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package/root/usr/local/sbin/install_desktop.sh b/package/root/usr/local/sbin/install_desktop.sh index a02d90fc..af7debb0 100755 --- a/package/root/usr/local/sbin/install_desktop.sh +++ b/package/root/usr/local/sbin/install_desktop.sh @@ -29,6 +29,8 @@ PACKAGES=( xserver-xorg-video-fbturbo xserver-xorg-video-armsoc-sunxi libmali-sunxi-utgard0-r6p0 + mesa-utils-extra + glmark2-es2 libvdpau-sunxi1 vdpauinfo aisleriot From 023976fd0e763f1bf5f77625122726fc6a2f7cd9 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Thu, 13 Jul 2017 22:50:40 +0200 Subject: [PATCH 116/168] Verify if packages are installed --- package/root/usr/local/sbin/pine64_enable_sunxidrm.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh b/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh index 8ceb6194..fb1b9ce8 100755 --- a/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh +++ b/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh @@ -1,5 +1,15 @@ #!/bin/bash +if ! dpkg -l xserver-xorg-video-armsoc-sunxi &>/dev/null || ! dpkg -l libmali-sunxi &>/dev/null; then + echo "The armsoc-sunxi and libmali is not installed!" + echo "Please run this before trying again:" + echo "" + echo " apt-add-repository -y ppa:ayufan/pine64-ppa" + echo " apt-get update" + echo " apt-get install -y xserver-xorg-video-armsoc-sunxi libmali-sunxi-utgard0-r6p0" + exit 1 +fi + set -xe dpkg-divert --divert /etc/modules-load.d/pine64-disp.conf.disabled --rename /etc/modules-load.d/pine64-disp.conf From 8b30d7e99dffe892c49880563e7c8993eda26a56 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Fri, 14 Jul 2017 16:00:10 +1000 Subject: [PATCH 117/168] Audio group permission missing Without this, the pine64 user will not have audio access! --- simpleimage/make_rootfs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 33828908..67a164d8 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -187,7 +187,7 @@ apt-get -y update adduser --gecos $DEBUSER --disabled-login $DEBUSER --uid 1000 chown -R 1000:1000 /home/$DEBUSER echo "$DEBUSER:$DEBUSERPW" | chpasswd -usermod -a -G sudo,adm,input,video,plugdev $DEBUSER +usermod -a -G sudo,adm,audio,input,video,plugdev $DEBUSER apt-get -y autoremove apt-get clean EOF From 160abc0c81113fb7355946e7f63f4ce347420204 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Fri, 14 Jul 2017 20:53:37 +1000 Subject: [PATCH 118/168] Add htop, figlet. Removed some whitepace. --- simpleimage/make_rootfs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 33828908..962acff1 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -181,7 +181,7 @@ $ADDPPACMD curl -fsSL http://deb.ayufan.eu/orgs/ayufan-rock64/archive.key | apt-key add - apt-get -y update apt-get -y install dosfstools curl xz-utils iw rfkill wpasupplicant openssh-server alsa-utils \ - nano git build-essential vim jq wget ca-certificates $EXTRADEBS + nano git build-essential vim jq wget ca-certificates htop figlet $EXTRADEBS apt-get -y remove --purge ureadahead apt-get -y update adduser --gecos $DEBUSER --disabled-login $DEBUSER --uid 1000 @@ -228,7 +228,7 @@ EOF do_chroot /usr/local/sbin/install_desktop.sh mate do_chroot systemctl set-default graphical.target ;; - + i3) do_chroot /usr/local/sbin/install_desktop.sh i3 do_chroot systemctl set-default graphical.target From 4eed481a9185eb91fa4d936980944cf311037e5d Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Wed, 19 Jul 2017 10:34:37 +1000 Subject: [PATCH 119/168] Updated depreciated stage declarations Jenkins depreciated the form of the stage step that did not accept a block argument. https://jenkins.io/doc/pipeline/steps/pipeline-stage-step/#pipeline-stage-step --- Jenkinsfile | 130 +++++++++++++++++++++++++++------------------------- 1 file changed, 67 insertions(+), 63 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 184bf6b8..42349ae0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -15,76 +15,80 @@ properties([ node('docker && linux-build') { timestamps { wrap([$class: 'AnsiColorBuildWrapper', colorMapName: 'xterm']) { - stage "Environment" - checkout scm + stage('Environment') { + checkout scm - def environment = docker.build('build-environment:build-pine64-image', 'build-environment') + def environment = docker.build('build-environment:build-pine64-image', 'build-environment') - environment.inside("--privileged -u 0:0") { - withEnv([ - "USE_CCACHE=true", - "RELEASE_NAME=$VERSION", - "RELEASE=$BUILD_NUMBER" - ]) { - stage 'Prepare' - sh '''#!/bin/bash - set +xe - export CCACHE_DIR=$WORKSPACE/ccache - ccache -M 0 -F 0 - git clean -ffdx -e ccache - ''' + environment.inside("--privileged -u 0:0") { + withEnv([ + "USE_CCACHE=true", + "RELEASE_NAME=$VERSION", + "RELEASE=$BUILD_NUMBER" + ]) { + stage('Prepare') { + sh '''#!/bin/bash + set +xe + export CCACHE_DIR=$WORKSPACE/ccache + ccache -M 0 -F 0 + git clean -ffdx -e ccache + ''' + } - stage 'Build' - sh '''#!/bin/bash - set +xe - export CCACHE_DIR=$WORKSPACE/ccache - make -j4 $MAKE_TARGET - ''' - } - - withEnv([ - "VERSION=$VERSION", - "CHANGES=$CHANGES", - "GITHUB_PRERELEASE=$GITHUB_PRERELEASE", - "GITHUB_USER=$GITHUB_USER", - "GITHUB_REPO=$GITHUB_REPO" - ]) { - stage 'Release' - if (params.GITHUB_UPLOAD) { - sh '''#!/bin/bash - set -xe - shopt -s nullglob + stage('Build') { + sh '''#!/bin/bash + set +xe + export CCACHE_DIR=$WORKSPACE/ccache + make -j4 $MAKE_TARGET + ''' + } + } + + withEnv([ + "VERSION=$VERSION", + "CHANGES=$CHANGES", + "GITHUB_PRERELEASE=$GITHUB_PRERELEASE", + "GITHUB_USER=$GITHUB_USER", + "GITHUB_REPO=$GITHUB_REPO" + ]) { + stage('Release') { + if (params.GITHUB_UPLOAD) { + sh '''#!/bin/bash + set -xe + shopt -s nullglob - github-release release \ - --tag "${VERSION}" \ - --name "$VERSION: $BUILD_TAG" \ - --description "${CHANGES}\n\n${BUILD_URL}" \ - --draft + github-release release \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" \ + --draft - for file in *.xz *.deb; do - github-release upload \ - --tag "${VERSION}" \ - --name "$(basename "$file")" \ - --file "$file" & - done + for file in *.xz *.deb; do + github-release upload \ + --tag "${VERSION}" \ + --name "$(basename "$file")" \ + --file "$file" & + done - wait + wait - if [[ "$GITHUB_PRERELEASE" == "true" ]]; then - github-release edit \ - --tag "${VERSION}" \ - --name "$VERSION: $BUILD_TAG" \ - --description "${CHANGES}\n\n${BUILD_URL}" \ - --pre-release - else - github-release edit \ - --tag "${VERSION}" \ - --name "$VERSION: $BUILD_TAG" \ - --description "${CHANGES}\n\n${BUILD_URL}" - fi - ''' - } else { - echo 'Flagged as an no upload release job' + if [[ "$GITHUB_PRERELEASE" == "true" ]]; then + github-release edit \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" \ + --pre-release + else + github-release edit \ + --tag "${VERSION}" \ + --name "$VERSION: $BUILD_TAG" \ + --description "${CHANGES}\n\n${BUILD_URL}" + fi + ''' + } else { + echo 'Flagged as an no upload release job' + } + } } } } From 85cd1fb3bef12b309ce9eae24a83ca62a9d15db3 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Fri, 21 Jul 2017 13:51:22 +0200 Subject: [PATCH 120/168] Reconfigure ld.so.conf too when enabling sunxidrm --- package/root/usr/local/sbin/pine64_disable_sunxidrm.sh | 4 ++++ package/root/usr/local/sbin/pine64_enable_sunxidrm.sh | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/package/root/usr/local/sbin/pine64_disable_sunxidrm.sh b/package/root/usr/local/sbin/pine64_disable_sunxidrm.sh index 36f9aef6..681222b3 100755 --- a/package/root/usr/local/sbin/pine64_disable_sunxidrm.sh +++ b/package/root/usr/local/sbin/pine64_disable_sunxidrm.sh @@ -4,8 +4,12 @@ set -xe dpkg-divert --remove --rename /etc/modules-load.d/pine64-disp.conf dpkg-divert --remove --rename /etc/X11/xorg.conf.d/40-pine64-fbturbo.conf +dpkg-divert --remove --rename /etc/ld.so.conf.d/aarch64-linux-gnu_EGL.conf dpkg-divert --remove --rename /etc/modules-load.d/pine64-sunxidrm.conf.disabled dpkg-divert --remove --rename /etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled +dpkg-divert --remove --rename /etc/ld.so.conf.d/mali.conf.disabled + +ldconfig echo "Done. Please reboot!" diff --git a/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh b/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh index fb1b9ce8..de357c62 100755 --- a/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh +++ b/package/root/usr/local/sbin/pine64_enable_sunxidrm.sh @@ -14,8 +14,12 @@ set -xe dpkg-divert --divert /etc/modules-load.d/pine64-disp.conf.disabled --rename /etc/modules-load.d/pine64-disp.conf dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-fbturbo.conf.disabled --rename /etc/X11/xorg.conf.d/40-pine64-fbturbo.conf +dpkg-divert --divert /etc/ld.so.conf.d/aarch64-linux-gnu_EGL.conf.disabled --rename /etc/ld.so.conf.d/aarch64-linux-gnu_EGL.conf dpkg-divert --divert /etc/modules-load.d/pine64-sunxidrm.conf --rename /etc/modules-load.d/pine64-sunxidrm.conf.disabled dpkg-divert --divert /etc/X11/xorg.conf.d/40-pine64-armsoc.conf --rename /etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled +dpkg-divert --divert /etc/ld.so.conf.d/mali.conf --rename /etc/ld.so.conf.d/mali.conf.disabled + +ldconfig echo "Done. Please reboot!" From d905b70d203214b7469f304924b8af8aaf4a99a8 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Fri, 21 Jul 2017 16:09:05 +0200 Subject: [PATCH 121/168] Enable egl in chromium when mali is used --- package/root/etc/chromium-browser/customizations/pine64-egl | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 package/root/etc/chromium-browser/customizations/pine64-egl diff --git a/package/root/etc/chromium-browser/customizations/pine64-egl b/package/root/etc/chromium-browser/customizations/pine64-egl new file mode 100644 index 00000000..502fc2aa --- /dev/null +++ b/package/root/etc/chromium-browser/customizations/pine64-egl @@ -0,0 +1,6 @@ +# Options to pass to chromium-browser +if [ -d /sys/module/sunxidrm ]; then + CHROMIUM_FLAGS="$CHROMIUM_FLAGS \ + --use-gl=egl + " +fi From 1bc36e1bd66af7c23b26195b5d3f73c4d3d032e4 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Sun, 23 Jul 2017 11:15:02 +1000 Subject: [PATCH 122/168] Added diagnostics script and armbianmonitor symlink Added monitoring and diagnostics script from https://github.com/pfeerick/pine64-scripts which implements some functions from the armbianmonitor script such as monitor mode and support log uploads, as well as adding some extra file verification and package routines to help with SD/eMMC corruption issues that may arise in the future... --- package/root/usr/local/sbin/armbianmonitor | 1 + .../root/usr/local/sbin/pine64_diagnostics.sh | 475 ++++++++++++++++++ 2 files changed, 476 insertions(+) create mode 120000 package/root/usr/local/sbin/armbianmonitor create mode 100755 package/root/usr/local/sbin/pine64_diagnostics.sh diff --git a/package/root/usr/local/sbin/armbianmonitor b/package/root/usr/local/sbin/armbianmonitor new file mode 120000 index 00000000..2bbbecbe --- /dev/null +++ b/package/root/usr/local/sbin/armbianmonitor @@ -0,0 +1 @@ +pine64_diagnostics.sh \ No newline at end of file diff --git a/package/root/usr/local/sbin/pine64_diagnostics.sh b/package/root/usr/local/sbin/pine64_diagnostics.sh new file mode 100755 index 00000000..0e57b3f0 --- /dev/null +++ b/package/root/usr/local/sbin/pine64_diagnostics.sh @@ -0,0 +1,475 @@ +#!/bin/bash +# This script is designed to be a general purpose diagnostic log and testing +# script for the pine64 and related SBC boards. It heavily borrows from code +# used in the Armbian project's armbianmonitor. +# +# Written 2017 Peter Feerick and contributors, released under GPLv3 +# + +Log="/var/log/${0##*/}.log" + +Main() { + # check if stdout is a terminal... + if test -t 1; then + # see if it supports colors... + ncolors=$(tput colors) + if test -n "$ncolors" && test $ncolors -ge 8; then + BOLD="$(tput bold)" + NC='\033[0m' # No Color + LGREEN='\033[1;32m' + LRED='\e[0;91m' + fi + fi + + [ $# -eq 0 ] && (DisplayUsage ; exit 0) + + ParseOptions "$@" + + exit 0 +} # Main + +#thanks to tkaiser for the initial command for this function +VerifyFiles() { + echo -e "\n### file verification:\n" + + OUTPUT=$(dpkg --verify | egrep -v "/etc/|/boot/" | awk -F" /" '{print "/"$2}') + + if [[ -z $OUTPUT ]]; then + echo -e "${LGREEN}${BOLD}It would appear you don't have any corrupt files or packages!${NC}" + echo -e "If you still have concerns, use this scripts media test mode" + echo -e "to do a stress test of your drive/storage device.\n" + else + echo -e "${LRED}${BOLD}It appears you may have corrupt packages.${NC} To prevent avoidable issues in the" + echo -e "future (and reduce support requests on the forum) it is strongly recommended" + echo -e "you re-run this script NOW in fix (-f) mode to try and fix these packages!\n" + + echo -e "### The following suspect files or issues were detected:\n" + echo -e "${OUTPUT}\n" + fi + +} # VerifyFiles + +#thanks to tkaiser for the initial command for this function +VerifyAndFixFiles() { + echo -e "\n### file verification and file/package repair:\n" + + STAGE1=$(dpkg --verify | egrep -v "/etc/|/boot/" | awk -F" /" '{print "/"$2}') + + if [[ -z $STAGE1 ]]; then + echo -e "${LGREEN}${BOLD}It would appear you don't have any corrupt files or packages!${NC}" + echo -e "\nIf you are experiencing issues, it is probably best to back" + echo -e "up your data, and reinstall the OS from a new image.\n" + else + echo -e "### The following files were found to be corrupt:\n" + echo -e "${STAGE1}" + + echo -e "\n### Identifying which packages the corrupt files belong to... " + STAGE2=$(echo "${STAGE1}" | while read ; do dpkg -S "${REPLY}" | cut -f1 -d: ; done | sort | uniq) + + if [[ -z ${STAGE2} ]]; then + echo -e "\n\n${LRED}${BOLD}An internal error has occured... Exiting!${NC}" + exit 1 + else + echo -e "\nThe following packages will be reinstalled:" + echo -e "${STAGE2}" + + # test internet connection by poking google + nc -zw1 google.com 443 >/dev/null 2>&1 + + if [[ $? -eq 0 ]]; then + echo -e "\n### Updating software repositories before package reinstall..." + apt-get update -qq >/dev/null 2>&1 + + echo "${STAGE2}" | while read; + do + echo -e "Reinstalling package: ${REPLY}" + apt-get -q --reinstall -y install ${REPLY} >/dev/null 2>&1 + done + + echo -e "\n${LGREEN}${BOLD}Process complete.${NC} Reboot your device now and see if the issues that" + echo -e "were identified have been successfully resolved." + else + echo -e "\n${LRED}${BOLD}It appears you don't have an active internet connection!!${NC}\n" + echo -e "Repair cannot proceed without an internet connection as new/fresh versions of the" + echo -e "package files are downloaded as part of the repair process. Please resolve the" + echo -e "network/network issue and then try again. Exiting!\n" + + exit 1 + fi + fi + fi +} # VerifyAndFixFiles + +# Most of the below has been shameless copied from the Armbian project's armbianmonitor, +# because they did an amazing job at making a create diagnostic report! Specifically: + +# https://github.com/armbian/build/blob/master/packages/bsp/armbianmonitor/armbianmonitor-daemon +# https://github.com/armbian/build/blob/master/packages/bsp/armbianmonitor/armbianmonitor +# https://github.com/armbian/build/blob/master/packages/bsp/armhwinfo +GenerateLog() { + echo -e "\n### dmesg:\n" + dmesg + + echo -e "\n### meminfo:\n" + cat /proc/meminfo + + echo -e "\n### ifconfig:\n" + ifconfig + + echo -e "### partitions:\n" + cat /proc/partitions + + echo -e "\n### df:\n" + df -h + + echo -e "\n### Installed packages:\n\n$(dpkg -l | egrep "linux-|openmediavault")" + + echo -e "\n### Loaded modules:\n\n$(lsmod)" + + echo -e "\n### package version:\n" + apt-cache policy linux-pine64-package + + echo -e "\n### Kernel version:\n" + uname -a + + echo -e "\n### Current sysinfo:\n\n$(iostat -p ALL | grep -v "^loop")\n\n$(vmstat -w)\n\n$(free -h)\n\n$(dmesg | tail -n 250)" +} # GenerateLog + +CheckCard() { + if [ "$(id -u)" = "0" ]; then + echo "Checking disks is not permitted as root or through sudo. Exiting" >&2 + exit 1 + fi + + if [ ! -d "$1" ]; then + echo "\"$1\" does not exist or is no directory. Exiting" >&2 + exit 1 + fi + TargetDir="$1" + + # check requirements + which f3write >/dev/null 2>&1 || MissingTools=" f3" + which iozone >/dev/null 2>&1 || MissingTools="${MissingTools} iozone3" + if [ "X${MissingTools}" != "X" ]; then + echo "Some tools are missing, please do a \"sudo apt-get -f -y install${MissingTools}\" to install them, and try again" >&2 + exit 1 + fi + + # check provided path + Device="$(GetDevice "$1")" + set ${Device} + DeviceName=$1 + FileSystem=$2 + echo "${DeviceName}" | grep -q "mmcblk0" || echo -e "\n${BOLD}NOTE:${NC} It seems you're actually testing ${DeviceName} (${FileSystem})\n" + + TestDir="$(mktemp -d "${TargetDir}/cardtest.XXXXXX" || exit 1)" + date "+%s" >"${TestDir}/.starttime" || exit 1 + trap "rm -rf \"${TestDir}\" ; exit 0" 0 1 2 3 15 + LogFile="$(mktemp /tmp/armbianmonitor_checks_${DeviceName##*/}_${FileSystem}.XXXXXX)" + + # start actual test, create a small file for some space reserve + fallocate -l 32M "${TestDir}/empty.32m" 2>/dev/null || dd if=/dev/zero of="${TestDir}/empty.32m" bs=1M count=32 status=noxfer >/dev/null 2>&1 + ShowWarning=false + + # Start writing + echo -e "Starting to fill ${DeviceName} with test patterns, please be patient this might take a very long time" + f3write "${TestDir}" | tee "${LogFile}" + touch "${TestDir}/.starttime" || ShowDeviceWarning + rm "${TestDir}/empty.32m" + + # Start verify + echo -e "\nNow verifying the written data:" + echo "" >>"${LogFile}" + f3read "${TestDir}" | tee -a "${LogFile}" + touch "${TestDir}/.starttime" || ShowDeviceWarning + rm "${TestDir}/"*.h2w + echo -e "\nStarting iozone tests. Be patient, this can take a very long time to complete:" + echo "" >>"${LogFile}" + cd "${TestDir}" + iozone -e -I -a -s 100M -r 4k -r 512k -r 16M -i 0 -i 1 -i 2 | tee -a "${LogFile}" + touch "${TestDir}/.starttime" || ShowDeviceWarning + echo -e "\n${BOLD}The results from testing ${DeviceName} (${FileSystem}):${NC}" + egrep "Average|Data" "${LogFile}" | sort -r + echo " random random" + echo -e "reclen write rewrite read reread read write\c" + awk -F"102400 " '/102400/ {print $2}' <"${LogFile}" + + # check health + echo -e "\n${BOLD}Health summary: \c" + egrep -q "Read-only|Input/output error" "${LogFile}" && (echo -e "${LRED}${BOLD}${DeviceName} failed${NC}" ; exit 0) + grep -q "Data LOST: 0.00 Byte" "${LogFile}" && echo -e "${LGREEN}OK" || \ + (echo -e "${LRED}${BOLD}${DeviceName} failed. Replace it as soon as possible!" ; \ + grep -A3 "^Data LOST" "${LogFile}") + + # check performance + RandomSpeed=$(awk -F" " '/102400 4/ {print $7"\t"$8}' <"${LogFile}") + if [ "X${RandomSpeed}" != "X" ]; then + # Only continue when we're able to read out iozone results + set ${RandomSpeed} + RandomReadSpead=$1 + RandomWriteSpead=$2 + ReadSpeed=$(awk -F" " '/Average reading speed/ {print $4"\t"$5}' <"${LogFile}") + set ${ReadSpeed} + if [ "X$2" = "XMB/s" ]; then + RawReadSpead=$(echo "$1 * 1000" | bc -s | cut -f1 -d.) + else + RawReadSpead$(echo "$1" | cut -f1 -d.) + fi + echo -e "\n${NC}${BOLD}Performance summary:${NC}\nSequential reading speed:$(printf "%6s" $1) $2 \c" + [ ${RawReadSpead} -le 2500 ] && Exclamation="${LRED}${BOLD}way " || Exclamation="" + [ ${RawReadSpead} -le 5000 ] && Exclamation="${Exclamation}${BOLD}too " + [ ${RawReadSpead} -le 7500 ] && echo -e "(${Exclamation}low${NC})\c" + echo "${Exclamation}" | grep -q "too" && ShowWarning=true + echo -e "\n 4K random reading speed:$(printf "%6s" ${RandomReadSpead}) KB/s \c" + [ ${RandomReadSpead} -le 700 ] && Exclamation="${LRED}${BOLD}way " || Exclamation="" + [ ${RandomReadSpead} -le 1400 ] && Exclamation="${Exclamation}${BOLD}too " + [ ${RandomReadSpead} -le 2500 ] && echo -e "(${Exclamation}low${NC})\c" + echo "${Exclamation}" | grep -q "too" && ShowWarning=true + WriteSpeed=$(awk -F" " '/Average writing speed/ {print $4"\t"$5}' <"${LogFile}") + set ${WriteSpeed} + if [ "X$2" = "XMB/s" ]; then + RawWriteSpeed=$(echo "$1 * 1000" | bc -s | cut -f1 -d.) + else + RawWriteSpeed=$(echo "$1" | cut -f1 -d.) + fi + echo -e "\nSequential writing speed:$(printf "%6s" $1) $2 \c" + [ ${RawWriteSpeed} -le 2500 ] && Exclamation="${LRED}${BOLD}way " || Exclamation="" + [ ${RawWriteSpeed} -le 4000 ] && Exclamation="${Exclamation}${BOLD}too " + [ ${RawWriteSpeed} -le 6000 ] && echo -e "(${Exclamation}low${NC})\c" + echo "${Exclamation}" | grep -q "too" && ShowWarning=true + echo -e "\n 4K random writing speed:$(printf "%6s" ${RandomWriteSpead}) KB/s \c" + [ ${RandomWriteSpead} -le 400 ] && Exclamation="${LRED}${BOLD}way " || Exclamation="" + [ ${RandomWriteSpead} -le 750 ] && Exclamation="${Exclamation}${BOLD}too " + [ ${RandomWriteSpead} -lt 1000 ] && echo -e "(${Exclamation}low${NC})\c" + echo "${Exclamation}" | grep -q "too" && ShowWarning=true + if [ "X${ShowWarning}" = "Xtrue" ]; then + echo -e "\n\n${BOLD}The device you tested seems to perform too slow to be used with pine64." + echo -e "This applies especially to desktop images where slow storage is responsible" + echo -e "for sluggish behaviour. If you want to have fun with your device do NOT use" + echo -e "this media to put the OS image or the user homedirs on.${NC}\c" + fi + echo -e "\n\nTo interpret the results above correctly or search for better storage +alternatives please refer to http://oss.digirati.com.br/f3/ and also +http://www.jeffgeerling.com/blogs/jeff-geerling/raspberry-pi-microsd-card +and http://thewirecutter.com/reviews/best-microsd-card/" + fi +} # CheckCard + +GetDevice() { + TestPath=$(findmnt "$1" | awk -F" " '/\/dev\// {print $2"\t"$3}') + if [[ -z ${TestPath} && -n "${1%/*}" ]]; then + GetDevice "${1%/*}" + elif [[ -z ${TestPath} && -z "${1%/*}" ]]; then + findmnt / | awk -F" " '/\/dev\// {print $2"\t"$3}' + else + echo "${TestPath}" + fi +} # GetDevice + +UploadSupportLogs() { + #check requirements + which fping >/dev/null 2>&1 || MissingTools=" fping" + which curl >/dev/null 2>&1 || MissingTools="${MissingTools} curl" + which iostat >/dev/null 2>&1 || MissingTools="${MissingTools} sysstat" + + if [ "X${MissingTools}" != "X" ]; then + echo -e "Some tools are missing, installing: \c ${MissingTools}" >&2 + apt-get -f -qq -y install ${MissingTools} >/dev/null 2>&1 + fi + + echo -e "Generating diagnostic logs... " + GenerateLog > ${Log} + echo -e "Running file integrity checks... " + VerifyFiles >> ${Log} + + #check network connection + fping sprunge.us | grep -q alive || \ + (echo "Network/firewall problem detected. Please fix this or upload ${Log} manually." >&2 ; exit 1) + + echo -ne "\nIP obfuscated log uploaded to \c" + # obfuscate IPv4 addresses somehow but not too much + cat ${Log} | \ + sed -E 's/([0-9]{1,3}\.)([0-9]{1,3}\.)([0-9]{1,3}\.)([0-9]{1,3})/XXX.XXX.\3\4/g' \ + | curl -F 'sprunge=<-' http://sprunge.us + + echo -e "Please post the above URL in the pine64 forum where you've been asked for it." +} # UploadSupportLogs + +RequireRoot() { + if [ "$(id -u)" != "0" ]; then + echo "This function requires root privleges - run as root or through sudo. Exiting" >&2 + exit 1 + fi +} # RequireRoot + +DisplayUsage() { + echo -e "\nUsage: ${BOLD}${0##*/} [-h] [-c \$path] [-f] [-l] [-L] [-m] [-u] [-v]${NC}\n" + echo -e "############################################################################" + echo -e "\n Use ${BOLD}${0##*/}${NC} for the following tasks:\n" + echo -e " ${0##*/} ${BOLD}-c /path/to/test${NC} performs disk health/performance tests" + echo -e " ${0##*/} ${BOLD}-f${NC} tries to fix detected corrupt packages" + echo -e " ${0##*/} ${BOLD}-l${NC} outputs diagnostic logs to the screen via less" + echo -e " ${0##*/} ${BOLD}-L${NC} outputs diagnostic logs to the screen as is" + echo -e " ${0##*/} ${BOLD}-m${NC} provides simple CLI monitoring" + echo -e " ${0##*/} ${BOLD}-u${NC} tries to upload diagnostic logs for support purposes" + echo -e " ${0##*/} ${BOLD}-v${NC} tries to diagnose corrupt packages and files" + echo -e "\n############################################################################\n" +} # DisplayUsage + +ParseOptions() { + while getopts 'hHlLvVfFmMuUc:C:' c ; do + case ${c} in + h|H) + # display usage info + DisplayUsage + exit 0 + ;; + + l) + # generate logs and pipe to screen via less + GenerateLog | less + exit 0 + ;; + + L) + # generate logs and output to display + GenerateLog + exit 0 + ;; + + v|V) + # file verification mode + RequireRoot + VerifyFiles + exit 0 + ;; + + f|F) + # file verification and repair mode + RequireRoot + VerifyAndFixFiles + exit 0 + ;; + + m|M) + # monitoring mode + echo -e "Stop monitoring using [ctrl]-[c]" + MonitorMode + exit 0 + ;; + + u|U) + # upload generated logs for support + RequireRoot + UploadSupportLogs + exit 0 + ;; + + c|C) + # check card mode + CheckCard "${OPTARG}" + exit 0 + ;; + + esac + done +} # ParseOptions + +MonitorMode() { + # $1 is the time in seconds to pause between two prints, defaults to 5 seconds + # This functions prints out endlessly: + # - time/date + # - average 1m load + # - detailed CPU statistics + # - Soc temperature if available + # - PMIC temperature if available + # TODO: Format output nicely + LastUserStat=0 + LastNiceStat=0 + LastSystemStat=0 + LastIdleStat=0 + LastIOWaitStat=0 + LastIrqStat=0 + LastSoftIrqStat=0 + LastCpuStatCheck=0 + + DisplayHeader="Time CPU load %cpu %sys %usr %nice %io %irq" + CPUs=normal + [ -f /sys/devices/virtual/thermal/thermal_zone0/temp ] && DisplayHeader="${DisplayHeader} CPU" || SocTemp='n/a' + echo -e "${DisplayHeader}\c" + Counter=0 + while true ; do + let Counter++ + if [ ${Counter} -eq 15 ]; then + echo -e "\n${DisplayHeader}\c" + Counter=0 + fi + LoadAvg=$(cut -f1 -d" " /dev/null + elif [ -r /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq ]; then + CpuFreq=$(awk '{printf ("%0.0f",$1/1000); }' /dev/null + else + CpuFreq='n/a' + fi + echo -e "\n$(date "+%H:%M:%S"): $(printf "%4s" ${CpuFreq})MHz $(printf "%5s" ${LoadAvg}) $(ProcessStats)\c" + if [ "X${SocTemp}" != "Xn/a" ]; then + read SocTemp Date: Sun, 23 Jul 2017 11:36:33 +0200 Subject: [PATCH 123/168] Build additional variants: zesty/stretch/jessie --- Makefile | 124 +++++++++--------- build-pine64-image.sh | 23 ++++ .../usr/local/sbin/install_openmediavault.sh | 81 ++++++++++++ simpleimage/make_rootfs.sh | 60 ++++----- 4 files changed, 193 insertions(+), 95 deletions(-) create mode 100755 package/root/usr/local/sbin/install_openmediavault.sh diff --git a/Makefile b/Makefile index 5b82ec55..a04b681e 100644 --- a/Makefile +++ b/Makefile @@ -94,66 +94,20 @@ simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz b export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook.bin && \ bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) -xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pine64-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools - sudo bash ./build-pine64-image.sh \ - $(shell readlink -f $@) \ - $(shell readlink -f $<) \ - $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ - $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ - xenial \ - pine64 \ - minimal - -xenial-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-sopine-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools - sudo bash ./build-pine64-image.sh \ - $(shell readlink -f $@) \ - $(shell readlink -f $<) \ - $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ - $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ - xenial \ - sopine \ - minimal - -xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools - sudo bash ./build-pine64-image.sh \ - $(shell readlink -f $@) \ - $(shell readlink -f $<) \ - $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ - $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ - xenial \ - pinebook \ - minimal - -xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools - sudo bash ./build-pine64-image.sh \ - $(shell readlink -f $@) \ - $(shell readlink -f $<) \ - $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ - $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ - xenial \ - pinebook \ - mate \ - 7300 - -xenial-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools - sudo bash ./build-pine64-image.sh \ - $(shell readlink -f $@) \ - $(shell readlink -f $<) \ - $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ - $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ - xenial \ - pinebook \ - i3 - -stretch-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pinebook-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools - sudo bash ./build-pine64-image.sh \ - $(shell readlink -f $@) \ - $(shell readlink -f $<) \ - $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) \ - $(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb) \ - stretch \ - pinebook \ - i3 +BUILD_SYSTEMS := xenial zesty jessie stretch +BUILD_VARIANTS := minimal mate i3 openmediavault +BUILD_ARCHS := arm64 +BUILD_MODELS := pine64 pinebook sopine + +%-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pine64-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools + sudo bash rootfs/build-system-image.sh \ + "$(shell readlink -f $@)" \ + "$(shell readlink -f $<)" \ + "$(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz)" \ + "$(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb)" \ + "$(filter $(BUILD_SYSTEMS), $(subst -, ,$@))" \ + "$(filter $(BUILD_VARIANTS), $(subst -, ,$@))" \ + "$(filter $(BUILD_MODELS), $(subst -, ,$@))" .PHONY: kernel-tarball kernel-tarball: linux-pine64-$(RELEASE_NAME).tar.xz @@ -164,6 +118,15 @@ linux-package: linux-pine64-package-$(RELEASE_NAME).deb .PHONY: simple-image-pinebook-$(RELEASE_NAME).img simple-image-pinebook: simple-image-pinebook-$(RELEASE_NAME).img +.PHONY: zesty-minimal-pinebook +zesty-minimal-pinebook: zesty-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: xenial-mate-pinebook +zesty-mate-pinebook: zesty-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: xenial-i3-pinebook +zesty-i3-pinebook: zesty-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + .PHONY: xenial-minimal-pinebook xenial-minimal-pinebook: xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz @@ -173,23 +136,56 @@ xenial-mate-pinebook: xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE). .PHONY: xenial-i3-pinebook xenial-i3-pinebook: xenial-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +.PHONY: stretch-minimal-pine64 +stretch-minimal-pine64: stretch-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: stretch-minimal-sopine +stretch-minimal-sopine: stretch-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: stretch-minimal-pinebook +stretch-minimal-pinebook: stretch-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + .PHONY: stretch-i3-pinebook stretch-i3-pinebook: stretch-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +.PHONY: jessie-minimal-pinebook +jessie-minimal-pinebook: jessie-minimal-pinebook-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: jessie-minimal-sopine +jessie-minimal-sopine: jessie-minimal-sopine-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: jessie-minimal-pine64 +jessie-minimal-pine64: jessie-minimal-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: jessie-openmediavault-pine64 +jessie-openmediavault-pine64: jessie-openmediavault-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz + +.PHONY: zesty-pinebook +zesty-pinebook: zesty-minimal-pinebook zesty-mate-pinebook zesty-i3-pinebook + .PHONY: xenial-pinebook xenial-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook +.PHONY: stretch-pinebook +stretch-pinebook: stretch-minimal-pinebook stretch-i3-pinebook + .PHONY: linux-pinebook -linux-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook +linux-pinebook: xenial-pinebook stretch-pinebook jessie-minimal-pinebook + +.PHONY: zesty-minimal-pine64 +zesty-minimal-pine64: zesty-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: xenial-minimal-pine64 - xenial-minimal-pine64: xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +xenial-minimal-pine64: xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: linux-pine64 -linux-pine64: xenial-minimal-pine64 +linux-pine64: zesty-minimal-pine64 xenial-minimal-pine64 stretch-minimal-pine64 jessie-minimal-pine64 jessie-openmediavault-pine64 + +.PHONY: zesty-minimal-sopine +zesty-minimal-sopine: zesty-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: xenial-minimal-sopine xenial-minimal-sopine: xenial-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: linux-sopine -linux-sopine: xenial-minimal-sopine +linux-sopine: zesty-minimal-sopine xenial-minimal-sopine stretch-minimal-sopine jessie-minimal-sopine diff --git a/build-pine64-image.sh b/build-pine64-image.sh index 1c2f09fe..de9ee67e 100755 --- a/build-pine64-image.sh +++ b/build-pine64-image.sh @@ -35,6 +35,29 @@ if [ -z "$DISTRO" ]; then DISTRO="xenial" fi +case "$VARIANT" in + minimal) + SIZE=1024 + ;; + + i3) + SIZE=2048 + ;; + + mate) + SIZE=5120 + ;; + + openmediavault) + SIZE=2048 + ;; + + *) + echo "Unknown VARIANT: $VARIANT" + exit 1 + ;; +esac + SIMPLEIMAGE=$(readlink -f "$SIMPLEIMAGE") KERNELTAR=$(readlink -f "$KERNELTAR") diff --git a/package/root/usr/local/sbin/install_openmediavault.sh b/package/root/usr/local/sbin/install_openmediavault.sh new file mode 100755 index 00000000..ee7f398c --- /dev/null +++ b/package/root/usr/local/sbin/install_openmediavault.sh @@ -0,0 +1,81 @@ +#!/bin/bash + +if [[ "$(lsb_release -c -s)" != "jessie" ]]; then + echo "This script only works on Debian/Jessie" + exit 1 +fi + +set -xe + +# Based on https://github.com/armbian/build/blob/b13e92911e91e34b0b9189c704f3186a0b3788f0/scripts/customize-image.sh.template#L31 + +#Add OMV source.list and Update System +cat > /etc/apt/sources.list.d/openmediavault.list <<- EOF +# deb http://packages.openmediavault.org/public erasmus main +deb https://openmediavault.github.io/packages/ erasmus main +## Uncomment the following line to add software from the proposed repository. +# deb http://packages.openmediavault.org/public erasmus-proposed main +deb https://openmediavault.github.io/packages/ erasmus-proposed main + +## This software is not part of OpenMediaVault, but is offered by third-party +## developers as a service to OpenMediaVault users. +# deb http://packages.openmediavault.org/public erasmus partner +EOF + +# Add OMV and OMV Plugin developer keys +apt-get update -y +apt-get --yes --force-yes --allow-unauthenticated install openmediavault-keyring +apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7AA630A1EDEE7D73 + +# install debconf-utils, postfix and OMV +debconf-set-selections <<< "postfix postfix/mailname string openmediavault" +debconf-set-selections <<< "postfix postfix/main_mailer_type string 'No configuration'" +apt-get -y install \ + debconf-utils postfix + +# install openmediavault +apt-get --yes install openmediavault + +# install OMV extras, enable folder2ram, tweak some settings +FILE=$(mktemp) +wget http://omv-extras.org/openmediavault-omvextrasorg_latest_all3.deb -qO $FILE && dpkg -i $FILE && rm $FILE +/usr/sbin/omv-update + +# use folder2ram instead of log2ram with OMV +apt-get -y install openmediavault-flashmemory +sed -i -e '//,/<\/flashmemory>/ s/0/1/' \ + -e '//,/<\/ssh>/ s/0/1/' \ + -e '//,/<\/ntp>/ s/0/1/' \ + /etc/openmediavault/config.xml + +/usr/sbin/omv-mkconf flashmemory +/usr/sbin/omv-mkconf ntp + +systemctl disable log2ram +/sbin/folder2ram -enablesystemd +sed -i 's|-j /var/lib/rrdcached/journal/ ||' /etc/init.d/rrdcached + +#FIX TFTPD ipv4 +[ -f /etc/default/tftpd-hpa ] && sed -i 's/--secure/--secure --ipv4/' /etc/default/tftpd-hpa + +# init OMV +# /usr/sbin/omv-initsystem + +# some performance tuning +grep -q ondemand /etc/default/cpufrequtils && sed -i '/^exit\ 0/i \ + echo ondemand >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor \ + sleep 0.1 \ + cd /sys/devices/system/cpu \ + for i in cpufreq/ondemand cpu0/cpufreq/ondemand cpu4/cpufreq/ondemand ; do \ + if [ -d $i ]; then \ + echo 1 >${i}/io_is_busy \ + echo 25 >${i}/up_threshold \ + echo 10 >${i}/sampling_down_factor \ + fi \ + done \ + ' /etc/rc.local + +echo "* * * * * root for i in \`pgrep \"ftpd|nfsiod|smbd|afpd|cnid\"\` ; do ionice -c1 -p \$i ${XU4_HMP_Fix}; done >/dev/null 2>&1" \ + >/etc/cron.d/make_nas_processes_faster + +chmod 600 /etc/cron.d/make_nas_processes_faster diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index b5ca270e..97e7ed63 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -146,44 +146,38 @@ case $DISTRO in xenial|sid|jessie|stretch) rm "$DEST/etc/resolv.conf" cp /etc/resolv.conf "$DEST/etc/resolv.conf" - if [ "$DISTRO" = "xenial" ]; then - DEB=ubuntu - DEBUSER=pine64 - DEBUSERPW=pine64 - ADDPPACMD="apt-get -y update && \ - apt-get install -y software-properties-common && \ - apt-add-repository -y ppa:longsleep/ubuntu-pine64-flavour-makers && \ - apt-add-repository -y ppa:ayufan/pine64-ppa \ - " - EXTRADEBS="\ - zram-config \ - ubuntu-minimal \ - sunxi-disp-tool \ - " - elif [ "$DISTRO" = "sid" -o "$DISTRO" = "jessie" -o "$DISTRO" = "stretch" ]; then - DEB=debian - DEBUSER=pine64 - DEBUSERPW=pine64 - ADDPPACMD="" - EXTRADEBS="sudo" - ADDPPACMD= - DISPTOOLCMD= - else - echo "Unknown DISTRO=$DISTRO" - exit 2 - fi + DEB=ubuntu + DEBUSER=pine64 + DEBUSERPW=pine64 cat > "$DEST/second-phase" < Date: Sun, 23 Jul 2017 11:49:09 +0200 Subject: [PATCH 124/168] Add target to compress image --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index a04b681e..3abc4019 100644 --- a/Makefile +++ b/Makefile @@ -99,6 +99,9 @@ BUILD_VARIANTS := minimal mate i3 openmediavault BUILD_ARCHS := arm64 BUILD_MODELS := pine64 pinebook sopine +%-$(RELEASE_NAME)-$(RELEASE).img.xz: %-$(RELEASE_NAME)-$(RELEASE).img + pxz -f -3 $< + %-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pine64-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools sudo bash rootfs/build-system-image.sh \ "$(shell readlink -f $@)" \ From b44b55caf7fe0ef34f34ffb47796f6ff744f5f4d Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 23 Jul 2017 12:24:01 +0200 Subject: [PATCH 125/168] Fix script path --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 3abc4019..a4398bec 100644 --- a/Makefile +++ b/Makefile @@ -103,7 +103,7 @@ BUILD_MODELS := pine64 pinebook sopine pxz -f -3 $< %-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pine64-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools - sudo bash rootfs/build-system-image.sh \ + sudo bash ./build-pine64-image.sh \ "$(shell readlink -f $@)" \ "$(shell readlink -f $<)" \ "$(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz)" \ From 32bf5f2201460828c1051524ca39ed9c9c284911 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 23 Jul 2017 12:30:05 +0200 Subject: [PATCH 126/168] Pass model first, variant next --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index a4398bec..5d81d1ac 100644 --- a/Makefile +++ b/Makefile @@ -109,8 +109,8 @@ BUILD_MODELS := pine64 pinebook sopine "$(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz)" \ "$(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb)" \ "$(filter $(BUILD_SYSTEMS), $(subst -, ,$@))" \ - "$(filter $(BUILD_VARIANTS), $(subst -, ,$@))" \ - "$(filter $(BUILD_MODELS), $(subst -, ,$@))" + "$(filter $(BUILD_MODELS), $(subst -, ,$@))" \ + "$(filter $(BUILD_VARIANTS), $(subst -, ,$@))" .PHONY: kernel-tarball kernel-tarball: linux-pine64-$(RELEASE_NAME).tar.xz From ff3f708cf48ff0acffc1f630d295426a3cf7291b Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 23 Jul 2017 12:49:21 +0200 Subject: [PATCH 127/168] Install missing dirmngr --- simpleimage/make_rootfs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 97e7ed63..0408940a 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -155,7 +155,7 @@ set -ex export DEBIAN_FRONTEND=noninteractive locale-gen en_US.UTF-8 apt-get -y update -apt-get install -y software-properties-common +apt-get install -y software-properties-common dirmngr apt-add-repository -y ppa:longsleep/ubuntu-pine64-flavour-makers apt-add-repository -y ppa:ayufan/pine64-ppa if [[ "$DISTRO" == "jessie" ]]; then From ad06aeeeb8e56a51616ed868d859985efcc7063b Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 23 Jul 2017 13:20:26 +0200 Subject: [PATCH 128/168] Always use xenial, for now --- simpleimage/make_rootfs.sh | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 0408940a..c7e17dbe 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -156,20 +156,11 @@ export DEBIAN_FRONTEND=noninteractive locale-gen en_US.UTF-8 apt-get -y update apt-get install -y software-properties-common dirmngr -apt-add-repository -y ppa:longsleep/ubuntu-pine64-flavour-makers -apt-add-repository -y ppa:ayufan/pine64-ppa -if [[ "$DISTRO" == "jessie" ]]; then - REPO=xenial -elif [[ "$DISTRO" == "stretch" ]]; then - REPO=xenial -else - REPO="$DISTRO" -fi apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BF428671 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0B3C3354 -add-apt-repository "deb http://ppa.launchpad.net/longsleep/ubuntu-pine64-flavour-makers/ubuntu \$REPO main" -add-apt-repository "deb http://ppa.launchpad.net/ayufan/rock64-ppa/ubuntu \$REPO main" -curl -fsSL http://deb.ayufan.eu/orgs/ayufan-rock64/archive.key | apt-key add - +add-apt-repository "deb http://ppa.launchpad.net/longsleep/ubuntu-pine64-flavour-makers/ubuntu xenial main" +add-apt-repository "deb http://ppa.launchpad.net/ayufan/pine64-ppa/ubuntu xenial main" +curl -fsSL http://deb.ayufan.eu/orgs/ayufan-pine64/archive.key | apt-key add - apt-get -y update apt-get -y install sudo sunxi-disp-tool \ dosfstools curl xz-utils iw rfkill wpasupplicant openssh-server \ From 2c582ce4920590dd7ed4e370a2061b73add037e6 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 23 Jul 2017 13:29:13 +0200 Subject: [PATCH 129/168] Fix longsleep signing key --- simpleimage/make_rootfs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index c7e17dbe..870790b6 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -157,7 +157,7 @@ locale-gen en_US.UTF-8 apt-get -y update apt-get install -y software-properties-common dirmngr apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BF428671 -apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0B3C3354 +apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 56A3D45E add-apt-repository "deb http://ppa.launchpad.net/longsleep/ubuntu-pine64-flavour-makers/ubuntu xenial main" add-apt-repository "deb http://ppa.launchpad.net/ayufan/pine64-ppa/ubuntu xenial main" curl -fsSL http://deb.ayufan.eu/orgs/ayufan-pine64/archive.key | apt-key add - From 4c5f7d1c29eea1736d836d50181b8635e899f3d6 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 23 Jul 2017 14:30:25 +0200 Subject: [PATCH 130/168] Remove stretch-i3-pinebook --- Makefile | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 5d81d1ac..a94502a5 100644 --- a/Makefile +++ b/Makefile @@ -148,9 +148,6 @@ stretch-minimal-sopine: stretch-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEA .PHONY: stretch-minimal-pinebook stretch-minimal-pinebook: stretch-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz -.PHONY: stretch-i3-pinebook -stretch-i3-pinebook: stretch-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - .PHONY: jessie-minimal-pinebook jessie-minimal-pinebook: jessie-minimal-pinebook-$(RELEASE_NAME)-$(RELEASE).img.xz @@ -170,7 +167,7 @@ zesty-pinebook: zesty-minimal-pinebook zesty-mate-pinebook zesty-i3-pinebook xenial-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook .PHONY: stretch-pinebook -stretch-pinebook: stretch-minimal-pinebook stretch-i3-pinebook +stretch-pinebook: stretch-minimal-pinebook .PHONY: linux-pinebook linux-pinebook: xenial-pinebook stretch-pinebook jessie-minimal-pinebook From 1f4c06585c340a58c5dcb4cea47e4600926875ca Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 24 Jul 2017 20:13:15 +0200 Subject: [PATCH 131/168] Disable openmediavault build --- Makefile | 2 +- package/root/usr/local/sbin/install_openmediavault.sh | 0 2 files changed, 1 insertion(+), 1 deletion(-) mode change 100755 => 100644 package/root/usr/local/sbin/install_openmediavault.sh diff --git a/Makefile b/Makefile index a94502a5..51b37eca 100644 --- a/Makefile +++ b/Makefile @@ -179,7 +179,7 @@ zesty-minimal-pine64: zesty-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE). xenial-minimal-pine64: xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: linux-pine64 -linux-pine64: zesty-minimal-pine64 xenial-minimal-pine64 stretch-minimal-pine64 jessie-minimal-pine64 jessie-openmediavault-pine64 +linux-pine64: zesty-minimal-pine64 xenial-minimal-pine64 stretch-minimal-pine64 jessie-minimal-pine64 .PHONY: zesty-minimal-sopine zesty-minimal-sopine: zesty-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz diff --git a/package/root/usr/local/sbin/install_openmediavault.sh b/package/root/usr/local/sbin/install_openmediavault.sh old mode 100755 new mode 100644 From aadd1a0cc22de30dac617e53484f798e802dbef5 Mon Sep 17 00:00:00 2001 From: Peter Date: Fri, 28 Jul 2017 18:39:53 +1000 Subject: [PATCH 132/168] Add hostname MOTD banner (#33) * Added hostname MOTD banner * Revert figlet package dependency * Only display hostname banner if figlet found * Hide any 'figlet' not found notices Lets not show any errors when we test for figlet... * Update 05-figlet --- package/root/etc/update-motd.d/05-figlet | 5 +++++ 1 file changed, 5 insertions(+) create mode 100755 package/root/etc/update-motd.d/05-figlet diff --git a/package/root/etc/update-motd.d/05-figlet b/package/root/etc/update-motd.d/05-figlet new file mode 100755 index 00000000..263a6ccb --- /dev/null +++ b/package/root/etc/update-motd.d/05-figlet @@ -0,0 +1,5 @@ +#!/bin/sh + +test -x /usr/bin/figlet || exit 0 + +figlet $(hostname) From 3b704614551cf3add73c8c8d4cb94586ae563201 Mon Sep 17 00:00:00 2001 From: Peter Date: Fri, 28 Jul 2017 18:40:46 +1000 Subject: [PATCH 133/168] Changes based on tkaiser feedback on OMV (#31) * Changes on tkaiser feedback on OMV Added extra exclusions for verify/repair mode. Changed wording of fix/verify messages to be a bit less scary. Removed a leftover pine64 reference. Prevent colour escape making it into the uploaded support log. https://github.com/pfeerick/pine64-scripts/commit/feec9d3b6440d72c4b449d487e0ce2a46fb69f82 * Remove escape character blocking echo output --- .../root/usr/local/sbin/pine64_diagnostics.sh | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/package/root/usr/local/sbin/pine64_diagnostics.sh b/package/root/usr/local/sbin/pine64_diagnostics.sh index 0e57b3f0..3088dde9 100755 --- a/package/root/usr/local/sbin/pine64_diagnostics.sh +++ b/package/root/usr/local/sbin/pine64_diagnostics.sh @@ -7,6 +7,7 @@ # Log="/var/log/${0##*/}.log" +VerifyRepairExcludes="/etc/|/boot/|cache|getty" Main() { # check if stdout is a terminal... @@ -32,18 +33,18 @@ Main() { VerifyFiles() { echo -e "\n### file verification:\n" - OUTPUT=$(dpkg --verify | egrep -v "/etc/|/boot/" | awk -F" /" '{print "/"$2}') + OUTPUT=$(dpkg --verify | egrep -v -i "${VerifyRepairExcludes}" | awk -F" /" '{print "/"$2}') if [[ -z $OUTPUT ]]; then echo -e "${LGREEN}${BOLD}It would appear you don't have any corrupt files or packages!${NC}" echo -e "If you still have concerns, use this scripts media test mode" echo -e "to do a stress test of your drive/storage device.\n" else - echo -e "${LRED}${BOLD}It appears you may have corrupt packages.${NC} To prevent avoidable issues in the" - echo -e "future (and reduce support requests on the forum) it is strongly recommended" - echo -e "you re-run this script NOW in fix (-f) mode to try and fix these packages!\n" + echo -e "${LRED}${BOLD}It appears you *may* have corrupt packages.${NC} If you believe this to be the" + echo -e "case (and not a customisation that you or a script has applied), re-run this" + echo -e "script in fix mode to try and fix these packages.\n" - echo -e "### The following suspect files or issues were detected:\n" + echo -e "### The following changed from packaged state files were detected:\n" echo -e "${OUTPUT}\n" fi @@ -53,17 +54,17 @@ VerifyFiles() { VerifyAndFixFiles() { echo -e "\n### file verification and file/package repair:\n" - STAGE1=$(dpkg --verify | egrep -v "/etc/|/boot/" | awk -F" /" '{print "/"$2}') + STAGE1=$(dpkg --verify | egrep -v -i "${VerifyRepairExcludes}" | awk -F" /" '{print "/"$2}') if [[ -z $STAGE1 ]]; then echo -e "${LGREEN}${BOLD}It would appear you don't have any corrupt files or packages!${NC}" echo -e "\nIf you are experiencing issues, it is probably best to back" echo -e "up your data, and reinstall the OS from a new image.\n" else - echo -e "### The following files were found to be corrupt:\n" + echo -e "### The following changed from packaged state files were detected:\n" echo -e "${STAGE1}" - echo -e "\n### Identifying which packages the corrupt files belong to... " + echo -e "\n### Identifying which packages the changed files belong to... " STAGE2=$(echo "${STAGE1}" | while read ; do dpkg -S "${REPLY}" | cut -f1 -d: ; done | sort | uniq) if [[ -z ${STAGE2} ]]; then @@ -267,13 +268,19 @@ GetDevice() { } # GetDevice UploadSupportLogs() { + #prevent colour escape sequences in log + BOLD='' + NC='' + LGREEN='' + LRED='' + #check requirements which fping >/dev/null 2>&1 || MissingTools=" fping" which curl >/dev/null 2>&1 || MissingTools="${MissingTools} curl" which iostat >/dev/null 2>&1 || MissingTools="${MissingTools} sysstat" if [ "X${MissingTools}" != "X" ]; then - echo -e "Some tools are missing, installing: \c ${MissingTools}" >&2 + echo -e "Some tools are missing, installing: ${MissingTools}" >&2 apt-get -f -qq -y install ${MissingTools} >/dev/null 2>&1 fi @@ -292,7 +299,7 @@ UploadSupportLogs() { sed -E 's/([0-9]{1,3}\.)([0-9]{1,3}\.)([0-9]{1,3}\.)([0-9]{1,3})/XXX.XXX.\3\4/g' \ | curl -F 'sprunge=<-' http://sprunge.us - echo -e "Please post the above URL in the pine64 forum where you've been asked for it." + echo -e "Please post the above URL on the forum where you've been asked for it." } # UploadSupportLogs RequireRoot() { From a5b0fecd5b8560fc1751ee56a465dd53b27d0d0a Mon Sep 17 00:00:00 2001 From: Peter Date: Fri, 4 Aug 2017 18:14:43 +1000 Subject: [PATCH 134/168] Updates to diagnostic script (#37) Added get_flash_information(), exclude /var/lib/smartmontools as is routinled updated by 3rd parties, made check for pine64 and rock64 support packages, checks for iostat before using it and change log file path based on permissions. Import of folliwing commits from pfeerick/pine64-scripts: b7f82afbe0a8838c8910785ff37b9c01144054ad cceb8ab35c26cb7ff8eb5b684c10d13f3cf4fa63 65ceaf5209e838bcc74b0db86199699c657f5311 14ae540f47a6baa5e4a241a8d6752f0e3adfa865 951d920961f34d2daf680d9242219fc575569749 --- .../root/usr/local/sbin/pine64_diagnostics.sh | 44 ++++++++++++++++--- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/package/root/usr/local/sbin/pine64_diagnostics.sh b/package/root/usr/local/sbin/pine64_diagnostics.sh index 3088dde9..67ba22c4 100755 --- a/package/root/usr/local/sbin/pine64_diagnostics.sh +++ b/package/root/usr/local/sbin/pine64_diagnostics.sh @@ -6,8 +6,14 @@ # Written 2017 Peter Feerick and contributors, released under GPLv3 # -Log="/var/log/${0##*/}.log" -VerifyRepairExcludes="/etc/|/boot/|cache|getty" +#if user doesn't have permission for /var/log, write to /tmp +if [ -w /var/log ]; then + Log="/var/log/${0##*/}.log" +else + Log="/tmp/${0##*/}.log" +fi + +VerifyRepairExcludes="/etc/|/boot/|cache|getty|/var/lib/smartmontools/" Main() { # check if stdout is a terminal... @@ -127,13 +133,26 @@ GenerateLog() { echo -e "\n### Loaded modules:\n\n$(lsmod)" - echo -e "\n### package version:\n" - apt-cache policy linux-pine64-package + if [[ $(dpkg-query -W -f='${Status}' linux-pine64-package 2>/dev/null | grep -c "ok installed") == "1" ]]; then + echo -e "\n### linux-pine64-package version:\n" + apt-cache policy linux-pine64-package + fi + + if [[ $(dpkg-query -W -f='${Status}' linux-rock64-package 2>/dev/null | grep -c "ok installed") == "1" ]]; then + echo -e "\n### linux-rock64-package version:\n" + apt-cache policy linux-rock64-package + fi echo -e "\n### Kernel version:\n" uname -a - echo -e "\n### Current sysinfo:\n\n$(iostat -p ALL | grep -v "^loop")\n\n$(vmstat -w)\n\n$(free -h)\n\n$(dmesg | tail -n 250)" + echo -e "Searching for info on flash media... " + get_flash_information >>${Log} + which iostat >/dev/null 2>&1 && \ + + echo -e "\n### Current sysinfo:\n\n" + which iostat >/dev/null 2>&1 && echo -e "$(iostat -p ALL | grep -v '^loop')\n\n" + echo -e "$(vmstat -w)\n\n$(free -h)\n\n$(dmesg | tail -n 250)" } # GenerateLog CheckCard() { @@ -267,6 +286,19 @@ GetDevice() { fi } # GetDevice +get_flash_information() { + # http://www.bunniestudios.com/blog/?page_id=1022 + find /sys -name oemid | while read Device ; do + DeviceNode="${Device%/*}" + DeviceName="${DeviceNode##*/}" + echo -e "\n### ${DeviceName} info:\n" + find "${DeviceNode}" -maxdepth 1 -type f | while read ; do + NodeName="${REPLY##*/}" + echo -e "$(printf "%20s" ${NodeName}): $(cat "${DeviceNode}/${NodeName}" | tr '\n' " ")" + done + done +} # get_flash_information + UploadSupportLogs() { #prevent colour escape sequences in log BOLD='' @@ -287,7 +319,7 @@ UploadSupportLogs() { echo -e "Generating diagnostic logs... " GenerateLog > ${Log} echo -e "Running file integrity checks... " - VerifyFiles >> ${Log} + VerifyFiles >> ${Log} #check network connection fping sprunge.us | grep -q alive || \ From 33679a75baf646af575e48682f8e0620d08cc984 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Thu, 17 Aug 2017 13:09:43 +0200 Subject: [PATCH 135/168] Explicitly build simple-image --- Makefile | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 51b37eca..732ff354 100644 --- a/Makefile +++ b/Makefile @@ -118,8 +118,17 @@ kernel-tarball: linux-pine64-$(RELEASE_NAME).tar.xz .PHONY: linux-package linux-package: linux-pine64-package-$(RELEASE_NAME).deb -.PHONY: simple-image-pinebook-$(RELEASE_NAME).img -simple-image-pinebook: simple-image-pinebook-$(RELEASE_NAME).img +.PHONY: simple-image-pinebook-$(RELEASE_NAME).img.xz +simple-image-pinebook: simple-image-pinebook-$(RELEASE_NAME).img.xz + +.PHONY: simple-image-pine64-$(RELEASE_NAME).img.xz +simple-image-pine64: simple-image-pine64-$(RELEASE_NAME).img.xz + +.PHONY: simple-image-sopine-$(RELEASE_NAME).img.xz +simple-image-sopine: simple-image-sopine-$(RELEASE_NAME).img.xz + +.PHONY: simple-image +simple-image: simple-image-pinebook simple-image-pine64 simple-image-sopine .PHONY: zesty-minimal-pinebook zesty-minimal-pinebook: zesty-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz @@ -170,7 +179,7 @@ xenial-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook stretch-pinebook: stretch-minimal-pinebook .PHONY: linux-pinebook -linux-pinebook: xenial-pinebook stretch-pinebook jessie-minimal-pinebook +linux-pinebook: simple-image-pinebook xenial-pinebook stretch-pinebook jessie-minimal-pinebook .PHONY: zesty-minimal-pine64 zesty-minimal-pine64: zesty-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz @@ -179,7 +188,7 @@ zesty-minimal-pine64: zesty-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE). xenial-minimal-pine64: xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: linux-pine64 -linux-pine64: zesty-minimal-pine64 xenial-minimal-pine64 stretch-minimal-pine64 jessie-minimal-pine64 +linux-pine64: simple-image-pine64 zesty-minimal-pine64 xenial-minimal-pine64 stretch-minimal-pine64 jessie-minimal-pine64 .PHONY: zesty-minimal-sopine zesty-minimal-sopine: zesty-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz @@ -188,4 +197,4 @@ zesty-minimal-sopine: zesty-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE). xenial-minimal-sopine: xenial-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: linux-sopine -linux-sopine: zesty-minimal-sopine xenial-minimal-sopine stretch-minimal-sopine jessie-minimal-sopine +linux-sopine: simple-image-sopine zesty-minimal-sopine xenial-minimal-sopine stretch-minimal-sopine jessie-minimal-sopine From 935dad768c1de46e8137c91561e76431ecc354df Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Thu, 17 Aug 2017 13:09:54 +0200 Subject: [PATCH 136/168] Allow to install elementary desktop --- package/root/usr/local/sbin/install_desktop.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/package/root/usr/local/sbin/install_desktop.sh b/package/root/usr/local/sbin/install_desktop.sh index af7debb0..8257f69b 100755 --- a/package/root/usr/local/sbin/install_desktop.sh +++ b/package/root/usr/local/sbin/install_desktop.sh @@ -5,7 +5,7 @@ set -e DESKTOP="$1" if [ -z "$DESKTOP" ]; then - echo "Usage: $0 " + echo "Usage: $0 " exit 1 fi @@ -72,6 +72,18 @@ case $DESKTOP in ) ;; + elementary) + add-apt-repository ppa:elementary-os/stable + apt-get update + + PACKAGES+=( + elementary-theme + elementary-icon-theme + elementary-default-settings + elementary-desktop + ) + ;; + *) echo "Error: unsupported desktop environment $DESKTOP" exit 2 From e3920a0c463bb38ec4a69a378891777d894f848f Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Thu, 17 Aug 2017 13:21:16 +0200 Subject: [PATCH 137/168] Fix Makefile problem --- Makefile | 3 --- 1 file changed, 3 deletions(-) diff --git a/Makefile b/Makefile index 732ff354..bf0c3852 100644 --- a/Makefile +++ b/Makefile @@ -118,13 +118,10 @@ kernel-tarball: linux-pine64-$(RELEASE_NAME).tar.xz .PHONY: linux-package linux-package: linux-pine64-package-$(RELEASE_NAME).deb -.PHONY: simple-image-pinebook-$(RELEASE_NAME).img.xz simple-image-pinebook: simple-image-pinebook-$(RELEASE_NAME).img.xz -.PHONY: simple-image-pine64-$(RELEASE_NAME).img.xz simple-image-pine64: simple-image-pine64-$(RELEASE_NAME).img.xz -.PHONY: simple-image-sopine-$(RELEASE_NAME).img.xz simple-image-sopine: simple-image-sopine-$(RELEASE_NAME).img.xz .PHONY: simple-image From cecca624590e8a27d641550c08ef26a1ff9ebe87 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 23 Aug 2017 15:05:21 +0200 Subject: [PATCH 138/168] Use proper simple-image for different models --- Makefile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index bf0c3852..038d8a07 100644 --- a/Makefile +++ b/Makefile @@ -102,10 +102,15 @@ BUILD_MODELS := pine64 pinebook sopine %-$(RELEASE_NAME)-$(RELEASE).img.xz: %-$(RELEASE_NAME)-$(RELEASE).img pxz -f -3 $< -%-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pine64-$(RELEASE_NAME).img.xz linux-pine64-$(RELEASE_NAME).tar.xz linux-pine64-package-$(RELEASE_NAME).deb boot-tools +%-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pine64-$(RELEASE_NAME).img.xz \ + simple-image-pinebook-$(RELEASE_NAME).img.xz \ + simple-image-sopine-$(RELEASE_NAME).img.xz \ + linux-pine64-$(RELEASE_NAME).tar.xz \ + linux-pine64-package-$(RELEASE_NAME).deb \ + boot-tools sudo bash ./build-pine64-image.sh \ "$(shell readlink -f $@)" \ - "$(shell readlink -f $<)" \ + "$(shell readlink -f simple-image-$(filter $(BUILD_MODELS), $(subst -, ,$@))-$(RELEASE_NAME).img.xz)" \ "$(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz)" \ "$(shell readlink -f linux-pine64-package-$(RELEASE_NAME).deb)" \ "$(filter $(BUILD_SYSTEMS), $(subst -, ,$@))" \ From da3668267914349310a7e82c200abf5058abab9d Mon Sep 17 00:00:00 2001 From: Thomas Kaiser Date: Wed, 13 Sep 2017 20:12:50 +0200 Subject: [PATCH 139/168] Remove bogus log redirect (#48) --- package/root/usr/local/sbin/pine64_diagnostics.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/root/usr/local/sbin/pine64_diagnostics.sh b/package/root/usr/local/sbin/pine64_diagnostics.sh index 67ba22c4..45b35e1f 100755 --- a/package/root/usr/local/sbin/pine64_diagnostics.sh +++ b/package/root/usr/local/sbin/pine64_diagnostics.sh @@ -147,7 +147,7 @@ GenerateLog() { uname -a echo -e "Searching for info on flash media... " - get_flash_information >>${Log} + get_flash_information which iostat >/dev/null 2>&1 && \ echo -e "\n### Current sysinfo:\n\n" From 683a1c9d596655301a30704009f078c2f2906d05 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Thu, 14 Sep 2017 18:53:43 +0200 Subject: [PATCH 140/168] Use mmc3 branch, always --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 038d8a07..8a077613 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ export RELEASE_NAME ?= 0.1~dev export RELEASE ?= 1 -export LINUX_BRANCH ?= my-hacks-1.2-with-drm -export BOOT_TOOLS_BRANCH ?= with-drm +export LINUX_BRANCH ?= my-hacks-1.2-with-mmc3 +export BOOT_TOOLS_BRANCH ?= with-drm-mmc3 LINUX_LOCALVERSION ?= -ayufan-$(RELEASE) all: linux-pinebook linux-pine64 linux-sopine From 6f609537c13a878e14227a3783d51c22765deb05 Mon Sep 17 00:00:00 2001 From: "Su, Jun-Ming" Date: Thu, 5 Oct 2017 15:22:09 +0800 Subject: [PATCH 141/168] fix misspelled for pine64-model to pine64_model (#43) --- package/root/usr/local/sbin/pine64_model.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/root/usr/local/sbin/pine64_model.sh b/package/root/usr/local/sbin/pine64_model.sh index 08492b13..451bbca2 100755 --- a/package/root/usr/local/sbin/pine64_model.sh +++ b/package/root/usr/local/sbin/pine64_model.sh @@ -2,4 +2,4 @@ set -e -cat /etc/pine64-model +cat /etc/pine64_model From 11b4754e1c93ac140a6ce61e2c49d3d09c81d398 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sat, 7 Oct 2017 22:54:07 +0200 Subject: [PATCH 142/168] Revert back to `with-drm` regular, not mmc3 fixed --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 8a077613..fe31803c 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ export RELEASE_NAME ?= 0.1~dev export RELEASE ?= 1 -export LINUX_BRANCH ?= my-hacks-1.2-with-mmc3 -export BOOT_TOOLS_BRANCH ?= with-drm-mmc3 +export LINUX_BRANCH ?= my-hacks-1.2 +export BOOT_TOOLS_BRANCH ?= with-drm LINUX_LOCALVERSION ?= -ayufan-$(RELEASE) all: linux-pinebook linux-pine64 linux-sopine From 9da035047f087c4a50b9bc8c306f94a4ab7dd5fc Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 8 Oct 2017 10:39:24 +0200 Subject: [PATCH 143/168] Fix Dockerfile --- build-environment/Dockerfile | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/build-environment/Dockerfile b/build-environment/Dockerfile index b83115b4..c721631b 100644 --- a/build-environment/Dockerfile +++ b/build-environment/Dockerfile @@ -1,7 +1,7 @@ FROM ubuntu:xenial -RUN apt-get update -y -RUN apt-get install -y python git-core gnupg flex bison gperf build-essential \ +RUN apt-get update -y && \ + apt-get install -y python git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev-i386 \ lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \ libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \ @@ -9,9 +9,7 @@ RUN apt-get install -y python git-core gnupg flex bison gperf build-essential \ dosfstools gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ gcc-arm-linux-gnueabi g++-arm-linux-gnueabi ccache \ sudo cpio nano vim kmod kpartx wget bsdtar qemu-user-static \ - pxz ruby-dev debootstrap multistrap - -RUN apt-get install -y libssl-dev jq + pxz ruby-dev debootstrap multistrap libssl-dev jq RUN gem install fpm From f23459b0cfd7b1846e923dba9c20aabb92c4e69b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Mon, 9 Oct 2017 20:57:42 +0200 Subject: [PATCH 144/168] Use with-drm --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index fe31803c..038d8a07 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ export RELEASE_NAME ?= 0.1~dev export RELEASE ?= 1 -export LINUX_BRANCH ?= my-hacks-1.2 +export LINUX_BRANCH ?= my-hacks-1.2-with-drm export BOOT_TOOLS_BRANCH ?= with-drm LINUX_LOCALVERSION ?= -ayufan-$(RELEASE) From 9fa65d2e678a6cefc38e2f8c98dc4be1a46421a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sat, 14 Oct 2017 12:22:52 +0200 Subject: [PATCH 145/168] Install `rsync` --- simpleimage/make_rootfs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 870790b6..2cdea447 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -165,7 +165,7 @@ apt-get -y update apt-get -y install sudo sunxi-disp-tool \ dosfstools curl xz-utils iw rfkill wpasupplicant openssh-server \ alsa-utils nano git build-essential vim jq wget ca-certificates \ - htop figlet gdisk parted + htop figlet gdisk parted rsync if [[ "$DISTRO" == "xenial" || "$DISTRO" == "zesty" ]]; then apt-get -y install landscape-common fi From 27eb1c193e99cfae73385cd4250134a84040d031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Tue, 9 Oct 2018 20:25:40 +0200 Subject: [PATCH 146/168] Fix rtl8723ds_bt --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 038d8a07..9bce194b 100644 --- a/Makefile +++ b/Makefile @@ -47,7 +47,7 @@ linux-pine64-$(RELEASE_NAME).tar: linux/arch/arm64/boot/Image boot-tools kernel/ bash ./make_kernel_tarball.sh $(shell readlink -f "$@") package/rtk_bt/.git: - git clone --single-branch --depth=1 https://github.com/NextThingCo/rtl8723ds_bt package/rtk_bt + git clone --single-branch --depth=1 https://github.com/ayufan-pine64/rtl8723ds_bt package/rtk_bt package/rtk_bt/rtk_hciattach/rtk_hciattach: package/rtk_bt/.git make -C package/rtk_bt/rtk_hciattach CC="ccache aarch64-linux-gnu-gcc" From a7f8b60eeb5a4991c50149e56aab4677272cb474 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Tue, 9 Oct 2018 20:46:11 +0200 Subject: [PATCH 147/168] Update Makefile --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 9bce194b..a9c157fb 100644 --- a/Makefile +++ b/Makefile @@ -181,7 +181,7 @@ xenial-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook stretch-pinebook: stretch-minimal-pinebook .PHONY: linux-pinebook -linux-pinebook: simple-image-pinebook xenial-pinebook stretch-pinebook jessie-minimal-pinebook +linux-pinebook: simple-image-pinebook xenial-pinebook stretch-pinebook .PHONY: zesty-minimal-pine64 zesty-minimal-pine64: zesty-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz @@ -190,7 +190,7 @@ zesty-minimal-pine64: zesty-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE). xenial-minimal-pine64: xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: linux-pine64 -linux-pine64: simple-image-pine64 zesty-minimal-pine64 xenial-minimal-pine64 stretch-minimal-pine64 jessie-minimal-pine64 +linux-pine64: simple-image-pine64 xenial-minimal-pine64 stretch-minimal-pine64 .PHONY: zesty-minimal-sopine zesty-minimal-sopine: zesty-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz @@ -199,4 +199,4 @@ zesty-minimal-sopine: zesty-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE). xenial-minimal-sopine: xenial-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: linux-sopine -linux-sopine: simple-image-sopine zesty-minimal-sopine xenial-minimal-sopine stretch-minimal-sopine jessie-minimal-sopine +linux-sopine: simple-image-sopine xenial-minimal-sopine stretch-minimal-sopine From 4c9afb5deaefdc2ded6ee6da488d68e2c29155f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 24 Oct 2018 13:09:22 +0200 Subject: [PATCH 148/168] Build pinebook-1080p variant --- Makefile | 36 +++++++++++++------ .../usr/local/sbin/pine64_install_to_emmc.sh | 2 ++ .../usr/local/sbin/pine64_upgrade_android.sh | 2 ++ simpleimage/make_rootfs.sh | 2 +- simpleimage/make_simpleimage.sh | 2 +- 5 files changed, 32 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index a9c157fb..08a6f3e9 100644 --- a/Makefile +++ b/Makefile @@ -94,16 +94,23 @@ simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz b export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook.bin && \ bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) +simple-image-pinebook-1080p-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools + cd simpleimage && \ + export boot0=../boot-tools/boot/pine64/boot0-pine64-pinebook-1080p.bin && \ + export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook-1080p.bin && \ + bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) + BUILD_SYSTEMS := xenial zesty jessie stretch BUILD_VARIANTS := minimal mate i3 openmediavault BUILD_ARCHS := arm64 -BUILD_MODELS := pine64 pinebook sopine +BUILD_MODELS := pine64 pinebook pinebook-1080p sopine %-$(RELEASE_NAME)-$(RELEASE).img.xz: %-$(RELEASE_NAME)-$(RELEASE).img pxz -f -3 $< %-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pine64-$(RELEASE_NAME).img.xz \ simple-image-pinebook-$(RELEASE_NAME).img.xz \ + simple-image-pinebook-1080p-$(RELEASE_NAME).img.xz \ simple-image-sopine-$(RELEASE_NAME).img.xz \ linux-pine64-$(RELEASE_NAME).tar.xz \ linux-pine64-package-$(RELEASE_NAME).deb \ @@ -123,7 +130,8 @@ kernel-tarball: linux-pine64-$(RELEASE_NAME).tar.xz .PHONY: linux-package linux-package: linux-pine64-package-$(RELEASE_NAME).deb -simple-image-pinebook: simple-image-pinebook-$(RELEASE_NAME).img.xz +simple-image-pinebook: simple-image-pinebook-$(RELEASE_NAME).img.xz \ + simple-image-pinebook-1080p-$(RELEASE_NAME).img.xz simple-image-pine64: simple-image-pine64-$(RELEASE_NAME).img.xz @@ -133,22 +141,28 @@ simple-image-sopine: simple-image-sopine-$(RELEASE_NAME).img.xz simple-image: simple-image-pinebook simple-image-pine64 simple-image-sopine .PHONY: zesty-minimal-pinebook -zesty-minimal-pinebook: zesty-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +zesty-minimal-pinebook: zesty-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + zesty-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: xenial-mate-pinebook -zesty-mate-pinebook: zesty-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +zesty-mate-pinebook: zesty-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + zesty-mate-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: xenial-i3-pinebook -zesty-i3-pinebook: zesty-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +zesty-i3-pinebook: zesty-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + zesty-i3-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: xenial-minimal-pinebook -xenial-minimal-pinebook: xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +xenial-minimal-pinebook: xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + xenial-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: xenial-mate-pinebook -xenial-mate-pinebook: xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +xenial-mate-pinebook: xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + xenial-mate-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: xenial-i3-pinebook -xenial-i3-pinebook: xenial-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +xenial-i3-pinebook: xenial-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + xenial-i3-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: stretch-minimal-pine64 stretch-minimal-pine64: stretch-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz @@ -157,10 +171,12 @@ stretch-minimal-pine64: stretch-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEA stretch-minimal-sopine: stretch-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: stretch-minimal-pinebook -stretch-minimal-pinebook: stretch-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +stretch-minimal-pinebook: stretch-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + stretch-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: jessie-minimal-pinebook -jessie-minimal-pinebook: jessie-minimal-pinebook-$(RELEASE_NAME)-$(RELEASE).img.xz +jessie-minimal-pinebook: jessie-minimal-pinebook-$(RELEASE_NAME)-$(RELEASE).img.xz \ + jessie-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: jessie-minimal-sopine jessie-minimal-sopine: jessie-minimal-sopine-$(RELEASE_NAME)-$(RELEASE).img.xz diff --git a/package/root/usr/local/sbin/pine64_install_to_emmc.sh b/package/root/usr/local/sbin/pine64_install_to_emmc.sh index c73de04a..858b03f5 100755 --- a/package/root/usr/local/sbin/pine64_install_to_emmc.sh +++ b/package/root/usr/local/sbin/pine64_install_to_emmc.sh @@ -53,6 +53,8 @@ case "$1" in REPO="ayufan-pine64/$1" if [[ "$(cat /etc/pine64_model)" == "pinebook" ]]; then PREFIX="$1-pine-a64-pinebook-v" + elif [[ "$(cat /etc/pine64_model)" == "pinebook-1080p" ]]; then + PREFIX="$1-pine-a64-pinebook-1080p-v" elif [[ "$(cat /etc/pine64_model)" == "sopine" ]]; then PREFIX="$1-pine-a64-sopine-v" else diff --git a/package/root/usr/local/sbin/pine64_upgrade_android.sh b/package/root/usr/local/sbin/pine64_upgrade_android.sh index 5521ee62..e13f762c 100755 --- a/package/root/usr/local/sbin/pine64_upgrade_android.sh +++ b/package/root/usr/local/sbin/pine64_upgrade_android.sh @@ -35,6 +35,8 @@ fi REPO="ayufan-pine64/$2" if [[ "$(cat /etc/pine64_model)" == "pinebook" ]]; then PREFIX="$2-pine-a64-pinebook-v" +elif [[ "$(cat /etc/pine64_model)" == "pinebook-1080p" ]]; then + PREFIX="$2-pine-a64-pinebook-1080p-v" elif [[ "$(cat /etc/pine64_model)" == "sopine" ]]; then PREFIX="$2-pine-a64-sopine-v" else diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 2cdea447..0cdb4e4d 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -224,7 +224,7 @@ EOF ;; esac do_chroot systemctl enable ssh-keygen - if [ "$MODEL" = "pinebook" ]; then + if [ "$MODEL" = "pinebook" ] || [ "$MODEL" = "pinebook-1080p" ]; then do_chroot systemctl enable pinebook-headphones fi sed -i 's|After=rc.local.service|#\0|;' "$DEST/lib/systemd/system/serial-getty@.service" diff --git a/simpleimage/make_simpleimage.sh b/simpleimage/make_simpleimage.sh index 1c5da78d..4b20d33b 100755 --- a/simpleimage/make_simpleimage.sh +++ b/simpleimage/make_simpleimage.sh @@ -23,7 +23,7 @@ kernel_tarball="$3" model="$4" if [ -z "$out" ]; then - echo "Usage: $0 [disk size in MiB] [] []" + echo "Usage: $0 [disk size in MiB] [] []" exit 1 fi From ded3d189f25d5028f1afe2a0b0acb6361e2b0ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 24 Oct 2018 13:13:04 +0200 Subject: [PATCH 149/168] Leave `xenial` and `stretch` only --- Makefile | 39 +---- .../usr/local/sbin/install_openmediavault.sh | 141 ++++++++++++++---- simpleimage/make_rootfs.sh | 8 +- 3 files changed, 124 insertions(+), 64 deletions(-) diff --git a/Makefile b/Makefile index 08a6f3e9..5291042c 100644 --- a/Makefile +++ b/Makefile @@ -100,7 +100,7 @@ simple-image-pinebook-1080p-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).ta export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook-1080p.bin && \ bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) -BUILD_SYSTEMS := xenial zesty jessie stretch +BUILD_SYSTEMS := xenial stretch BUILD_VARIANTS := minimal mate i3 openmediavault BUILD_ARCHS := arm64 BUILD_MODELS := pine64 pinebook pinebook-1080p sopine @@ -140,18 +140,6 @@ simple-image-sopine: simple-image-sopine-$(RELEASE_NAME).img.xz .PHONY: simple-image simple-image: simple-image-pinebook simple-image-pine64 simple-image-sopine -.PHONY: zesty-minimal-pinebook -zesty-minimal-pinebook: zesty-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - zesty-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - -.PHONY: xenial-mate-pinebook -zesty-mate-pinebook: zesty-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - zesty-mate-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - -.PHONY: xenial-i3-pinebook -zesty-i3-pinebook: zesty-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - zesty-i3-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - .PHONY: xenial-minimal-pinebook xenial-minimal-pinebook: xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ xenial-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz @@ -174,21 +162,8 @@ stretch-minimal-sopine: stretch-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEA stretch-minimal-pinebook: stretch-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ stretch-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz -.PHONY: jessie-minimal-pinebook -jessie-minimal-pinebook: jessie-minimal-pinebook-$(RELEASE_NAME)-$(RELEASE).img.xz \ - jessie-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - -.PHONY: jessie-minimal-sopine -jessie-minimal-sopine: jessie-minimal-sopine-$(RELEASE_NAME)-$(RELEASE).img.xz - -.PHONY: jessie-minimal-pine64 -jessie-minimal-pine64: jessie-minimal-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz - -.PHONY: jessie-openmediavault-pine64 -jessie-openmediavault-pine64: jessie-openmediavault-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz - -.PHONY: zesty-pinebook -zesty-pinebook: zesty-minimal-pinebook zesty-mate-pinebook zesty-i3-pinebook +.PHONY: stretch-openmediavault-pine64 +stretch-openmediavault-pine64: stretch-openmediavault-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: xenial-pinebook xenial-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook @@ -199,20 +174,14 @@ stretch-pinebook: stretch-minimal-pinebook .PHONY: linux-pinebook linux-pinebook: simple-image-pinebook xenial-pinebook stretch-pinebook -.PHONY: zesty-minimal-pine64 -zesty-minimal-pine64: zesty-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - .PHONY: xenial-minimal-pine64 xenial-minimal-pine64: xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: linux-pine64 linux-pine64: simple-image-pine64 xenial-minimal-pine64 stretch-minimal-pine64 -.PHONY: zesty-minimal-sopine -zesty-minimal-sopine: zesty-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - .PHONY: xenial-minimal-sopine - xenial-minimal-sopine: xenial-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +xenial-minimal-sopine: xenial-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: linux-sopine linux-sopine: simple-image-sopine xenial-minimal-sopine stretch-minimal-sopine diff --git a/package/root/usr/local/sbin/install_openmediavault.sh b/package/root/usr/local/sbin/install_openmediavault.sh index ee7f398c..bf95baeb 100644 --- a/package/root/usr/local/sbin/install_openmediavault.sh +++ b/package/root/usr/local/sbin/install_openmediavault.sh @@ -1,62 +1,153 @@ #!/bin/bash -if [[ "$(lsb_release -c -s)" != "jessie" ]]; then - echo "This script only works on Debian/Jessie" - exit 1 +case "$(lsb_release -c -s)" in + jessie) + RELEASE="erasmus" + EXTRAS_URL="https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/openmediavault-omvextrasorg_latest_all3.deb" + ;; + + stretch) + RELEASE="arrakis" + EXTRAS_URL="https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/openmediavault-omvextrasorg_latest_all4.deb" + ;; + + *) + echo "This script only works on Debian/Jessie|Stretch" + exit 1 +esac + +echo "OpenMediaVault installation script" +echo "Script is based on Armbian, OMV and tkaiser work: https://github.com/armbian/build/blob/master/config/templates/customize-image.sh.template" +echo "" +echo "This script overwrites network interfaces." +echo "Make sure that you configured them in OpenMediaVault interface before rebooting." +echo "" + +if [[ -t 0 ]]; then + echo "In order to continue type YES or cancel:" + while read PROMPT; do + if [[ "$PROMPT" == "YES" ]]; then + break + fi + done fi set -xe -# Based on https://github.com/armbian/build/blob/b13e92911e91e34b0b9189c704f3186a0b3788f0/scripts/customize-image.sh.template#L31 - #Add OMV source.list and Update System cat > /etc/apt/sources.list.d/openmediavault.list <<- EOF -# deb http://packages.openmediavault.org/public erasmus main -deb https://openmediavault.github.io/packages/ erasmus main +# deb http://packages.openmediavault.org/public $RELEASE main +deb https://openmediavault.github.io/packages/ $RELEASE main ## Uncomment the following line to add software from the proposed repository. -# deb http://packages.openmediavault.org/public erasmus-proposed main -deb https://openmediavault.github.io/packages/ erasmus-proposed main +# deb http://packages.openmediavault.org/public $RELEASE-proposed main +deb https://openmediavault.github.io/packages/ $RELEASE-proposed main ## This software is not part of OpenMediaVault, but is offered by third-party ## developers as a service to OpenMediaVault users. -# deb http://packages.openmediavault.org/public erasmus partner +# deb http://packages.openmediavault.org/public $RELEASE partner EOF # Add OMV and OMV Plugin developer keys +apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 24863F0C716B980B 7E7A6C592EF35D13 7AA630A1EDEE7D73 apt-get update -y -apt-get --yes --force-yes --allow-unauthenticated install openmediavault-keyring -apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7AA630A1EDEE7D73 # install debconf-utils, postfix and OMV debconf-set-selections <<< "postfix postfix/mailname string openmediavault" debconf-set-selections <<< "postfix postfix/main_mailer_type string 'No configuration'" -apt-get -y install \ - debconf-utils postfix +apt-get -y install debconf-utils postfix # install openmediavault -apt-get --yes install openmediavault +apt-get --yes install openmediavault openmediavault-keyring # install OMV extras, enable folder2ram, tweak some settings FILE=$(mktemp) -wget http://omv-extras.org/openmediavault-omvextrasorg_latest_all3.deb -qO $FILE && dpkg -i $FILE && rm $FILE +wget "$EXTRAS_URL" -qO $FILE +dpkg -i $FILE /usr/sbin/omv-update -# use folder2ram instead of log2ram with OMV +# FIX TFTPD ipv4 +[ -f /etc/default/tftpd-hpa ] && sed -i 's/--secure/--secure --ipv4/' /etc/default/tftpd-hpa + +# load OMV helpers +. /usr/share/openmediavault/scripts/helper-functions + +# use folder2ram apt-get -y install openmediavault-flashmemory -sed -i -e '//,/<\/flashmemory>/ s/0/1/' \ - -e '//,/<\/ssh>/ s/0/1/' \ - -e '//,/<\/ntp>/ s/0/1/' \ +xmlstarlet ed -L -u "/config/services/flashmemory/enable" -v "1" ${OMV_CONFIG_FILE} + +# enable ssh, but disallow root login +xmlstarlet ed -L -u "/config/services/ssh/enable" -v "1" ${OMV_CONFIG_FILE} +xmlstarlet ed -L -u "/config/services/ssh/permitrootlogin" -v "0" ${OMV_CONFIG_FILE} + +# enable ntp +xmlstarlet ed -L -u "/config/system/time/ntp/enable" -v "1" ${OMV_CONFIG_FILE} + +# improve netatalk performance +apt-get -y install openmediavault-netatalk +AFP_Options="mimic model = Macmini" +xmlstarlet ed -L -u "/config/services/afp/extraoptions" -v "$(echo -e "${AFP_Options}")" ${OMV_CONFIG_FILE} + +# improve samba performance +SMB_Options="min receivefile size = 16384\nwrite cache size = 524288\ngetwd cache = yes\nsocket options = TCP_NODELAY IPTOS_LOWDELAY" +xmlstarlet ed -L -u "/config/services/smb/extraoptions" -v "$(echo -e "${SMB_Options}")" ${OMV_CONFIG_FILE} + +# fix timezone +xmlstarlet ed -L -u "/config/system/time/timezone" -v "UTC" ${OMV_CONFIG_FILE} + +# fix hostname +xmlstarlet ed -L -u "/config/system/network/dns/hostname" -v "$(cat /etc/hostname)" ${OMV_CONFIG_FILE} + +# disable monitoring +xmlstarlet ed -L -u "/config/system/monitoring/perfstats/enable" -v "0" ${OMV_CONFIG_FILE} + +# disable journal for rrdcached +sed -i 's|-j /var/lib/rrdcached/journal/ ||' /etc/init.d/rrdcached + +# add eth0 interface +xmlstarlet ed -L \ + -s /config/system/network/interfaces -t elem -n interface \ + -s /config/system/network/interfaces/interface -t elem -n uuid -v 4fa8fd59-e5be-40f6-a76d-be6a73ed1407 \ + -s /config/system/network/interfaces/interface -t elem -n type -v ethernet \ + -s /config/system/network/interfaces/interface -t elem -n devicename -v eth0 \ + -s /config/system/network/interfaces/interface -t elem -n method -v dhcp \ + -s /config/system/network/interfaces/interface -t elem -n method6 -v manual \ /etc/openmediavault/config.xml +# configure cpufreq +cat <>/etc/default/openmediavault +OMV_CPUFREQUTILS_GOVERNOR=ondemand +OMV_CPUFREQUTILS_MINSPEED=0 +OMV_CPUFREQUTILS_MAXSPEED=0 +EOF + +cat <>/etc/rsyslog.d/omv-armbian.conf +:msg, contains, "do ionice -c1" ~ +:msg, contains, "action " ~ +:msg, contains, "netsnmp_assert" ~ +:msg, contains, "Failed to initiate sched scan" ~ +EOF + +# update configs +/usr/sbin/omv-mkconf monit +/usr/sbin/omv-mkconf netatalk +/usr/sbin/omv-mkconf samba +/usr/sbin/omv-mkconf timezone +/usr/sbin/omv-mkconf collectd /usr/sbin/omv-mkconf flashmemory +/usr/sbin/omv-mkconf ssh /usr/sbin/omv-mkconf ntp +/usr/sbin/omv-mkconf cpufrequtils +/usr/sbin/omv-mkconf interfaces -systemctl disable log2ram -/sbin/folder2ram -enablesystemd -sed -i 's|-j /var/lib/rrdcached/journal/ ||' /etc/init.d/rrdcached +# make sure that rrdcached/php does exist +mkdir -p /var/lib/rrdcached /var/lib/php -#FIX TFTPD ipv4 -[ -f /etc/default/tftpd-hpa ] && sed -i 's/--secure/--secure --ipv4/' /etc/default/tftpd-hpa +# disable rrdcached +systemctl disable rrdcached + +/sbin/folder2ram -enablesystemd +/sbin/folder2ram -mountall || true +/sbin/folder2ram -umountall || true # init OMV # /usr/sbin/omv-initsystem diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 0cdb4e4d..fe26106a 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -83,12 +83,12 @@ case $DISTRO in ROOTFS="http://archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz" TAR_OPTIONS="-z" ;; - xenial|zesty) + xenial|bionic) version=$(curl -s https://api.github.com/repos/$RELEASE_REPO/releases/latest | jq -r ".tag_name") ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/ubuntu-${DISTRO}-${VARIANT}-${version}-${BUILD_ARCH}.tar.xz" TAR_OPTIONS="-J --strip-components=1 binary" ;; - sid|jessie|stretch) + sid|stretch) version=$(curl -s https://api.github.com/repos/$RELEASE_REPO/releases/latest | jq -r ".tag_name") ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/debian-${DISTRO}-${VARIANT}-${version}-${BUILD_ARCH}.tar.xz" TAR_OPTIONS="-J --strip-components=1 binary" @@ -143,7 +143,7 @@ case $DISTRO in echo "No longer supported" exit 1 ;; - xenial|sid|jessie|stretch) + xenial|bionic|sid|jessie|stretch) rm "$DEST/etc/resolv.conf" cp /etc/resolv.conf "$DEST/etc/resolv.conf" DEB=ubuntu @@ -166,7 +166,7 @@ apt-get -y install sudo sunxi-disp-tool \ dosfstools curl xz-utils iw rfkill wpasupplicant openssh-server \ alsa-utils nano git build-essential vim jq wget ca-certificates \ htop figlet gdisk parted rsync -if [[ "$DISTRO" == "xenial" || "$DISTRO" == "zesty" ]]; then +if [[ "$DISTRO" == "xenial" || "$DISTRO" == "bionic" ]]; then apt-get -y install landscape-common fi adduser --gecos $DEBUSER --disabled-login $DEBUSER --uid 1000 From 89a2d085cd489b19c0c46740ccd8510c644d4b0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 24 Oct 2018 14:21:03 +0200 Subject: [PATCH 150/168] Update `install_desktop.sh` to support bionic --- .../root/usr/local/sbin/install_desktop.sh | 91 +++++++++++++++---- 1 file changed, 71 insertions(+), 20 deletions(-) diff --git a/package/root/usr/local/sbin/install_desktop.sh b/package/root/usr/local/sbin/install_desktop.sh index 8257f69b..01f45919 100755 --- a/package/root/usr/local/sbin/install_desktop.sh +++ b/package/root/usr/local/sbin/install_desktop.sh @@ -5,13 +5,13 @@ set -e DESKTOP="$1" if [ -z "$DESKTOP" ]; then - echo "Usage: $0 " + echo "Usage: $0 " exit 1 fi DISTRO="" if hash apt-get 2>/dev/null; then - DISTRO=debian + DISTRO=$(lsb_release -i -s) fi if [ -z "$DISTRO" ]; then @@ -45,11 +45,42 @@ PACKAGES=( chromium-browser ) +# Additional packages +PACKAGES+=( + xserver-xorg-input-all + xfonts-base + rxvt-unicode-lite + suckless-tools + network-manager + pulseaudio +) + +case $DISTRO in + Ubuntu) + PACKAGES+=( + chromium-browser + firefox + gstreamer1.0-rockchip1 + ) + ;; + + Debian) + PACKAGES+=( + chromium + chromium-widevine + ) + ;; + + *) + echo "Error: unsupported desktop environment $DESKTOP-$DISTRO" + exit 2 + ;; +esac + # Add packages based on desktop selection. -case $DESKTOP in - mate) +case $DESKTOP-$DISTRO in + mate-Ubuntu) PACKAGES+=( - ubuntu-mate-core ubuntu-mate-desktop ubuntu-mate-lightdm-theme ubuntu-mate-wallpapers-xenial @@ -57,30 +88,50 @@ case $DESKTOP in ) ;; - i3|i3wm) + mate-Debian) + PACKAGES+=( + mate-desktop-environment + mate-desktop-environment-extras + desktop-base + lightdm + ) + ;; + + gnome-Ubuntu) + PACKAGES+=( + ubuntu-gnome-desktop + ubuntu-gnome-wallpapers-xenial + ) + ;; + + gnome-Debian) + PACKAGES+=( + gnome + desktop-base + ) + ;; + + i3-Ubuntu|i3-Debian) PACKAGES+=( - xserver-xorg-input-all - xfonts-base - slim - rxvt-unicode-lite i3 i3status i3lock - suckless-tools - network-manager - pulseaudio + slim ) ;; - elementary) - add-apt-repository ppa:elementary-os/stable - apt-get update + xfce4-Ubuntu|xfce4-Debian) + PACKAGES+=( + xfce4 + xfce4-goodies + slim + ) + ;; + lxde-Ubuntu|lxde-Debian) PACKAGES+=( - elementary-theme - elementary-icon-theme - elementary-default-settings - elementary-desktop + lxde + lxdm ) ;; From f402deef3430876d34021fb2717563b981728892 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 24 Oct 2018 14:26:31 +0200 Subject: [PATCH 151/168] Build bionic and stretch only --- Makefile | 38 +++++++++---------- .../usr/local/sbin/pine64_install_to_emmc.sh | 9 +++-- simpleimage/make_rootfs.sh | 14 ++++++- 3 files changed, 34 insertions(+), 27 deletions(-) diff --git a/Makefile b/Makefile index 5291042c..b0951353 100644 --- a/Makefile +++ b/Makefile @@ -100,8 +100,8 @@ simple-image-pinebook-1080p-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).ta export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook-1080p.bin && \ bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) -BUILD_SYSTEMS := xenial stretch -BUILD_VARIANTS := minimal mate i3 openmediavault +BUILD_SYSTEMS := bionic stretch +BUILD_VARIANTS := minimal mate i3 lxde openmediavault BUILD_ARCHS := arm64 BUILD_MODELS := pine64 pinebook pinebook-1080p sopine @@ -140,17 +140,13 @@ simple-image-sopine: simple-image-sopine-$(RELEASE_NAME).img.xz .PHONY: simple-image simple-image: simple-image-pinebook simple-image-pine64 simple-image-sopine -.PHONY: xenial-minimal-pinebook -xenial-minimal-pinebook: xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - xenial-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +.PHONY: bionic-mate-pinebook +bionic-mate-pinebook: bionic-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + bionic-mate-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz -.PHONY: xenial-mate-pinebook -xenial-mate-pinebook: xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - xenial-mate-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - -.PHONY: xenial-i3-pinebook -xenial-i3-pinebook: xenial-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - xenial-i3-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +.PHONY: bionic-lxde-pinebook +bionic-lxde-pinebook: bionic-lxde-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + bionic-lxde-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: stretch-minimal-pine64 stretch-minimal-pine64: stretch-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz @@ -165,23 +161,23 @@ stretch-minimal-pinebook: stretch-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(R .PHONY: stretch-openmediavault-pine64 stretch-openmediavault-pine64: stretch-openmediavault-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz -.PHONY: xenial-pinebook -xenial-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook +.PHONY: bionic-pinebook +bionic-pinebook: bionic-mate-pinebook bionic-lxde-pinebook .PHONY: stretch-pinebook stretch-pinebook: stretch-minimal-pinebook .PHONY: linux-pinebook -linux-pinebook: simple-image-pinebook xenial-pinebook stretch-pinebook +linux-pinebook: simple-image-pinebook bionic-pinebook stretch-pinebook -.PHONY: xenial-minimal-pine64 -xenial-minimal-pine64: xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +.PHONY: bionic-minimal-pine64 +bionic-minimal-pine64: bionic-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: linux-pine64 -linux-pine64: simple-image-pine64 xenial-minimal-pine64 stretch-minimal-pine64 +linux-pine64: simple-image-pine64 bionic-minimal-pine64 stretch-minimal-pine64 -.PHONY: xenial-minimal-sopine -xenial-minimal-sopine: xenial-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +.PHONY: bionic-minimal-sopine +bionic-minimal-sopine: bionic-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: linux-sopine -linux-sopine: simple-image-sopine xenial-minimal-sopine stretch-minimal-sopine +linux-sopine: simple-image-sopine bionic-minimal-sopine stretch-minimal-sopine diff --git a/package/root/usr/local/sbin/pine64_install_to_emmc.sh b/package/root/usr/local/sbin/pine64_install_to_emmc.sh index 858b03f5..f01650fb 100755 --- a/package/root/usr/local/sbin/pine64_install_to_emmc.sh +++ b/package/root/usr/local/sbin/pine64_install_to_emmc.sh @@ -16,9 +16,10 @@ usage() { echo "$ $0 [version]" echo "" echo "Systems:" - echo " - xenial-minimal (https://github.com/ayufan-pine64/linux-build/releases)" - echo " - xenial-mate (https://github.com/ayufan-pine64/linux-build/releases)" - echo " - xenial-i3 (https://github.com/ayufan-pine64/linux-build/releases)" + echo " - xenial|bionic-minimal (https://github.com/ayufan-pine64/linux-build/releases)" + echo " - xenial|bionic-mate (https://github.com/ayufan-pine64/linux-build/releases)" + echo " - xenial|bionic-lxde (https://github.com/ayufan-pine64/linux-build/releases)" + echo " - xenial|bionic-i3 (https://github.com/ayufan-pine64/linux-build/releases)" echo " - android-7.0 (https://github.com/ayufan-pine64/android-7.0/releases)" echo " - android-7.1 (https://github.com/ayufan-pine64/android-7.1/releases)" echo "" @@ -42,7 +43,7 @@ if [[ ! -e /dev/mmcblk1 ]]; then fi case "$1" in - xenial-minimal|xenial-mate|xenial-i3) + xenial-*|bionic-*) REPO="ayufan-pine64/linux-build" PREFIX="$1-$(cat /etc/pine64_model)-bspkernel-" SUFFIX="-[0-9]*.img.xz" diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index fe26106a..0dd58c3a 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -158,8 +158,13 @@ apt-get -y update apt-get install -y software-properties-common dirmngr apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BF428671 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 56A3D45E -add-apt-repository "deb http://ppa.launchpad.net/longsleep/ubuntu-pine64-flavour-makers/ubuntu xenial main" -add-apt-repository "deb http://ppa.launchpad.net/ayufan/pine64-ppa/ubuntu xenial main" +if [[ "$DISTRO" == "stretch" ]]; then + add-apt-repository "deb http://ppa.launchpad.net/longsleep/ubuntu-pine64-flavour-makers/ubuntu xenial main" + add-apt-repository "deb http://ppa.launchpad.net/ayufan/pine64-ppa/ubuntu xenial main" +else + add-apt-repository "deb http://ppa.launchpad.net/longsleep/ubuntu-pine64-flavour-makers/ubuntu $DISTRO main" + add-apt-repository "deb http://ppa.launchpad.net/ayufan/pine64-ppa/ubuntu $DISTRO main" +end curl -fsSL http://deb.ayufan.eu/orgs/ayufan-pine64/archive.key | apt-key add - apt-get -y update apt-get -y install sudo sunxi-disp-tool \ @@ -214,6 +219,11 @@ EOF do_chroot systemctl set-default graphical.target ;; + lxde) + do_chroot /usr/local/sbin/install_desktop.sh lxde + do_chroot systemctl set-default graphical.target + ;; + i3) do_chroot /usr/local/sbin/install_desktop.sh i3 do_chroot systemctl set-default graphical.target From c09902adb71fbd0f22a5df754b8d9a279cbef43f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 24 Oct 2018 14:47:30 +0200 Subject: [PATCH 152/168] Support lxde variant --- build-pine64-image.sh | 4 ++++ simpleimage/make_rootfs.sh | 17 ++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/build-pine64-image.sh b/build-pine64-image.sh index de9ee67e..85da57f6 100755 --- a/build-pine64-image.sh +++ b/build-pine64-image.sh @@ -48,6 +48,10 @@ case "$VARIANT" in SIZE=5120 ;; + lxde) + SIZE=3500 + ;; + openmediavault) SIZE=2048 ;; diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 0dd58c3a..26a647a4 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -86,11 +86,13 @@ case $DISTRO in xenial|bionic) version=$(curl -s https://api.github.com/repos/$RELEASE_REPO/releases/latest | jq -r ".tag_name") ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/ubuntu-${DISTRO}-${VARIANT}-${version}-${BUILD_ARCH}.tar.xz" + FALLBACK_ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/ubuntu-${DISTRO}-minimal-${version}-${BUILD_ARCH}.tar.xz" TAR_OPTIONS="-J --strip-components=1 binary" ;; sid|stretch) version=$(curl -s https://api.github.com/repos/$RELEASE_REPO/releases/latest | jq -r ".tag_name") ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/debian-${DISTRO}-${VARIANT}-${version}-${BUILD_ARCH}.tar.xz" + FALLBACK_ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/debian-${DISTRO}-minimal-${version}-${BUILD_ARCH}.tar.xz" TAR_OPTIONS="-J --strip-components=1 binary" ;; *) @@ -99,13 +101,19 @@ case $DISTRO in ;; esac -mkdir -p $BUILD -TARBALL="$TEMP/$(basename $ROOTFS)" +CACHE_ROOT="${CACHE_ROOT:-tmp}" +mkdir -p "$CACHE_ROOT" +TARBALL="${CACHE_ROOT}/$(basename $ROOTFS)" -mkdir -p "$BUILD" if [ ! -e "$TARBALL" ]; then echo "Downloading $DISTRO rootfs tarball ..." - wget -O "$TARBALL" "$ROOTFS" + pushd "$CACHE_ROOT" + if ! flock "$(basename "$ROOTFS").lock" wget -c "$ROOTFS"; then + TARBALL="${CACHE_ROOT}/$(basename "$FALLBACK_ROOTFS")" + echo "Downloading fallback $DISTRO rootfs tarball ..." + flock "$(basename "$FALLBACK_ROOTFS").lock" wget -c "$FALLBACK_ROOTFS" + fi + popd fi # Extract with BSD tar @@ -113,7 +121,6 @@ echo -n "Extracting ... " set -x tar -xf "$TARBALL" -C "$DEST" $TAR_OPTIONS echo "OK" -rm -f "$TARBALL" # Add qemu emulation. cp /usr/bin/qemu-aarch64-static "$DEST/usr/bin" From d01e7ba5189d0d6376eb9f92771c8efbaab60367 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 24 Oct 2018 16:23:21 +0200 Subject: [PATCH 153/168] Support bionic --- .gitignore | 4 ++- Makefile | 8 +++--- build-pine64-image.sh | 2 +- .../root/usr/local/sbin/install_desktop.sh | 2 -- simpleimage/make_rootfs.sh | 5 ++-- simpleimage/make_simpleimage.sh | 25 ++++++++----------- 6 files changed, 20 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index af6a62e6..ddae5330 100644 --- a/.gitignore +++ b/.gitignore @@ -28,4 +28,6 @@ /snappy/gadget/boot-assets /boot-tools/ /*.deb - +/*.xz +/*.img +tmp/ diff --git a/Makefile b/Makefile index b0951353..d92df883 100644 --- a/Makefile +++ b/Makefile @@ -80,25 +80,25 @@ simple-image-pine64-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boo cd simpleimage && \ export boot0=../boot-tools/boot/pine64/boot0-pine64-plus.bin && \ export uboot=../boot-tools/boot/pine64/u-boot-pine64-plus.bin && \ - bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) + bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) pine64-plus simple-image-sopine-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools cd simpleimage && \ export boot0=../boot-tools/boot/pine64/boot0-pine64-sopine.bin && \ export uboot=../boot-tools/boot/pine64/u-boot-pine64-sopine.bin && \ - bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) + bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) pine64-sopine simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools cd simpleimage && \ export boot0=../boot-tools/boot/pine64/boot0-pine64-pinebook.bin && \ export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook.bin && \ - bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) + bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) pine64-pinebook simple-image-pinebook-1080p-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools cd simpleimage && \ export boot0=../boot-tools/boot/pine64/boot0-pine64-pinebook-1080p.bin && \ export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook-1080p.bin && \ - bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) + bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) pine64-pinebook-1080p BUILD_SYSTEMS := bionic stretch BUILD_VARIANTS := minimal mate i3 lxde openmediavault diff --git a/build-pine64-image.sh b/build-pine64-image.sh index 85da57f6..6dd69b8d 100755 --- a/build-pine64-image.sh +++ b/build-pine64-image.sh @@ -111,7 +111,7 @@ mount /dev/mapper/${DEVICENAME}p1 "$TEMP/boot" mount /dev/mapper/${DEVICENAME}p2 "$TEMP/rootfs" sleep 2 -(cd simpleimage && sh ./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$PACKAGEDEB" "$DISTRO" "$TEMP/boot" "$MODEL" "$VARIANT") +(cd simpleimage && ./make_rootfs.sh "$TEMP/rootfs" "$KERNELTAR" "$PACKAGEDEB" "$DISTRO" "$TEMP/boot" "$MODEL" "$VARIANT") mv -v "$TEMP/$IMAGE" "$OUT_IMAGE" diff --git a/package/root/usr/local/sbin/install_desktop.sh b/package/root/usr/local/sbin/install_desktop.sh index 01f45919..2c7bca5c 100755 --- a/package/root/usr/local/sbin/install_desktop.sh +++ b/package/root/usr/local/sbin/install_desktop.sh @@ -35,7 +35,6 @@ PACKAGES=( vdpauinfo aisleriot geany - gnomine gnome-sudoku mplayer scratch @@ -60,7 +59,6 @@ case $DISTRO in PACKAGES+=( chromium-browser firefox - gstreamer1.0-rockchip1 ) ;; diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 26a647a4..dc66b07d 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -157,7 +157,7 @@ case $DISTRO in DEBUSER=pine64 DEBUSERPW=pine64 cat > "$DEST/second-phase" <> $temp/boot/uEnv.txt + fi mcopy -sm -i ${out}1 ${temp}/boot/* :: elif [ -e "${kernel}/pine64/Image" -a -e "${kernel}/pine64/sun50i-a64-pine64-plus.dtb" ]; then + cp ${kernel}/uEnv.txt ${temp}/ + if [[ -n "$model" ]]; then + echo "pine64_model=$model" >> ${temp}/uEnv.txt + fi mcopy -sm -i ${out}1 ${kernel}/pine64 :: mcopy -m -i ${out}1 ${kernel}/initrd.img :: || true - mcopy -m -i ${out}1 ${kernel}/uEnv.txt :: || true + mcopy -m -i ${out}1 ${temp}/uEnv.txt :: || true fi dd if=${out}1 conv=notrunc oflag=append bs=1M seek=$((part_position/1024)) of="$out" rm -f ${out}1 From b7e4caf4b62d178873568517913ff75515e8f21a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 24 Oct 2018 17:18:36 +0200 Subject: [PATCH 154/168] Replace to pinebook1080p --- Makefile | 20 +++++++++---------- .../usr/local/sbin/pine64_install_to_emmc.sh | 4 ++-- .../usr/local/sbin/pine64_upgrade_android.sh | 4 ++-- simpleimage/make_rootfs.sh | 5 ++++- simpleimage/make_simpleimage.sh | 2 +- 5 files changed, 19 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index d92df883..6fabf208 100644 --- a/Makefile +++ b/Makefile @@ -94,23 +94,23 @@ simple-image-pinebook-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz b export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook.bin && \ bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) pine64-pinebook -simple-image-pinebook-1080p-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools +simple-image-pinebook1080p-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).tar.xz boot-tools cd simpleimage && \ - export boot0=../boot-tools/boot/pine64/boot0-pine64-pinebook-1080p.bin && \ - export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook-1080p.bin && \ - bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) pine64-pinebook-1080p + export boot0=../boot-tools/boot/pine64/boot0-pine64-pinebook1080p.bin && \ + export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook1080p.bin && \ + bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) pine64-pinebook1080p BUILD_SYSTEMS := bionic stretch BUILD_VARIANTS := minimal mate i3 lxde openmediavault BUILD_ARCHS := arm64 -BUILD_MODELS := pine64 pinebook pinebook-1080p sopine +BUILD_MODELS := pine64 pinebook pinebook1080p sopine %-$(RELEASE_NAME)-$(RELEASE).img.xz: %-$(RELEASE_NAME)-$(RELEASE).img pxz -f -3 $< %-$(RELEASE_NAME)-$(RELEASE).img: simple-image-pine64-$(RELEASE_NAME).img.xz \ simple-image-pinebook-$(RELEASE_NAME).img.xz \ - simple-image-pinebook-1080p-$(RELEASE_NAME).img.xz \ + simple-image-pinebook1080p-$(RELEASE_NAME).img.xz \ simple-image-sopine-$(RELEASE_NAME).img.xz \ linux-pine64-$(RELEASE_NAME).tar.xz \ linux-pine64-package-$(RELEASE_NAME).deb \ @@ -131,7 +131,7 @@ kernel-tarball: linux-pine64-$(RELEASE_NAME).tar.xz linux-package: linux-pine64-package-$(RELEASE_NAME).deb simple-image-pinebook: simple-image-pinebook-$(RELEASE_NAME).img.xz \ - simple-image-pinebook-1080p-$(RELEASE_NAME).img.xz + simple-image-pinebook1080p-$(RELEASE_NAME).img.xz simple-image-pine64: simple-image-pine64-$(RELEASE_NAME).img.xz @@ -142,11 +142,11 @@ simple-image: simple-image-pinebook simple-image-pine64 simple-image-sopine .PHONY: bionic-mate-pinebook bionic-mate-pinebook: bionic-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - bionic-mate-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + bionic-mate-pinebook1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: bionic-lxde-pinebook bionic-lxde-pinebook: bionic-lxde-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - bionic-lxde-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + bionic-lxde-pinebook1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: stretch-minimal-pine64 stretch-minimal-pine64: stretch-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz @@ -156,7 +156,7 @@ stretch-minimal-sopine: stretch-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEA .PHONY: stretch-minimal-pinebook stretch-minimal-pinebook: stretch-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - stretch-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz + stretch-minimal-pinebook1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: stretch-openmediavault-pine64 stretch-openmediavault-pine64: stretch-openmediavault-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz diff --git a/package/root/usr/local/sbin/pine64_install_to_emmc.sh b/package/root/usr/local/sbin/pine64_install_to_emmc.sh index f01650fb..88372590 100755 --- a/package/root/usr/local/sbin/pine64_install_to_emmc.sh +++ b/package/root/usr/local/sbin/pine64_install_to_emmc.sh @@ -54,8 +54,8 @@ case "$1" in REPO="ayufan-pine64/$1" if [[ "$(cat /etc/pine64_model)" == "pinebook" ]]; then PREFIX="$1-pine-a64-pinebook-v" - elif [[ "$(cat /etc/pine64_model)" == "pinebook-1080p" ]]; then - PREFIX="$1-pine-a64-pinebook-1080p-v" + elif [[ "$(cat /etc/pine64_model)" == "pinebook1080p" ]]; then + PREFIX="$1-pine-a64-pinebook1080p-v" elif [[ "$(cat /etc/pine64_model)" == "sopine" ]]; then PREFIX="$1-pine-a64-sopine-v" else diff --git a/package/root/usr/local/sbin/pine64_upgrade_android.sh b/package/root/usr/local/sbin/pine64_upgrade_android.sh index e13f762c..e3011d2d 100755 --- a/package/root/usr/local/sbin/pine64_upgrade_android.sh +++ b/package/root/usr/local/sbin/pine64_upgrade_android.sh @@ -35,8 +35,8 @@ fi REPO="ayufan-pine64/$2" if [[ "$(cat /etc/pine64_model)" == "pinebook" ]]; then PREFIX="$2-pine-a64-pinebook-v" -elif [[ "$(cat /etc/pine64_model)" == "pinebook-1080p" ]]; then - PREFIX="$2-pine-a64-pinebook-1080p-v" +elif [[ "$(cat /etc/pine64_model)" == "pinebook1080p" ]]; then + PREFIX="$2-pine-a64-pinebook1080p-v" elif [[ "$(cat /etc/pine64_model)" == "sopine" ]]; then PREFIX="$2-pine-a64-sopine-v" else diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index dc66b07d..c9622b69 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -240,7 +240,7 @@ EOF ;; esac do_chroot systemctl enable ssh-keygen - if [ "$MODEL" = "pinebook" ] || [ "$MODEL" = "pinebook-1080p" ]; then + if [ "$MODEL" = "pinebook" ] || [ "$MODEL" = "pinebook1080p" ]; then do_chroot systemctl enable pinebook-headphones fi sed -i 's|After=rc.local.service|#\0|;' "$DEST/lib/systemd/system/serial-getty@.service" @@ -296,6 +296,9 @@ elif [ -n "$LINUX" -a "$LINUX" != "-" ]; then rm -f "$BOOT/uEnv.txt" cp -RLp $TEMP/kernel/boot/* "$BOOT/" mv "$BOOT/uEnv.txt.in" "$BOOT/uEnv.txt" + if [[ "$model" == "pinebook" ]] || [[ "$model" == "pinebook1080p" ]]; then + echo "pine64_model=$model" >> "$BOOT/uEnv.txt" + fi fi cp -RLp $TEMP/kernel/lib/* "$DEST/lib/" 2>/dev/null || true cp -RLp $TEMP/kernel/usr/* "$DEST/usr/" diff --git a/simpleimage/make_simpleimage.sh b/simpleimage/make_simpleimage.sh index ba379fa4..b8e00bba 100755 --- a/simpleimage/make_simpleimage.sh +++ b/simpleimage/make_simpleimage.sh @@ -23,7 +23,7 @@ kernel_tarball="$3" model="$4" if [ -z "$out" ]; then - echo "Usage: $0 [disk size in MiB] [] []" + echo "Usage: $0 [disk size in MiB] [] []" exit 1 fi From 11512a1d523e651e62eeee3b9c948cce0c9caf91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 24 Oct 2018 21:29:06 +0200 Subject: [PATCH 155/168] Compile only LXDE for Pinebook --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6fabf208..af191bf1 100644 --- a/Makefile +++ b/Makefile @@ -162,7 +162,7 @@ stretch-minimal-pinebook: stretch-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(R stretch-openmediavault-pine64: stretch-openmediavault-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: bionic-pinebook -bionic-pinebook: bionic-mate-pinebook bionic-lxde-pinebook +bionic-pinebook: bionic-lxde-pinebook .PHONY: stretch-pinebook stretch-pinebook: stretch-minimal-pinebook From 0b6c476b4e4f3d465af0916b87576e79c032697e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 24 Oct 2018 21:30:04 +0200 Subject: [PATCH 156/168] Do not inject `pine64_model` into `uEnv.txt` --- simpleimage/make_rootfs.sh | 3 --- simpleimage/make_simpleimage.sh | 9 +-------- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index c9622b69..8f4a80b9 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -296,9 +296,6 @@ elif [ -n "$LINUX" -a "$LINUX" != "-" ]; then rm -f "$BOOT/uEnv.txt" cp -RLp $TEMP/kernel/boot/* "$BOOT/" mv "$BOOT/uEnv.txt.in" "$BOOT/uEnv.txt" - if [[ "$model" == "pinebook" ]] || [[ "$model" == "pinebook1080p" ]]; then - echo "pine64_model=$model" >> "$BOOT/uEnv.txt" - fi fi cp -RLp $TEMP/kernel/lib/* "$DEST/lib/" 2>/dev/null || true cp -RLp $TEMP/kernel/usr/* "$DEST/usr/" diff --git a/simpleimage/make_simpleimage.sh b/simpleimage/make_simpleimage.sh index b8e00bba..50a6bd37 100755 --- a/simpleimage/make_simpleimage.sh +++ b/simpleimage/make_simpleimage.sh @@ -77,18 +77,11 @@ if [ -n "$kernel_tarball" ]; then echo "Using Kernel from $kernel_tarball ..." tar -C $temp -xJf "$kernel_tarball" mv $temp/boot/uEnv.txt.in $temp/boot/uEnv.txt - if [[ -n "$model" ]]; then - echo "pine64_model=$model" >> $temp/boot/uEnv.txt - fi mcopy -sm -i ${out}1 ${temp}/boot/* :: elif [ -e "${kernel}/pine64/Image" -a -e "${kernel}/pine64/sun50i-a64-pine64-plus.dtb" ]; then - cp ${kernel}/uEnv.txt ${temp}/ - if [[ -n "$model" ]]; then - echo "pine64_model=$model" >> ${temp}/uEnv.txt - fi mcopy -sm -i ${out}1 ${kernel}/pine64 :: mcopy -m -i ${out}1 ${kernel}/initrd.img :: || true - mcopy -m -i ${out}1 ${temp}/uEnv.txt :: || true + mcopy -m -i ${out}1 ${kernel}/uEnv.txt :: || true fi dd if=${out}1 conv=notrunc oflag=append bs=1M seek=$((part_position/1024)) of="$out" rm -f ${out}1 From 12b4cc06855b933c4ab0f860352f3171b7a8b6d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Thu, 25 Oct 2018 13:03:40 +0200 Subject: [PATCH 157/168] Build xenial mate --- Makefile | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index af191bf1..d1d6dfd2 100644 --- a/Makefile +++ b/Makefile @@ -16,8 +16,8 @@ linux/.config: linux/.git touch linux/.config linux/arch/arm64/boot/Image: linux/.config - make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 LOCALVERSION=$(LINUX_LOCALVERSION) Image - make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j4 LOCALVERSION=$(LINUX_LOCALVERSION) modules + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j$(shell nproc) LOCALVERSION=$(LINUX_LOCALVERSION) Image + make -C linux ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" -j$(shell nproc) LOCALVERSION=$(LINUX_LOCALVERSION) modules make -C linux LOCALVERSION=$(LINUX_LOCALVERSION) M=modules/gpu/mali400/kernel_mode/driver/src/devicedrv/mali \ ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" \ CONFIG_MALI400=m CONFIG_MALI450=y CONFIG_MALI400_PROFILING=y \ @@ -140,9 +140,9 @@ simple-image-sopine: simple-image-sopine-$(RELEASE_NAME).img.xz .PHONY: simple-image simple-image: simple-image-pinebook simple-image-pine64 simple-image-sopine -.PHONY: bionic-mate-pinebook -bionic-mate-pinebook: bionic-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - bionic-mate-pinebook1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +.PHONY: xenial-mate-pinebook +xenial-mate-pinebook: xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + xenial-mate-pinebook1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: bionic-lxde-pinebook bionic-lxde-pinebook: bionic-lxde-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ @@ -161,6 +161,9 @@ stretch-minimal-pinebook: stretch-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(R .PHONY: stretch-openmediavault-pine64 stretch-openmediavault-pine64: stretch-openmediavault-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz +.PHONY: xenial-pinebook +xenial-pinebook: xenial-mate-pinebook + .PHONY: bionic-pinebook bionic-pinebook: bionic-lxde-pinebook @@ -168,7 +171,7 @@ bionic-pinebook: bionic-lxde-pinebook stretch-pinebook: stretch-minimal-pinebook .PHONY: linux-pinebook -linux-pinebook: simple-image-pinebook bionic-pinebook stretch-pinebook +linux-pinebook: simple-image-pinebook bionic-pinebook xenial-pinebook stretch-pinebook .PHONY: bionic-minimal-pine64 bionic-minimal-pine64: bionic-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz @@ -181,3 +184,8 @@ bionic-minimal-sopine: bionic-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE .PHONY: linux-sopine linux-sopine: simple-image-sopine bionic-minimal-sopine stretch-minimal-sopine + +.PHONY: shell +shell: + @docker build -t build-environment:build-pine64-image build-environment/ + @docker run --rm -it -v $(CURDIR):$(CURDIR) -w $(CURDIR) --privileged build-environment:build-pine64-image From 8d5d017c03117862c670d3f07c416852641efa86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sat, 27 Oct 2018 11:08:15 +0200 Subject: [PATCH 158/168] Fix `resolv.conf` --- simpleimage/make_rootfs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 8f4a80b9..ab84e4a6 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -151,7 +151,7 @@ case $DISTRO in exit 1 ;; xenial|bionic|sid|jessie|stretch) - rm "$DEST/etc/resolv.conf" + mv "$DEST/etc/resolv.conf" "$DEST/etc/resolv.conf.bak" cp /etc/resolv.conf "$DEST/etc/resolv.conf" DEB=ubuntu DEBUSER=pine64 @@ -247,7 +247,7 @@ EOF rm -f "$DEST/second-phase" rm -f "$DEST/etc/resolv.conf" rm -f "$DEST"/etc/ssh/ssh_host_* - do_chroot ln -s /run/resolvconf/resolv.conf /etc/resolv.conf + mv "$DEST/etc/resolv.conf.bak" "$DEST/etc/resolv.conf" do_chroot apt-get -y autoremove do_chroot apt-get clean ;; From e722c242e58030931c25182bfbe663edaf0b9272 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sat, 27 Oct 2018 11:08:47 +0200 Subject: [PATCH 159/168] Enable pine64 sunxidrm by default --- simpleimage/make_rootfs.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index ab84e4a6..d3f936b3 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -250,6 +250,7 @@ EOF mv "$DEST/etc/resolv.conf.bak" "$DEST/etc/resolv.conf" do_chroot apt-get -y autoremove do_chroot apt-get clean + do_chroot pine64_enable_sunxidrm.sh ;; *) ;; From 975da5001b2af0a6ae1a794d1b9643db3e987589 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sat, 27 Oct 2018 11:16:52 +0200 Subject: [PATCH 160/168] Add pine64_install_uboot.sh script --- .../usr/local/sbin/pine64_install_uboot.sh | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 package/root/usr/local/sbin/pine64_install_uboot.sh diff --git a/package/root/usr/local/sbin/pine64_install_uboot.sh b/package/root/usr/local/sbin/pine64_install_uboot.sh new file mode 100755 index 00000000..4cc3bb44 --- /dev/null +++ b/package/root/usr/local/sbin/pine64_install_uboot.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +set -e + +if [ "$(id -u)" -ne "0" ]; then + echo "This script requires root." + exit 1 +fi + +DEVICE="${1:-/dev/mmcblk0}" + +if [ ! -b "$DEVICE" ]; then + echo "Block device ${DEVICE} not found." + exit 2 +fi + +local boot0_position=8 # KiB +local boot0_size=64 # KiB +local uboot_position=19096 # KiB +local uboot_size=1384 # KiB + +echo "Flashing boot0 ..." +dd if="/boot/pine64/boot0-pine64-$(cat /etc/pine64_model).bin" conv=notrunc bs=1k seek=$boot0_position oflag=sync of="${DEVICE}" + +echo "Flashing U-Boot ..." +dd if="/boot/pine64/u-boot-pine64-$(cat /etc/pine64_model).bin" conv=notrunc bs=1k seek=$uboot_position oflag=sync of="${DEVICE}" + +sync +echo "Done - you should reboot now." From a00e536492b6d6f799c39e53faa5fe423d88e3b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sat, 27 Oct 2018 22:08:29 +0200 Subject: [PATCH 161/168] Use my armsoc feature to separate cursor plane --- .../root/etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package/root/etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled b/package/root/etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled index 10d424ba..415abe43 100644 --- a/package/root/etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled +++ b/package/root/etc/X11/xorg.conf.d/40-pine64-armsoc.conf.disabled @@ -2,12 +2,13 @@ Section "Device" Identifier "armsoc_sunxi" Driver "armsoc" # Option "Debug" "true" - Option "NoFlip" "false" + Option "NoFlip" "true" # Option "DRICard" "0" # Option "BusID" "" # Option "DriverName" "false" Option "DRI2MaxBuffers" "2" Option "InitFromFBDev" "/dev/fb0" + Option "CursorChannelID" "3" EndSection Section "Screen" From 25b06786774c5d64ec7acd269db60787a6170d7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sat, 27 Oct 2018 23:16:53 +0200 Subject: [PATCH 162/168] Fix sunxidrm build --- simpleimage/make_rootfs.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index d3f936b3..c1630d10 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -223,16 +223,19 @@ EOF mate) do_chroot /usr/local/sbin/install_desktop.sh mate do_chroot systemctl set-default graphical.target + do_chroot pine64_enable_sunxidrm.sh ;; lxde) do_chroot /usr/local/sbin/install_desktop.sh lxde do_chroot systemctl set-default graphical.target + do_chroot pine64_enable_sunxidrm.sh ;; i3) do_chroot /usr/local/sbin/install_desktop.sh i3 do_chroot systemctl set-default graphical.target + do_chroot pine64_enable_sunxidrm.sh ;; openmediavault) @@ -250,7 +253,6 @@ EOF mv "$DEST/etc/resolv.conf.bak" "$DEST/etc/resolv.conf" do_chroot apt-get -y autoremove do_chroot apt-get clean - do_chroot pine64_enable_sunxidrm.sh ;; *) ;; From b4bb3f9ebedf54733ed6179c7f33b9b71abf1e6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Tue, 30 Oct 2018 12:59:01 +0100 Subject: [PATCH 163/168] Install recommends as they are needed for Mate --- package/root/usr/local/sbin/install_desktop.sh | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/package/root/usr/local/sbin/install_desktop.sh b/package/root/usr/local/sbin/install_desktop.sh index 2c7bca5c..17d5cb77 100755 --- a/package/root/usr/local/sbin/install_desktop.sh +++ b/package/root/usr/local/sbin/install_desktop.sh @@ -33,11 +33,7 @@ PACKAGES=( glmark2-es2 libvdpau-sunxi1 vdpauinfo - aisleriot - geany - gnome-sudoku mplayer - scratch smplayer smplayer-themes smtube @@ -79,9 +75,7 @@ esac case $DESKTOP-$DISTRO in mate-Ubuntu) PACKAGES+=( - ubuntu-mate-desktop - ubuntu-mate-lightdm-theme - ubuntu-mate-wallpapers-xenial + ubuntu-mate-core lightdm ) ;; @@ -141,7 +135,7 @@ esac # Install. apt -y update -apt -y --no-install-recommends install ${PACKAGES[@]} +apt -y --install-recommends install ${PACKAGES[@]} # Kill parport module loading, not available on arm64. if [ -e "/etc/modules-load.d/cups-filters.conf" ]; then From ea9a20fde9aed46f5b42d50ad86f19e8a6063708 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Tue, 30 Oct 2018 12:59:41 +0100 Subject: [PATCH 164/168] Build bionic mate --- Makefile | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index d1d6dfd2..23635a23 100644 --- a/Makefile +++ b/Makefile @@ -140,9 +140,9 @@ simple-image-sopine: simple-image-sopine-$(RELEASE_NAME).img.xz .PHONY: simple-image simple-image: simple-image-pinebook simple-image-pine64 simple-image-sopine -.PHONY: xenial-mate-pinebook -xenial-mate-pinebook: xenial-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - xenial-mate-pinebook1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +.PHONY: bionic-mate-pinebook +bionic-mate-pinebook: bionic-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ + bionic-mate-pinebook1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: bionic-lxde-pinebook bionic-lxde-pinebook: bionic-lxde-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ @@ -161,11 +161,8 @@ stretch-minimal-pinebook: stretch-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(R .PHONY: stretch-openmediavault-pine64 stretch-openmediavault-pine64: stretch-openmediavault-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz -.PHONY: xenial-pinebook -xenial-pinebook: xenial-mate-pinebook - .PHONY: bionic-pinebook -bionic-pinebook: bionic-lxde-pinebook +bionic-pinebook: bionic-mate-pinebook bionic-lxde-pinebook .PHONY: stretch-pinebook stretch-pinebook: stretch-minimal-pinebook From 18548262f56df21116b26861882e77873f7908f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Tue, 30 Oct 2018 13:01:02 +0100 Subject: [PATCH 165/168] Only use `vdpau-sunxi` when using old disp driver --- package/root/etc/X11/Xsession.d/30pine64-vdpau-sunxi | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package/root/etc/X11/Xsession.d/30pine64-vdpau-sunxi b/package/root/etc/X11/Xsession.d/30pine64-vdpau-sunxi index bffca52d..bea41651 100644 --- a/package/root/etc/X11/Xsession.d/30pine64-vdpau-sunxi +++ b/package/root/etc/X11/Xsession.d/30pine64-vdpau-sunxi @@ -1 +1,3 @@ -export VDPAU_DRIVER=sunxi +if [ -d /sys/module/disp ]; then + export VDPAU_DRIVER=sunxi +end From 7060f33517aa8c2ab6e3af9899a04f2829a60e84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Tue, 30 Oct 2018 13:16:40 +0100 Subject: [PATCH 166/168] Add simple script to fix brisk-menu --- package/root/usr/local/bin/fix-brisk-menu-key.sh | 5 +++++ 1 file changed, 5 insertions(+) create mode 100755 package/root/usr/local/bin/fix-brisk-menu-key.sh diff --git a/package/root/usr/local/bin/fix-brisk-menu-key.sh b/package/root/usr/local/bin/fix-brisk-menu-key.sh new file mode 100755 index 00000000..4d711eea --- /dev/null +++ b/package/root/usr/local/bin/fix-brisk-menu-key.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +set -xe + +gsettings set com.solus-project.brisk-menu hot-key Menu From 60e09007d2bdf68658d25d3fecc95e1343326ea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Tue, 30 Oct 2018 13:21:01 +0100 Subject: [PATCH 167/168] Remove xenial --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 23635a23..4d1740ce 100644 --- a/Makefile +++ b/Makefile @@ -168,7 +168,7 @@ bionic-pinebook: bionic-mate-pinebook bionic-lxde-pinebook stretch-pinebook: stretch-minimal-pinebook .PHONY: linux-pinebook -linux-pinebook: simple-image-pinebook bionic-pinebook xenial-pinebook stretch-pinebook +linux-pinebook: simple-image-pinebook bionic-pinebook stretch-pinebook .PHONY: bionic-minimal-pine64 bionic-minimal-pine64: bionic-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz From 164656cc5d1fa2985ec09c51e13155a5a8fcca51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Tue, 30 Oct 2018 15:19:15 +0100 Subject: [PATCH 168/168] Eatmydata --- simpleimage/make_rootfs.sh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index c1630d10..9c911d57 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -134,11 +134,10 @@ EOF chmod a+x "$DEST/usr/sbin/policy-rc.d" do_chroot() { - cmd="$@" mount -o bind /tmp "$DEST/tmp" chroot "$DEST" mount -t proc proc /proc chroot "$DEST" mount -t sysfs sys /sys - chroot "$DEST" $cmd + chroot "$DEST" $CHROOT_PREFIX "$@" chroot "$DEST" umount /sys chroot "$DEST" umount /proc umount "$DEST/tmp" @@ -156,12 +155,20 @@ case $DISTRO in DEB=ubuntu DEBUSER=pine64 DEBUSERPW=pine64 + + do_chroot apt-get -y update + do_chroot apt-get -y install eatmydata + + export DEBIAN_FRONTEND=noninteractive + export CHROOT_PREFIX="eatmydata --" + + do_chroot locale-gen en_US.UTF-8 + cat > "$DEST/second-phase" <

    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