From 2e5611c92d2cf6b9fbefe7b9796371eedecb20ab Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Sat, 5 Oct 2024 12:09:03 +0300 Subject: [PATCH] spacemit: opensbi, u-boot, kernel legacy: Update for v1.0.15 Re-extract the kernel patches as a series. Re-extract the u-boot patches as "git format-patch" command. Unified patch extraction makes it easier to work with patches. --- config/sources/families/spacemit.conf | 5 +- ....patch => 001-Update-for-v1.0alpha2.patch} | 145 ++--- ...patch => 002-Update-for-v1.0beta3.1.patch} | 56 +- ...rc1.patch => 003-Update-for-v1.0rc1.patch} | 20 +- ...4-v1.0.patch => 004-Update-for-v1.0.patch} | 6 +- ....0.3.patch => 005-Update-for-v1.0.3.patch} | 8 +- ....0.7.patch => 006-Update-for-v1.0.7.patch} | 8 +- .../atf-spacemit/007-Update-for-v1.0.11.patch | 554 ++++++++++++++++++ .../atf-spacemit/008-Update-for-v1.0.13.patch | 26 + .../atf-spacemit/009-Update-for-v1.0.14.patch | 46 ++ .../atf-spacemit/010-Update-for-v1.0.15.patch | 108 ++++ ...oth-btrtl-Add-support-for-RTL8852BS.patch} | 32 +- ...oth-hci_h5-Add-support-for-RTL8852BS.patch | 26 + ...Fix-aes_encrypt-redefinition-errors.patch} | 18 +- .../add-minimal-hwmon-support.patch} | 25 +- ...fix-sigaltstack-frame-size-checking.patch} | 12 +- ...reless-rtl8852bs-CONFIG_RTW_DEBUG-n.patch} | 10 +- ...eless-rtl8852bs-remove-RTW_WARN_LMT.patch} | 10 +- .../kernel/spacemit-legacy-6.1/series.bianbu | 12 + patch/kernel/spacemit-legacy-6.1/series.conf | 13 + ...r-support.patch => 0001-MBR-support.patch} | 20 +- ...ange-AUTOBOOT_STOP_STR-to-Space-KEY.patch} | 8 +- ...=> 0003-Syslinux-and-script-support.patch} | 43 +- ...loader-Suppress-error-print-message.patch} | 8 +- 24 files changed, 993 insertions(+), 226 deletions(-) rename patch/atf/atf-spacemit/{001-v1.0alpha2.patch => 001-Update-for-v1.0alpha2.patch} (98%) rename patch/atf/atf-spacemit/{002-v1.0beta3.1.patch => 002-Update-for-v1.0beta3.1.patch} (97%) rename patch/atf/atf-spacemit/{003-v1.0rc1.patch => 003-Update-for-v1.0rc1.patch} (97%) rename patch/atf/atf-spacemit/{004-v1.0.patch => 004-Update-for-v1.0.patch} (94%) rename patch/atf/atf-spacemit/{005-v1.0.3.patch => 005-Update-for-v1.0.3.patch} (96%) rename patch/atf/atf-spacemit/{006-v1.0.7.patch => 006-Update-for-v1.0.7.patch} (96%) create mode 100644 patch/atf/atf-spacemit/007-Update-for-v1.0.11.patch create mode 100644 patch/atf/atf-spacemit/008-Update-for-v1.0.13.patch create mode 100644 patch/atf/atf-spacemit/009-Update-for-v1.0.14.patch create mode 100644 patch/atf/atf-spacemit/010-Update-for-v1.0.15.patch rename patch/kernel/spacemit-legacy-6.1/{500-board-bpif3-Add-Bluetooth-btrtl-support-to-RTL8852BS.patch => patches.bianbu/Bluetooth-btrtl-Add-support-for-RTL8852BS.patch} (61%) create mode 100644 patch/kernel/spacemit-legacy-6.1/patches.bianbu/Bluetooth-hci_h5-Add-support-for-RTL8852BS.patch rename patch/kernel/spacemit-legacy-6.1/{003-wireless-rtl8852bs-fix-aes_encrypt-redefinition-errors.patch => patches.bianbu/Fix-aes_encrypt-redefinition-errors.patch} (96%) rename patch/kernel/spacemit-legacy-6.1/{101-add-minimal-hwmon-support.patch => patches.bianbu/add-minimal-hwmon-support.patch} (71%) rename patch/kernel/spacemit-legacy-6.1/{055-riscv-signal-fix-sigaltstack-frame-size-checking.patch => patches.bianbu/riscv-signal-fix-sigaltstack-frame-size-checking.patch} (80%) rename patch/kernel/spacemit-legacy-6.1/{001-wireless-rtl8852bs-CONFIG_RTW_DEBUG-n.patch => patches.bianbu/wireless-rtl8852bs-CONFIG_RTW_DEBUG-n.patch} (76%) rename patch/kernel/spacemit-legacy-6.1/{002-wireless-rtl8852bs-remove-RTW_WARN_LMT.patch => patches.bianbu/wireless-rtl8852bs-remove-RTW_WARN_LMT.patch} (79%) create mode 100644 patch/kernel/spacemit-legacy-6.1/series.bianbu create mode 100644 patch/kernel/spacemit-legacy-6.1/series.conf rename patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/{020-mbr-support.patch => 0001-MBR-support.patch} (89%) rename patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/{021-change-autoboot_stop_str-to-space-key.patch => 0002-change-AUTOBOOT_STOP_STR-to-Space-KEY.patch} (84%) rename patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/{022-syslinux-and-script-support.patch => 0003-Syslinux-and-script-support.patch} (90%) rename patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/{023-efi_loader-suppress-error-print-message.patch => 0004-efi_loader-Suppress-error-print-message.patch} (92%) diff --git a/config/sources/families/spacemit.conf b/config/sources/families/spacemit.conf index 4ea36b902..0d67fd252 100644 --- a/config/sources/families/spacemit.conf +++ b/config/sources/families/spacemit.conf @@ -18,10 +18,11 @@ declare -g ATFSOURCE="https://github.com/riscv-software-src/opensbi.git" declare -g ATFDIR="opensbi" declare -g ATFBRANCH="tag:v1.3" declare -g ATF_TARGET_MAP="PLATFORM_DEFCONFIG=k1_defconfig PLATFORM=generic ;;build/platform/generic/firmware/fw_dynamic.itb" +# declare -g ATFPATCHDIR="atf-spacemit" # U-Boot declare -g BOOTSOURCE="https://gitee.com/bianbu-linux/uboot-2022.10.git" -declare -g BOOTBRANCH="${BOOTBRANCH_BOARD:-"tag:v1.0.12"}" +declare -g BOOTBRANCH="${BOOTBRANCH_BOARD:-"tag:v1.0.15"}" declare -g BOOTDIR='u-boot-spacemit' declare -g BOOTPATCHDIR="${BOOTPATCHDIR:-"legacy/u-boot-spacemit-k1"}" declare -g UBOOT_TARGET_MAP=";;bootinfo_emmc.bin FSBL.bin u-boot.itb fw_dynamic.itb" @@ -38,7 +39,7 @@ case "${BRANCH}" in legacy) # Kernel declare -g KERNELSOURCE='https://gitee.com/bianbu-linux/linux-6.1.git' - declare -g KERNELBRANCH='tag:v1.0.12' + declare -g KERNELBRANCH='tag:v1.0.15' declare -g KERNEL_MAJOR_MINOR="6.1" declare -g LINUXCONFIG="linux-${LINUXFAMILY}-${BRANCH}" declare -g KERNELPATCHDIR="${LINUXFAMILY}-legacy-${KERNEL_MAJOR_MINOR}" # Needed as long as both legacy and current are 6.1 kernels diff --git a/patch/atf/atf-spacemit/001-v1.0alpha2.patch b/patch/atf/atf-spacemit/001-Update-for-v1.0alpha2.patch similarity index 98% rename from patch/atf/atf-spacemit/001-v1.0alpha2.patch rename to patch/atf/atf-spacemit/001-Update-for-v1.0alpha2.patch index e4a9a6c85..8092244a7 100644 --- a/patch/atf/atf-spacemit/001-v1.0alpha2.patch +++ b/patch/atf/atf-spacemit/001-Update-for-v1.0alpha2.patch @@ -1,7 +1,7 @@ From 59ac4b4bb09bfb031369a2b40156f4a1c94b93cd Mon Sep 17 00:00:00 2001 From: James Deng Date: Fri, 1 Mar 2024 19:54:35 +0800 -Subject: [PATCH] Update for v1.0alpha2 +Subject: Update for v1.0alpha2 --- Makefile | 17 +- @@ -126,7 +126,7 @@ Subject: [PATCH] Update for v1.0alpha2 create mode 100644 platform/generic/spacemit/spacemit_k1.c diff --git a/Makefile b/Makefile -index 730dbd9..468f8a3 100644 +index 730dbd910e51..468f8a30e89a 100644 --- a/Makefile +++ b/Makefile @@ -114,6 +114,7 @@ endif @@ -195,7 +195,7 @@ index 730dbd9..468f8a3 100644 $(build_dir)/docs/latex/refman.pdf: $(build_dir)/docs/latex/refman.tex $(CMD_PREFIX)mkdir -p $(build_dir)/docs diff --git a/firmware/fw_base.ldS b/firmware/fw_base.ldS -index 3d68484..e214f9d 100644 +index 3d68484ba5e3..e214f9d63eaa 100644 --- a/firmware/fw_base.ldS +++ b/firmware/fw_base.ldS @@ -96,6 +96,11 @@ @@ -211,7 +211,7 @@ index 3d68484..e214f9d 100644 . = ALIGN(0x1000); /* Need this to create proper sections */ diff --git a/include/sbi/riscv_encoding.h b/include/sbi/riscv_encoding.h -index 4ebed97..54e09d4 100644 +index 4ebed97ab0a0..54e09d44528b 100644 --- a/include/sbi/riscv_encoding.h +++ b/include/sbi/riscv_encoding.h @@ -708,6 +708,8 @@ @@ -224,7 +224,7 @@ index 4ebed97..54e09d4 100644 #define CAUSE_MISALIGNED_FETCH 0x0 diff --git a/include/sbi/sbi_ecall_interface.h b/include/sbi/sbi_ecall_interface.h -index 1fe469e..f29c22a 100644 +index 1fe469e37078..f29c22a106c2 100644 --- a/include/sbi/sbi_ecall_interface.h +++ b/include/sbi/sbi_ecall_interface.h @@ -42,6 +42,10 @@ @@ -239,7 +239,7 @@ index 1fe469e..f29c22a 100644 #define SBI_EXT_TIME_SET_TIMER 0x0 diff --git a/include/sbi/sbi_hsm.h b/include/sbi/sbi_hsm.h -index 4b5601b..066456c 100644 +index 4b5601ba40ca..066456cb4382 100644 --- a/include/sbi/sbi_hsm.h +++ b/include/sbi/sbi_hsm.h @@ -74,10 +74,16 @@ bool sbi_hsm_hart_change_state(struct sbi_scratch *scratch, long oldstate, @@ -262,7 +262,7 @@ index 4b5601b..066456c 100644 #endif diff --git a/include/sbi_utils/cache/cacheflush.h b/include/sbi_utils/cache/cacheflush.h new file mode 100644 -index 0000000..c3e3532 +index 000000000000..c3e353229f75 --- /dev/null +++ b/include/sbi_utils/cache/cacheflush.h @@ -0,0 +1,192 @@ @@ -460,7 +460,7 @@ index 0000000..c3e3532 +#endif diff --git a/include/sbi_utils/cci/cci.h b/include/sbi_utils/cci/cci.h new file mode 100644 -index 0000000..c5b8b57 +index 000000000000..c5b8b576d6e6 --- /dev/null +++ b/include/sbi_utils/cci/cci.h @@ -0,0 +1,27 @@ @@ -492,7 +492,7 @@ index 0000000..c5b8b57 + +#endif /* CCI_H */ diff --git a/include/sbi_utils/irqchip/fdt_irqchip_plic.h b/include/sbi_utils/irqchip/fdt_irqchip_plic.h -index df645dd..b892b0b 100644 +index df645dd00ee3..b892b0bc70f8 100644 --- a/include/sbi_utils/irqchip/fdt_irqchip_plic.h +++ b/include/sbi_utils/irqchip/fdt_irqchip_plic.h @@ -28,6 +28,8 @@ void fdt_plic_context_save(bool smode, u32 *enable, u32 *threshold, u32 num); @@ -506,7 +506,7 @@ index df645dd..b892b0b 100644 #endif diff --git a/include/sbi_utils/psci/drivers/arm/css/css_mhu_doorbell.h b/include/sbi_utils/psci/drivers/arm/css/css_mhu_doorbell.h new file mode 100644 -index 0000000..e49c7e2 +index 000000000000..e49c7e2dca64 --- /dev/null +++ b/include/sbi_utils/psci/drivers/arm/css/css_mhu_doorbell.h @@ -0,0 +1,14 @@ @@ -526,7 +526,7 @@ index 0000000..e49c7e2 +#endif /* CSS_MHU_DOORBELL_H */ diff --git a/include/sbi_utils/psci/drivers/arm/css/css_scp.h b/include/sbi_utils/psci/drivers/arm/css/css_scp.h new file mode 100644 -index 0000000..f75eae6 +index 000000000000..f75eae64b856 --- /dev/null +++ b/include/sbi_utils/psci/drivers/arm/css/css_scp.h @@ -0,0 +1,10 @@ @@ -542,7 +542,7 @@ index 0000000..f75eae6 +#endif diff --git a/include/sbi_utils/psci/drivers/arm/css/scmi.h b/include/sbi_utils/psci/drivers/arm/css/scmi.h new file mode 100644 -index 0000000..1e8c370 +index 000000000000..1e8c370d4510 --- /dev/null +++ b/include/sbi_utils/psci/drivers/arm/css/scmi.h @@ -0,0 +1,141 @@ @@ -689,7 +689,7 @@ index 0000000..1e8c370 +#endif diff --git a/include/sbi_utils/psci/drivers/arm/css/scmi_private.h b/include/sbi_utils/psci/drivers/arm/css/scmi_private.h new file mode 100644 -index 0000000..7b246e5 +index 000000000000..7b246e53cc38 --- /dev/null +++ b/include/sbi_utils/psci/drivers/arm/css/scmi_private.h @@ -0,0 +1,146 @@ @@ -841,7 +841,7 @@ index 0000000..7b246e5 +#endif diff --git a/include/sbi_utils/psci/plat/arm/board/spacemit/include/platform_def.h b/include/sbi_utils/psci/plat/arm/board/spacemit/include/platform_def.h new file mode 100644 -index 0000000..6287c82 +index 000000000000..6287c8273c7e --- /dev/null +++ b/include/sbi_utils/psci/plat/arm/board/spacemit/include/platform_def.h @@ -0,0 +1,10 @@ @@ -857,7 +857,7 @@ index 0000000..6287c82 +#endif diff --git a/include/sbi_utils/psci/plat/arm/common/arm_def.h b/include/sbi_utils/psci/plat/arm/common/arm_def.h new file mode 100644 -index 0000000..3cedcff +index 000000000000..3cedcff21609 --- /dev/null +++ b/include/sbi_utils/psci/plat/arm/common/arm_def.h @@ -0,0 +1,19 @@ @@ -882,7 +882,7 @@ index 0000000..3cedcff +#endif diff --git a/include/sbi_utils/psci/plat/arm/common/plat_arm.h b/include/sbi_utils/psci/plat/arm/common/plat_arm.h new file mode 100644 -index 0000000..fb7bf13 +index 000000000000..fb7bf13f9ba4 --- /dev/null +++ b/include/sbi_utils/psci/plat/arm/common/plat_arm.h @@ -0,0 +1,21 @@ @@ -909,7 +909,7 @@ index 0000000..fb7bf13 +#endif diff --git a/include/sbi_utils/psci/plat/arm/css/common/css_pm.h b/include/sbi_utils/psci/plat/arm/css/common/css_pm.h new file mode 100644 -index 0000000..78d7f37 +index 000000000000..78d7f374d254 --- /dev/null +++ b/include/sbi_utils/psci/plat/arm/css/common/css_pm.h @@ -0,0 +1,36 @@ @@ -951,7 +951,7 @@ index 0000000..78d7f37 +#endif diff --git a/include/sbi_utils/psci/plat/common/platform.h b/include/sbi_utils/psci/plat/common/platform.h new file mode 100644 -index 0000000..7c53612 +index 000000000000..7c5361230b55 --- /dev/null +++ b/include/sbi_utils/psci/plat/common/platform.h @@ -0,0 +1,13 @@ @@ -970,7 +970,7 @@ index 0000000..7c53612 +#endif diff --git a/include/sbi_utils/psci/psci.h b/include/sbi_utils/psci/psci.h new file mode 100644 -index 0000000..c76fd25 +index 000000000000..c76fd25d546b --- /dev/null +++ b/include/sbi_utils/psci/psci.h @@ -0,0 +1,223 @@ @@ -1199,7 +1199,7 @@ index 0000000..c76fd25 +#endif diff --git a/include/sbi_utils/psci/psci_lib.h b/include/sbi_utils/psci/psci_lib.h new file mode 100644 -index 0000000..15576b7 +index 000000000000..15576b788cd0 --- /dev/null +++ b/include/sbi_utils/psci/psci_lib.h @@ -0,0 +1,8 @@ @@ -1212,7 +1212,7 @@ index 0000000..15576b7 + +#endif diff --git a/lib/sbi/sbi_ecall_base.c b/lib/sbi/sbi_ecall_base.c -index 74f05eb..b02bcc1 100644 +index 74f05eb26a35..b02bcc10322f 100644 --- a/lib/sbi/sbi_ecall_base.c +++ b/lib/sbi/sbi_ecall_base.c @@ -14,6 +14,9 @@ @@ -1240,7 +1240,7 @@ index 74f05eb..b02bcc1 100644 ret = sbi_ecall_base_probe(regs->a0, out_val); break; diff --git a/lib/sbi/sbi_ecall_hsm.c b/lib/sbi/sbi_ecall_hsm.c -index 20705c3..ed8c940 100644 +index 20705c395131..ed8c940e9188 100644 --- a/lib/sbi/sbi_ecall_hsm.c +++ b/lib/sbi/sbi_ecall_hsm.c @@ -35,8 +35,13 @@ static int sbi_ecall_hsm_handler(unsigned long extid, unsigned long funcid, @@ -1258,7 +1258,7 @@ index 20705c3..ed8c940 100644 case SBI_EXT_HSM_HART_SUSPEND: ret = sbi_hsm_hart_suspend(scratch, regs->a0, regs->a1, diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c -index 6e52cbd..3a3265d 100644 +index 6e52cbd76d89..3a3265df7f20 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -818,6 +818,8 @@ sbi_hart_switch_mode(unsigned long arg0, unsigned long arg1, @@ -1271,7 +1271,7 @@ index 6e52cbd..3a3265d 100644 register unsigned long a1 asm("a1") = arg1; __asm__ __volatile__("mret" : : "r"(a0), "r"(a1)); diff --git a/lib/sbi/sbi_hsm.c b/lib/sbi/sbi_hsm.c -index f870ca7..acd3c9e 100644 +index f870ca72bafc..acd3c9e04c87 100644 --- a/lib/sbi/sbi_hsm.c +++ b/lib/sbi/sbi_hsm.c @@ -25,6 +25,8 @@ @@ -1394,7 +1394,7 @@ index f870ca7..acd3c9e 100644 { return hsm_dev; diff --git a/lib/sbi/sbi_init.c b/lib/sbi/sbi_init.c -index 423e6d8..d36d5a0 100644 +index 423e6d83650f..d36d5a096401 100644 --- a/lib/sbi/sbi_init.c +++ b/lib/sbi/sbi_init.c @@ -185,6 +185,7 @@ static void sbi_boot_print_hart(struct sbi_scratch *scratch, u32 hartid) @@ -1449,7 +1449,7 @@ index 423e6d8..d36d5a0 100644 hstate = sbi_hsm_hart_get_state(sbi_domain_thishart_ptr(), hartid); if (hstate < 0) diff --git a/lib/sbi/sbi_pmu.c b/lib/sbi/sbi_pmu.c -index c73e6ef..80367b2 100644 +index c73e6ef3ff2d..80367b28005c 100644 --- a/lib/sbi/sbi_pmu.c +++ b/lib/sbi/sbi_pmu.c @@ -557,8 +557,25 @@ int sbi_pmu_ctr_stop(unsigned long cbase, unsigned long cmask, @@ -1499,7 +1499,7 @@ index c73e6ef..80367b2 100644 if (pmu_dev && pmu_dev->hw_counter_disable_irq) pmu_dev->hw_counter_disable_irq(ctr_idx); diff --git a/lib/sbi/sbi_scratch.c b/lib/sbi/sbi_scratch.c -index 87ef84c..44917eb 100644 +index 87ef84cafd31..44917eb3fcc6 100644 --- a/lib/sbi/sbi_scratch.c +++ b/lib/sbi/sbi_scratch.c @@ -13,6 +13,7 @@ @@ -1528,7 +1528,7 @@ index 87ef84c..44917eb 100644 goto done; diff --git a/lib/utils/Kconfig b/lib/utils/Kconfig -index 5a71e75..3ac04ab 100644 +index 5a71e7509ca8..3ac04ab1ab4f 100644 --- a/lib/utils/Kconfig +++ b/lib/utils/Kconfig @@ -22,4 +22,6 @@ source "$(OPENSBI_SRC_DIR)/lib/utils/sys/Kconfig" @@ -1540,7 +1540,7 @@ index 5a71e75..3ac04ab 100644 endmenu diff --git a/lib/utils/arm_scmi/board/spacemit/spacemit_pm.c b/lib/utils/arm_scmi/board/spacemit/spacemit_pm.c new file mode 100644 -index 0000000..96fc7bb +index 000000000000..96fc7bb7dee3 --- /dev/null +++ b/lib/utils/arm_scmi/board/spacemit/spacemit_pm.c @@ -0,0 +1,41 @@ @@ -1587,7 +1587,7 @@ index 0000000..96fc7bb +}; diff --git a/lib/utils/arm_scmi/common/arm_pm.c b/lib/utils/arm_scmi/common/arm_pm.c new file mode 100644 -index 0000000..7fffece +index 000000000000..7fffeced85ac --- /dev/null +++ b/lib/utils/arm_scmi/common/arm_pm.c @@ -0,0 +1,68 @@ @@ -1661,7 +1661,7 @@ index 0000000..7fffece +} diff --git a/lib/utils/arm_scmi/css/common/css_pm.c b/lib/utils/arm_scmi/css/common/css_pm.c new file mode 100644 -index 0000000..8d17b6b +index 000000000000..8d17b6be442f --- /dev/null +++ b/lib/utils/arm_scmi/css/common/css_pm.c @@ -0,0 +1,298 @@ @@ -1965,7 +1965,7 @@ index 0000000..8d17b6b +}; diff --git a/lib/utils/arm_scmi/css/mhu/css_mhu_doorbell.c b/lib/utils/arm_scmi/css/mhu/css_mhu_doorbell.c new file mode 100644 -index 0000000..887d031 +index 000000000000..887d0312f3f2 --- /dev/null +++ b/lib/utils/arm_scmi/css/mhu/css_mhu_doorbell.c @@ -0,0 +1,27 @@ @@ -1998,7 +1998,7 @@ index 0000000..887d031 +} diff --git a/lib/utils/arm_scmi/css/mhu/mhu.h b/lib/utils/arm_scmi/css/mhu/mhu.h new file mode 100644 -index 0000000..fb3e757 +index 000000000000..fb3e7574c6c4 --- /dev/null +++ b/lib/utils/arm_scmi/css/mhu/mhu.h @@ -0,0 +1,130 @@ @@ -2134,7 +2134,7 @@ index 0000000..fb3e757 +#endif /* INTERNAL_MHU_H */ diff --git a/lib/utils/arm_scmi/css/scmi/scmi_common.c b/lib/utils/arm_scmi/css/scmi/scmi_common.c new file mode 100644 -index 0000000..1c56da2 +index 000000000000..1c56da290f10 --- /dev/null +++ b/lib/utils/arm_scmi/css/scmi/scmi_common.c @@ -0,0 +1,228 @@ @@ -2368,7 +2368,7 @@ index 0000000..1c56da2 +} diff --git a/lib/utils/arm_scmi/css/scmi/scmi_pwr_dmn_proto.c b/lib/utils/arm_scmi/css/scmi/scmi_pwr_dmn_proto.c new file mode 100644 -index 0000000..5a4f734 +index 000000000000..5a4f7347ceff --- /dev/null +++ b/lib/utils/arm_scmi/css/scmi/scmi_pwr_dmn_proto.c @@ -0,0 +1,102 @@ @@ -2476,7 +2476,7 @@ index 0000000..5a4f734 +} diff --git a/lib/utils/arm_scmi/css/scmi/scmi_sys_pwr_proto.c b/lib/utils/arm_scmi/css/scmi/scmi_sys_pwr_proto.c new file mode 100644 -index 0000000..fc7c30e +index 000000000000..fc7c30e50c6d --- /dev/null +++ b/lib/utils/arm_scmi/css/scmi/scmi_sys_pwr_proto.c @@ -0,0 +1,90 @@ @@ -2572,7 +2572,7 @@ index 0000000..fc7c30e +} diff --git a/lib/utils/arm_scmi/css/scp/css_pm_scmi.c b/lib/utils/arm_scmi/css/scp/css_pm_scmi.c new file mode 100644 -index 0000000..a88eb9f +index 000000000000..a88eb9f4ce0e --- /dev/null +++ b/lib/utils/arm_scmi/css/scp/css_pm_scmi.c @@ -0,0 +1,418 @@ @@ -2996,7 +2996,7 @@ index 0000000..a88eb9f +} diff --git a/lib/utils/arm_scmi/objects.mk b/lib/utils/arm_scmi/objects.mk new file mode 100644 -index 0000000..532e070 +index 000000000000..532e0709bdee --- /dev/null +++ b/lib/utils/arm_scmi/objects.mk @@ -0,0 +1,24 @@ @@ -3026,7 +3026,7 @@ index 0000000..532e070 +libsbiutils-objs-$(CONFIG_ARM_SCMI_PROTOCOL_SUPPORT) += arm_scmi/board/spacemit/spacemit_pm.o diff --git a/lib/utils/cci/bus-cci.c b/lib/utils/cci/bus-cci.c new file mode 100644 -index 0000000..7fe11d0 +index 000000000000..7fe11d0d28c1 --- /dev/null +++ b/lib/utils/cci/bus-cci.c @@ -0,0 +1,168 @@ @@ -3200,7 +3200,7 @@ index 0000000..7fe11d0 + diff --git a/lib/utils/cci/objects.mk b/lib/utils/cci/objects.mk new file mode 100644 -index 0000000..08aac67 +index 000000000000..08aac675e6da --- /dev/null +++ b/lib/utils/cci/objects.mk @@ -0,0 +1,7 @@ @@ -3212,7 +3212,7 @@ index 0000000..08aac67 + +libsbiutils-objs-y += cci/bus-cci.o diff --git a/lib/utils/ipi/aclint_mswi.c b/lib/utils/ipi/aclint_mswi.c -index f47b3bc..6342030 100644 +index f47b3bcbbb44..63420302b1d7 100644 --- a/lib/utils/ipi/aclint_mswi.c +++ b/lib/utils/ipi/aclint_mswi.c @@ -15,6 +15,7 @@ @@ -3241,7 +3241,7 @@ index f47b3bc..6342030 100644 return SBI_ENOENT; mswi_set_hart_data_ptr(scratch, mswi); diff --git a/lib/utils/irqchip/fdt_irqchip_plic.c b/lib/utils/irqchip/fdt_irqchip_plic.c -index 829c5ee..0a2d61b 100644 +index 829c5ee20341..0a2d61b0beca 100644 --- a/lib/utils/irqchip/fdt_irqchip_plic.c +++ b/lib/utils/irqchip/fdt_irqchip_plic.c @@ -85,6 +85,11 @@ static int irqchip_plic_warm_init(void) @@ -3258,7 +3258,7 @@ index 829c5ee..0a2d61b 100644 { diff --git a/lib/utils/psci/Kconfig b/lib/utils/psci/Kconfig new file mode 100644 -index 0000000..a009597 +index 000000000000..a009597ba053 --- /dev/null +++ b/lib/utils/psci/Kconfig @@ -0,0 +1,21 @@ @@ -3285,7 +3285,7 @@ index 0000000..a009597 +endmenu diff --git a/lib/utils/psci/objects.mk b/lib/utils/psci/objects.mk new file mode 100644 -index 0000000..6170680 +index 000000000000..617068038db8 --- /dev/null +++ b/lib/utils/psci/objects.mk @@ -0,0 +1,30 @@ @@ -3321,7 +3321,7 @@ index 0000000..6170680 +endif diff --git a/lib/utils/psci/psci_common.c b/lib/utils/psci/psci_common.c new file mode 100644 -index 0000000..f4b4bee +index 000000000000..f4b4bee03ec4 --- /dev/null +++ b/lib/utils/psci/psci_common.c @@ -0,0 +1,872 @@ @@ -4199,7 +4199,7 @@ index 0000000..f4b4bee +} diff --git a/lib/utils/psci/psci_main.c b/lib/utils/psci/psci_main.c new file mode 100644 -index 0000000..f2441f5 +index 000000000000..f2441f57e16e --- /dev/null +++ b/lib/utils/psci/psci_main.c @@ -0,0 +1,188 @@ @@ -4393,7 +4393,7 @@ index 0000000..f2441f5 + diff --git a/lib/utils/psci/psci_off.c b/lib/utils/psci/psci_off.c new file mode 100644 -index 0000000..e8b5be1 +index 000000000000..e8b5be18dedb --- /dev/null +++ b/lib/utils/psci/psci_off.c @@ -0,0 +1,173 @@ @@ -4572,7 +4572,7 @@ index 0000000..e8b5be1 +} diff --git a/lib/utils/psci/psci_on.c b/lib/utils/psci/psci_on.c new file mode 100644 -index 0000000..2dd4ff0 +index 000000000000..2dd4ff0d50a7 --- /dev/null +++ b/lib/utils/psci/psci_on.c @@ -0,0 +1,246 @@ @@ -4824,7 +4824,7 @@ index 0000000..2dd4ff0 +} diff --git a/lib/utils/psci/psci_private.h b/lib/utils/psci/psci_private.h new file mode 100644 -index 0000000..d1cd2ba +index 000000000000..d1cd2ba84742 --- /dev/null +++ b/lib/utils/psci/psci_private.h @@ -0,0 +1,198 @@ @@ -5028,7 +5028,7 @@ index 0000000..d1cd2ba +#endif diff --git a/lib/utils/psci/psci_setup.c b/lib/utils/psci/psci_setup.c new file mode 100644 -index 0000000..ba52c20 +index 000000000000..ba52c20a8c99 --- /dev/null +++ b/lib/utils/psci/psci_setup.c @@ -0,0 +1,242 @@ @@ -5276,7 +5276,7 @@ index 0000000..ba52c20 +} diff --git a/lib/utils/psci/psci_suspend.c b/lib/utils/psci/psci_suspend.c new file mode 100644 -index 0000000..1466acf +index 000000000000..1466acfc77b6 --- /dev/null +++ b/lib/utils/psci/psci_suspend.c @@ -0,0 +1,298 @@ @@ -5580,7 +5580,7 @@ index 0000000..1466acf +} diff --git a/lib/utils/psci/spacemit/plat/k1x/underly_implement.c b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c new file mode 100644 -index 0000000..9976b57 +index 000000000000..9976b5774039 --- /dev/null +++ b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c @@ -0,0 +1,345 @@ @@ -5931,7 +5931,7 @@ index 0000000..9976b57 +} diff --git a/lib/utils/psci/spacemit/plat/plat_pm.c b/lib/utils/psci/spacemit/plat/plat_pm.c new file mode 100644 -index 0000000..464a56a +index 000000000000..464a56a277ef --- /dev/null +++ b/lib/utils/psci/spacemit/plat/plat_pm.c @@ -0,0 +1,258 @@ @@ -6195,7 +6195,7 @@ index 0000000..464a56a +} diff --git a/lib/utils/psci/spacemit/plat/underly_implement.h b/lib/utils/psci/spacemit/plat/underly_implement.h new file mode 100644 -index 0000000..dd6c972 +index 000000000000..dd6c972325bb --- /dev/null +++ b/lib/utils/psci/spacemit/plat/underly_implement.h @@ -0,0 +1,14 @@ @@ -6215,7 +6215,7 @@ index 0000000..dd6c972 +#endif diff --git a/lib/utils/psci/spacemit/spacemit_topology.c b/lib/utils/psci/spacemit/spacemit_topology.c new file mode 100644 -index 0000000..de327d8 +index 000000000000..de327d833377 --- /dev/null +++ b/lib/utils/psci/spacemit/spacemit_topology.c @@ -0,0 +1,26 @@ @@ -6246,7 +6246,7 @@ index 0000000..de327d8 + return plat_power_domain_tree_desc; +} diff --git a/lib/utils/serial/uart8250.c b/lib/utils/serial/uart8250.c -index 99bf1bf..87a6bc6 100644 +index 99bf1bf733f2..87a6bc607cac 100644 --- a/lib/utils/serial/uart8250.c +++ b/lib/utils/serial/uart8250.c @@ -131,6 +131,11 @@ int uart8250_init(unsigned long base, u32 in_freq, u32 baudrate, u32 reg_shift, @@ -6262,7 +6262,7 @@ index 99bf1bf..87a6bc6 100644 return 0; diff --git a/lib/utils/timer/aclint_mtimer.c b/lib/utils/timer/aclint_mtimer.c -index 13af5d8..a9dbea2 100644 +index 13af5d8232d3..a9dbea2526a6 100644 --- a/lib/utils/timer/aclint_mtimer.c +++ b/lib/utils/timer/aclint_mtimer.c @@ -15,6 +15,7 @@ @@ -6291,7 +6291,7 @@ index 13af5d8..a9dbea2 100644 return SBI_ENOENT; mtimer_set_hart_data_ptr(scratch, mt); diff --git a/platform/generic/Kconfig b/platform/generic/Kconfig -index 72768ed..350e41e 100644 +index 72768edeb921..350e41e58325 100644 --- a/platform/generic/Kconfig +++ b/platform/generic/Kconfig @@ -52,6 +52,42 @@ config PLATFORM_STARFIVE_JH7110 @@ -6338,7 +6338,7 @@ index 72768ed..350e41e 100644 endif diff --git a/platform/generic/configs/defconfig b/platform/generic/configs/defconfig -index ee0df38..6366769 100644 +index ee0df38a22ee..6366769ef59a 100644 --- a/platform/generic/configs/defconfig +++ b/platform/generic/configs/defconfig @@ -4,6 +4,7 @@ CONFIG_PLATFORM_RENESAS_RZFIVE=y @@ -6357,7 +6357,7 @@ index ee0df38..6366769 100644 +CONFIG_SERIAL_SEMIHOSTING=n diff --git a/platform/generic/configs/k1-x_fpga_1x4_defconfig b/platform/generic/configs/k1-x_fpga_1x4_defconfig new file mode 100644 -index 0000000..c9419d6 +index 000000000000..c9419d6336fc --- /dev/null +++ b/platform/generic/configs/k1-x_fpga_1x4_defconfig @@ -0,0 +1,16 @@ @@ -6379,7 +6379,7 @@ index 0000000..c9419d6 +CONFIG_ARM_NON_SCMI_SUPPORT=y diff --git a/platform/generic/configs/k1-x_fpga_2x2_defconfig b/platform/generic/configs/k1-x_fpga_2x2_defconfig new file mode 100644 -index 0000000..c9419d6 +index 000000000000..c9419d6336fc --- /dev/null +++ b/platform/generic/configs/k1-x_fpga_2x2_defconfig @@ -0,0 +1,16 @@ @@ -6401,7 +6401,7 @@ index 0000000..c9419d6 +CONFIG_ARM_NON_SCMI_SUPPORT=y diff --git a/platform/generic/configs/k1-x_fpga_defconfig b/platform/generic/configs/k1-x_fpga_defconfig new file mode 100644 -index 0000000..c9419d6 +index 000000000000..c9419d6336fc --- /dev/null +++ b/platform/generic/configs/k1-x_fpga_defconfig @@ -0,0 +1,16 @@ @@ -6423,7 +6423,7 @@ index 0000000..c9419d6 +CONFIG_ARM_NON_SCMI_SUPPORT=y diff --git a/platform/generic/configs/k1_defconfig b/platform/generic/configs/k1_defconfig new file mode 100644 -index 0000000..08f1703 +index 000000000000..08f17036aa91 --- /dev/null +++ b/platform/generic/configs/k1_defconfig @@ -0,0 +1,16 @@ @@ -6445,7 +6445,7 @@ index 0000000..08f1703 +CONFIG_ARM_NON_SCMI_SUPPORT=y diff --git a/platform/generic/include/spacemit/k1x/core_common.h b/platform/generic/include/spacemit/k1x/core_common.h new file mode 100644 -index 0000000..4bee5e1 +index 000000000000..4bee5e11b38b --- /dev/null +++ b/platform/generic/include/spacemit/k1x/core_common.h @@ -0,0 +1,13 @@ @@ -6464,7 +6464,7 @@ index 0000000..4bee5e1 +#endif /* __K1X_CORE_COMMON_H__ */ diff --git a/platform/generic/include/spacemit/k1x/k1x_evb.h b/platform/generic/include/spacemit/k1x/k1x_evb.h new file mode 100644 -index 0000000..b951105 +index 000000000000..b951105e0c04 --- /dev/null +++ b/platform/generic/include/spacemit/k1x/k1x_evb.h @@ -0,0 +1,72 @@ @@ -6542,7 +6542,7 @@ index 0000000..b951105 +#endif /* __K1X_EVB_CONFIG_H__ */ diff --git a/platform/generic/include/spacemit/k1x/k1x_fpga.h b/platform/generic/include/spacemit/k1x/k1x_fpga.h new file mode 100644 -index 0000000..4748c86 +index 000000000000..4748c86b69c2 --- /dev/null +++ b/platform/generic/include/spacemit/k1x/k1x_fpga.h @@ -0,0 +1,73 @@ @@ -6621,7 +6621,7 @@ index 0000000..4748c86 +#endif /* __K1X_FPGA_CONFIG_H__ */ diff --git a/platform/generic/include/spacemit/spacemit_config.h b/platform/generic/include/spacemit/spacemit_config.h new file mode 100644 -index 0000000..d48869c +index 000000000000..d48869cc2ae5 --- /dev/null +++ b/platform/generic/include/spacemit/spacemit_config.h @@ -0,0 +1,30 @@ @@ -6656,7 +6656,7 @@ index 0000000..d48869c + +#endif /* __SPACEMIT_CONFIG_H__ */ diff --git a/platform/generic/objects.mk b/platform/generic/objects.mk -index 136853e..f3418ef 100644 +index 136853eeb1d8..f3418efeb011 100644 --- a/platform/generic/objects.mk +++ b/platform/generic/objects.mk @@ -22,7 +22,7 @@ platform-objs-y += platform.o @@ -6670,7 +6670,7 @@ index 136853e..f3418ef 100644 ifeq ($(PLATFORM_RISCV_XLEN), 32) diff --git a/platform/generic/spacemit/fw_dynamic.its b/platform/generic/spacemit/fw_dynamic.its new file mode 100755 -index 0000000..f1159d4 +index 000000000000..f1159d4cfe0a --- /dev/null +++ b/platform/generic/spacemit/fw_dynamic.its @@ -0,0 +1,31 @@ @@ -6707,7 +6707,7 @@ index 0000000..f1159d4 +}; diff --git a/platform/generic/spacemit/objects.mk b/platform/generic/spacemit/objects.mk new file mode 100644 -index 0000000..92ef7eb +index 000000000000..92ef7eb26c92 --- /dev/null +++ b/platform/generic/spacemit/objects.mk @@ -0,0 +1,7 @@ @@ -6720,7 +6720,7 @@ index 0000000..92ef7eb +firmware-its-$(CONFIG_PLATFORM_SPACEMIT_K1PRO)$(CONFIG_PLATFORM_SPACEMIT_K1X) += spacemit/fw_dynamic.its diff --git a/platform/generic/spacemit/spacemit_k1.c b/platform/generic/spacemit/spacemit_k1.c new file mode 100644 -index 0000000..8664e05 +index 000000000000..8664e05e7910 --- /dev/null +++ b/platform/generic/spacemit/spacemit_k1.c @@ -0,0 +1,194 @@ @@ -6918,3 +6918,6 @@ index 0000000..8664e05 + .final_init = spacemit_k1_final_init, + .cold_boot_allowed = spacemit_cold_boot_allowed, +}; +-- +2.35.3 + diff --git a/patch/atf/atf-spacemit/002-v1.0beta3.1.patch b/patch/atf/atf-spacemit/002-Update-for-v1.0beta3.1.patch similarity index 97% rename from patch/atf/atf-spacemit/002-v1.0beta3.1.patch rename to patch/atf/atf-spacemit/002-Update-for-v1.0beta3.1.patch index 4ef2c6ad9..7818e0ef9 100644 --- a/patch/atf/atf-spacemit/002-v1.0beta3.1.patch +++ b/patch/atf/atf-spacemit/002-Update-for-v1.0beta3.1.patch @@ -1,7 +1,7 @@ From 7aad08218f25d4eed674bc172995f38291ebfb5e Mon Sep 17 00:00:00 2001 From: James Deng Date: Mon, 15 Apr 2024 11:42:57 +0800 -Subject: [PATCH] Update for v1.0beta3.1 +Subject: Update for v1.0beta3.1 --- debian/.gitignore | 1 + @@ -47,14 +47,14 @@ Subject: [PATCH] Update for v1.0beta3.1 diff --git a/debian/.gitignore b/debian/.gitignore new file mode 100644 -index 0000000..6d10dce +index 000000000000..6d10dce740f7 --- /dev/null +++ b/debian/.gitignore @@ -0,0 +1 @@ +changelog diff --git a/debian/README.source b/debian/README.source new file mode 100644 -index 0000000..bd33e14 +index 000000000000..bd33e1488fcf --- /dev/null +++ b/debian/README.source @@ -0,0 +1,7 @@ @@ -67,7 +67,7 @@ index 0000000..bd33e14 + -- Vagrant Cascadian , Thu, 30 May 2019 15:02:49 -0700 diff --git a/debian/bin/git-snapshot b/debian/bin/git-snapshot new file mode 100755 -index 0000000..6db5eb2 +index 000000000000..6db5eb241d78 --- /dev/null +++ b/debian/bin/git-snapshot @@ -0,0 +1,18 @@ @@ -91,7 +91,7 @@ index 0000000..6db5eb2 + echo "successfully created: ${output}" diff --git a/debian/control b/debian/control new file mode 100644 -index 0000000..6c4a174 +index 000000000000..6c4a1747b5f3 --- /dev/null +++ b/debian/control @@ -0,0 +1,24 @@ @@ -121,7 +121,7 @@ index 0000000..6c4a174 + generic diff --git a/debian/copyright b/debian/copyright new file mode 100644 -index 0000000..cfbcf75 +index 000000000000..cfbcf75e0649 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,177 @@ @@ -304,7 +304,7 @@ index 0000000..cfbcf75 + copies. diff --git a/debian/opensbi-spacemit.docs b/debian/opensbi-spacemit.docs new file mode 100644 -index 0000000..85f6f20 +index 000000000000..85f6f20d235f --- /dev/null +++ b/debian/opensbi-spacemit.docs @@ -0,0 +1,2 @@ @@ -312,14 +312,14 @@ index 0000000..85f6f20 +CONTRIBUTORS.md diff --git a/debian/opensbi-spacemit.install b/debian/opensbi-spacemit.install new file mode 100644 -index 0000000..d1897d5 +index 000000000000..d1897d557a11 --- /dev/null +++ b/debian/opensbi-spacemit.install @@ -0,0 +1 @@ +build/platform/generic/firmware/fw_*.itb /usr/lib/riscv64-linux-gnu/opensbi/generic/ diff --git a/debian/opensbi-spacemit.lintian-overrides b/debian/opensbi-spacemit.lintian-overrides new file mode 100644 -index 0000000..8b6168d +index 000000000000..8b6168d15e45 --- /dev/null +++ b/debian/opensbi-spacemit.lintian-overrides @@ -0,0 +1,9 @@ @@ -334,7 +334,7 @@ index 0000000..8b6168d +opensbi binary: triplet-dir-and-architecture-mismatch is for riscv64 instead of all *usr/lib/riscv64-linux-gnu/* diff --git a/debian/opensbi-spacemit.postinst b/debian/opensbi-spacemit.postinst new file mode 100755 -index 0000000..1f6feca +index 000000000000..1f6feca80674 --- /dev/null +++ b/debian/opensbi-spacemit.postinst @@ -0,0 +1,45 @@ @@ -385,7 +385,7 @@ index 0000000..1f6feca +exit 0 diff --git a/debian/rules b/debian/rules new file mode 100755 -index 0000000..ab9cc10 +index 000000000000..ab9cc10c406c --- /dev/null +++ b/debian/rules @@ -0,0 +1,27 @@ @@ -418,14 +418,14 @@ index 0000000..ab9cc10 + dh_install diff --git a/debian/source/format b/debian/source/format new file mode 100644 -index 0000000..163aaf8 +index 000000000000..163aaf8d82b6 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/upstream/metadata b/debian/upstream/metadata new file mode 100644 -index 0000000..f716ba7 +index 000000000000..f716ba77edcd --- /dev/null +++ b/debian/upstream/metadata @@ -0,0 +1,5 @@ @@ -436,7 +436,7 @@ index 0000000..f716ba7 +Repository-Browse: https://github.com/riscv-software-src/opensbi diff --git a/debian/watch b/debian/watch new file mode 100644 -index 0000000..508d476 +index 000000000000..508d476a75c0 --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ @@ -444,7 +444,7 @@ index 0000000..508d476 +opts=filenamemangle=s/\/(.*)v/@PACKAGE@-/ \ + https://github.com/riscv-software-src/@PACKAGE@/tags .*/v@ANY_VERSION@.tar.gz diff --git a/include/sbi/riscv_encoding.h b/include/sbi/riscv_encoding.h -index 54e09d4..5abb8e4 100644 +index 54e09d44528b..5abb8e4c776b 100644 --- a/include/sbi/riscv_encoding.h +++ b/include/sbi/riscv_encoding.h @@ -709,6 +709,7 @@ @@ -456,7 +456,7 @@ index 54e09d4..5abb8e4 100644 /* ===== Trap/Exception Causes ===== */ diff --git a/include/sbi_utils/irqchip/fdt_irqchip_plic.h b/include/sbi_utils/irqchip/fdt_irqchip_plic.h -index b892b0b..df645dd 100644 +index b892b0bc70f8..df645dd00ee3 100644 --- a/include/sbi_utils/irqchip/fdt_irqchip_plic.h +++ b/include/sbi_utils/irqchip/fdt_irqchip_plic.h @@ -28,8 +28,6 @@ void fdt_plic_context_save(bool smode, u32 *enable, u32 *threshold, u32 num); @@ -469,7 +469,7 @@ index b892b0b..df645dd 100644 #endif diff --git a/lib/sbi/sbi_console.c b/lib/sbi/sbi_console.c -index 168dffd..9d917ec 100644 +index 168dffd06429..9d917ec78927 100644 --- a/lib/sbi/sbi_console.c +++ b/lib/sbi/sbi_console.c @@ -422,6 +422,7 @@ int sbi_snprintf(char *out, u32 out_sz, const char *format, ...) @@ -494,7 +494,7 @@ index 168dffd..9d917ec 100644 int sbi_dprintf(const char *format, ...) { diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c -index 3a3265d..a3f752d 100644 +index 3a3265df7f20..a3f752d27105 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -819,6 +819,12 @@ sbi_hart_switch_mode(unsigned long arg0, unsigned long arg1, @@ -511,7 +511,7 @@ index 3a3265d..a3f752d 100644 register unsigned long a0 asm("a0") = arg0; register unsigned long a1 asm("a1") = arg1; diff --git a/lib/utils/Kconfig b/lib/utils/Kconfig -index 3ac04ab..dab9bf9 100644 +index 3ac04ab1ab4f..dab9bf956598 100644 --- a/lib/utils/Kconfig +++ b/lib/utils/Kconfig @@ -24,4 +24,11 @@ source "$(OPENSBI_SRC_DIR)/lib/utils/timer/Kconfig" @@ -527,7 +527,7 @@ index 3ac04ab..dab9bf9 100644 + endmenu diff --git a/lib/utils/arm_scmi/css/common/css_pm.c b/lib/utils/arm_scmi/css/common/css_pm.c -index 8d17b6b..83908c7 100644 +index 8d17b6be442f..83908c747d8d 100644 --- a/lib/utils/arm_scmi/css/common/css_pm.c +++ b/lib/utils/arm_scmi/css/common/css_pm.c @@ -114,8 +114,7 @@ static void css_power_down_common(const psci_power_state_t *target_state) @@ -541,7 +541,7 @@ index 8d17b6b..83908c7 100644 csr_clear(CSR_MIP, MIP_MEIP); csr_clear(CSR_MIP, MIP_SEIP); diff --git a/lib/utils/irqchip/fdt_irqchip_plic.c b/lib/utils/irqchip/fdt_irqchip_plic.c -index 0a2d61b..829c5ee 100644 +index 0a2d61b0beca..829c5ee20341 100644 --- a/lib/utils/irqchip/fdt_irqchip_plic.c +++ b/lib/utils/irqchip/fdt_irqchip_plic.c @@ -85,11 +85,6 @@ static int irqchip_plic_warm_init(void) @@ -557,7 +557,7 @@ index 0a2d61b..829c5ee 100644 struct plic_data *pd) { diff --git a/lib/utils/psci/psci_common.c b/lib/utils/psci/psci_common.c -index f4b4bee..0a8ebd1 100644 +index f4b4bee03ec4..0a8ebd1319fd 100644 --- a/lib/utils/psci/psci_common.c +++ b/lib/utils/psci/psci_common.c @@ -870,3 +870,55 @@ void riscv_pwr_state_to_psci(unsigned int rstate, unsigned int *pstate) @@ -617,7 +617,7 @@ index f4b4bee..0a8ebd1 100644 +} + diff --git a/lib/utils/psci/psci_main.c b/lib/utils/psci/psci_main.c -index f2441f5..a3ce138 100644 +index f2441f57e16e..a3ce138c00cc 100644 --- a/lib/utils/psci/psci_main.c +++ b/lib/utils/psci/psci_main.c @@ -9,34 +9,32 @@ @@ -726,7 +726,7 @@ index f2441f5..a3ce138 100644 + return rc; +} diff --git a/lib/utils/psci/psci_private.h b/lib/utils/psci/psci_private.h -index d1cd2ba..c768d3f 100644 +index d1cd2ba84742..c768d3f379ab 100644 --- a/lib/utils/psci/psci_private.h +++ b/lib/utils/psci/psci_private.h @@ -142,6 +142,10 @@ int psci_cpu_suspend_start(/* const entry_point_info_t *ep */ uintptr_t entrypoi @@ -741,7 +741,7 @@ index d1cd2ba..c768d3f 100644 static inline bool is_cpu_standby_req(unsigned int is_power_down_state, unsigned int retn_lvl) diff --git a/lib/utils/psci/spacemit/plat/k1x/underly_implement.c b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c -index 9976b57..279e6d5 100644 +index 9976b5774039..279e6d5dc741 100644 --- a/lib/utils/psci/spacemit/plat/k1x/underly_implement.c +++ b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c @@ -27,10 +27,20 @@ @@ -848,7 +848,7 @@ index 9976b57..279e6d5 100644 /* M2 */ diff --git a/lib/utils/psci/spacemit/plat/plat_pm.c b/lib/utils/psci/spacemit/plat/plat_pm.c -index 464a56a..da6f958 100644 +index 464a56a277ef..da6f958157fa 100644 --- a/lib/utils/psci/spacemit/plat/plat_pm.c +++ b/lib/utils/psci/spacemit/plat/plat_pm.c @@ -16,6 +16,9 @@ @@ -938,7 +938,7 @@ index 464a56a..da6f958 100644 int plat_setup_psci_ops(uintptr_t sec_entrypoint, const plat_psci_ops_t **psci_ops) diff --git a/platform/generic/spacemit/spacemit_k1.c b/platform/generic/spacemit/spacemit_k1.c -index 8664e05..38794c2 100644 +index 8664e05e7910..38794c2dfbb5 100644 --- a/platform/generic/spacemit/spacemit_k1.c +++ b/platform/generic/spacemit/spacemit_k1.c @@ -21,6 +21,7 @@ @@ -1197,5 +1197,5 @@ index 8664e05..38794c2 100644 static bool spacemit_cold_boot_allowed(u32 hartid, const struct fdt_match *match) -- -2.39.2 +2.35.3 diff --git a/patch/atf/atf-spacemit/003-v1.0rc1.patch b/patch/atf/atf-spacemit/003-Update-for-v1.0rc1.patch similarity index 97% rename from patch/atf/atf-spacemit/003-v1.0rc1.patch rename to patch/atf/atf-spacemit/003-Update-for-v1.0rc1.patch index 73b1fd6d5..78eaea378 100644 --- a/patch/atf/atf-spacemit/003-v1.0rc1.patch +++ b/patch/atf/atf-spacemit/003-Update-for-v1.0rc1.patch @@ -1,7 +1,7 @@ From 41a15ab971400502e93bbbf0d7336fa81daf25c9 Mon Sep 17 00:00:00 2001 From: James Deng Date: Tue, 30 Apr 2024 17:48:07 +0800 -Subject: [PATCH] Update for v1.0rc1 +Subject: Update for v1.0rc1 --- include/sbi_utils/cache/cacheflush.h | 34 +++++++++----- @@ -15,7 +15,7 @@ Subject: [PATCH] Update for v1.0rc1 8 files changed, 126 insertions(+), 57 deletions(-) diff --git a/include/sbi_utils/cache/cacheflush.h b/include/sbi_utils/cache/cacheflush.h -index c3e3532..126931b 100644 +index c3e353229f75..126931b25888 100644 --- a/include/sbi_utils/cache/cacheflush.h +++ b/include/sbi_utils/cache/cacheflush.h @@ -167,26 +167,34 @@ static inline void __mdelay(void) @@ -67,7 +67,7 @@ index c3e3532..126931b 100644 } #endif diff --git a/lib/sbi/sbi_hsm.c b/lib/sbi/sbi_hsm.c -index acd3c9e..51c982a 100644 +index acd3c9e04c87..51c982ad7b78 100644 --- a/lib/sbi/sbi_hsm.c +++ b/lib/sbi/sbi_hsm.c @@ -183,7 +183,7 @@ void __noreturn sbi_hsm_hart_start_finish(struct sbi_scratch *scratch, @@ -80,7 +80,7 @@ index acd3c9e..51c982a 100644 sbi_hart_switch_mode(hartid, next_arg1, next_addr, next_mode, false); diff --git a/lib/utils/psci/psci_private.h b/lib/utils/psci/psci_private.h -index c768d3f..0a3f260 100644 +index c768d3f379ab..0a3f260f5c39 100644 --- a/lib/utils/psci/psci_private.h +++ b/lib/utils/psci/psci_private.h @@ -182,7 +182,7 @@ static inline void psci_do_pwrdown_cache_maintenance(int hartid, uintptr_t scrat @@ -93,7 +93,7 @@ index c768d3f..0a3f260 100644 /* disable dcache */ diff --git a/lib/utils/psci/spacemit/plat/k1x/underly_implement.c b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c -index 279e6d5..73feec4 100644 +index 279e6d5dc741..73feec440d27 100644 --- a/lib/utils/psci/spacemit/plat/k1x/underly_implement.c +++ b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c @@ -5,43 +5,6 @@ @@ -141,7 +141,7 @@ index 279e6d5..73feec4 100644 unsigned int pmu_cap_core0_wakeup; unsigned int pmu_cap_core1_wakeup; diff --git a/lib/utils/psci/spacemit/plat/plat_pm.c b/lib/utils/psci/spacemit/plat/plat_pm.c -index da6f958..a5b9127 100644 +index da6f958157fa..a5b91270834f 100644 --- a/lib/utils/psci/spacemit/plat/plat_pm.c +++ b/lib/utils/psci/spacemit/plat/plat_pm.c @@ -7,6 +7,7 @@ @@ -171,7 +171,7 @@ index da6f958..a5b9127 100644 if (SYSTEM_PWR_STATE(target_state) == ARM_LOCAL_STATE_OFF) { diff --git a/platform/generic/include/spacemit/k1x/k1x_evb.h b/platform/generic/include/spacemit/k1x/k1x_evb.h -index b951105..5f5b672 100644 +index b951105e0c04..5f5b672a61a6 100644 --- a/platform/generic/include/spacemit/k1x/k1x_evb.h +++ b/platform/generic/include/spacemit/k1x/k1x_evb.h @@ -24,6 +24,45 @@ @@ -233,7 +233,7 @@ index b951105..5f5b672 100644 + #endif /* __K1X_EVB_CONFIG_H__ */ diff --git a/platform/generic/include/spacemit/k1x/k1x_fpga.h b/platform/generic/include/spacemit/k1x/k1x_fpga.h -index 4748c86..3d8964c 100644 +index 4748c86b69c2..3d8964c861c4 100644 --- a/platform/generic/include/spacemit/k1x/k1x_fpga.h +++ b/platform/generic/include/spacemit/k1x/k1x_fpga.h @@ -24,13 +24,51 @@ @@ -303,7 +303,7 @@ index 4748c86..3d8964c 100644 + #endif /* __K1X_FPGA_CONFIG_H__ */ diff --git a/platform/generic/spacemit/spacemit_k1.c b/platform/generic/spacemit/spacemit_k1.c -index 38794c2..9521884 100644 +index 38794c2dfbb5..95218846715f 100644 --- a/platform/generic/spacemit/spacemit_k1.c +++ b/platform/generic/spacemit/spacemit_k1.c @@ -65,6 +65,19 @@ static void wakeup_other_core(void) @@ -327,5 +327,5 @@ index 38794c2..9521884 100644 for (i = 0; i < platform.hart_count; i++) { hartid = platform.hart_index2id[i]; -- -2.39.2 +2.35.3 diff --git a/patch/atf/atf-spacemit/004-v1.0.patch b/patch/atf/atf-spacemit/004-Update-for-v1.0.patch similarity index 94% rename from patch/atf/atf-spacemit/004-v1.0.patch rename to patch/atf/atf-spacemit/004-Update-for-v1.0.patch index 55388e003..542c4578c 100644 --- a/patch/atf/atf-spacemit/004-v1.0.patch +++ b/patch/atf/atf-spacemit/004-Update-for-v1.0.patch @@ -1,14 +1,14 @@ From ce6e8eec55a62d9e4cb5f5a767e50e9d0c2659ff Mon Sep 17 00:00:00 2001 From: James Deng Date: Thu, 30 May 2024 23:19:43 +0800 -Subject: [PATCH] Update for v1.0 +Subject: Update for v1.0 --- debian/opensbi-spacemit.postinst | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/debian/opensbi-spacemit.postinst b/debian/opensbi-spacemit.postinst -index 1f6feca..9ce082e 100755 +index 1f6feca80674..9ce082ef548b 100755 --- a/debian/opensbi-spacemit.postinst +++ b/debian/opensbi-spacemit.postinst @@ -22,9 +22,16 @@ configure) @@ -38,5 +38,5 @@ index 1f6feca..9ce082e 100755 ;; esac -- -2.39.2 +2.35.3 diff --git a/patch/atf/atf-spacemit/005-v1.0.3.patch b/patch/atf/atf-spacemit/005-Update-for-v1.0.3.patch similarity index 96% rename from patch/atf/atf-spacemit/005-v1.0.3.patch rename to patch/atf/atf-spacemit/005-Update-for-v1.0.3.patch index 0e8f547c4..c490680eb 100644 --- a/patch/atf/atf-spacemit/005-v1.0.3.patch +++ b/patch/atf/atf-spacemit/005-Update-for-v1.0.3.patch @@ -1,7 +1,7 @@ From 6f1344573d4ce0638d24d960e9a7d5ff1b0426b6 Mon Sep 17 00:00:00 2001 From: James Deng Date: Wed, 19 Jun 2024 15:18:09 +0800 -Subject: [PATCH] Update for v1.0.3 +Subject: Update for v1.0.3 --- .../spacemit/plat/k1x/underly_implement.c | 24 ++++++++++++++++++- @@ -9,7 +9,7 @@ Subject: [PATCH] Update for v1.0.3 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/lib/utils/psci/spacemit/plat/k1x/underly_implement.c b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c -index 73feec4..654da2d 100644 +index 73feec440d27..654da2d1a926 100644 --- a/lib/utils/psci/spacemit/plat/k1x/underly_implement.c +++ b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c @@ -44,6 +44,12 @@ void spacemit_top_on(u_register_t mpidr) @@ -67,7 +67,7 @@ index 73feec4..654da2d 100644 writel(0xffff, (unsigned int *)0xd4051030); } diff --git a/platform/generic/include/spacemit/k1x/k1x_evb.h b/platform/generic/include/spacemit/k1x/k1x_evb.h -index 5f5b672..10e8569 100644 +index 5f5b672a61a6..10e856965618 100644 --- a/platform/generic/include/spacemit/k1x/k1x_evb.h +++ b/platform/generic/include/spacemit/k1x/k1x_evb.h @@ -49,8 +49,8 @@ @@ -82,5 +82,5 @@ index 5f5b672..10e8569 100644 #define CLUSTER_DDRSD_OFFSET (27) #define CLUSTER_APBSD_OFFSET (26) -- -2.39.2 +2.35.3 diff --git a/patch/atf/atf-spacemit/006-v1.0.7.patch b/patch/atf/atf-spacemit/006-Update-for-v1.0.7.patch similarity index 96% rename from patch/atf/atf-spacemit/006-v1.0.7.patch rename to patch/atf/atf-spacemit/006-Update-for-v1.0.7.patch index 0555feb82..81a001b7b 100644 --- a/patch/atf/atf-spacemit/006-v1.0.7.patch +++ b/patch/atf/atf-spacemit/006-Update-for-v1.0.7.patch @@ -1,7 +1,7 @@ From 94bf83cc0bd1c86e51f48174fa17e23427903c59 Mon Sep 17 00:00:00 2001 From: James Deng Date: Thu, 11 Jul 2024 14:56:36 +0800 -Subject: [PATCH] Update for v1.0.7 +Subject: Update for v1.0.7 --- debian/opensbi-spacemit.postinst | 24 ++++++++++++++----- @@ -9,7 +9,7 @@ Subject: [PATCH] Update for v1.0.7 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/debian/opensbi-spacemit.postinst b/debian/opensbi-spacemit.postinst -index 9ce082e..dce7154 100755 +index 9ce082ef548b..dce7154ac8f4 100755 --- a/debian/opensbi-spacemit.postinst +++ b/debian/opensbi-spacemit.postinst @@ -4,9 +4,11 @@ set -e @@ -59,7 +59,7 @@ index 9ce082e..dce7154 100755 esac diff --git a/lib/utils/psci/spacemit/plat/k1x/underly_implement.c b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c -index 654da2d..94d53bf 100644 +index 654da2d1a926..94d53bf51d0f 100644 --- a/lib/utils/psci/spacemit/plat/k1x/underly_implement.c +++ b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c @@ -44,12 +44,6 @@ void spacemit_top_on(u_register_t mpidr) @@ -90,5 +90,5 @@ index 654da2d..94d53bf 100644 * driving capability of the internal 26M to PLL path * */ -- -2.39.2 +2.35.3 diff --git a/patch/atf/atf-spacemit/007-Update-for-v1.0.11.patch b/patch/atf/atf-spacemit/007-Update-for-v1.0.11.patch new file mode 100644 index 000000000..1e1c8a0a2 --- /dev/null +++ b/patch/atf/atf-spacemit/007-Update-for-v1.0.11.patch @@ -0,0 +1,554 @@ +From 1600b3620dd8babffcfcc7d780a31723c94270bc Mon Sep 17 00:00:00 2001 +From: James Deng +Date: Thu, 1 Aug 2024 22:09:26 +0800 +Subject: Update for v1.0.11 + +--- + debian/control | 1 + + debian/rules | 10 ++ + include/sbi_utils/cache/cacheflush.h | 29 ++++ + lib/utils/psci/psci_main.c | 8 +- + .../spacemit/plat/k1x/underly_implement.c | 86 +++++++++++- + lib/utils/psci/spacemit/plat/plat_pm.c | 131 ++++++++++++++---- + .../psci/spacemit/plat/underly_implement.h | 2 + + lib/utils/serial/fdt_serial_uart8250.c | 1 + + .../generic/include/spacemit/k1x/k1x_evb.h | 1 + + platform/generic/spacemit/spacemit_k1.c | 23 +-- + 10 files changed, 246 insertions(+), 46 deletions(-) + +diff --git a/debian/control b/debian/control +index 6c4a1747b5f3..f0f186707ea7 100644 +--- a/debian/control ++++ b/debian/control +@@ -11,6 +11,7 @@ Rules-Requires-Root: no + Vcs-Browser: https://salsa.debian.org/opensbi-team/opensbi + Vcs-Git: https://salsa.debian.org/opensbi-team/opensbi.git + Homepage: https://github.com/riscv-software-src/opensbi ++XBS-Commit-Id: + + Package: opensbi-spacemit + Architecture: all +diff --git a/debian/rules b/debian/rules +index ab9cc10c406c..3d44b43fcc38 100755 +--- a/debian/rules ++++ b/debian/rules +@@ -10,9 +10,19 @@ else + VERBOSE=0 + endif + ++# 检查是否在 Git 仓库中,并获取 commit ID ++GIT_INSIDE := $(shell git rev-parse --is-inside-work-tree 2>/dev/null) ++ifeq ($(GIT_INSIDE),true) ++ COMMIT_ID := $(shell git rev-parse --short HEAD) ++endif ++ + %: + dh $@ + ++override_dh_auto_configure: ++ sed -i "s/XBS-Commit-Id:.*/XBS-Commit-Id: $(COMMIT_ID)/" debian/control ++ dh_auto_configure ++ + override_dh_auto_build: + make \ + V=$(VERBOSE) \ +diff --git a/include/sbi_utils/cache/cacheflush.h b/include/sbi_utils/cache/cacheflush.h +index 126931b25888..7887eef949ab 100644 +--- a/include/sbi_utils/cache/cacheflush.h ++++ b/include/sbi_utils/cache/cacheflush.h +@@ -197,4 +197,33 @@ static inline void csi_flush_l2_cache(bool hw) + writel((1 << L2_CACHE_FLUSH_HW_TYPE_BIT_OFFSET) | (1 << L2_CACHE_FLUSH_HW_EN_BIT_OFFSET), cr); + } + } ++ ++static inline void csi_flush_l2_cache_hart(bool hw, int hartid) ++{ ++ uintptr_t *cr =(MPIDR_AFFLVL1_VAL(hartid) == 0) ? (uintptr_t *)CLUSTER0_L2_CACHE_FLUSH_REG_BASE : ++ (uintptr_t *)CLUSTER1_L2_CACHE_FLUSH_REG_BASE; ++ ++ if (!hw) { ++ writel(0x0, cr); ++ /* flush l2 cache */ ++ writel(readl(cr) | (1 << L2_CACHE_FLUSH_REQUEST_BIT_OFFSET), cr); ++ /* k1pro */ ++ if (L2_CACHE_FLUSH_REQUEST_BIT_OFFSET == L2_CACHE_FLUSH_DONE_BIT_OFFSET) ++ while (readl(cr) & (1 << L2_CACHE_FLUSH_DONE_BIT_OFFSET)); ++ else /* k1x */ { ++ /* clear the request */ ++ while (1) { ++ if ((readl(cr) & (1 << L2_CACHE_FLUSH_DONE_BIT_OFFSET)) == 0) ++ break; ++ __mdelay(); ++ } ++ writel(readl(cr) & ~(1 << L2_CACHE_FLUSH_REQUEST_BIT_OFFSET), cr); ++ } ++ } else { ++ /* k1pro */ ++ if (L2_CACHE_FLUSH_REQUEST_BIT_OFFSET == L2_CACHE_FLUSH_DONE_BIT_OFFSET) ++ return /* do nothing */; ++ writel((1 << L2_CACHE_FLUSH_HW_TYPE_BIT_OFFSET) | (1 << L2_CACHE_FLUSH_HW_EN_BIT_OFFSET), cr); ++ } ++} + #endif +diff --git a/lib/utils/psci/psci_main.c b/lib/utils/psci/psci_main.c +index a3ce138c00cc..e89bb4ad3f39 100644 +--- a/lib/utils/psci/psci_main.c ++++ b/lib/utils/psci/psci_main.c +@@ -81,10 +81,10 @@ int psci_cpu_off(void) + * The only error cpu_off can return is E_DENIED. So check if that's + * indeed the case. + */ +- if (rc != PSCI_E_DENIED) { +- sbi_printf("%s:%d, err\n", __func__, __LINE__); +- sbi_hart_hang(); +- } ++// if (rc != PSCI_E_DENIED) { ++// sbi_printf("%s:%d, err\n", __func__, __LINE__); ++// sbi_hart_hang(); ++// } + + return rc; + } +diff --git a/lib/utils/psci/spacemit/plat/k1x/underly_implement.c b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c +index 94d53bf51d0f..f87bacc7297d 100644 +--- a/lib/utils/psci/spacemit/plat/k1x/underly_implement.c ++++ b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c +@@ -30,7 +30,8 @@ void spacemit_top_on(u_register_t mpidr) + (1 << CLUSTER_BIT14_OFFSET) | + (1 << CLUSTER_BIT30_OFFSET) | + (1 << CLUSTER_BIT25_OFFSET) | +- (1 << CLUSTER_BIT13_OFFSET)); ++ (1 << CLUSTER_BIT13_OFFSET) | ++ (1 << CLUSTER_VOTE_AP_SLPEN)); + writel(value, cluster0_acpr); + + value = readl(cluster1_acpr); +@@ -42,7 +43,8 @@ void spacemit_top_on(u_register_t mpidr) + (1 << CLUSTER_BIT14_OFFSET) | + (1 << CLUSTER_BIT30_OFFSET) | + (1 << CLUSTER_BIT25_OFFSET) | +- (1 << CLUSTER_BIT13_OFFSET)); ++ (1 << CLUSTER_BIT13_OFFSET) | ++ (1 << CLUSTER_VOTE_AP_SLPEN)); + writel(value, cluster1_acpr); + } + +@@ -60,7 +62,7 @@ void spacemit_top_off(u_register_t mpidr) + (1 << CLUSTER_DDRSD_OFFSET) | + (1 << CLUSTER_APBSD_OFFSET) | + (1 << CLUSTER_VCXOSD_OFFSET) | +- (1 << 3) | ++ (1 << CLUSTER_VOTE_AP_SLPEN) | + (1 << CLUSTER_BIT29_OFFSET) | + (1 << CLUSTER_BIT14_OFFSET) | + (1 << CLUSTER_BIT30_OFFSET) | +@@ -73,7 +75,7 @@ void spacemit_top_off(u_register_t mpidr) + (1 << CLUSTER_DDRSD_OFFSET) | + (1 << CLUSTER_APBSD_OFFSET) | + (1 << CLUSTER_VCXOSD_OFFSET) | +- (1 << 3) | ++ (1 << CLUSTER_VOTE_AP_SLPEN) | + (1 << CLUSTER_BIT29_OFFSET) | + (1 << CLUSTER_BIT14_OFFSET) | + (1 << CLUSTER_BIT30_OFFSET) | +@@ -279,6 +281,82 @@ void spacemit_wakeup_cpu(u_register_t mpidr) + writel(1 << target_cpu_idx, cpu_reset_base); + } + ++int spacemit_core_enter_c2(u_register_t mpidr) ++{ ++ unsigned int value; ++ ++ /* wait the cpu enter c2 */ ++ value = readl((unsigned int *)0xd4282890); ++ ++ if (mpidr == 0) { ++ if (value & (1 << 6)) ++ return 1; ++ } else if (mpidr == 1) { ++ if (value & (1 << 9)) ++ return 1; ++ } else if (mpidr == 2) { ++ if (value & (1 << 12)) ++ return 1; ++ } else if (mpidr == 3) { ++ if (value & (1 << 15)) ++ return 1; ++ } else if (mpidr == 4) { ++ if (value & (1 << 22)) ++ return 1; ++ } else if (mpidr == 5) { ++ if (value & (1 << 25)) ++ return 1; ++ } else if (mpidr == 6) { ++ if (value & (1 << 28)) ++ return 1; ++ } else if (mpidr == 7) { ++ if (value & (1 << 31)) ++ return 1; ++ } else { ++ return 0; ++ } ++ ++ return 0; ++} ++ ++void spacemit_wait_core_enter_c2(u_register_t mpidr) ++{ ++ unsigned int value; ++ ++ while (1) { ++ /* wait the cpu enter c2 */ ++ value = readl((unsigned int *)0xd4282890); ++ ++ if (mpidr == 0) { ++ if (value & (1 << 6)) ++ return; ++ } else if (mpidr == 1) { ++ if (value & (1 << 9)) ++ return; ++ } else if (mpidr == 2) { ++ if (value & (1 << 12)) ++ return; ++ } else if (mpidr == 3) { ++ if (value & (1 << 15)) ++ return; ++ } else if (mpidr == 4) { ++ if (value & (1 << 22)) ++ return; ++ } else if (mpidr == 5) { ++ if (value & (1 << 25)) ++ return; ++ } else if (mpidr == 6) { ++ if (value & (1 << 28)) ++ return; ++ } else if (mpidr == 7) { ++ if (value & (1 << 31)) ++ return; ++ } else { ++ ; ++ } ++ } ++} ++ + void spacemit_assert_cpu(u_register_t mpidr) + { + unsigned int target_cpu_idx; +diff --git a/lib/utils/psci/spacemit/plat/plat_pm.c b/lib/utils/psci/spacemit/plat/plat_pm.c +index a5b91270834f..166bc3c7be1f 100644 +--- a/lib/utils/psci/spacemit/plat/plat_pm.c ++++ b/lib/utils/psci/spacemit/plat/plat_pm.c +@@ -1,14 +1,20 @@ + #include ++#include + #include + #include + #include + #include ++#include + #include ++#include ++#include + #include ++#include + #include + #include + #include + #include "underly_implement.h" ++#include "../../psci_private.h" + + #define CORE_PWR_STATE(state) \ + ((state)->pwr_domain_state[MPIDR_AFFLVL0]) +@@ -20,17 +26,39 @@ + /* reserved for future used */ + /* unsigned long __plic_regsave_offset_ptr; */ + ++static spinlock_t psciipi_lock = SPIN_LOCK_INITIALIZER; ++static struct sbi_hartmask psciipi_wait_hmask = { 0 }; ++ ++static void wake_idle_harts(struct sbi_scratch *scratch, u32 hartid) ++{ ++ spin_lock(&psciipi_lock); ++ ++ /* Send an IPI to all HARTs of the cluster that waiting for waked up */ ++ for (u32 i = 0; i < PLATFORM_MAX_CPUS_PER_CLUSTER * PLATFORM_CLUSTER_COUNT; i++) { ++ if (i != hartid) { ++ sbi_hartmask_set_hart(i, &psciipi_wait_hmask); ++ sbi_ipi_raw_send(i); ++ } ++ } ++ ++ spin_unlock(&psciipi_lock); ++} ++ + static int spacemit_pwr_domain_on(u_register_t mpidr) + { + /* wakeup the cpu */ +- spacemit_wakeup_cpu(mpidr); ++ if (spacemit_core_enter_c2(mpidr)) { ++ spacemit_wakeup_cpu(mpidr); ++ } else { ++ sbi_ipi_raw_send(mpidr); ++ } + + return 0; + } + + static void spacemit_pwr_domain_on_finish(const psci_power_state_t *target_state) + { +- unsigned int hartid = current_hartid(); ++ unsigned int hartid = current_hartid(); + + if (SYSTEM_PWR_STATE(target_state) == ARM_LOCAL_STATE_OFF) { + /* D1P */ +@@ -42,12 +70,12 @@ static void spacemit_pwr_domain_on_finish(const psci_power_state_t *target_state + * No need for locks as no other cpu is active at the moment. + */ + if (CLUSTER_PWR_STATE(target_state) == PLAT_MAX_OFF_STATE) { +- spacemit_cluster_on(hartid); ++ spacemit_cluster_on(hartid); + #if defined(CONFIG_PLATFORM_SPACEMIT_K1X) + /* disable the tcm */ + csr_write(CSR_TCMCFG, 0); + #endif +- cci_enable_snoop_dvm_reqs(MPIDR_AFFLVL1_VAL(hartid)); ++ cci_enable_snoop_dvm_reqs(MPIDR_AFFLVL1_VAL(hartid)); + #if defined(CONFIG_PLATFORM_SPACEMIT_K1X) + /* enable the tcm */ + csr_write(CSR_TCMCFG, 1); +@@ -62,6 +90,7 @@ static int spacemit_pwr_domain_off_early(const psci_power_state_t *target_state) + /* clear the external irq pending */ + csr_clear(CSR_MIP, MIP_MEIP); + csr_clear(CSR_MIP, MIP_SEIP); ++ csr_clear(CSR_MIP, MIP_MSIP); + + /* here we clear the sstimer pending if this core have */ + if (sbi_hart_has_extension(sbi_scratch_thishart_ptr(), SBI_HART_EXT_SSTC)) { +@@ -76,28 +105,65 @@ static void spacemit_pwr_domain_off(const psci_power_state_t *target_state) + unsigned int hartid = current_hartid(); + + if (CLUSTER_PWR_STATE(target_state) == PLAT_MAX_OFF_STATE) { +-#if defined(CONFIG_PLATFORM_SPACEMIT_K1X) +- /* disable the tcm */ +- csr_write(CSR_TCMCFG, 0); +-#endif +- cci_disable_snoop_dvm_reqs(MPIDR_AFFLVL1_VAL(hartid)); +- spacemit_cluster_off(hartid); +- csi_flush_l2_cache(1); ++ /* power-off cluster */ ++ spacemit_cluster_off(hartid); + } + + if (SYSTEM_PWR_STATE(target_state) == ARM_LOCAL_STATE_OFF) { + /* D1P */ + spacemit_top_off(hartid); + } +- +- spacemit_assert_cpu(hartid); + } + + static void spacemit_pwr_domain_pwr_down_wfi(const psci_power_state_t *target_state) + { +- while (1) { +- asm volatile ("wfi"); ++ int hstate; ++ unsigned long saved_mie, cmip; ++ unsigned int hartid = current_hartid(); ++ ++ hstate = sbi_hsm_hart_get_state(sbi_domain_thishart_ptr(), hartid); ++ ++ /* Save MIE CSR */ ++ saved_mie = csr_read(CSR_MIE); ++ ++ /* Set MSIE and MEIE bits to receive IPI */ ++ if (hstate == SBI_HSM_STATE_SUSPENDED) { ++ csr_set(CSR_MIE, MIP_MSIP | MIP_MEIP); ++ ++ /* Wait for wakeup source to finish using WFI */ ++ do { ++ wfi(); ++ cmip = csr_read(CSR_MIP); ++ } while (!(cmip & (MIP_MSIP | MIP_MEIP))); ++ } else { ++ csr_set(CSR_MIE, MIP_MSIP); ++ ++ /* Wait for wakeup source to finish using WFI */ ++ do { ++ wfi(); ++ cmip = csr_read(CSR_MIP); ++ } while (!(cmip & (MIP_MSIP))); ++ ++ spin_lock(&psciipi_lock); ++ ++ if (sbi_hartmask_test_hart(hartid, &psciipi_wait_hmask)) { ++ sbi_ipi_raw_clear(hartid); ++ /* Restore MIE CSR */ ++ csr_write(CSR_MIE, saved_mie); ++ ++ spin_unlock(&psciipi_lock); ++ ++ spacemit_assert_cpu(hartid); ++ ++ while (1) ++ asm volatile ("wfi"); ++ } ++ ++ spin_unlock(&psciipi_lock); + } ++ ++ /* Restore MIE CSR */ ++ csr_write(CSR_MIE, saved_mie); + } + + static void spacemit_pwr_domain_on_finish_late(const psci_power_state_t *target_state) +@@ -158,9 +224,8 @@ static int spacemit_validate_power_state(unsigned int power_state, + + static void spacemit_pwr_domain_suspend(const psci_power_state_t *target_state) + { +- unsigned int clusterid; + unsigned int hartid = current_hartid(); +- ++ + /* + * CSS currently supports retention only at cpu level. Just return + * as nothing is to be done for retention. +@@ -168,30 +233,40 @@ static void spacemit_pwr_domain_suspend(const psci_power_state_t *target_state) + if (CORE_PWR_STATE(target_state) == ARM_LOCAL_STATE_RET) + return; + +- + if (CORE_PWR_STATE(target_state) != ARM_LOCAL_STATE_OFF) { + sbi_printf("%s:%d\n", __func__, __LINE__); + sbi_hart_hang(); + } + +- /* Cluster is to be turned off, so disable coherency */ +- if (CLUSTER_PWR_STATE(target_state) == ARM_LOCAL_STATE_OFF) { +- clusterid = MPIDR_AFFLVL1_VAL(hartid); ++ /* power-off cluster */ ++ if (CLUSTER_PWR_STATE(target_state) == PLAT_MAX_OFF_STATE) ++ spacemit_cluster_off(hartid); ++ ++ if (SYSTEM_PWR_STATE(target_state) == ARM_LOCAL_STATE_OFF) { + #if defined(CONFIG_PLATFORM_SPACEMIT_K1X) + /* disable the tcm */ + csr_write(CSR_TCMCFG, 0); + #endif +- cci_disable_snoop_dvm_reqs(clusterid); +- spacemit_cluster_off(hartid); +- csi_flush_l2_cache(1); +- } ++ wake_idle_harts(NULL, hartid); + +- if (SYSTEM_PWR_STATE(target_state) == ARM_LOCAL_STATE_OFF) { + /* D1P & D2 */ ++ csi_flush_l2_cache_hart(0, 0); ++ csi_flush_l2_cache_hart(0, PLATFORM_MAX_CPUS_PER_CLUSTER); ++ ++ cci_disable_snoop_dvm_reqs(0); ++ cci_disable_snoop_dvm_reqs(1); ++ ++ /* assert othter cpu & wait other cpu enter c2 */ ++ for (u32 i = 0; i < PLATFORM_MAX_CPUS_PER_CLUSTER * PLATFORM_CLUSTER_COUNT; i++) { ++ if (i != hartid) { ++ spacemit_wait_core_enter_c2(i); ++ } ++ } ++ ++ spacemit_assert_cpu(hartid); ++ + spacemit_top_off(hartid); + } +- +- spacemit_assert_cpu(hartid); + } + + static void spacemit_pwr_domain_suspend_finish(const psci_power_state_t *target_state) +diff --git a/lib/utils/psci/spacemit/plat/underly_implement.h b/lib/utils/psci/spacemit/plat/underly_implement.h +index dd6c972325bb..7c11db518a3f 100644 +--- a/lib/utils/psci/spacemit/plat/underly_implement.h ++++ b/lib/utils/psci/spacemit/plat/underly_implement.h +@@ -9,6 +9,8 @@ void spacemit_cluster_on(u_register_t mpidr); + void spacemit_cluster_off(u_register_t mpidr); + void spacemit_wakeup_cpu(u_register_t mpidr); + void spacemit_assert_cpu(u_register_t mpidr); ++int spacemit_core_enter_c2(u_register_t mpidr); ++void spacemit_wait_core_enter_c2(u_register_t mpidr); + void spacemit_deassert_cpu(void); + + #endif +diff --git a/lib/utils/serial/fdt_serial_uart8250.c b/lib/utils/serial/fdt_serial_uart8250.c +index 7b5d6a4c2f18..51ea91c7665f 100644 +--- a/lib/utils/serial/fdt_serial_uart8250.c ++++ b/lib/utils/serial/fdt_serial_uart8250.c +@@ -30,6 +30,7 @@ static const struct fdt_match serial_uart8250_match[] = { + { .compatible = "ns16550" }, + { .compatible = "ns16550a" }, + { .compatible = "snps,dw-apb-uart" }, ++ { .compatible = "spacemit,pxa-uart" }, + { }, + }; + +diff --git a/platform/generic/include/spacemit/k1x/k1x_evb.h b/platform/generic/include/spacemit/k1x/k1x_evb.h +index 10e856965618..e7381ca245da 100644 +--- a/platform/generic/include/spacemit/k1x/k1x_evb.h ++++ b/platform/generic/include/spacemit/k1x/k1x_evb.h +@@ -60,6 +60,7 @@ + #define CLUSTER_BIT30_OFFSET (30) + #define CLUSTER_BIT25_OFFSET (25) + #define CLUSTER_BIT13_OFFSET (13) ++#define CLUSTER_VOTE_AP_SLPEN (3) + + #define L2_HARDWARE_CACHE_FLUSH_EN (13) + +diff --git a/platform/generic/spacemit/spacemit_k1.c b/platform/generic/spacemit/spacemit_k1.c +index 95218846715f..2f9deb1a7940 100644 +--- a/platform/generic/spacemit/spacemit_k1.c ++++ b/platform/generic/spacemit/spacemit_k1.c +@@ -67,15 +67,15 @@ static void wakeup_other_core(void) + + #if defined(CONFIG_PLATFORM_SPACEMIT_K1X) + /* enable the hw l2 cache flush method for each core */ +- writel(readl((u32 *)PMU_C0_CAPMP_IDLE_CFG0) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C0_CAPMP_IDLE_CFG0); +- writel(readl((u32 *)PMU_C0_CAPMP_IDLE_CFG1) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C0_CAPMP_IDLE_CFG1); +- writel(readl((u32 *)PMU_C0_CAPMP_IDLE_CFG2) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C0_CAPMP_IDLE_CFG2); +- writel(readl((u32 *)PMU_C0_CAPMP_IDLE_CFG3) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C0_CAPMP_IDLE_CFG3); +- +- writel(readl((u32 *)PMU_C1_CAPMP_IDLE_CFG0) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C1_CAPMP_IDLE_CFG0); +- writel(readl((u32 *)PMU_C1_CAPMP_IDLE_CFG1) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C1_CAPMP_IDLE_CFG1); +- writel(readl((u32 *)PMU_C1_CAPMP_IDLE_CFG2) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C1_CAPMP_IDLE_CFG2); +- writel(readl((u32 *)PMU_C1_CAPMP_IDLE_CFG3) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C1_CAPMP_IDLE_CFG3); ++ /* writel(readl((u32 *)PMU_C0_CAPMP_IDLE_CFG0) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C0_CAPMP_IDLE_CFG0); */ ++ /* writel(readl((u32 *)PMU_C0_CAPMP_IDLE_CFG1) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C0_CAPMP_IDLE_CFG1); */ ++ /* writel(readl((u32 *)PMU_C0_CAPMP_IDLE_CFG2) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C0_CAPMP_IDLE_CFG2); */ ++ /* writel(readl((u32 *)PMU_C0_CAPMP_IDLE_CFG3) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C0_CAPMP_IDLE_CFG3); */ ++ ++ /* writel(readl((u32 *)PMU_C1_CAPMP_IDLE_CFG0) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C1_CAPMP_IDLE_CFG0); */ ++ /* writel(readl((u32 *)PMU_C1_CAPMP_IDLE_CFG1) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C1_CAPMP_IDLE_CFG1); */ ++ /* writel(readl((u32 *)PMU_C1_CAPMP_IDLE_CFG2) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C1_CAPMP_IDLE_CFG2); */ ++ /* writel(readl((u32 *)PMU_C1_CAPMP_IDLE_CFG3) | (1 << L2_HARDWARE_CACHE_FLUSH_EN), (u32 *)PMU_C1_CAPMP_IDLE_CFG3); */ + #endif + + // hart0 is already boot up +@@ -188,7 +188,8 @@ static int spacemit_hart_start(unsigned int hartid, unsigned long saddr) + static int spacemit_hart_stop(void) + { + psci_cpu_off(); +- return 0; ++ ++ return SBI_ENOTSUPP; + } + + static int spacemit_hart_suspend(unsigned int suspend_type) +@@ -265,6 +266,8 @@ static bool spacemit_cold_boot_allowed(u32 hartid, const struct fdt_match *match + static const struct fdt_match spacemit_k1_match[] = { + { .compatible = "spacemit,k1-pro" }, + { .compatible = "spacemit,k1x" }, ++ { .compatible = "spacemit,k1-x" }, ++ { .compatible = "spacemit,k1" }, + { }, + }; + +-- +2.35.3 + diff --git a/patch/atf/atf-spacemit/008-Update-for-v1.0.13.patch b/patch/atf/atf-spacemit/008-Update-for-v1.0.13.patch new file mode 100644 index 000000000..cae45e984 --- /dev/null +++ b/patch/atf/atf-spacemit/008-Update-for-v1.0.13.patch @@ -0,0 +1,26 @@ +From a26e37daaeb01f027e4753f854716f0f15eb3d13 Mon Sep 17 00:00:00 2001 +From: James Deng +Date: Fri, 16 Aug 2024 23:44:13 +0800 +Subject: Update for v1.0.13 + +--- + lib/utils/psci/spacemit/plat/plat_pm.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/lib/utils/psci/spacemit/plat/plat_pm.c b/lib/utils/psci/spacemit/plat/plat_pm.c +index 166bc3c7be1f..32aec9d308ab 100644 +--- a/lib/utils/psci/spacemit/plat/plat_pm.c ++++ b/lib/utils/psci/spacemit/plat/plat_pm.c +@@ -147,6 +147,9 @@ static void spacemit_pwr_domain_pwr_down_wfi(const psci_power_state_t *target_st + spin_lock(&psciipi_lock); + + if (sbi_hartmask_test_hart(hartid, &psciipi_wait_hmask)) { ++ ++ sbi_hartmask_clear_hart(hartid, &psciipi_wait_hmask); ++ + sbi_ipi_raw_clear(hartid); + /* Restore MIE CSR */ + csr_write(CSR_MIE, saved_mie); +-- +2.35.3 + diff --git a/patch/atf/atf-spacemit/009-Update-for-v1.0.14.patch b/patch/atf/atf-spacemit/009-Update-for-v1.0.14.patch new file mode 100644 index 000000000..4df612f40 --- /dev/null +++ b/patch/atf/atf-spacemit/009-Update-for-v1.0.14.patch @@ -0,0 +1,46 @@ +From 6cf0c8e6ed09841cdbff7b3788efa608ac5b08aa Mon Sep 17 00:00:00 2001 +From: James Deng +Date: Sat, 31 Aug 2024 14:23:34 +0800 +Subject: Update for v1.0.14 + +--- + debian/opensbi-spacemit.postinst | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +diff --git a/debian/opensbi-spacemit.postinst b/debian/opensbi-spacemit.postinst +index dce7154ac8f4..0362a598a14b 100755 +--- a/debian/opensbi-spacemit.postinst ++++ b/debian/opensbi-spacemit.postinst +@@ -31,9 +31,15 @@ configure) + OPENSBI_SEEK=0 + ;; + "/dev/nvme0n1"*) +- OPENSBI=/dev/mtdblock0 +- # 以KB为单位 +- OPENSBI_SEEK=448 ++ if [ ! -e "/dev/mtdblock4" ]; then ++ OPENSBI=/dev/mtdblock0 ++ # 以KB为单位 ++ OPENSBI_SEEK=448 ++ else ++ OPENSBI=/dev/mtdblock4 ++ # 以KB为单位 ++ OPENSBI_SEEK=0 ++ fi + ;; + *) + echo "Unsupported root=$ROOT" +@@ -56,8 +62,9 @@ configure) + done + + # 此前已经做了所有检查 ++ set -x + dd if=/usr/lib/riscv64-linux-gnu/opensbi/generic/fw_dynamic.itb of=$OPENSBI seek=$OPENSBI_SEEK bs=1K && sync +- ++ set +x + ;; + esac + +-- +2.35.3 + diff --git a/patch/atf/atf-spacemit/010-Update-for-v1.0.15.patch b/patch/atf/atf-spacemit/010-Update-for-v1.0.15.patch new file mode 100644 index 000000000..063996207 --- /dev/null +++ b/patch/atf/atf-spacemit/010-Update-for-v1.0.15.patch @@ -0,0 +1,108 @@ +From 08916e4fe06451080a8882d6955df9e5947e352e Mon Sep 17 00:00:00 2001 +From: James Deng +Date: Sat, 7 Sep 2024 21:08:45 +0800 +Subject: Update for v1.0.15 + +--- + .../spacemit/plat/k1x/underly_implement.c | 20 ++++++++++++++ + lib/utils/psci/spacemit/plat/plat_pm.c | 27 +++++++++++-------- + .../psci/spacemit/plat/underly_implement.h | 1 + + 3 files changed, 37 insertions(+), 11 deletions(-) + +diff --git a/lib/utils/psci/spacemit/plat/k1x/underly_implement.c b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c +index f87bacc7297d..825db86dddfe 100644 +--- a/lib/utils/psci/spacemit/plat/k1x/underly_implement.c ++++ b/lib/utils/psci/spacemit/plat/k1x/underly_implement.c +@@ -319,6 +319,26 @@ int spacemit_core_enter_c2(u_register_t mpidr) + return 0; + } + ++int spacemit_cluster_enter_m2(u_register_t mpidr) ++{ ++ unsigned int value; ++ ++ /* wait the cpu enter M2 */ ++ value = readl((unsigned int *)0xd4282890); ++ ++ if (mpidr == 0 || mpidr == 1 || mpidr == 2 || mpidr == 3) { ++ if (value & (1 << 3)) ++ return 1; ++ } else if (mpidr == 4 || mpidr == 5 || mpidr == 6 || mpidr == 7) { ++ if (value & (1 << 19)) ++ return 1; ++ } else { ++ return 0; ++ } ++ ++ return 0; ++} ++ + void spacemit_wait_core_enter_c2(u_register_t mpidr) + { + unsigned int value; +diff --git a/lib/utils/psci/spacemit/plat/plat_pm.c b/lib/utils/psci/spacemit/plat/plat_pm.c +index 32aec9d308ab..e3f494065f23 100644 +--- a/lib/utils/psci/spacemit/plat/plat_pm.c ++++ b/lib/utils/psci/spacemit/plat/plat_pm.c +@@ -228,7 +228,7 @@ static int spacemit_validate_power_state(unsigned int power_state, + static void spacemit_pwr_domain_suspend(const psci_power_state_t *target_state) + { + unsigned int hartid = current_hartid(); +- ++ + /* + * CSS currently supports retention only at cpu level. Just return + * as nothing is to be done for retention. +@@ -250,22 +250,27 @@ static void spacemit_pwr_domain_suspend(const psci_power_state_t *target_state) + /* disable the tcm */ + csr_write(CSR_TCMCFG, 0); + #endif +- wake_idle_harts(NULL, hartid); ++ if (!spacemit_cluster_enter_m2(PLATFORM_MAX_CPUS_PER_CLUSTER)) { ++ wake_idle_harts(NULL, hartid); + +- /* D1P & D2 */ +- csi_flush_l2_cache_hart(0, 0); +- csi_flush_l2_cache_hart(0, PLATFORM_MAX_CPUS_PER_CLUSTER); ++ csi_flush_l2_cache_hart(0, 0); ++ csi_flush_l2_cache_hart(0, PLATFORM_MAX_CPUS_PER_CLUSTER); + +- cci_disable_snoop_dvm_reqs(0); +- cci_disable_snoop_dvm_reqs(1); ++ cci_disable_snoop_dvm_reqs(0); ++ cci_disable_snoop_dvm_reqs(1); + +- /* assert othter cpu & wait other cpu enter c2 */ +- for (u32 i = 0; i < PLATFORM_MAX_CPUS_PER_CLUSTER * PLATFORM_CLUSTER_COUNT; i++) { +- if (i != hartid) { +- spacemit_wait_core_enter_c2(i); ++ /* assert othter cpu & wait other cpu enter c2 */ ++ for (u32 i = 0; i < PLATFORM_MAX_CPUS_PER_CLUSTER * PLATFORM_CLUSTER_COUNT; i++) { ++ if (i != hartid) { ++ spacemit_wait_core_enter_c2(i); ++ } + } ++ } else { ++ csi_flush_l2_cache_hart(0, 0); ++ cci_disable_snoop_dvm_reqs(0); + } + ++ + spacemit_assert_cpu(hartid); + + spacemit_top_off(hartid); +diff --git a/lib/utils/psci/spacemit/plat/underly_implement.h b/lib/utils/psci/spacemit/plat/underly_implement.h +index 7c11db518a3f..80f1377d1116 100644 +--- a/lib/utils/psci/spacemit/plat/underly_implement.h ++++ b/lib/utils/psci/spacemit/plat/underly_implement.h +@@ -10,6 +10,7 @@ void spacemit_cluster_off(u_register_t mpidr); + void spacemit_wakeup_cpu(u_register_t mpidr); + void spacemit_assert_cpu(u_register_t mpidr); + int spacemit_core_enter_c2(u_register_t mpidr); ++int spacemit_cluster_enter_m2(u_register_t mpidr); + void spacemit_wait_core_enter_c2(u_register_t mpidr); + void spacemit_deassert_cpu(void); + +-- +2.35.3 + diff --git a/patch/kernel/spacemit-legacy-6.1/500-board-bpif3-Add-Bluetooth-btrtl-support-to-RTL8852BS.patch b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/Bluetooth-btrtl-Add-support-for-RTL8852BS.patch similarity index 61% rename from patch/kernel/spacemit-legacy-6.1/500-board-bpif3-Add-Bluetooth-btrtl-support-to-RTL8852BS.patch rename to patch/kernel/spacemit-legacy-6.1/patches.bianbu/Bluetooth-btrtl-Add-support-for-RTL8852BS.patch index 757a56a11..6fed929c2 100644 --- a/patch/kernel/spacemit-legacy-6.1/500-board-bpif3-Add-Bluetooth-btrtl-support-to-RTL8852BS.patch +++ b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/Bluetooth-btrtl-Add-support-for-RTL8852BS.patch @@ -1,30 +1,4 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Patrick Yavitz -Date: Wed, 26 Jun 2024 06:01:30 -0400 -Subject: Bluetooth: hci_h5: Add support for RTL8852BS - -Signed-off-by: Patrick Yavitz ---- - drivers/bluetooth/hci_h5.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c -index 111111111111..222222222222 100644 ---- a/drivers/bluetooth/hci_h5.c -+++ b/drivers/bluetooth/hci_h5.c -@@ -1102,6 +1102,8 @@ static const struct of_device_id rtl_bluetooth_of_match[] = { - .data = (const void *)&h5_data_rtl8723bs }, - { .compatible = "realtek,rtl8723ds-bt", - .data = (const void *)&h5_data_rtl8723bs }, -+ { .compatible = "realtek,rtl8852bs-bt", -+ .data = (const void *)&h5_data_rtl8723bs }, - #endif - { }, - }; --- -Armbian - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From ba9768cf884ba4f030d9bc006ef4c067575821d0 Mon Sep 17 00:00:00 2001 From: Victor Hassan Date: Wed, 22 Feb 2023 17:47:20 +0800 Subject: Bluetooth: btrtl: Add support for RTL8852BS @@ -39,7 +13,7 @@ Signed-off-by: Luiz Augusto von Dentz 1 file changed, 10 insertions(+) diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c -index 111111111111..222222222222 100644 +index fb52313a1d45..a42dd93b2900 100644 --- a/drivers/bluetooth/btrtl.c +++ b/drivers/bluetooth/btrtl.c @@ -190,6 +190,14 @@ static const struct id_table ic_id_table[] = { @@ -67,5 +41,5 @@ index 111111111111..222222222222 100644 MODULE_FIRMWARE("rtl_bt/rtl8852bu_config.bin"); MODULE_FIRMWARE("rtl_bt/rtl8852cu_fw.bin"); -- -Armbian +2.35.3 diff --git a/patch/kernel/spacemit-legacy-6.1/patches.bianbu/Bluetooth-hci_h5-Add-support-for-RTL8852BS.patch b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/Bluetooth-hci_h5-Add-support-for-RTL8852BS.patch new file mode 100644 index 000000000..b088233b9 --- /dev/null +++ b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/Bluetooth-hci_h5-Add-support-for-RTL8852BS.patch @@ -0,0 +1,26 @@ +From 6f639d9aff5e528dd21e9425b2c781dcded6a4ae Mon Sep 17 00:00:00 2001 +From: Patrick Yavitz +Date: Wed, 26 Jun 2024 06:01:30 -0400 +Subject: Bluetooth: hci_h5: Add support for RTL8852BS + +Signed-off-by: Patrick Yavitz +--- + drivers/bluetooth/hci_h5.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c +index 6455bc4fb5bb..7415c7ff55c8 100644 +--- a/drivers/bluetooth/hci_h5.c ++++ b/drivers/bluetooth/hci_h5.c +@@ -1102,6 +1102,8 @@ static const struct of_device_id rtl_bluetooth_of_match[] = { + .data = (const void *)&h5_data_rtl8723bs }, + { .compatible = "realtek,rtl8723ds-bt", + .data = (const void *)&h5_data_rtl8723bs }, ++ { .compatible = "realtek,rtl8852bs-bt", ++ .data = (const void *)&h5_data_rtl8723bs }, + #endif + { }, + }; +-- +2.35.3 + diff --git a/patch/kernel/spacemit-legacy-6.1/003-wireless-rtl8852bs-fix-aes_encrypt-redefinition-errors.patch b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/Fix-aes_encrypt-redefinition-errors.patch similarity index 96% rename from patch/kernel/spacemit-legacy-6.1/003-wireless-rtl8852bs-fix-aes_encrypt-redefinition-errors.patch rename to patch/kernel/spacemit-legacy-6.1/patches.bianbu/Fix-aes_encrypt-redefinition-errors.patch index e6b587b7c..09478a2e8 100644 --- a/patch/kernel/spacemit-legacy-6.1/003-wireless-rtl8852bs-fix-aes_encrypt-redefinition-errors.patch +++ b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/Fix-aes_encrypt-redefinition-errors.patch @@ -1,7 +1,7 @@ -From c50c52d109c55b0068fe54686c3933e213928059 Mon Sep 17 00:00:00 2001 +From 9f72c5c5e6aed7f80d788f37ad846b830ef54fba Mon Sep 17 00:00:00 2001 From: UtsavBalar1231 Date: Wed, 17 Jul 2024 04:36:09 -0400 -Subject: [PATCH] Fix aes_encrypt() redefinition errors +Subject: Fix aes_encrypt() redefinition errors This fixes function definition conflicts with aes kernel module as defined in include/crypto/aes.h @@ -17,7 +17,7 @@ Signed-off-by: UtsavBalar1231 6 files changed, 33 insertions(+), 33 deletions(-) diff --git a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-ccm.c b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-ccm.c -index dceec778a..378922971 100644 +index dceec778a6d7..3789229717ec 100644 --- a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-ccm.c +++ b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-ccm.c @@ -40,7 +40,7 @@ static void aes_ccm_auth_start(void *aes, size_t M, size_t L, const u8 *nonce, @@ -132,7 +132,7 @@ index dceec778a..378922971 100644 if (os_memcmp_const(x, t, M) != 0) { wpa_printf(_MSG_EXCESSIVE_, "CCM: Auth mismatch"); diff --git a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-ctr.c b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-ctr.c -index 6c06851dd..702f8ce49 100644 +index 6c06851ddc68..702f8ce492d6 100644 --- a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-ctr.c +++ b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-ctr.c @@ -30,13 +30,13 @@ int aes_ctr_encrypt(const u8 *key, size_t key_len, const u8 *nonce, @@ -161,7 +161,7 @@ index 6c06851dd..702f8ce49 100644 } diff --git a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-gcm.c b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-gcm.c -index 47088102b..21b71d43a 100644 +index 47088102b9cc..21b71d43a041 100644 --- a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-gcm.c +++ b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-gcm.c @@ -154,7 +154,7 @@ static void aes_gctr(void *aes, const u8 *icb, const u8 *x, size_t xlen, u8 *y) @@ -217,7 +217,7 @@ index 47088102b..21b71d43a 100644 if (os_memcmp_const(tag, T, 16) != 0) { wpa_printf(_MSG_EXCESSIVE_, "GCM: Tag mismatch"); diff --git a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-internal-enc.c b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-internal-enc.c -index 69e256be9..19410a2fc 100644 +index 69e256be95ce..19410a2fc5b3 100644 --- a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-internal-enc.c +++ b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-internal-enc.c @@ -93,7 +93,7 @@ d##3 = TE0(s##3) ^ TE1(s##0) ^ TE2(s##1) ^ TE3(s##2) ^ rk[4 * i + 3] @@ -248,7 +248,7 @@ index 69e256be9..19410a2fc 100644 os_memset(ctx, 0, AES_PRIV_SIZE); rtw_mfree(ctx, AES_PRIV_SIZE); diff --git a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-omac1.c b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-omac1.c -index 30b52629f..826c9043d 100644 +index 30b52629f4be..826c9043d09a 100644 --- a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-omac1.c +++ b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes-omac1.c @@ -50,7 +50,7 @@ int omac1_aes_vector(const u8 *key, size_t key_len, size_t num_elem, @@ -287,7 +287,7 @@ index 30b52629f..826c9043d 100644 } diff --git a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes.h b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes.h -index 8ab3de2ee..551dd19aa 100644 +index 8ab3de2ee83f..551dd19aab23 100644 --- a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes.h +++ b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/aes.h @@ -11,9 +11,9 @@ @@ -304,5 +304,5 @@ index 8ab3de2ee..551dd19aa 100644 int aes_decrypt(void *ctx, const u8 *crypt, u8 *plain); void aes_decrypt_deinit(void *ctx); -- -2.39.2 +2.35.3 diff --git a/patch/kernel/spacemit-legacy-6.1/101-add-minimal-hwmon-support.patch b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/add-minimal-hwmon-support.patch similarity index 71% rename from patch/kernel/spacemit-legacy-6.1/101-add-minimal-hwmon-support.patch rename to patch/kernel/spacemit-legacy-6.1/patches.bianbu/add-minimal-hwmon-support.patch index 59105f745..523971bf8 100644 --- a/patch/kernel/spacemit-legacy-6.1/101-add-minimal-hwmon-support.patch +++ b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/add-minimal-hwmon-support.patch @@ -1,26 +1,27 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From 3e033a705ea7266609cd7b92cf9d144c2fc30860 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Thu, 6 Jun 2024 03:49:34 -0400 Subject: add minimal hwmon support Signed-off-by: Luca Barbato --- - drivers/thermal/k1x-thermal.c | 22 +++++++--- - 1 file changed, 16 insertions(+), 6 deletions(-) + drivers/thermal/k1x-thermal.c | 23 ++++++++++++++++------- + 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/drivers/thermal/k1x-thermal.c b/drivers/thermal/k1x-thermal.c -index 111111111111..222222222222 100644 +index 9c66a0a23b1b..2267bcbce335 100644 --- a/drivers/thermal/k1x-thermal.c +++ b/drivers/thermal/k1x-thermal.c -@@ -10,6 +10,7 @@ - #include - #include - #include "k1x-thermal.h" -+#include "thermal_hwmon.h" +@@ -71,7 +71,7 @@ static int init_sensors(struct platform_device *pdev) - #define MAX_SENSOR_NUMBER 5 + if (s->sr[1] >= MAX_SENSOR_NUMBER) { + dev_err(&pdev->dev, "un-fitable sensor range\n"); +- return -EINVAL; ++ return -EINVAL; + } -@@ -286,15 +287,24 @@ static int k1x_thermal_probe(struct platform_device *pdev) + #if 0 +@@ -287,15 +287,24 @@ static int k1x_thermal_probe(struct platform_device *pdev) for (i = s->sr[0]; i <= s->sr[1]; ++i) { s->sdesc[i].base = s->base; @@ -52,5 +53,5 @@ index 111111111111..222222222222 100644 k1x_thermal_irq_thread, IRQF_SHARED, dev_name(&s->sdesc[i].tzd->device), s->sdesc + i); -- -Armbian +2.35.3 diff --git a/patch/kernel/spacemit-legacy-6.1/055-riscv-signal-fix-sigaltstack-frame-size-checking.patch b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/riscv-signal-fix-sigaltstack-frame-size-checking.patch similarity index 80% rename from patch/kernel/spacemit-legacy-6.1/055-riscv-signal-fix-sigaltstack-frame-size-checking.patch rename to patch/kernel/spacemit-legacy-6.1/patches.bianbu/riscv-signal-fix-sigaltstack-frame-size-checking.patch index 5e5acf1f6..efe094dfb 100644 --- a/patch/kernel/spacemit-legacy-6.1/055-riscv-signal-fix-sigaltstack-frame-size-checking.patch +++ b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/riscv-signal-fix-sigaltstack-frame-size-checking.patch @@ -1,6 +1,6 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From 042384a5333cba8021275fa27ebb0c4c0e21de19 Mon Sep 17 00:00:00 2001 From: Andy Chiu -Date: Thu, 6 Jun 2024 03:25:25 -0400 +Date: Tue, 22 Aug 2023 16:49:03 +0000 Subject: riscv: signal: fix sigaltstack frame size checking The alternative stack checking in get_sigframe introduced by the Vector @@ -15,15 +15,17 @@ an altstack if sas_ss_size not equals to zero will check against wrong signal handlers if only a subset of signals are registered with SA_ONSTACK. -Fixes: 8ee0b41 ("riscv: signal: Add sigcontext save/restore for vector") +Fixes: 8ee0b41898fa ("riscv: signal: Add sigcontext save/restore for vector") Reported-by: Prashanth Swaminathan Signed-off-by: Andy Chiu +Link: https://lore.kernel.org/r/20230822164904.21660-1-andy.chiu@sifive.com +Signed-off-by: Palmer Dabbelt --- arch/riscv/kernel/signal.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/riscv/kernel/signal.c b/arch/riscv/kernel/signal.c -index 111111111111..222222222222 100644 +index ffde81cfadb7..f5348292ae79 100644 --- a/arch/riscv/kernel/signal.c +++ b/arch/riscv/kernel/signal.c @@ -309,13 +309,6 @@ static inline void __user *get_sigframe(struct ksignal *ksig, @@ -41,5 +43,5 @@ index 111111111111..222222222222 100644 } -- -Armbian +2.35.3 diff --git a/patch/kernel/spacemit-legacy-6.1/001-wireless-rtl8852bs-CONFIG_RTW_DEBUG-n.patch b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/wireless-rtl8852bs-CONFIG_RTW_DEBUG-n.patch similarity index 76% rename from patch/kernel/spacemit-legacy-6.1/001-wireless-rtl8852bs-CONFIG_RTW_DEBUG-n.patch rename to patch/kernel/spacemit-legacy-6.1/patches.bianbu/wireless-rtl8852bs-CONFIG_RTW_DEBUG-n.patch index 4be8a2e32..2425ee7f5 100644 --- a/patch/kernel/spacemit-legacy-6.1/001-wireless-rtl8852bs-CONFIG_RTW_DEBUG-n.patch +++ b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/wireless-rtl8852bs-CONFIG_RTW_DEBUG-n.patch @@ -1,7 +1,7 @@ -From 8a13d99643bac3617fc6b6cd9bede0dccc78963f Mon Sep 17 00:00:00 2001 +From 2dda0e6c2d5cba19e1e0445e908ea763a453514c Mon Sep 17 00:00:00 2001 From: Patrick Yavitz Date: Wed, 17 Jul 2024 04:30:56 -0400 -Subject: [PATCH] wireless: rtl8852bs: CONFIG_RTW_DEBUG = n +Subject: wireless: rtl8852bs: CONFIG_RTW_DEBUG = n Signed-off-by: Patrick Yavitz --- @@ -9,10 +9,10 @@ Signed-off-by: Patrick Yavitz 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtl8852bs/Makefile b/drivers/net/wireless/realtek/rtl8852bs/Makefile -index 2af36254f..181d9320b 100644 +index 357f90d96246..23cf65c872cd 100644 --- a/drivers/net/wireless/realtek/rtl8852bs/Makefile +++ b/drivers/net/wireless/realtek/rtl8852bs/Makefile -@@ -138,7 +138,7 @@ EXTRA_CFLAGS += -DCONFIG_RTW_ANDROID=$(CONFIG_RTW_ANDROID) +@@ -137,7 +137,7 @@ EXTRA_CFLAGS += -DCONFIG_RTW_ANDROID=$(CONFIG_RTW_ANDROID) endif ########################## Debug ########################### @@ -22,5 +22,5 @@ index 2af36254f..181d9320b 100644 # please refer to "How_to_set_driver_debug_log_level.doc" to set the available level. CONFIG_RTW_LOG_LEVEL = 2 -- -2.39.2 +2.35.3 diff --git a/patch/kernel/spacemit-legacy-6.1/002-wireless-rtl8852bs-remove-RTW_WARN_LMT.patch b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/wireless-rtl8852bs-remove-RTW_WARN_LMT.patch similarity index 79% rename from patch/kernel/spacemit-legacy-6.1/002-wireless-rtl8852bs-remove-RTW_WARN_LMT.patch rename to patch/kernel/spacemit-legacy-6.1/patches.bianbu/wireless-rtl8852bs-remove-RTW_WARN_LMT.patch index beecb1b75..65e216196 100644 --- a/patch/kernel/spacemit-legacy-6.1/002-wireless-rtl8852bs-remove-RTW_WARN_LMT.patch +++ b/patch/kernel/spacemit-legacy-6.1/patches.bianbu/wireless-rtl8852bs-remove-RTW_WARN_LMT.patch @@ -1,7 +1,7 @@ -From 3c4661c1fcfa462cd0bb6c69fbeb7be1c1f57a3e Mon Sep 17 00:00:00 2001 +From 7e9cef3496607903a04fb908c84b24ba2b480907 Mon Sep 17 00:00:00 2001 From: Patrick Yavitz Date: Wed, 17 Jul 2024 04:33:01 -0400 -Subject: [PATCH] wireless: rtl8852bs: remove RTW_WARN_LMT +Subject: wireless: rtl8852bs: remove RTW_WARN_LMT Signed-off-by: Patrick Yavitz --- @@ -9,10 +9,10 @@ Signed-off-by: Patrick Yavitz 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtl8852bs/core/rtw_xmit.c b/drivers/net/wireless/realtek/rtl8852bs/core/rtw_xmit.c -index f50926762..5310587f4 100644 +index 5d41dc48f1eb..dab9ac8ce621 100644 --- a/drivers/net/wireless/realtek/rtl8852bs/core/rtw_xmit.c +++ b/drivers/net/wireless/realtek/rtl8852bs/core/rtw_xmit.c -@@ -6677,7 +6677,7 @@ static void fill_txreq_list_skb(_adapter *padapter, +@@ -6681,7 +6681,7 @@ static void fill_txreq_list_skb(_adapter *padapter, if (skb_total_frag_nr(head_skb) > NUM_PKT_LIST_PER_TXREQ - 2) { rtw_skb_linearize(head_skb); @@ -22,5 +22,5 @@ index f50926762..5310587f4 100644 _fill_txreq_list_skb(padapter, txreq, pkt_list, head_skb, &req_sz, &offset); -- -2.39.2 +2.35.3 diff --git a/patch/kernel/spacemit-legacy-6.1/series.bianbu b/patch/kernel/spacemit-legacy-6.1/series.bianbu new file mode 100644 index 000000000..d9f5dbbc8 --- /dev/null +++ b/patch/kernel/spacemit-legacy-6.1/series.bianbu @@ -0,0 +1,12 @@ +# +# Automatically generated by the script mk_format_patch +# +# https://gitee.com/bianbu-linux/linux-6.1.git +# + patches.bianbu/riscv-signal-fix-sigaltstack-frame-size-checking.patch + patches.bianbu/wireless-rtl8852bs-CONFIG_RTW_DEBUG-n.patch + patches.bianbu/wireless-rtl8852bs-remove-RTW_WARN_LMT.patch + patches.bianbu/Fix-aes_encrypt-redefinition-errors.patch + patches.bianbu/add-minimal-hwmon-support.patch + patches.bianbu/Bluetooth-hci_h5-Add-support-for-RTL8852BS.patch + patches.bianbu/Bluetooth-btrtl-Add-support-for-RTL8852BS.patch diff --git a/patch/kernel/spacemit-legacy-6.1/series.conf b/patch/kernel/spacemit-legacy-6.1/series.conf new file mode 100644 index 000000000..63185f93a --- /dev/null +++ b/patch/kernel/spacemit-legacy-6.1/series.conf @@ -0,0 +1,13 @@ +# +# This file is made manually by simply copying text +# from the target series.* files. +# Add (-) at the beginning of the line if the patch should not be applied. +# At the same time, the patch does not need to be deleted. +# + patches.bianbu/riscv-signal-fix-sigaltstack-frame-size-checking.patch + patches.bianbu/wireless-rtl8852bs-CONFIG_RTW_DEBUG-n.patch + patches.bianbu/wireless-rtl8852bs-remove-RTW_WARN_LMT.patch + patches.bianbu/Fix-aes_encrypt-redefinition-errors.patch + patches.bianbu/add-minimal-hwmon-support.patch + patches.bianbu/Bluetooth-hci_h5-Add-support-for-RTL8852BS.patch + patches.bianbu/Bluetooth-btrtl-Add-support-for-RTL8852BS.patch diff --git a/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/020-mbr-support.patch b/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/0001-MBR-support.patch similarity index 89% rename from patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/020-mbr-support.patch rename to patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/0001-MBR-support.patch index c4d40ae71..dfa1d2a00 100644 --- a/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/020-mbr-support.patch +++ b/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/0001-MBR-support.patch @@ -1,7 +1,7 @@ -From ce3a6afb82e1ac21ddccffa2bfb32efb938d65f4 Mon Sep 17 00:00:00 2001 +From faa72a12de6759e8bd14736bba16e5ac778bf96f Mon Sep 17 00:00:00 2001 From: Banana Pi -BPI Date: Thu, 11 Jul 2024 07:33:58 -0400 -Subject: [PATCH] MBR support +Subject: [PATCH 1/4] MBR support Signed-off-by: Banana Pi -BPI Signed-off-by: Patrick Yavitz @@ -12,10 +12,10 @@ Signed-off-by: Patrick Yavitz 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/board/spacemit/k1-x/k1x.c b/board/spacemit/k1-x/k1x.c -index 192a850a29..ec1beb3e7a 100644 +index b6f06fbb..70141121 100644 --- a/board/spacemit/k1-x/k1x.c +++ b/board/spacemit/k1-x/k1x.c -@@ -313,6 +313,7 @@ void _load_env_from_blk(struct blk_desc *dev_desc, const char *dev_name, int dev +@@ -312,6 +312,7 @@ void _load_env_from_blk(struct blk_desc *dev_desc, const char *dev_name, int dev char cmd[128]; struct disk_partition info; @@ -23,7 +23,7 @@ index 192a850a29..ec1beb3e7a 100644 for (part = 1; part <= MAX_SEARCH_PARTITIONS; part++) { err = part_get_info(dev_desc, part, &info); if (err) -@@ -322,8 +323,13 @@ void _load_env_from_blk(struct blk_desc *dev_desc, const char *dev_name, int dev +@@ -321,8 +322,13 @@ void _load_env_from_blk(struct blk_desc *dev_desc, const char *dev_name, int dev break; } } @@ -38,7 +38,7 @@ index 192a850a29..ec1beb3e7a 100644 env_set("bootfs_part", simple_itoa(part)); env_set("bootfs_devname", dev_name); -@@ -333,12 +339,14 @@ void _load_env_from_blk(struct blk_desc *dev_desc, const char *dev_name, int dev +@@ -332,12 +338,14 @@ void _load_env_from_blk(struct blk_desc *dev_desc, const char *dev_name, int dev sprintf(cmd, "load %s %d:%d 0x%x env_%s.txt", dev_name, dev, part, CONFIG_SPL_LOAD_FIT_ADDRESS, CONFIG_SYS_CONFIG_NAME); pr_debug("cmd:%s\n", cmd); @@ -54,7 +54,7 @@ index 192a850a29..ec1beb3e7a 100644 pr_info("load env_%s.txt from bootfs successful\n", CONFIG_SYS_CONFIG_NAME); } diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c -index acf2b278e8..581958bb1e 100644 +index acf2b278..3109c93d 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -91,6 +91,7 @@ int mmc_load_image_raw_sector(struct spl_image_info *spl_image, @@ -82,7 +82,7 @@ index acf2b278e8..581958bb1e 100644 + info.start = 0x500; + strcpy(info.name,"opensbi"); + } -+ else ++ else + if (!strcmp(part_name, "uboot")){ + info.start = 0x800; + strcpy(info.name,"uboot"); @@ -104,7 +104,7 @@ index acf2b278e8..581958bb1e 100644 #endif } diff --git a/configs/k1_defconfig b/configs/k1_defconfig -index 439db27210..a3adf4b091 100644 +index 568400e5..66a6729a 100644 --- a/configs/k1_defconfig +++ b/configs/k1_defconfig @@ -23,6 +23,7 @@ CONFIG_ARCH_RV64I=y @@ -116,5 +116,5 @@ index 439db27210..a3adf4b091 100644 CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x1000000 -- -2.39.2 +2.35.3 diff --git a/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/021-change-autoboot_stop_str-to-space-key.patch b/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/0002-change-AUTOBOOT_STOP_STR-to-Space-KEY.patch similarity index 84% rename from patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/021-change-autoboot_stop_str-to-space-key.patch rename to patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/0002-change-AUTOBOOT_STOP_STR-to-Space-KEY.patch index e53d6d463..0c198ef62 100644 --- a/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/021-change-autoboot_stop_str-to-space-key.patch +++ b/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/0002-change-AUTOBOOT_STOP_STR-to-Space-KEY.patch @@ -1,7 +1,7 @@ -From e646c31222ba2175e7ded14507f852a1a2202e8e Mon Sep 17 00:00:00 2001 +From 1377ac604cc13156c4af4e7cdc5d3acafcbd2db5 Mon Sep 17 00:00:00 2001 From: Banana Pi -BPI Date: Thu, 11 Jul 2024 07:37:18 -0400 -Subject: [PATCH] change AUTOBOOT_STOP_STR to Space KEY +Subject: [PATCH 2/4] change AUTOBOOT_STOP_STR to Space KEY Signed-off-by: Banana Pi -BPI Signed-off-by: Patrick Yavitz @@ -10,7 +10,7 @@ Signed-off-by: Patrick Yavitz 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/configs/k1_defconfig b/configs/k1_defconfig -index a3adf4b091..4ee8f69e47 100644 +index 66a6729a..7ae44243 100644 --- a/configs/k1_defconfig +++ b/configs/k1_defconfig @@ -35,9 +35,12 @@ CONFIG_SPL_LOAD_FIT_ADDRESS=0x11000000 @@ -29,5 +29,5 @@ index a3adf4b091..4ee8f69e47 100644 CONFIG_BOOTCOMMAND="bootm 0x11000000" CONFIG_LOGLEVEL=7 -- -2.39.2 +2.35.3 diff --git a/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/022-syslinux-and-script-support.patch b/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/0003-Syslinux-and-script-support.patch similarity index 90% rename from patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/022-syslinux-and-script-support.patch rename to patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/0003-Syslinux-and-script-support.patch index e31316254..ff681fb8e 100644 --- a/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/022-syslinux-and-script-support.patch +++ b/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/0003-Syslinux-and-script-support.patch @@ -1,21 +1,21 @@ -From cfa8de6bd957231e4a3ff0e3c6488ef579598afc Mon Sep 17 00:00:00 2001 +From eec3cefda7f6f5b50b7fce2f07736f79c855d93a Mon Sep 17 00:00:00 2001 From: Patrick Yavitz Date: Thu, 11 Jul 2024 07:43:37 -0400 -Subject: [PATCH] Syslinux and script support +Subject: [PATCH 3/4] Syslinux and script support Signed-off-by: Patrick Yavitz --- - board/spacemit/k1-x/k1-x.env | 184 ++++------------------------------- + board/spacemit/k1-x/k1-x.env | 185 ++++------------------------------- board/spacemit/k1-x/k1x.c | 20 ++-- configs/k1_defconfig | 3 + include/configs/k1-x.h | 23 ++--- - 4 files changed, 43 insertions(+), 187 deletions(-) + 4 files changed, 43 insertions(+), 188 deletions(-) diff --git a/board/spacemit/k1-x/k1-x.env b/board/spacemit/k1-x/k1-x.env -index b0a1cd6000..acb1ef7a11 100644 +index bdb32b35..acb1ef7a 100644 --- a/board/spacemit/k1-x/k1-x.env +++ b/board/spacemit/k1-x/k1-x.env -@@ -8,168 +8,24 @@ loglevel=8 +@@ -8,169 +8,24 @@ loglevel=8 stderr=serial stdin=serial,usbkbd stdout=serial @@ -76,7 +76,8 @@ index b0a1cd6000..acb1ef7a11 100644 -netdev=eth0 - -// Common boot args --commonargs=setenv bootargs earlycon=${earlycon} earlyprintk console=tty1 console=${console} loglevel=${loglevel} clk_ignore_unused swiotlb=65536 rdinit=${init} workqueue.default_affinity_scope=${workqueue.default_affinity_scope} +-set_bootargs=setenv bootargs earlycon=${earlycon} earlyprintk quiet splash console=${console} loglevel=${loglevel} clk_ignore_unused swiotlb=65536 rdinit=${init} product_name=${product_name} +-commonargs=run set_bootargs; setenv bootargs "${bootargs}" plymouth.ignore-serial-consoles plymouth.prefer-fbcon workqueue.default_affinity_scope=${workqueue.default_affinity_scope} - -//detect product_name from env and select dtb file to load -dtb_env=if test -n "${product_name}"; then \ @@ -123,7 +124,7 @@ index b0a1cd6000..acb1ef7a11 100644 - fi; - -// Nor+ssd boot combo --set_nor_args=setenv bootargs ${bootargs} mtdparts=${mtdparts} root=${blk_root} rootfstype=ext4 +-set_nor_args=setenv bootargs "${bootargs}" mtdparts=${mtdparts} root=${blk_root} rootfstype=ext4 -nor_boot=echo "Try to boot from ${bootfs_devname}${boot_devnum} ..."; \ - run commonargs; \ - run set_nor_root; \ @@ -205,10 +206,10 @@ index b0a1cd6000..acb1ef7a11 100644 + +bootcmd=echo "Loading ..."; run autoboot diff --git a/board/spacemit/k1-x/k1x.c b/board/spacemit/k1-x/k1x.c -index ec1beb3e7a..f8fe46368f 100644 +index 70141121..ada5f1fc 100644 --- a/board/spacemit/k1-x/k1x.c +++ b/board/spacemit/k1-x/k1x.c -@@ -331,8 +331,8 @@ void _load_env_from_blk(struct blk_desc *dev_desc, const char *dev_name, int dev +@@ -330,8 +330,8 @@ void _load_env_from_blk(struct blk_desc *dev_desc, const char *dev_name, int dev #endif } @@ -219,7 +220,7 @@ index ec1beb3e7a..f8fe46368f 100644 /*load env.txt and import to uboot*/ memset((void *)CONFIG_SPL_LOAD_FIT_ADDRESS, 0, CONFIG_ENV_SIZE); -@@ -511,7 +511,7 @@ void setenv_boot_mode(void) +@@ -510,7 +510,7 @@ void setenv_boot_mode(void) u32 boot_mode = get_boot_mode(); switch (boot_mode) { case BOOT_MODE_NAND: @@ -228,7 +229,7 @@ index ec1beb3e7a..f8fe46368f 100644 break; case BOOT_MODE_NOR: char *blk_name; -@@ -522,23 +522,23 @@ void setenv_boot_mode(void) +@@ -521,23 +521,23 @@ void setenv_boot_mode(void) return; } @@ -260,7 +261,7 @@ index ec1beb3e7a..f8fe46368f 100644 } } diff --git a/configs/k1_defconfig b/configs/k1_defconfig -index 4ee8f69e47..b615296e6c 100644 +index 7ae44243..5af667bf 100644 --- a/configs/k1_defconfig +++ b/configs/k1_defconfig @@ -43,6 +43,8 @@ CONFIG_AUTOBOOT_STOP_STR=" " @@ -272,16 +273,16 @@ index 4ee8f69e47..b615296e6c 100644 CONFIG_LOGLEVEL=7 CONFIG_SPL_LOGLEVEL=1 # CONFIG_SYS_DEVICE_NULLDEV is not set -@@ -273,3 +275,4 @@ CONFIG_IMAGE_SPARSE_TRANSFER_BLK_NUM=0x3000 +@@ -279,3 +281,4 @@ CONFIG_PRINT_TIMESTAMP=y + # CONFIG_SPL_SHA1 is not set # CONFIG_SPL_SHA256 is not set CONFIG_ZSTD=y - CONFIG_FDT_FIXUP_PARTITIONS=y +CONFIG_OF_LIBFDT_OVERLAY=y diff --git a/include/configs/k1-x.h b/include/configs/k1-x.h -index 023bd4b77f..e7fc803e91 100644 +index f1f4be78..34ad156e 100644 --- a/include/configs/k1-x.h +++ b/include/configs/k1-x.h -@@ -82,11 +82,6 @@ +@@ -84,11 +84,6 @@ #define TLV_CODE_EEPROM_I2C_INDEX 0x81 #define TLV_CODE_EEPROM_PIN_GROUP 0x82 @@ -293,7 +294,7 @@ index 023bd4b77f..e7fc803e91 100644 // for those has NOT been through test procedure(ATE) #define SVT_DRO_DEFAULT_VALUE (120) -@@ -140,6 +135,11 @@ struct boot_storage_op +@@ -142,6 +137,11 @@ struct boot_storage_op #define BOOT_TARGET_DEVICES(func) \ func(QEMU, qemu, na) @@ -305,7 +306,7 @@ index 023bd4b77f..e7fc803e91 100644 #include #define BOOTENV_DEV_QEMU(devtypeu, devtypel, instance) \ -@@ -165,11 +165,6 @@ struct boot_storage_op +@@ -167,11 +167,6 @@ struct boot_storage_op /*if env not use for spl, please define to board/spacemit/k1-x/k1-x.env */ #define CONFIG_EXTRA_ENV_SETTINGS \ "stdout_flash=serial,vidconsole\0" \ @@ -317,7 +318,7 @@ index 023bd4b77f..e7fc803e91 100644 "scriptaddr=0x2c100000\0" \ "pxefile_addr_r=0x0c200000\0" \ "ipaddr=192.168.1.15\0" \ -@@ -177,9 +172,11 @@ struct boot_storage_op +@@ -179,9 +174,11 @@ struct boot_storage_op "serverip=10.0.92.134\0" \ "gatewayip=192.168.1.1\0" \ "net_data_path=spacemit_flash_file/net_flash_file/\0" \ @@ -333,5 +334,5 @@ index 023bd4b77f..e7fc803e91 100644 -- -2.39.2 +2.35.3 diff --git a/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/023-efi_loader-suppress-error-print-message.patch b/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/0004-efi_loader-Suppress-error-print-message.patch similarity index 92% rename from patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/023-efi_loader-suppress-error-print-message.patch rename to patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/0004-efi_loader-Suppress-error-print-message.patch index 7772c0b46..523d1d9d6 100644 --- a/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/023-efi_loader-suppress-error-print-message.patch +++ b/patch/u-boot/legacy/u-boot-spacemit-k1/board_bananapif3/0004-efi_loader-Suppress-error-print-message.patch @@ -1,7 +1,7 @@ -From 60013790aa6b8ba65fdb7546f715314d00591f81 Mon Sep 17 00:00:00 2001 +From 0027fcd7dedbc6920c6222e5887df60651b22b2b Mon Sep 17 00:00:00 2001 From: Tejas Bhumkar Date: Fri, 7 Jun 2024 06:32:58 -0400 -Subject: [PATCH] efi_loader : Suppress error print message +Subject: [PATCH 4/4] efi_loader : Suppress error print message Currently, on certain Xilinx platforms, an issue has been identified, manifesting as follows: @@ -38,7 +38,7 @@ Signed-off-by: Tejas Bhumkar 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c -index e048a545e4..7fea2f79c8 100644 +index 15c42be7..a4840ead 100644 --- a/lib/efi_loader/efi_memory.c +++ b/lib/efi_loader/efi_memory.c @@ -660,7 +660,7 @@ efi_status_t efi_free_pool(void *buffer) @@ -51,5 +51,5 @@ index e048a545e4..7fea2f79c8 100644 } /* Avoid double free */ -- -2.39.2 +2.35.3