Commit Graph

6574 Commits

Author SHA1 Message Date
Olof Johansson 36b8bee7b9 ARM64: DT: Hisilicon SoC DT updates for 4.16
- Add SD card support for the hi3798cv200-poplar board
 - Replace the PMU node with exact match for the hi3660 SoC
 - Add cpu capacity-dmips-mhz information for the hi3660 SoC
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJaRVfLAAoJEAvIV27ZiWZc2O0QAKQpuXdEbsWpS2EHi+n8nsNm
 gyymPdEoi8y7Lf4r6CjxyrNJM0nVESFVkw99EdcRJmzAMJVOtqOYKdBdUiHk9k1a
 ODNEHHhyXKbjpOXGBacth4NmPKm48TfOS71jCdfDyY5hRczC1WaDdeg2ixsGlDcb
 kLmtGecX7MDwJb00sjco23AjAUVNIw4Xjxlbeq8be1UZBqB3Jdj6iC8HT6OVGwom
 mDr4tKcfB5Xzriba2fETEmZZYCpdnyrrHLHkEXBgqu7Xi0xgeGhWtVi5E+mSxkwd
 nTuB/YzQ1qqxU3LQn12gXFLDI0vMCZh/WQbIBm8HGt1atJJKpq19xWiEQF3DTR3M
 L3e0UA0ZNAKXn+AdHCiKfZcQ2xzLWgGY4TDSnEN9p9ZfGAszs69UmOAzlzKP61eY
 R+0oECpeCUC+DA5Qlsxnbyi+EXafFiPprd41GKDZg33DwRnJl/HKXDWnSXjn9hfF
 HRhfd4CWYGGvjNPMfo4qs9ma8nLxU2PAKwh8p7kCoZwTdrg3T0PNm4Yv+wO9Ddv+
 GbHPlvEW4jiGZNz7bqrDb6sDi/4gHzehV3qVUDvbzOhzlySgf7GqQOsBq5w5HUwy
 Ty10o5BV+SeXsN3d1EpdOHSG+1MXtl2iOwc6/2ggQqECSCiiTxjPYJt4scGC4a/L
 v35QSnYWL2hb0kwzNoO+
 =F5Y/
 -----END PGP SIGNATURE-----

Merge tag 'hisi-arm64-dt-for-4.16-v2' of git://github.com/hisilicon/linux-hisi into next/dt

ARM64: DT: Hisilicon SoC DT updates for 4.16

- Add SD card support for the hi3798cv200-poplar board
- Replace the PMU node with exact match for the hi3660 SoC
- Add cpu capacity-dmips-mhz information for the hi3660 SoC

* tag 'hisi-arm64-dt-for-4.16-v2' of git://github.com/hisilicon/linux-hisi:
  arm64: dts: hisilicon: Add hi3660 cpu capacity-dmips-mhz information
  arm64: dts: hi3660: improve pmu description
  arm64: dts: hi3798cv200: add SD card support

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-01-04 22:35:13 -08:00
Arnd Bergmann db29bf7b1c arm64: dts: sprd: remove broken header inclusion
The added header inclusion broke the 'allmodconfig' build in
arm-soc, presumably since the file is added in a different tree:

In file included from arch/arm64/boot/dts/sprd/sp9860g-1h10.dts:11:0:
arch/arm64/boot/dts/sprd/sc9860.dtsi:10:10: fatal error: dt-bindings/clock/sprd,sc9860-clk.h: No such file or directory

It turns out we don't actually need to include it at all, so
I'm removing the line again to fix the build.

Fixes: 22f37a2429 ("arm64: dts: add clocks for SC9860")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2018-01-04 23:55:52 +01:00
Chunyan Zhang 22f37a2429 arm64: dts: add clocks for SC9860
Some clocks on SC9860 are in the same address area with syscon devices,
those are what have a property of 'sprd,syscon' which would refer to
syscon devices, others would have a reg property indicated their address
ranges.

Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2018-01-04 17:50:39 +01:00
Chunyan Zhang 33d3ebd408 arm64: dts: add syscon for whale2 platform
Some clocks on SC9860 are in the same address area with syscon
devices, the proper syscon node will be quoted under the
definitions of those clocks in DT.

Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2018-01-04 17:50:21 +01:00
Valentin Schneider 9a9760dede arm64: dts: hisilicon: Add hi3660 cpu capacity-dmips-mhz information
The following dt entries are added:
 cpus [0-3] (Cortex A53):
   - capacity-dmips-mhz = <592>;

 cpus [4-7] (Cortex A73):
   - capacity-dmips-mhz = <1024>;

Those values were obtained by running dhrystone 2.1 on a
HiKey960 with the following procedure:
- Offline all CPUs but CPU0 (A53)
- Set CPU0 frequency to maximum
- Run Dhrystone 2.1 for 20 seconds

- Offline all CPUs but CPU4 (A73)
- set CPU4 frequency to maximum
- Run Dhrystone 2.1 for 20 seconds

The results are as follows:
A53: 129633887 loops
A73: 287034147 loops

By scaling those values so that the A73s use 1024, we end up with 462
for the A53s. However, they have different maximum frequencies:
1.844GHz for A53s and 2.362GHz for A73s. Thus, we can scale the A53
value to truly represent dmips per MHz, and we end up with 592.

The impact of this change can be verified on HiKey960:

$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
1844000
1844000
1844000
1844000
2362000
2362000
2362000
2362000

$ cat /sys/devices/system/cpu/cpu*/cpu_capacity
462
462
462
462
1024
1024
1024
1024

Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Reviewed-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
2017-12-22 09:11:42 +00:00
Xu YiPing e07642fa43 arm64: dts: hi3660: improve pmu description
cortex-a73 pmu driver is supported now. hi3660 is 4*a73 + 4*a53, so it
should use "cortex-a73-pmu" and "cortex-a53-pmu" instead of "armpmu-v3",
then we can use the a73 and a53 events in perf tool directly.

Signed-off-by: Xu YiPing <xuyiping@hisilicon.com>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
2017-12-22 09:11:41 +00:00
Arnd Bergmann 3c37b6d989 General RK3399 gets Mipi nodes, fixes for usb3 support and better support
for the type-c phys. The Kevin Chromebooks based on rk3399 now can use their
 internal edp displays. RK3328 gets its efuse node and Mali450 gpu node,
 which actually produces already some nice results with the WIP Lima driver.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAlo7/J4QHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgVogB/wNdimvRAq7DdpIXxzMxoIEB3jXZ1zJ2TVL
 Gxim5h0RizQGIoiV4CYkQG2CdB1HG4Updj4SW9GYMl004fklSA26fB64WFVDM0VR
 8uqVxkyCgo2QzzQxsNDPrXvNv3WjbrFVe+pWebzUZ1RCkHBgeJA/o61vjdNdvwq3
 jgnr0YDjYYU+9sqoq31SYe0vzvoDGPmE7+Mlmw3eAszQqV66sk0/50IKV5z4xx8e
 oyD4M0JpPhGyPMoaBIekzr4wjkrKbEeJ5VQy/afFAYJWzi8X+vABIH78kGl+9q76
 AmEQxBWr0ZQSIPWTVofUzHzKX78gSt2Gts2kbaFXPzMbCn8xWcKM
 =C4Hu
 -----END PGP SIGNATURE-----

