Hi All, It's the longest (or shortest) day of the year, let's celebrate this with a new barebox release: v2023.06.0 is out. This release brings us CI implemented in GitHub actions. With this each push to the GitHub barebox repository triggers a build of all defconfigs. Also the images we have Qemu support for get runtime tested with the selftest framework Ahmad created. We are confident that this increases the quality of the barebox releases in future. See https://github.com/barebox/barebox/actions for the current status. Also there is a MMU rework on ARM within this release. We previously used 1MiB (1GiB on Aarch64) sections in early MMU setup and reconfigured the MMU during barebox startup. Now we use 4KiB pages directly in the early code. This has the advantage that we do not have to reconfigure the MMU and that we can properly set the XN flag for areas used by the secure world in early code so that the CPU cannot speculate into these protected areas. Based on that Ahmad then added support for non-1:1 mappings in arch_remap_range which helps in some situations where devices are mapped to 0x0, we had to disable NULL pointer protection in these cases. Beginning with v2023.06.0 barebox has support for the Rockchip RK3588 SoC. The only board supported so far is the Radxa Rock 5b. As this particular board has ethernet connected to PCI instead of using the SoC internal network controller, we have support for that as well. Along with this the RTL8169 got an overhaul, the old driver supported only a fraction of the available devices with the one found on the Rock 5b not being one of it. barebox manipulates the Linux device tree in many ways which sometimes causes problems. There is a new command to help debugging these problems. The of_fixup command allows to list the fixups that will be applied on the Linux device tree and offers options to disable/enable them one by one, so it will be easier to find problematic fixups. As usual, there are several other changes not explicitly mentioned here, see below for a full list. Have Fun! Sascha ---------------------------------------------------------------- Ahmad Fatoum (58): clk: implement clk_to_clk_hw using container_of_safe sandbox: watchdog: handle missing stickypage gracefully sandbox: power: handle missing stickypage gracefully sandbox: hostfile: don't warn on failed hostfile fixup treewide: drop trailing space driver: be explicit about supported #feature-cells featctrl: drop useless NULL check sandbox: hostfile: add feature controller support asm-generic: atomic: implement atomic_inc/dec_return stubs phy: stm32-usphyc: sync with Linux v6.3-rc5 ARM: stm32mp: defconfig: enable use of DKx USB hubs clk: bulk: return -EPROBE_DEFER in silence ARM: stm32mp: dkx: enable deep probe ARM: configs: multi_v7_defconfig: enable CONFIG_USB_ONBOARD_HUB commands: add new of_fixup command to list and disable DT fixups linux: limits: define INTPTR_MAX/UINTPTR_MAX treewide: use remap_range instead of arch_remap_range mmu: add physical address parameter to arch_remap_range ARM: mmu32: support non-1:1 mappings in arch_remap_range ARM: mmu64: support non-1:1 mappings in arch_remap_range of: platform: remap memory when encountering virtual-reg property common: boards: qemu-virt: remap cfi-flash from 0 to 0x1000 ARM: prepare extending mmuinfo beyond ARMv7 ARM64: mmu: implement ARMv8 mmuinfo command common: memtest: prepare for reuse in self test test: self: add MMU remapping self test ARM: mmuinfo: add options for enabling/disabling zero page trapping ARM: rockchip: don't attempt building MACH_RADXA_ROCK5 without firmware test: self: mmu: remap buffer with default attributes on exit test: self: mmu: fix invalid use of __is_defined ARM64: configs: multi_v8_defconfig: enable what qemu_virt64_defconfig had i.MX: HABv4: fix left-over old arch_remap_range prototype use ARM: mmu64: request TTB region ARM: mmu64: define early_remap_range for mmu_early_enable usage ARM: mmu32: define early_remap_range for mmu_early_enable usage ARM: mmu: invalidate when mapping range uncached ARM: rockchip: pine64-quartz64: add sdram-init.bin to .gitignore scripts: kwbimage: check return value of asprintf scripts: omap3-usb-loader: fix heap overflow ddr: imx8m: align function definition with prototype include: bitmask: avoid -Wint-in-bool-context warning net: fec_mpc5200: fix false positive -Wmisleading-indentation MIPS: boot: main_entry: use malloc_end instead of _stext MIPS: longsoon: restart: hide access to zero page bootm: booti: fix false positive uninitialized variable access of: override existing reg property in of_fixup_reserved_memory ARM: dts: state-example: fix use with Phytec phyFLEX i.MX6 ci: fix build on master with newer container image net: smc1111: add missing drive's of_device_id array sentinel scripts: remove openssl dependency in multi_v7_defconfig clocksource: armv7m_systick: fix MMIO address of: select OF_OVERLAY where appropriate memory_display: don't skip va_end in error case regmap-mmio: fix use-after-free treewide: add MODULE_DEVICE_TABLE markers kbuild: Port silent mode detection to future gnu make. Documentation: user: usb: bring up to date of: define of_read_file/barebox_register_of when !CONFIG_OFTREE Alexander Shiyan (3): ARM: clps711x: Remove unused file ARM: i.MX: Use postcore_platform_driver() macro for imx src driver ARM: dts: am335x-myirtech: Cosmetic: Remove empty extra line Antony Pavlov (1): crypto: imx-scc: Kconfig: drop references to unknown symbols Christian Melki (1): barebox: Fix excessive loading of FIT images Christopher Ebner (1): partitions: efi: Continue partition enumeration on invalid pte Hans Christian Lonstad (1): /arch/arm/dts: imx8mp: Do not mask out mediamix power domain Johannes Zink (6): net: phy: print error messages to log imx-usb-loader: exit with success when displaying help on purpose imx-usb-loader: use proper return code macros imx-usb-loader: add commandline option for displaying version number imx-usb-loader: fix compilation if prepare make target was not called before imx-usb-loader: also add version information on target tool Marc Reilly (1): Documentation: boards: nxp-imx8mp-evk; clarify firmware folder Marco Felsch (1): gpiolib: fix gpio-hog functionality Michael Grzeschik (1): usb: dwc2: fix multiplier handling in endpoint setup Michael Olbrich (1): net: ifup: pass hostname and linuxdevname to linux with DHCP Oleksij Rempel (3): usb: dwc2: Port support for USB FIFO devicetree properties from Linux v6.3 usb: dwc2: Port FIFO configuration sync from Linux v6.3 arm: dts: stm32mp151-prtt1l: Configure USB gadget FIFOs for multiple gadgets support Roland Hieber (4): ARM: i.MX6: tqma6x: make use of ENTRY_FUNCTION_WITHSTACK ARM: i.MX: TQMa6x: migrate flash partitions to device tree ARM: i.MX6: TQMa6x: make tqma6x_env_init reusable commands: ethlog: wire up help text Sascha Hauer (109): ARM: versatile: Enable CONFIG_RELOCATABLE ARM: versatile: Use common clk framework ARM: versatile: drop platform code to register UART ARM: versatile: drop platform code to register GPIOs ARM: versatile: Use flash from device tree ARM: versatile: Use smc91c111 from device tree ARM: versatile: make sure to run initcalls on versatile only ARM: versatile: simplify ARM1176 support ARM: versatile: move over to multi image support ARM: versatile: move over to multi arch support ARM: versatile: Use existing clocksource driver ARM: Merge imx_defconfig and versatilepb_defconfig into multi_v5_v6_defconfig ARM: vexpress: Disable non working devices Kconfig: source Kconfig.include earlier ARM: Rockchip: make boards only selectable when firmware is present dts: update to v6.3-rc7 dts: update to v6.3 mci: dove: Add unhandled enumeration value MAKEALL: Configure before setting up CROSS_COMPILE MAKEALL: Select arm64 toolchain for 64bit ARM configs MAKEALL: order configs alphabetically MAKEALL: Do not print sizes MAKEALL: Do not trap MAKEALL: fix printing number of compiled configs MAKEALL: support Kconfig fragments MAKEALL: rename variables MAKEALL: separate errors and warnings MAKEALL: allow multiple defconfigs as arguments ARM: arm64virt: move to multiarch ARM: multi_v8_defconfig: Enable ARM64 QEMU Virt board ARM: Remove qemu_virt64_defconfig ARM: remove vexpress_defconfig firmware: make drivers/firmware/ obj-y stddef: add sizeof_field() pci: add pci_select_bars() helper ARM: i.MX: make boards selectable only when firmware files are present dts: update to v6.4-rc1 dts: update to v6.4-rc2 ARM: remove unused membase argument ARM: remove unused define ARM: rename __arm_mem_scratch to arm_mem_scratch ARM: put scratch mem area below OP-TEE ARM: add arm_mem_optee() ARM: make arm_mem_scratch() a static inline function ARM: raspberry-pi: put video core fdt at end of RAM ARM: define stack base consistently ARM: move arm_mem_scratch_get() lower for consistency ARM: drop cache function initialization ARM: Add _32 suffix to aarch32 specific filenames ARM: cpu.c: remove unused include ARM: mmu-common.c: use common mmu include ARM: mmu32: rename mmu.h to mmu_32.h ARM: mmu: implement MAP_FAULT ARM: mmu64: Use arch_remap_range where possible ARM: mmu32: implement zero_page_*() ARM: i.MX: Drop HAB workaround ARM: Move early MMU after malloc initialization ARM: mmu: move dma_sync_single_for_device to extra file ARM: mmu: merge mmu-early_xx.c into mmu_xx.c ARM: mmu: alloc 64k for early page tables ARM: mmu32: create alloc_pte() ARM: mmu64: create alloc_pte() ARM: mmu: drop ttb argument ARM: mmu: always do MMU initialization early when MMU is enabled ARM: mmu32: Assume MMU is on ARM: mmu32: Fix pmd_flags_to_pte() for ARMv4/5/6 ARM: mmu32: Add pte_flags_to_pmd() ARM: mmu32: add get_pte_flags, get_pmd_flags ARM: mmu32: move functions into c file ARM: mmu32: read TTB value from register ARM: mmu32: Use pages for early MMU setup ARM: mmu32: Skip reserved ranges during initialization ARM: mmu64: Use two level pagetables in early code of: add function to read a file as unflattened device tree test: Add emulated sabrelite labgrid config test: Add emulated raspberry pi labgrid configs pci: set upper word for 64bit base addresses ARM: SCMI: Use correct smc/hvc instructions on ARM64 clk: rockchip: Add rk3588 support pinctrl: rockchip: Move struct definitions to separate header file ARM: rockchip: detect rockchip SoC type when asked for pinctrl/gpio: rockchip: separate gpio from pinctrl driver pinctrl: Update pinctrl-rockchip from kernel phy: rockchip: naneng-combphy: add rk3588 support reset: Implement reset array support pci: designware: add rockchip support phy: realtek: Add RTL8125 internal phy support net: Update Realtek r8169 driver ARM: rockchip: rk3588: add memsize detection ARM: rockchip: Add rk3588 support ARM: dts: Add rk3588 device trees ARM: rockchip: Add Radxa ROCK 5B support Merge branch 'for-next/arm-mmu' Merge branch 'for-next/arm64-virt' Merge branch 'for-next/dts' Merge branch 'for-next/kconfig-missing-firmware' Merge branch 'for-next/makeall' Merge branch 'for-next/misc' Merge branch 'for-next/rockchip' Merge branch 'for-next/stm32mp' Merge branch 'for-next/versatile' Merge branch 'for-next/vexpress' Add GitHub CI ARM: set zero page accessible before copying ATAGs there ARM: mmu_32: fix setting up zero page when it is in SDRAM Revert "dma: use dma/cpu conversions correctly in dma_map/unmap_single" ARM: mmu_32: Fix zero page faulting net: gianfar: make MAC addr setup endian safe, cleanup Release v2023.06.0 Yegor Yefremov (1): net: cpsw: increase a delay before reading the ALIVE register -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |