diff options
30 files changed, 1114 insertions, 264 deletions
@@ -3,7 +3,7 @@ VERSION = 2024 PATCHLEVEL = 07 SUBLEVEL = -EXTRAVERSION = -rc5 +EXTRAVERSION = NAME = # *DOCUMENTATION* diff --git a/arch/arm/mach-mediatek/mt7622/init.c b/arch/arm/mach-mediatek/mt7622/init.c index 6e970acf8b0..368f2916224 100644 --- a/arch/arm/mach-mediatek/mt7622/init.c +++ b/arch/arm/mach-mediatek/mt7622/init.c @@ -27,7 +27,7 @@ int dram_init(void) if (ret) return ret; - gd->ram_size = get_ram_size((void *)gd->ram_base, SZ_2G); + gd->ram_size = get_ram_size((void *)gd->ram_base, SZ_1G); return 0; } diff --git a/board/beagle/beagleplay/Kconfig b/board/beagle/beagleplay/Kconfig index b0e67dc8ef3..592b53e493c 100644 --- a/board/beagle/beagleplay/Kconfig +++ b/board/beagle/beagleplay/Kconfig @@ -12,6 +12,7 @@ config TARGET_AM625_A53_BEAGLEPLAY bool "BeagleBoard.org AM625 BeaglePlay running on A53" select ARM64 select BINMAN + select OF_SYSTEM_SETUP config TARGET_AM625_R5_BEAGLEPLAY bool "BeagleBoard.org AM625 BeaglePlay running on R5" diff --git a/board/google/veyron/veyron.c b/board/google/veyron/veyron.c index 53c3435c92f..bd8ce633772 100644 --- a/board/google/veyron/veyron.c +++ b/board/google/veyron/veyron.c @@ -28,44 +28,38 @@ static int veyron_init(void) int ret; ret = regulator_get_by_platname("vdd_arm", &dev); - if (ret) { - debug("Cannot set regulator name\n"); - return ret; - } + if (ret) + return log_msg_ret("vdd", ret); /* Slowly raise to max CPU voltage to prevent overshoot */ ret = regulator_set_value(dev, 1200000); if (ret) - return ret; + return log_msg_ret("s12", ret); udelay(175); /* Must wait for voltage to stabilize, 2mV/us */ ret = regulator_set_value(dev, 1400000); if (ret) - return ret; + return log_msg_ret("s14", ret); udelay(100); /* Must wait for voltage to stabilize, 2mV/us */ ret = rockchip_get_clk(&clk.dev); if (ret) - return ret; + return log_msg_ret("clk", ret); clk.id = PLL_APLL; ret = clk_set_rate(&clk, 1800000000); if (IS_ERR_VALUE(ret)) - return ret; + return log_msg_ret("s18", ret); ret = regulator_get_by_platname("vcc33_sd", &dev); - if (ret) { - debug("Cannot get regulator name\n"); - return ret; - } + if (ret) + return log_msg_ret("vcc", ret); ret = regulator_set_value(dev, 3300000); if (ret) - return ret; + return log_msg_ret("s33", ret); ret = regulators_enable_boot_on(false); - if (ret) { - debug("%s: Cannot enable boot on regulators\n", __func__); - return ret; - } + if (ret) + return log_msg_ret("boo", ret); return 0; } @@ -80,7 +74,7 @@ int board_early_init_r(void) if (!fdt_node_check_compatible(gd->fdt_blob, 0, "google,veyron")) { ret = veyron_init(); if (ret) - return ret; + return log_msg_ret("vey", ret); } #endif /* diff --git a/board/microchip/mpfs_icicle/MAINTAINERS b/board/microchip/mpfs_icicle/MAINTAINERS index 22f3b97d8b1..d092b5a8111 100644 --- a/board/microchip/mpfs_icicle/MAINTAINERS +++ b/board/microchip/mpfs_icicle/MAINTAINERS @@ -1,5 +1,5 @@ Microchip MPFS icicle -M: Padmarao Begari <padmarao.begari@microchip.com> +M: Conor Dooley <conor.dooley@microchip.com> M: Cyril Jean <cyril.jean@microchip.com> S: Maintained F: board/microchip/mpfs_icicle/ diff --git a/board/ti/am335x/MAINTAINERS b/board/ti/am335x/MAINTAINERS index 219c8715bf1..ed8800a2663 100644 --- a/board/ti/am335x/MAINTAINERS +++ b/board/ti/am335x/MAINTAINERS @@ -3,6 +3,5 @@ M: Tom Rini <trini@konsulko.com> S: Maintained F: board/ti/am335x/ F: include/configs/am335x_evm.h -F: configs/am335x_boneblack_vboot_defconfig F: configs/am335x_evm_defconfig F: configs/am335x_evm_spiboot_defconfig diff --git a/common/spl/spl_atf.c b/common/spl/spl_atf.c index 0b1c981a105..0397b86a33b 100644 --- a/common/spl/spl_atf.c +++ b/common/spl/spl_atf.c @@ -203,7 +203,8 @@ static void __noreturn bl31_entry(uintptr_t bl31_entry, uintptr_t bl32_entry, fdt_addr); raw_write_daif(SPSR_EXCEPTION_MASK); - dcache_disable(); + if (!CONFIG_IS_ENABLED(SYS_DCACHE_OFF)) + dcache_disable(); atf_entry(bl31_params, (void *)fdt_addr); } diff --git a/configs/am335x_boneblack_vboot_defconfig b/configs/am335x_boneblack_vboot_defconfig deleted file mode 100644 index d473a1a793b..00000000000 --- a/configs/am335x_boneblack_vboot_defconfig +++ /dev/null @@ -1,94 +0,0 @@ -CONFIG_ARM=y -CONFIG_ARCH_CPU_INIT=y -# CONFIG_SPL_USE_ARCH_MEMCPY is not set -# CONFIG_SPL_USE_ARCH_MEMSET is not set -CONFIG_ARCH_OMAP2PLUS=y -CONFIG_TI_COMMON_CMD_OPTIONS=y -CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y -CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x4030ff00 -CONFIG_SF_DEFAULT_SPEED=24000000 -CONFIG_DEFAULT_DEVICE_TREE="am335x-boneblack" -CONFIG_AM33XX=y -CONFIG_CLOCK_SYNTHESIZER=y -CONFIG_SPL=y -CONFIG_ENV_OFFSET_REDUND=0x280000 -CONFIG_TIMESTAMP=y -CONFIG_FIT_SIGNATURE=y -CONFIG_FIT_VERBOSE=y -CONFIG_SYS_BOOTM_LEN=0x1000000 -CONFIG_DISTRO_DEFAULTS=y -CONFIG_AUTOBOOT_KEYED=y -CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n" -CONFIG_AUTOBOOT_DELAY_STR="d" -CONFIG_AUTOBOOT_STOP_STR=" " -CONFIG_BOOTCOMMAND="run findfdt; run init_console; run finduuid; run distro_bootcmd" -CONFIG_SYS_CONSOLE_INFO_QUIET=y -CONFIG_ARCH_MISC_INIT=y -CONFIG_SPL_SYS_MALLOC=y -CONFIG_SPL_SYS_MALLOC_SIZE=0x800000 -CONFIG_SPL_MUSB_NEW=y -# CONFIG_SPL_NAND_SUPPORT is not set -CONFIG_SPL_NET=y -CONFIG_SPL_NET_VCI_STRING="AM33xx U-Boot SPL" -CONFIG_SPL_OS_BOOT=y -CONFIG_SPL_FALCON_BOOT_MMCSD=y -CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR=0x1700 -CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR=0x1500 -CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS=0x200 -CONFIG_CMD_SPL=y -CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2 -# CONFIG_CMD_SETEXPR is not set -CONFIG_BOOTP_DNS2=y -CONFIG_OF_CONTROL=y -CONFIG_SPL_OF_CONTROL=y -CONFIG_ENV_OVERWRITE=y -CONFIG_ENV_IS_IN_MMC=y -CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -CONFIG_SYS_RELOC_GD_ENV_ADDR=y -CONFIG_SYS_MMC_ENV_DEV=1 -CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -CONFIG_VERSION_VARIABLE=y -CONFIG_NET_RETRY_COUNT=10 -CONFIG_BOOTP_SEND_HOSTNAME=y -# CONFIG_SPL_BLK is not set -CONFIG_BOOTCOUNT_LIMIT=y -CONFIG_SYS_BOOTCOUNT_BE=y -CONFIG_DFU_MMC=y -CONFIG_DFU_RAM=y -CONFIG_USB_FUNCTION_FASTBOOT=y -CONFIG_DM_I2C=y -CONFIG_MISC=y -CONFIG_SYS_I2C_EEPROM_ADDR=0x50 -# CONFIG_SPL_DM_MMC is not set -CONFIG_MMC_OMAP_HS=y -CONFIG_MTD=y -CONFIG_DM_SPI_FLASH=y -CONFIG_SPI_FLASH_WINBOND=y -CONFIG_PHY_ATHEROS=y -CONFIG_PHY_SMSC=y -CONFIG_PHY_GIGE=y -CONFIG_MII=y -CONFIG_DRIVER_TI_CPSW=y -CONFIG_DM_PMIC=y -# CONFIG_SPL_DM_PMIC is not set -CONFIG_PMIC_TPS65217=y -CONFIG_SPL_POWER_TPS65910=y -CONFIG_SPI=y -CONFIG_DM_SPI=y -CONFIG_OMAP3_SPI=y -CONFIG_TIMER=y -CONFIG_OMAP_TIMER=y -CONFIG_USB=y -CONFIG_DM_USB_GADGET=y -CONFIG_SPL_DM_USB_GADGET=y -CONFIG_USB_MUSB_HOST=y -CONFIG_USB_MUSB_GADGET=y -CONFIG_USB_MUSB_TI=y -CONFIG_USB_GADGET=y -CONFIG_SPL_USB_GADGET=y -CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments" -CONFIG_USB_GADGET_VENDOR_NUM=0x0451 -CONFIG_USB_GADGET_PRODUCT_NUM=0xd022 -CONFIG_USB_ETHER=y -CONFIG_SPL_USB_ETHER=y -CONFIG_LZO=y diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig index d243cb16e72..cabc181460a 100644 --- a/configs/am335x_evm_defconfig +++ b/configs/am335x_evm_defconfig @@ -13,6 +13,8 @@ CONFIG_AM335X_USB0_PERIPHERAL=y CONFIG_AM335X_USB1=y CONFIG_SPL=y CONFIG_TIMESTAMP=y +CONFIG_FIT_SIGNATURE=y +CONFIG_FIT_VERBOSE=y CONFIG_SPL_LOAD_FIT=y CONFIG_SYS_BOOTM_LEN=0x1000000 CONFIG_DISTRO_DEFAULTS=y @@ -119,5 +121,4 @@ CONFIG_SPL_USB_ETHER=y CONFIG_WDT=y # CONFIG_SPL_WDT is not set CONFIG_DYNAMIC_CRC_TABLE=y -CONFIG_RSA=y CONFIG_LZO=y diff --git a/configs/am65x_evm_a53_defconfig b/configs/am65x_evm_a53_defconfig index ee79adef699..925a88e2547 100644 --- a/configs/am65x_evm_a53_defconfig +++ b/configs/am65x_evm_a53_defconfig @@ -16,7 +16,6 @@ CONFIG_DM_GPIO=y CONFIG_SPL_DM_SPI=y CONFIG_DEFAULT_DEVICE_TREE="k3-am654-base-board" CONFIG_SPL_TEXT_BASE=0x80080000 -CONFIG_OF_LIBFDT_OVERLAY=y CONFIG_DM_RESET=y CONFIG_SPL_MMC=y CONFIG_SPL_SERIAL=y @@ -36,6 +35,7 @@ CONFIG_PCI=y # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_LOAD_FIT_ADDRESS=0x81000000 +CONFIG_SPL_LOAD_FIT_APPLY_OVERLAY=y CONFIG_DISTRO_DEFAULTS=y CONFIG_OF_SYSTEM_SETUP=y CONFIG_BOOTCOMMAND="run findfdt; run distro_bootcmd; run init_${boot}; run boot_rprocs; if test ${boot_fit} -eq 1; then run get_fit_${boot}; run get_overlaystring; run run_fit; else; run get_kern_${boot}; run get_fdt_${boot}; run get_overlay_${boot}; run run_kern; fi;" @@ -68,7 +68,6 @@ CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y CONFIG_CMD_PCI=y CONFIG_CMD_REMOTEPROC=y -CONFIG_SPL_LOAD_FIT_APPLY_OVERLAY=y CONFIG_CMD_USB=y CONFIG_CMD_TIME=y CONFIG_MTDIDS_DEFAULT="nor0=47040000.spi.0" diff --git a/configs/chromebook_bob_defconfig b/configs/chromebook_bob_defconfig index acfe3934104..b2ecfa6050c 100644 --- a/configs/chromebook_bob_defconfig +++ b/configs/chromebook_bob_defconfig @@ -1,5 +1,6 @@ CONFIG_ARM=y CONFIG_SKIP_LOWLEVEL_INIT=y +CONFIG_SPL_SYS_DCACHE_OFF=y CONFIG_COUNTER_FREQUENCY=24000000 CONFIG_ARCH_ROCKCHIP=y CONFIG_TEXT_BASE=0x00200000 diff --git a/configs/chromebook_kevin_defconfig b/configs/chromebook_kevin_defconfig index 95fdb418d82..0fba5912e0e 100644 --- a/configs/chromebook_kevin_defconfig +++ b/configs/chromebook_kevin_defconfig @@ -1,5 +1,6 @@ CONFIG_ARM=y CONFIG_SKIP_LOWLEVEL_INIT=y +CONFIG_SPL_SYS_DCACHE_OFF=y CONFIG_COUNTER_FREQUENCY=24000000 CONFIG_ARCH_ROCKCHIP=y CONFIG_TEXT_BASE=0x00200000 diff --git a/configs/chromebook_link_defconfig b/configs/chromebook_link_defconfig index a9f91dd9b26..70c57aebab8 100644 --- a/configs/chromebook_link_defconfig +++ b/configs/chromebook_link_defconfig @@ -15,6 +15,8 @@ CONFIG_DEBUG_UART=y CONFIG_HAVE_MRC=y CONFIG_SMP=y CONFIG_HAVE_VGA_BIOS=y +CONFIG_HAS_BOARD_SIZE_LIMIT=y +CONFIG_BOARD_SIZE_LIMIT=630000 CONFIG_FIT=y CONFIG_BOOTSTAGE=y CONFIG_BOOTSTAGE_REPORT=y @@ -78,5 +80,6 @@ CONFIG_FRAMEBUFFER_VESA_MODE_11A=y CONFIG_VIDEO_IVYBRIDGE_IGD=y CONFIG_CMD_DHRYSTONE=y CONFIG_TPM=y +# CONFIG_SHA256 is not set # CONFIG_GZIP is not set # CONFIG_EFI_LOADER is not set diff --git a/configs/hmibsc_defconfig b/configs/hmibsc_defconfig index b92488587d8..86ca4f81fed 100644 --- a/configs/hmibsc_defconfig +++ b/configs/hmibsc_defconfig @@ -10,44 +10,42 @@ CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x8007fff0 CONFIG_ENV_SIZE=0x2000 CONFIG_ENV_OFFSET=0x0 CONFIG_DEFAULT_DEVICE_TREE="apq8016-schneider-hmibsc" -# CONFIG_OF_UPSTREAM is not set CONFIG_OF_LIBFDT_OVERLAY=y CONFIG_IDENT_STRING="\nSchneider Electric-HMIBSC" CONFIG_SYS_LOAD_ADDR=0x80080000 CONFIG_REMAKE_ELF=y # CONFIG_ANDROID_BOOT_IMAGE is not set CONFIG_FIT=y -CONFIG_HUSH_PARSER=y CONFIG_SYS_CBSIZE=2048 # CONFIG_DISPLAY_CPUINFO is not set # CONFIG_DISPLAY_BOARDINFO is not set +CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="hmibsc => " -CONFIG_SYS_MAXARGS=64 -CONFIG_CMD_DHCP=y -CONFIG_CMD_PING=y -CONFIG_CMD_FS_GENERIC=y # CONFIG_CMD_IMI is not set +CONFIG_CMD_ENV_FLAGS=y +CONFIG_CMD_NVEDIT_INFO=y CONFIG_CMD_MD5SUM=y CONFIG_CMD_MEMINFO=y -CONFIG_CMD_EXT2=y -CONFIG_CMD_EXT4=y -CONFIG_CMD_FAT=y CONFIG_CMD_GPIO=y CONFIG_CMD_GPT=y CONFIG_CMD_MMC=y CONFIG_CMD_PART=y CONFIG_CMD_USB=y +CONFIG_CMD_DHCP=y CONFIG_BOOTP_BOOTFILESIZE=y +CONFIG_CMD_PING=y CONFIG_CMD_CACHE=y CONFIG_CMD_TIMER=y -CONFIG_CMD_ENV_FLAGS=y -CONFIG_CMD_ENV_EXISTS=y -CONFIG_CMD_NVEDIT_INFO=y -CONFIG_ENV_WRITEABLE_LIST=y -CONFIG_ENV_ACCESS_IGNORE_FORCE=y +CONFIG_CMD_EXT2=y +CONFIG_CMD_EXT4=y +CONFIG_CMD_FAT=y +CONFIG_CMD_FS_GENERIC=y +# CONFIG_OF_UPSTREAM is not set CONFIG_ENV_IS_IN_MMC=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_SYS_MMC_ENV_PART=2 +CONFIG_ENV_WRITEABLE_LIST=y +CONFIG_ENV_ACCESS_IGNORE_FORCE=y CONFIG_BUTTON_QCOM_PMIC=y CONFIG_CLK=y CONFIG_CLK_QCOM_APQ8016=y @@ -79,10 +77,9 @@ CONFIG_USB_ULPI=y CONFIG_USB_HOST_ETHER=y CONFIG_USB_ETHER_ASIX=y CONFIG_USB_ETHER_ASIX88179=y +CONFIG_USB_ETHER_LAN75XX=y CONFIG_USB_ETHER_MCS7830=y CONFIG_USB_ETHER_SMSC95XX=y -CONFIG_PHYLIB=y -CONFIG_USB_ETHER_LAN75XX=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_VENDOR_NUM=0x18d1 CONFIG_USB_GADGET_PRODUCT_NUM=0xd00d diff --git a/configs/imx8mp_dhcom_pdk3_defconfig b/configs/imx8mp_dhcom_pdk3_defconfig index 7b3dae504f8..5520a4dab73 100644 --- a/configs/imx8mp_dhcom_pdk3_defconfig +++ b/configs/imx8mp_dhcom_pdk3_defconfig @@ -160,8 +160,6 @@ CONFIG_TFTP_TSIZE=y CONFIG_PROT_TCP_SACK=y CONFIG_IPV6=y CONFIG_SPL_DM=y -CONFIG_REGMAP=y -CONFIG_SYSCON=y CONFIG_BOOTCOUNT_LIMIT=y CONFIG_SYS_BOOTCOUNT_MAGIC=0xB0C40000 CONFIG_SPL_CLK_COMPOSITE_CCF=y @@ -232,7 +230,6 @@ CONFIG_IMX8MP_HSIOMIX_BLKCTRL=y CONFIG_DM_PMIC=y CONFIG_DM_PMIC_PCA9450=y CONFIG_SPL_DM_PMIC_PCA9450=y -CONFIG_DM_REGULATOR=y CONFIG_SPL_DM_REGULATOR=y CONFIG_DM_REGULATOR_PCA9450=y CONFIG_SPL_DM_REGULATOR_PCA9450=y diff --git a/configs/milkv_duo_defconfig b/configs/milkv_duo_defconfig index 0cb2922de44..d350ec14eb1 100644 --- a/configs/milkv_duo_defconfig +++ b/configs/milkv_duo_defconfig @@ -32,11 +32,11 @@ CONFIG_MMC_UHS_SUPPORT=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_ADMA=y CONFIG_MMC_SDHCI_CV1800B=y +CONFIG_SPI_FLASH_MACRONIX=y CONFIG_ETH_DESIGNWARE=y CONFIG_SYS_NS16550=y CONFIG_SYS_NS16550_MEM32=y -CONFIG_SYSRESET=y -CONFIG_SYSRESET_CV1800B=y -CONFIG_SPI_FLASH_MACRONIX=y CONFIG_SPI=y CONFIG_CV1800B_SPIF=y +CONFIG_SYSRESET=y +CONFIG_SYSRESET_CV1800B=y diff --git a/configs/nyan-big_defconfig b/configs/nyan-big_defconfig index 1483d17d975..6d43a259989 100644 --- a/configs/nyan-big_defconfig +++ b/configs/nyan-big_defconfig @@ -11,13 +11,10 @@ CONFIG_DEFAULT_DEVICE_TREE="tegra124-nyan-big" CONFIG_SPL_TEXT_BASE=0x80108000 CONFIG_SPL_STACK=0x800ffffc CONFIG_BOOTSTAGE_STASH_ADDR=0x83000000 -CONFIG_DEBUG_UART_BASE=0x70006000 -CONFIG_DEBUG_UART_CLOCK=408000000 CONFIG_TEGRA124=y CONFIG_TARGET_NYAN_BIG=y CONFIG_TEGRA_GPU=y CONFIG_SYS_LOAD_ADDR=0x82408000 -CONFIG_DEBUG_UART=y CONFIG_FIT=y CONFIG_FIT_BEST_MATCH=y CONFIG_BOOTSTAGE=y @@ -76,7 +73,6 @@ CONFIG_DM_REGULATOR=y CONFIG_REGULATOR_AS3722=y CONFIG_DM_REGULATOR_FIXED=y CONFIG_PWM_TEGRA=y -CONFIG_DEBUG_UART_SHIFT=2 CONFIG_SYS_NS16550=y CONFIG_SOUND=y CONFIG_I2S=y diff --git a/configs/phycore-imx8mp_defconfig b/configs/phycore-imx8mp_defconfig index 7b16e8ef58e..57e320af603 100644 --- a/configs/phycore-imx8mp_defconfig +++ b/configs/phycore-imx8mp_defconfig @@ -5,6 +5,7 @@ CONFIG_SYS_MALLOC_LEN=0x2000000 CONFIG_SPL_GPIO=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_PHYTEC_SOM_DETECTION=y CONFIG_ENV_SIZE=0x10000 CONFIG_ENV_OFFSET=0x3C0000 CONFIG_SYS_I2C_MXC_I2C1=y @@ -12,7 +13,6 @@ CONFIG_DM_GPIO=y CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mp-phyboard-pollux-rdk" CONFIG_SPL_TEXT_BASE=0x920000 CONFIG_TARGET_PHYCORE_IMX8MP=y -CONFIG_PHYTEC_SOM_DETECTION=y CONFIG_SYS_MONITOR_LEN=524288 CONFIG_SPL_MMC=y CONFIG_SPL_SERIAL=y diff --git a/configs/qcom_defconfig b/configs/qcom_defconfig index 80ad3b32e13..37966bfb201 100644 --- a/configs/qcom_defconfig +++ b/configs/qcom_defconfig @@ -1,16 +1,17 @@ CONFIG_ARM=y CONFIG_SKIP_LOWLEVEL_INIT=y CONFIG_POSITION_INDEPENDENT=y +CONFIG_SYS_INIT_SP_BSS_OFFSET=1572864 CONFIG_ARCH_SNAPDRAGON=y CONFIG_DEFAULT_DEVICE_TREE="qcom/sdm845-db845c" CONFIG_SYS_LOAD_ADDR=0xA0000000 -CONFIG_SYS_INIT_SP_BSS_OFFSET=1572864 CONFIG_BUTTON_CMD=y CONFIG_FIT=y CONFIG_FIT_VERBOSE=y CONFIG_BOOTSTD_FULL=y # CONFIG_BOOTMETH_VBE is not set CONFIG_BOOTDELAY=1 +CONFIG_OF_BOARD_SETUP=y CONFIG_USE_PREBOOT=y CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR=y CONFIG_SYS_CBSIZE=512 @@ -34,7 +35,6 @@ CONFIG_CMD_CAT=y CONFIG_CMD_BMP=y CONFIG_CMD_LOG=y CONFIG_OF_LIVE=y -CONFIG_OF_BOARD_SETUP=y CONFIG_BUTTON_QCOM_PMIC=y CONFIG_CLK=y CONFIG_CLK_QCOM_QCM2290=y @@ -106,5 +106,4 @@ CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_NO_FB_CLEAR=y CONFIG_VIDEO_SIMPLE=y CONFIG_HEXDUMP=y -CONFIG_GENERATE_SMBIOS_TABLE=y CONFIG_LMB_MAX_REGIONS=64 diff --git a/doc/develop/release_cycle.rst b/doc/develop/release_cycle.rst index b392346eea8..541ab0adaf8 100644 --- a/doc/develop/release_cycle.rst +++ b/doc/develop/release_cycle.rst @@ -51,13 +51,14 @@ Examples:: Current Status -------------- -* U-Boot v2024.04 was released on Tue 02 April 2024. +* U-Boot v2024.07 was released on Mon 01 July 2024. -* The Merge Window for the next release (v2024.07) is **closed**. +* The Merge Window for the next release (v2024.10) is **open** until the -rc1 + release on Mon 22 July 2024. -* The next branch is now **open**. +* The next branch is now **closed**. -* Release "v2024.07" is scheduled for 01 July 2024. +* Release "v2024.10" is scheduled for 07 October 2024. Future Releases --------------- @@ -65,29 +66,31 @@ Future Releases .. The following commented out dates are for when release candidates are planned to be tagged. -For the next scheduled release, release candidates were made on:: +.. For the next scheduled release, release candidates were made on:: -* U-Boot v2024.07-rc1 was released on Mon 22 April 2024. +.. * U-Boot v2024.10-rc1 was released on Mon 22 July 2024. -* U-Boot v2024.07-rc2 was released on Mon 06 May 2024. +.. * U-Boot v2024.10-rc2 was released on Mon 05 August 2024. -* U-Boot v2024.07-rc3 was released on Mon 20 May 2024. +.. * U-Boot v2024.10-rc3 was released on Mon 19 August 2024. -* U-Boot v2024.07-rc4 was released on Mon 03 June 2024. +.. * U-Boot v2024.10-rc4 was released on Mon 02 September 2024. -* U-Boot v2024.07-rc5 was released on Mon 24 June 2024. +.. * U-Boot v2024.10-rc5 was released on Mon 16 September 2024. + +.. * U-Boot v2024.10-rc6 was released on Mon 30 September 2024. Please note that the following dates are planned only and may be deviated from as needed. -* "v2024.07": end of MW = Mon, Apr 22, 2024; release = Mon, Jul 01, 2024 - * "v2024.10": end of MW = Mon, Jul 22, 2024; release = Mon, Oct 07, 2024 * "v2025.01": end of MW = Mon, Oct 21, 2024; release = Mon, Jan 06, 2025 * "v2025.04": end of MW = Mon, Jan 27, 2025; release = Mon, Apr 07, 2025 +* "v2025.07": end of MW = Mon, Apr 21, 2025; release = Mon, Jul 07, 2025 + Previous Releases ----------------- @@ -95,6 +98,8 @@ Note: these statistics are generated by our fork of `gitdm <https://source.denx.de/u-boot/gitdm>`_, which was originally created by Jonathan Corbet. +* :doc:`statistics/u-boot-stats-v2024.07` which was released on 01 July 2024. + * :doc:`statistics/u-boot-stats-v2024.04` which was released on 02 April 2024. * :doc:`statistics/u-boot-stats-v2024.01` which was released on 08 January 2024. diff --git a/doc/develop/statistics/u-boot-stats-v2024.07.rst b/doc/develop/statistics/u-boot-stats-v2024.07.rst new file mode 100644 index 00000000000..b437e926659 --- /dev/null +++ b/doc/develop/statistics/u-boot-stats-v2024.07.rst @@ -0,0 +1,890 @@ +:orphan: + +Release Statistics for U-Boot v2024.07 +====================================== + +* Processed 1624 changesets from 191 developers + +* 28 employers found + +* A total of 2308875 lines added, 242831 removed (delta 2066044) + +.. table:: Developers with the most changesets + :widths: auto + + ==================================== ===== + Name Count + ==================================== ===== + Tom Rini 324 (20.0%) + Jonas Karlman 155 (9.5%) + Caleb Connolly 98 (6.0%) + Heinrich Schuchardt 84 (5.2%) + Quentin Schulz 59 (3.6%) + Marek Vasut 52 (3.2%) + Simon Glass 44 (2.7%) + Patrice Chotard 32 (2.0%) + Sumit Garg 31 (1.9%) + Svyatoslav Ryhel 31 (1.9%) + Michal Simek 26 (1.6%) + Ilias Apalodimas 23 (1.4%) + Neil Armstrong 23 (1.4%) + Jonathan Humphreys 22 (1.4%) + Andrew Davis 18 (1.1%) + Marek Behún 18 (1.1%) + Jagan Teki 17 (1.0%) + MD Danish Anwar 15 (0.9%) + Kongyang Liu 15 (0.9%) + Bryan Brattlof 14 (0.9%) + Janne Grunau 14 (0.9%) + Christophe Leroy 13 (0.8%) + Tim Harvey 13 (0.8%) + Apurva Nandan 12 (0.7%) + Wadim Egorov 11 (0.7%) + Andre Przywara 11 (0.7%) + Peng Fan 11 (0.7%) + Adam Ford 10 (0.6%) + Sam Protsenko 10 (0.6%) + Roger Quadros 10 (0.6%) + Igor Opaniuk 9 (0.6%) + Robert Marko 9 (0.6%) + Jonas Schwöbel 9 (0.6%) + Yang Xiwen 9 (0.6%) + Eugene Uriev 9 (0.6%) + Chris Morgan 8 (0.5%) + Judith Mendez 8 (0.5%) + Raymond Mao 8 (0.5%) + Alexander Dahl 7 (0.4%) + Fabio Estevam 7 (0.4%) + Jim Liu 7 (0.4%) + Venkatesh Yadav Abbarapu 7 (0.4%) + Mattijs Korpershoek 6 (0.4%) + Daniel Schultz 6 (0.4%) + Weizhao Ouyang 6 (0.4%) + Ye Li 6 (0.4%) + Conor Dooley 5 (0.3%) + Nishanth Menon 5 (0.3%) + Leo Yu-Chi Liang 5 (0.3%) + Bhargav Raviprakash 5 (0.3%) + Masahisa Kojima 5 (0.3%) + mwleeds@mailtundra.com 5 (0.3%) + Michał Barnaś 5 (0.3%) + Leonard Anderweit 5 (0.3%) + Chen-Yu Tsai 5 (0.3%) + Javier Martinez Canillas 4 (0.2%) + Francesco Dolcini 4 (0.2%) + Felipe Balbi 4 (0.2%) + Aniket Limaye 4 (0.2%) + Christopher Obbard 4 (0.2%) + Mathieu Othacehe 4 (0.2%) + Joao Paulo Goncalves 4 (0.2%) + Sughosh Ganu 4 (0.2%) + Volodymyr Babchuk 4 (0.2%) + Lukasz Majewski 4 (0.2%) + Jacky Chou 4 (0.2%) + Dan Carpenter 4 (0.2%) + Mihai Sain 4 (0.2%) + Arseniy Krasnov 3 (0.2%) + Fiona Klute 3 (0.2%) + Hanyuan Zhao 3 (0.2%) + Greg Malysa 3 (0.2%) + Nathan Barrett-Morrison 3 (0.2%) + Peter Robinson 3 (0.2%) + Lukas Funke 3 (0.2%) + Yannic Moog 3 (0.2%) + Udit Kumar 3 (0.2%) + Michael Walle 3 (0.2%) + Devarsh Thakkar 3 (0.2%) + Christophe Kerello 3 (0.2%) + Viacheslav Bocharov 3 (0.2%) + Emanuele Ghidoli 3 (0.2%) + Hari Nagalla 3 (0.2%) + Love Kumar 3 (0.2%) + Thomas Weißschuh 3 (0.2%) + Weijie Gao 3 (0.2%) + Dragan Simic 2 (0.1%) + Michael Trimarchi 2 (0.1%) + Patrick Delaunay 2 (0.1%) + Tony Dinh 2 (0.1%) + Sam Povilus 2 (0.1%) + H Bell 2 (0.1%) + Thinh Nguyen 2 (0.1%) + Benjamin Hahn 2 (0.1%) + Neha Malcom Francis 2 (0.1%) + Ian Roberts 2 (0.1%) + Sean Anderson 2 (0.1%) + Kamlesh Gurudasani 2 (0.1%) + Stefan Eichenberger 2 (0.1%) + Parth Pancholi 2 (0.1%) + Maksim Kiselev 2 (0.1%) + Christophe Roullier 2 (0.1%) + Hugo Dubois 2 (0.1%) + CASAUBON Jean Michel 2 (0.1%) + Ahelenia Ziemiańska 2 (0.1%) + Yasuharu Shibata 2 (0.1%) + Wan Yee Lau 2 (0.1%) + Vincent Stehlé 2 (0.1%) + Marcel Ziswiler 2 (0.1%) + Maxim Moskalets 2 (0.1%) + Sébastien Szymanski 2 (0.1%) + Tejas Bhumkar 2 (0.1%) + Bhupesh Sharma 2 (0.1%) + Colin McAllister 2 (0.1%) + Andy Yan 2 (0.1%) + Dasnavis Sabiya 2 (0.1%) + Stefan Bosch 2 (0.1%) + Frank Wunderlich 1 (0.1%) + Jiaxun Yang 1 (0.1%) + Ravi Minnikanti 1 (0.1%) + John Watts 1 (0.1%) + Heiko Schocher 1 (0.1%) + Thomas Perl 1 (0.1%) + Kristian Amlie 1 (0.1%) + Heiko Stuebner 1 (0.1%) + Anand Moon 1 (0.1%) + Alexander Sverdlin 1 (0.1%) + Aswath Govindraju 1 (0.1%) + Sam Day 1 (0.1%) + Boon Khai Ng 1 (0.1%) + William Zhang 1 (0.1%) + Jaehoon Chung 1 (0.1%) + Sam Edwards 1 (0.1%) + Linus Walleij 1 (0.1%) + Kishan Dudhatra 1 (0.1%) + Yu Chien Peter Lin 1 (0.1%) + Nitin Yadav 1 (0.1%) + Andrea Calabrese 1 (0.1%) + Lukasz Czechowski 1 (0.1%) + Finley Xiao 1 (0.1%) + Jason Zhu 1 (0.1%) + Maximilian Brune 1 (0.1%) + cmachida 1 (0.1%) + Hector Martin 1 (0.1%) + Anton Bambura 1 (0.1%) + Khem Raj 1 (0.1%) + Jianan Huang 1 (0.1%) + Charles Hardin 1 (0.1%) + Gireesh Hiremath 1 (0.1%) + Alexey Romanov 1 (0.1%) + Eugeniu Rosca 1 (0.1%) + Bruce Suen 1 (0.1%) + Kunihiko Hayashi 1 (0.1%) + Hugo Cornelis 1 (0.1%) + Vitor Soares 1 (0.1%) + Martyn Welch 1 (0.1%) + Manorit Chawdhry 1 (0.1%) + Jixiong Hu 1 (0.1%) + Pierre-Clément Tosi 1 (0.1%) + Hiago De Franco 1 (0.1%) + Petr Zejdl 1 (0.1%) + Łukasz Stelmach 1 (0.1%) + Ben Dooks 1 (0.1%) + Javier Viguera 1 (0.1%) + Josua Mayer 1 (0.1%) + James Hilliard 1 (0.1%) + Marjolaine Amate 1 (0.1%) + Vishal Sagar 1 (0.1%) + Manikanta Guntupalli 1 (0.1%) + Shubhangi Shrikrushna Mahalle 1 (0.1%) + Piotr Wojtaszczyk 1 (0.1%) + Kelly Hung 1 (0.1%) + Leon M. Busch-George 1 (0.1%) + Lukasz Wiecaszek 1 (0.1%) + Jit Loon Lim 1 (0.1%) + William Wu 1 (0.1%) + Ben Wolsieffer 1 (0.1%) + Elon Zhang 1 (0.1%) + Vignesh Raghavendra 1 (0.1%) + Maks Mishin 1 (0.1%) + Bob Wolff 1 (0.1%) + Romain Naour 1 (0.1%) + Dmitry Baryshkov 1 (0.1%) + Vishal Mahaveer 1 (0.1%) + Siddharth Vadapalli 1 (0.1%) + Ivan Orlov 1 (0.1%) + Nam Cao 1 (0.1%) + Massimiliano Minella 1 (0.1%) + BELOUARGA Mohamed 1 (0.1%) + Alexander Gendin 1 (0.1%) + Ivan Mikhaylov 1 (0.1%) + ==================================== ===== + + +.. table:: Developers with the most changed lines + :widths: auto + + ==================================== ===== + Name Count + ==================================== ===== + Tom Rini 2187616 (86.6%) + Jonas Karlman 69460 (2.8%) + Marek Vasut 53285 (2.1%) + Caleb Connolly 47393 (1.9%) + Apurva Nandan 26241 (1.0%) + Neil Armstrong 23816 (0.9%) + Tim Harvey 10971 (0.4%) + Christophe Leroy 10210 (0.4%) + Wadim Egorov 8248 (0.3%) + Bryan Brattlof 7039 (0.3%) + Tony Dinh 5540 (0.2%) + Marcel Ziswiler 5068 (0.2%) + Nathan Barrett-Morrison 4872 (0.2%) + Adam Ford 4867 (0.2%) + Sumit Garg 4743 (0.2%) + Andrew Davis 4066 (0.2%) + Quentin Schulz 3449 (0.1%) + Peng Fan 3071 (0.1%) + Sam Protsenko 3021 (0.1%) + Jit Loon Lim 2717 (0.1%) + MD Danish Anwar 2686 (0.1%) + Anand Moon 2526 (0.1%) + Svyatoslav Ryhel 2445 (0.1%) + Andy Yan 1978 (0.1%) + Peter Robinson 1907 (0.1%) + Boon Khai Ng 1709 (0.1%) + Arseniy Krasnov 1669 (0.1%) + Heinrich Schuchardt 1350 (0.1%) + Jagan Teki 1347 (0.1%) + Fabio Estevam 1209 (0.0%) + Ilias Apalodimas 1189 (0.0%) + Simon Glass 1137 (0.0%) + Roger Quadros 955 (0.0%) + Marek Behún 939 (0.0%) + Elon Zhang 889 (0.0%) + Kongyang Liu 846 (0.0%) + Mihai Sain 789 (0.0%) + Bhupesh Sharma 662 (0.0%) + Jonas Schwöbel 620 (0.0%) + Javier Martinez Canillas 597 (0.0%) + Michael Walle 505 (0.0%) + Eugene Uriev 501 (0.0%) + Christophe Kerello 479 (0.0%) + Chris Morgan 452 (0.0%) + Michal Simek 449 (0.0%) + Bhargav Raviprakash 388 (0.0%) + Janne Grunau 386 (0.0%) + Robert Marko 332 (0.0%) + Vignesh Raghavendra 332 (0.0%) + H Bell 291 (0.0%) + Yang Xiwen 278 (0.0%) + Bruce Suen 269 (0.0%) + Daniel Schultz 265 (0.0%) + Love Kumar 258 (0.0%) + Igor Opaniuk 219 (0.0%) + Raymond Mao 208 (0.0%) + Wan Yee Lau 206 (0.0%) + Sughosh Ganu 201 (0.0%) + Greg Malysa 200 (0.0%) + Patrice Chotard 199 (0.0%) + Masahisa Kojima 193 (0.0%) + Dasnavis Sabiya 189 (0.0%) + Neha Malcom Francis 183 (0.0%) + Jonathan Humphreys 173 (0.0%) + Anton Bambura 167 (0.0%) + Kelly Hung 164 (0.0%) + Andre Przywara 163 (0.0%) + Kamlesh Gurudasani 163 (0.0%) + Volodymyr Babchuk 147 (0.0%) + Parth Pancholi 146 (0.0%) + Piotr Wojtaszczyk 144 (0.0%) + Judith Mendez 131 (0.0%) + Joao Paulo Goncalves 131 (0.0%) + Leonard Anderweit 117 (0.0%) + BELOUARGA Mohamed 114 (0.0%) + Finley Xiao 109 (0.0%) + Jianan Huang 99 (0.0%) + Venkatesh Yadav Abbarapu 95 (0.0%) + Chen-Yu Tsai 92 (0.0%) + Mathieu Othacehe 92 (0.0%) + Michał Barnaś 86 (0.0%) + Lukasz Majewski 74 (0.0%) + Alexander Dahl 67 (0.0%) + Nishanth Menon 66 (0.0%) + Conor Dooley 64 (0.0%) + Francesco Dolcini 64 (0.0%) + Maksim Kiselev 64 (0.0%) + Linus Walleij 64 (0.0%) + Weizhao Ouyang 63 (0.0%) + Yannic Moog 61 (0.0%) + Weijie Gao 60 (0.0%) + Ben Dooks 60 (0.0%) + Leo Yu-Chi Liang 59 (0.0%) + Fiona Klute 56 (0.0%) + Alexey Romanov 56 (0.0%) + Jim Liu 55 (0.0%) + Devarsh Thakkar 53 (0.0%) + Colin McAllister 53 (0.0%) + Maxim Moskalets 51 (0.0%) + Josua Mayer 50 (0.0%) + Ivan Mikhaylov 50 (0.0%) + Ian Roberts 47 (0.0%) + Christophe Roullier 44 (0.0%) + Vincent Stehlé 44 (0.0%) + Nam Cao 43 (0.0%) + Ben Wolsieffer 42 (0.0%) + Felipe Balbi 41 (0.0%) + Vishal Sagar 40 (0.0%) + Hanyuan Zhao 38 (0.0%) + Hugo Dubois 37 (0.0%) + Christopher Obbard 34 (0.0%) + Aniket Limaye 33 (0.0%) + Romain Naour 33 (0.0%) + Heiko Stuebner 31 (0.0%) + Emanuele Ghidoli 30 (0.0%) + Stefan Bosch 30 (0.0%) + mwleeds@mailtundra.com 28 (0.0%) + Michael Trimarchi 23 (0.0%) + Thomas Weißschuh 22 (0.0%) + Thinh Nguyen 21 (0.0%) + Nitin Yadav 19 (0.0%) + Jixiong Hu 18 (0.0%) + Marjolaine Amate 18 (0.0%) + Dan Carpenter 17 (0.0%) + Stefan Eichenberger 17 (0.0%) + Sam Povilus 15 (0.0%) + Sébastien Szymanski 15 (0.0%) + Massimiliano Minella 15 (0.0%) + Mattijs Korpershoek 14 (0.0%) + Sean Anderson 14 (0.0%) + Lukas Funke 13 (0.0%) + Yasuharu Shibata 13 (0.0%) + Sam Edwards 13 (0.0%) + Kunihiko Hayashi 13 (0.0%) + Jacky Chou 12 (0.0%) + Vitor Soares 12 (0.0%) + Ye Li 11 (0.0%) + Udit Kumar 11 (0.0%) + Hiago De Franco 11 (0.0%) + Hari Nagalla 10 (0.0%) + Maximilian Brune 10 (0.0%) + Leon M. Busch-George 10 (0.0%) + Viacheslav Bocharov 9 (0.0%) + Benjamin Hahn 9 (0.0%) + cmachida 9 (0.0%) + James Hilliard 9 (0.0%) + Lukasz Wiecaszek 9 (0.0%) + Charles Hardin 8 (0.0%) + Petr Zejdl 8 (0.0%) + Vishal Mahaveer 8 (0.0%) + Sam Day 7 (0.0%) + Manorit Chawdhry 7 (0.0%) + Łukasz Stelmach 7 (0.0%) + Andrea Calabrese 6 (0.0%) + Siddharth Vadapalli 6 (0.0%) + CASAUBON Jean Michel 5 (0.0%) + Ahelenia Ziemiańska 5 (0.0%) + Ravi Minnikanti 5 (0.0%) + Hugo Cornelis 5 (0.0%) + Bob Wolff 5 (0.0%) + Alexander Gendin 5 (0.0%) + Dragan Simic 4 (0.0%) + Aswath Govindraju 4 (0.0%) + Kishan Dudhatra 4 (0.0%) + Khem Raj 4 (0.0%) + Tejas Bhumkar 3 (0.0%) + Heiko Schocher 3 (0.0%) + Lukasz Czechowski 3 (0.0%) + Jason Zhu 3 (0.0%) + Maks Mishin 3 (0.0%) + Patrick Delaunay 2 (0.0%) + Jiaxun Yang 2 (0.0%) + William Zhang 2 (0.0%) + Eugeniu Rosca 2 (0.0%) + Pierre-Clément Tosi 2 (0.0%) + Javier Viguera 2 (0.0%) + Manikanta Guntupalli 2 (0.0%) + Dmitry Baryshkov 2 (0.0%) + Frank Wunderlich 1 (0.0%) + John Watts 1 (0.0%) + Thomas Perl 1 (0.0%) + Kristian Amlie 1 (0.0%) + Alexander Sverdlin 1 (0.0%) + Jaehoon Chung 1 (0.0%) + Yu Chien Peter Lin 1 (0.0%) + Hector Martin 1 (0.0%) + Gireesh Hiremath 1 (0.0%) + Martyn Welch 1 (0.0%) + Shubhangi Shrikrushna Mahalle 1 (0.0%) + William Wu 1 (0.0%) + Ivan Orlov 1 (0.0%) + ==================================== ===== + + +.. table:: Developers with the most lines removed + :widths: auto + + ==================================== ===== + Name Count + ==================================== ===== + Jonas Karlman 59892 (24.7%) + Marek Vasut 51731 (21.3%) + Neil Armstrong 19240 (7.9%) + Tim Harvey 10397 (4.3%) + Tony Dinh 5465 (2.3%) + Marcel Ziswiler 5061 (2.1%) + Adam Ford 4818 (2.0%) + Andrew Davis 3493 (1.4%) + Peng Fan 2778 (1.1%) + Anand Moon 2523 (1.0%) + Sam Protsenko 2273 (0.9%) + Peter Robinson 1907 (0.8%) + Fabio Estevam 1185 (0.5%) + Sumit Garg 845 (0.3%) + Javier Martinez Canillas 582 (0.2%) + Michael Walle 494 (0.2%) + Chen-Yu Tsai 80 (0.0%) + Igor Opaniuk 72 (0.0%) + Linus Walleij 61 (0.0%) + Francesco Dolcini 36 (0.0%) + Sam Edwards 12 (0.0%) + Ben Wolsieffer 11 (0.0%) + Hiago De Franco 11 (0.0%) + Kunihiko Hayashi 10 (0.0%) + Colin McAllister 7 (0.0%) + Heiko Schocher 3 (0.0%) + Dan Carpenter 2 (0.0%) + Dragan Simic 2 (0.0%) + Jiaxun Yang 1 (0.0%) + William Zhang 1 (0.0%) + ==================================== ===== + + +.. table:: Developers with the most signoffs (total 231) + :widths: auto + + ==================================== ===== + Name Count + ==================================== ===== + Caleb Connolly 41 (17.7%) + Mattijs Korpershoek 19 (8.2%) + Michal Simek 15 (6.5%) + Dario Binacchi 11 (4.8%) + Chris Morgan 10 (4.3%) + Ilias Apalodimas 10 (4.3%) + Svyatoslav Ryhel 10 (4.3%) + Hari Nagalla 8 (3.5%) + Minkyu Kang 7 (3.0%) + Alexander Sverdlin 6 (2.6%) + Ian Roberts 6 (2.6%) + Greg Malysa 5 (2.2%) + Nathan Barrett-Morrison 5 (2.2%) + Manorit Chawdhry 4 (1.7%) + Dasnavis Sabiya 4 (1.7%) + Christophe Leroy 4 (1.7%) + Apurva Nandan 4 (1.7%) + Neil Armstrong 3 (1.3%) + Francesco Dolcini 3 (1.3%) + Vasileios Bimpikas 3 (1.3%) + Utsav Agarwal 3 (1.3%) + Arturs Artamonovs 3 (1.3%) + Neha Malcom Francis 3 (1.3%) + Janne Grunau 3 (1.3%) + Heinrich Schuchardt 3 (1.3%) + Jonas Karlman 2 (0.9%) + Marek Vasut 2 (0.9%) + Sumit Garg 2 (0.9%) + Dhruva Gole 2 (0.9%) + Kever Yang 2 (0.9%) + Ravi Gunasekaran 2 (0.9%) + Parvathi Bhogaraju 2 (0.9%) + Jayesh Choudhary 2 (0.9%) + Bo-Cun Chen 2 (0.9%) + Daniel Schultz 2 (0.9%) + Jonas Schwöbel 2 (0.9%) + Bryan Brattlof 2 (0.9%) + Peng Fan 1 (0.4%) + Fabio Estevam 1 (0.4%) + Stefan Roese 1 (0.4%) + Greg Kroah-Hartman 1 (0.4%) + Angelo Dureghello 1 (0.4%) + Anatolij Gustschin 1 (0.4%) + Vaishnav Achath 1 (0.4%) + Ashok Reddy Soma 1 (0.4%) + Dong Huang 1 (0.4%) + Shubhangi Shrikrushna Mahalle 1 (0.4%) + Felipe Balbi 1 (0.4%) + Judith Mendez 1 (0.4%) + Patrice Chotard 1 (0.4%) + Quentin Schulz 1 (0.4%) + ==================================== ===== + + +.. table:: Developers with the most reviews (total 1025) + :widths: auto + + ==================================== ===== + Name Count + ==================================== ===== + Kever Yang 223 (21.8%) + Neil Armstrong 71 (6.9%) + Sumit Garg 70 (6.8%) + Dragan Simic 45 (4.4%) + Ilias Apalodimas 42 (4.1%) + Heinrich Schuchardt 35 (3.4%) + Patrick Delaunay 33 (3.2%) + Quentin Schulz 32 (3.1%) + Mattijs Korpershoek 31 (3.0%) + Leo Yu-Chi Liang 31 (3.0%) + Marek Vasut 28 (2.7%) + Jaehoon Chung 28 (2.7%) + Patrice Chotard 22 (2.1%) + Caleb Connolly 21 (2.0%) + Tom Rini 21 (2.0%) + Stefan Roese 20 (2.0%) + Neha Malcom Francis 17 (1.7%) + Simon Glass 16 (1.6%) + Peter Robinson 13 (1.3%) + Igor Opaniuk 13 (1.3%) + Thierry Reding 12 (1.2%) + Neal Gompa 11 (1.1%) + Heiko Schocher 9 (0.9%) + Michael Trimarchi 9 (0.9%) + Roger Quadros 9 (0.9%) + Tony Dinh 8 (0.8%) + Christopher Obbard 8 (0.8%) + Jonas Karlman 6 (0.6%) + Dhruva Gole 6 (0.6%) + E Shattow 6 (0.6%) + Christophe ROULLIER 6 (0.6%) + Richard Henderson 6 (0.6%) + Nishanth Menon 6 (0.6%) + Ravi Gunasekaran 5 (0.5%) + Teresa Remmet 5 (0.5%) + Mark Kettenis 5 (0.5%) + Paul Barker 5 (0.5%) + Udit Kumar 5 (0.5%) + Sean Anderson 5 (0.5%) + Fabio Estevam 4 (0.4%) + Sam Protsenko 4 (0.4%) + Enric Balletbo i Serra 4 (0.4%) + Laurent Pinchart 4 (0.4%) + Bryan Brattlof 3 (0.3%) + Andrew Davis 3 (0.3%) + Sam Edwards 3 (0.3%) + Dan Carpenter 3 (0.3%) + William Zhang 3 (0.3%) + Chris Packham 3 (0.3%) + Nikhil M Jain 3 (0.3%) + Tianling Shen 3 (0.3%) + Anatolij Gustschin 2 (0.2%) + CASAUBON Jean Michel 2 (0.2%) + Ian Ray 2 (0.2%) + Oleksandr Suvorov 2 (0.2%) + Bin Meng 2 (0.2%) + Tien Fong Chee 2 (0.2%) + Minkyu Kang 1 (0.1%) + Tim Harvey 1 (0.1%) + Adam Ford 1 (0.1%) + Linus Walleij 1 (0.1%) + Eddie James 1 (0.1%) + Guillaume La Roque 1 (0.1%) + Julien Masson 1 (0.1%) + Miquel Raynal 1 (0.1%) + Tim Lunn 1 (0.1%) + Cédric Le Goater 1 (0.1%) + Biju Das 1 (0.1%) + Holger Brunck 1 (0.1%) + Otavio Salvador 1 (0.1%) + Chia-Wei Wang 1 (0.1%) + Keerthy 1 (0.1%) + Philipp Tomsich 1 (0.1%) + Gao Xiang 1 (0.1%) + Frieder Schrempf 1 (0.1%) + Dmitrii Merkurev 1 (0.1%) + Marc Zyngier 1 (0.1%) + Ramon Fried 1 (0.1%) + Jai Luthra 1 (0.1%) + Alexander Dahl 1 (0.1%) + Heiko Stuebner 1 (0.1%) + Hugo Dubois 1 (0.1%) + Weizhao Ouyang 1 (0.1%) + Andre Przywara 1 (0.1%) + Mathieu Othacehe 1 (0.1%) + Wadim Egorov 1 (0.1%) + ==================================== ===== + + +.. table:: Developers with the most test credits (total 166) + :widths: auto + + ==================================== ===== + Name Count + ==================================== ===== + Sumit Garg 19 (11.4%) + Marcel Ziswiler 15 (9.0%) + Svyatoslav Ryhel 10 (6.0%) + Mattijs Korpershoek 9 (5.4%) + Ion Agorria 9 (5.4%) + Tim Harvey 7 (4.2%) + Adam Ford 7 (4.2%) + Andreas Westman Dorcsak 7 (4.2%) + Sam Edwards 6 (3.6%) + Agneli 6 (3.6%) + Robert Eckelmann 6 (3.6%) + Simon Glass 5 (3.0%) + Teresa Remmet 5 (3.0%) + Fabio Estevam 5 (3.0%) + Ilias Apalodimas 4 (2.4%) + Jonathan Humphreys 4 (2.4%) + Neil Armstrong 3 (1.8%) + Paul Barker 3 (1.8%) + Heiko Stuebner 3 (1.8%) + Christian Gmeiner 3 (1.8%) + Heinrich Schuchardt 2 (1.2%) + Caleb Connolly 2 (1.2%) + Tony Dinh 2 (1.2%) + Hiago De Franco 2 (1.2%) + Robert Nelson 2 (1.2%) + Leo Yu-Chi Liang 1 (0.6%) + Jaehoon Chung 1 (0.6%) + Patrice Chotard 1 (0.6%) + Dhruva Gole 1 (0.6%) + E Shattow 1 (0.6%) + Ravi Gunasekaran 1 (0.6%) + Bryan Brattlof 1 (0.6%) + Andrew Davis 1 (0.6%) + Tim Lunn 1 (0.6%) + Otavio Salvador 1 (0.6%) + Wadim Egorov 1 (0.6%) + Michal Simek 1 (0.6%) + Alexander Sverdlin 1 (0.6%) + Jonas Schwöbel 1 (0.6%) + Judith Mendez 1 (0.6%) + Michael Walle 1 (0.6%) + Patrick Bruenn 1 (0.6%) + Jethro Bull 1 (0.6%) + Kamlesh Gurudasani 1 (0.6%) + Robert Marko 1 (0.6%) + ==================================== ===== + + +.. table:: Developers who gave the most tested-by credits (total 166) + :widths: auto + + ==================================== ===== + Name Count + ==================================== ===== + Svyatoslav Ryhel 36 (21.7%) + Caleb Connolly 23 (13.9%) + Sumit Garg 15 (9.0%) + Apurva Nandan 12 (7.2%) + Marek Vasut 10 (6.0%) + Ilias Apalodimas 6 (3.6%) + Quentin Schulz 6 (3.6%) + Tom Rini 6 (3.6%) + Neil Armstrong 5 (3.0%) + Andrew Davis 5 (3.0%) + Leonard Anderweit 5 (3.0%) + Jonas Schwöbel 4 (2.4%) + Fabio Estevam 3 (1.8%) + Heinrich Schuchardt 3 (1.8%) + Bryan Brattlof 3 (1.8%) + Alexander Sverdlin 2 (1.2%) + Dasnavis Sabiya 2 (1.2%) + Pierre-Clément Tosi 2 (1.2%) + Yasuharu Shibata 2 (1.2%) + Josua Mayer 2 (1.2%) + Masahisa Kojima 2 (1.2%) + Tim Harvey 1 (0.6%) + Simon Glass 1 (0.6%) + Tony Dinh 1 (0.6%) + Judith Mendez 1 (0.6%) + Igor Opaniuk 1 (0.6%) + Roger Quadros 1 (0.6%) + Nishanth Menon 1 (0.6%) + Anand Moon 1 (0.6%) + Sébastien Szymanski 1 (0.6%) + Maksim Kiselev 1 (0.6%) + Ben Dooks 1 (0.6%) + Yang Xiwen 1 (0.6%) + ==================================== ===== + + +.. table:: Developers with the most report credits (total 27) + :widths: auto + + ==================================== ===== + Name Count + ==================================== ===== + E Shattow 4 (14.8%) + Sumit Garg 2 (7.4%) + Jonas Karlman 2 (7.4%) + Laurent Pinchart 2 (7.4%) + Suman Anna 2 (7.4%) + Marek Vasut 1 (3.7%) + Andrew Davis 1 (3.7%) + Heinrich Schuchardt 1 (3.7%) + Tim Harvey 1 (3.7%) + Simon Glass 1 (3.7%) + Jonathan Humphreys 1 (3.7%) + Patrice Chotard 1 (3.7%) + Dhruva Gole 1 (3.7%) + Dan Carpenter 1 (3.7%) + Christophe Leroy 1 (3.7%) + Eugeniu Rosca 1 (3.7%) + Janusz Dziedzic 1 (3.7%) + David Virag 1 (3.7%) + Jan Kiszka 1 (3.7%) + Aniket Limaye 1 (3.7%) + ==================================== ===== + + +.. table:: Developers who gave the most report credits (total 27) + :widths: auto + + ==================================== ===== + Name Count + ==================================== ===== + Heinrich Schuchardt 6 (22.2%) + Neha Malcom Francis 3 (11.1%) + Marek Vasut 2 (7.4%) + Caleb Connolly 2 (7.4%) + Tom Rini 2 (7.4%) + Fabio Estevam 2 (7.4%) + Bryan Brattlof 2 (7.4%) + Andrew Davis 1 (3.7%) + Ilias Apalodimas 1 (3.7%) + Quentin Schulz 1 (3.7%) + Yasuharu Shibata 1 (3.7%) + Nishanth Menon 1 (3.7%) + Sam Protsenko 1 (3.7%) + Felipe Balbi 1 (3.7%) + Alexander Gendin 1 (3.7%) + ==================================== ===== + + +.. table:: Top changeset contributors by employer + :widths: auto + + ==================================== ===== + Name Count + ==================================== ===== + (Unknown) 645 (39.7%) + Konsulko Group 324 (20.0%) + Linaro 201 (12.4%) + Texas Instruments 119 (7.3%) + Google LLC 50 (3.1%) + AMD 43 (2.6%) + ST Microelectronics 39 (2.4%) + DENX Software Engineering 34 (2.1%) + Phytec 27 (1.7%) + Renesas Electronics 25 (1.5%) + Toradex 19 (1.2%) + NXP 17 (1.0%) + Edgeble AI Technologies Pvt. Ltd. 14 (0.9%) + ARM 13 (0.8%) + Intel 9 (0.6%) + Amarula Solutions 7 (0.4%) + BayLibre SAS 6 (0.4%) + Socionext Inc. 6 (0.4%) + Collabora Ltd. 5 (0.3%) + Red Hat 4 (0.2%) + linutronix 4 (0.2%) + Rockchip 4 (0.2%) + Weidmüller Interface GmbH & Co. KG 3 (0.2%) + Samsung 2 (0.1%) + Broadcom 1 (0.1%) + Digi International 1 (0.1%) + Marvell 1 (0.1%) + Siemens 1 (0.1%) + ==================================== ===== + + +.. table:: Top lines changed by employer + :widths: auto + + ==================================== ===== + Name Count + ==================================== ===== + Konsulko Group 2187616 (86.6%) + (Unknown) 130949 (5.2%) + Linaro 80577 (3.2%) + Renesas Electronics 52143 (2.1%) + Texas Instruments 41420 (1.6%) + Phytec 8700 (0.3%) + Toradex 5479 (0.2%) + Intel 4682 (0.2%) + Edgeble AI Technologies Pvt. Ltd. 3856 (0.2%) + NXP 3082 (0.1%) + DENX Software Engineering 1283 (0.1%) + Google LLC 1225 (0.0%) + Rockchip 1002 (0.0%) + AMD 863 (0.0%) + ST Microelectronics 724 (0.0%) + Red Hat 597 (0.0%) + ARM 207 (0.0%) + Socionext Inc. 206 (0.0%) + linutronix 65 (0.0%) + Amarula Solutions 46 (0.0%) + Collabora Ltd. 35 (0.0%) + BayLibre SAS 14 (0.0%) + Weidmüller Interface GmbH & Co. KG 13 (0.0%) + Samsung 8 (0.0%) + Marvell 5 (0.0%) + Broadcom 2 (0.0%) + Digi International 2 (0.0%) + Siemens 1 (0.0%) + ==================================== ===== + + +.. table:: Employers with the most signoffs (total 231) + :widths: auto + + ==================================== ===== + Name Count + ==================================== ===== + (Unknown) 56 (24.2%) + Linaro 56 (24.2%) + Texas Instruments 33 (14.3%) + BayLibre SAS 19 (8.2%) + AMD 17 (7.4%) + Amarula Solutions 11 (4.8%) + Analog Devices 9 (3.9%) + Samsung 7 (3.0%) + Siemens 6 (2.6%) + DENX Software Engineering 4 (1.7%) + Toradex 3 (1.3%) + Canonical 3 (1.3%) + Phytec 2 (0.9%) + Rockchip 2 (0.9%) + Intel 1 (0.4%) + NXP 1 (0.4%) + ST Microelectronics 1 (0.4%) + ==================================== ===== + + +.. table:: Employers with the most hackers (total 195) + :widths: auto + + ==================================== ===== + Name Count + ==================================== ===== + (Unknown) 98 (50.3%) + Texas Instruments 20 (10.3%) + Linaro 10 (5.1%) + AMD 8 (4.1%) + Toradex 8 (4.1%) + Phytec 5 (2.6%) + Intel 5 (2.6%) + DENX Software Engineering 4 (2.1%) + Rockchip 4 (2.1%) + ST Microelectronics 4 (2.1%) + Amarula Solutions 3 (1.5%) + Google LLC 3 (1.5%) + Samsung 2 (1.0%) + NXP 2 (1.0%) + Edgeble AI Technologies Pvt. Ltd. 2 (1.0%) + ARM 2 (1.0%) + Socionext Inc. 2 (1.0%) + linutronix 2 (1.0%) + Collabora Ltd. 2 (1.0%) + BayLibre SAS 1 (0.5%) + Siemens 1 (0.5%) + Konsulko Group 1 (0.5%) + Renesas Electronics 1 (0.5%) + Red Hat 1 (0.5%) + Weidmüller Interface GmbH & Co. KG 1 (0.5%) + Marvell 1 (0.5%) + Broadcom 1 (0.5%) + Digi International 1 (0.5%) + ==================================== ===== + diff --git a/doc/usage/fit/beaglebone_vboot.rst b/doc/usage/fit/beaglebone_vboot.rst index cd6bb141910..1298ba1ae08 100644 --- a/doc/usage/fit/beaglebone_vboot.rst +++ b/doc/usage/fit/beaglebone_vboot.rst @@ -67,18 +67,20 @@ a. Set up the environment variable to point to your toolchain. You will need export CROSS_COMPILE=arm-linux-gnueabi- -b. Configure and build U-Boot with verified boot enabled:: +b. Configure and build U-Boot with verified boot enabled. Note that we use the +am335x_evm target since it covers all boards based on the AM335x evaluation +board:: export UBOOT=/path/to/u-boot cd $UBOOT # You can add -j10 if you have 10 CPUs to make it faster - make O=b/am335x_boneblack_vboot am335x_boneblack_vboot_config all - export UOUT=$UBOOT/b/am335x_boneblack_vboot + make O=b/am335x_evm am335x_evm_config all + export UOUT=$UBOOT/b/am335x_evm c. You will now have a U-Boot image:: - file b/am335x_boneblack_vboot/u-boot-dtb.img - b/am335x_boneblack_vboot/u-boot-dtb.img: u-boot legacy uImage, + file b/am335x_evm/u-boot-dtb.img + b/am335x_evm/u-boot-dtb.img: u-boot legacy uImage, U-Boot 2014.07-rc2-00065-g2f69f8, Firmware/ARM, Firmware Image (Not compressed), 395375 bytes, Sat May 31 16:19:04 2014, Load Address: 0x80800000, Entry Point: 0x00000000, @@ -466,7 +468,7 @@ the private key that you signed with so that it can verify any kernels that you sign:: cd $UBOOT - make O=b/am335x_boneblack_vboot EXT_DTB=${WORK}/am335x-boneblack-pubkey.dtb + make O=b/am335x_evm EXT_DTB=${WORK}/am335x-boneblack-pubkey.dtb Here we are overriding the normal device tree file with our one, which contains the public key. @@ -597,14 +599,11 @@ Further Improvements Several of the steps here can be easily automated. In particular it would be capital if signing and packaging a kernel were easy, perhaps a simple make -target in the kernel. +target in the kernel. A starting point for this is the 'make image.fit' target +for ARM64 in Linux from v6.9 onwards. Some mention of how to use multiple .dtb files in a FIT might be useful. -U-Boot's verified boot mechanism has not had a robust and independent security -review. Such a review should look at the implementation and its resistance to -attacks. - Perhaps the verified boot feature could be integrated into the Amstrom distribution. diff --git a/drivers/power/regulator/regulator-uclass.c b/drivers/power/regulator/regulator-uclass.c index 66fd531da04..88a8525b3c4 100644 --- a/drivers/power/regulator/regulator-uclass.c +++ b/drivers/power/regulator/regulator-uclass.c @@ -517,7 +517,7 @@ int regulators_enable_boot_on(bool verbose) dev; uclass_next_device(&dev)) { ret = regulator_autoset(dev); - if (ret == -EMEDIUMTYPE) { + if (ret == -EMEDIUMTYPE || ret == -EALREADY) { ret = 0; continue; } diff --git a/include/u-boot/zlib.h b/include/u-boot/zlib.h index ee19f460958..a33cc8780d3 100644 --- a/include/u-boot/zlib.h +++ b/include/u-boot/zlib.h @@ -49,6 +49,9 @@ extern "C" { #endif +#define ZLIB_VERSION "1.2.3" +#define ZLIB_VERNUM 0x1230 + /* #include "zconf.h" */ /* included directly here */ /* zconf.h -- configuration of the zlib compression library * Copyright (C) 1995-2005 Jean-loup Gailly. @@ -481,6 +484,7 @@ typedef gz_header FAR *gz_headerp; #define Z_DATA_ERROR (-3) #define Z_MEM_ERROR (-4) #define Z_BUF_ERROR (-5) +#define Z_VERSION_ERROR (-6) /* Return codes for the compression/decompression functions. Negative * values are errors, positive values are used for special but normal events. */ @@ -519,11 +523,11 @@ typedef gz_header FAR *gz_headerp; ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - int stream_size)); + const char *version, int stream_size)); ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, int windowBits, int memLevel, - int strategy, + int strategy, const char *version, int stream_size)); ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, @@ -549,7 +553,7 @@ ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - int stream_size)); + const char *version, int stream_size)); ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); /* inflate decompresses as much data as possible, and stops when the input @@ -739,11 +743,11 @@ ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, */ ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - int stream_size)); + const char *version, int stream_size)); #define inflateInit(strm) \ - inflateInit_((strm), sizeof(z_stream)) + inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) #define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), sizeof(z_stream)) + inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) #if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) struct internal_state {int dummy;}; /* hack for buggy compilers */ diff --git a/lib/gzip.c b/lib/gzip.c index a9a3df524de..5d9c19598d5 100644 --- a/lib/gzip.c +++ b/lib/gzip.c @@ -67,7 +67,7 @@ int zzip(void *dst, unsigned long *lenp, unsigned char *src, r = deflateInit2_(&s, Z_BEST_SPEED, Z_DEFLATED, window, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, - sizeof(z_stream)); + ZLIB_VERSION, sizeof(z_stream)); if (r != Z_OK) { printf ("Error: deflateInit2_() returned %d\n", r); return -1; diff --git a/lib/zlib/deflate.c b/lib/zlib/deflate.c index 7e1ed4f9b20..4549f4dc12a 100644 --- a/lib/zlib/deflate.c +++ b/lib/zlib/deflate.c @@ -196,30 +196,37 @@ struct static_tree_desc_s {int dummy;}; /* for buggy compilers */ zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); /* ========================================================================= */ -int ZEXPORT deflateInit_(strm, level, stream_size) +int ZEXPORT deflateInit_(strm, level, version, stream_size) z_streamp strm; int level; + const char *version; int stream_size; { return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, - Z_DEFAULT_STRATEGY, stream_size); + Z_DEFAULT_STRATEGY, version, stream_size); /* To do: ignore strm->next_in if we use it as window */ } /* ========================================================================= */ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, - stream_size) + version, stream_size) z_streamp strm; int level; int method; int windowBits; int memLevel; int strategy; + const char *version; int stream_size; { deflate_state *s; int wrap = 1; + static const char my_version[] = ZLIB_VERSION; + if (version == Z_NULL || version[0] != my_version[0] || + stream_size != sizeof(z_stream)) { + return Z_VERSION_ERROR; + } if (strm == Z_NULL) return Z_STREAM_ERROR; strm->msg = Z_NULL; diff --git a/lib/zlib/inffast.c b/lib/zlib/inffast.c index 5e2a65ad4d2..e3c7f3b892b 100644 --- a/lib/zlib/inffast.c +++ b/lib/zlib/inffast.c @@ -1,5 +1,5 @@ /* inffast.c -- fast decoding - * Copyright (C) 1995-2008, 2010, 2013 Mark Adler + * Copyright (C) 1995-2004 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -12,6 +12,25 @@ #ifndef ASMINF +/* Allow machine dependent optimization for post-increment or pre-increment. + Based on testing to date, + Pre-increment preferred for: + - PowerPC G3 (Adler) + - MIPS R5000 (Randers-Pehrson) + Post-increment preferred for: + - none + No measurable difference: + - Pentium III (Anderson) + - M68060 (Nikl) + */ +#ifdef POSTINC +# define OFF 0 +# define PUP(a) *(a)++ +#else +# define OFF 1 +# define PUP(a) *++(a) +#endif + /* Decode literal, length, and distance codes and write out the resulting literal and match bytes until either not enough input or output is @@ -47,13 +66,12 @@ requires strm->avail_out >= 258 for each loop to avoid checking for output space. */ -void ZLIB_INTERNAL inflate_fast(strm, start) -z_streamp strm; -unsigned start; /* inflate()'s starting value for strm->avail_out */ +void inflate_fast(z_streamp strm, unsigned start) +/* start: inflate()'s starting value for strm->avail_out */ { struct inflate_state FAR *state; - z_const unsigned char FAR *in; /* local strm->next_in */ - z_const unsigned char FAR *last; /* have enough input while in < last */ + unsigned char FAR *in; /* local strm->next_in */ + unsigned char FAR *last; /* while in < last, enough input available */ unsigned char FAR *out; /* local strm->next_out */ unsigned char FAR *beg; /* inflate()'s initial strm->next_out */ unsigned char FAR *end; /* while out < end, enough space available */ @@ -62,7 +80,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ #endif unsigned wsize; /* window size or zero if not using window */ unsigned whave; /* valid bytes in the window */ - unsigned wnext; /* window write index */ + unsigned write; /* window write index */ unsigned char FAR *window; /* allocated sliding window, if wsize != 0 */ unsigned long hold; /* local strm->hold */ unsigned bits; /* local strm->bits */ @@ -70,7 +88,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ code const FAR *dcode; /* local strm->distcode */ unsigned lmask; /* mask for first level of length codes */ unsigned dmask; /* mask for first level of distance codes */ - code here; /* retrieved table entry */ + code this; /* retrieved table entry */ unsigned op; /* code bits, operation, extra bits, or */ /* window position, window bytes to copy */ unsigned len; /* match length, unused bytes */ @@ -79,7 +97,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ /* copy state to local variables */ state = (struct inflate_state FAR *)strm->state; - in = strm->next_in; + in = strm->next_in - OFF; last = in + (strm->avail_in - 5); if (in > last && strm->avail_in > 5) { /* @@ -89,7 +107,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ strm->avail_in = 0xffffffff - (uintptr_t)in; last = in + (strm->avail_in - 5); } - out = strm->next_out; + out = strm->next_out - OFF; beg = out - (start - strm->avail_out); end = out + (strm->avail_out - 257); #ifdef INFLATE_STRICT @@ -97,7 +115,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ #endif wsize = state->wsize; whave = state->whave; - wnext = state->wnext; + write = state->write; window = state->window; hold = state->hold; bits = state->bits; @@ -110,29 +128,29 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ input data or output space */ do { if (bits < 15) { - hold += (unsigned long)(*in++) << bits; + hold += (unsigned long)(PUP(in)) << bits; bits += 8; - hold += (unsigned long)(*in++) << bits; + hold += (unsigned long)(PUP(in)) << bits; bits += 8; } - here = lcode[hold & lmask]; + this = lcode[hold & lmask]; dolen: - op = (unsigned)(here.bits); + op = (unsigned)(this.bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(this.op); if (op == 0) { /* literal */ - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ? "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); - *out++ = (unsigned char)(here.val); + "inflate: literal 0x%02x\n", this.val)); + PUP(out) = (unsigned char)(this.val); } else if (op & 16) { /* length base */ - len = (unsigned)(here.val); + len = (unsigned)(this.val); op &= 15; /* number of extra bits */ if (op) { if (bits < op) { - hold += (unsigned long)(*in++) << bits; + hold += (unsigned long)(PUP(in)) << bits; bits += 8; } len += (unsigned)hold & ((1U << op) - 1); @@ -141,25 +159,25 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ } Tracevv((stderr, "inflate: length %u\n", len)); if (bits < 15) { - hold += (unsigned long)(*in++) << bits; + hold += (unsigned long)(PUP(in)) << bits; bits += 8; - hold += (unsigned long)(*in++) << bits; + hold += (unsigned long)(PUP(in)) << bits; bits += 8; } - here = dcode[hold & dmask]; + this = dcode[hold & dmask]; dodist: - op = (unsigned)(here.bits); + op = (unsigned)(this.bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(this.op); if (op & 16) { /* distance base */ - dist = (unsigned)(here.val); + dist = (unsigned)(this.val); op &= 15; /* number of extra bits */ if (bits < op) { - hold += (unsigned long)(*in++) << bits; + hold += (unsigned long)(PUP(in)) << bits; bits += 8; if (bits < op) { - hold += (unsigned long)(*in++) << bits; + hold += (unsigned long)(PUP(in)) << bits; bits += 8; } } @@ -178,80 +196,108 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ if (dist > op) { /* see if copy from window */ op = dist - op; /* distance back in window */ if (op > whave) { - strm->msg = - (char *)"invalid distance too far back"; + strm->msg = (char *)"invalid distance too far back"; state->mode = BAD; break; } - from = window; - if (wnext == 0) { /* very common case */ + from = window - OFF; + if (write == 0) { /* very common case */ from += wsize - op; if (op < len) { /* some from window */ len -= op; do { - *out++ = *from++; + PUP(out) = PUP(from); } while (--op); from = out - dist; /* rest from output */ } } - else if (wnext < op) { /* wrap around window */ - from += wsize + wnext - op; - op -= wnext; + else if (write < op) { /* wrap around window */ + from += wsize + write - op; + op -= write; if (op < len) { /* some from end of window */ len -= op; do { - *out++ = *from++; + PUP(out) = PUP(from); } while (--op); - from = window; - if (wnext < len) { /* some from start of window */ - op = wnext; + from = window - OFF; + if (write < len) { /* some from start of window */ + op = write; len -= op; do { - *out++ = *from++; + PUP(out) = PUP(from); } while (--op); from = out - dist; /* rest from output */ } } } else { /* contiguous in window */ - from += wnext - op; + from += write - op; if (op < len) { /* some from window */ len -= op; do { - *out++ = *from++; + PUP(out) = PUP(from); } while (--op); from = out - dist; /* rest from output */ } } while (len > 2) { - *out++ = *from++; - *out++ = *from++; - *out++ = *from++; + PUP(out) = PUP(from); + PUP(out) = PUP(from); + PUP(out) = PUP(from); len -= 3; } if (len) { - *out++ = *from++; + PUP(out) = PUP(from); if (len > 1) - *out++ = *from++; + PUP(out) = PUP(from); } } else { + unsigned short *sout; + unsigned long loops; + from = out - dist; /* copy direct from output */ - do { /* minimum length is three */ - *out++ = *from++; - *out++ = *from++; - *out++ = *from++; - len -= 3; - } while (len > 2); - if (len) { - *out++ = *from++; - if (len > 1) - *out++ = *from++; - } + /* minimum length is three */ + /* Align out addr */ + if (!((long)(out - 1 + OFF) & 1)) { + PUP(out) = PUP(from); + len--; + } + sout = (unsigned short *)(out - OFF); + if (dist > 2 ) { + unsigned short *sfrom; + + sfrom = (unsigned short *)(from - OFF); + loops = len >> 1; + do + PUP(sout) = get_unaligned(++sfrom); + while (--loops); + out = (unsigned char *)sout + OFF; + from = (unsigned char *)sfrom + OFF; + } else { /* dist == 1 or dist == 2 */ + unsigned short pat16; + + pat16 = *(sout-2+2*OFF); + if (dist == 1) +#if defined(__BIG_ENDIAN) + pat16 = (pat16 & 0xff) | ((pat16 & 0xff ) << 8); +#elif defined(__LITTLE_ENDIAN) + pat16 = (pat16 & 0xff00) | ((pat16 & 0xff00 ) >> 8); +#else +#error __BIG_ENDIAN nor __LITTLE_ENDIAN is defined +#endif + loops = len >> 1; + do + PUP(sout) = pat16; + while (--loops); + out = (unsigned char *)sout + OFF; + } + if (len & 1) + PUP(out) = PUP(from); } } else if ((op & 64) == 0) { /* 2nd level distance code */ - here = dcode[here.val + (hold & ((1U << op) - 1))]; + this = dcode[this.val + (hold & ((1U << op) - 1))]; goto dodist; } else { @@ -261,7 +307,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ } } else if ((op & 64) == 0) { /* 2nd level length code */ - here = lcode[here.val + (hold & ((1U << op) - 1))]; + this = lcode[this.val + (hold & ((1U << op) - 1))]; goto dolen; } else if (op & 32) { /* end-of-block */ @@ -283,8 +329,8 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ hold &= (1U << bits) - 1; /* update state and return */ - strm->next_in = in; - strm->next_out = out; + strm->next_in = in + OFF; + strm->next_out = out + OFF; strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last)); strm->avail_out = (unsigned)(out < end ? 257 + (end - out) : 257 - (out - end)); @@ -297,7 +343,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe): - Using bit fields for code structure - Different op definition to avoid & for extra bits (do & for table bits) - - Three separate decoding do-loops for direct, window, and wnext == 0 + - Three separate decoding do-loops for direct, window, and write == 0 - Special case for distance > 1 copies to do overlapped load and store copy - Explicit branch predictions (based on measured branch probabilities) - Deferring match copy and interspersed it with decoding subsequent codes diff --git a/lib/zlib/inflate.c b/lib/zlib/inflate.c index f7e81fc8b2a..8f767b7b9d2 100644 --- a/lib/zlib/inflate.c +++ b/lib/zlib/inflate.c @@ -21,7 +21,7 @@ int ZEXPORT inflateReset(z_streamp strm) state->head = Z_NULL; state->wsize = 0; state->whave = 0; - state->wnext = 0; + state->write = 0; state->hold = 0; state->bits = 0; state->lencode = state->distcode = state->next = state->codes; @@ -30,11 +30,14 @@ int ZEXPORT inflateReset(z_streamp strm) return Z_OK; } -int ZEXPORT inflateInit2_(z_streamp strm, int windowBits, +int ZEXPORT inflateInit2_(z_streamp strm, int windowBits, const char *version, int stream_size) { struct inflate_state FAR *state; + if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || + stream_size != (int)(sizeof(z_stream))) + return Z_VERSION_ERROR; if (strm == Z_NULL) return Z_STREAM_ERROR; strm->msg = Z_NULL; /* in case we return an error */ if (strm->zalloc == (alloc_func)0) { @@ -67,9 +70,9 @@ int ZEXPORT inflateInit2_(z_streamp strm, int windowBits, return inflateReset(strm); } -int ZEXPORT inflateInit_(z_streamp strm, int stream_size) +int ZEXPORT inflateInit_(z_streamp strm, const char *version, int stream_size) { - return inflateInit2_(strm, DEF_WBITS, stream_size); + return inflateInit2_(strm, DEF_WBITS, version, stream_size); } local void fixedtables(struct inflate_state FAR *state) @@ -112,7 +115,7 @@ local int updatewindow(z_streamp strm, unsigned out) /* if window not in use yet, initialize */ if (state->wsize == 0) { state->wsize = 1U << state->wbits; - state->wnext = 0; + state->write = 0; state->whave = 0; } @@ -120,22 +123,22 @@ local int updatewindow(z_streamp strm, unsigned out) copy = out - strm->avail_out; if (copy >= state->wsize) { zmemcpy(state->window, strm->next_out - state->wsize, state->wsize); - state->wnext = 0; + state->write = 0; state->whave = state->wsize; } else { - dist = state->wsize - state->wnext; + dist = state->wsize - state->write; if (dist > copy) dist = copy; - zmemcpy(state->window + state->wnext, strm->next_out - copy, dist); + zmemcpy(state->window + state->write, strm->next_out - copy, dist); copy -= dist; if (copy) { zmemcpy(state->window, strm->next_out - copy, copy); - state->wnext = copy; + state->write = copy; state->whave = state->wsize; } else { - state->wnext += dist; - if (state->wnext == state->wsize) state->wnext = 0; + state->write += dist; + if (state->write == state->wsize) state->write = 0; if (state->whave < state->wsize) state->whave += dist; } } @@ -820,12 +823,12 @@ int ZEXPORT inflate(z_streamp strm, int flush) copy = out - left; if (state->offset > copy) { /* copy from window */ copy = state->offset - copy; - if (copy > state->wnext) { - copy -= state->wnext; + if (copy > state->write) { + copy -= state->write; from = state->window + (state->wsize - copy); } else - from = state->window + (state->wnext - copy); + from = state->window + (state->write - copy); if (copy > state->length) copy = state->length; } else { /* copy from output */ diff --git a/lib/zlib/inflate.h b/lib/zlib/inflate.h index 2657d611cda..07bd3e78a7c 100644 --- a/lib/zlib/inflate.h +++ b/lib/zlib/inflate.h @@ -88,7 +88,7 @@ struct inflate_state { unsigned wbits; /* log base 2 of requested window size */ unsigned wsize; /* window size or zero if not using window */ unsigned whave; /* valid bytes in the window */ - unsigned wnext; /* window write index */ + unsigned write; /* window write index */ unsigned char FAR *window; /* allocated sliding window, if needed */ /* bit accumulator */ unsigned long hold; /* input bit accumulator */ diff --git a/lib/zlib/zutil.c b/lib/zlib/zutil.c index ec21b458fcc..609aac55ce1 100644 --- a/lib/zlib/zutil.c +++ b/lib/zlib/zutil.c @@ -21,6 +21,7 @@ const char * const z_errmsg[10] = { "data error", /* Z_DATA_ERROR (-3) */ "insufficient memory", /* Z_MEM_ERROR (-4) */ "buffer error", /* Z_BUF_ERROR (-5) */ +"incompatible version",/* Z_VERSION_ERROR (-6) */ ""}; #ifdef DEBUG |