Merge tag 'v4.16-rockchip-dts64-1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt

Pull "Rockchip dts64 changes for 4.16" from Heiko Stübner:

General RK3399 gets Mipi nodes, fixes for usb3 support and better support
for the type-c phys. The Kevin Chromebooks based on rk3399 now can use their
internal edp displays. RK3328 gets its efuse node and Mali450 gpu node,
which actually produces already some nice results with the WIP Lima driver.

* tag 'v4.16-rockchip-dts64-1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  arm64: dts: rockchip: Add efuse device node for RK3328 SoC
  arm64: dts: rockchip: add rk3328 mali gpu node
  dt-bindings: gpu: mali-utgard: add rockchip,rk3328-mali compatible
  arm64: dts: rockchip: add extcon nodes and enable tcphy rk3399-gru
  arm64: dts: rockchip: add usb3-phy otg-port support for rk3399
  arm64: dts: rockchip: add reset property for dwc3 controllers on rk3399
  arm64: dts: rockchip: add the aclk_usb3 clocks for USB3 on rk3399
  arm64: dts: rockchip: add pd_usb3 power-domain node for rk3399
  arm64: dts: rockchip: Enable edp disaplay on kevin
  arm64: dts: rockchip: update mipi cells for RK3399
  arm64: dts: rockchip: add mipi_dsi1 support for rk3399
  arm64: dts: rockchip: add rk3399 DSI0 reset
2017-12-21 22:57:40 +01:00
Arnd Bergmann 2939f96539 - mt8173 add cpufreq related nodes
supply nodes
   frequency/voltage operation table
 
 - mt2712 add cpufreq related nodes
   fixed regulator
   supply nodes
   frequency/voltage operation table
 - mt2712 add clock contoller nodes
 - mt2712 add scpsys node
 -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCAA1FiEEiUuSfQSYnG8EMsBltDliWyzx00MFAlo7nR8XHG1hdHRoaWFz
 LmJnZ0BnbWFpbC5jb20ACgkQtDliWyzx00Nv2A/+Lw6UXhnIrINEv+LP9d5ECLIO
 QECRmHMYhyJDNAS3EjZR3phneYFKSKxdoAwF9prT0vaTZSvaGVShSg7RiN/sSNyR
 u7mOWrjDroXMLVw1stxLe25yLpO9nuw3ORf5kS1FE8CHeeC+6cJ6NPob/qEz9iUq
 BqcZJIrHzwWQASc3JpNwTcYnHRqweylyyKjrHF4mIzXoW7RpW/1yONjXc7hXapuB
 EggZRpHdM/1wv9HxBlsuPfH/NxHmA48DIS/kz+00tSKwpVJgKdSbTW7lFN99up8s
 6HUx1qpd1Elh8q048c0Oe202ubYOwpDDO8REeFsqBFuseAXPogPzXPSusTghm8Ph
 orgmV3sOHvr2XWD7QeEUtVSfPV+JnGWFeJ/Bx9jAxIVQ3BmWkoHbuiq/kAZ/uK3s
 HvnaiaidiBnIygNE6OZIvKNbeoF40601+60VquKfydqoQ47mYR0+xN89Q5F4m6Q9
 ugTLbHrDU00soPueODWi+AlLfarThIjU+7aqcPbya6sNJfA/HAtVmX/wpWc5kR9a
 rEuEzFUgAWQocfZNZXgAfQES67L32MFsTbK5B0gpTT2VgAFdmKNUnjq4AFX+kghk
 GHTHxz4s6iMoH6kdaU3BVkJIiUBSKXoCsnIRwD7QOxlSNNMdtwyugUxeXBzSQA4j
 7EgwCT9WfCIXEfSP3Eo=
 =yHbI
 -----END PGP SIGNATURE-----

Merge tag 'v4.15-next-dts64' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into next/dt

Pull "arm64: Updates of aarch64 DTS for v4.15-next" from Matthias Brugger

- mt8173 add cpufreq related nodes
  supply nodes
  frequency/voltage operation table

- mt2712 add cpufreq related nodes
  fixed regulator
  supply nodes
  frequency/voltage operation table
- mt2712 add clock contoller nodes
- mt2712 add scpsys node

* tag 'v4.15-next-dts64' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux:
  arm64: dts: Add power controller device node of MT2712
  arm64: dts: mediatek: add mt2712 cpufreq related device nodes
  arm64: dts: mt2712: Add clock controller device nodes
  arm64: dts: mediatek: add mt8173 cpufreq related device nodes
  dt-bindings: soc: add MT2712 power dt-bindings
2017-12-21 18:09:54 +01:00
Arnd Bergmann cd9787e829 arm64: tegra: Changes for v4.16-rc1
This set of patches enables a bunch of new features on Jetson TX2 that
 were finally unblocked by the GPIO driver getting merged for v4.15.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAlo6tuMTHHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zodskD/wLlXn2w48dUcTJDqwQr5I4FsLKe99u
 si2Ci4MW3M/62apNGpc7HaKE5H7XWYuzeL282IJEKwPpnzg3YGb+9cvgi9fyjgOz
 G+Faze57wMWzfFvEQBoNXtOjA/6W9jeurxm/41naTVl9XtKYxIXUECwKxdZboT2t
 9lfJIuAJIWKh8MCpWf9LzNJPW9lld5rbxk/M7htczsCPdmPNdSZwJQMh9lJmw2Mc
 fBOp4NbY4gU3Tcaua9NWaEMUC5Zf07FgEaQldH1gsRAOlA5ZlraHBjjUcQq/kOTf
 ApRcnIUpR4BdC5GPKn49ahrPrPwfKNdfLaeynd1WL9+ELnFSzBYotLVmWIGExxDc
 F3cIzkEmAX5xzjLs/eCeX3rlW1jvBcx0+nxZ2TkuBnKegG4tL0cma2W1k6pcU4xj
 s3WDmdGcr5U1a1/a/CCSn7nV7SKgJVr5knuwxiZKqtQlzyjJI5VidfhT4yJ0pnsk
 t2Eird2eWH9O8CjvpEya4gc6QKUdj6/VoykutJUfw0aApIIY2ZGWYQ6l9tf9pE6O
 RYEOhX9oS2XL5NUGiu5CE3XdjIaMcZ53qkqH0U1wd1yfc3siWKilZ/2OPEaDG3tH
 YNQZkoLQ6P5rOz+YNhSI9VCYXIkJ/A/XbSg+NAvnxfLxVcPZ0XcIZYS8SNbORMUf
 EsrMYd4QiIjtyA==
 =7QxU
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-4.16-arm64-dt' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/dt

Pull "arm64: tegra: Changes for v4.16-rc1" from Thierry Reding:

This set of patches enables a bunch of new features on Jetson TX2 that
were finally unblocked by the GPIO driver getting merged for v4.15.

