From cd080be84c286b1faf0c5e30f4069a2bc4bfb66e Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Tue, 28 May 2024 23:28:40 +0200 Subject: [PATCH] pistachio: Update to kernel 6.6 Refresh the patches and the configuration for kernel 6.6 and make directly use of it. Signed-off-by: Hauke Mehrtens --- target/linux/pistachio/Makefile | 2 +- target/linux/pistachio/config-6.6 | 44 +++++++++++++++---- ...ine-img-mdc-Handle-early-status-read.patch | 2 +- ...mg-spfi-Implement-dual-and-quad-mode.patch | 10 ++--- ...-device-0-configuration-for-all-devi.patch | 22 +++++----- ...g-spfi-finish-every-transfer-cleanly.patch | 4 +- ...or-support-mtd-name-from-device-tree.patch | 4 +- 7 files changed, 58 insertions(+), 30 deletions(-) diff --git a/target/linux/pistachio/Makefile b/target/linux/pistachio/Makefile index d5cfb0fe15..ec003f6ed9 100644 --- a/target/linux/pistachio/Makefile +++ b/target/linux/pistachio/Makefile @@ -12,7 +12,7 @@ CPU_TYPE:=24kc CPU_SUBTYPE:=24kf SUBTARGETS:=generic -KERNEL_PATCHVER:=6.1 +KERNEL_PATCHVER:=6.6 include $(INCLUDE_DIR)/target.mk diff --git a/target/linux/pistachio/config-6.6 b/target/linux/pistachio/config-6.6 index 926b5e67f7..f1b98868e0 100644 --- a/target/linux/pistachio/config-6.6 +++ b/target/linux/pistachio/config-6.6 @@ -8,7 +8,10 @@ CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_SD=y # CONFIG_BOARD_INGENIC is not set CONFIG_BOARD_SCACHE=y +CONFIG_BUFFER_HEAD=y CONFIG_BUILTIN_DTB=y +CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" +CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_CEVT_R4K=y CONFIG_CLKSRC_MIPS_GIC=y CONFIG_CLKSRC_PISTACHIO=y @@ -17,8 +20,11 @@ CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 CONFIG_CLONE_BACKWARDS=y CONFIG_COMMON_CLK=y CONFIG_COMMON_CLK_PISTACHIO=y +CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 CONFIG_COMPAT_32BIT_TIME=y CONFIG_CONNECTOR=y +CONFIG_CONTEXT_TRACKING=y +CONFIG_CONTEXT_TRACKING_IDLE=y CONFIG_CPU_GENERIC_DUMP_TLB=y CONFIG_CPU_HAS_DIEI=y CONFIG_CPU_HAS_PREFETCH=y @@ -33,13 +39,17 @@ CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_CPU_MIPS32=y # CONFIG_CPU_MIPS32_R1 is not set CONFIG_CPU_MIPS32_R2=y +# CONFIG_CPU_MIPS32_R5 is not set +# CONFIG_CPU_MIPS32_R5_FEATURES is not set # CONFIG_CPU_MIPS32_R6 is not set # CONFIG_CPU_MIPS64_R1 is not set # CONFIG_CPU_MIPS64_R2 is not set +# CONFIG_CPU_MIPS64_R5 is not set # CONFIG_CPU_MIPS64_R6 is not set CONFIG_CPU_MIPSR2=y CONFIG_CPU_MIPSR2_IRQ_EI=y CONFIG_CPU_MIPSR2_IRQ_VI=y +CONFIG_CPU_MITIGATIONS=y CONFIG_CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS=y CONFIG_CPU_PM=y CONFIG_CPU_R4K_CACHE_TLB=y @@ -54,8 +64,11 @@ CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_HASH_INFO=y CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +CONFIG_CRYPTO_LIB_GF128MUL=y CONFIG_CRYPTO_LIB_POLY1305_RSIZE=2 +CONFIG_CRYPTO_LIB_SHA1=y CONFIG_CRYPTO_LIB_SHA256=y +CONFIG_CRYPTO_LIB_UTILS=y CONFIG_CRYPTO_LZO=y CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_RNG=y @@ -64,6 +77,7 @@ CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_ZSTD=y CONFIG_CSRC_R4K=y +CONFIG_DEBUG_INFO=y CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y CONFIG_DMA_NONCOHERENT=y @@ -71,6 +85,7 @@ CONFIG_DMA_OF=y CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DTC=y CONFIG_DWMAC_GENERIC=y +CONFIG_EXCLUSIVE_SYSTEM_RAM=y CONFIG_EXT4_FS=y # CONFIG_FIT_IMAGE_FDT_BOSTON is not set # CONFIG_FIT_IMAGE_FDT_JAGUAR2 is not set @@ -84,15 +99,18 @@ CONFIG_FIXED_PHY=y CONFIG_FS_IOMAP=y CONFIG_FS_MBCACHE=y CONFIG_FS_POSIX_ACL=y +CONFIG_FUNCTION_ALIGNMENT=0 CONFIG_FWNODE_MDIO=y CONFIG_FW_LOADER_PAGED_BUF=y +CONFIG_FW_LOADER_SYSFS=y +CONFIG_GCC10_NO_ARRAY_BOUNDS=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_GENERIC_ATOMIC64=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y @@ -113,11 +131,13 @@ CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GPIOLIB_IRQCHIP=y CONFIG_GPIO_CDEV=y -CONFIG_HANDLE_DOMAIN_IRQ=y CONFIG_HARDWARE_WATCHPOINTS=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y CONFIG_HAS_IOPORT_MAP=y +CONFIG_HOTPLUG_CORE_SYNC=y +CONFIG_HOTPLUG_CORE_SYNC_DEAD=y CONFIG_HOTPLUG_CPU=y CONFIG_HZ_PERIODIC=y CONFIG_I2C=y @@ -147,7 +167,6 @@ CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0 CONFIG_MDIO_BUS=y CONFIG_MDIO_DEVICE=y CONFIG_MDIO_DEVRES=y -CONFIG_MEMFD_CREATE=y CONFIG_MFD_SYSCON=y CONFIG_MICREL_PHY=y CONFIG_MIGRATION=y @@ -165,13 +184,11 @@ CONFIG_MIPS_CPS=y # CONFIG_MIPS_CPS_NS16550_BOOL is not set CONFIG_MIPS_CPS_PM=y CONFIG_MIPS_CPU_SCACHE=y -CONFIG_MIPS_EBPF_JIT=y CONFIG_MIPS_GENERIC=y CONFIG_MIPS_GENERIC_KERNEL=y CONFIG_MIPS_GIC=y CONFIG_MIPS_L1_CACHE_SHIFT=7 CONFIG_MIPS_L1_CACHE_SHIFT_7=y -CONFIG_MIPS_LD_CAN_LINK_VDSO=y CONFIG_MIPS_MT=y CONFIG_MIPS_MT_FPAFF=y CONFIG_MIPS_MT_SMP=y @@ -187,6 +204,7 @@ CONFIG_MMC_DW=y # CONFIG_MMC_DW_HI3798CV200 is not set # CONFIG_MMC_DW_K3 is not set CONFIG_MMC_DW_PLTFM=y +CONFIG_MMU_LAZY_TLB_REFCOUNT=y CONFIG_MODULES_USE_ELF_REL=y CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MTD_CMDLINE_PARTS=y @@ -201,9 +219,13 @@ CONFIG_MTD_UBI_BLOCK=y CONFIG_MTD_UBI_FASTMAP=y CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_SRCU_NMI_SAFE=y +CONFIG_NET_EGRESS=y CONFIG_NET_FLOW_LIMIT=y +CONFIG_NET_INGRESS=y CONFIG_NET_PTP_CLASSIFY=y CONFIG_NET_SELFTESTS=y +CONFIG_NET_XGRESS=y CONFIG_NLS=y CONFIG_NO_EXCEPT_FILL=y CONFIG_NR_CPUS=4 @@ -217,17 +239,21 @@ CONFIG_OF_KOBJ=y CONFIG_OF_MDIO=y CONFIG_PADATA=y CONFIG_PAGE_POOL=y +CONFIG_PAGE_SIZE_LESS_THAN_256KB=y +CONFIG_PAGE_SIZE_LESS_THAN_64KB=y CONFIG_PCI_DRIVERS_GENERIC=y CONFIG_PCS_XPCS=y CONFIG_PERF_USE_VMALLOC=y CONFIG_PGTABLE_LEVELS=2 CONFIG_PHYLIB=y +CONFIG_PHYLIB_LEDS=y CONFIG_PHYLINK=y CONFIG_PHY_PISTACHIO_USB=y CONFIG_PINCTRL=y CONFIG_PINCTRL_PISTACHIO=y CONFIG_POWER_SUPPLY=y CONFIG_PPS=y +CONFIG_PREEMPT_NONE_BUILD=y CONFIG_PRINTK_TIME=y CONFIG_PROC_EVENTS=y CONFIG_PTP_1588_CLOCK=y @@ -237,6 +263,7 @@ CONFIG_PWM_IMG=y CONFIG_PWM_SYSFS=y CONFIG_QUEUED_RWLOCKS=y CONFIG_QUEUED_SPINLOCKS=y +CONFIG_RANDSTRUCT_NONE=y CONFIG_RATIONAL=y CONFIG_REGMAP=y CONFIG_REGMAP_MMIO=y @@ -270,8 +297,8 @@ CONFIG_SPI=y CONFIG_SPI_IMG_SPFI=y CONFIG_SPI_MASTER=y CONFIG_SPI_MEM=y +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y CONFIG_SRAM=y -CONFIG_SRCU=y CONFIG_STMMAC_ETH=y CONFIG_STMMAC_PLATFORM=y CONFIG_SWAP_IO_SPACE=y @@ -280,9 +307,11 @@ CONFIG_SYNC_R4K=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_SYS_HAS_CPU_MIPS32_R1=y CONFIG_SYS_HAS_CPU_MIPS32_R2=y +CONFIG_SYS_HAS_CPU_MIPS32_R5=y CONFIG_SYS_HAS_CPU_MIPS32_R6=y CONFIG_SYS_HAS_CPU_MIPS64_R1=y CONFIG_SYS_HAS_CPU_MIPS64_R2=y +CONFIG_SYS_HAS_CPU_MIPS64_R5=y CONFIG_SYS_HAS_CPU_MIPS64_R6=y CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y @@ -329,7 +358,6 @@ CONFIG_XXHASH=y CONFIG_ZBOOT_LOAD_ADDRESS=0x0 CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_INFLATE=y -CONFIG_ZSMALLOC=y -# CONFIG_ZSMALLOC_STAT is not set +CONFIG_ZSTD_COMMON=y CONFIG_ZSTD_COMPRESS=y CONFIG_ZSTD_DECOMPRESS=y diff --git a/target/linux/pistachio/patches-6.6/101-dmaengine-img-mdc-Handle-early-status-read.patch b/target/linux/pistachio/patches-6.6/101-dmaengine-img-mdc-Handle-early-status-read.patch index 031a4e3e5e..abaaae1cc7 100644 --- a/target/linux/pistachio/patches-6.6/101-dmaengine-img-mdc-Handle-early-status-read.patch +++ b/target/linux/pistachio/patches-6.6/101-dmaengine-img-mdc-Handle-early-status-read.patch @@ -16,7 +16,7 @@ Signed-off-by: Damien Horsley --- a/drivers/dma/img-mdc-dma.c +++ b/drivers/dma/img-mdc-dma.c -@@ -618,25 +618,33 @@ static enum dma_status mdc_tx_status(str +@@ -617,25 +617,33 @@ static enum dma_status mdc_tx_status(str (MDC_CMDS_PROCESSED_CMDS_DONE_MASK + 1); /* diff --git a/target/linux/pistachio/patches-6.6/102-spi-img-spfi-Implement-dual-and-quad-mode.patch b/target/linux/pistachio/patches-6.6/102-spi-img-spfi-Implement-dual-and-quad-mode.patch index 83f21a5c0a..6ec1a2ab12 100644 --- a/target/linux/pistachio/patches-6.6/102-spi-img-spfi-Implement-dual-and-quad-mode.patch +++ b/target/linux/pistachio/patches-6.6/102-spi-img-spfi-Implement-dual-and-quad-mode.patch @@ -103,10 +103,10 @@ Signed-off-by: Ezequiel Garcia return 0; } cpu_relax(); -@@ -441,9 +460,32 @@ static void img_spfi_config(struct spi_m +@@ -441,9 +460,32 @@ static void img_spfi_config(struct spi_c struct spi_transfer *xfer) { - struct img_spfi *spfi = spi_master_get_devdata(spi->master); + struct img_spfi *spfi = spi_controller_get_devdata(spi->controller); - u32 val, div; + u32 val, div, transact; + bool is_pending; @@ -137,13 +137,13 @@ Signed-off-by: Ezequiel Garcia * output = spfi_clk * (BITCLK / 512), where BITCLK must be a * power of 2 up to 128 */ -@@ -456,20 +498,52 @@ static void img_spfi_config(struct spi_m +@@ -456,20 +498,52 @@ static void img_spfi_config(struct spi_c val |= div << SPFI_DEVICE_PARAMETER_BITCLK_SHIFT; - spfi_writel(spfi, val, SPFI_DEVICE_PARAMETER(spi->chip_select)); + spfi_writel(spfi, val, SPFI_DEVICE_PARAMETER(spi_get_chipselect(spi, 0))); - spfi_writel(spfi, xfer->len << SPFI_TRANSACTION_TSIZE_SHIFT, - SPFI_TRANSACTION); -+ if (!list_is_last(&xfer->transfer_list, &master->cur_msg->transfers) && ++ if (!list_is_last(&xfer->transfer_list, &host->cur_msg->transfers) && + /* + * For duplex mode (both the tx and rx buffers are !NULL) the + * CMD, ADDR, and DUMMY byte parts of the transaction register diff --git a/target/linux/pistachio/patches-6.6/104-spi-img-spfi-use-device-0-configuration-for-all-devi.patch b/target/linux/pistachio/patches-6.6/104-spi-img-spfi-use-device-0-configuration-for-all-devi.patch index 2995b7dd88..b3505134b6 100644 --- a/target/linux/pistachio/patches-6.6/104-spi-img-spfi-use-device-0-configuration-for-all-devi.patch +++ b/target/linux/pistachio/patches-6.6/104-spi-img-spfi-use-device-0-configuration-for-all-devi.patch @@ -15,8 +15,8 @@ Signed-off-by: Ionela Voinescu --- a/drivers/spi/spi-img-spfi.c +++ b/drivers/spi/spi-img-spfi.c -@@ -429,18 +429,23 @@ static int img_spfi_prepare(struct spi_m - struct img_spfi *spfi = spi_master_get_devdata(master); +@@ -429,18 +429,23 @@ static int img_spfi_prepare(struct spi_c + struct img_spfi *spfi = spi_controller_get_devdata(host); u32 val; + /* @@ -28,27 +28,27 @@ Signed-off-by: Ionela Voinescu + /* 0 for device selection */ val &= ~(SPFI_PORT_STATE_DEV_SEL_MASK << SPFI_PORT_STATE_DEV_SEL_SHIFT); -- val |= msg->spi->chip_select << SPFI_PORT_STATE_DEV_SEL_SHIFT; +- val |= spi_get_chipselect(msg->spi, 0) << SPFI_PORT_STATE_DEV_SEL_SHIFT; if (msg->spi->mode & SPI_CPHA) -- val |= SPFI_PORT_STATE_CK_PHASE(msg->spi->chip_select); +- val |= SPFI_PORT_STATE_CK_PHASE(spi_get_chipselect(msg->spi, 0)); + val |= SPFI_PORT_STATE_CK_PHASE(0); else -- val &= ~SPFI_PORT_STATE_CK_PHASE(msg->spi->chip_select); +- val &= ~SPFI_PORT_STATE_CK_PHASE(spi_get_chipselect(msg->spi, 0)); + val &= ~SPFI_PORT_STATE_CK_PHASE(0); if (msg->spi->mode & SPI_CPOL) -- val |= SPFI_PORT_STATE_CK_POL(msg->spi->chip_select); +- val |= SPFI_PORT_STATE_CK_POL(spi_get_chipselect(msg->spi, 0)); + val |= SPFI_PORT_STATE_CK_POL(0); else -- val &= ~SPFI_PORT_STATE_CK_POL(msg->spi->chip_select); +- val &= ~SPFI_PORT_STATE_CK_POL(spi_get_chipselect(msg->spi, 0)); + val &= ~SPFI_PORT_STATE_CK_POL(0); spfi_writel(spfi, val, SPFI_PORT_STATE); return 0; -@@ -492,11 +497,15 @@ static void img_spfi_config(struct spi_m +@@ -492,11 +497,15 @@ static void img_spfi_config(struct spi_c div = DIV_ROUND_UP(clk_get_rate(spfi->spfi_clk), xfer->speed_hz); div = clamp(512 / (1 << get_count_order(div)), 1, 128); -- val = spfi_readl(spfi, SPFI_DEVICE_PARAMETER(spi->chip_select)); +- val = spfi_readl(spfi, SPFI_DEVICE_PARAMETER(spi_get_chipselect(spi, 0))); + /* + * The chip select line is controlled externally so + * we can use the CS0 parameters for all devices @@ -57,8 +57,8 @@ Signed-off-by: Ionela Voinescu val &= ~(SPFI_DEVICE_PARAMETER_BITCLK_MASK << SPFI_DEVICE_PARAMETER_BITCLK_SHIFT); val |= div << SPFI_DEVICE_PARAMETER_BITCLK_SHIFT; -- spfi_writel(spfi, val, SPFI_DEVICE_PARAMETER(spi->chip_select)); +- spfi_writel(spfi, val, SPFI_DEVICE_PARAMETER(spi_get_chipselect(spi, 0))); + spfi_writel(spfi, val, SPFI_DEVICE_PARAMETER(0)); - if (!list_is_last(&xfer->transfer_list, &master->cur_msg->transfers) && + if (!list_is_last(&xfer->transfer_list, &host->cur_msg->transfers) && /* diff --git a/target/linux/pistachio/patches-6.6/106-spi-img-spfi-finish-every-transfer-cleanly.patch b/target/linux/pistachio/patches-6.6/106-spi-img-spfi-finish-every-transfer-cleanly.patch index ea1f9f28cc..a87594e4c7 100644 --- a/target/linux/pistachio/patches-6.6/106-spi-img-spfi-finish-every-transfer-cleanly.patch +++ b/target/linux/pistachio/patches-6.6/106-spi-img-spfi-finish-every-transfer-cleanly.patch @@ -101,7 +101,7 @@ Signed-off-by: Ionela Voinescu - if (!spfi->tx_dma_busy) + if (!spfi->tx_dma_busy) { + spfi_finish(spfi); - spi_finalize_current_transfer(spfi->master); + spi_finalize_current_transfer(spfi->host); + } spin_unlock_irqrestore(&spfi->lock, flags); } @@ -113,7 +113,7 @@ Signed-off-by: Ionela Voinescu - if (!spfi->rx_dma_busy) + if (!spfi->rx_dma_busy) { + spfi_finish(spfi); - spi_finalize_current_transfer(spfi->master); + spi_finalize_current_transfer(spfi->host); + } spin_unlock_irqrestore(&spfi->lock, flags); } diff --git a/target/linux/pistachio/patches-6.6/401-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/pistachio/patches-6.6/401-mtd-nor-support-mtd-name-from-device-tree.patch index a8ebab9cd2..c7b07952e7 100644 --- a/target/linux/pistachio/patches-6.6/401-mtd-nor-support-mtd-name-from-device-tree.patch +++ b/target/linux/pistachio/patches-6.6/401-mtd-nor-support-mtd-name-from-device-tree.patch @@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma --- a/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c -@@ -2964,12 +2964,20 @@ static void spi_nor_set_mtd_info(struct +@@ -3420,12 +3420,20 @@ static void spi_nor_set_mtd_info(struct { struct mtd_info *mtd = &nor->mtd; struct device *dev = nor->dev; @@ -33,7 +33,7 @@ Signed-off-by: Abhimanyu Vishwakarma mtd->flags = MTD_CAP_NORFLASH; --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c -@@ -863,6 +863,17 @@ out_error: +@@ -870,6 +870,17 @@ out_error: */ static void mtd_set_dev_defaults(struct mtd_info *mtd) { -- 2.30.2