From 4cb28c65aa61190bb3edfc6d1d510e4637a036b4 Mon Sep 17 00:00:00 2001 From: Hugo Osvaldo Barrera Date: Sun, 17 May 2026 20:23:03 +0200 Subject: [PATCH] device/community/u-boot-pinebookpro: upgrade to 2026.04 u-boot-pinebookpro-2020.07 has a bunch of patches: - 0001-enable-rockchip-rng.patch - Upstream as dc38a58360bfc3b21621dc9d5e626febd1aa93ec, in v2020.10 - 0002-enable-usb-keyboard.patch - Partially upstream as 3a57712496ab4383c528184ad1021908d6620162, in v2020.10 - 0003-display-support.patch bundles has multiple patches: 1. Upstream as 7fe2ebf3a326026b9ab80ed94da3cd217c84724d, in v2021.07 2. Upstream as 04d67ceb1c62012822430135be31e18c9c176d85, in v2021.07 3. **not upstream** 4. **not upstream** 5. Upstream in decbc18ed2a9788fcaad3ca349def7bad36741f4, in v2021.07 6. Upstream as a0c248ef0844da239096ecb4a83f9fa2b0535117, in v2021.07 7. Upstream in b197c934b11f611dcc1a083d90e68019d1e010cf, in v2021.01 8. Upstream as 4db3926874a6a17cca1f97a4fd92e58e9182a272, in v2021.07 9. No longer required (screen works fine after warm reboot). 10. Upstream in 216928c772798609ba2cb01a42b6f89832bb0587, in v2023.01 11. Upstream in fce1e9bba263fb5e3e589fdc5c2321f733e3de81, in v2022.07 - 0004-rk3399-light-pinebook-power-and-standby-leds.patch - LED support is already upstream. It's not as early as this patch, but its preferable to align with mainline. - 0005-support-SPI-flash-boot.patch - Superceded by f9d67436ce5814ea4e394317ddeaf1dbecb1c36b, in v2020.10 - 0006-implement-boot-menu.patch has four patches 1. Disable CONFIG_SPLASH_SOURCE instead of patching the source. 2. No compressed bmp logo in use. Unnecessary and labelled as a hack. 3. Irrelevant as we don't enable CONFIG_CMD_BOOTMENU for this device. 4. Kept patch "vidconsole-uclass: Implement ANSI_CURSOR_COLUMN". - 0007-rockchip-boot-order.patch - Upstream as b212ad24a604b00b240add35516b7381965deb31, in v2021.10 - 0008-rockchip-boot-order-add-usb.patch - **not upstream** - 0009-rk3399-support-compressed-kernel.patch - Upstream in 6c041b35bf8966ef3d48fc439c1c07131431d2f5, in v2020.10 Drop a few cosmetic and UX improvements were dropped. These are not strictly required for device support. For example, only the Esc or Ctrl+C key would interrupt boot, rather than u-boot's "press any key". Carrying these improvements puts a burden on maintenance and drifts us further from upstream. Rebasing all the way up to v2024.01 was mostly strightfoward, but v2024.07 had some major conflicts. The conflicting patch was already a hack, so the result is a hack too. Also drop "Define a very-opinionated boot sequence". This enables the truetype console (which no longer builds on ARM64) and relies of features which have been completely re-written upstream. Part-of: --- .../0001-enable-rockchip-rng.patch | 43 -- ...o-ensure-USB-keyboards-are-available.patch | 25 + ...-rockchip-rk_edp.c-Change-clock-rate.patch | 32 + .../0002-enable-usb-keyboard.patch | 37 - .../0003-display-support.patch | 646 ------------------ ...-uclass-Implement-ANSI_CURSOR_COLUMN.patch | 35 + .../0004-Configure-boot-splash-logo.patch | 54 ++ ...ight-pinebook-power-and-standby-leds.patch | 54 -- ...lear-ctrl-c-before-running-a-command.patch | 63 ++ .../0005-support-SPI-flash-boot.patch | 53 -- .../0006-implement-boot-menu.patch | 640 ----------------- ...sb0-after-mmc1-in-default-boot-order.patch | 27 + ...o-Fix-vcc_sdio-regulator-max-voltage.patch | 41 ++ .../0007-rockchip-boot-order.patch | 29 - .../0008-rockchip-boot-order-add-usb.patch | 55 -- ...009-rk3399-support-compressed-kernel.patch | 28 - device/community/u-boot-pinebookpro/APKBUILD | 48 +- 17 files changed, 302 insertions(+), 1608 deletions(-) delete mode 100644 device/community/u-boot-pinebookpro/0001-enable-rockchip-rng.patch create mode 100644 device/community/u-boot-pinebookpro/0001-pinebook-pro-ensure-USB-keyboards-are-available.patch create mode 100644 device/community/u-boot-pinebookpro/0002-drivers-video-rockchip-rk_edp.c-Change-clock-rate.patch delete mode 100644 device/community/u-boot-pinebookpro/0002-enable-usb-keyboard.patch delete mode 100644 device/community/u-boot-pinebookpro/0003-display-support.patch create mode 100644 device/community/u-boot-pinebookpro/0003-vidconsole-uclass-Implement-ANSI_CURSOR_COLUMN.patch create mode 100644 device/community/u-boot-pinebookpro/0004-Configure-boot-splash-logo.patch delete mode 100644 device/community/u-boot-pinebookpro/0004-rk3399-light-pinebook-power-and-standby-leds.patch create mode 100644 device/community/u-boot-pinebookpro/0005-cli-Clear-ctrl-c-before-running-a-command.patch delete mode 100644 device/community/u-boot-pinebookpro/0005-support-SPI-flash-boot.patch delete mode 100644 device/community/u-boot-pinebookpro/0006-implement-boot-menu.patch create mode 100644 device/community/u-boot-pinebookpro/0006-rockchip-move-usb0-after-mmc1-in-default-boot-order.patch create mode 100644 device/community/u-boot-pinebookpro/0007-pinebook-pro-Fix-vcc_sdio-regulator-max-voltage.patch delete mode 100644 device/community/u-boot-pinebookpro/0007-rockchip-boot-order.patch delete mode 100644 device/community/u-boot-pinebookpro/0008-rockchip-boot-order-add-usb.patch delete mode 100644 device/community/u-boot-pinebookpro/0009-rk3399-support-compressed-kernel.patch diff --git a/device/community/u-boot-pinebookpro/0001-enable-rockchip-rng.patch b/device/community/u-boot-pinebookpro/0001-enable-rockchip-rng.patch deleted file mode 100644 index c406ef9d6..000000000 --- a/device/community/u-boot-pinebookpro/0001-enable-rockchip-rng.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff --git a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi -index 1a2e24d3ef..296321d697 100644 ---- a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi -+++ b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi -@@ -24,6 +24,10 @@ - u-boot,dm-pre-reloc; - }; - -+&rng { -+ status = "okay"; -+}; -+ - &sdhci { - max-frequency = <25000000>; - u-boot,dm-pre-reloc; -diff --git a/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi b/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi -index bac09df4a3..cb8991aa25 100644 ---- a/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi -+++ b/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi -@@ -19,6 +19,10 @@ - }; - }; - -+&rng { -+ status = "okay"; -+}; -+ - &spi1 { - spi_flash: flash@0 { - u-boot,dm-pre-reloc; -diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig -index 0c129b9aeb..21eecf477c 100644 ---- a/configs/pinebook-pro-rk3399_defconfig -+++ b/configs/pinebook-pro-rk3399_defconfig -@@ -54,6 +54,8 @@ CONFIG_DM_PMIC_FAN53555=y - CONFIG_PMIC_RK8XX=y - CONFIG_REGULATOR_PWM=y - CONFIG_REGULATOR_RK8XX=y -+CONFIG_DM_RNG=y -+CONFIG_RNG_ROCKCHIP=y - CONFIG_PWM_ROCKCHIP=y - CONFIG_RAM_RK3399_LPDDR4=y - CONFIG_DM_RESET=y diff --git a/device/community/u-boot-pinebookpro/0001-pinebook-pro-ensure-USB-keyboards-are-available.patch b/device/community/u-boot-pinebookpro/0001-pinebook-pro-ensure-USB-keyboards-are-available.patch new file mode 100644 index 000000000..c7c4b841e --- /dev/null +++ b/device/community/u-boot-pinebookpro/0001-pinebook-pro-ensure-USB-keyboards-are-available.patch @@ -0,0 +1,25 @@ +From 7f584296b5c198c2a4b6fa80cf33ee52e00eec6a Mon Sep 17 00:00:00 2001 +From: Hugo Osvaldo Barrera +Date: Tue, 19 May 2026 12:38:40 +0200 +Subject: [PATCH 1/8] pinebook-pro: ensure USB keyboards are available + +Ensure that USB keyboards are available when the boot menu appears. +--- + configs/pinebook-pro-rk3399_defconfig | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig +index cbf95b4692f..af09eb18b13 100644 +--- a/configs/pinebook-pro-rk3399_defconfig ++++ b/configs/pinebook-pro-rk3399_defconfig +@@ -22,6 +22,7 @@ CONFIG_PCI=y + CONFIG_DEBUG_UART=y + CONFIG_BOOTDELAY=3 + CONFIG_USE_PREBOOT=y ++CONFIG_PREBOOT="usb start" + CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-pinebook-pro.dtb" + CONFIG_DISPLAY_BOARDINFO_LATE=y + CONFIG_SPL_MAX_SIZE=0x40000 +-- +2.54.0 + diff --git a/device/community/u-boot-pinebookpro/0002-drivers-video-rockchip-rk_edp.c-Change-clock-rate.patch b/device/community/u-boot-pinebookpro/0002-drivers-video-rockchip-rk_edp.c-Change-clock-rate.patch new file mode 100644 index 000000000..f8158248d --- /dev/null +++ b/device/community/u-boot-pinebookpro/0002-drivers-video-rockchip-rk_edp.c-Change-clock-rate.patch @@ -0,0 +1,32 @@ +From 6f53cd84db63766408953cd5ff7aa7f0b1f8e290 Mon Sep 17 00:00:00 2001 +From: Arnaud Patard +Date: Fri, 11 Sep 2020 16:26:12 -0400 +Subject: [PATCH 2/8] drivers/video/rockchip/rk_edp.c: Change clock rate + +The current code is setting the clock rate to 192000000, but +due to the current device-tree configuration and linux code, +it should rather be 100000000. + +Signed-off-by: Arnaud Patard + +Origin: http://people.hupstream.com/~rtp/pbp/20200911/rk_vop_clk_rate.patch +--- + drivers/video/rockchip/rk_edp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/video/rockchip/rk_edp.c b/drivers/video/rockchip/rk_edp.c +index 0ba68dbce3d..fcac6f0a6bd 100644 +--- a/drivers/video/rockchip/rk_edp.c ++++ b/drivers/video/rockchip/rk_edp.c +@@ -1100,7 +1100,7 @@ static int rk_edp_probe(struct udevice *dev) + } + ret = clk_get_by_index(uc_plat->src_dev, 0, &clk); + if (ret >= 0) +- ret = clk_set_rate(&clk, 192000000); ++ ret = clk_set_rate(&clk, 100000000); + if (ret < 0) { + debug("%s: Failed to set clock in source device '%s': ret=%d\n", + __func__, uc_plat->src_dev->name, ret); +-- +2.54.0 + diff --git a/device/community/u-boot-pinebookpro/0002-enable-usb-keyboard.patch b/device/community/u-boot-pinebookpro/0002-enable-usb-keyboard.patch deleted file mode 100644 index 43dd887d5..000000000 --- a/device/community/u-boot-pinebookpro/0002-enable-usb-keyboard.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig -index 21eecf477c..733463556a 100644 ---- a/configs/pinebook-pro-rk3399_defconfig -+++ b/configs/pinebook-pro-rk3399_defconfig -@@ -61,6 +61,8 @@ CONFIG_RAM_RK3399_LPDDR4=y - CONFIG_DM_RESET=y - CONFIG_BAUDRATE=1500000 - CONFIG_DEBUG_UART_SHIFT=2 -+CONFIG_USE_PREBOOT=y -+CONFIG_PREBOOT="usb start" - CONFIG_ROCKCHIP_SPI=y - CONFIG_SYSRESET=y - CONFIG_USB=y -@@ -68,8 +70,11 @@ CONFIG_USB_XHCI_HCD=y - CONFIG_USB_XHCI_DWC3=y - CONFIG_USB_EHCI_HCD=y - CONFIG_USB_EHCI_GENERIC=y -+CONFIG_USB_OHCI_HCD=y -+CONFIG_USB_OHCI_GENERIC=y - CONFIG_USB_DWC3=y - CONFIG_ROCKCHIP_USB2_PHY=y -+CONFIG_DM_KEYBOARD=y - CONFIG_USB_KEYBOARD=y - CONFIG_USB_HOST_ETHER=y - CONFIG_USB_ETHER_ASIX=y -diff --git a/include/configs/pinebook-pro-rk3399.h b/include/configs/pinebook-pro-rk3399.h -index 4bc8802d11..d910830582 100644 ---- a/include/configs/pinebook-pro-rk3399.h -+++ b/include/configs/pinebook-pro-rk3399.h -@@ -25,4 +25,7 @@ - - #define SDRAM_BANK_SIZE (2UL << 30) - -+#define CONFIG_USB_OHCI_NEW -+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2 -+ - #endif diff --git a/device/community/u-boot-pinebookpro/0003-display-support.patch b/device/community/u-boot-pinebookpro/0003-display-support.patch deleted file mode 100644 index 86a1f0873..000000000 --- a/device/community/u-boot-pinebookpro/0003-display-support.patch +++ /dev/null @@ -1,646 +0,0 @@ -From 5ae3afa4547eb82b92d93553ff07892eb8ff1665 Mon Sep 17 00:00:00 2001 -From: Arnaud Patard -Date: Fri, 11 Sep 2020 16:26:11 -0400 -Subject: [PATCH 01/11] drivers/video/rockchip/rk_vop.c: Use endpoint - compatible string to find VOP mode - -The current code is using an hard coded enum and the of node reg value of -endpoint to find out if the endpoint is mipi/hdmi/lvds/edp/dp. The order -is different between rk3288, rk3399 vop little, rk3399 vop big. - -A possible solution would be to make sure that the rk3288.dtsi and -rk3399.dtsi files have "expected" reg value or an other solution is -to find the kind of endpoint by comparing the endpoint compatible value. - -This patch is implementing the more flexible second solution. - -Signed-off-by: Arnaud Patard - -Origin: http://people.hupstream.com/~rtp/pbp/20200911/dts_vop_mode.patch ---- - .../include/asm/arch-rockchip/vop_rk3288.h | 15 +---------- - drivers/video/rockchip/rk_vop.c | 25 +++++++++++++++++-- - 2 files changed, 24 insertions(+), 16 deletions(-) - -diff --git a/arch/arm/include/asm/arch-rockchip/vop_rk3288.h b/arch/arm/include/asm/arch-rockchip/vop_rk3288.h -index 872a158b71..bf19e05997 100644 ---- a/arch/arm/include/asm/arch-rockchip/vop_rk3288.h -+++ b/arch/arm/include/asm/arch-rockchip/vop_rk3288.h -@@ -85,26 +85,13 @@ enum { - LB_RGB_1280X8 = 0x5 - }; - --#if defined(CONFIG_ROCKCHIP_RK3399) - enum vop_modes { - VOP_MODE_EDP = 0, - VOP_MODE_MIPI, - VOP_MODE_HDMI, -- VOP_MODE_MIPI1, -- VOP_MODE_DP, -- VOP_MODE_NONE, --}; --#else --enum vop_modes { -- VOP_MODE_EDP = 0, -- VOP_MODE_HDMI, - VOP_MODE_LVDS, -- VOP_MODE_MIPI, -- VOP_MODE_NONE, -- VOP_MODE_AUTO_DETECT, -- VOP_MODE_UNKNOWN, -+ VOP_MODE_DP, - }; --#endif - - /* VOP_VERSION_INFO */ - #define M_FPGA_VERSION (0xffff << 16) -diff --git a/drivers/video/rockchip/rk_vop.c b/drivers/video/rockchip/rk_vop.c -index 9032eb430e..6cd4ccc97a 100644 ---- a/drivers/video/rockchip/rk_vop.c -+++ b/drivers/video/rockchip/rk_vop.c -@@ -235,12 +235,11 @@ static int rk_display_init(struct udevice *dev, ulong fbbase, ofnode ep_node) - struct clk clk; - enum video_log2_bpp l2bpp; - ofnode remote; -+ const char *compat; - - debug("%s(%s, %lu, %s)\n", __func__, - dev_read_name(dev), fbbase, ofnode_get_name(ep_node)); - -- vop_id = ofnode_read_s32_default(ep_node, "reg", -1); -- debug("vop_id=%d\n", vop_id); - ret = ofnode_read_u32(ep_node, "remote-endpoint", &remote_phandle); - if (ret) - return ret; -@@ -282,6 +281,28 @@ static int rk_display_init(struct udevice *dev, ulong fbbase, ofnode ep_node) - if (disp) - break; - }; -+ compat = ofnode_get_property(remote, "compatible", NULL); -+ if (!compat) { -+ debug("%s(%s): Failed to find compatible property\n", -+ __func__, dev_read_name(dev)); -+ return -EINVAL; -+ } -+ if (strstr(compat, "edp")) { -+ vop_id = VOP_MODE_EDP; -+ } else if (strstr(compat, "mipi")) { -+ vop_id = VOP_MODE_MIPI; -+ } else if (strstr(compat, "hdmi")) { -+ vop_id = VOP_MODE_HDMI; -+ } else if (strstr(compat, "cdn-dp")) { -+ vop_id = VOP_MODE_DP; -+ } else if (strstr(compat, "lvds")) { -+ vop_id = VOP_MODE_LVDS; -+ } else { -+ debug("%s(%s): Failed to find vop mode for %s\n", -+ __func__, dev_read_name(dev), compat); -+ return -EINVAL; -+ } -+ debug("vop_id=%d\n", vop_id); - - disp_uc_plat = dev_get_uclass_platdata(disp); - debug("Found device '%s', disp_uc_priv=%p\n", disp->name, disp_uc_plat); --- -2.25.4 - - -From 382c53d4970c609a9f787422fbcd5f804ee00c3f Mon Sep 17 00:00:00 2001 -From: Arnaud Patard -Date: Fri, 11 Sep 2020 16:26:11 -0400 -Subject: [PATCH 02/11] drivers/video/rockchip/rk_edp.c: Add rk3399 support - -According to linux commit "drm/rockchip: analogix_dp: add rk3399 eDP -support" (82872e42bb1501dd9e60ca430f4bae45a469aa64), rk3288 and rk3399 -eDP IPs are nearly the same, the difference is in the grf register -(SOC_CON6 versus SOC_CON20). So, change the code to use the right -register on each IP. - -The clocks don't seem to be the same, the eDP clock is not at index 1 -on rk3399, so don't try changing the clock at index 1 to rate 0 on -rk3399. - -Signed-off-by: Arnaud Patard - -Origin: http://people.hupstream.com/~rtp/pbp/20200911/rk_edp_rk3399.patch ---- - .../include/asm/arch-rockchip/edp_rk3288.h | 5 +- - drivers/video/rockchip/rk_edp.c | 85 ++++++++++++++----- - 2 files changed, 68 insertions(+), 22 deletions(-) - -diff --git a/arch/arm/include/asm/arch-rockchip/edp_rk3288.h b/arch/arm/include/asm/arch-rockchip/edp_rk3288.h -index 105a335dab..c861f0eab1 100644 ---- a/arch/arm/include/asm/arch-rockchip/edp_rk3288.h -+++ b/arch/arm/include/asm/arch-rockchip/edp_rk3288.h -@@ -232,8 +232,9 @@ check_member(rk3288_edp, pll_reg_5, 0xa00); - #define PD_CH0 (0x1 << 0) - - /* pll_reg_1 */ --#define REF_CLK_24M (0x1 << 1) --#define REF_CLK_27M (0x0 << 1) -+#define REF_CLK_24M (0x1 << 0) -+#define REF_CLK_27M (0x0 << 0) -+#define REF_CLK_MASK (0x1 << 0) - - /* line_map */ - #define LANE3_MAP_LOGIC_LANE_0 (0x0 << 6) -diff --git a/drivers/video/rockchip/rk_edp.c b/drivers/video/rockchip/rk_edp.c -index 000bd48140..1b2f5f706d 100644 ---- a/drivers/video/rockchip/rk_edp.c -+++ b/drivers/video/rockchip/rk_edp.c -@@ -17,11 +17,10 @@ - #include - #include - #include -+#include - #include - #include --#include --#include --#include -+#include - - #define MAX_CR_LOOP 5 - #define MAX_EQ_LOOP 5 -@@ -37,18 +36,42 @@ static const char * const pre_emph_names[] = { - #define DP_VOLTAGE_MAX DP_TRAIN_VOLTAGE_SWING_1200 - #define DP_PRE_EMPHASIS_MAX DP_TRAIN_PRE_EMPHASIS_9_5 - -+#define RK3288_GRF_SOC_CON6 0x025c -+#define RK3288_GRF_SOC_CON12 0x0274 -+#define RK3399_GRF_SOC_CON20 0x6250 -+#define RK3399_GRF_SOC_CON25 0x6264 -+ -+enum rockchip_dp_types { -+ RK3288_DP = 0, -+ RK3399_EDP -+}; -+ -+struct rockchip_dp_data { -+ unsigned long reg_vop_big_little; -+ unsigned long reg_vop_big_little_sel; -+ unsigned long reg_ref_clk_sel; -+ unsigned long ref_clk_sel_bit; -+ enum rockchip_dp_types chip_type; -+}; -+ - struct rk_edp_priv { - struct rk3288_edp *regs; -- struct rk3288_grf *grf; -+ void *grf; - struct udevice *panel; - struct link_train link_train; - u8 train_set[4]; - }; - --static void rk_edp_init_refclk(struct rk3288_edp *regs) -+static void rk_edp_init_refclk(struct rk3288_edp *regs, enum rockchip_dp_types chip_type) - { - writel(SEL_24M, ®s->analog_ctl_2); -- writel(REF_CLK_24M, ®s->pll_reg_1); -+ u32 reg; -+ -+ reg = REF_CLK_24M; -+ if (chip_type == RK3288_DP) -+ reg ^= REF_CLK_MASK; -+ writel(reg, ®s->pll_reg_1); -+ - - writel(LDO_OUTPUT_V_SEL_145 | KVCO_DEFALUT | CHG_PUMP_CUR_SEL_5US | - V2L_CUR_SEL_1MA, ®s->pll_reg_2); -@@ -1023,6 +1046,8 @@ static int rk_edp_probe(struct udevice *dev) - struct display_plat *uc_plat = dev_get_uclass_platdata(dev); - struct rk_edp_priv *priv = dev_get_priv(dev); - struct rk3288_edp *regs = priv->regs; -+ struct rockchip_dp_data *edp_data = (struct rockchip_dp_data *)dev_get_driver_data(dev); -+ - struct clk clk; - int ret; - -@@ -1037,16 +1062,17 @@ static int rk_edp_probe(struct udevice *dev) - int vop_id = uc_plat->source_id; - debug("%s, uc_plat=%p, vop_id=%u\n", __func__, uc_plat, vop_id); - -- ret = clk_get_by_index(dev, 1, &clk); -- if (ret >= 0) { -- ret = clk_set_rate(&clk, 0); -- clk_free(&clk); -- } -- if (ret) { -- debug("%s: Failed to set EDP clock: ret=%d\n", __func__, ret); -- return ret; -+ if (edp_data->chip_type == RK3288_DP) { -+ ret = clk_get_by_index(dev, 1, &clk); -+ if (ret >= 0) { -+ ret = clk_set_rate(&clk, 0); -+ clk_free(&clk); -+ } -+ if (ret) { -+ debug("%s: Failed to set EDP clock: ret=%d\n", __func__, ret); -+ return ret; -+ } - } -- - ret = clk_get_by_index(uc_plat->src_dev, 0, &clk); - if (ret >= 0) { - ret = clk_set_rate(&clk, 192000000); -@@ -1059,15 +1085,17 @@ static int rk_edp_probe(struct udevice *dev) - } - - /* grf_edp_ref_clk_sel: from internal 24MHz or 27MHz clock */ -- rk_setreg(&priv->grf->soc_con12, 1 << 4); -+ rk_setreg(priv->grf + edp_data->reg_ref_clk_sel, -+ edp_data->ref_clk_sel_bit); - - /* select epd signal from vop0 or vop1 */ -- rk_clrsetreg(&priv->grf->soc_con6, (1 << 5), -- (vop_id == 1) ? (1 << 5) : (0 << 5)); -+ rk_clrsetreg(priv->grf + edp_data->reg_vop_big_little, -+ edp_data->reg_vop_big_little_sel, -+ (vop_id == 1) ? edp_data->reg_vop_big_little_sel : 0); - - rockchip_edp_wait_hpd(priv); - -- rk_edp_init_refclk(regs); -+ rk_edp_init_refclk(regs, edp_data->chip_type); - rk_edp_init_interrupt(regs); - rk_edp_enable_sw_function(regs); - ret = rk_edp_init_analog_func(regs); -@@ -1083,8 +1111,25 @@ static const struct dm_display_ops dp_rockchip_ops = { - .enable = rk_edp_enable, - }; - -+static const struct rockchip_dp_data rk3399_edp = { -+ .reg_vop_big_little = RK3399_GRF_SOC_CON20, -+ .reg_vop_big_little_sel = BIT(5), -+ .reg_ref_clk_sel = RK3399_GRF_SOC_CON25, -+ .ref_clk_sel_bit = BIT(11), -+ .chip_type = RK3399_EDP, -+}; -+ -+static const struct rockchip_dp_data rk3288_dp = { -+ .reg_vop_big_little = RK3288_GRF_SOC_CON6, -+ .reg_vop_big_little_sel = BIT(5), -+ .reg_ref_clk_sel = RK3288_GRF_SOC_CON12, -+ .ref_clk_sel_bit = BIT(4), -+ .chip_type = RK3288_DP, -+}; -+ - static const struct udevice_id rockchip_dp_ids[] = { -- { .compatible = "rockchip,rk3288-edp" }, -+ { .compatible = "rockchip,rk3288-edp", .data = (ulong)&rk3288_dp }, -+ { .compatible = "rockchip,rk3399-edp", .data = (ulong)&rk3399_edp }, - { } - }; - --- -2.25.4 - - -From b5776e11f8e7c79ff61bc2b93be9b6253db939f1 Mon Sep 17 00:00:00 2001 -From: Arnaud Patard -Date: Fri, 11 Sep 2020 16:26:12 -0400 -Subject: [PATCH 03/11] drivers/video/rockchip/rk_edp.c: Change interrupt - polarity configuration - -The linux code is setting polarity configuration to 3 but -uboot code is setting it to 1. Change the configuration to match the -linux configuration - -Signed-off-by: Arnaud Patard - -Origin: http://people.hupstream.com/~rtp/pbp/20200911/rk_edp_vs_linux.patch ---- - drivers/video/rockchip/rk_edp.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/drivers/video/rockchip/rk_edp.c b/drivers/video/rockchip/rk_edp.c -index 1b2f5f706d..13fa78aced 100644 ---- a/drivers/video/rockchip/rk_edp.c -+++ b/drivers/video/rockchip/rk_edp.c -@@ -100,10 +100,13 @@ static void rk_edp_init_refclk(struct rk3288_edp *regs, enum rockchip_dp_types c - ®s->dp_reserv2); - } - -+#define INT_POL1 (0x1 << 1) -+#define INT_POL0 (0x1 << 0) -+ - static void rk_edp_init_interrupt(struct rk3288_edp *regs) - { - /* Set interrupt pin assertion polarity as high */ -- writel(INT_POL, ®s->int_ctl); -+ writel(INT_POL0 | INT_POL1, ®s->int_ctl); - - /* Clear pending registers */ - writel(0xff, ®s->common_int_sta_1); --- -2.25.4 - - -From c1f23be1f6e1aa94e6b22e0a403ec061ca311f42 Mon Sep 17 00:00:00 2001 -From: Arnaud Patard -Date: Fri, 11 Sep 2020 16:26:12 -0400 -Subject: [PATCH 04/11] drivers/video/rockchip/rk_edp.c: Change clock rate - -The current code is setting the clock rate to 192000000, but -due to the current device-tree configuration and linux code, -it should rather be 100000000. - -Signed-off-by: Arnaud Patard - -Origin: http://people.hupstream.com/~rtp/pbp/20200911/rk_vop_clk_rate.patch ---- - drivers/video/rockchip/rk_edp.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/video/rockchip/rk_edp.c b/drivers/video/rockchip/rk_edp.c -index 13fa78aced..c2dc79faac 100644 ---- a/drivers/video/rockchip/rk_edp.c -+++ b/drivers/video/rockchip/rk_edp.c -@@ -1078,7 +1078,7 @@ static int rk_edp_probe(struct udevice *dev) - } - ret = clk_get_by_index(uc_plat->src_dev, 0, &clk); - if (ret >= 0) { -- ret = clk_set_rate(&clk, 192000000); -+ ret = clk_set_rate(&clk, 100000000); - clk_free(&clk); - } - if (ret < 0) { --- -2.25.4 - - -From 8ecab272ff922477da225f1856cb4bc492d41fb2 Mon Sep 17 00:00:00 2001 -From: Arnaud Patard -Date: Fri, 11 Sep 2020 16:26:12 -0400 -Subject: [PATCH 05/11] drivers/video/rockchip/rk_vop.c: Reserve efi fb memory - -When booting with EFI and graphics, the memory used for framebuffer -has to be reserved, otherwise it may leads to kernel memory -overwrite. - -Signed-off-by: Arnaud Patard - -Origin: http://people.hupstream.com/~rtp/pbp/20200911/rk_vop_reserve_fb_memory.patch ---- - drivers/video/rockchip/rk_vop.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/drivers/video/rockchip/rk_vop.c b/drivers/video/rockchip/rk_vop.c -index 6cd4ccc97a..98d33a3cec 100644 ---- a/drivers/video/rockchip/rk_vop.c -+++ b/drivers/video/rockchip/rk_vop.c -@@ -20,6 +20,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -394,6 +396,13 @@ int rk_vop_probe(struct udevice *dev) - if (!(gd->flags & GD_FLG_RELOC)) - return 0; - -+ plat->base = gd->bd->bi_dram[0].start + gd->bd->bi_dram[0].size - plat->size; -+ -+#if defined(CONFIG_EFI_LOADER) -+ debug("Adding to EFI map %d @ %lx\n", plat->size, plat->base); -+ efi_add_memory_map(plat->base, plat->size, EFI_RESERVED_MEMORY_TYPE); -+#endif -+ - priv->regs = (struct rk3288_vop *)dev_read_addr(dev); - - /* --- -2.25.4 - - -From 68098155f59cf102add0817d65a3570513500092 Mon Sep 17 00:00:00 2001 -From: Arnaud Patard -Date: Fri, 11 Sep 2020 16:26:12 -0400 -Subject: [PATCH 06/11] rk3399-pinebook-pro-u-boot.dtsi: Enable edp - -- uboot rockchip edp code is looking for a rockchip,panel property - for the edp dts node, so add it. - -Signed-off-by: Arnaud Patard - -Origin: http://people.hupstream.com/~rtp/pbp/20200911/update_pinebook_pro_uboot_dtsi.patch ---- - arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi -index 1a2e24d3ef..f0b58909a4 100644 ---- a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi -+++ b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi -@@ -41,3 +41,7 @@ - &vdd_log { - regulator-init-microvolt = <950000>; - }; -+ -+&edp { -+ rockchip,panel = <&edp_panel>; -+}; --- -2.25.4 - - -From cc514ca0d224b80713b0a653094f498c520bd1b3 Mon Sep 17 00:00:00 2001 -From: Arnaud Patard -Date: Fri, 11 Sep 2020 16:26:13 -0400 -Subject: [PATCH 07/11] configs/pinebook-pro-rk3399_defconfig: enable - SYS_USB_EVENT_POLL_VIA_INT_QUEUE - -The default configuration will use SYS_USB_EVENT_POLL for handling the -usb keyboard and it makes the system really slow (eg slow keypress, -loading kernel/initrd from grub-efi is taking ages). - -Using CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE seems to be improving -things a lot, so use it. - -Tested-by: Samuel Dionne-Riel -Signed-off-by: Arnaud Patard - -Origin: http://people.hupstream.com/~rtp/pbp/20200911/pbp_defconfig_usb_poll.patch ---- - configs/pinebook-pro-rk3399_defconfig | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig -index 0c129b9aeb..fa53bef6b9 100644 ---- a/configs/pinebook-pro-rk3399_defconfig -+++ b/configs/pinebook-pro-rk3399_defconfig -@@ -69,6 +69,7 @@ CONFIG_USB_EHCI_GENERIC=y - CONFIG_USB_DWC3=y - CONFIG_ROCKCHIP_USB2_PHY=y - CONFIG_USB_KEYBOARD=y -+CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y - CONFIG_USB_HOST_ETHER=y - CONFIG_USB_ETHER_ASIX=y - CONFIG_USB_ETHER_RTL8152=y --- -2.25.4 - - -From f3cae111f1daf8ef6a085cc435d37f741141675a Mon Sep 17 00:00:00 2001 -From: Arnaud Patard -Date: Fri, 11 Sep 2020 16:26:13 -0400 -Subject: [PATCH 08/11] drivers/pwm/rk_pwm.c: Fix default polarity - -In the code, the default polarity is set to positive/positive, -which is neither normal polarity or inverted polarity. It's -only the hardware default. This leads to booting linux with -wrong polarity setting. - -Update the code to use PWM_DUTY_POSTIVE | PWM_INACTIVE_NEGATIVE -by default instead. - -Signed-off-by: Arnaud Patard - -Origin: http://people.hupstream.com/~rtp/pbp/20200911/pwm-fix-default-polarity.patch ---- - drivers/pwm/rk_pwm.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/pwm/rk_pwm.c b/drivers/pwm/rk_pwm.c -index 911da1d426..c743feb920 100644 ---- a/drivers/pwm/rk_pwm.c -+++ b/drivers/pwm/rk_pwm.c -@@ -146,7 +146,7 @@ static int rk_pwm_probe(struct udevice *dev) - priv->data = (struct rockchip_pwm_data *)dev_get_driver_data(dev); - - if (priv->data->supports_polarity) -- priv->conf_polarity = PWM_DUTY_POSTIVE | PWM_INACTIVE_POSTIVE; -+ priv->conf_polarity = PWM_DUTY_POSTIVE | PWM_INACTIVE_NEGATIVE; - - return 0; - } --- -2.25.4 - - -From 60046c90d749e29348ee140583b0646e63c838be Mon Sep 17 00:00:00 2001 -From: Arnaud Patard -Date: Fri, 11 Sep 2020 16:26:13 -0400 -Subject: [PATCH 09/11] [HACK NOTFORMERGE] PBP: Fix panel reset - -On warm reset, the pinebook pro panel is not working correctly. -The issue is not yet debugged so, for now, this hack seems to be -enough. It toggles the GPIO1_C6 gpio [ LCDVCC_EN signal in the -schematics ] used by the vcc3v3_panel regulator. - -There's no gpio_request, since the gpio is already in use at this -stage, so it can only fail. - -Origin: http://people.hupstream.com/~rtp/pbp/20200911/hack-reset.patch ---- - board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c b/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c -index 516292aaa5..6b8376d6cd 100644 ---- a/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c -+++ b/board/pine64/pinebook-pro-rk3399/pinebook-pro-rk3399.c -@@ -7,9 +7,12 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -+#include - #include - #include - #include -@@ -59,6 +62,7 @@ int misc_init_r(void) - const u32 cpuid_length = 0x10; - u8 cpuid[cpuid_length]; - int ret; -+ unsigned int gpio; - - setup_iodomain(); - -@@ -70,6 +74,11 @@ int misc_init_r(void) - if (ret) - return ret; - -+ gpio_lookup_name("B22", NULL, NULL, &gpio); -+ gpio_direction_output(gpio, 0); -+ mdelay(500); -+ gpio_direction_output(gpio, 1); -+ - return ret; - } - #endif --- -2.25.4 - - -From 5e8bdb80f959e8fab2821191ec7f2868871a9798 Mon Sep 17 00:00:00 2001 -From: Arnaud Patard -Date: Fri, 11 Sep 2020 16:26:13 -0400 -Subject: [PATCH 10/11] SPL malloc() before relocation used 0x22d0 bytes (8 KB) - >>TPL: board_init_r() spl_init Trying to boot from BOOTROM Returning to boot - ROM... spl_early_init pmic@1b: ret=-6 i2c@ff3c0000: ret=-6 dm_scan_fdt() - failed: -6 dm_extended_scan_dt() failed: -6 dm_init_and_scan() returned error - -6 spl_early_init() failed: -6 ### ERROR ### Please RESET the board ### - -Origin: http://people.hupstream.com/~rtp/pbp/20200911/pmic-dm-reloc.patch ---- - arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi -index f0b58909a4..0f8879c4ca 100644 ---- a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi -+++ b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi -@@ -20,9 +20,9 @@ - u-boot,dm-pre-reloc; - }; - --&rk808 { -+/*&rk808 { - u-boot,dm-pre-reloc; --}; -+};*/ - - &sdhci { - max-frequency = <25000000>; --- -2.25.4 - - -From 771c6108e693223e82d2672a18a81d8468c2d0f4 Mon Sep 17 00:00:00 2001 -From: Arnaud Patard -Date: Fri, 11 Sep 2020 16:26:14 -0400 -Subject: [PATCH 11/11] (patch file disable_cdp_dp.patch) - -Origin: http://people.hupstream.com/~rtp/pbp/20200911/disable_cdp_dp.patch ---- - arch/arm/dts/rk3399-pinebook-pro.dts | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/arch/arm/dts/rk3399-pinebook-pro.dts b/arch/arm/dts/rk3399-pinebook-pro.dts -index 294d21bf45..4e2dd14084 100644 ---- a/arch/arm/dts/rk3399-pinebook-pro.dts -+++ b/arch/arm/dts/rk3399-pinebook-pro.dts -@@ -372,9 +372,9 @@ - }; - }; - --&cdn_dp { -+/*&cdn_dp { - status = "okay"; --}; -+};*/ - - &cpu_b0 { - cpu-supply = <&vdd_cpu_b>; --- -2.25.4 - diff --git a/device/community/u-boot-pinebookpro/0003-vidconsole-uclass-Implement-ANSI_CURSOR_COLUMN.patch b/device/community/u-boot-pinebookpro/0003-vidconsole-uclass-Implement-ANSI_CURSOR_COLUMN.patch new file mode 100644 index 000000000..93d806b63 --- /dev/null +++ b/device/community/u-boot-pinebookpro/0003-vidconsole-uclass-Implement-ANSI_CURSOR_COLUMN.patch @@ -0,0 +1,35 @@ +From 1b9016041a69a8aa5e8502c9f867c8d3ee5b67fe Mon Sep 17 00:00:00 2001 +From: Samuel Dionne-Riel +Date: Tue, 7 Jul 2020 05:04:53 -0400 +Subject: [PATCH 3/8] vidconsole-uclass: Implement ANSI_CURSOR_COLUMN + +--- + drivers/video/vidconsole-uclass.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c +index f1b2d61bd8f..f277328675e 100644 +--- a/drivers/video/vidconsole-uclass.c ++++ b/drivers/video/vidconsole-uclass.c +@@ -264,6 +264,18 @@ static void vidconsole_escape_char(struct udevice *dev, char ch) + set_cursor_position(dev, row, col); + break; + } ++ case 'G': { ++ int row, col; ++ get_cursor_position(priv, &row, &col); ++ char *s = priv->escape_buf; ++ s++; /* [ */ ++ s = parsenum(s, &col); ++ col = col-1; ++ if (col < 0) ++ col = 0; ++ set_cursor_position(dev, row, col); ++ break; ++ } + case 'H': + case 'f': { + int row, col; +-- +2.54.0 + diff --git a/device/community/u-boot-pinebookpro/0004-Configure-boot-splash-logo.patch b/device/community/u-boot-pinebookpro/0004-Configure-boot-splash-logo.patch new file mode 100644 index 000000000..eea3d5066 --- /dev/null +++ b/device/community/u-boot-pinebookpro/0004-Configure-boot-splash-logo.patch @@ -0,0 +1,54 @@ +From 264ef8ba822ed2e28eb5c5c7fc95e92171e85194 Mon Sep 17 00:00:00 2001 +From: Samuel Dionne-Riel +Date: Wed, 8 Jul 2020 01:26:55 -0400 +Subject: [PATCH 4/8] Configure boot splash logo + +This assumes LOGO_BMP is set by the derivation as a make flag. + +Co-Authored-By: Hugo Osvaldo Barrera +--- + configs/pinebook-pro-rk3399_defconfig | 6 ++++++ + include/configs/pinebook-pro-rk3399.h | 8 +++++++- + 2 files changed, 13 insertions(+), 1 deletion(-) + +diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig +index af09eb18b13..ebc03751237 100644 +--- a/configs/pinebook-pro-rk3399_defconfig ++++ b/configs/pinebook-pro-rk3399_defconfig +@@ -101,3 +101,9 @@ CONFIG_DISPLAY=y + CONFIG_VIDEO_ROCKCHIP=y + CONFIG_DISPLAY_ROCKCHIP_EDP=y + CONFIG_ERRNO_STR=y ++CONFIG_SPLASH_SCREEN=y ++CONFIG_SPLASH_SCREEN_ALIGN=y ++CONFIG_CMD_BMP=y ++CONFIG_VIDEO_BMP_RLE8=y ++CONFIG_VIDEO_LOGO=y ++CONFIG_VIDEO_LOGO_MAX_SIZE=0x7E8480 +diff --git a/include/configs/pinebook-pro-rk3399.h b/include/configs/pinebook-pro-rk3399.h +index 141ffcd036b..e737a075105 100644 +--- a/include/configs/pinebook-pro-rk3399.h ++++ b/include/configs/pinebook-pro-rk3399.h +@@ -7,11 +7,17 @@ + #ifndef __PINEBOOK_PRO_RK3399_H + #define __PINEBOOK_PRO_RK3399_H + ++#define SPLASH_ENV \ ++ "splashimage=0x08080000\0" \ ++ "splashpos=m,m\0" \ ++ "splashsource=mmc_fs\0" ++ + #define ROCKCHIP_DEVICE_SETTINGS \ ++ SPLASH_ENV \ + "stdin=serial,usbkbd\0" \ + "stdout=serial,vidconsole\0" \ + "stderr=serial,vidconsole\0" + + #include + +-#endif ++#endif +\ No newline at end of file +-- +2.54.0 + diff --git a/device/community/u-boot-pinebookpro/0004-rk3399-light-pinebook-power-and-standby-leds.patch b/device/community/u-boot-pinebookpro/0004-rk3399-light-pinebook-power-and-standby-leds.patch deleted file mode 100644 index 70907bfca..000000000 --- a/device/community/u-boot-pinebookpro/0004-rk3399-light-pinebook-power-and-standby-leds.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 61eb4a33dfbffbf19ab5aca62533d20b0e4cba43 Mon Sep 17 00:00:00 2001 -From: dhivael -Date: Sat, 11 Jan 2020 15:04:46 +0100 -Subject: [PATCH] rk3399: light pinebook power and standby leds during early - boot - -this is a hack, but it works for now. - -Origin: https://git.eno.space/pbp-uboot.git/commit/?id=1a01021c9361c4e017cb5b032300f5555c393710 ---- - arch/arm/mach-rockchip/rk3399/rk3399.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c -index 4fda93b1527..952ac881711 100644 ---- a/arch/arm/mach-rockchip/rk3399/rk3399.c -+++ b/arch/arm/mach-rockchip/rk3399/rk3399.c -@@ -19,6 +19,8 @@ - #include - #include - #include -+#include -+#include - - DECLARE_GLOBAL_DATA_PTR; - -@@ -119,8 +121,8 @@ void board_debug_uart_init(void) - struct rk3399_grf_regs * const grf = (void *)GRF_BASE; - #ifdef CONFIG_TARGET_CHROMEBOOK_BOB - struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE; -- struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; - #endif -+ struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; - - #if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff180000) - /* Enable early UART0 on the RK3399 */ -@@ -153,6 +155,14 @@ void board_debug_uart_init(void) - spl_gpio_set_pull(&pmugrf->gpio0_p, GPIO(BANK_B, 4), GPIO_PULL_NORMAL); - #endif /* CONFIG_TARGET_CHROMEBOOK_BOB */ - -+ { -+ // set GPIO0_A2/B3 to GPIO_ACTIVE_HIGH -+ // set GPIO0_A2/B3 to OUTPUT -+ int mask = (1UL << RK_PA2)/* | (1UL << RK_PB3) green LED */; -+ setbits_le32(&gpio->swport_dr, mask); -+ setbits_le32(&gpio->swport_ddr, mask); -+ } -+ - /* Enable early UART2 channel C on the RK3399 */ - rk_clrsetreg(&grf->gpio4c_iomux, - GRF_GPIO4C3_SEL_MASK, --- -2.25.4 - diff --git a/device/community/u-boot-pinebookpro/0005-cli-Clear-ctrl-c-before-running-a-command.patch b/device/community/u-boot-pinebookpro/0005-cli-Clear-ctrl-c-before-running-a-command.patch new file mode 100644 index 000000000..7e3359b1d --- /dev/null +++ b/device/community/u-boot-pinebookpro/0005-cli-Clear-ctrl-c-before-running-a-command.patch @@ -0,0 +1,63 @@ +From 8d80a591d67e75c0ec10320fdc127ab40e72dc8a Mon Sep 17 00:00:00 2001 +From: Samuel Dionne-Riel +Date: Thu, 9 Jul 2020 02:50:29 -0400 +Subject: [PATCH 5/8] cli: Clear ctrl+c before running a command + +This fixes an issue where: + +With an environment like so: + + bootmenu_0=Default U-Boot boot=run distro_bootcmd; $menucmd -1 + + * Running bootmenu + * Running the option + * Cancelling using CTRL-C + +Would show the menu as expected, but running *any* command +post-cancellation would spuriously exit in unexplainable ways. +--- + common/cli.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/common/cli.c b/common/cli.c +index 4694a35cd0e..75b0a2c0a40 100644 +--- a/common/cli.c ++++ b/common/cli.c +@@ -57,6 +57,9 @@ int run_command(const char *cmd, int flag) + + if (flag & CMD_FLAG_ENV) + hush_flags |= FLAG_CONT_ON_NEWLINE; ++ ++ clear_ctrlc(); /* forget any previous Control C */ ++ + return parse_string_outer(cmd, hush_flags); + } + /* +@@ -93,6 +96,8 @@ int run_command_repeatable(const char *cmd, int flag) + int ret; + + if (use_hush_old()) { ++ clear_ctrlc(); /* forget any previous Control C */ ++ + ret = parse_string_outer(cmd, + FLAG_PARSE_SEMICOLON + | FLAG_EXIT_FROM_LOOP); +@@ -146,6 +151,8 @@ int run_command_list(const char *cmd, int len, int flag) + } + #ifdef CONFIG_HUSH_PARSER + if (use_hush_old()) { ++ clear_ctrlc(); /* forget any previous Control C */ ++ + rcode = parse_string_outer(buff, FLAG_PARSE_SEMICOLON); + } else { + rcode = parse_string_outer_modern(buff, FLAG_PARSE_SEMICOLON); +@@ -339,4 +346,4 @@ void cli_init(void) + + if (CONFIG_IS_ENABLED(VIDEO_ANSI)) + printf(ANSI_CURSOR_SHOW "\n"); +-} ++} +\ No newline at end of file +-- +2.54.0 + diff --git a/device/community/u-boot-pinebookpro/0005-support-SPI-flash-boot.patch b/device/community/u-boot-pinebookpro/0005-support-SPI-flash-boot.patch deleted file mode 100644 index a19d30162..000000000 --- a/device/community/u-boot-pinebookpro/0005-support-SPI-flash-boot.patch +++ /dev/null @@ -1,53 +0,0 @@ -From f091aa06bfd4f7f9066dabe7a7caf268cd9c6683 Mon Sep 17 00:00:00 2001 -From: dhivael -Date: Thu, 6 Feb 2020 22:34:34 +0100 -Subject: [PATCH] support SPI flash boot - -SPI uboot images can be built with - - tools/mkimage -n rk3399 -T rkspi -d tpl/u-boot-tpl-dtb.bin:spl/u-boot-spl-dtb.bin spl.bin - cat <(dd if=spl.bin bs=512K conv=sync) u-boot.itb >spiflash.bin - -and written to spi flash with uboot sf commands, any hardware flasher -available, rkdeveloptool, or possibly other methods. - -Origin: https://git.eno.space/pbp-uboot.git/commit/?id=3d3dbebfe8726cf2ae51ed44dc49bbc497d62ac5 ---- - arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi | 2 +- - configs/pinebook-pro-rk3399_defconfig | 10 ++++++++++ - 2 files changed, 11 insertions(+), 1 deletion(-) - -diff --git a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi -index f3d85e1dba1..a40b71fa204 100644 ---- a/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi -+++ b/arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi -@@ -12,7 +12,7 @@ - }; - - chosen { -- u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc; -+ u-boot,spl-boot-order = "same-as-spl", &spiflash, &sdhci, &sdmmc; - }; - }; - -diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig -index 733463556a2..dbbd43ed9f3 100644 ---- a/configs/pinebook-pro-rk3399_defconfig -+++ b/configs/pinebook-pro-rk3399_defconfig -@@ -85,3 +85,13 @@ CONFIG_VIDEO_ROCKCHIP=y - CONFIG_DISPLAY_ROCKCHIP_EDP=y - CONFIG_SPL_TINY_MEMSET=y - CONFIG_ERRNO_STR=y -+ -+# SPI boot Support -+CONFIG_MTD=y -+CONFIG_DM_MTD=y -+CONFIG_SPI_FLASH_SFDP_SUPPORT=y -+CONFIG_SPL_DM_SPI=y -+CONFIG_SPL_SPI_FLASH_TINY=n -+CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y -+CONFIG_SPL_SPI_LOAD=y -+CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000 --- -2.25.4 - diff --git a/device/community/u-boot-pinebookpro/0006-implement-boot-menu.patch b/device/community/u-boot-pinebookpro/0006-implement-boot-menu.patch deleted file mode 100644 index 80b16a890..000000000 --- a/device/community/u-boot-pinebookpro/0006-implement-boot-menu.patch +++ /dev/null @@ -1,640 +0,0 @@ -From 375503f9a98878297ee05ba12c3be14afa795812 Mon Sep 17 00:00:00 2001 -From: Da Xue -Date: Fri, 8 May 2020 16:35:27 -0400 -Subject: [PATCH] splash: fix CONFIG_SPLASH_SOURCE and enable backup logo load - -Origin: https://github.com/libre-computer-project/libretech-u-boot/commit/8ddf2cded4efad8b5596b0b15a507aa3fb00f6d0 ---- - common/splash.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/common/splash.c b/common/splash.c -index 2b9313e03f1..cca81bff8ed 100644 ---- a/common/splash.c -+++ b/common/splash.c -@@ -82,11 +82,12 @@ static inline int splash_video_logo_load(void) { return -ENOSYS; } - - __weak int splash_screen_prepare(void) - { -- if (CONFIG_IS_ENABLED(SPLASH_SOURCE)) -- return splash_source_load(default_splash_locations, -- ARRAY_SIZE(default_splash_locations)); -- -- return splash_video_logo_load(); -+ return -+#ifdef CONFIG_SPLASH_SOURCE -+ splash_source_load(default_splash_locations, -+ ARRAY_SIZE(default_splash_locations)) && -+#endif -+ splash_video_logo_load(); - } - - #ifdef CONFIG_SPLASH_SCREEN_ALIGN --- -2.25.4 - -From 02328c238f24591e135bd7bae7ac5ca3f8bb59fa Mon Sep 17 00:00:00 2001 -From: Da Xue -Date: Tue, 7 Jul 2020 04:47:48 -0400 -Subject: [PATCH] hack: bmp: compressed logo - -Origin: https://github.com/libre-computer-project/libretech-u-boot/commit/9f849b044b60cf9a05618ef7da13db3961120304 ---- - tools/Makefile | 6 +++++- - tools/bmp_logo.c | 29 +++++++++++++++++++++++++---- - 2 files changed, 30 insertions(+), 5 deletions(-) - -diff --git a/tools/Makefile b/tools/Makefile -index 879c3fd4a74..199378d8cea 100644 ---- a/tools/Makefile -+++ b/tools/Makefile -@@ -256,7 +256,6 @@ ifneq ($(wildcard $(srctree)/$(src)/logos/$(VENDOR).bmp),) - LOGO_BMP= $(srctree)/$(src)/logos/$(VENDOR).bmp - endif - endif -- - endif # !LOGO_BMP - - # -@@ -279,8 +278,13 @@ $(LOGO_H): $(obj)/bmp_logo $(LOGO_BMP) - $(obj)/bmp_logo --gen-info $(LOGO_BMP) > $@ - - ifeq ($(CONFIG_DM_VIDEO),y) -+ifneq ($(wildcard $(LOGO_BMP).gz),) -+$(LOGO_DATA_H): $(obj)/bmp_logo $(LOGO_BMP) -+ $(obj)/bmp_logo --gen-bmp-gz $(LOGO_BMP) $(LOGO_BMP).gz > $@ -+else - $(LOGO_DATA_H): $(obj)/bmp_logo $(LOGO_BMP) - $(obj)/bmp_logo --gen-bmp $(LOGO_BMP) > $@ -+endif - else - $(LOGO_DATA_H): $(obj)/bmp_logo $(LOGO_BMP) - $(obj)/bmp_logo --gen-data $(LOGO_BMP) > $@ -diff --git a/tools/bmp_logo.c b/tools/bmp_logo.c -index 74fcadca63e..d8727c227fd 100644 ---- a/tools/bmp_logo.c -+++ b/tools/bmp_logo.c -@@ -3,7 +3,8 @@ - enum { - MODE_GEN_INFO, - MODE_GEN_DATA, -- MODE_GEN_BMP -+ MODE_GEN_BMP, -+ MODE_GEN_BMP_GZ - }; - - typedef struct bitmap_s { /* bitmap description */ -@@ -17,7 +18,7 @@ typedef struct bitmap_s { /* bitmap description */ - - void usage(const char *prog) - { -- fprintf(stderr, "Usage: %s [--gen-info|--gen-data|--gen-bmp] file\n", -+ fprintf(stderr, "Usage: %s [--gen-info|--gen-data|--gen-bmp|--gen-bmp-gz] file\n", - prog); - } - -@@ -76,7 +77,7 @@ int main (int argc, char *argv[]) - { - int mode, i, x; - int size; -- FILE *fp; -+ FILE *fp, *gzfp; - bitmap_t bmp; - bitmap_t *b = &bmp; - uint16_t data_offset, n_colors, hdr_size; -@@ -92,6 +93,8 @@ int main (int argc, char *argv[]) - mode = MODE_GEN_DATA; - else if (!strcmp(argv[1], "--gen-bmp")) - mode = MODE_GEN_BMP; -+ else if (!strcmp(argv[1], "--gen-bmp-gz")) -+ mode = MODE_GEN_BMP_GZ; - else { - usage(argv[0]); - exit(EXIT_FAILURE); -@@ -102,9 +105,17 @@ int main (int argc, char *argv[]) - perror(argv[2]); - exit (EXIT_FAILURE); - } -- -+ - if (fgetc (fp) != 'B' || fgetc (fp) != 'M') - error ("Input file is not a bitmap", fp); -+ -+ if (mode == MODE_GEN_BMP_GZ){ -+ gzfp = fopen(argv[3], "rb"); -+ if (!gzfp) { -+ perror(argv[3]); -+ exit (EXIT_FAILURE); -+ } -+ } - - /* - * read width and height of the image, and the number of colors used; -@@ -182,6 +193,11 @@ int main (int argc, char *argv[]) - fseek(fp, 0L, SEEK_END); - size = ftell(fp); - fseek(fp, 0L, SEEK_SET); -+ } else if (mode == MODE_GEN_BMP_GZ) { -+ /* copy full bmp file */ -+ fseek(gzfp, 0L, SEEK_END); -+ size = ftell(gzfp); -+ fseek(gzfp, 0L, SEEK_SET); - } else { - fseek(fp, (long)data_offset, SEEK_SET); - } -@@ -200,6 +216,10 @@ int main (int argc, char *argv[]) - /* write full bmp */ - for (i = 0; i < size; i++) - b->data[i] = (uint8_t)fgetc(fp); -+ } else if (mode == MODE_GEN_BMP_GZ) { -+ /* write full bmp */ -+ for (i = 0; i < size; i++) -+ b->data[i] = (uint8_t)fgetc(gzfp); - } else { - for (i = (b->height - 1) * b->width; i >= 0; i -= b->width) { - for (x = 0; x < b->width; x++) { -@@ -224,5 +244,6 @@ int main (int argc, char *argv[]) - - out: - fclose(fp); -+ if (mode == MODE_GEN_BMP_GZ) fclose(gzfp); - return 0; - } --- -2.25.4 - -From 1cc7a56f46f8b8195ece2d8f647cfed45505a457 Mon Sep 17 00:00:00 2001 -From: Samuel Dionne-Riel -Date: Tue, 7 Jul 2020 00:59:45 -0400 -Subject: [PATCH] bootmenu: Replace reverse for truetype console - -The truetype console doesn't support many ANSI escape sequences, among -those the reverse sequence is *broken*. It reverses the text, but does -not change the background color. - -This, instead, uses characters to show which option is currently active. ---- - cmd/bootmenu.c | 15 ++++++++------- - 1 file changed, 8 insertions(+), 7 deletions(-) - -diff --git a/cmd/bootmenu.c b/cmd/bootmenu.c -index 18efe25751f..7b7db74c8e2 100644 ---- a/cmd/bootmenu.c -+++ b/cmd/bootmenu.c -@@ -61,23 +61,24 @@ static char *bootmenu_getoption(unsigned short int n) - static void bootmenu_print_entry(void *data) - { - struct bootmenu_entry *entry = data; -- int reverse = (entry->menu->active == entry->num); -+ int active = (entry->menu->active == entry->num); - - /* - * Move cursor to line where the entry will be drown (entry->num) - * First 3 lines contain bootmenu header + 1 empty line - */ - printf(ANSI_CURSOR_POSITION, entry->num + 4, 1); -+ puts(ANSI_CLEAR_LINE); - -- puts(" "); -- -- if (reverse) -- puts(ANSI_COLOR_REVERSE); -+ if (active) -+ puts(" => ["); -+ else -+ puts(" "); - - puts(entry->title); - -- if (reverse) -- puts(ANSI_COLOR_RESET); -+ if (active) -+ puts("]"); - } - - static void bootmenu_autoboot_loop(struct bootmenu_data *menu, --- -2.25.4 - -From c904267ca621815876eba5c21b967306a30c4cce Mon Sep 17 00:00:00 2001 -From: Samuel Dionne-Riel -Date: Tue, 7 Jul 2020 05:04:53 -0400 -Subject: [PATCH] vidconsole-uclass: Implement ANSI_CURSOR_COLUMN - ---- - drivers/video/vidconsole-uclass.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c -index 9b761547212..3e8895017a1 100644 ---- a/drivers/video/vidconsole-uclass.c -+++ b/drivers/video/vidconsole-uclass.c -@@ -306,6 +306,18 @@ static void vidconsole_escape_char(struct udevice *dev, char ch) - set_cursor_position(priv, row, col); - break; - } -+ case 'G': { -+ int row, col; -+ get_cursor_position(priv, &row, &col); -+ char *s = priv->escape_buf; -+ s++; /* [ */ -+ s = parsenum(s, &col); -+ col = col-1; -+ if (col < 0) -+ col = 0; -+ set_cursor_position(priv, row, col); -+ break; -+ } - case 'H': - case 'f': { - int row, col; --- -2.25.4 - -From 6676c66c0108f4a2db1d17ce8c742189df7fb7eb Mon Sep 17 00:00:00 2001 -From: Samuel Dionne-Riel -Date: Tue, 7 Jul 2020 22:17:36 -0400 -Subject: [PATCH] autoboot: Make all prompts configurable - -This is a multi-purpose commit. Though it is hard to split into distinct -changes. - -1. Allows the non-keyed prompt to be configured - -This is self-explanatory. This allows better customization for the -integrator. Though, more to the point, this reduces the confusion that -comes from the option name and description. Now it is used for all -auto-boot prompts, not only for the keyed prompt. - -2. Redraws using ANSI escapes - -This is required for (1), as we can't backspace over the arbitrary -amount of characters to redraw the countdown. - -This is done through resetting the column to 1 and clearing the line for -maximum compatibility. Tested against serial, default dm_video and the -truetype console. ---- - cmd/Kconfig | 4 ++-- - common/autoboot.c | 15 ++++++++++----- - 2 files changed, 12 insertions(+), 7 deletions(-) - -diff --git a/cmd/Kconfig b/cmd/Kconfig -index 192b3b262f1..f5d6781473a 100644 ---- a/cmd/Kconfig -+++ b/cmd/Kconfig -@@ -86,8 +86,8 @@ config AUTOBOOT_KEYED - - config AUTOBOOT_PROMPT - string "Autoboot stop prompt" -- depends on AUTOBOOT_KEYED -- default "Autoboot in %d seconds\\n" -+ default "Autoboot in %d seconds\\n" if AUTOBOOT_KEYED -+ default "Hit any key to stop autoboot: %2d \\n" - help - This string is displayed before the boot delay selected by - CONFIG_BOOTDELAY starts. If it is not defined there is no -diff --git a/common/autoboot.c b/common/autoboot.c -index 6d78716a266..a3b2fb0c16f 100644 ---- a/common/autoboot.c -+++ b/common/autoboot.c -@@ -5,6 +5,7 @@ - */ - - #include -+#include - #include - #include - #include -@@ -251,14 +252,16 @@ static int abortboot_single_key(int bootdelay) - int abort = 0; - unsigned long ts; - -- printf("Hit any key to stop autoboot: %2d ", bootdelay); -+ printf(CONFIG_AUTOBOOT_PROMPT, bootdelay); - - /* - * Check if key already pressed - */ - if (tstc()) { /* we got a key press */ -- (void) getc(); /* consume input */ -- puts("\b\b\b 0"); -+ (void) getc(); /* consume input */ -+ puts(ANSI_CLEAR_LINE); -+ printf(ANSI_CURSOR_COLUMN, 1); -+ printf(CONFIG_AUTOBOOT_PROMPT, 0); - abort = 1; /* don't auto boot */ - } - -@@ -272,7 +275,7 @@ static int abortboot_single_key(int bootdelay) - - abort = 1; /* don't auto boot */ - bootdelay = 0; /* no more delay */ -- key = getc(); /* consume input */ -+ key = getc(); /* consume input */ - if (IS_ENABLED(CONFIG_USE_AUTOBOOT_MENUKEY)) - menukey = key; - break; -@@ -280,7 +283,9 @@ static int abortboot_single_key(int bootdelay) - udelay(10000); - } while (!abort && get_timer(ts) < 1000); - -- printf("\b\b\b%2d ", bootdelay); -+ puts(ANSI_CLEAR_LINE); -+ printf(ANSI_CURSOR_COLUMN, 1); -+ printf(CONFIG_AUTOBOOT_PROMPT, bootdelay); - } - - putc('\n'); --- -2.25.4 - -From 0a4a4fca5af332e93d9b44032fe8afd7686387f4 Mon Sep 17 00:00:00 2001 -From: Da Xue -Date: Tue, 7 Jul 2020 22:23:48 -0400 -Subject: [PATCH] autoboot: correct config naming, only allow escape key to - menu - -Origin: https://github.com/libre-computer-project/libretech-u-boot/commit/e8dc057670e9ff0e8ecfea4fd549ce8cc2516378 ---- - common/autoboot.c | 51 ++++++++++++++++++++++++++++++++--------------- - 1 file changed, 35 insertions(+), 16 deletions(-) - -diff --git a/common/autoboot.c b/common/autoboot.c -index a3b2fb0c16f..82eb7ba3440 100644 ---- a/common/autoboot.c -+++ b/common/autoboot.c -@@ -44,8 +44,12 @@ static int menukey; - #define AUTOBOOT_STOP_STR_SHA256 "" - #endif - --#ifdef CONFIG_USE_AUTOBOOT_MENUKEY --#define AUTOBOOT_MENUKEY CONFIG_USE_AUTOBOOT_MENUKEY -+#ifdef CONFIG_AUTOBOOT_USE_MENUKEY -+#ifdef CONFIG_AUTOBOOT_MENUKEY -+#define AUTOBOOT_MENUKEY CONFIG_AUTOBOOT_MENUKEY -+#else -+#define AUTOBOOT_MENUKEY 0 -+#endif - #else - #define AUTOBOOT_MENUKEY 0 - #endif -@@ -258,11 +262,22 @@ static int abortboot_single_key(int bootdelay) - * Check if key already pressed - */ - if (tstc()) { /* we got a key press */ -- (void) getc(); /* consume input */ -- puts(ANSI_CLEAR_LINE); -- printf(ANSI_CURSOR_COLUMN, 1); -- printf(CONFIG_AUTOBOOT_PROMPT, 0); -- abort = 1; /* don't auto boot */ -+ if (IS_ENABLED(CONFIG_AUTOBOOT_USE_MENUKEY)){ -+ menukey = getc(); -+ puts(ANSI_CLEAR_LINE); -+ printf(ANSI_CURSOR_COLUMN, 1); -+ printf(CONFIG_AUTOBOOT_PROMPT, 0); -+ if (menukey == AUTOBOOT_MENUKEY) { -+ abort = 1; -+ bootdelay = 0; -+ } -+ } else { -+ (void) getc(); /* consume input */ -+ puts(ANSI_CLEAR_LINE); -+ printf(ANSI_CURSOR_COLUMN, 1); -+ printf(CONFIG_AUTOBOOT_PROMPT, 0); -+ abort = 1; /* don't auto boot */ -+ } - } - - while ((bootdelay > 0) && (!abort)) { -@@ -271,13 +286,18 @@ static int abortboot_single_key(int bootdelay) - ts = get_timer(0); - do { - if (tstc()) { /* we got a key press */ -- int key; -- -- abort = 1; /* don't auto boot */ -- bootdelay = 0; /* no more delay */ -- key = getc(); /* consume input */ -- if (IS_ENABLED(CONFIG_USE_AUTOBOOT_MENUKEY)) -- menukey = key; -+ -+ if (IS_ENABLED(CONFIG_AUTOBOOT_USE_MENUKEY)){ -+ menukey = getc(); -+ if (menukey == AUTOBOOT_MENUKEY){ -+ abort = 1; -+ bootdelay = 0; -+ } -+ } else { -+ abort = 1; /* don't auto boot */ -+ bootdelay = 0; /* no more delay */ -+ menukey = getc(); /* consume input */ -+ } - break; - } - udelay(10000); -@@ -383,8 +403,7 @@ void autoboot_command(const char *s) - disable_ctrlc(prev); /* restore Ctrl-C checking */ - } - -- if (IS_ENABLED(CONFIG_USE_AUTOBOOT_MENUKEY) && -- menukey == AUTOBOOT_MENUKEY) { -+ if (IS_ENABLED(CONFIG_AUTOBOOT_USE_MENUKEY)) { - s = env_get("menucmd"); - if (s) - run_command_list(s, -1, 0); --- -2.25.4 - -From c2832bcbc0ae86b2fe85abc68dd98a406ee0deeb Mon Sep 17 00:00:00 2001 -From: Samuel Dionne-Riel -Date: Wed, 8 Jul 2020 01:26:30 -0400 -Subject: [PATCH] Define a very-opinionated boot sequence - ---- - configs/pinebook-pro-rk3399_defconfig | 25 +++++++++++++++++++++++++ - include/configs/pinebook-pro-rk3399.h | 17 +++++++++++++++++ - 2 files changed, 42 insertions(+) - -diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig -index dbbd43ed9f3..4acccdfb0f7 100644 ---- a/configs/pinebook-pro-rk3399_defconfig -+++ b/configs/pinebook-pro-rk3399_defconfig -@@ -95,3 +95,28 @@ CONFIG_SPL_SPI_FLASH_TINY=n - CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y - CONFIG_SPL_SPI_LOAD=y - CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000 -+ -+# Boot menu required for the menu (duh) -+CONFIG_CMD_BOOTMENU=y -+ -+# Truetype console configuration -+CONFIG_CONSOLE_TRUETYPE=y -+CONFIG_CONSOLE_TRUETYPE_NIMBUS=y -+CONFIG_CONSOLE_TRUETYPE_SIZE=26 -+ -+# Boot menu and default boot configuration -+ -+# Gives *some* time for the user to act. -+# Though an already-knowledgeable user will know they can use the key before -+# the message is shown. -+# Conversely, CTRL+C can cancel the default boot, showing the menu as expected -+# In reality, this gives us MUCH MORE slop in the time window than 1 second. -+CONFIG_BOOTDELAY=1 -+# This would be escape, but the USB drivers don't really play well and -+# escape doesn't work from the keyboard. -+CONFIG_AUTOBOOT_MENUKEY=27 -+# So we'll fake that using CTRL+C is what we want... -+# It's only a side-effect. -+CONFIG_AUTOBOOT_PROMPT="Press CTRL+C for the boot menu." -+# And this ends up causing the menu to be used on CTRL+C (or escape) -+CONFIG_AUTOBOOT_USE_MENUKEY=y -diff --git a/include/configs/pinebook-pro-rk3399.h b/include/configs/pinebook-pro-rk3399.h -index d9108305824..5b1234ac7ad 100644 ---- a/include/configs/pinebook-pro-rk3399.h -+++ b/include/configs/pinebook-pro-rk3399.h -@@ -7,7 +7,24 @@ - #ifndef __PINEBOOK_PRO_RK3399_H - #define __PINEBOOK_PRO_RK3399_H - -+// This sets up additional environment variables for our opinionated setup. -+// (See rk3399_common.h, it should be apended to ROCKCHIP_DEVICE_SETTINGS here -+// but it makes patches harder to apply...) -+#define OPINIONATED_ENV \ -+ "setup_leds=led green:power on; led red:standby on\0" \ -+ "bootcmd=run setup_leds; run distro_bootcmd\0" \ -+ "bootmenu_delay=-1\0" \ -+ "bootmenu_0=Default U-Boot boot=run distro_bootcmd; echo \"Boot failed.\"; sleep 5; $menucmd -1\0" \ -+ "bootmenu_1=Boot from eMMC=run bootcmd_mmc0; echo \"eMMC Boot failed.\"; sleep 5; $menucmd -1\0" \ -+ "bootmenu_2=Boot from SD=run bootcmd_mmc1; echo \"SD Boot failed.\"; sleep 5; $menucmd -1\0" \ -+ "bootmenu_3=Boot from USB=run bootcmd_usb0; echo \"USB Boot failed.\"; sleep 5; $menucmd -1\0" \ -+ "bootmenu_4=Boot PXE=run bootcmd_pxe; echo \"PXE Boot failed.\"; sleep 5; $menucmd -1\0" \ -+ "bootmenu_5=Boot DHCP=run bootcmd_dhcp; echo \"DHCP Boot failed.\"; sleep 5; $menucmd -1\0" \ -+ "bootmenu_6=Reboot=reset\0" \ -+ "menucmd=bootmenu\0" -+ - #define ROCKCHIP_DEVICE_SETTINGS \ -+ OPINIONATED_ENV \ - "stdin=serial,usbkbd\0" \ - "stdout=serial,vidconsole\0" \ - "stderr=serial,vidconsole\0" --- -2.25.4 - -From 7fad5fa92dc905a11cf53549a4fc52940571e204 Mon Sep 17 00:00:00 2001 -From: Samuel Dionne-Riel -Date: Wed, 8 Jul 2020 01:26:55 -0400 -Subject: [PATCH] Configure boot splash logo - -This assumes LOGO_BMP is set by the derivation as a make flag. ---- - configs/pinebook-pro-rk3399_defconfig | 3 +++ - include/configs/pinebook-pro-rk3399.h | 16 ++++++++++++++++ - 2 files changed, 19 insertions(+) - -diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig -index 4acccdfb0f7..8dc5bc95cd9 100644 ---- a/configs/pinebook-pro-rk3399_defconfig -+++ b/configs/pinebook-pro-rk3399_defconfig -@@ -99,6 +99,9 @@ CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000 - # Boot menu required for the menu (duh) - CONFIG_CMD_BOOTMENU=y - -+# Required for the splash (see include/configs/pinebook-pro-rk3399.h) -+CONFIG_CMD_BMP=y -+ - # Truetype console configuration - CONFIG_CONSOLE_TRUETYPE=y - CONFIG_CONSOLE_TRUETYPE_NIMBUS=y -diff --git a/include/configs/pinebook-pro-rk3399.h b/include/configs/pinebook-pro-rk3399.h -index 5b1234ac7ad..2c276476ca8 100644 ---- a/include/configs/pinebook-pro-rk3399.h -+++ b/include/configs/pinebook-pro-rk3399.h -@@ -7,10 +7,26 @@ - #ifndef __PINEBOOK_PRO_RK3399_H - #define __PINEBOOK_PRO_RK3399_H - -+// The following bunch of defines is for the splash -+#define CONFIG_SPLASHIMAGE_GUARD -+#define CONFIG_SPLASH_SCREEN -+#define CONFIG_SPLASH_SCREEN_ALIGN -+#define CONFIG_SPLASH_SOURCE -+#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (1920*1080*4) -+#define CONFIG_VIDEO_BMP_GZIP -+#define CONFIG_VIDEO_BMP_LOGO -+#define CONFIG_VIDEO_BMP_RLE8 -+#define CONFIG_VIDEO_LOGO -+#define SPLASH_ENV \ -+ "splashimage=0x08080000\0" \ -+ "splashpos=m,m\0" \ -+ "splashsource=mmc_fs\0" -+ - // This sets up additional environment variables for our opinionated setup. - // (See rk3399_common.h, it should be apended to ROCKCHIP_DEVICE_SETTINGS here - // but it makes patches harder to apply...) - #define OPINIONATED_ENV \ -+ SPLASH_ENV \ - "setup_leds=led green:power on; led red:standby on\0" \ - "bootcmd=run setup_leds; run distro_bootcmd\0" \ - "bootmenu_delay=-1\0" \ --- -2.25.4 - -From 025775cd6469ed0a5a818d2708cc82a43755abb9 Mon Sep 17 00:00:00 2001 -From: Samuel Dionne-Riel -Date: Thu, 9 Jul 2020 02:50:29 -0400 -Subject: [PATCH] [WIP] cli: Clear ctrl+c before running a command - -This fixes an issue where: - -With an environment like so: - - bootmenu_0=Default U-Boot boot=run distro_bootcmd; $menucmd -1 - - * Running bootmenu - * Running the option - * Cancelling using CTRL-C - -Would show the menu as expected, but running *any* command -post-cancellation would spuriously exit in unexplainable ways. ---- - common/cli.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/common/cli.c b/common/cli.c -index 6635ab2bcf8..f49a0689cc7 100644 ---- a/common/cli.c -+++ b/common/cli.c -@@ -45,6 +45,9 @@ int run_command(const char *cmd, int flag) - - if (flag & CMD_FLAG_ENV) - hush_flags |= FLAG_CONT_ON_NEWLINE; -+ -+ clear_ctrlc(); /* forget any previous Control C */ -+ - return parse_string_outer(cmd, hush_flags); - #endif - } -@@ -65,6 +68,9 @@ int run_command_repeatable(const char *cmd, int flag) - * parse_string_outer() returns 1 for failure, so clean up - * its result. - */ -+ -+ clear_ctrlc(); /* forget any previous Control C */ -+ - if (parse_string_outer(cmd, - FLAG_PARSE_SEMICOLON | FLAG_EXIT_FROM_LOOP)) - return -1; -@@ -105,6 +111,9 @@ int run_command_list(const char *cmd, int len, int flag) - buff[len] = '\0'; - } - #ifdef CONFIG_HUSH_PARSER -+ -+ clear_ctrlc(); /* forget any previous Control C */ -+ - rcode = parse_string_outer(buff, FLAG_PARSE_SEMICOLON); - #else - /* --- -2.25.4 - diff --git a/device/community/u-boot-pinebookpro/0006-rockchip-move-usb0-after-mmc1-in-default-boot-order.patch b/device/community/u-boot-pinebookpro/0006-rockchip-move-usb0-after-mmc1-in-default-boot-order.patch new file mode 100644 index 000000000..6c3af9409 --- /dev/null +++ b/device/community/u-boot-pinebookpro/0006-rockchip-move-usb0-after-mmc1-in-default-boot-order.patch @@ -0,0 +1,27 @@ +From e95e40a662f7563b80896a6e5f70cf4b2183a459 Mon Sep 17 00:00:00 2001 +From: dhivael +Date: Sat, 11 Jan 2020 15:04:04 +0100 +Subject: [PATCH 6/8] rockchip: move usb0 after mmc1 in default boot order + +now that we support booting from USB we should prefer USB boot over eMMC +boot. we still try to boot from SD cards first. +--- + include/configs/rockchip-common.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/configs/rockchip-common.h b/include/configs/rockchip-common.h +index d5550a46575..21c95c75d05 100644 +--- a/include/configs/rockchip-common.h ++++ b/include/configs/rockchip-common.h +@@ -14,7 +14,7 @@ + #ifndef CONFIG_XPL_BUILD + + #ifndef BOOT_TARGETS +-#define BOOT_TARGETS "mmc1 mmc0 nvme scsi usb pxe dhcp spi" ++#define BOOT_TARGETS "mmc1 usb nvme scsi mmc0 pxe dhcp spi" + #endif + + #ifdef CONFIG_ARM64 +-- +2.54.0 + diff --git a/device/community/u-boot-pinebookpro/0007-pinebook-pro-Fix-vcc_sdio-regulator-max-voltage.patch b/device/community/u-boot-pinebookpro/0007-pinebook-pro-Fix-vcc_sdio-regulator-max-voltage.patch new file mode 100644 index 000000000..95fc63339 --- /dev/null +++ b/device/community/u-boot-pinebookpro/0007-pinebook-pro-Fix-vcc_sdio-regulator-max-voltage.patch @@ -0,0 +1,41 @@ +From 1385d1131866384e43531074a781978f04b6ac4e Mon Sep 17 00:00:00 2001 +From: Hugo Osvaldo Barrera +Date: Tue, 19 May 2026 08:31:20 +0000 +Subject: [PATCH 7/8] pinebook-pro: Fix vcc_sdio regulator max voltage +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Commit 0b75109b6aa (v2026.01) made dw_mmc return an error when voltage +setting is outside of the supported range, and fall back back to the +minimal value (1.8V in this case). + +Prior to this, the error was silently ignored, no fallback was applied, +and the voltage remained the default (3.0V). + +The device tree specifies that the regulator supports 1.8V–3.0V, but the +RK808 LDO4 datasheet specifies that it supports 1.8V–3.4V. + +Change regulator-max-microvolt to 3400000 µV as per the RK808 datasheet. + +Patch submitted upstream: https://lists.infradead.org/pipermail/linux-rockchip/2026-May/071171.html +--- + dts/upstream/src/arm64/rockchip/rk3399-pinebook-pro.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dts/upstream/src/arm64/rockchip/rk3399-pinebook-pro.dts b/dts/upstream/src/arm64/rockchip/rk3399-pinebook-pro.dts +index eaaca08a760..ac3926bb7ff 100644 +--- a/dts/upstream/src/arm64/rockchip/rk3399-pinebook-pro.dts ++++ b/dts/upstream/src/arm64/rockchip/rk3399-pinebook-pro.dts +@@ -532,7 +532,7 @@ + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; +- regulator-max-microvolt = <3000000>; ++ regulator-max-microvolt = <3400000>; /* RK808 LDO4 supports 1.8V-3.4V */ + + regulator-state-mem { + regulator-on-in-suspend; +-- +2.54.0 + diff --git a/device/community/u-boot-pinebookpro/0007-rockchip-boot-order.patch b/device/community/u-boot-pinebookpro/0007-rockchip-boot-order.patch deleted file mode 100644 index 0bf389fa2..000000000 --- a/device/community/u-boot-pinebookpro/0007-rockchip-boot-order.patch +++ /dev/null @@ -1,29 +0,0 @@ -From dd52b971005271d615e63f4f946a0ee9331925bc Mon Sep 17 00:00:00 2001 -From: dhivael -Date: Sat, 11 Jan 2020 15:04:04 +0100 -Subject: [PATCH 3/5] rockchip: move mmc1 before mmc0 in default boot order - -on pinebooks mmc1 is the external card, which should take boot priority -over the internal emmc even if the emmc is bootable. ---- - include/configs/rockchip-common.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/include/configs/rockchip-common.h b/include/configs/rockchip-common.h -index 0b9e24d1db4..6610f95b7b9 100644 ---- a/include/configs/rockchip-common.h -+++ b/include/configs/rockchip-common.h -@@ -17,8 +17,8 @@ - /* First try to boot from SD (index 0), then eMMC (index 1) */ - #if CONFIG_IS_ENABLED(CMD_MMC) - #define BOOT_TARGET_MMC(func) \ -- func(MMC, mmc, 0) \ -- func(MMC, mmc, 1) -+ func(MMC, mmc, 1) \ -+ func(MMC, mmc, 0) - #else - #define BOOT_TARGET_MMC(func) - #endif --- -2.25.3 - diff --git a/device/community/u-boot-pinebookpro/0008-rockchip-boot-order-add-usb.patch b/device/community/u-boot-pinebookpro/0008-rockchip-boot-order-add-usb.patch deleted file mode 100644 index 9ae3514f3..000000000 --- a/device/community/u-boot-pinebookpro/0008-rockchip-boot-order-add-usb.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 4b11a4444983c997addc5c581da1ec287f27fa47 Mon Sep 17 00:00:00 2001 -From: dhivael -Date: Sat, 11 Jan 2020 15:04:04 +0100 -Subject: [PATCH 4/5] rockchip: move usb0 after mmc1 in default boot order - -now that we support booting from USB we should prefer USB boot over eMMC -boot. we still try to boot from SD cards first. ---- - include/configs/rockchip-common.h | 15 ++++++++------- - 1 file changed, 8 insertions(+), 7 deletions(-) - -diff --git a/include/configs/rockchip-common.h b/include/configs/rockchip-common.h -index 6610f95b7b9..d743ebe83e6 100644 ---- a/include/configs/rockchip-common.h -+++ b/include/configs/rockchip-common.h -@@ -16,11 +16,10 @@ - - /* First try to boot from SD (index 0), then eMMC (index 1) */ - #if CONFIG_IS_ENABLED(CMD_MMC) -- #define BOOT_TARGET_MMC(func) \ -- func(MMC, mmc, 1) \ -- func(MMC, mmc, 0) -+ #define BOOT_TARGET_MMC(func, idx) \ -+ func(MMC, mmc, idx) - #else -- #define BOOT_TARGET_MMC(func) -+ #define BOOT_TARGET_MMC(func, idx) - #endif - - #if CONFIG_IS_ENABLED(CMD_NVME) -@@ -55,16 +54,18 @@ - - #ifdef CONFIG_ROCKCHIP_RK3399 - #define BOOT_TARGET_DEVICES(func) \ -- BOOT_TARGET_MMC(func) \ -- BOOT_TARGET_NVME(func) \ -+ BOOT_TARGET_MMC(func, 1) \ - BOOT_TARGET_USB(func) \ -+ BOOT_TARGET_NVME(func) \ -+ BOOT_TARGET_MMC(func, 0) \ - BOOT_TARGET_PXE(func) \ - BOOT_TARGET_DHCP(func) \ - BOOT_TARGET_SF(func) - #else - #define BOOT_TARGET_DEVICES(func) \ -- BOOT_TARGET_MMC(func) \ -+ BOOT_TARGET_MMC(func, 1) \ - BOOT_TARGET_USB(func) \ -+ BOOT_TARGET_MMC(func, 0) \ - BOOT_TARGET_PXE(func) \ - BOOT_TARGET_DHCP(func) - #endif --- -2.25.3 - diff --git a/device/community/u-boot-pinebookpro/0009-rk3399-support-compressed-kernel.patch b/device/community/u-boot-pinebookpro/0009-rk3399-support-compressed-kernel.patch deleted file mode 100644 index 5a3b3e8ca..000000000 --- a/device/community/u-boot-pinebookpro/0009-rk3399-support-compressed-kernel.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 9482bb0eea3ad397b06ef195f9c2f09de94e74cb Mon Sep 17 00:00:00 2001 -From: Tian Yuanhao -Date: Mon, 6 Jul 2020 16:46:33 +0800 -Subject: [PATCH] rk3399: boot from compressed Image - -Add kernel_comp_addr_r and kernel_comp_size to rk3399_common.h, so that -people can use compressed Image (e.g. Image.gz) in extlinux.conf. - -Signed-off-by: Tian Yuanhao ---- - include/configs/rk3399_common.h | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/include/configs/rk3399_common.h b/include/configs/rk3399_common.h -index f0ae6e67a7..6a275818d0 100644 ---- a/include/configs/rk3399_common.h -+++ b/include/configs/rk3399_common.h -@@ -53,7 +53,9 @@ - "pxefile_addr_r=0x00600000\0" \ - "fdt_addr_r=0x01f00000\0" \ - "kernel_addr_r=0x02080000\0" \ -- "ramdisk_addr_r=0x06000000\0" -+ "kernel_comp_addr_r=0x06000000\0" \ -+ "kernel_comp_size=0x02000000\0" \ -+ "ramdisk_addr_r=0x08000000\0" - - #ifndef ROCKCHIP_DEVICE_SETTINGS - #define ROCKCHIP_DEVICE_SETTINGS diff --git a/device/community/u-boot-pinebookpro/APKBUILD b/device/community/u-boot-pinebookpro/APKBUILD index aed78771b..e2dfbb62f 100644 --- a/device/community/u-boot-pinebookpro/APKBUILD +++ b/device/community/u-boot-pinebookpro/APKBUILD @@ -1,9 +1,9 @@ # Seperate u-boot package for the pine64-pinebookpro because this includes # a driver for the display and supports efi loading operating systems -maintainer="Quade Curry " +maintainer="Hugo Osvaldo Barrera " pkgname=u-boot-pinebookpro -pkgver=2020.07 -pkgrel=5 +pkgver=2026.04 +pkgrel=0 pkgdesc="u-boot bootloader for the rk3399" url="https://gitlab.denx.de/u-boot/u-boot" arch="aarch64" @@ -11,27 +11,29 @@ license="GPL-2.0-or-later OFL-1.1 BSD-2-Clause BSD-3-Clause eCos-2.0 IBM-pibs ISC LGPL-2.0-only LGPL-2.1-only X11" makedepends="$depends_dev arm-trusted-firmware + bash bc bison dtc flex + gnutls-dev openssl-dev python3-dev + py3-elftools + py3-setuptools swig u-boot-tools " options="!check" source=" ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver//_/-}.tar.bz2 - 0001-enable-rockchip-rng.patch - 0002-enable-usb-keyboard.patch - 0003-display-support.patch - 0004-rk3399-light-pinebook-power-and-standby-leds.patch - 0005-support-SPI-flash-boot.patch - 0006-implement-boot-menu.patch - 0007-rockchip-boot-order.patch - 0008-rockchip-boot-order-add-usb.patch - 0009-rk3399-support-compressed-kernel.patch + 0001-pinebook-pro-ensure-USB-keyboards-are-available.patch + 0002-drivers-video-rockchip-rk_edp.c-Change-clock-rate.patch + 0003-vidconsole-uclass-Implement-ANSI_CURSOR_COLUMN.patch + 0004-Configure-boot-splash-logo.patch + 0005-cli-Clear-ctrl-c-before-running-a-command.patch + 0006-rockchip-move-usb0-after-mmc1-in-default-boot-order.patch + 0007-pinebook-pro-Fix-vcc_sdio-regulator-max-voltage.patch pine64.bmp " builddir="$srcdir"/u-boot-${pkgver//_/-} @@ -68,14 +70,14 @@ package() { } -sha512sums="df91264fe8a42e676c3f2aa09d644c6a3035cc8169bf52a8ab95efe7e542cfc758a0ef150949b0d9f03c7dec7d95f8d20a2efe2dbb60c2ef1a61c8063770478d u-boot-2020.07.tar.bz2 -058408fdf8921bcde5f9ca9ea03fdad6d87dd94f09bd6768792d72af43e64e801dfd8cb3f16e83be14153d9c38b3e3e23fe949778d9347ff72bada996bd82cfe 0001-enable-rockchip-rng.patch -8e454e486a7c9fe486a1bdbececf8c6b163b90b7b57a3822afb2a30f42ba9552439360d08a6ecc19a2ebe807c6c15961a73e0fe47dce9d2a7f86ce4742cb2510 0002-enable-usb-keyboard.patch -7292dab0af5b0127663eac7966499fc5af87c544485168b5269cdf16a226cd8a215b76a4745cf19afb751ea6fea680e26b86adfdaab54e3ec7fc8fd8bec85c6b 0003-display-support.patch -5188c54bb1efe18471b3e0ff8113b0d46d6ecad2be222416c7fb89021e76f2816771793d3efaba561602064a8079cf0da66e25228e132d44a0f6b14658f93ffb 0004-rk3399-light-pinebook-power-and-standby-leds.patch -ee51dca25a5a00011186c7f750e20ed08061a5a64a67bd81ca6d96cefdb139a15078d48c2c5b6ecb09b4ab5d778e11f3b62ff3daa74ffc7d73963b15e4eee215 0005-support-SPI-flash-boot.patch -8d989d200639204c8f7fb2620209bd1e096e8c5ea04085f68486b71490deb60e89e2d54704508bfe22c006b0d331dcc0c5cbfac6c0e02328a01b0f0b611d6b58 0006-implement-boot-menu.patch -3a91ae0f499ca668ac95cc24c3b2794b0884acfcba2a76493cb2329b8e00d84eb1bbfdcdb2475064cc5b0fb0b52df849afc59b6399de44699db9dfda4d0c5f3c 0007-rockchip-boot-order.patch -b655dfd83c12925d5e90f317c97d8bca9f047df337202627bfe40e0ebaba79d8adc429575a04f5af531bcc2626521b517ea7b9026dbdffb54ba97316d1674cf9 0008-rockchip-boot-order-add-usb.patch -cc03b87e42ce0ade1d3ddd9eebc76304451c01c4ee2ea2f52aa572ab8a30d84960df4d47f14315d96943467793fccee2052f53ace9fbac059e30c86c749d7ccc 0009-rk3399-support-compressed-kernel.patch -e317f8527dbb3b8a40a45d20da6c42f8cfd98b968060d6b4f1fa5453736441d36d1048bdc4359af47c2129fa86b6d43b3e263ef282f5c7b2e54f702d8b6bd8b1 pine64.bmp" +sha512sums=" +c5fca2abc533759985dfcc6d071d154007535787b0bbd569b61bda1fe2f3a31fba08481c8caf18cf5f2bc79609f50dee504977a8b65e8c4cc21f277268232e03 u-boot-2026.04.tar.bz2 +572d24d70d96e84649b71a0a460ac9b9ae26d155d549bda1bc2534a54d102b158319caef24609fdbef6465a63d6c2624a42851bcad5b5cb60373abef62bd1850 0001-pinebook-pro-ensure-USB-keyboards-are-available.patch +3657612c577076c733637cf1b52ece1722369f3a7b821e6a08b7650e85692f5e69acc8f1d4a20d36b701a5bcc4a5bc306456ac371689fcc69ee4c4626ec78483 0002-drivers-video-rockchip-rk_edp.c-Change-clock-rate.patch +e1dc0553c3685ea1f52f067907b042f54f8244060f9ba865a81970bceba387fe1581d6ea05f6d1aa1ca81513a8e92580781ecb20f9d02d83c56033809ede4ccc 0003-vidconsole-uclass-Implement-ANSI_CURSOR_COLUMN.patch +da1b515afbbe2387f6fee1028277cb19f5536598ba3fe7cd940d11476f41f162d3d4c08d9ee0ff5554e16dd9cbb4fc70015b5cc5eed885e75267a9e82bf7209f 0004-Configure-boot-splash-logo.patch +11be09f9dc0bd2eefb645fcc3d5681ade90e104aa8e7c9de549b20393761074edd0e42828fb5147e186d995e11e1397bc94dd2cc521f307d8d26b6925fe22f1b 0005-cli-Clear-ctrl-c-before-running-a-command.patch +5fdf9a5b42b271414b1f07a8cd94b537562d4994b5cb21377dddc065754b3977a8a3af646c9db0736eeb9cb7e9be0da7838721c5c1bc58f6de00bc1cbed54604 0006-rockchip-move-usb0-after-mmc1-in-default-boot-order.patch +3537d81c0a839f2a35e28ef0dc9126e3d175950a0752b363839970c64db4c5aa6afceb8912a2e0a3a09d14fceb94704be2f752a0c002ace51676e736a58ba435 0007-pinebook-pro-Fix-vcc_sdio-regulator-max-voltage.patch +e317f8527dbb3b8a40a45d20da6c42f8cfd98b968060d6b4f1fa5453736441d36d1048bdc4359af47c2129fa86b6d43b3e263ef282f5c7b2e54f702d8b6bd8b1 pine64.bmp +"