* tag 'tegra-for-4.16-arm64-dt' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  arm64: tegra: Use sor1_out clock
  arm64: tegra: Fix SD write-protect polarity on Jetson TX2
  arm64: tegra: Add CPU and PSCI nodes for NVIDIA Tegra210 platforms
  arm64: tegra: Enable HDMI on Jetson TX2
  arm64: tegra: Mark I2C4 as DDC on P3310
  arm64: tegra: Add display nodes on Tegra186
  arm64: tegra: Add SMMU node for Tegra186
  arm64: tegra: Enable memory controller on P3310
  arm64: tegra: Add memory controller on Tegra186
  arm64: tegra: Add FUSE block on Tegra186
  arm64: tegra: Add MISC registers on Tegra186
2017-12-21 17:55:24 +01:00
Arnd Bergmann ce63eb7dc4 Samsung DTS ARM64 changes for v4.16
1. Add CPU perf counters to Exynos5433.
 2. Add missing power domains to Exynos5433.
 3. Add NFC chip to Exynos5433 TM2/TM2E.
 4. Fix obscure bugs on I2C transfers to MHL chip on TM2/TM2E.
 -----BEGIN PGP SIGNATURE-----
 
 iQItBAABCAAXBQJaOp7AEBxrcnprQGtlcm5lbC5vcmcACgkQwTdm5oaLg9d9DQ/9
 Fz783fsK8p9/o5++Aoq4htzpkG6nO0lB6GjP/P+Smq/z61r3OZbtILJxq0EqCChZ
 iJA28N+1AnhLi/NX2DaVn7216lSOzddUPccLvRPGeTlpfpwB9SdOVqn0urhg+yOh
 LNKxB5+nxE5kkbd+JqUT02xAV/yiA9QuIRA3frfEyzsx4/zpdEmY7yGPSFi05n7U
 hbgf2kyIkPtFjk1VC6OLW3BltXaLrzcOfhxpunUZec5YUnyKM1Ar9PwltF2ZtIjZ
 eWmMtdMw4DlOke/L5HyXUYMaaGMyS6M0EUbcZ8dPrWENbgj2IxLIMDiK2PKg5Gpz
 r/euCzH1Y7x3oXtjVq1d16Vy/fn9qdYqUrzKrtfmSgwAFOQBh6r4hR9+D3Mm+A33
 Ec6GNkKC1YxuXECw26jpBd/TrS1APc9/wxeV3ztM5nDAYyrOK+rmxP+tWLXxaqdI
 SvyhXwmwibo5ETtJ+8yM7NKnv4btOMSwrzNgZ2FQuqoA1dn63NhAIX7v4O3xPZoi
 rFLDJDX9YcEKn9xmr7tt75X4c5CV67Yrt/Tl0WdsMrIuNwwqJZyKmUv2x/hZl/28
 D/+FEe5XlDdIyeI3O9CtjUH5uWGDrbcQHEMWhV6l/UAmHZRNxxGywehFj2YyIpgW
 OIUV/+Lx4fDqc3e9MCRq/l2ufROSlTV/HFJ3C4EkZsE=
 =dsdB
 -----END PGP SIGNATURE-----

Merge tag 'samsung-dt64-4.16' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/dt

Pull "Samsung DTS ARM64 changes for v4.16" from Krzysztof Kozłowski:

1. Add CPU perf counters to Exynos5433.
2. Add missing power domains to Exynos5433.
3. Add NFC chip to Exynos5433 TM2/TM2E.
4. Fix obscure bugs on I2C transfers to MHL chip on TM2/TM2E.

* tag 'samsung-dt64-4.16' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  arm64: dts: exynos: Increase bus frequency for MHL chip
  arm64: dts: exynos: Add remaining power domains to Exynos5433 SoC
  arm64: dts: exynos: Add AUD power domain to Exynos5433 SoC
  arm64: dts: exynos: Add MFC power domain to Exynos 5433 SoC
  arm64: dts: exynos: Add MSCL power domain to Exynos 5433 SoC
  arm64: dts: exynos: Add DISP power domain to Exynos 5433 SoC
  arm64: dts: exynos: Add GSCL power domain to Exynos 5433 SoC
  arm64: dts: exynos: Add support for S3FWRN5 NFC chip to TM2(e) boards
  arm64: dts: exynos: Add CPU performance counters to Exynos5433 boards
2017-12-21 17:44:06 +01:00
Arnd Bergmann 8d7ac420c1 Amlogic 64-bit DT updates for v4.16
- meson-gx: add VPU power domain support
 - odroid-c2: add HDMI and CEC nodes
 - misc cleanups
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAlovIYkACgkQWTcYmtP7
 xmVMUg//c2qqAe74qbCq4oNF3N7StlaT99cXG7AG97lXAUMLuDpkheRbMzOe0jFl
 doiUuDbtx0mBy42yBDXzXuFxw7D8CaZFx8cvZ59gJf7YTN0MzLCxaRy6PAU5iYDj
 h0L6lB1lFbS5ov03lzWgF0je9mUDu+mQ062qhfvYn5iwGhkUlS2fSNgx6u2PBBUO
 vevfwMZ4mhhm0vltCmXyC6AlR3so+8sGl/aVZ149X0YoDuvJJFQRfBM/wnKeebCL
 IEXM+YjspJDpOs6N8sHhvqV1XZKxu5V4WK12gN+8VXj8uERkMx1OTM66Zmyy+Ewl
 c0Jd9VJ0ZaRBpFPqgPegmzt27k4IscZVPNjCCR5pcRCxc2gENNIj9xfBRUoTcm9F
 zZka8d4r3DTTP58CgzuNNO0bC6xaoi3pGK4q3kl0rIttYYfeSAd3DeibsS11D7Mp
 zkvk4E7TmrhsSDTbjl5xWGXJ/+nMfYk8BhR5jL2LnQlYpzOeQtYnDGb7y1wyooVt
 6Tm6FLMrv5or5g7zmS6o3X0f2MDlp9UwAOvHP3F1ujRmZwBz8TEhdUVvObo4+pZZ
 sR5HeEbNU9a0qanNYwG0mBhxE5iI0qQItV4wVYmxpnYuAStXml4RNUbXzwJBP+ME
 Zc6USo0FhjKKmBqllg9gTjbXb9HZvqds7LHgBVEKWmjsP1pMlu0=
 =0wR5
 -----END PGP SIGNATURE-----

Merge tag 'amlogic-dt64' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into next/dt

Pull "Amlogic 64-bit DT updates for v4.16" from Kevin Hilman
- meson-gx: add VPU power domain support
- odroid-c2: add HDMI and CEC nodes
- misc cleanups

* tag 'amlogic-dt64' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
  ARM64: dts: meson-gxm: fix q200 interrupt number
  ARM64: dts: meson-gxm: add the PHY interrupt line on Khadas VIM2
  ARM64: dts: meson: add comments with the GPIO for the PHY interrupts
  ARM64: dts: amlogic: use generic bus node names
  ARM64: dts: meson: drop "sana" clock from SAR ADC
  ARM64: dts: odroid-c2: Add HDMI and CEC Nodes
  ARM64: dts: meson-gx: grow reset controller memory zone
  ARM64: dts: meson-gx: Add HDMI_5V regulator on selected boards
  ARM64: dts: meson-gx: add VPU power domain
2017-12-21 16:38:31 +01:00
Arnd Bergmann 7d44cc2082 Renesas ARM64 Based SoC DT Updates for v4.16
* Use r8a77970 (V3M) CPG core clock and SYSC power domain macros
 
   These may be used in place of numeric constants now that they
   are present in Linus's tree.
 
 * Add r8a77970 (V3M) Starter Kit board support
 
   This includes basic support to bring up the board with a serial
   console and EtherAVB support
 
 * Add IPMMU nodes and connections to on-chip devices
   on r8a7795 (H3), r8a7796 (M3-W), r8a77970 (V3M) and r8a77995 (D3) SoCs
 
   Simon Horman says "With these patches applied a white list enabled IPMMU
   driver may be used to check silicon revision and then enable IPMMU in the
   known working cases."
 
 * Enable DMA for SCIF2 on r8a77995 (D2) SoC
 
 * Increase the number of GPIO bank 1 ports to 29 on r8a7795 (H3) SoC
 
   This adds support for the GP-1-28 port pin of the r8a7795 (H3) ES2.0 SoC
 
 * Add support for CAN to r8a77995 (D3) SoC
 
   Ulrich Hecht says "This is a by-the-datasheet implementation, with the
   datasheet missing some bits, namely the pin map.  I filled in the gaps...
   by deducing the information from pin numbers already in the PFC driver,
   so careful scrutiny is advised."
 
 * Add support for SDHI to r8a77995 (D3) SoC
 
 * Add SoC name to file header of r8a7795 (H3) and r8a7796 (M3-W)
   Salvator-X and Salvator-XS board files
 
   Geert Uytterhoeven says "With the proliferation of Salvator-X and
   Salvator-XS boards carrying different R-Car Gen3 SoCs variants, several
   DTS files ended up having the same file headers.
 
   Add the SoC names to the file headers to avoid confusion."
 
 * Add device note for ROHM BD9571MWV PMIC to
   r8a7795 (H3) and r8a7796 (M3-W) Salvator-X and Salvator-XS boards.
 
   Geert Uytterhoeven says "This was based on the example in the DT binding
   documentation, but using IRQ0 instead of a GPIO interrupt, as that
   matches the schematics, and because INTC-EX is a simpler block."
 
 * Enable USB2.0 channel 0 on r8a77970 (V3M) ULCB Kingfisher board
 
   Vladimir Barinov says "The dedicated USB0_PWEN pin is used to control
   CN13 VBUS source from U43 power supply.  MAX3355 can also provide VBUS,
   hence it should be disabled via OTG_OFFVBUSn node coming from gpio
   expander TCA9539.  Set MAX3355 enabled using OTG_EXTLPn node to be able
   to read OTG ID of CN13."
 
 * Add support for r8a7795 (M3-W) Salvator-XS board
 
   Geert Uytterhoeven says "This patch series adds support for the version
   of the Salvator-XS development board equipped with an R-Car M3-W SiP.
 
   The DT was based on work for the Salvator-X and -XS boards with M3-W
   resp. H3 SiPs."
 
 * Add watchdog timer support to r8a77970 (V3M) eagle board
 
   Geert Uytterhoven says "This allows to use the watchdog timer to reset
   the board, until PSCI is enhanced to include such functionality."
 
 * Use Use R-Car SDHI Gen3 fallback on r8a7795 (H3) and r8a7796 (M3-W) SoCs
 
 * Set driver type for MMC on r8a7795 (H3) and r8a7796 (M3-W) Salvator-X and
   Salvator-XS boards.
 
   Wolfram Sang says "These boards are known to have eMMC issues with the
   default driver type.  Specify a working one."
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE4nzZofWswv9L/nKF189kaWo3T74FAlopDo0ACgkQ189kaWo3
 T74XOA/+Ptv9Odl/V2U9RZ87AGnwXnAjDWeO6QOOMfeTzy4Q0q7fz6r5FVicK1Am
 H+Elb78vF2c+VuLOPmPxtB/dPOPgfb+NIvAxh4mEqhlEoCMs0nW2RsyTY9ydxzlw
 JQM/alhlhh+rNniMUkz+hvfoZUCzaFpGKrUL8XXDxIMf3d7EBVeT9+EhfI+7FkHI
 HDDCagM9vJGTwvVR6JMSvV8bcMgH+Pr4NL/OL9bA5iVlUmahsxRPiJP2Gi2cSsA6
 h+vbLna4LWTiKmRR8N5qkqcrUDYZ75kCUMT3TwQERWOdUn6Zw0VoKTeLdKp53yIb
 8UEKar82otcOANP7myxySUg1zHzAynyabn/F96n95xf7awYR+lRxbEv9L821LGD0
 tMcQxsbM4Q+d9XJxs9mkUtSi4iuUR+lR7QCZSPuhiBSKmzUDrjlXkeu4nfqWtFjQ
 wlfToiF8MwaGfNpqEYcRpi1cMXH13TV7VIDv5MdIRsaR/r7IWFwznaNFixrT4gNg
 a3HArpaSFI+XBagwtcHYGb/l4b3uvULFOjc40yXsxrZQuss8dPREi3uAwwxY0rPw
 BVjI6pOQohHykbdplt0OZlOwvkMPyL8Wnn63E7Lk71PijepPbPk9OzVKPJ/eqy2n
 gtvxs7BgfPDh3fvqCGFdFpBZ6aRjNG3DBivRdA9Pwn2Q6vuSslQ=
 =VaY3
 -----END PGP SIGNATURE-----

Merge tag 'renesas-arm64-dt-for-v4.16' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt

Pull "Renesas ARM64 Based SoC DT Updates for v4.16" from Simon Horman:

* Use r8a77970 (V3M) CPG core clock and SYSC power domain macros

  These may be used in place of numeric constants now that they
  are present in Linus's tree.

* Add r8a77970 (V3M) Starter Kit board support

  This includes basic support to bring up the board with a serial
  console and EtherAVB support

* Add IPMMU nodes and connections to on-chip devices
  on r8a7795 (H3), r8a7796 (M3-W), r8a77970 (V3M) and r8a77995 (D3) SoCs

  Simon Horman says "With these patches applied a white list enabled IPMMU
  driver may be used to check silicon revision and then enable IPMMU in the
  known working cases."

* Enable DMA for SCIF2 on r8a77995 (D2) SoC

* Increase the number of GPIO bank 1 ports to 29 on r8a7795 (H3) SoC

  This adds support for the GP-1-28 port pin of the r8a7795 (H3) ES2.0 SoC

* Add support for CAN to r8a77995 (D3) SoC

  Ulrich Hecht says "This is a by-the-datasheet implementation, with the
  datasheet missing some bits, namely the pin map.  I filled in the gaps...
  by deducing the information from pin numbers already in the PFC driver,
  so careful scrutiny is advised."

* Add support for SDHI to r8a77995 (D3) SoC

* Add SoC name to file header of r8a7795 (H3) and r8a7796 (M3-W)
  Salvator-X and Salvator-XS board files

  Geert Uytterhoeven says "With the proliferation of Salvator-X and
  Salvator-XS boards carrying different R-Car Gen3 SoCs variants, several
  DTS files ended up having the same file headers.

  Add the SoC names to the file headers to avoid confusion."

* Add device note for ROHM BD9571MWV PMIC to
  r8a7795 (H3) and r8a7796 (M3-W) Salvator-X and Salvator-XS boards.

  Geert Uytterhoeven says "This was based on the example in the DT binding
  documentation, but using IRQ0 instead of a GPIO interrupt, as that
  matches the schematics, and because INTC-EX is a simpler block."

* Enable USB2.0 channel 0 on r8a77970 (V3M) ULCB Kingfisher board

  Vladimir Barinov says "The dedicated USB0_PWEN pin is used to control
  CN13 VBUS source from U43 power supply.  MAX3355 can also provide VBUS,
  hence it should be disabled via OTG_OFFVBUSn node coming from gpio
  expander TCA9539.  Set MAX3355 enabled using OTG_EXTLPn node to be able
  to read OTG ID of CN13."

* Add support for r8a7795 (M3-W) Salvator-XS board

  Geert Uytterhoeven says "This patch series adds support for the version
  of the Salvator-XS development board equipped with an R-Car M3-W SiP.

  The DT was based on work for the Salvator-X and -XS boards with M3-W
  resp. H3 SiPs."

* Add watchdog timer support to r8a77970 (V3M) eagle board

  Geert Uytterhoven says "This allows to use the watchdog timer to reset
  the board, until PSCI is enhanced to include such functionality."

* Use Use R-Car SDHI Gen3 fallback on r8a7795 (H3) and r8a7796 (M3-W) SoCs

* Set driver type for MMC on r8a7795 (H3) and r8a7796 (M3-W) Salvator-X and
  Salvator-XS boards.

  Wolfram Sang says "These boards are known to have eMMC issues with the
  default driver type.  Specify a working one."

* tag 'renesas-arm64-dt-for-v4.16' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (54 commits)
  arm64: dts: renesas: r8a77970: use SYSC power domain macros
  arm64: dts: renesas: r8a77970: use CPG core clock macros
  arm64: dts: renesas: v3msk: add EtherAVB support
  arm64: dts: renesas: initial V3MSK board device tree
  arm64: dts: renesas: r8a77995: Connect Ethernet-AVB to IPMMU-RT
  arm64: dts: renesas: r8a77995: Add IPMMU device nodes
  arm64: dts: renesas: r8a77970: Enable IPMMU-DS1, RT and MM
  arm64: dts: renesas: r8a77970: Connect Ethernet-AVB to IPMMU-RT
  arm64: dts: renesas: r8a77970: Tie SYS-DMAC to IPMMU-DS1
  arm64: dts: renesas: r8a77970: Add IPMMU device nodes
  arm64: dts: renesas: r8a77995: add DMA for SCIF2
  arm64: dts: renesas: r8a77970: sort includes
  arm64: dts: renesas: r8a7795: Increase the number of GPIO bank 1 ports to 29
  arm64: dts: renesas: r8a77995: Add CAN FD support
  arm64: dts: renesas: r8a77995: Add CAN support
  arm64: dts: renesas: r8a77995: Add CAN external clock support
  arm64: dts: renesas: r8a7795-salvator-xs: Add SoC name to file header
  arm64: dts: renesas: r8a7796-salvator-x: Add SoC name to file header
  arm64: dts: renesas: r8a7795-salvator-x: Add SoC name to file header
  arm64: dts: renesas: r8a7795-es1-salvator-x: Add SoC name to file header
  ...
2017-12-21 16:21:10 +01:00
Amit Kucheria b6fff60358 arm64: dts: hisilicon: hi6220-hikey: Allow USR1 LED to notify kernel panic
Blink the LED on a kernel panic.

Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
Acked-by: Guodong Xu <guodong.xu@linaro.org>
Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2017-12-21 16:15:19 +01:00
Amit Kucheria 5d4afa732e arm64: dts: hisilicon: hi3660-hikey960: Allow USR4 LED to notify kernel panic
Blink the LED on a kernel panic.

Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
Acked-by: Guodong Xu <guodong.xu@linaro.org>
Tested-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2017-12-21 16:14:57 +01:00
Amit Kucheria 95444f90f4 arm64: dts: qcom: apq8016-sbc: Allow USR4 LED to notify kernel panic
Blink the LED on a kernel panic.

Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2017-12-21 16:14:46 +01:00
weiyi.lu@mediatek.com ca977a4cae arm64: dts: Add power controller device node of MT2712
add power controller node for MT2712

Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2017-12-21 11:35:18 +01:00
Andrew-sh Cheng f75dd8bdd3 arm64: dts: mediatek: add mt2712 cpufreq related device nodes
Add opp v2 information,
and also add clocks, regulators and opp information into cpu nodes

Signed-off-by: Andrew-sh Cheng <andrew-sh.cheng@mediatek.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2017-12-21 11:31:00 +01:00
weiyi.lu@mediatek.com 5d4839709c arm64: dts: mt2712: Add clock controller device nodes
Add clock controller nodes for MT2712, include topckgen, infracfg,
pericfg, mcucfg and apmixedsys. This patch also add six oscillators that
provide clocks for MT2712.

Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2017-12-21 11:31:00 +01:00
Andrew-sh Cheng da85a3afba arm64: dts: mediatek: add mt8173 cpufreq related device nodes
Add opp v2 information,
and also add clocks, regulators and opp information into cpu nodes

