Initial support for mozilla flame (#356)

* Initial Mozilla Flame packages

* Update dtbtool to use LineageOS upstream

* Use mkbootimg --dt flag only when deviceinfo_bootimg_qcdt is defined

* Update mkbootimg to use LineageOS upstream

* Add sparse image flashing on device-mozilla-flame

* Only support SD card install on Mozilla Flame

* Remove useless profile.sh on mozilla flame

* Package DTBs in /usr/lib/linux-mozilla-flame/

* Build and install modules in linux-mozilla-flame
This commit is contained in:
Yuval Adam 2017-08-09 23:57:52 +03:00 committed by Oliver Smith
parent a69344c067
commit 321156e59b
14 changed files with 3966 additions and 10 deletions

View file

@ -0,0 +1,5 @@
# use 'weston-calibrator' to calibrate the touchscreen!
SUBSYSTEM=="input", ATTRS{name}=="touch_dev", \
ENV{ID_INPUT}="1", ENV{ID_INPUT_TOUCHSCREEN}="1" \
ENV{WL_CALIBRATION}="0.982113 -0.006129 1.983124 -0.002560 1.000800 -6.012451"

View file

@ -0,0 +1,30 @@
pkgname=device-mozilla-flame
pkgver=1
pkgrel=1
pkgdesc="Mozilla Flame"
url="https://github.com/postmarketOS"
arch="noarch"
license="MIT"
depends="linux-mozilla-flame mkbootimg"
makedepends=""
install=""
subpackages=""
source="deviceinfo initfs-hook.sh 90-android-touch-dev.rules"
options="!check"
build() {
return 0
}
package() {
install -D -m644 "$srcdir"/deviceinfo \
"$pkgdir"/etc/deviceinfo
install -D -m644 "$srcdir"/initfs-hook.sh \
"$pkgdir"/etc/postmarketos-mkinitfs/hooks/00-${pkgname}.sh
install -D -m644 "$srcdir"/90-android-touch-dev.rules \
"$pkgdir"/etc/udev/rules.d/90-android-touch-dev.rules
}
sha512sums="e1491537517787e7828ca88e749fefba7aafdc14062ce292e4e39d0cfc215ba79c79a64c5be9f4e65e092aabb060a051472c476d49105ed2e048dda88a0f9edd deviceinfo
8590967fa10388a890fdfafdb1070b9ab22dc89e06a3a8834806c772191e3b67de7b914b0d68e5ddf581cee715cb90f3f24abcb8762c415ff328c6da23e55d52 initfs-hook.sh
ee25f3d0377f027d108593eb7953b8db49d7f05a5c36a0c8ca7e7849d15e3c217bc1ac97d77a66e28d2db4b81c0f50b905639911276da40321d2b6cca7f797df 90-android-touch-dev.rules"

View file

@ -0,0 +1,27 @@
deviceinfo_format_version="0"
deviceinfo_name="Flame"
deviceinfo_manufacturer="Mozilla"
deviceinfo_date=""
deviceinfo_keyboard="false"
deviceinfo_nonfree="????"
deviceinfo_dtb=""
deviceinfo_modules=""
deviceinfo_modules_initfs=""
deviceinfo_external_disk="true"
deviceinfo_external_disk_install="true"
deviceinfo_flash_methods="fastboot"
deviceinfo_arch="armhf"
deviceinfo_screen_width="480"
deviceinfo_screen_height="864"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="true"
deviceinfo_kernel_cmdline="console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37"
deviceinfo_flash_offset_base="0"
deviceinfo_flash_offset_kernel="0x00008000"
deviceinfo_flash_offset_ramdisk="0x01000000"
deviceinfo_flash_offset_second="0x00f00000"
deviceinfo_flash_offset_tags="0x00000100"
deviceinfo_flash_pagesize="2048"

View file

@ -0,0 +1,4 @@
#!/bin/sh
# set framebuffer resolution
cat /sys/class/graphics/fb0/modes > /sys/class/graphics/fb0/mode

View file

@ -0,0 +1,145 @@
# APKBUILD based on linux-vanilla aport. Changes:
# - disabled module installation
# - add !check !tracedeps
# - package: just install zimage and kernel.release, because the kernel config
# does not generate modules or dtb files
# - do not create -dev subpackage (makes no sense without module support)
#
# Kernel config based on: arch/arm/configs/msm8610_defconfig
# Changes:
# - enable devtmpfs (needed for udev -> touch support in weston)
_vendor=mozilla
_flavor=mozilla-flame
_hash="03396c93577aafae7ca3603de1c74eafd30e7d54"
_config="config-${_flavor}.armhf"
pkgname=linux-${_flavor}
pkgver=3.4.0
case $pkgver in
*.*.*) _kernver=${pkgver%.*};;
*.*) _kernver=$pkgver;;
esac
pkgrel=4
arch="armhf"
pkgdesc="Mozilla flame kernel"
url="https://github.com/mozilla-b2g/codeaurora_kernel_msm"
depends="postmarketos-mkinitfs"
makedepends="dtbtool perl sed installkernel bash gmp-dev bc linux-headers elfutils-dev"
options="!strip !check !tracedeps"
install=
source="
$pkgname-$_hash.zip::https://github.com/mozilla-b2g/codeaurora_kernel_msm/archive/${_hash}.zip
$_config
compiler-gcc6.h
gpu-msm-fix-gcc5-compile.patch
aeea3592a13bf12861943e44fc48f1f270941f8d.patch
add-missing-dtbs.patch
"
subpackages=""
license="GPL2"
_abi_release=${pkgver}
_carch="arm"
HOSTCC="${CC:-gcc}"
HOSTCC="${HOSTCC#${CROSS_COMPILE}}"
ksrcdir="$srcdir/codeaurora_kernel_msm-$_hash"
prepare() {
local _patch_failed=
cd "$ksrcdir"
# first apply patches in specified order
for i in $source; do
case $i in
*.patch)
msg "Applying $i..."
if ! patch -s -p1 -N -i "$srcdir"/$i; then
echo $i >>failed
_patch_failed=1
fi
;;
esac
done
if ! [ -z "$_patch_failed" ]; then
error "The following patches failed:"
cat failed
return 1
fi
# gcc6 support
cp -v "$srcdir/compiler-gcc6.h" "$ksrcdir/include/linux/"
mkdir -p "$srcdir"/build
cp "$srcdir"/$_config "$srcdir"/build/.config || return 1
make -C "$ksrcdir" O="$srcdir"/build ARCH="$_carch" HOSTCC="$HOSTCC" \
silentoldconfig
}
# this is so we can do: 'abuild menuconfig' to reconfigure kernel
menuconfig() {
cd "$srcdir"/build || return 1
make ARCH="$_carch" menuconfig
cp .config "$startdir"/$_config
}
build() {
cd "$srcdir"/build
unset LDFLAGS
make ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine" CONFIG_NO_ERROR_ON_MISMATCH=y DTC_FLAGS="-p 1024" \
|| return 1
make ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine" CONFIG_NO_ERROR_ON_MISMATCH=y modules \
|| return 1
dtbTool -s 2048 -p "scripts/dtc/" -o "arch/arm/boot/dt.img" "arch/arm/boot/"
}
package() {
cd "$srcdir"/build
unset LDFLAGS
make ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine" CONFIG_NO_ERROR_ON_MISMATCH=y \
INSTALL_MOD_PATH="${pkgdir}" modules_install
make ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine" CONFIG_NO_ERROR_ON_MISMATCH=y \
INSTALL_MOD_PATH="${pkgdir}" firmware_install
rm "${pkgdir}/lib/modules/${pkgver}/build"
install -Dm644 "${srcdir}"/build/Module.symvers "${pkgdir}/lib/modules/${pkgver}/build/Module.symvers"
install -Dm644 "${srcdir}"/build/System.map "${pkgdir}/lib/modules/${pkgver}/build/System.map"
install -Dm644 "${srcdir}"/build/modules.builtin "${pkgdir}/lib/modules/${pkgver}/build/modules.builtin"
install -Dm644 "${srcdir}"/build/modules.order "${pkgdir}/lib/modules/${pkgver}/build/modules.order"
cd ../..
mkdir -p "$pkgdir/usr/lib/linux-mozilla-flame"
for dtb in $(find "$srcdir/build/arch/arm/boot" -name "*.dtb")
do
install -m644 $dtb "$pkgdir/usr/lib/linux-mozilla-flame/"
done
install -Dm644 "$srcdir/build/arch/arm/boot/dt.img" \
"$pkgdir/boot/dt.img"
install -Dm644 "$srcdir/build/arch/arm/boot/zImage-dtb" \
"$pkgdir/boot/vmlinuz-$_flavor"
install -D "$srcdir/build/include/config/kernel.release" \
"$pkgdir/usr/share/kernel/$_flavor/kernel.release"
}
sha512sums="03532b82159d31e406594203f318f78aace500f997325149d161e1691c93c3bc54e903602d54d52dc8fbfe370828da3442f06f4a78b84b8370fa0ef5d9a05bef linux-mozilla-flame-03396c93577aafae7ca3603de1c74eafd30e7d54.zip
28d4f4d0e1f0f55d06d05ad2a62560aa611f9611084b6653df9dd381323509c534227d1058acfad2c7bf014289b4f2a253ce47847c6fe5423688ec0998fb6056 config-mozilla-flame.armhf
d80980e9474c82ba0ef1a6903b434d8bd1b092c40367ba543e72d2c119301c8b2d05265740e4104ca1ac5d15f6c4aa49e8776cb44264a9a28dc551e0d1850dcc compiler-gcc6.h
7be03a9e78b7ac330a54b1f00509caa0621a95c0c55901878ad757f9dd69cc05ba2c8b5ea987063ae1224f92c4d090d515fa5d369e7755181a4871b0d0f82881 gpu-msm-fix-gcc5-compile.patch
ea1d3b5a234fa565e3c1a792de48f4fc4e6023d281d303c8e319c7ef28edc5739ab0e4dea0139a41f0a5c7d03e27921ccaa214fd0ac5c72245a094ce60128864 aeea3592a13bf12861943e44fc48f1f270941f8d.patch
ee53d221cad0970316f16ff52927b9a133a2297b61a61976bd75c07b735b4c87d0a7e6b37d9a849460ec57f6da097801c9ae110b95f33756ca23a148ef86a1d2 add-missing-dtbs.patch"

