| Age | Commit message (Collapse) | Author | Files | Lines |
|
Replace the open coded parsing of CPU nodes' 'reg' property with
of_get_cpu_hwid().
This change drops an error message for missing 'reg' property, but that
should not be necessary as the DT tools will ensure 'reg' is present.
Cc: Russell King <linux@armlinux.org.uk>
Signed-off-by: Rob Herring <robh@kernel.org>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20211006164332.1981454-3-robh@kernel.org
|
|
The Texas Instruments Wilink 6/7/8 (wl12xx/wl18xx) Wireless LAN
Controllers can be connected via SPI or via SDIO.
Convert the two Device Tree binding documents to json-schema, and merge
them into a single document.
Add missing ti,wl1285 compatible value.
Add missing interrupt-names property.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/23a2fbc46255a988e5d36f6c14abb7130480d200.1634646975.git.geert+renesas@glider.be
Signed-off-by: Rob Herring <robh@kernel.org>
|
|
Converted in-place without moving file to drivers/clk.
tested on ts7250 (EP9302).
Only setting rate and change parent tested for, as they
are missing on ts7250:
- video
- I2S
- ADC/KEYPAD
- PWM
Only video and I2S clock are interesting, as they are
GATE + double DIV + MUX, all other are pretty much
common but require ep93xx_syscon_swlocked_write to set
registers.
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Tested-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Acked-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Link: https://lore.kernel.org/r/20211018103105.146380-3-alexander.sverdlin@gmail.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
The vendor u-boot does not configure the arch timer correctly on
MStar, let Linux do it.
Signed-off-by: Romain Perier <romain.perier@gmail.com>
Signed-off-by: Daniel Palmer <daniel@0x0f.com>
Link: https://lore.kernel.org/linux-arm-kernel/20210923170747.5786-2-romain.perier@gmail.com
|
|
This adds the definition of the rtc device node. The RTC being able to
work with the oscillator at 12Mhz for now, it shares the same xtal than
the watchdog.
Signed-off-by: Romain Perier <romain.perier@gmail.com>
Signed-off-by: Daniel Palmer <daniel@0x0f.com>
Link: https://lore.kernel.org/all/20210823171613.18941-4-romain.perier@gmail.com
|
|
Two patches to fix the GMAC PHY mode on some boards.
* tag 'sunxi-fixes-for-5.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode
arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node
Link: https://lore.kernel.org/r/d4c41c71-f1ff-4464-a26f-1bfd4b52fd78.lettre@localhost
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
This is already in v5.15-rc5, but I'm adding it here as well to get
a clean build of the dts files.
* tag 'arm-soc/for-5.15/devicetree':
ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address
ARM: dts: bcm2711-rpi-4-b: Fix pcie0's unit address formatting
ARM: dts: bcm2711-rpi-4-b: fix sd_io_1v8_reg regulator states
ARM: dts: bcm2711: fix MDIO #address- and #size-cells
ARM: dts: bcm283x: Fix VEC address for BCM2711
|
|
Adapt gpio subnode names to match the yaml binding and removal
of the actually non-matching fallback-string for usb-phys
on rk3066/rk3188 (most-specific compatible is and must always
be used).
* tag 'v5.16-rockchip-dts32-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
ARM: dts: rockchip: remove usb-phy fallback string from rk3066a/rk3188
ARM: dts: rockchip: change gpio nodenames
Link: https://lore.kernel.org/r/3630369.N7QejLDta5@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
Gemini changes for the v5.16 kernel cycle:
- Add device trees for Edimax NS2502 and SSI 1328
- Consolidate PCI interrupts
* tag 'gemini-dts-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik:
ARM: dts: gemini: Consolidate PCI interrupt-map properties
ARM: gemini: add device tree for ssi1328
ARM: gemini: add device tree for edimax NS2502
dt-bindings: add vendor prefix for ssi
dt-bindings: add vendor prefix for edimax
ARM: dts: gemini: add labels for USB, IDE, flash and ethernet
Link: https://lore.kernel.org/r/CACRpkdac5Sbt42CtuLMgCazfHdhcP98mEKGjeZ-DVcb=_N90Bg@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
IXP4xx DTS changes for the v5.16 kernel:
- Add the PTP timesource
- Push down PCI interrupt properties to the individual
board files.
* tag 'ixp4xx-dts-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik:
ARM: dts: ixp4xx: Group PCI interrupt properties together
ARM: dts: Add PTP timesource to the IXP456x
Link: https://lore.kernel.org/r/CACRpkdbSJ662h_B9mAGdXWBeq8ZwKTQvSJ7cZ2x2d8UgELP5QA@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
Our usual round of DT patches for the 5.16 merge window, with:
- DT schema fixes
- I2S support for the R40
- HDMI support for the pinetab
- devfreq support for the A64 GPU
* tag 'sunxi-dt-for-5.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: (21 commits)
dt-bindings: interconnect: sunxi: Add R40 MBUS compatible
arm64: dts: allwinner: NanoPi R1S H5: Add generic compatible string for I2C EEPROM
arm64: dts: allwinner: pinetab: Add HDMI support
arm64: dts: allwinner: a64: Add GPU opp table
ARM: dts: sun8i: r40: Add I2S nodes
dt-bindings: sound: sun4i-i2s: add Allwinner R40 I2S compatible
arm64: dts: allwinner: teres-i: Remove wakekup-source from the PMIC
arm64: dts: allwinner: teres-i: Add missing reg
arm64: dts: allwinner: pinetab: Change regulator node name to avoid warning
arm64: dts: allwinner: a100: Fix thermal zone node name
arm64: dts: allwinner: h6: Fix de3 parent clocks ordering
arm64: dts: allwinner: h5: Fix GPU thermal zone node name
ARM: dts: cubieboard4: Remove the dumb-vga-dac compatible
ARM: dts: tbs711: Fix touchscreen compatible
ARM: dts: sunxi: Fix the SPI NOR node names
ARM: dts: sunxi: Fix OPPs node name
ARM: dts: sunxi: Fix OPP arrays
ARM: dts: sunxi: Rename gpio pinctrl names
ARM: dts: sunxi: Rename power-supply names
dt-bindings: sunxi: Add Allwinner A80 PRCM Binding
...
Link: https://lore.kernel.org/r/5cad5ac6-187d-4d36-9437-5821c6e8242d.lettre@localhost
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
i.MX device tree changes for 5.16:
- New board support: Kobo Libra H2O, Tolino Vision 5, SKOV LT2 and
Colibri i.MX6ULL eMMC variants.
- A series from Fabio Estevam to correct SPI chipselect polarity for
various i.MX6/7 boards.
- A couple of patches from Krzysztof Kozlowski to clean up unsupported
properties from imx6dl-b1x5v2 and imx6dl-prtrvt boards.
- A series from Li Yang to clean up LS1021a based boards and add missing
device nodes.
- A series from Matthias Schiffer to fix typo, add SPI-NOR flash and
partition layout for imx7-tqma7/mba7 boards.
- Fix the schema check errors in i.MX PCIe device nodes.
- Other random and small fix-up and device additions.
* tag 'imx-dt-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (42 commits)
ARM: dts: ls1021a-tsn: use generic "jedec,spi-nor" compatible for flash
ARM: dts: ls1021a: move thermal-zones node out of soc/
ARM: dts: ls1021a-tsn: remove undocumented property "position" from mma8452 node
ARM: dts: ls1021a-qds: change fpga to simple-mfd device
ARM: dts: ls1021a: add #power-domain-cells for power-controller node
ARM: dts: ls1021a: add #dma-cells to qdma node
ARM: dts: ls1021a: fix memory node for schema check
ARM: dts: ls1021a: remove regulators simple-bus
ARM: dts: ls1021a: disable ifc node by default
ARM: dts: ls1021a: breakup long values in thermal node
ARM: dts: ls1021a: fix board compatible to follow binding schema
ARM: dts: ls1021a: update pcie nodes for dt-schema check
ARM: dts: ls1021a-qds: Add node for QSPI flash
ARM: dts: ls1021a: change to use SPDX identifiers
ARM: dts: ls1021a: change dma channels order to match schema
ARM: dts: ls1021a: remove clock-names property for i2c nodes
ARM: dts: imx6dl-prtrvt: drop undocumented TRF7970A NFC properties
ARM: dts: imx6: phytec: Add gpio pinctrl for i2c bus recovery
ARM: dts: imx6: skov: provide panel support for lt2 variants
ARM: dts: imx6qdl-apalis: Fix typo in ADC comment
...
Link: https://lore.kernel.org/r/20211016140138.1603-3-shawnguo@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
mvebu dt for 5.16 (part 1)
Add support for Netgear GS110EMX switch (Armada 381 SoC based)
* tag 'mvebu-dt-5.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
ARM: dts: mvebu: add device tree for netgear gs110emx switch
Link: https://lore.kernel.org/r/874k9imeel.fsf@BL-laptop
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
With the conversion of rockchip-usb-phy.yaml a long time used fallback
string for rk3066a/rk3188 was added. The linux driver doesn't do much with
the GRF phy address range, however the u-boot driver rockchip_usb2_phy.c
does. The bits in GRF_UOC0_CON2 for rk3066a/rk3188 and rk3288 for example
don't match. Remove the usb-phy fallback string for rk3066a/rk3188
to prevent possible strange side effects.
Signed-off-by: Johan Jonker <jbx6244@gmail.com>
Link: https://lore.kernel.org/r/20210828111218.10026-2-jbx6244@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
|
The Gemini PCI 'interrupt-map' does not vary by board, so let's move
the definition to a common location. This avoids having incomplete
interrupt properties (i.e. #interrupt-cells without interrupt-map).
Cc: Hans Ulli Kroll <ulli.kroll@googlemail.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
|
Move the PCI 'interrupt-map-mask' and '#interrupt-cells' properties
alongside the 'interrupt-map' property in each board dts. This avoids
having incomplete set of interrupt properties which may fail validation.
Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Rob Herring <robh@kernel.org>
|
|
STM32 DT for v5.16, round 1
Highlights:
----------
- MPU:
- ST boards:
- Add new stm32mp135f-dk board. It embedds new STM32MP135 SoC,
with 512 MB of DDR3. Several connections are available on this
board:
4*USB2.0, 1*USB2.0 typeC DRD, SDcard, 2*RJ45, HDMI,
Combo Wifi/BT, ...
Only SD card, uart4 (console) and watchdog IPs are enabled in
this tag.
- Change IRQ level for STUSB1600 on DKx boards.
- Fix SAI subclocks range.
- Add ck_usb0_48m clock in USB OHCI node device to match with
STM32MP15 datasheet.
- DH boards:
- Reduce DHCOR SPI NOR frequency to 50 MHz to avoid sporadic issues.
- Fix SAI pin muxing.
- Odyssey:
- Set DCMI pins.
* tag 'stm32-dt-for-v5.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32:
ARM: dts: stm32: use usbphyc ck_usbo_48m as USBH OHCI clock on stm32mp151
ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15
ARM: dts: stm32: fix SAI sub nodes register range
ARM: dts: stm32: fix STUSB1600 Type-C irq level on stm32mp15xx-dkx
ARM: dts: stm32: set the DCMI pins on stm32mp157c-odyssey
ARM: dts: stm32: Reduce DHCOR SPI NOR frequency to 50 MHz
ARM: dts: stm32: add initial support of stm32mp135f-dk board
dt-bindings: stm32: document stm32mp135f-dk board
ARM: dts: stm32: add STM32MP13 SoCs support
Link: https://lore.kernel.org/r/9d52c3e2-a3b9-89f3-1896-7cd3560e7010@foss.st.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
ASPEED device tree updates for 5.15
- New machines:
* TYAN S7106 BMC, a x86 server from about four years ago
- Descriptions for the AST2600 ADC, which now has an upstream driver
- Lots of GPIO line names. The OpenBMC project has adopted a scheme for
naming the lines, and new additions will follow this guide
- New I2C devices for Rainier, Everest, EthanolX, Mt Jade
- Fixes for fp5280g2 which has seen some recent development, including
the addtion of a QEmu machine for testing
* tag 'aspeed-5.16-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc:
ARM: dts: aspeed: fp5280g2: Use the 64M layout
ARM: dts: aspeed: Add TYAN S7106 BMC machine
ARM: dts: aspeed: rainier: Add power-config-full-load gpio
ARM: dts: aspeed: p10bmc: Define secure boot gpio
ARM: dts: aspeed: mtjade: Add some gpios
ARM: dts: aspeed: Add ADC for AST2600 and enable for Rainier and Everest
ARM: dts: everest: Define name for gpio line B6
ARM: dts: everest: Define name for gpio line Q2
ARM: dts: rainier: Define name for gpio line Q2
ARM: dts: everest: Add 'factory-reset-toggle' as GPIOF6
ARM: dts: aspeed: everest: Add I2C bus 15 muxes
ARM: dts: aspeed: rainier: Add system LEDs
ARM: dts: aspeed: amd-ethanolx: Add FRU EEPROM
ARM: dts: fp5280g2: Enable KCS 3 for MCTP binding
Link: https://lore.kernel.org/r/CACPK8XdrMzY9tzdof7KpzxKquTo7GcWW4N9Zqwtmmu73C7htXA@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
Ux500 DTS updates:
- Flag the janice SPI display lines properly for the right line
semantics.
- Fix some errors in the Skomer regulator configuration.
- Fix some SD card pin configurations on Skomer.
- Assign the Skomer SD card a 300 ms power-on delay.
- Rewrite the battery nodes to use the standard binding
"monitored-battery" as used in the updated bindings, and
provide the right Samsung battery compatibles for the Samsung
phones.
* tag 'ux500-dts-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik:
ARM: dts: ux500: Switch battery nodes to standard
ARM: dts: ux500: Skomer eMMC needs 300 ms power on
ARM: dts: ux500: Fix up SD card pin config
ARM: dts: ux500: Skomer regulator fixes
ARM: dts: ux500: Tag Janice display SPI correct
Link: https://lore.kernel.org/r/CACRpkdYf5GwRvG1Gemk4mE+aw6UnAVTY8OudwsVNPQXThHXu6g@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
This pull request contains Broadcom ARM-based SoCs Device Tree changes
for 5.16, please pull the following:
- Matthew provides a set of updates to the Northstar Plus Device Tree
files to fix a number of warnings, and prepare the files to support the
addition of the Cisco Meraki MX64/MX65 wireless controller devices and
finally adds support for those boards.
- Rafal continues to provide updates to the BCM5301X Device Tree files
in order to fix warnings with the various node names, MDIO muxes and
memory nodes. He also adds support for the external switches on the
BCM53573 SoC and adds Tenda AC9 switch ports.
- Christian provides the description of the Ethernet switch ports for
the Cisco Meraki MR32 based on the 53016 SoC
- Arinc adds support for the Asus RT-AC88U device based on the BCM4709
and featuring 8 Ethernet ports over the integrated and the external
Realtek switch (not supported yet)
- Stefan adds support for the Raspberry Pi Compute Module 4 IO board and
does a number of preparatory changes to get there to the Device Tree
files before doing the actual addition
* tag 'arm-soc/for-5.16/devicetree' of https://github.com/Broadcom/stblinux: (31 commits)
arm64: dts: broadcom: Add reference to RPi CM4 IO Board
ARM: dts: Add Raspberry Pi Compute Module 4 IO Board
ARM: dts: Add Raspberry Pi Compute Module 4
dt-bindings: arm: bcm2835: Add Raspberry Pi Compute Module 4
ARM: dts: bcm283x-rpi: Move Wifi/BT into separate dtsi
dt-bindings: display: bcm2835: add optional property power-domains
ARM: dts: BCM5301X: Add DT for Asus RT-AC88U
ARM: BCM53016: MR32: get mac-address from nvmem
ARM: BCM53016: Specify switch ports for Meraki MR32
ARM: dts: BCM53573: Add Tenda AC9 switch ports
ARM: dts: BCM53573: Describe on-SoC BCM53125 rev 4 switch
ARM: dts: BCM5301X: Specify switch ports for more devices
ARM: dts: NSP: Fix MX65 MDIO mux warnings
ARM: dts: NSP: Fix MX64/MX65 eeprom node name
ARM: dts: NSP: Fix MDIO mux node names
ARM: dts: NSP: Fix mpcore, mmc node names
ARM: dts: NSP: Add bcm958623hr board name to dts
ARM: dts: BCM5301X: Fix memory nodes names
ARM: dts: BCM5301X: Fix MDIO mux binding
ARM: dts: BCM5301X: Fix nodes names
...
Link: https://lore.kernel.org/r/20211013174016.831348-1-f.fainelli@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
Samsung DTS ARM changes for v5.16
Minor cleanups - from undocumented or unused properties, coding style.
* tag 'samsung-dt-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
ARM: dts: exynos: use spaces instead of tabs around '='
ARM: dts: exynos: remove unneeded DVS voltages from PMIC on Arndale
ARM: dts: exynos: drop undocumented samsung,sata-freq property in Exynos5250
Link: https://lore.kernel.org/r/20211013162418.43072-1-krzysztof.kozlowski@canonical.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
Qualcomm DTS updates for v5.16
This extends the previous limited description of MSM8226 with SDHC,
UART, I2C, SCM, SMEM, RPM and basic PMIC definitions. Based on this,
initial support for the LG G Watch R smartwatch is introduced.
APQ8064 gets a couple of DT updates, one which will allow the GPU driver
to drop supporting legacy "opp tables" in the future.
DT bindings and DTS files are updated with additional compatibles, for
completeness.
* tag 'qcom-dts-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
dt-bindings: arm: qcom, add missing devices
ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY
ARM: dts: qcom: fill secondary compatible for multiple boards
ARM: dts: qcom: apq8064: adjust memory node according to specs
ARM: dts: qcom: apq8064: Convert adreno from legacy gpu-pwrlevels to opp-v2
ARM: dts: qcom: Add support for LG G Watch R
dt-bindings: arm: qcom: Document APQ8026 SoC binding
ARM: dts: qcom: Add pm8226 PMIC
ARM: dts: qcom: msm8226: Add more SoC bits
dt-bindings: arm: qcom: Document SDX65 platform and boards
Link: https://lore.kernel.org/r/20211012174310.1017857-1-bjorn.andersson@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
Pull Arm architected timer driver rework from Marc (via Daniel) so that
we can add the Armv8.6 support on top.
Link: https://lore.kernel.org/r/d0c55386-2f7f-a940-45bb-d80ae5e0f378@linaro.org
* 'timers/drivers/armv8.6_arch_timer' of https://git.linaro.org/people/daniel.lezcano/linux:
clocksource/drivers/arch_arm_timer: Move workaround synchronisation around
clocksource/drivers/arm_arch_timer: Fix masking for high freq counters
clocksource/drivers/arm_arch_timer: Drop unnecessary ISB on CVAL programming
clocksource/drivers/arm_arch_timer: Remove any trace of the TVAL programming interface
clocksource/drivers/arm_arch_timer: Work around broken CVAL implementations
clocksource/drivers/arm_arch_timer: Advertise 56bit timer to the core code
clocksource/drivers/arm_arch_timer: Move MMIO timer programming over to CVAL
clocksource/drivers/arm_arch_timer: Fix MMIO base address vs callback ordering issue
clocksource/drivers/arm_arch_timer: Move drop _tval from erratum function names
clocksource/drivers/arm_arch_timer: Move system register timer programming over to CVAL
clocksource/drivers/arm_arch_timer: Extend write side of timer register accessors to u64
clocksource/drivers/arm_arch_timer: Drop CNT*_TVAL read accessors
clocksource/arm_arch_timer: Add build-time guards for unhandled register accesses
|
|
In randconfig builds, we sometimes come across this warning:
arm-linux-gnueabi-ld: XIP start address may cause MPU programming issues
While this is helpful for actual systems to figure out why it
fails, the warning does not provide any benefit for build testing,
so guard it in a check for CONFIG_COMPILE_TEST, which is usually
set on randconfig builds.
Fixes: 216218308cfb ("ARM: 8713/1: NOMMU: Support MPU in XIP configuration")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
With extra warnings enabled, gcc complains about this function
definition:
arch/arm/probes/kprobes/core.c: In function 'arch_init_kprobes':
arch/arm/probes/kprobes/core.c:465:12: warning: old-style function definition [-Wold-style-definition]
465 | int __init arch_init_kprobes()
Link: https://lore.kernel.org/all/20201027093057.c685a14b386acacb3c449e3d@kernel.org/
Fixes: 24ba613c9d6c ("ARM kprobes: core code")
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
When frame pointers are used instead of the ARM unwinder,
and the kernel is built using clang with an external assembler
and CONFIG_XIP_KERNEL, every file produces two warnings
like:
arm-linux-gnueabi-ld: warning: orphan section `.ARM.extab' from `net/mac802154/util.o' being placed in section `.ARM.extab'
arm-linux-gnueabi-ld: warning: orphan section `.ARM.exidx' from `net/mac802154/util.o' being placed in section `.ARM.exidx'
The same fix was already merged for the normal (non-XIP)
linker script, with a longer description.
Fixes: c39866f268f8 ("arm/build: Always handle .ARM.exidx and .ARM.extab sections")
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Both the decompressor code and the kasan logic try to override
the memcpy() and memmove() definitions, which leading to a clash
in a KASAN-enabled kernel with XZ decompression:
arch/arm/boot/compressed/decompress.c:50:9: error: 'memmove' macro redefined [-Werror,-Wmacro-redefined]
#define memmove memmove
^
arch/arm/include/asm/string.h:59:9: note: previous definition is here
#define memmove(dst, src, len) __memmove(dst, src, len)
^
arch/arm/boot/compressed/decompress.c:51:9: error: 'memcpy' macro redefined [-Werror,-Wmacro-redefined]
#define memcpy memcpy
^
arch/arm/include/asm/string.h:58:9: note: previous definition is here
#define memcpy(dst, src, len) __memcpy(dst, src, len)
^
Here we want the set of functions from the decompressor, so undefine
the other macros before the override.
Link: https://lore.kernel.org/linux-arm-kernel/CACRpkdZYJogU_SN3H9oeVq=zJkRgRT1gDz3xp59gdqWXxw-B=w@mail.gmail.com/
Link: https://lore.kernel.org/lkml/202105091112.F5rmd4By-lkp@intel.com/
Fixes: d6d51a96c7d6 ("ARM: 9014/2: Replace string mem* functions for KASan")
Fixes: a7f464f3db93 ("ARM: 7001/2: Wire up support for the XZ decompressor")
Reported-by: kernel test robot <lkp@intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
A kernel built with CONFIG_THUMB2_KERNEL=y and using clang as the
assembler could generate non-naturally-aligned v7wbi_tlb_fns which
results in a boot failure. The original commit adding the macro missed
the .align directive on this data.
Link: https://github.com/ClangBuiltLinux/linux/issues/1447
Link: https://lore.kernel.org/all/0699da7b-354f-aecc-a62f-e25693209af4@linaro.org/
Debugged-by: Ard Biesheuvel <ardb@kernel.org>
Debugged-by: Nathan Chancellor <nathan@kernel.org>
Debugged-by: Richard Henderson <richard.henderson@linaro.org>
Fixes: 66a625a88174 ("ARM: mm: proc-macros: Add generic proc/cache/tlb struct definition macros")
Suggested-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
ARM: kasan: Fix __get_user_check failure with kasan
In macro __get_user_check defined in arch/arm/include/asm/uaccess.h,
error code is store in register int __e(r0). When kasan is
enabled, assigning value to kernel address might trigger kasan check,
which unexpectedly overwrites r0 and causes undefined behavior on arm
kasan images.
One example is failure in do_futex and results in process soft lockup.
Log:
watchdog: BUG: soft lockup - CPU#0 stuck for 62946ms! [rs:main
Q:Reg:1151]
...
(__asan_store4) from (futex_wait_setup+0xf8/0x2b4)
(futex_wait_setup) from (futex_wait+0x138/0x394)
(futex_wait) from (do_futex+0x164/0xe40)
(do_futex) from (sys_futex_time32+0x178/0x230)
(sys_futex_time32) from (ret_fast_syscall+0x0/0x50)
The soft lockup happens in function futex_wait_setup. The reason is
function get_futex_value_locked always return EINVAL, thus pc jump
back to retry label and causes looping.
This line in function get_futex_value_locked
ret = __get_user(*dest, from);
is expanded to
*dest = (typeof(*(p))) __r2; ,
in macro __get_user_check. Writing to pointer dest triggers kasan check
and overwrites the return value of __get_user_x function.
The assembly code of get_futex_value_locked in kernel/futex.c:
...
c01f6dc8: eb0b020e bl c04b7608 <__get_user_4>
// "x = (typeof(*(p))) __r2;" triggers kasan check and r0 is overwritten
c01f6dCc: e1a00007 mov r0, r7
c01f6dd0: e1a05002 mov r5, r2
c01f6dd4: eb04f1e6 bl c0333574 <__asan_store4>
c01f6dd8: e5875000 str r5, [r7]
// save ret value of __get_user(*dest, from), which is dest address now
c01f6ddc: e1a05000 mov r5, r0
...
// checking return value of __get_user failed
c01f6e00: e3550000 cmp r5, #0
...
c01f6e0c: 01a00005 moveq r0, r5
// assign return value to EINVAL
c01f6e10: 13e0000d mvnne r0, #13
Return value is the destination address of get_user thus certainly
non-zero, so get_futex_value_locked always return EINVAL.
Fix it by using a tmp vairable to store the error code before the
assignment. This fix has no effects to non-kasan images thanks to compiler
optimization. It only affects cases that overwrite r0 due to kasan check.
This should fix bug discussed in Link:
[1] https://lore.kernel.org/linux-arm-kernel/0ef7c2a5-5d8b-c5e0-63fa-31693fd4495c@gmail.com/
Fixes: 421015713b30 ("ARM: 9017/2: Enable KASan for ARM")
Signed-off-by: Lexi Shao <shaolexi@huawei.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Commit 344179fc7ef4 ("ARM: 9106/1: traps: use get_kernel_nofault instead
of set_fs()") replaced an occurrence of __get_user() with
get_kernel_nofault(), but inverted the sense of the conditional in the
process, resulting in no values to be printed at all.
I.e., every exception stack now looks like this:
Exception stack(0xc18d1fb0 to 0xc18d1ff8)
1fa0: ???????? ???????? ???????? ????????
1fc0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
1fe0: ???????? ???????? ???????? ???????? ???????? ????????
which is rather unhelpful.
Fixes: 344179fc7ef4 ("ARM: 9106/1: traps: use get_kernel_nofault instead of set_fs()")
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
tglx notes:
This function [futex_detect_cmpxchg] is only needed when an
architecture has to runtime discover whether the CPU supports it or
not. ARM has unconditional support for this, so the obvious thing to
do is the below.
Fixes linkage failure from Clang randconfigs:
kernel/futex.o:(.text.fixup+0x5c): relocation truncated to fit: R_ARM_JUMP24 against `.init.text'
and boot failures for CONFIG_THUMB2_KERNEL.
Link: https://github.com/ClangBuiltLinux/linux/issues/325
Comments from Nick Desaulniers:
See-also: 03b8c7b623c8 ("futex: Allow architectures to skip
futex_atomic_cmpxchg_inatomic() test")
Reported-by: Arnd Bergmann <arnd@arndb.de>
Reported-by: Nathan Chancellor <nathan@kernel.org>
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Cc: stable@vger.kernel.org # v3.14+
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
When user code execution with privilege mode, it will lead to
infinite loop in the page fault handler if ARM_LPAE enabled,
The issue could be reproduced with
"echo EXEC_USERSPACE > /sys/kernel/debug/provoke-crash/DIRECT"
As Permission fault shows in ARM spec,
IFSR format when using the Short-descriptor translation table format
Permission fault: 01101 First level 01111 Second level
IFSR format when using the Long-descriptor translation table format
Permission fault: 0011LL LL bits indicate levelb.
Add is_permission_fault() function to check permission fault and die
if permission fault occurred under instruction fault in do_page_fault().
Fixes: 1d4d37159d01 ("ARM: 8235/1: Support for the PXN CPU feature on ARMv7")
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Provide die_kernel_fault() helper to do the kernel fault reporting,
which with msg argument, it could report different message in different
scenes, and the later patch "ARM: mm: Fix PXN process with LPAE feature"
will use it.
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Now the show_pts() will dump the virtual (hashed) address of page
table base, it is useless, kill it.
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Now the write fault check in do_page_fault() and access_error() twice,
we can cleanup access_error(), and make the fault check and vma flags set
into do_page_fault() directly, then pass the vma flags to __do_page_fault.
No functional change.
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
The __do_page_fault() won't use task_struct argument, kill it
and also use current->mm directly in do_page_fault().
No functional change.
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Clean up the multiple goto statements and drops local variable
vm_fault_t fault, which will make the __do_page_fault() much more
readability.
No functional change.
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
iMX6 needs to write some code to OCRAM which resumes the DDR controller
after suspend. However, merely using __arm_ioremap_exec() causes the
kernel to complain of a W+X mapping. Solve this by using the newly
introduced __arm_iomem_set_ro() function to prevent inadvertent or
malicious writes to code we may later execute.
Tested-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
__arm_iomem_set_ro() marks an ioremapped area read-only. This is
intended for use with __arm_ioremap_exec() to allow the kernel to
write some code into e.g. SRAM and then write-protect it so the
kernel doesn't complain about W+X mappings.
Tested-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Add support for parsing the "linux,usable-memory-range" DT property.
This property is used to describe the usable memory reserved for the
crash dump kernel, and thus makes the memory reservation explicit.
If present, Linux no longer needs to mask the program counter, and rely
on the "mem=" kernel parameter to obtain the start and size of usable
memory.
For backwards compatibility, the traditional method to derive the start
of memory is still used if "linux,usable-memory-range" is absent.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
The remove callback is only called after probe completed successfully.
In this case platform_set_drvdata() was called with a non-NULL argument
and so !sdev is never true.
The motivation for this change is to get rid of non-zero return values
for remove callbacks as their only effect is to trigger a runtime
warning. See commit e5e1c2097881 ("driver core: platform: Emit a warning
if a remove callback returned non-zero") for further details.
Link: https://lore.kernel.org/linux-arm-kernel/20210721205450.2173923-1-u.kleine-koenig@pengutronix.de
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Commit 344179fc7ef4 ("ARM: 9106/1: traps: use get_kernel_nofault instead
of set_fs()") replaced an occurrence of __get_user() with
get_kernel_nofault(), but inverted the sense of the conditional in the
process, resulting in no values to be printed at all.
I.e., every exception stack now looks like this:
Exception stack(0xc18d1fb0 to 0xc18d1ff8)
1fa0: ???????? ???????? ???????? ????????
1fc0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ????????
1fe0: ???????? ???????? ???????? ???????? ???????? ????????
which is rather unhelpful.
Fixes: 344179fc7ef4 ("ARM: 9106/1: traps: use get_kernel_nofault instead of set_fs()")
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
A new 'chassis-type' root node property has recently been approved for
the device-tree specification.
Add this property for end-user devices (such as laptops,
smartphones and tablets) based on Samsung S5Pv210 ARM SoCs.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Link: https://lore.kernel.org/r/20211017101228.19478-3-krzysztof.kozlowski@canonical.com
|
|
A new 'chassis-type' root node property has recently been approved for
the device-tree specification.
Add this property for end-user devices (such as laptops,
smartphones and tablets) based on Samsung Exynos ARM SoCs.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Link: https://lore.kernel.org/r/20211017101228.19478-2-krzysztof.kozlowski@canonical.com
|
|
The branch is a stable branch shared with ARM maintainers for the
first 13th patches of the series:
It is based on v5.14-rc3.
As stated by the changelog:
" [... ] enabling ARMv8.6 support for timer subsystem, and was prompted by a
discussion with Oliver around the fact that an ARMv8.6 implementation
must have a 1GHz counter, which leads to a number of things to break
in the timer code:
- the counter rollover can come pretty quickly as we only advertise a
56bit counter,
- the maximum timer delta can be remarkably small, as we use the
countdown interface which is limited to 32bit...
Thankfully, there is a way out: we can compute the minimal width of
the counter based on the guarantees that the architecture gives us,
and we can use the 64bit comparator interface instead of the countdown
to program the timer.
Finally, we start making use of the ARMv8.6 ECV features by switching
accesses to the counters to a self-synchronising register, removing
the need for an ISB. Hopefully, implementations will *not* just stick
an invisible ISB there...
A side effect of the switch to CVAL is that XGene-1 breaks. I have
added a workaround to keep it alive.
I have added Oliver's original patch[0] to the series and tweaked a
couple of things. Blame me if I broke anything.
The whole things has been tested on Juno (sysreg + MMIO timers),
XGene-1 (broken sysreg timers), FVP (FEAT_ECV, CNT*CTSS_EL0).
"
Link: https://lore.kernel.org/r/20211017124225.3018098-1-maz@kernel.org
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
|
|
This is a default implementation which calls flush_dcache_page() on
each page in the folio. If architectures can do better, they should
implement their own version of it.
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
|
|
We need the usb fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
Pull driver core fixes from Greg KH:
"Here are some small driver core fixes for 5.15-rc6, all of which have
been in linux-next for a while with no reported issues.
They include:
- kernfs negative dentry bugfix
- simple pm bus fixes to resolve reported issues"
* tag 'driver-core-5.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
drivers: bus: Delete CONFIG_SIMPLE_PM_BUS
drivers: bus: simple-pm-bus: Add support for probing simple bus only devices
driver core: Reject pointless SYNC_STATE_ONLY device links
kernfs: don't create a negative dentry if inactive node exists
|
|
Now that the pmic-mpp is a proper hierarchical IRQ chip, add interrupt
controller properties ('interrupt-controller' and '#interrupt-cells').
The interrupts property is no longer needed so remove it.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20211008012524.481877-24-dmitry.baryshkov@linaro.org
|
|
Now that the pmic-mpp is a proper hierarchical IRQ chip, add interrupt
controller properties ('interrupt-controller' and '#interrupt-cells').
The interrupts property is no longer needed so remove it.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20211008012524.481877-23-dmitry.baryshkov@linaro.org
|