Signed-off-by: Andrew-sh Cheng <andrew-sh.cheng@mediatek.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2017-12-21 11:31:00 +01:00
Shawn Guo 4dcf0f9a6e arm64: dts: hi3798cv200: add SD card support
It adds device mmc@9820000 which is used as SD card on poplar board.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
2017-12-20 14:59:39 +00:00
Finley Xiao 13bc2c0a6a arm64: dts: rockchip: Add efuse device node for RK3328 SoC
This patch adds an efuse node in the device tree for rk3228 SoC.

Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-12-20 13:12:13 +01:00
Heiko Stuebner 752fbc0c8d arm64: dts: rockchip: add rk3328 mali gpu node
Add the core gpu node for the rk3328, a Mali450MP2.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Rob Herring <robh@kernel.org>
2017-12-16 18:15:24 +01:00
Enric Balletbo i Serra cea5735c93 arm64: dts: rockchip: add extcon nodes and enable tcphy rk3399-gru
Enable tcphy and create the cros-ec's extcon node for the USB Type-C port.

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Reviewed-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-12-16 18:07:28 +01:00
Enric Balletbo i Serra c301b327ae arm64: dts: rockchip: add usb3-phy otg-port support for rk3399
Add the usb3 phyter for the USB3.0 OTG controller.

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-12-16 18:03:48 +01:00
Enric Balletbo i Serra b7e63d95c1 arm64: dts: rockchip: add reset property for dwc3 controllers on rk3399
After commit '06c47e6286d usb: dwc3: of-simple: Add support to get resets
for the device' you can add the reset property to the dwc3 node, the reset
is required for the controller to work properly, otherwise bind / unbind
stress testing of the USB controller on rk3399 we'd often end up with lots
of failures that looked like this:

  phy phy-ff800000.phy.9: phy poweron failed --> -110
  dwc3 fe900000.dwc3: failed to initialize core
  dwc3: probe of fe900000.dwc3 failed with error -110

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-12-16 18:03:13 +01:00
Enric Balletbo i Serra 9df8a2d912 arm64: dts: rockchip: add the aclk_usb3 clocks for USB3 on rk3399
The aclk_usb3 must be enabled to support USB3 for rk3399.

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-12-16 18:03:10 +01:00
Enric Balletbo i Serra a1bbaaa42b arm64: dts: rockchip: add pd_usb3 power-domain node for rk3399
Add the usb3 power-domain, its qos area and assign it to the usb device
node.

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-12-16 18:03:04 +01:00
Will Deacon a454483137 arm64: fpsimd: Fix copying of FP state from signal frame into task struct
Commit 9de52a755c ("arm64: fpsimd: Fix failure to restore FPSIMD
state after signals") fixed an issue reported in our FPSIMD signal
restore code but inadvertently introduced another issue which tends to
manifest as random SEGVs in userspace.

The problem is that when we copy the struct fpsimd_state from the kernel
stack (populated from the signal frame) into the struct held in the
current thread_struct, we blindly copy uninitialised stack into the
"cpu" field, which means that context-switching of the FP registers is
no longer reliable.

This patch fixes the problem by copying only the user_fpsimd member of
struct fpsimd_state. We should really rework the function prototypes
to take struct user_fpsimd_state * instead, but let's just get this
fixed for now.

Cc: Dave Martin <Dave.Martin@arm.com>
Fixes: 9de52a755c ("arm64: fpsimd: Fix failure to restore FPSIMD state after signals")
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-12-15 16:12:35 +00:00
Thierry Reding 50f5b841ba arm64: tegra: Use sor1_out clock
Use the sor1_out clock instead of sor1_src. This is a more accurate
model of the hardware and allows for more complicated configurations
such as HDMI 2.0.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2017-12-15 10:14:17 +01:00
Thierry Reding 102ca26a62 arm64: tegra: Fix SD write-protect polarity on Jetson TX2
The write-protect GPIO has an active high polarity.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2017-12-15 10:13:50 +01:00
Dave Martin 3fab39997a arm64/sve: Report SVE to userspace via CPUID only if supported
Currently, the SVE field in ID_AA64PFR0_EL1 is visible
unconditionally to userspace via the CPU ID register emulation,
irrespective of the kernel config.  This means that if a kernel
configured with CONFIG_ARM64_SVE=n is run on SVE-capable hardware,
userspace will see SVE reported as present in the ID regs even
though the kernel forbids execution of SVE instructions.

This patch makes the exposure of the SVE field in ID_AA64PFR0_EL1
conditional on CONFIG_ARM64_SVE=y.

Since future architecture features are likely to encounter a
similar requirement, this patch adds a suitable helper macros for
use when declaring config-conditional ID register fields.

Fixes: 43994d824e ("arm64/sve: Detect SVE and activate runtime support")
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Reported-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Cc: Suzuki Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-12-14 15:14:30 +00:00
Mark Rutland 1d08a044cf arm64: fix CONFIG_DEBUG_WX address reporting
In ptdump_check_wx(), we pass walk_pgd() a start address of 0 (rather
than VA_START) for the init_mm. This means that any reported W&X
addresses are offset by VA_START, which is clearly wrong and can make
them appear like userspace addresses.

Fix this by telling the ptdump code that we're walking init_mm starting
at VA_START. We don't need to update the addr_markers, since these are
still valid bounds regardless.

Cc: <stable@vger.kernel.org>
Fixes: 1404d6f13e ("arm64: dump: Add checking for writable and exectuable pages")
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Laura Abbott <labbott@redhat.com>
Reported-by: Timur Tabi <timur@codeaurora.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-12-14 10:18:23 +00:00
Jon Hunter 2fdb74fe4e arm64: tegra: Add CPU and PSCI nodes for NVIDIA Tegra210 platforms
Add the CPU and PSCI nodes for the NVIDIA Tegra210 platforms so that
all CPUs can be enabled on boot. This assumes that the PSCI firmware
has been loaded during the initial bootstrap on the device before the
kernel starts (which is typically the case for these platforms). The
PSCI firmware version is set to v0.2 which aligns with the current
shipping version for Tegra.

Reported-by: Martin Michlmayr <tbm@cyrius.com>
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Tested-By: Vagrant Cascadian <vagrant@debian.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2017-12-13 14:44:46 +01:00
Thierry Reding 363285059d arm64: tegra: Enable HDMI on Jetson TX2
Enable the host1x and necessary children and hook up the HDMI +5V pin to
enable video output on the HDMI port found on Jetson TX2.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2017-12-13 13:22:56 +01:00
Thierry Reding 5bb88b7abc arm64: tegra: Mark I2C4 as DDC on P3310
The P3310 compute module assigns the I2C4 to be used for DDC operations.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2017-12-13 13:22:55 +01:00
Thierry Reding c2599da792 arm64: tegra: Add display nodes on Tegra186
Adds the device tree nodes for the display hub and display controllers
as well as the DPAUX, DSI and SOR controllers.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2017-12-13 13:21:27 +01:00
Thierry Reding b30a8e610b arm64: tegra: Add SMMU node for Tegra186
Add the DT node for ARM SMMU on Tegra186.

Signed-off-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Tested-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2017-12-13 13:16:20 +01:00
Thierry Reding 301f12dcd7 arm64: tegra: Enable memory controller on P3310
Signed-off-by: Thierry Reding <treding@nvidia.com>
2017-12-13 13:15:56 +01:00
Thierry Reding d25a3bf11f arm64: tegra: Add memory controller on Tegra186
Signed-off-by: Thierry Reding <treding@nvidia.com>
2017-12-13 13:15:54 +01:00
Thierry Reding 85593b75ee arm64: tegra: Add FUSE block on Tegra186
The FUSE register block found on Tegra186 SoCs encodes various settings,
such as calibration data for other blocks.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2017-12-13 13:15:43 +01:00
Thierry Reding 94e25dc3a2 arm64: tegra: Add MISC registers on Tegra186
The MISC register block found on Tegra186 SoCs contains registers that
can be used to identify a given chip and various strapping options.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2017-12-13 13:15:42 +01:00
Dongjiu Geng faa75e147b arm64: fault: avoid send SIGBUS two times
do_sea() calls arm64_notify_die() which will always signal
user-space. It also returns whether APEI claimed the external
abort as a RAS notification. If it returns failure do_mem_abort()
will signal user-space too.

do_mem_abort() wants to know if we handled the error, we always
call arm64_notify_die() so can always return success.

Signed-off-by: Dongjiu Geng <gengdongjiu@huawei.com>
Reviewed-by: James Morse <james.morse@arm.com>
Reviewed-by: Xie XiuQi <xiexiuqi@huawei.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-12-13 09:58:13 +00:00
Will Deacon 0e17cada2a arm64: hw_breakpoint: Use linux/uaccess.h instead of asm/uaccess.h
The only inclusion of asm/uaccess.h should be by linux/uaccess.h. All
other headers should use the latter.

Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-12-12 11:53:26 +00:00
Shanker Donthineni 932b50c7c1 arm64: Add software workaround for Falkor erratum 1041
The ARM architecture defines the memory locations that are permitted
to be accessed as the result of a speculative instruction fetch from
an exception level for which all stages of translation are disabled.
Specifically, the core is permitted to speculatively fetch from the
4KB region containing the current program counter 4K and next 4K.

When translation is changed from enabled to disabled for the running
exception level (SCTLR_ELn[M] changed from a value of 1 to 0), the
Falkor core may errantly speculatively access memory locations outside
of the 4KB region permitted by the architecture. The errant memory
access may lead to one of the following unexpected behaviors.

1) A System Error Interrupt (SEI) being raised by the Falkor core due
   to the errant memory access attempting to access a region of memory
   that is protected by a slave-side memory protection unit.