View file

@ -0,0 +1,27 @@
From 68eaeb9b8b9592185608349a3399d23496724bca Mon Sep 17 00:00:00 2001
From: Yuval Adam <_@yuv.al>
Date: Fri, 4 Aug 2017 15:45:12 +0300
Subject: [PATCH] Add two missing DTB files
---
arch/arm/mach-msm/Makefile.boot | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm/mach-msm/Makefile.boot b/arch/arm/mach-msm/Makefile.boot
index c0e9efc944d..c15d387df63 100644
--- a/arch/arm/mach-msm/Makefile.boot
+++ b/arch/arm/mach-msm/Makefile.boot
@@ -162,8 +162,10 @@ initrd_phys-$(CONFIG_ARCH_FSM9XXX) := 0x12000000
dtb-$(CONFIG_ARCH_MSM8610) += msm8610-sim.dtb
dtb-$(CONFIG_ARCH_MSM8610) += msm8610-v1-qrd-skuaa.dtb
dtb-$(CONFIG_ARCH_MSM8610) += msm8610-v1-qrd-skuab.dtb
+ dtb-$(CONFIG_ARCH_MSM8610) += msm8610-v1-qrd-skuab-dvt2.dtb
dtb-$(CONFIG_ARCH_MSM8610) += msm8610-v2-qrd-skuaa.dtb
dtb-$(CONFIG_ARCH_MSM8610) += msm8610-v2-qrd-skuab.dtb
+ dtb-$(CONFIG_ARCH_MSM8610) += msm8610-v2-qrd-skuab-dvt2.dtb
# MSMSAMARIUM
zreladdr-$(CONFIG_ARCH_MSMSAMARIUM) := 0x00008000
--
2.13.3

