samsung-kiran: new device (Samsung Z1) (MR 3234)
The kernel is based on Samsung's downstream kernel for the device. Some configuration changes are required to make the kernel to work: * Tizen kernel uses SLP USB gadget, changed to Android USB gadget. * sprdfb patches and modification on the devicetree files are required to use the framebuffer. * Other required pmOS kernel settings were enabled. * Tizen does not use initramfs, use RAMDISK partition to store initramfs of pmOS (like heimdall-isorec configuration). As far as I know, no alternative OS exists for this device so this is the very first usage. * Flash the root file system to USER, as ROOTFS is < 1 GB in size and USER is about 2.7 GB. samsung-kiran: Update device and firmware packages * Changed kernel configuration for firmware path to follow postmarketOS. * Post install script to mount CSA partition CSA partition [1] contains non-volatile data for Tizen devices. As Samsung Z1 uses this partition to store Wi-Fi and Bluetooth information, mount this partition to use within postmarketOS. [1] https://docs.tizen.org/platform/porting/kernel/ linux-samsung-kiran: Use lzop to decompress initramfs This synchronizes behavior with other heimdall-isorec devices. [ci:skip-build] Already built successfuly on CI in MR
This commit is contained in:
parent
e147b0f1a0
commit
1a57242213
17 changed files with 4204 additions and 0 deletions
39
device/testing/device-samsung-kiran/APKBUILD
Normal file
39
device/testing/device-samsung-kiran/APKBUILD
Normal file
|
@ -0,0 +1,39 @@
|
|||
# Reference: <https://postmarketos.org/devicepkg>
|
||||
pkgname=device-samsung-kiran
|
||||
pkgdesc="Samsung Z1"
|
||||
pkgver=0.1
|
||||
pkgrel=0
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="armv7"
|
||||
options="!check !archcheck"
|
||||
depends="
|
||||
linux-samsung-kiran
|
||||
mesa-dri-gallium
|
||||
postmarketos-base
|
||||
alsa-utils
|
||||
alsa-ucm-conf
|
||||
soc-sprd-audio-sc8830
|
||||
"
|
||||
makedepends="devicepkg-dev"
|
||||
install="$pkgname.post-install"
|
||||
subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
|
||||
source="deviceinfo"
|
||||
|
||||
build() {
|
||||
devicepkg_build $startdir $pkgname
|
||||
}
|
||||
|
||||
package() {
|
||||
devicepkg_package $startdir $pkgname
|
||||
}
|
||||
|
||||
nonfree_firmware() {
|
||||
pkgdesc="Firmware for Wi-Fi"
|
||||
depends="firmware-samsung-kiran"
|
||||
mkdir "$subpkgdir"
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
0df41c94df913a4280cda14bba98e2b343f422152691924d883afac8c8e73e1958df19e2d218130cd26ab952cda5e17bed7f488fca0c2fe0909728bd5dfbd9dd deviceinfo
|
||||
"
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Create mount point and /csa mount point in fstab
|
||||
if [ -z "$(grep /csa /etc/fstab)" ]; then
|
||||
mkdir -p /csa
|
||||
echo "/dev/disk/by-partlabel/csa /csa ext4 data=journal,nofail 0 2" >> /etc/fstab
|
||||
fi
|
23
device/testing/device-samsung-kiran/deviceinfo
Normal file
23
device/testing/device-samsung-kiran/deviceinfo
Normal file
|
@ -0,0 +1,23 @@
|
|||
# Reference: <https://postmarketos.org/deviceinfo>
|
||||
# Please use double quotes only. You can source this file in shell
|
||||
# scripts.
|
||||
|
||||
deviceinfo_format_version="0"
|
||||
deviceinfo_name="Samsung Z1"
|
||||
deviceinfo_manufacturer="Samsung"
|
||||
deviceinfo_codename="samsung-kiran"
|
||||
deviceinfo_year="2015"
|
||||
deviceinfo_arch="armv7"
|
||||
|
||||
# Device related
|
||||
deviceinfo_chassis="handset"
|
||||
deviceinfo_keyboard="false"
|
||||
deviceinfo_external_storage="true"
|
||||
deviceinfo_screen_width="480"
|
||||
deviceinfo_screen_height="800"
|
||||
|
||||
# Bootloader related
|
||||
deviceinfo_flash_method="heimdall-isorec"
|
||||
deviceinfo_flash_heimdall_partition_kernel="KERNEL"
|
||||
deviceinfo_flash_heimdall_partition_initfs="RAMDISK"
|
||||
deviceinfo_flash_heimdall_partition_system="USER"
|
28
device/testing/firmware-samsung-kiran/APKBUILD
Normal file
28
device/testing/firmware-samsung-kiran/APKBUILD
Normal file
|
@ -0,0 +1,28 @@
|
|||
pkgname=firmware-samsung-kiran
|
||||
pkgver=0.1
|
||||
pkgrel=0
|
||||
_commit="f2e766aad4bf57439ba343395d458a3d95f06c8b"
|
||||
pkgdesc="Samsung Z1 Firmware"
|
||||
url="https://github.com/peremen/firmware-samsung-kiran"
|
||||
arch="armv7"
|
||||
license="proprietary"
|
||||
source="$pkgname-$_commit.tar.gz::https://github.com/peremen/firmware-samsung-kiran/archive/$_commit.tar.gz"
|
||||
options="!check !strip !archcheck !spdx !tracedeps pmb:cross-native"
|
||||
builddir="$srcdir/firmware-samsung-kiran-$_commit"
|
||||
|
||||
package() {
|
||||
# Wi-Fi
|
||||
install -Dm644 wifi/nvram_mfg_bcm4343s_cob.txt \
|
||||
"$pkgdir"/lib/firmware/postmarketos/nvram_mfg_bcm4343s.txt
|
||||
install -Dm644 wifi/nvram_net_bcm4343s_cob.txt \
|
||||
"$pkgdir"/lib/firmware/postmarketos/nvram_net_bcm4343s.txt
|
||||
install -Dm644 wifi/wlan_apsta_bcm4343s.bin \
|
||||
"$pkgdir"/lib/firmware/postmarketos/wlan_apsta_bcm4343s.bin
|
||||
install -Dm644 wifi/wlan_mfg_bcm4343s.bin \
|
||||
"$pkgdir"/lib/firmware/postmarketos/wlan_mfg_bcm4343s.bin
|
||||
install -Dm644 wifi/wlan_net_bcm4343s.bin \
|
||||
"$pkgdir"/lib/firmware/postmarketos/wlan_net_bcm4343s.bin
|
||||
}
|
||||
sha512sums="
|
||||
ea3d0ff9c8d87df70b602225008e589c8057868467e76ebddd8395a5347eaa7ff4873326bce96ec463db167c7e9d3305753b9e10519616a6d0b84298fdef097b firmware-samsung-kiran-f2e766aad4bf57439ba343395d458a3d95f06c8b.tar.gz
|
||||
"
|
|
@ -0,0 +1,55 @@
|
|||
From 51d377c1f56e3812c70c4fc2626f3ee80524e262 Mon Sep 17 00:00:00 2001
|
||||
From: Shinjo Park <peremen@gmail.com>
|
||||
Date: Tue, 28 Jun 2022 23:25:07 +0200
|
||||
Subject: [PATCH 1/4] samsung-kiran: Add initramfs files required for isorec
|
||||
|
||||
---
|
||||
usr/kiran_initramfs.list | 36 ++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 36 insertions(+)
|
||||
create mode 100644 usr/kiran_initramfs.list
|
||||
|
||||
diff --git a/usr/kiran_initramfs.list b/usr/kiran_initramfs.list
|
||||
new file mode 100644
|
||||
index 00000000..256d31e1
|
||||
--- /dev/null
|
||||
+++ b/usr/kiran_initramfs.list
|
||||
@@ -0,0 +1,36 @@
|
||||
+dir /cache 755 0 0
|
||||
+dir /dev 755 0 0
|
||||
+dir /dev/block 755 0 0
|
||||
+nod /dev/block/mmcblk0 600 0 0 b 179 0
|
||||
+nod /dev/block/mmcblk0p1 600 0 0 b 179 1
|
||||
+nod /dev/block/mmcblk0p2 600 0 0 b 179 2
|
||||
+nod /dev/block/mmcblk0p3 600 0 0 b 179 3
|
||||
+nod /dev/block/mmcblk0p4 600 0 0 b 179 4
|
||||
+nod /dev/block/mmcblk0p5 600 0 0 b 179 5
|
||||
+nod /dev/block/mmcblk0p6 600 0 0 b 179 6
|
||||
+nod /dev/block/mmcblk0p7 600 0 0 b 179 7
|
||||
+nod /dev/block/mmcblk0p8 600 0 0 b 179 8
|
||||
+nod /dev/block/mmcblk0p9 600 0 0 b 179 9
|
||||
+nod /dev/block/mmcblk0p10 600 0 0 b 179 10
|
||||
+nod /dev/block/mmcblk0p11 600 0 0 b 179 11
|
||||
+nod /dev/block/mmcblk0p12 600 0 0 b 179 12
|
||||
+nod /dev/block/mmcblk0p13 600 0 0 b 179 13
|
||||
+nod /dev/block/mmcblk0p14 600 0 0 b 179 14
|
||||
+nod /dev/block/mmcblk0p15 600 0 0 b 179 15
|
||||
+nod /dev/block/mmcblk0p16 600 0 0 b 179 16
|
||||
+nod /dev/block/mmcblk0p17 600 0 0 b 179 17
|
||||
+nod /dev/block/mmcblk0p18 600 0 0 b 179 18
|
||||
+nod /dev/block/mmcblk0p19 600 0 0 b 179 19
|
||||
+nod /dev/block/mmcblk0p20 600 0 0 b 179 20
|
||||
+nod /dev/block/mmcblk0p21 600 0 0 b 179 21
|
||||
+nod /dev/block/mmcblk0p22 600 0 0 b 179 22
|
||||
+nod /dev/block/mmcblk0p23 600 0 0 b 179 23
|
||||
+nod /dev/block/mmcblk0p24 600 0 0 b 179 24
|
||||
+slink /init /stage1/init 777 0 0
|
||||
+dir /proc 755 0 0
|
||||
+dir /stage1 755 0 0
|
||||
+file /stage1/busybox source/usr/kiran_initramfs_files/busybox 755 0 0
|
||||
+file /stage1/init source/usr/kiran_initramfs_files/init 755 0 0
|
||||
+dir /sys 755 0 0
|
||||
+dir /mnt 755 0 0
|
||||
+dir /mnt/.lfs 755 0 0
|
||||
--
|
||||
2.34.1
|
||||
|
28
device/testing/linux-samsung-kiran/0002-sprd-drm.patch
Normal file
28
device/testing/linux-samsung-kiran/0002-sprd-drm.patch
Normal file
|
@ -0,0 +1,28 @@
|
|||
From 1448e53fcaa4c6d787b2dcecbdc1f3103bfe77f4 Mon Sep 17 00:00:00 2001
|
||||
From: Shinjo Park <peremen@gmail.com>
|
||||
Date: Tue, 28 Jun 2022 23:25:49 +0200
|
||||
Subject: [PATCH 2/4] samsung-kiran: Fix building when CONFIG_DRM_SPRD is false
|
||||
|
||||
---
|
||||
drivers/video/sprdfb/sprdfb_dispc.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/drivers/video/sprdfb/sprdfb_dispc.c b/drivers/video/sprdfb/sprdfb_dispc.c
|
||||
index a29d6f9e..b3fbea20 100644
|
||||
--- a/drivers/video/sprdfb/sprdfb_dispc.c
|
||||
+++ b/drivers/video/sprdfb/sprdfb_dispc.c
|
||||
@@ -362,7 +362,11 @@ extern void dsi_irq_trick(void);
|
||||
#endif
|
||||
|
||||
/* FIXME:!! when we not clear the register in dispc, phone doesn't bootup */
|
||||
+#ifdef CONFIG_DRM_SPRD
|
||||
extern u32 dispc_int_status;
|
||||
+#else
|
||||
+u32 dispc_int_status;
|
||||
+#endif
|
||||
//static uint32_t underflow_ever_happened = 0;
|
||||
static irqreturn_t dispc_isr(int irq, void *data)
|
||||
{
|
||||
--
|
||||
2.34.1
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
From 48dec0cc97937dc39b622dcf469672ce7bc21c00 Mon Sep 17 00:00:00 2001
|
||||
From: Shinjo Park <peremen@gmail.com>
|
||||
Date: Tue, 28 Jun 2022 23:26:29 +0200
|
||||
Subject: [PATCH 3/4] mmc: Block access of RPMB partitions for normal read and
|
||||
write
|
||||
|
||||
---
|
||||
drivers/mmc/card/block.c | 13 +++++++++++++
|
||||
drivers/mmc/card/queue.c | 2 +-
|
||||
drivers/mmc/card/queue.h | 2 ++
|
||||
3 files changed, 16 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
|
||||
index 366d3528..0927a7b1 100644
|
||||
--- a/drivers/mmc/card/block.c
|
||||
+++ b/drivers/mmc/card/block.c
|
||||
@@ -894,6 +894,19 @@ static inline void mmc_blk_reset_success(struct mmc_blk_data *md, int type)
|
||||
md->reset_done &= ~type;
|
||||
}
|
||||
|
||||
+int mmc_access_rpmb(struct mmc_queue *mq)
|
||||
+{
|
||||
+ struct mmc_blk_data *md = mq->data;
|
||||
+ /*
|
||||
+ * If this is a RPMB partition access, return ture
|
||||
+ */
|
||||
+ if (md && md->part_type == EXT_CSD_PART_CONFIG_ACC_RPMB)
|
||||
+ return true;
|
||||
+
|
||||
+ return false;
|
||||
+}
|
||||
+EXPORT_SYMBOL_GPL(mmc_access_rpmb);
|
||||
+
|
||||
static int mmc_blk_issue_discard_rq(struct mmc_queue *mq, struct request *req)
|
||||
{
|
||||
struct mmc_blk_data *md = mq->data;
|
||||
diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c
|
||||
index 9447a0e9..645519fe 100644
|
||||
--- a/drivers/mmc/card/queue.c
|
||||
+++ b/drivers/mmc/card/queue.c
|
||||
@@ -37,7 +37,7 @@ static int mmc_prep_request(struct request_queue *q, struct request *req)
|
||||
return BLKPREP_KILL;
|
||||
}
|
||||
|
||||
- if (mq && mmc_card_removed(mq->card))
|
||||
+ if (mq && (mmc_card_removed(mq->card) || mmc_access_rpmb(mq)))
|
||||
return BLKPREP_KILL;
|
||||
|
||||
req->cmd_flags |= REQ_DONTPREP;
|
||||
diff --git a/drivers/mmc/card/queue.h b/drivers/mmc/card/queue.h
|
||||
index 5752d500..99e6521e 100644
|
||||
--- a/drivers/mmc/card/queue.h
|
||||
+++ b/drivers/mmc/card/queue.h
|
||||
@@ -73,4 +73,6 @@ extern void mmc_queue_bounce_post(struct mmc_queue_req *);
|
||||
extern int mmc_packed_init(struct mmc_queue *, struct mmc_card *);
|
||||
extern void mmc_packed_clean(struct mmc_queue *);
|
||||
|
||||
+extern int mmc_access_rpmb(struct mmc_queue *);
|
||||
+
|
||||
#endif
|
||||
--
|
||||
2.34.1
|
||||
|
|
@ -0,0 +1,385 @@
|
|||
From 53f964b0dad5d9b8ede8cefce759d870068a48a6 Mon Sep 17 00:00:00 2001
|
||||
From: Shinjo Park <peremen@gmail.com>
|
||||
Date: Tue, 28 Jun 2022 23:47:09 +0200
|
||||
Subject: [PATCH 4/4] samsung-kiran: Fix sprdfb to get a working screen
|
||||
|
||||
* Specify sprdfb memory address so mmap() won't fail
|
||||
* Apply commit 6632662e89687748f20a023eb443c53d77fc270a from Tizen
|
||||
(profile/mobile/platform/kernel/linux-3.10-sc7730) to fix broken
|
||||
ioctl()
|
||||
---
|
||||
.../boot/dts/sprd-sc7727-tizen_kiran-r00.dtsi | 2 +
|
||||
.../boot/dts/sprd-sc7727-tizen_kiran-r01.dtsi | 2 +
|
||||
.../boot/dts/sprd-sc7727-tizen_kiran-r02.dtsi | 2 +
|
||||
.../boot/dts/sprd-sc7727-tizen_kiran-r03.dtsi | 2 +
|
||||
.../boot/dts/sprd-sc7727-tizen_kiran-r04.dtsi | 2 +
|
||||
.../boot/dts/sprd-sc7727-tizen_kiran-r05.dtsi | 2 +
|
||||
.../boot/dts/sprd-sc7727-tizen_kiran-r06.dtsi | 2 +
|
||||
drivers/video/sprdfb/sprdfb.h | 20 ++++++---
|
||||
drivers/video/sprdfb/sprdfb_dispc.c | 41 +++++++++++--------
|
||||
drivers/video/sprdfb/sprdfb_main.c | 22 +++++-----
|
||||
include/video/sprd_fb.h | 20 +++++++--
|
||||
11 files changed, 82 insertions(+), 35 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r00.dtsi b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r00.dtsi
|
||||
index 1e92c956..b97ce36d 100644
|
||||
--- a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r00.dtsi
|
||||
+++ b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r00.dtsi
|
||||
@@ -502,6 +502,8 @@
|
||||
clocks = <&clk_256m>, <&clk_256m>, <&clk_384m>, <&clk_aon_apb>, <&clk_dispc0>, <&clk_dispc0_dbi>, <&clk_dispc0_dpi>, <&clk_disp_emc>, <&clk_spi2>, <&ext_26m>;
|
||||
clock-src = <256000000 256000000 384000000>;
|
||||
dpi_clk_div = <7>;
|
||||
+ sprd,fb_mem = <0x9efffc00 0x177000>;
|
||||
+ sprd,fb_display_size = <480 800>;
|
||||
};
|
||||
gsp:gsp@20a00000 {
|
||||
compatible = "sprd,gsp";
|
||||
diff --git a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r01.dtsi b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r01.dtsi
|
||||
index 17bdf44d..90f77984 100644
|
||||
--- a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r01.dtsi
|
||||
+++ b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r01.dtsi
|
||||
@@ -506,6 +506,8 @@
|
||||
clocks = <&clk_256m>, <&clk_256m>, <&clk_384m>, <&clk_aon_apb>, <&clk_dispc0>, <&clk_dispc0_dbi>, <&clk_dispc0_dpi>, <&clk_disp_emc>, <&clk_spi2>, <&ext_26m>;
|
||||
clock-src = <256000000 256000000 384000000>;
|
||||
dpi_clk_div = <7>;
|
||||
+ sprd,fb_mem = <0x9efffc00 0x177000>;
|
||||
+ sprd,fb_display_size = <480 800>;
|
||||
};
|
||||
gsp:gsp@20a00000 {
|
||||
compatible = "sprd,gsp";
|
||||
diff --git a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r02.dtsi b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r02.dtsi
|
||||
index 0507838b..59750f75 100644
|
||||
--- a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r02.dtsi
|
||||
+++ b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r02.dtsi
|
||||
@@ -506,6 +506,8 @@
|
||||
clocks = <&clk_256m>, <&clk_256m>, <&clk_384m>, <&clk_aon_apb>, <&clk_dispc0>, <&clk_dispc0_dbi>, <&clk_dispc0_dpi>, <&clk_disp_emc>, <&clk_spi2>, <&ext_26m>;
|
||||
clock-src = <256000000 256000000 384000000>;
|
||||
dpi_clk_div = <7>;
|
||||
+ sprd,fb_mem = <0x9efffc00 0x177000>;
|
||||
+ sprd,fb_display_size = <480 800>;
|
||||
};
|
||||
gsp:gsp@20a00000 {
|
||||
compatible = "sprd,gsp";
|
||||
diff --git a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r03.dtsi b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r03.dtsi
|
||||
index 0507838b..59750f75 100644
|
||||
--- a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r03.dtsi
|
||||
+++ b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r03.dtsi
|
||||
@@ -506,6 +506,8 @@
|
||||
clocks = <&clk_256m>, <&clk_256m>, <&clk_384m>, <&clk_aon_apb>, <&clk_dispc0>, <&clk_dispc0_dbi>, <&clk_dispc0_dpi>, <&clk_disp_emc>, <&clk_spi2>, <&ext_26m>;
|
||||
clock-src = <256000000 256000000 384000000>;
|
||||
dpi_clk_div = <7>;
|
||||
+ sprd,fb_mem = <0x9efffc00 0x177000>;
|
||||
+ sprd,fb_display_size = <480 800>;
|
||||
};
|
||||
gsp:gsp@20a00000 {
|
||||
compatible = "sprd,gsp";
|
||||
diff --git a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r04.dtsi b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r04.dtsi
|
||||
index 01a6e42c..2b13cbe9 100644
|
||||
--- a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r04.dtsi
|
||||
+++ b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r04.dtsi
|
||||
@@ -506,6 +506,8 @@
|
||||
clocks = <&clk_256m>, <&clk_256m>, <&clk_384m>, <&clk_aon_apb>, <&clk_dispc0>, <&clk_dispc0_dbi>, <&clk_dispc0_dpi>, <&clk_disp_emc>, <&clk_spi2>, <&ext_26m>;
|
||||
clock-src = <256000000 256000000 384000000>;
|
||||
dpi_clk_div = <7>;
|
||||
+ sprd,fb_mem = <0x9efffc00 0x177000>;
|
||||
+ sprd,fb_display_size = <480 800>;
|
||||
};
|
||||
gsp:gsp@20a00000 {
|
||||
compatible = "sprd,gsp";
|
||||
diff --git a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r05.dtsi b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r05.dtsi
|
||||
index 4dd47d23..ab531512 100644
|
||||
--- a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r05.dtsi
|
||||
+++ b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r05.dtsi
|
||||
@@ -511,6 +511,8 @@
|
||||
clocks = <&clk_256m>, <&clk_256m>, <&clk_384m>, <&clk_aon_apb>, <&clk_dispc0>, <&clk_dispc0_dbi>, <&clk_dispc0_dpi>, <&clk_disp_emc>, <&clk_spi2>, <&ext_26m>;
|
||||
clock-src = <256000000 256000000 384000000>;
|
||||
dpi_clk_div = <7>;
|
||||
+ sprd,fb_mem = <0x9efffc00 0x177000>;
|
||||
+ sprd,fb_display_size = <480 800>;
|
||||
};
|
||||
gsp:gsp@20a00000 {
|
||||
compatible = "sprd,gsp";
|
||||
diff --git a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r06.dtsi b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r06.dtsi
|
||||
index d8f2cbb7..b6b902e6 100644
|
||||
--- a/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r06.dtsi
|
||||
+++ b/arch/arm/boot/dts/sprd-sc7727-tizen_kiran-r06.dtsi
|
||||
@@ -511,6 +511,8 @@
|
||||
clocks = <&clk_256m>, <&clk_256m>, <&clk_384m>, <&clk_aon_apb>, <&clk_dispc0>, <&clk_dispc0_dbi>, <&clk_dispc0_dpi>, <&clk_disp_emc>, <&clk_spi2>, <&ext_26m>;
|
||||
clock-src = <256000000 256000000 384000000>;
|
||||
dpi_clk_div = <7>;
|
||||
+ sprd,fb_mem = <0x9efffc00 0x177000>;
|
||||
+ sprd,fb_display_size = <480 800>;
|
||||
};
|
||||
gsp:gsp@20a00000 {
|
||||
compatible = "sprd,gsp";
|
||||
diff --git a/drivers/video/sprdfb/sprdfb.h b/drivers/video/sprdfb/sprdfb.h
|
||||
index 39048eb2..7888aed5 100755
|
||||
--- a/drivers/video/sprdfb/sprdfb.h
|
||||
+++ b/drivers/video/sprdfb/sprdfb.h
|
||||
@@ -112,6 +112,11 @@ enum {
|
||||
SPRD_DISPLAY_UPDATE_MAX
|
||||
};
|
||||
|
||||
+typedef struct overlay_size {
|
||||
+ uint16_t hsize;
|
||||
+ uint16_t vsize;
|
||||
+} overlay_size;
|
||||
+
|
||||
typedef struct overlay_rect {
|
||||
uint16_t x;
|
||||
uint16_t y;
|
||||
@@ -119,13 +124,19 @@ typedef struct overlay_rect {
|
||||
uint16_t h;
|
||||
} overlay_rect;
|
||||
|
||||
+typedef struct overlay_endian {
|
||||
+ uint16_t y;
|
||||
+ uint16_t u;
|
||||
+ uint16_t v;
|
||||
+} overlay_endian;
|
||||
+
|
||||
typedef struct overlay_info {
|
||||
int layer_index;
|
||||
int data_type;
|
||||
- int y_endian;
|
||||
- int uv_endian;
|
||||
- bool rb_switch;
|
||||
+ overlay_size size;
|
||||
overlay_rect rect;
|
||||
+ overlay_endian endian;
|
||||
+ bool rb_switch;
|
||||
} overlay_info;
|
||||
|
||||
#if defined (CONFIG_DRM_SPRD) && defined (CONFIG_SPRDFB_USE_GEM_INDEX)
|
||||
@@ -154,8 +165,7 @@ typedef struct overlay_display {
|
||||
|
||||
#ifdef SPRDFB_OVERLAY_DEBUG
|
||||
struct ov_info {
|
||||
- int y_endian;
|
||||
- int uv_endian;
|
||||
+ overlay_endian endian;
|
||||
int layer_index;
|
||||
unsigned char *osd_buffer;
|
||||
unsigned char *img_buffer;
|
||||
diff --git a/drivers/video/sprdfb/sprdfb_dispc.c b/drivers/video/sprdfb/sprdfb_dispc.c
|
||||
index b3fbea20..6a071dc4 100644
|
||||
--- a/drivers/video/sprdfb/sprdfb_dispc.c
|
||||
+++ b/drivers/video/sprdfb/sprdfb_dispc.c
|
||||
@@ -1838,9 +1838,11 @@ static int overlay_close(struct sprdfb_device *dev, uint32_t layer_index)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int overlay_img_configure(struct sprdfb_device *dev, int type, overlay_rect *rect, int y_endian, int uv_endian, bool rb_switch)
|
||||
+static int overlay_img_configure(struct sprdfb_device *dev, int type, overlay_size *size,
|
||||
+ overlay_rect *rect, overlay_endian *endian, bool rb_switch)
|
||||
{
|
||||
uint32_t reg_value;
|
||||
+ int y_endian = endian->y, u_endian = endian->u, v_endian = endian->v;
|
||||
|
||||
pr_debug("sprdfb: [%s] : %d, (%d, %d,%d,%d)\n", __FUNCTION__, type, rect->x, rect->y, rect->h, rect->w);
|
||||
|
||||
@@ -1849,15 +1851,16 @@ static int overlay_img_configure(struct sprdfb_device *dev, int type, overlay_re
|
||||
return -1;
|
||||
}
|
||||
|
||||
- if((y_endian >= SPRD_IMG_DATA_ENDIAN_LIMIT) || (uv_endian >= SPRD_IMG_DATA_ENDIAN_LIMIT)){
|
||||
- printk(KERN_ERR "sprdfb: Overlay config fail (y, uv endian error)");
|
||||
+ if((y_endian >= SPRD_IMG_DATA_ENDIAN_LIMIT) || (u_endian >= SPRD_IMG_DATA_ENDIAN_LIMIT) ||
|
||||
+ (v_endian >= SPRD_IMG_DATA_ENDIAN_LIMIT)){
|
||||
+ printk(KERN_ERR "sprdfb: Overlay config fail (endian error)");
|
||||
return -1;
|
||||
}
|
||||
|
||||
dispc_clear_bits(BIT(2), DISPC_OSD_CTRL);
|
||||
|
||||
reg_value = dispc_read(DISPC_IMG_CTRL);
|
||||
- reg_value |= (y_endian << 8)|(uv_endian<< 10)|(type << 4);
|
||||
+ reg_value |= (y_endian << 8)|(u_endian << 10)|(v_endian << 12)|(type << 4);
|
||||
if(rb_switch)
|
||||
reg_value |= (1 << 15);
|
||||
|
||||
@@ -1866,7 +1869,7 @@ static int overlay_img_configure(struct sprdfb_device *dev, int type, overlay_re
|
||||
reg_value = (rect->h << 16) | (rect->w);
|
||||
dispc_write(reg_value, DISPC_IMG_SIZE_XY);
|
||||
|
||||
- dispc_write(rect->w, DISPC_IMG_PITCH);
|
||||
+ dispc_write(size->hsize, DISPC_IMG_PITCH);
|
||||
|
||||
reg_value = (rect->y << 16) | (rect->x);
|
||||
dispc_write(reg_value, DISPC_IMG_DISP_XY);
|
||||
@@ -1903,9 +1906,11 @@ static int overlay_img_configure(struct sprdfb_device *dev, int type, overlay_re
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int overlay_osd_configure(struct sprdfb_device *dev, int type, overlay_rect *rect, int y_endian, int uv_endian, bool rb_switch)
|
||||
+static int overlay_osd_configure(struct sprdfb_device *dev, int type, overlay_size *size,
|
||||
+ overlay_rect *rect, overlay_endian *endian, bool rb_switch)
|
||||
{
|
||||
uint32_t reg_value;
|
||||
+ int y_endian = endian->y;
|
||||
|
||||
pr_debug("sprdfb: [%s] : %d, (%d, %d,%d,%d)\n", __FUNCTION__, type, rect->x, rect->y, rect->h, rect->w);
|
||||
|
||||
@@ -1931,7 +1936,7 @@ static int overlay_osd_configure(struct sprdfb_device *dev, int type, overlay_re
|
||||
reg_value = (rect->h << 16) | (rect->w);
|
||||
dispc_write(reg_value, DISPC_OSD_SIZE_XY);
|
||||
|
||||
- dispc_write(rect->w, DISPC_OSD_PITCH);
|
||||
+ dispc_write(size->hsize, DISPC_OSD_PITCH);
|
||||
|
||||
reg_value = (rect->y << 16) | (rect->x);
|
||||
dispc_write(reg_value, DISPC_OSD_DISP_XY);
|
||||
@@ -1953,16 +1958,16 @@ static int32_t sprdfb_dispc_enable_overlay(struct sprdfb_device *dev, struct ove
|
||||
bool is_refresh_lock_down=false;
|
||||
bool is_clk_enable=false;
|
||||
|
||||
- pr_info("%s:layer[%d]type[%d]endian[%d %d]rect[%d %d %d %d]\n",
|
||||
+ pr_info("%s:layer[%d]type[%d]sz[%d %d]r[%d %d %d %d]endian[%d %d %d]\n",
|
||||
"set_ovl", info->layer_index, info->data_type,
|
||||
- info->y_endian, info->uv_endian,
|
||||
- info->rect.x, info->rect.y, info->rect.w, info->rect.h);
|
||||
+ info->size.hsize, info->size.vsize,
|
||||
+ info->rect.x, info->rect.y, info->rect.w, info->rect.h,
|
||||
+ info->endian.y, info->endian.u, info->endian.v);
|
||||
dev->dbg_cnt = 3;
|
||||
|
||||
#ifdef SPRDFB_OVERLAY_DEBUG
|
||||
- dev->overlay_data.y_endian = info->y_endian;
|
||||
- dev->overlay_data.uv_endian = info->uv_endian;
|
||||
dev->overlay_data.rect = info->rect;
|
||||
+ dev->overlay_data.endian = info->endian;
|
||||
#endif
|
||||
|
||||
if (NULL == info || ((info->layer_index != SPRD_LAYER_IMG) &&
|
||||
@@ -1994,12 +1999,16 @@ static int32_t sprdfb_dispc_enable_overlay(struct sprdfb_device *dev, struct ove
|
||||
#endif
|
||||
|
||||
if(SPRD_LAYER_IMG == info->layer_index){
|
||||
- result = overlay_img_configure(dev, info->data_type, &(info->rect), info->y_endian, info->uv_endian, info->rb_switch);
|
||||
+ result = overlay_img_configure(dev, info->data_type, &info->size, &info->rect,
|
||||
+ &info->endian, info->rb_switch);
|
||||
}else if(SPRD_LAYER_OSD == info->layer_index){
|
||||
- result = overlay_osd_configure(dev, info->data_type, &(info->rect), info->y_endian, info->uv_endian, info->rb_switch);
|
||||
+ result = overlay_osd_configure(dev, info->data_type, &info->size, &info->rect,
|
||||
+ &info->endian, info->rb_switch);
|
||||
}else if (SPRD_LAYER_BOTH == info->layer_index) {
|
||||
- result = overlay_osd_configure(dev, info->data_type, &(info->rect), info->y_endian, info->uv_endian, info->rb_switch);
|
||||
- result = overlay_img_configure(dev, info->data_type, &(info->rect), info->y_endian, info->uv_endian, info->rb_switch);
|
||||
+ result = overlay_osd_configure(dev, info->data_type, &info->size, &info->rect,
|
||||
+ &info->endian, info->rb_switch);
|
||||
+ result = overlay_img_configure(dev, info->data_type, &info->size, &info->rect,
|
||||
+ &info->endian, info->rb_switch);
|
||||
}else{
|
||||
printk(KERN_ERR "sprdfb: sprdfb_dispc_enable_overlay fail. (invalid layer index)\n");
|
||||
}
|
||||
diff --git a/drivers/video/sprdfb/sprdfb_main.c b/drivers/video/sprdfb/sprdfb_main.c
|
||||
index 841d7b9b..0a7eccc7 100755
|
||||
--- a/drivers/video/sprdfb/sprdfb_main.c
|
||||
+++ b/drivers/video/sprdfb/sprdfb_main.c
|
||||
@@ -227,8 +227,8 @@ static int sprdfb_blank(int blank, struct fb_info *info)
|
||||
|
||||
static int setup_fb_mem(struct sprdfb_device *dev, struct platform_device *pdev)
|
||||
{
|
||||
-#ifdef CONFIG_PAN_DISPLAY
|
||||
- uint32_t len, addr;
|
||||
+ uint32_t len;
|
||||
+ void *addr;
|
||||
bool use_reserve_mem;
|
||||
uint32_t reserve_mem[2];
|
||||
int ret;
|
||||
@@ -282,11 +282,6 @@ static int setup_fb_mem(struct sprdfb_device *dev, struct platform_device *pdev)
|
||||
dev->fb->screen_base = (char*)addr;
|
||||
}
|
||||
return 0;
|
||||
-#else
|
||||
- dev->fb->fix.smem_start = 0;
|
||||
- dev->fb->fix.smem_len = 0;
|
||||
- dev->fb->screen_base = 0;
|
||||
-#endif
|
||||
}
|
||||
|
||||
static void setup_fb_info(struct sprdfb_device *dev)
|
||||
@@ -449,6 +444,7 @@ static int sprdfb_ioctl(struct fb_info *info, unsigned int cmd,
|
||||
overlay_display local_overlay_display;
|
||||
int layer_index;
|
||||
#endif
|
||||
+ int power_mode;
|
||||
void __user *argp = (void __user *)arg;
|
||||
|
||||
if(NULL == info){
|
||||
@@ -530,6 +526,11 @@ static int sprdfb_ioctl(struct fb_info *info, unsigned int cmd,
|
||||
}
|
||||
break;
|
||||
|
||||
+ case SPRD_FB_SET_POWER_MODE:
|
||||
+ result = copy_from_user(&power_mode, argp, sizeof(power_mode));
|
||||
+ printk("sprdfb: [%s]: SPRD_FB_SET_POWER_MODE (%d)\n", __FUNCTION__, power_mode);
|
||||
+ break;
|
||||
+
|
||||
default:
|
||||
printk(KERN_INFO "sprdfb: [%s]: unknown cmd(%d)\n", __FUNCTION__, cmd);
|
||||
break;
|
||||
@@ -647,9 +648,10 @@ static ssize_t sprdfb_overlay_info_show(struct device *dev,
|
||||
layer_type,
|
||||
fb_dev->overlay_data.osd_buffer,
|
||||
fb_dev->overlay_data.img_buffer);
|
||||
- pos += sprintf(buf+pos, "y_endian[%d], uv_endian[%d], ",
|
||||
- fb_dev->overlay_data.y_endian,
|
||||
- fb_dev->overlay_data.uv_endian);
|
||||
+ pos += sprintf(buf+pos, "y_endian[%d], u_endian[%d], v_endian[%d], ",
|
||||
+ fb_dev->overlay_data.endian.y,
|
||||
+ fb_dev->overlay_data.endian.u,
|
||||
+ fb_dev->overlay_data.endian.v);
|
||||
pos += sprintf(buf+pos, "dst: x[%d], y[%d], w[%d], h[%d]\n",
|
||||
fb_dev->overlay_data.rect.x,
|
||||
fb_dev->overlay_data.rect.y,
|
||||
diff --git a/include/video/sprd_fb.h b/include/video/sprd_fb.h
|
||||
index da4631f2..7171230b 100644
|
||||
--- a/include/video/sprd_fb.h
|
||||
+++ b/include/video/sprd_fb.h
|
||||
@@ -41,6 +41,11 @@ enum{
|
||||
SPRD_DISPLAY_OVERLAY_LIMIT
|
||||
};
|
||||
|
||||
+typedef struct overlay_setting_size {
|
||||
+ uint16_t hsize;
|
||||
+ uint16_t vsize;
|
||||
+} overlay_setting_size;
|
||||
+
|
||||
typedef struct overlay_setting_rect {
|
||||
uint16_t x; //start point - x
|
||||
uint16_t y; //start point - y
|
||||
@@ -48,13 +53,19 @@ typedef struct overlay_setting_rect {
|
||||
uint16_t h; //height
|
||||
}overlay_setting_rect;
|
||||
|
||||
+typedef struct overlay_setting_endian {
|
||||
+ uint16_t y;
|
||||
+ uint16_t u;
|
||||
+ uint16_t v;
|
||||
+} overlay_setting_endian;
|
||||
+
|
||||
typedef struct overlay_setting {
|
||||
int layer_index;
|
||||
int data_type;
|
||||
- int y_endian;
|
||||
- int uv_endian;
|
||||
- bool rb_switch;
|
||||
+ overlay_setting_size size;
|
||||
overlay_setting_rect rect;
|
||||
+ overlay_setting_endian endian;
|
||||
+ bool rb_switch;
|
||||
} overlay_setting;
|
||||
|
||||
typedef struct overlay_display_setting {
|
||||
@@ -75,5 +86,6 @@ int sprdfb_IOdeinit(void);
|
||||
#define SPRD_FB_DISPLAY_OVERLAY _IOW(SPRD_FB_IOCTL_MAGIC, 2, unsigned int)
|
||||
#define SPRD_FB_CHANGE_FPS _IOW(SPRD_FB_IOCTL_MAGIC, 3, unsigned int)
|
||||
#define SPRD_FB_IS_REFRESH_DONE _IOW(SPRD_FB_IOCTL_MAGIC, 4, unsigned int)
|
||||
-#define SPRD_FB_UNSET_OVERLAY _IOW(SPRD_FB_IOCTL_MAGIC, 5, unsigned int)
|
||||
+#define SPRD_FB_SET_POWER_MODE _IOW(SPRD_FB_IOCTL_MAGIC, 5, unsigned int)
|
||||
+#define SPRD_FB_UNSET_OVERLAY _IOW(SPRD_FB_IOCTL_MAGIC, 6, unsigned int)
|
||||
#endif
|
||||
--
|
||||
2.34.1
|
||||
|
105
device/testing/linux-samsung-kiran/APKBUILD
Normal file
105
device/testing/linux-samsung-kiran/APKBUILD
Normal file
|
@ -0,0 +1,105 @@
|
|||
# Reference: <https://postmarketos.org/vendorkernel>
|
||||
# Kernel config based on: arch/arm/configs/tizen_kiran_defconfig
|
||||
|
||||
pkgname=linux-samsung-kiran
|
||||
pkgver=3.10.17
|
||||
pkgrel=0
|
||||
pkgdesc="Samsung Z1 kernel fork"
|
||||
arch="armv7"
|
||||
_carch="arm"
|
||||
_flavor="samsung-kiran"
|
||||
url="https://kernel.org"
|
||||
license="GPL-2.0-only"
|
||||
options="!strip !check !tracedeps pmb:cross-native"
|
||||
makedepends="
|
||||
bash
|
||||
bc
|
||||
bison
|
||||
devicepkg-dev
|
||||
flex
|
||||
openssl-dev
|
||||
perl
|
||||
linux-headers
|
||||
dtbtool-sprd
|
||||
findutils
|
||||
busybox-static-armv7
|
||||
tizen-mkdzimage
|
||||
"
|
||||
# Source
|
||||
_repository="kernel-samsung-kiran"
|
||||
_commit="99ac1b0fcbdf3ff9931521b48db8543f482e05b1"
|
||||
_config="config-$_flavor.$arch"
|
||||
source="
|
||||
$pkgname-$_commit.tar.gz::https://github.com/peremen/$_repository/archive/$_commit.tar.gz
|
||||
$_config
|
||||
gcc10-extern_YYLOC_global_declaration.patch
|
||||
gcc7-give-up-on-ilog2-const-optimizations.patch
|
||||
gcc8-fix-put-user.patch
|
||||
kernel-use-the-gnu89-standard-explicitly.patch
|
||||
0001-kiran-initramfs.patch
|
||||
0002-sprd-drm.patch
|
||||
0003-mmc-card-not-access-RPMB-partition-for-normal-read-and-write.patch
|
||||
0004-sprdfb-fix-mmap-address.patch
|
||||
sprdfb-check-for-buffering.patch
|
||||
sprdfb-fix-swapped-colors.patch
|
||||
init
|
||||
"
|
||||
builddir="$srcdir/$_repository-$_commit"
|
||||
_outdir="out"
|
||||
|
||||
prepare_isorec() {
|
||||
# Use Alpine's busybox.static instead of the pre-compiled busybox shipped
|
||||
# with the source
|
||||
mkdir -p "$builddir"/usr/kiran_initramfs_files
|
||||
cp -v /usr/$(arch_to_hostspec $arch)/bin/busybox.static \
|
||||
"$builddir"/usr/kiran_initramfs_files/busybox
|
||||
|
||||
# always use the initramfs from the ramdisk partition (like "isorec"),
|
||||
# so we can build it later and independently from the kernel. note that
|
||||
# the vendor Z1 kernel does not have initramfs, so we build our own one.
|
||||
cd "$builddir"/usr/
|
||||
cp -v "$srcdir"/init "$builddir"/usr/kiran_initramfs_files/init
|
||||
|
||||
# Paths supplied to gen_initramfs_list.sh are prefixed with "source/".
|
||||
ln -s "$builddir" "$builddir"/source
|
||||
|
||||
cd "$builddir"
|
||||
}
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
prepare_isorec
|
||||
|
||||
. downstreamkernel_prepare
|
||||
}
|
||||
|
||||
build() {
|
||||
unset LDFLAGS
|
||||
make O="$_outdir" ARCH="$_carch" CC="${CC:-gcc}" \
|
||||
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
|
||||
|
||||
# Generate master DTB and dzImage
|
||||
dtbTool-sprd -s 2048 -p "$_outdir/scripts/dtc/" -o "$_outdir/arch/arm/boot/dt.img" "$_outdir/arch/arm/boot/dts/"
|
||||
tizen-mkdzimage -d "$_outdir/arch/arm/boot/dt.img" -k "$_outdir/arch/arm/boot/zImage" -o "$_outdir/arch/arm/boot/dzImage"
|
||||
}
|
||||
|
||||
package() {
|
||||
KERNEL_IMAGE_NAME="dzImage" downstreamkernel_package "$builddir" "$pkgdir" "$_carch" \
|
||||
"$_flavor" "$_outdir"
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
89f4acbd05bc08639af14abc684173fc9b835be92327b8b5c28ed9af9cba94ae1f1454a122c3f75490a0a774b70365f67371fc05407cce776f9a1eb69f3dce75 linux-samsung-kiran-99ac1b0fcbdf3ff9931521b48db8543f482e05b1.tar.gz
|
||||
fb8cc16bed6e950cf8a4298b776549ca819eb63e4044f6b27179eb228686143b6551f2bfbdbbda2ccd7fd71562edceb27338811c9f48b99276cde6d831cd300c config-samsung-kiran.armv7
|
||||
2b48f1bf0e3f70703d2cdafc47d5e615cc7c56c70bec56b2e3297d3fa4a7a1321d649a8679614553dde8fe52ff1051dae38d5990e3744c9ca986d92187dcdbeb gcc10-extern_YYLOC_global_declaration.patch
|
||||
77eba606a71eafb36c32e9c5fe5e77f5e4746caac292440d9fb720763d766074a964db1c12bc76fe583c5d1a5c864219c59941f5e53adad182dbc70bf2bc14a7 gcc7-give-up-on-ilog2-const-optimizations.patch
|
||||
197d40a214ada87fcb2dfc0ae4911704b9a93354b75179cd6b4aadbb627a37ec262cf516921c84a8b1806809b70a7b440cdc8310a4a55fca5d2c0baa988e3967 gcc8-fix-put-user.patch
|
||||
ad0182a483791fc88e058838bc331b2f04a75ba291e763767babdb815efadfc3b4fda97e69e2e3f00a426cabea088e35297a92bd287592597d1e309be68ee92c kernel-use-the-gnu89-standard-explicitly.patch
|
||||
3d89a6d4db7aee2c828e86f1cb409417432a5a23a3530e1dfd269a9aa507a65b01904c689c6b19527ce8643ec2b3003725cd27d884e18a83b5b1b89b13b31e0e 0001-kiran-initramfs.patch
|
||||
b03938fa21fc703bf38c3487a28ce0933b7d33b89e1eda975d0ebfeb7cdad25371d7f2faac385b2e9307cf2927f967cbd257e411df289a4eb7301f92d3a8d270 0002-sprd-drm.patch
|
||||
6b79288d5f107faf2411543eacb99a53f1e4849010ca804a5154a3526a9716acb95836af54122e77538b9adff0b86a1770daa7cc12d092316f71c002189420a2 0003-mmc-card-not-access-RPMB-partition-for-normal-read-and-write.patch
|
||||
fb57fd711851225ccbc59d1fc7201270a503ccd859e43479331fce6e84460a2cbcda98e32e6a96a732a588383734f767a3950543354a60e8bf044372c3bf53cd 0004-sprdfb-fix-mmap-address.patch
|
||||
e33ed12de874c1c8bc9231aea3b0389b18ee0ff804e39c0f47d9cbf657ea19015370d6114846c2d142fbdb88f472f0e65811c53b9b335feb8ae2f30dffdf4846 sprdfb-check-for-buffering.patch
|
||||
6836001b24508d413a059f19b0c6f6f547037f68886c22159ad51be91d1a089e3d1d9ed79c3c62724648df7f810cd81d96a83f4a34368b373524b649e5539656 sprdfb-fix-swapped-colors.patch
|
||||
575c98ce265f71ef29cf496386262786d51c60c91c1ae0e8825e5dfeeca82d7bfc4684c293dad786c81f7620db85ba7cab8962060cfb8e9c44b1eb7656037ce4 init
|
||||
"
|
3436
device/testing/linux-samsung-kiran/config-samsung-kiran.armv7
Normal file
3436
device/testing/linux-samsung-kiran/config-samsung-kiran.armv7
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1 @@
|
|||
../../.shared-patches/linux/gcc10-extern_YYLOC_global_declaration.patch
|
|
@ -0,0 +1 @@
|
|||
../../.shared-patches/linux/gcc7-give-up-on-ilog2-const-optimizations.patch
|
1
device/testing/linux-samsung-kiran/gcc8-fix-put-user.patch
Symbolic link
1
device/testing/linux-samsung-kiran/gcc8-fix-put-user.patch
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../.shared-patches/linux/gcc8-fix-put-user.patch
|
29
device/testing/linux-samsung-kiran/init
Normal file
29
device/testing/linux-samsung-kiran/init
Normal file
|
@ -0,0 +1,29 @@
|
|||
#!/stage1/busybox sh
|
||||
|
||||
# Z1's Samsung kernel does not have initramfs, and directly boots to the system
|
||||
# root partition. Recovery and charger mode is differentiated by bootloader
|
||||
# arguments depending on the pressed key. Because cmdline should be handled by
|
||||
# init procedure, we always boot to the initramfs from the ramdisk partition.
|
||||
|
||||
_PATH="$PATH"
|
||||
export PATH=/stage1
|
||||
|
||||
busybox cd /
|
||||
busybox date >>boot.txt
|
||||
exec >>boot.txt 2>&1
|
||||
busybox rm init
|
||||
busybox mount -t proc proc /proc
|
||||
busybox mount -t sysfs sysfs /sys
|
||||
|
||||
# always use the "isorec"-style lzop compressed initramfs
|
||||
# from the ramdisk partition
|
||||
load_image=/stage1/isorec.cpio
|
||||
busybox lzop -dc /dev/block/mmcblk0p17 > ${load_image}
|
||||
busybox cpio -i < ${load_image}
|
||||
|
||||
busybox umount /sys
|
||||
busybox umount /proc
|
||||
busybox date >>boot.txt
|
||||
busybox rm -fr /stage1 /dev/*
|
||||
export PATH="${_PATH}"
|
||||
exec /init
|
|
@ -0,0 +1 @@
|
|||
../../.shared-patches/linux/kernel-use-the-gnu89-standard-explicitly.patch
|
|
@ -0,0 +1 @@
|
|||
../../.shared-patches/linux/sprd/sprdfb-check-for-buffering.patch
|
|
@ -0,0 +1 @@
|
|||
../../.shared-patches/linux/sprd/sprdfb-fix-swapped-colors.patch
|
Loading…
Reference in a new issue