2) Unpredictable device behavior due to a speculative read from device
   memory. This behavior may only occur if the instruction cache is
   disabled prior to or coincident with translation being changed from
   enabled to disabled.

The conditions leading to this erratum will not occur when either of the
following occur:
 1) A higher exception level disables translation of a lower exception level
   (e.g. EL2 changing SCTLR_EL1[M] from a value of 1 to 0).
 2) An exception level disabling its stage-1 translation if its stage-2
    translation is enabled (e.g. EL1 changing SCTLR_EL1[M] from a value of 1
    to 0 when HCR_EL2[VM] has a value of 1).

To avoid the errant behavior, software must execute an ISB immediately
prior to executing the MSR that will change SCTLR_ELn[M] from 1 to 0.

Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-12-12 11:45:19 +00:00
Shanker Donthineni c622cc013c arm64: Define cputype macros for Falkor CPU
Add cputype definition macros for Qualcomm Datacenter Technologies
Falkor CPU in cputype.h. It's unfortunate that the first revision
of the Falkor CPU used the wrong part number 0x800, got fixed in v2
chip with part number 0xC00, and would be used the same value for
future revisions.

Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-12-12 11:45:19 +00:00
Will Deacon 86c9e8126e arm64: mm: Fix false positives in set_pte_at access/dirty race detection
Jiankang reports that our race detection in set_pte_at is firing when
copying the page tables in dup_mmap as a result of a fork(). In this
situation, the page table isn't actually live and so there is no way
that we can race with a concurrent update from the hardware page table
walker.

This patch reworks the race detection so that we require either the
mm to match the current active_mm (i.e. currently installed in our TTBR0)
or the mm_users count to be greater than 1, implying that the page table
could be live in another CPU. The mm_users check might still be racy,
but we'll avoid false positives and it's not realistic to validate that
all the necessary locks are held as part of this assertion.

Cc: Yisheng Xie <xieyisheng1@huawei.com>
Reported-by: Jiankang Chen <chenjiankang1@huawei.com>
Tested-by: Jiankang Chen <chenjiankang1@huawei.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-12-12 11:42:24 +00:00
Steve Capper 8781bcbc5e arm64: mm: Fix pte_mkclean, pte_mkdirty semantics
On systems with hardware dirty bit management, the ltp madvise09 unit
test fails due to dirty bit information being lost and pages being
incorrectly freed.

This was bisected to:
	arm64: Ignore hardware dirty bit updates in ptep_set_wrprotect()

Reverting this commit leads to a separate problem, that the unit test
retains pages that should have been dropped due to the function
madvise_free_pte_range(.) not cleaning pte's properly.

Currently pte_mkclean only clears the software dirty bit, thus the
following code sequence can appear:

	pte = pte_mkclean(pte);
	if (pte_dirty(pte))
		// this condition can return true with HW DBM!

This patch also adjusts pte_mkclean to set PTE_RDONLY thus effectively
clearing both the SW and HW dirty information.

In order for this to function on systems without HW DBM, we need to
also adjust pte_mkdirty to remove the read only bit from writable pte's
to avoid infinite fault loops.

Cc: <stable@vger.kernel.org>
Fixes: 64c26841b3 ("arm64: Ignore hardware dirty bit updates in ptep_set_wrprotect()")
Reported-by: Bhupinder Thakur <bhupinder.thakur@linaro.org>
Tested-by: Bhupinder Thakur <bhupinder.thakur@linaro.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-12-11 16:13:10 +00:00
Steve Capper f24e5834a2 arm64: Initialise high_memory global variable earlier
The high_memory global variable is used by
cma_declare_contiguous(.) before it is defined.

We don't notice this as we compute __pa(high_memory - 1), and it looks
like we're processing a VA from the direct linear map.

This problem becomes apparent when we flip the kernel virtual address
space and the linear map is moved to the bottom of the kernel VA space.

This patch moves the initialisation of high_memory before it used.

Cc: <stable@vger.kernel.org>
Fixes: f7426b983a ("mm: cma: adjust address limit to avoid hitting low/high memory boundary")
Signed-off-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-12-11 16:13:10 +00:00
Linus Torvalds 9c02e0601b ARM: SoC fixes for 4.15-rc
ARM SoC fixes for this merge window:
 
  - A revert of all SCPI changes from the 4.15 merge window. They had
    regressions on the Amlogic platforms, and the submaintainer isn't
    around to fix these bugs due to vacation, etc. So we agreed to revert
    and revisit in next release cycle.
 
  - A series fixing a number of bugs for ARM CCN interconnect, around
    module unload, smp_processor_id() in preemptable context, and fixing
    some memory allocation failure checks.
 
  - A handful of devicetree fixes for different platforms, fixing
    warnings and errors that were previously ignored by the compiler.
 
  - The usual set of mostly minor fixes for different platforms.
 -----BEGIN PGP SIGNATURE-----
 
 iQJDBAABCAAtFiEElf+HevZ4QCAJmMQ+jBrnPN6EHHcFAloswBYPHG9sb2ZAbGl4
 b20ubmV0AAoJEIwa5zzehBx3bFoP/R6fAth5zVuUveykTbHYSs1Oz5XsLw4X77mA
 vg9Y2bBiz82/R7/weISxn28iXd29FQk0inbohI3bGsqJ+OInKiBNJ4UDrvuvrG39
 F2ifH7bjg6x9aooXx0VRXdECckO6klVhe8kjRovRZv712bWUA5uRG/6YUxnyC5LX
 6smrhFUAhj5StUqaY8rFlF8Pob9ftee0aM8/C3LAggQBhwqU5RXY8HgL0jLb919q
 ewOuDgO3FtfrigtOlDWkrQLRe+sY2b5D97Z4amIe4rojqvD6i7grRFBfkfDb4gR2
 7Vc0FZmk7OaaOLsLChv8H8atCxpDJ6KPpg5NAfXk4KM2kbWLbinkLPMbXxSXB4bC
 Q26PPZhKP1OupsSl/9fewHbZeaMZSY0kQXHxBIXCtyMV110TsLVmdFTksbV0gVKk
 x0lBAttX2RZiRU0bFxOHACEXnRTS4/uDCxBvxh5othQZg5EqAEqcFoium2psMvsJ
 XzFPNetyqPE2KhOUMfwUbOtWs2js5E4HaxwyF9xduw32g10NxtRTKGUMeDrxdtW3
 dHQZMr33yLkSkk08S4LMdwUrlONieyJZYeVZ2Jxd+Lv4bn4ZX8mDbLU24BCtLwUI
 wR+8zS2YSVfer/t5JC+dIJzKAiufeOFovNurlsoFJsE2yNLfekZcZ/x63ZdVQnve
 8f0mibwa
 =DIHP
 -----END PGP SIGNATURE-----

Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC fixes from Olof Johansson:

 - A revert of all SCPI changes from the 4.15 merge window. They had
   regressions on the Amlogic platforms, and the submaintainer isn't
   around to fix these bugs due to vacation, etc. So we agreed to revert
   and revisit in next release cycle.

 - A series fixing a number of bugs for ARM CCN interconnect, around
   module unload, smp_processor_id() in preemptable context, and fixing
   some memory allocation failure checks.

 - A handful of devicetree fixes for different platforms, fixing
   warnings and errors that were previously ignored by the compiler.

 - The usual set of mostly minor fixes for different platforms.

* tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (42 commits)
  ARM64: dts: meson-gx: fix UART pclk clock name
  ARM: omap2: hide omap3_save_secure_ram on non-OMAP3 builds
  arm: dts: nspire: Add missing #phy-cells to usb-nop-xceiv
  ARM: dts: Fix dm814x missing phy-cells property
  ARM: dts: Fix elm interrupt compiler warning
  bus: arm-ccn: fix module unloading Error: Removing state 147 which has instances left.
  bus: arm-cci: Fix use of smp_processor_id() in preemptible context
  bus: arm-ccn: Fix use of smp_processor_id() in preemptible context
  bus: arm-ccn: Simplify code
  bus: arm-ccn: Check memory allocation failure
  bus: arm-ccn: constify attribute_group structures.
  firmware: arm_scpi: Revert updates made during v4.15 merge window
  arm: dts: marvell: Add missing #phy-cells to usb-nop-xceiv
  arm64: dts: sort vendor subdirectories in Makefile alphabetically
  meson-gx-socinfo: Fix package id parsing
  ARM: meson: fix spelling mistake: "Couln't" -> "Couldn't"
  ARM: dts: meson: fix the memory region of the GPIO interrupt controller
  ARM: dts: meson: correct the sort order for the the gpio_intc node
  MAINTAINERS: exclude other Socionext SoC DT files from ARM/UNIPHIER entry
  arm64: dts: uniphier: remove unnecessary interrupt-parent
  ...
2017-12-10 08:26:59 -08:00
Linus Torvalds c465fc11e5 KVM fixes for v4.15-rc3
ARM:
  * A number of issues in the vgic discovered using SMATCH
  * A bit one-off calculation in out stage base address mask (32-bit and
    64-bit)
  * Fixes to single-step debugging instructions that trap for other
    reasons such as MMMIO aborts
  * Printing unavailable hyp mode as error
  * Potential spinlock deadlock in the vgic
  * Avoid calling vgic vcpu free more than once
  * Broken bit calculation for big endian systems
 
 s390:
  * SPDX tags
  * Fence storage key accesses from problem state
  * Make sure that irq_state.flags is not used in the future
 
 x86:
  * Intercept port 0x80 accesses to prevent host instability (CVE)
  * Use userspace FPU context for guest FPU (mainly an optimization that
    fixes a double use of kernel FPU)
  * Do not leak one page per module load
  * Flush APIC page address cache from MMU invalidation notifiers
 -----BEGIN PGP SIGNATURE-----
 
 iQEcBAABCAAGBQJaLA93AAoJEED/6hsPKofo9msH/2DrqT2FOKfLuxNR2FeUGWr3
 lqFoBRUXrVDMINGStnWrV36h/xYzlgJl9jtSDS8dr3VxLqtrNLlDg9NmGeogoZ+k
 /xewr/jFYoSRfffsvrbkzORUfvu6zqvJwufiwBEJwAfcswiLqPizdFXcxtUL4eZE
 9s9sIweo5zp2Xjg5yLOEkyanePKMEht/81zPkHyM+g0ZMoaPam3qZHA0lLzdyRgd
 G9LpSyiMFHguYYgbwipaVue3zgMY1EdmKQ8C2hEPmZd8nVau26YDwRnAwwLrmVkW
 sFhGO1Xi18TzQPokzALC25c9v0fqgxL5+fNyFNgWwTc2n9PSwO+IHcy699UH+3A=
 =Qcqd
 -----END PGP SIGNATURE-----

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull KVM fixes from Radim Krčmář:
 "ARM:
   - A number of issues in the vgic discovered using SMATCH
   - A bit one-off calculation in out stage base address mask (32-bit
     and 64-bit)
   - Fixes to single-step debugging instructions that trap for other
     reasons such as MMMIO aborts
   - Printing unavailable hyp mode as error
   - Potential spinlock deadlock in the vgic
   - Avoid calling vgic vcpu free more than once
   - Broken bit calculation for big endian systems

 s390:
   - SPDX tags
   - Fence storage key accesses from problem state
   - Make sure that irq_state.flags is not used in the future

  x86:
   - Intercept port 0x80 accesses to prevent host instability (CVE)
   - Use userspace FPU context for guest FPU (mainly an optimization
     that fixes a double use of kernel FPU)
   - Do not leak one page per module load
   - Flush APIC page address cache from MMU invalidation notifiers"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (28 commits)
  KVM: x86: fix APIC page invalidation
  KVM: s390: Fix skey emulation permission check
  KVM: s390: mark irq_state.flags as non-usable
  KVM: s390: Remove redundant license text
  KVM: s390: add SPDX identifiers to the remaining files
  KVM: VMX: fix page leak in hardware_setup()
  KVM: VMX: remove I/O port 0x80 bypass on Intel hosts
  x86,kvm: remove KVM emulator get_fpu / put_fpu
  x86,kvm: move qemu/guest FPU switching out to vcpu_run
  KVM: arm/arm64: Fix broken GICH_ELRSR big endian conversion
  KVM: arm/arm64: kvm_arch_destroy_vm cleanups
  KVM: arm/arm64: Fix spinlock acquisition in vgic_set_owner
  kvm: arm: don't treat unavailable HYP mode as an error
  KVM: arm/arm64: Avoid attempting to load timer vgic state without a vgic
  kvm: arm64: handle single-step of hyp emulated mmio instructions
  kvm: arm64: handle single-step during SError exceptions
  kvm: arm64: handle single-step of userspace mmio instructions
  kvm: arm64: handle single-stepping trapped instructions
  KVM: arm/arm64: debug: Introduce helper for single-step
  arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one
  ...
2017-12-10 08:24:16 -08:00