View file

@ -0,0 +1,49 @@
From aeea3592a13bf12861943e44fc48f1f270941f8d Mon Sep 17 00:00:00 2001
From: Behan Webster <behanw@converseincode.com>
Date: Wed, 24 Sep 2014 01:06:46 +0100
Subject: [PATCH] ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.h
With compilers which follow the C99 standard (like modern versions of gcc and
clang), "extern inline" does the wrong thing (emits code for an externally
linkable version of the inline function). In this case using static inline
and removing the NULL version of return_address in return_address.c does
the right thing.
Signed-off-by: Behan Webster <behanw@converseincode.com>
Reviewed-by: Mark Charlebois <charlebm@gmail.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
arch/arm/include/asm/ftrace.h | 2 +-
arch/arm/kernel/return_address.c | 5 -----
2 files changed, 1 insertion(+), 6 deletions(-)
diff --git a/arch/arm/include/asm/ftrace.h b/arch/arm/include/asm/ftrace.h
index 39eb16b0066f2..bfe2a2f5a644e 100644
--- a/arch/arm/include/asm/ftrace.h
+++ b/arch/arm/include/asm/ftrace.h
@@ -45,7 +45,7 @@ void *return_address(unsigned int);
#else
-extern inline void *return_address(unsigned int level)
+static inline void *return_address(unsigned int level)
{
return NULL;
}
diff --git a/arch/arm/kernel/return_address.c b/arch/arm/kernel/return_address.c
index fafedd86885dd..f6aa84d5b93c9 100644
--- a/arch/arm/kernel/return_address.c
+++ b/arch/arm/kernel/return_address.c
@@ -63,11 +63,6 @@ void *return_address(unsigned int level)
#warning "TODO: return_address should use unwind tables"
#endif
-void *return_address(unsigned int level)
-{
- return NULL;
-}
-
#endif /* if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) / else */
EXPORT_SYMBOL_GPL(return_address);

