diff --git a/device/device-samsung-hero2lte/APKBUILD b/device/device-samsung-hero2lte/APKBUILD index bb188c5831fb59401ea5f82d09f22d17fd8eb1f7..92ca01c6aba13db1d636a1ff849108fe6e858d0d 100644 --- a/device/device-samsung-hero2lte/APKBUILD +++ b/device/device-samsung-hero2lte/APKBUILD @@ -7,9 +7,9 @@ url="https://postmarketos.org" license="MIT" arch="aarch64" options="!check !archcheck" -depends="postmarketos-base linux-samsung-hero2lte mkbootimg mesa-dri-swrast" +depends="postmarketos-base linux-samsung-hero2lte mkbootimg mesa-dri-swrast msm-fb-refresher" makedepends="devicepkg-dev" -source="deviceinfo" +source="deviceinfo initfs-hook.sh" build() { devicepkg_build $startdir $pkgname @@ -17,7 +17,10 @@ build() { package() { devicepkg_package $startdir $pkgname + install -Dm644 "$srcdir"/initfs-hook.sh \ + "$pkgdir"/etc/postmarketos-mkinitfs/hooks/00-${pkgname}.sh } -sha512sums="e3940229b39354c1e479d826c0a04d109a79298afb546cd7944ca3b856d94277d142e3c1fdce5909c7f52e0ea3e0c0b00c9a9dde522e4824c892b792de61a053 deviceinfo" +sha512sums="e3940229b39354c1e479d826c0a04d109a79298afb546cd7944ca3b856d94277d142e3c1fdce5909c7f52e0ea3e0c0b00c9a9dde522e4824c892b792de61a053 deviceinfo +5a7be3cb8835ffb3783fcd4539de04f7f006c726ac9aea35cdca9e90b2877dc36cf4e314851bf9078f4b2dac061b7265866792d92a79f5232c56a0e17f7910b1 initfs-hook.sh" diff --git a/device/device-samsung-hero2lte/deviceinfo b/device/device-samsung-hero2lte/deviceinfo index 50aa61412481148a9309c249cbce6c5d8dd3833d..e6c62d46dac722e580aa14519e0ee9655523fb4e 100644 --- a/device/device-samsung-hero2lte/deviceinfo +++ b/device/device-samsung-hero2lte/deviceinfo @@ -30,6 +30,7 @@ deviceinfo_flash_offset_ramdisk="0x01000000" deviceinfo_flash_offset_second="0x00f00000" deviceinfo_flash_offset_tags="0x00000100" deviceinfo_flash_pagesize="2048" -deviceinfo_flash_heimdall_partition_kernel="" -deviceinfo_flash_heimdall_partition_system="" +deviceinfo_flash_heimdall_partition_kernel="BOOT" +deviceinfo_flash_heimdall_partition_system="SYSTEM" +deviceinfo_flash_sparse="true" diff --git a/device/device-samsung-hero2lte/initfs-hook.sh b/device/device-samsung-hero2lte/initfs-hook.sh new file mode 100644 index 0000000000000000000000000000000000000000..32ef9b6d5860257bf9d65b0762075fccf9b64ca5 --- /dev/null +++ b/device/device-samsung-hero2lte/initfs-hook.sh @@ -0,0 +1,8 @@ +# Set 16bpp fb mode and ensure size is set +echo 16 > /sys/class/graphics/fb0/bits_per_pixel +echo 1440,2560 > /sys/class/graphics/fb0/virtual_size + +# Blank and unblank +echo 1 > /sys/class/graphics/fb0/blank +echo 0 > /sys/class/graphics/fb0/blank + diff --git a/device/linux-samsung-hero2lte/01-remove-android-defines.patch b/device/linux-samsung-hero2lte/01-remove-android-defines.patch new file mode 100644 index 0000000000000000000000000000000000000000..b517a05641d87deece1628e45424ee1462b8ef55 --- /dev/null +++ b/device/linux-samsung-hero2lte/01-remove-android-defines.patch @@ -0,0 +1,24 @@ +# This patch removes the __ANDROID__ defines that activate the macros needed for +# the connection gadget system in the kernel. +# Needed for very obvious reasons. + +diff --git a/drivers/usb/gadget/function/f_conn_gadget.ioctl.h b/drivers/usb/gadget/function/f_conn_gadget.ioctl.h +index aed3e027..3486e7a3 100644 +--- a/drivers/usb/gadget/function/f_conn_gadget.ioctl.h ++++ b/drivers/usb/gadget/function/f_conn_gadget.ioctl.h +@@ -25,8 +25,6 @@ enum { + CONN_GADGET_IOCTL_BIND_STATUS_UNBIND = 2 + }; + +-#if defined(__ANDROID__)||defined(__TIZEN__) +- + enum { + CONN_GADGET_IOCTL_NR_0 = 0, + CONN_GADGET_IOCTL_NR_1, +@@ -42,6 +40,5 @@ enum { + #define CONN_GADGET_IOCTL_BIND_WAIT_NOTIFY _IOR(CONN_GADGET_IOCTL_MAGIC_SIG, CONN_GADGET_IOCTL_NR_1, int) + #define CONN_GADGET_IOCTL_BIND_GET_STATUS _IOR(CONN_GADGET_IOCTL_MAGIC_SIG, CONN_GADGET_IOCTL_NR_2, int) + #define CONN_GADGET_IOCTL_MAX_NR CONN_GADGET_IOCTL_NR_MAX +-#endif + + #endif diff --git a/device/linux-samsung-hero2lte/02-fix-dtbtool.patch b/device/linux-samsung-hero2lte/02-fix-dtbtool.patch new file mode 100644 index 0000000000000000000000000000000000000000..681b6ee8677c7f660662738467d9e1e4d92b43b4 --- /dev/null +++ b/device/linux-samsung-hero2lte/02-fix-dtbtool.patch @@ -0,0 +1,31 @@ +Exynos devices have a special device tree image format, which the built in +script in this kernel source facilitates. +Unfortunately, the script is badly written in the part where command line +arguments are parsed, so this fixes it to create a valid dtb. + +diff --git a/scripts/dtbtool_exynos/dtbtool.c b/scripts/dtbtool_exynos/dtbtool.c +index f72fe8662ee..cacd8c69a32 100644 +--- a/scripts/dtbtool_exynos/dtbtool.c ++++ b/scripts/dtbtool_exynos/dtbtool.c +@@ -378,13 +378,14 @@ int main(int argc, char **argv) + dt_subtype_code = strtoul(val, 0, 16); + } else if (*arg != '-') { + /* skip over already allocated file names */ +- for (; dtb_files[dt_count]; dt_count++) +- if (dt_count >= DTB_MAX) +- fail("reached dtb file limit (%d)", DTB_MAX); +- +- dtb_files[dt_count] = strdup(arg); +- if (!dtb_files[dt_count]) +- fail("failed to allocate memory"); ++ for (; dtb_files[dt_count]; dt_count++) { ++ if (dt_count >= DTB_MAX) { ++ fail("reached dtb file limit (%d)", DTB_MAX); ++ } else { ++ dtb_files[dt_count] = strdup(arg); ++ if (!dtb_files[dt_count]) fail("failed to allocate memory"); ++ } ++ } + } else + usage(); + } diff --git a/device/linux-samsung-hero2lte/APKBUILD b/device/linux-samsung-hero2lte/APKBUILD index cf41bb805ee963b158b64abb3ef865e1c0d18b55..17c9c12f4fb0e1fae8ea76fb2d0e401c28eea24c 100644 --- a/device/linux-samsung-hero2lte/APKBUILD +++ b/device/linux-samsung-hero2lte/APKBUILD @@ -2,7 +2,7 @@ # Kernel config based on: arch/arm64/configs/exynos8890-hero2lte_defconfig pkgname="linux-samsung-hero2lte" -pkgver=3.18.132 +pkgver=3.18.133 pkgrel=0 pkgdesc="Samsung Galaxy S7 edge kernel fork" arch="aarch64" @@ -19,12 +19,13 @@ HOSTCC="${HOSTCC#${CROSS_COMPILE}}" # Source - use Ivan Meler's 3.18 upstream kernel _repository="android_kernel_samsung_herolte" -_commit="11a3d8fa2d3cf3d1918ac1c94ee7fd7659957e23" +_commit="24b577569468748591f7be6435af67e17b532886" _config="config-${_flavor}.${arch}" source=" $pkgname-$_commit.tar.gz::https://github.com/ivanmeler/${_repository}/archive/${_commit}.tar.gz $_config - remove-android-defines.patch + 01-remove-android-defines.patch + 02-fix-dtbtool.patch " builddir="$srcdir/${_repository}-${_commit}" @@ -37,10 +38,7 @@ build() { unset LDFLAGS make ARCH="$_carch" CC="${CC:-gcc}" \ KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS" - - # What is below requires some special steps for exynos, use prebuilt dtb for now - # Generate master DTB (deviceinfo_bootimg_qcdt) - # dtbTool -s 2048 -p "scripts/dtc/" -o "arch/arm64/boot/dt.img" "arch/arm64/boot/" + # Note: the DTB for this kernel is built in tree, we just need to copy it. } package() { @@ -62,14 +60,12 @@ package() { return 1 fi - # Master DTB (deviceinfo_bootimg_qcdt) - #install -Dm644 "$builddir/arch/arm64/boot/dt.img" \ - # "$pkgdir/boot/dt.img" - - # Install our prebuilt dtb instead of the built one above - install -Dm644 "$startdir/dt-prebuilt.img" "$pkgdir/boot/dt.img" + # Copy the in-tree DTBH block image + install -Dm644 "$builddir/arch/arm64/boot/dtb.img" \ + "$pkgdir/boot/dt.img" } -sha512sums="11821ea7a8c156403ec34caf9a1a3e9da4a20d8a8f9f2d4f112bccbb575c4dcec3c173d78aae9fef007f70299e41e4ced65ab3d9f18abb084abf25dc19f01d68 linux-samsung-hero2lte-11a3d8fa2d3cf3d1918ac1c94ee7fd7659957e23.tar.gz -7716a5def522d910e13d0edf2cbd64ad12c6cdd31eb2a4c85873a53c69f94c0bc74dc6917459d14cd321c0c7c5c151845497541753ac7164e624a26e5d60a1d7 config-samsung-hero2lte.aarch64 -6aab3805ec561c4e7df2e89f83dc34bb9d5a8b4f017c4c3f5a0926211eaebcf6d6df0096f4ad34f54ae8fc8d2eadb6e2c1e3f1ae07e34a9d729a5ef3ea5b0119 remove-android-defines.patch" +sha512sums="59c128754698259ad7f759def8a82b3f0756404bfe8b474df375c6af0a45b9875ba9a00acca5605b8dcebff4fa5ca1cd20d84d3f398999fe38c3f5837690848c linux-samsung-hero2lte-24b577569468748591f7be6435af67e17b532886.tar.gz +5d70395fec802bc2f925ec2b5f2f138ae988aa61720c82b986310a23ed401949bdca263401918a4f769a477aa98ca4ec2aab1b3dbe0eabfbb856af9f2d99e129 config-samsung-hero2lte.aarch64 +66e27a174e12d56f5b77932985f0001b551c834d68b2a1bcc1d0b7d04e555757fc9137c182bd4cf5ffd57bf2cb0918d758dfe153a6140b77f02e7b9f33ecfb2c 01-remove-android-defines.patch +59b7151edece9fec879c12fe53fa4a7d34563c9b7ed45fa5e96036bde7616cac0976adeef54a5f36d883d51747831881b2586ac02ac47db4123c399cf98e93d8 02-fix-dtbtool.patch" diff --git a/device/linux-samsung-hero2lte/config-samsung-hero2lte.aarch64 b/device/linux-samsung-hero2lte/config-samsung-hero2lte.aarch64 index b1bf8dd90f926bf4797443b2fd29c4ee73b9620d..acd3536ac10acf7a18039db3132b54445c574f82 100644 --- a/device/linux-samsung-hero2lte/config-samsung-hero2lte.aarch64 +++ b/device/linux-samsung-hero2lte/config-samsung-hero2lte.aarch64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 3.18.132 Kernel Configuration +# Linux/arm64 3.18.133 Kernel Configuration # CONFIG_ARM64=y CONFIG_64BIT=y @@ -563,7 +563,10 @@ CONFIG_EXYNOS_BIG_FREQ_BOOST=y # Control Flow Protection # CONFIG_RKP_CFP_JOPP_MAGIC=0xb3ea3bad -# CONFIG_EXYNOS_DTBTOOL is not set +CONFIG_EXYNOS_DTBTOOL=y +CONFIG_EXYNOS_DTBH_PLATFORM_CODE=0x50a6 +CONFIG_EXYNOS_DTBH_SUBTYPE_CODE=0x217584da +CONFIG_EXYNOS_DTBH_PAGE_SIZE=2048 CONFIG_NET=y CONFIG_COMPAT_NETLINK_MESSAGES=y @@ -1387,8 +1390,6 @@ CONFIG_DM_CRYPT=y # CONFIG_DM_UEVENT is not set # CONFIG_DM_FLAKEY is not set CONFIG_DM_VERITY=y -# CONFIG_DM_VERITY_HASH_PREFETCH_MIN_SIZE_128 is not set -CONFIG_DM_VERITY_HASH_PREFETCH_MIN_SIZE=1 # CONFIG_DM_VERITY_FEC is not set # CONFIG_DM_SWITCH is not set # CONFIG_DM_LOG_WRITES is not set @@ -2818,7 +2819,7 @@ CONFIG_DSIM_ESD_REMOVE_DISP_DET=y CONFIG_CHECK_OCTA_CHIP_ID=y # CONFIG_LCD_RES is not set # CONFIG_DECON_SELF_REFRESH is not set -# CONFIG_LOGGING_BIGDATA_BUG is not set +CONFIG_LOGGING_BIGDATA_BUG=y # CONFIG_DUMPSTATE_LOGGING is not set CONFIG_EXYNOS_VPP=y CONFIG_EXYNOS_DECON_LCD=y