From f59e340e11ef223f5cd7e5aaddab591ba1de0b76 Mon Sep 17 00:00:00 2001 From: Leo Barsky Date: Thu, 17 Jul 2025 18:50:47 +0000 Subject: [PATCH 1/3] kernel: bump 6.6 to 6.6.99 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.99 All patches auto-refreshed. Signed-off-by: Leo Barsky Link: https://github.com/openwrt/openwrt/pull/19448 (cherry picked from commit 3148a577584e98b2e3a7aefbfbde6d0fbb741141) Co-authored-by: Goetz Goerisch Signed-off-by: Goetz Goerisch Link: https://github.com/openwrt/openwrt/pull/19454 Signed-off-by: Hauke Mehrtens --- include/kernel-6.6 | 4 ++-- ...hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch | 2 +- ...0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch | 4 ++-- ...950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch | 2 +- .../950-1366-drm-Increase-plane_mask-to-64bit.patch | 2 +- target/linux/generic/hack-6.6/902-debloat_proc.patch | 2 +- .../806-v6.9-pwm-mediatek-add-support-for-MT7988.patch | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/kernel-6.6 b/include/kernel-6.6 index 1e572366f2..7ed3e4f41d 100644 --- a/include/kernel-6.6 +++ b/include/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .98 -LINUX_KERNEL_HASH-6.6.98 = 296a34c500abc22c434b967d471d75568891f06a98f11fc31c5e79b037f45de5 +LINUX_VERSION-6.6 = .99 +LINUX_KERNEL_HASH-6.6.99 = b08679729f1ec74b9fa829f5990936ca2511039d87acc7e8b3f39912de89ab36 diff --git a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch index 86c4d87d80..4ffa3ed95d 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch @@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1443,6 +1446,9 @@ +@@ -1446,6 +1449,9 @@ #define USB_VENDOR_ID_XIAOMI 0x2717 #define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014 diff --git a/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch b/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch index c1173c30fc..27acfe21b7 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch @@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell --- a/net/bluetooth/hci_sync.c +++ b/net/bluetooth/hci_sync.c -@@ -4879,6 +4879,7 @@ static const struct { +@@ -4927,6 +4927,7 @@ static const struct { */ static int hci_dev_setup_sync(struct hci_dev *hdev) { @@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell int ret = 0; bool invalid_bdaddr; size_t i; -@@ -4907,7 +4908,8 @@ static int hci_dev_setup_sync(struct hci +@@ -4955,7 +4956,8 @@ static int hci_dev_setup_sync(struct hci test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks); if (!ret) { if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) && diff --git a/target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch b/target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch index dcc38a3c64..d40b127927 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch @@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell --- a/net/bluetooth/hci_sync.c +++ b/net/bluetooth/hci_sync.c -@@ -4879,7 +4879,8 @@ static const struct { +@@ -4927,7 +4927,8 @@ static const struct { */ static int hci_dev_setup_sync(struct hci_dev *hdev) { diff --git a/target/linux/bcm27xx/patches-6.6/950-1366-drm-Increase-plane_mask-to-64bit.patch b/target/linux/bcm27xx/patches-6.6/950-1366-drm-Increase-plane_mask-to-64bit.patch index e27058d44c..f3ae9be4fd 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1366-drm-Increase-plane_mask-to-64bit.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1366-drm-Increase-plane_mask-to-64bit.patch @@ -32,7 +32,7 @@ Signed-off-by: Dave Stevenson drm_printf(p, "\tmode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(&state->mode)); --- a/drivers/gpu/drm/drm_framebuffer.c +++ b/drivers/gpu/drm/drm_framebuffer.c -@@ -959,7 +959,7 @@ static int atomic_remove_fb(struct drm_f +@@ -986,7 +986,7 @@ static int atomic_remove_fb(struct drm_f struct drm_connector *conn __maybe_unused; struct drm_connector_state *conn_state; int i, ret; diff --git a/target/linux/generic/hack-6.6/902-debloat_proc.patch b/target/linux/generic/hack-6.6/902-debloat_proc.patch index 64472ad18f..886111a66c 100644 --- a/target/linux/generic/hack-6.6/902-debloat_proc.patch +++ b/target/linux/generic/hack-6.6/902-debloat_proc.patch @@ -235,7 +235,7 @@ Signed-off-by: Felix Fietkau if (!pe) --- a/mm/vmalloc.c +++ b/mm/vmalloc.c -@@ -4450,6 +4450,8 @@ static const struct seq_operations vmall +@@ -4458,6 +4458,8 @@ static const struct seq_operations vmall static int __init proc_vmalloc_init(void) { diff --git a/target/linux/mediatek/patches-6.6/806-v6.9-pwm-mediatek-add-support-for-MT7988.patch b/target/linux/mediatek/patches-6.6/806-v6.9-pwm-mediatek-add-support-for-MT7988.patch index 946f3a5252..09e4be3b34 100644 --- a/target/linux/mediatek/patches-6.6/806-v6.9-pwm-mediatek-add-support-for-MT7988.patch +++ b/target/linux/mediatek/patches-6.6/806-v6.9-pwm-mediatek-add-support-for-MT7988.patch @@ -20,7 +20,7 @@ Signed-off-by: Uwe Kleine-König --- a/drivers/pwm/pwm-mediatek.c +++ b/drivers/pwm/pwm-mediatek.c -@@ -345,6 +345,13 @@ static const struct pwm_mediatek_of_data +@@ -348,6 +348,13 @@ static const struct pwm_mediatek_of_data .reg_offset = mtk_pwm_reg_offset_v1, }; @@ -34,7 +34,7 @@ Signed-off-by: Uwe Kleine-König static const struct pwm_mediatek_of_data mt8183_pwm_data = { .num_pwms = 4, .pwm45_fixup = false, -@@ -375,6 +382,7 @@ static const struct of_device_id pwm_med +@@ -378,6 +385,7 @@ static const struct of_device_id pwm_med { .compatible = "mediatek,mt7629-pwm", .data = &mt7629_pwm_data }, { .compatible = "mediatek,mt7981-pwm", .data = &mt7981_pwm_data }, { .compatible = "mediatek,mt7986-pwm", .data = &mt7986_pwm_data }, From 150f181700395e5a26bb11ff7eb7da0b7118f0b0 Mon Sep 17 00:00:00 2001 From: Fil Dunsky Date: Sun, 6 Jul 2025 12:08:27 +0300 Subject: [PATCH 2/3] mediatek: add Huasifei WH3000 Pro support **Huasifei WH3000 Pro** Portable Wi-Fi 6 travel router based on MediaTek MT7981A SoC. MT7981B+MT7976CN+RTL8221B Dual Core 1.3GHZ with 5G modems module and PWM Fan. **Specifications** SoC: Filogic 820 MT7981A (1.3GHz) RAM: DDR4 1GB Flash: eMMC 8GB WiFi: 2.4GHz and 5GHz with 3 antennas Ethernet: 1x WAN (10/100/1000M) 1x LAN (10/100/1000/2500M) USB: 1x USB 3.0 port Two buttons: power/reset and mode (BTN_0) LEDS: blue, red, blue+red=pink UART: 3.3V, TX, RX, GND / 115200 8N1 **Installation via U-Boot rescue** 1. Set static IP 192.168.1.2 on your computer and default route as 192.168.1.1 2. Connect to the WAN port and hold the reset button while booting the device. 3. Wait for the LED to blink 5 times, and release the reset button. 4. Open U-boot web page on your browser at http://192.168.1.1 5. Select the OpenWRT sysupgrade image, upload it, and start the upgrade. 6. Wait for the router to flash the new firmware. 7. Wait for the router to reboot itself. **Installation via sysupgrade** Just flash sysupgrade file via [LuCI upgrade page](http://192.168.1.1/cgi-bin/luci/admin/system/flash) without saving the settings. **Installation via SSH** Upload the file to the router `/tmp` directory, `ssh root@192.168.1.1` and issue a command: ``` sysupgrade -n /tmp/openwrt-mediatek-filogic-huasifei_wh3000-pro-squashfs-sysupgrade.bin ``` **Factory MAC** You can find your Factory MAC which is mentioned on the box at `/dev/mmcblck0p2` partition `factory` starting from `0x4` ``` dd if=/dev/mmcblk0p2 bs=1 skip=4 count=6 | hexdump -C ``` Cherry-picked from https://github.com/coolsnowwolf/lede/commit/949d0bd77a2e97c2d982531f72b76c575fb28839 Fixed `green` to `blue` LED in dts, added `SUPPORTED_DEVICES += huasifei,fudy-pro` - to make sysupgrade compatible with factory QWRT/Lede fork firmware. Signed-off-by: Fil Dunsky Link: https://github.com/openwrt/openwrt/pull/19315 (cherry picked from commit db1de8d21fd7f115cc1a6274f031119c9f36eefd) Link: https://github.com/openwrt/openwrt/pull/19391 Signed-off-by: Hauke Mehrtens --- .../dts/mt7981b-huasifei-wh3000-pro.dts | 213 ++++++++++++++++++ .../filogic/base-files/etc/board.d/02_network | 3 +- .../base-files/etc/board.d/03_gpio_switches | 3 + .../base-files/lib/upgrade/platform.sh | 2 + target/linux/mediatek/image/filogic.mk | 13 ++ 5 files changed, 233 insertions(+), 1 deletion(-) create mode 100644 target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro.dts diff --git a/target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro.dts b/target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro.dts new file mode 100644 index 0000000000..3d45453d3d --- /dev/null +++ b/target/linux/mediatek/dts/mt7981b-huasifei-wh3000-pro.dts @@ -0,0 +1,213 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/dts-v1/; + +#include +#include +#include + +#include "mt7981.dtsi" + +/ { + model = "Huasifei WH3000 Pro"; + compatible = "huasifei,wh3000-pro", "mediatek,mt7981"; + + aliases { + serial0 = &uart0; + led-boot = &led_sys_red; + led-failsafe = &led_sys_red; + led-running = &led_sys_blue; + led-upgrade = &led_sys_blue; + }; + + chosen { + stdout-path = "serial0:115200n8"; + bootargs-append = " root=PARTLABEL=rootfs rootwait"; + }; + + gpio-export { + compatible = "gpio-export"; + + modem-power { + gpio-export,name = "modem_power"; + gpio-export,output = <0>; + gpios = <&pio 4 GPIO_ACTIVE_HIGH>; + }; + }; + + gpio-keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&pio 1 GPIO_ACTIVE_LOW>; + }; + + mode { + label = "mode"; + linux,code = ; + linux,input-type = ; + gpios = <&pio 0 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + led_sys_red: led-0 { + color = ; + function = LED_FUNCTION_STATUS; + gpios = <&pio 11 GPIO_ACTIVE_LOW>; + }; + + led_sys_blue: led-1 { + color = ; + function = LED_FUNCTION_STATUS; + gpios = <&pio 10 GPIO_ACTIVE_LOW>; + }; + }; +}; + +ð { + pinctrl-names = "default"; + pinctrl-0 = <&mdio_pins>; + status = "okay"; + + gmac0: mac@0 { + compatible = "mediatek,eth-mac"; + reg = <0>; + phy-mode = "2500base-x"; + phy-handle = <&phy1>; + + nvmem-cells = <&macaddr_factory_4 2>; + nvmem-cell-names = "mac-address"; + }; + + gmac1: mac@1 { + compatible = "mediatek,eth-mac"; + reg = <1>; + phy-mode = "gmii"; + phy-handle = <&int_gbe_phy>; + + nvmem-cells = <&macaddr_factory_4 3>; + nvmem-cell-names = "mac-address"; + }; +}; + +&mdio_bus { + phy1: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <1>; + reset-assert-us = <100000>; + reset-deassert-us = <100000>; + reset-gpios = <&pio 39 GPIO_ACTIVE_LOW>; + interrupts = <38 IRQ_TYPE_LEVEL_LOW>; + interrupt-parent = <&pio>; + realtek,aldps-enable; + }; +}; + +&fan { + interrupt-parent = <&pio>; + interrupts = <13 IRQ_TYPE_EDGE_FALLING>; + pwms = <&pwm 1 40000 0>; + status = "okay"; +}; + +&mmc0 { + bus-width = <8>; + cap-mmc-highspeed; + max-frequency = <52000000>; + non-removable; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default", "state_uhs"; + pinctrl-0 = <&mmc0_pins_default>; + pinctrl-1 = <&mmc0_pins_uhs>; + vmmc-supply = <®_3p3v>; + status = "okay"; + + card@0 { + compatible = "mmc-card"; + reg = <0>; + + block { + compatible = "block-device"; + + partitions { + block-partition-factory { + partname = "factory"; + + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + eeprom_factory_0: eeprom@0 { + reg = <0x0 0x1000>; + }; + + macaddr_factory_4: macaddr@4 { + compatible = "mac-base"; + reg = <0x4 0x6>; + #nvmem-cell-cells = <1>; + }; + }; + }; + }; + }; + }; +}; + +&pio { + mmc0_pins_default: mmc0-pins-default { + mux { + function = "flash"; + groups = "emmc_45"; + }; + }; + + mmc0_pins_uhs: mmc0-pins-uhs { + mux { + function = "flash"; + groups = "emmc_45"; + }; + }; + + pwm1_pins: pwm1-pins { + mux { + function = "pwm"; + groups = "pwm1_0"; + }; + }; +}; + +&pwm { + pinctrl-names = "default"; + pinctrl-0 = <&pwm1_pins>; + status = "okay"; +}; + +&uart0 { + status = "okay"; +}; + +&usb_phy { + status = "okay"; +}; + +&watchdog { + status = "okay"; +}; + +&wifi { + nvmem-cells = <&eeprom_factory_0>; + nvmem-cell-names = "eeprom"; + status = "okay"; +}; + +&xhci { + status = "okay"; +}; diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network index f00ba3f62f..6daace1d41 100644 --- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network +++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network @@ -70,7 +70,8 @@ mediatek_setup_interfaces() ;; bananapi,bpi-r3-mini|\ edgecore,eap111|\ - huasifei,wh3000) + huasifei,wh3000|\ + huasifei,wh3000-pro) ucidef_set_interfaces_lan_wan eth0 eth1 ;; bananapi,bpi-r4|\ diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/03_gpio_switches b/target/linux/mediatek/filogic/base-files/etc/board.d/03_gpio_switches index 1fe74f2b6f..e2fe814439 100644 --- a/target/linux/mediatek/filogic/base-files/etc/board.d/03_gpio_switches +++ b/target/linux/mediatek/filogic/base-files/etc/board.d/03_gpio_switches @@ -5,6 +5,9 @@ board_config_update board=$(board_name) case "$board" in +huasifei,wh3000-pro) + ucidef_add_gpio_switch "modem_power" "Modem power" "modem_power" "0" + ;; zbtlink,zbt-z8102ax|\ zbtlink,zbt-z8102ax-v2) ucidef_add_gpio_switch "5g1" "Power 1st modem" "5g1" "1" diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh index ea16ee3c71..64b6d4b60b 100755 --- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh +++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh @@ -106,6 +106,7 @@ platform_do_upgrade() { glinet,gl-x3000|\ glinet,gl-xe3000|\ huasifei,wh3000|\ + huasifei,wh3000-pro|\ smartrg,sdg-8612|\ smartrg,sdg-8614|\ smartrg,sdg-8622|\ @@ -231,6 +232,7 @@ platform_copy_config() { glinet,gl-x3000|\ glinet,gl-xe3000|\ huasifei,wh3000|\ + huasifei,wh3000-pro|\ jdcloud,re-cp-03|\ smartrg,sdg-8612|\ smartrg,sdg-8614|\ diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk index ec08857c96..ab5a2b7c87 100644 --- a/target/linux/mediatek/image/filogic.mk +++ b/target/linux/mediatek/image/filogic.mk @@ -1031,6 +1031,19 @@ define Device/huasifei_wh3000 endef TARGET_DEVICES += huasifei_wh3000 +define Device/huasifei_wh3000-pro + DEVICE_VENDOR := Huasifei + DEVICE_MODEL := WH3000 Pro + DEVICE_DTS := mt7981b-huasifei-wh3000-pro + DEVICE_DTS_DIR := ../dts + DEVICE_PACKAGES := kmod-mt7981-firmware mt7981-wo-firmware kmod-hwmon-pwmfan kmod-usb3 f2fsck mkf2fs + KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb + KERNEL_INITRAMFS := kernel-bin | lzma | \ + fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k + IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata +endef +TARGET_DEVICES += huasifei_wh3000-pro + define Device/iptime_ax3000sm DEVICE_VENDOR := ipTIME DEVICE_MODEL := AX3000SM From 6489f3ef89596c2b3a076034d438746865c12eaa Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 22 Jul 2025 11:58:15 +0200 Subject: [PATCH 3/3] toolchain/gcc: prevent the use of LDRD/STRD on ARMv5TE These instructions are for 64-bit load/store. On ARMv5TE, the CPU requires addresses to be aligned to 64-bit. When misaligned, behavior is undefined (effectively either loads the same word twice on LDRD, or corrupts surrounding memory on STRD). On ARMv6 and newer, unaligned access is safe. Removing these instructions for ARMv5TE is necessary, because GCC ignores alignment information in pointers and does unsafe optimizations that have shown up as bugs in various places. This patch was originally added more than 11 years ago in commit b050f87d13b5, but got lost 6 years ago, when gcc 9.1 was added in 88c07c655262. This primarily affects the kirkwood and ixp4xx targets Signed-off-by: Felix Fietkau (cherry picked from commit c1c11120069b8e04ad4b0c6e815d2e3421944933) --- .../gcc/patches-11.x/800-arm_v5te_no_ldrd_strd.patch | 11 +++++++++++ .../gcc/patches-12.x/800-arm_v5te_no_ldrd_strd.patch | 11 +++++++++++ .../gcc/patches-13.x/800-arm_v5te_no_ldrd_strd.patch | 11 +++++++++++ .../gcc/patches-14.x/800-arm_v5te_no_ldrd_strd.patch | 11 +++++++++++ 4 files changed, 44 insertions(+) create mode 100644 toolchain/gcc/patches-11.x/800-arm_v5te_no_ldrd_strd.patch create mode 100644 toolchain/gcc/patches-12.x/800-arm_v5te_no_ldrd_strd.patch create mode 100644 toolchain/gcc/patches-13.x/800-arm_v5te_no_ldrd_strd.patch create mode 100644 toolchain/gcc/patches-14.x/800-arm_v5te_no_ldrd_strd.patch diff --git a/toolchain/gcc/patches-11.x/800-arm_v5te_no_ldrd_strd.patch b/toolchain/gcc/patches-11.x/800-arm_v5te_no_ldrd_strd.patch new file mode 100644 index 0000000000..e83cb1bebb --- /dev/null +++ b/toolchain/gcc/patches-11.x/800-arm_v5te_no_ldrd_strd.patch @@ -0,0 +1,11 @@ +--- a/gcc/config/arm/arm.h ++++ b/gcc/config/arm/arm.h +@@ -165,7 +165,7 @@ emission of floating point pcs attribute + /* Thumb-1 only. */ + #define TARGET_THUMB1_ONLY (TARGET_THUMB1 && !arm_arch_notm) + +-#define TARGET_LDRD (arm_arch5te && ARM_DOUBLEWORD_ALIGN \ ++#define TARGET_LDRD (arm_arch6 && ARM_DOUBLEWORD_ALIGN \ + && !TARGET_THUMB1) + + #define TARGET_CRC32 (arm_arch_crc) diff --git a/toolchain/gcc/patches-12.x/800-arm_v5te_no_ldrd_strd.patch b/toolchain/gcc/patches-12.x/800-arm_v5te_no_ldrd_strd.patch new file mode 100644 index 0000000000..e83cb1bebb --- /dev/null +++ b/toolchain/gcc/patches-12.x/800-arm_v5te_no_ldrd_strd.patch @@ -0,0 +1,11 @@ +--- a/gcc/config/arm/arm.h ++++ b/gcc/config/arm/arm.h +@@ -165,7 +165,7 @@ emission of floating point pcs attribute + /* Thumb-1 only. */ + #define TARGET_THUMB1_ONLY (TARGET_THUMB1 && !arm_arch_notm) + +-#define TARGET_LDRD (arm_arch5te && ARM_DOUBLEWORD_ALIGN \ ++#define TARGET_LDRD (arm_arch6 && ARM_DOUBLEWORD_ALIGN \ + && !TARGET_THUMB1) + + #define TARGET_CRC32 (arm_arch_crc) diff --git a/toolchain/gcc/patches-13.x/800-arm_v5te_no_ldrd_strd.patch b/toolchain/gcc/patches-13.x/800-arm_v5te_no_ldrd_strd.patch new file mode 100644 index 0000000000..e83cb1bebb --- /dev/null +++ b/toolchain/gcc/patches-13.x/800-arm_v5te_no_ldrd_strd.patch @@ -0,0 +1,11 @@ +--- a/gcc/config/arm/arm.h ++++ b/gcc/config/arm/arm.h +@@ -165,7 +165,7 @@ emission of floating point pcs attribute + /* Thumb-1 only. */ + #define TARGET_THUMB1_ONLY (TARGET_THUMB1 && !arm_arch_notm) + +-#define TARGET_LDRD (arm_arch5te && ARM_DOUBLEWORD_ALIGN \ ++#define TARGET_LDRD (arm_arch6 && ARM_DOUBLEWORD_ALIGN \ + && !TARGET_THUMB1) + + #define TARGET_CRC32 (arm_arch_crc) diff --git a/toolchain/gcc/patches-14.x/800-arm_v5te_no_ldrd_strd.patch b/toolchain/gcc/patches-14.x/800-arm_v5te_no_ldrd_strd.patch new file mode 100644 index 0000000000..e83cb1bebb --- /dev/null +++ b/toolchain/gcc/patches-14.x/800-arm_v5te_no_ldrd_strd.patch @@ -0,0 +1,11 @@ +--- a/gcc/config/arm/arm.h ++++ b/gcc/config/arm/arm.h +@@ -165,7 +165,7 @@ emission of floating point pcs attribute + /* Thumb-1 only. */ + #define TARGET_THUMB1_ONLY (TARGET_THUMB1 && !arm_arch_notm) + +-#define TARGET_LDRD (arm_arch5te && ARM_DOUBLEWORD_ALIGN \ ++#define TARGET_LDRD (arm_arch6 && ARM_DOUBLEWORD_ALIGN \ + && !TARGET_THUMB1) + + #define TARGET_CRC32 (arm_arch_crc)