View file

@ -0,0 +1,69 @@
// SOURCE:
// https://github.com/NextThingCo/CHIP-u-boot/issues/10#issuecomment-287515505
#ifndef __LINUX_COMPILER_H
#error "Please don't include <linux/compiler-gcc6.h> directly, include <linux/compiler.h> instead."
#endif
#define __used __attribute__((__used__))
#define __must_check __attribute__((warn_unused_result))
#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
/* Mark functions as cold. gcc will assume any path leading to a call
to them will be unlikely. This means a lot of manual unlikely()s
are unnecessary now for any paths leading to the usual suspects
like BUG(), printk(), panic() etc. [but let's keep them for now for
older compilers]
Early snapshots of gcc 4.3 don't support this and we can't detect this
in the preprocessor, but we can live with this because they're unreleased.
Maketime probing would be overkill here.
gcc also has a __attribute__((__hot__)) to move hot functions into
a special section, but I don't see any sense in this right now in
the kernel context */
#define __cold __attribute__((__cold__))
#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
#ifndef __CHECKER__
# define __compiletime_warning(message) __attribute__((warning(message)))
# define __compiletime_error(message) __attribute__((error(message)))
#endif /* __CHECKER__ */
/*
* Mark a position in code as unreachable. This can be used to
* suppress control flow warnings after asm blocks that transfer
* control elsewhere.
*
* Early snapshots of gcc 4.5 don't support this and we can't detect
* this in the preprocessor, but we can live with this because they're
* unreleased. Really, we need to have autoconf for the kernel.
*/
#define unreachable() __builtin_unreachable()
/* Mark a function definition as prohibited from being cloned. */
#define __noclone __attribute__((__noclone__))
/*
* Tell the optimizer that something else uses this function or variable.
*/
#define __visible __attribute__((externally_visible))
/*
* GCC 'asm goto' miscompiles certain code sequences:
*
* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
*
* Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
*
* (asm goto is automatically volatile - the naming reflects this.)
*/
#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
#define __HAVE_BUILTIN_BSWAP32__
#define __HAVE_BUILTIN_BSWAP64__
#define __HAVE_BUILTIN_BSWAP16__
#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,33 @@
source:
https://github.com/ShinySide/HispAsian_Lollipop_G6/commit/b7756b6fc4bb728722b14d2dfdbaf1dc843812e9
* These need to be static to avoid these errors:
drivers/built-in.o: In function `.LANCHOR1':
msm_iommu_sec.c:(.data+0x9298): undefined reference to `kgsl_iommu_sync_lock'
msm_iommu_sec.c:(.data+0x929c): undefined reference to `kgsl_iommu_sync_unlock'
Makefile:877: recipe for target '.tmp_vmlinux1' failed
make: *** [.tmp_vmlinux1] Error 1
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
--- a/drivers/gpu/msm/kgsl_iommu.c
+++ b/drivers/gpu/msm/kgsl_iommu.c
@@ -1010,7 +1010,7 @@ static int kgsl_iommu_init_sync_lock(struct kgsl_mmu *mmu)
*
* Return - int - number of commands.
*/
-inline unsigned int kgsl_iommu_sync_lock(struct kgsl_mmu *mmu,
+static inline unsigned int kgsl_iommu_sync_lock(struct kgsl_mmu *mmu,
unsigned int *cmds)
{
struct kgsl_device *device = mmu->device;
@@ -1080,7 +1080,7 @@ inline unsigned int kgsl_iommu_sync_lock(struct kgsl_mmu *mmu,
*
* Return - int - number of commands.
*/
-inline unsigned int kgsl_iommu_sync_unlock(struct kgsl_mmu *mmu,
+static inline unsigned int kgsl_iommu_sync_unlock(struct kgsl_mmu *mmu,
unsigned int *cmds)
{
struct kgsl_device *device = mmu->device;

View file

@ -1,11 +1,11 @@
pkgname=dtbtool
pkgver=3
pkgrel=1
pkgrel=2
pkgdesc="dtbtool"
url="https://github.com/LineageOS/android_device_qcom_common/tree/cm-14.1/dtbtool"
arch="all"
license="MIT"
source="dtbtool.c::https://source.codeaurora.org/quic/la/device/qcom/common/plain/dtbtool/dtbtool.c?h=LA.BF64.1.2.1.c1_rb1.30 Makefile"
source="dtbtool.c::https://raw.githubusercontent.com/LineageOS/android_device_qcom_common/cm-14.1/dtbtool/dtbtool.c Makefile"
options="!check"
build() {
@ -17,5 +17,5 @@ package() {
install -D -m755 "$srcdir"/dtbTool \
"$pkgdir"/usr/bin/dtbTool || return 1
}
sha512sums="ce5859df28d91c21288738a39c75aee609ae2632db7a93346719039f9bf3fcc42048aa5d799568bf5e577f59e9fefa18a340fb3d026b335086b4e3e9d85d56ed dtbtool.c
sha512sums="a98b24b962be0f11c037bdf420db57621249ba52d666b162b897fe02d06bd65969e4c260d5b2e01e2f851c9649d6e19d8584126b7ea6e5070424f41d383de1a7 dtbtool.c
18dd845899a3c11f0d5ae2eefb23eedf14b7c6d2e39a1c4e59f08fd893e5b549a5e9221413d1a2b4c9ab4507fb759fd6ae419a0223a98fb737b56cb467ef3d12 Makefile"

View file

@ -1,17 +1,16 @@
pkgname=mkbootimg
pkgver="7.1.2_r6"
pkgver=14.1
pkgrel=1
pkgdesc="Android bootimg (zimage + initramfs) creation tool"
url="https://android.googlesource.com"
url="https://github.com/LineageOS/android_system_core/blob/cm-14.1/mkbootimg/mkbootimg"
arch="noarch"
license="APACHE2"
depends="python3"
subpackages=""
source="$pkgname-$pkgver.py.base64::https://android.googlesource.com/platform/system/core/+/android-${pkgver}/${pkgname}/${pkgname}?format=TEXT"
source="$pkgname::https://raw.githubusercontent.com/LineageOS/android_system_core/cm-14.1/mkbootimg/mkbootimg"
options="!check"
build() {
base64 -d $srcdir/$pkgname-$pkgver.py.base64 > $srcdir/$pkgname
sed -i -e 's./usr/bin/env python./usr/bin/env python3.' $srcdir/$pkgname
}
@ -19,4 +18,4 @@ package() {
install -Dm755 $srcdir/$pkgname $pkgdir/usr/bin/$pkgname
}
sha512sums="7aac61bf55e0c3627e71a1247ebd5636bc475919b50e34e289639745a051a4e1b31de273bfc75aaecc2e059007721e729c277199b4b4cec514541865a59e3312 mkbootimg-7.1.2_r6.py.base64"
sha512sums="71ab9b6dfe19096bf6b33a8c46148dbe2b8b71fd693dcaf8cdba7a932e19bb7d29c3c245148a4b27119a6b883fc8f0ba04f5f815da0c40410b2b11d9fa1b7cd7 mkbootimg"

View file

@ -1,6 +1,6 @@
pkgname=postmarketos-mkinitfs
pkgver=0.3.2
pkgrel=1
pkgrel=2
pkgdesc="Tool to generate initramfs images for postmarketOS"
url="https://github.com/postmarketOS"
# multipath-tools: kpartx
@ -27,4 +27,4 @@ package() {
}
sha512sums="95e49eb5e7891d319543165290fb7279733e696db8c768d864d87ef36a20b04e1c4e8a1702a2927e7492ea2e9f3d4fdd83d9ea55811969689b9c2483fb3b44c4 init.sh.in
64aa05363f79a0cf2319740753b8852f5252a5b35b23fecccb131cd77d306cd4c7fe287b2d58cea456f669ff99e20f53cf609703530abf6eda7c958a9e0811d2 init_functions.sh
81ae1b6c1a96fbefe842b5e2cc8790c4c9761d9c714a8a6d6a623834e290e5255f5695740d38dc5bc2571aa0eeab54bb5ce69fe1457db5ef84b56d8a8e8eee9d mkinitfs.sh"
8ea2569d75a18f870098d67ab61b58faf239575d03b19c9afc86a868a53d8de6a536b5d63f61a630331bd02dac2d0412824ce388817646baea21b26c7fdfbddb mkinitfs.sh"

View file

@ -196,6 +196,7 @@ create_bootimg()
--ramdisk_offset "${deviceinfo_flash_offset_ramdisk}" \
--tags_offset "${deviceinfo_flash_offset_tags}" \
--pagesize "${deviceinfo_flash_pagesize}" \
${deviceinfo_bootimg_qcdt:+ --dt /boot/dt.img} \
-o "${outfile/initramfs-/boot.img-}"
}