59142 Commits

Author SHA1 Message Date
Olof Johansson
d8430df172 Randconfig build fix for recent SoC changes for v5.6
We can get build failures if let's say if only am335x SoC is selected.
 Let's fix this by always building secure-common.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAl4rSiERHHRvbnlAYXRv
 bWlkZS5jb20ACgkQG9Q+yVyrpXNyChAAnThNkBUJIACXwhKGzTIzhtgAiKHc+VLa
 qRec72Qd/Z6mZNHZa/qMd3xTw535Doaz0vc2Yul5YwvgBiwtMTazuDPtqwYIwOma
 TqBdbnqh0yL8PU6FhfuOUD/6n9eSEpJy2r079wBYvwJ5oSX/WtnCPNt+qtWFU1pM
 fiQmS1vYAvyiQxOaXSfvU3OULMJwJd9Zk7m6AYbMkA2898krBAfcwdEQwJJK1A+3
 tT8ED96hXYJZkwbodFJxof9jdytxWKdTBrKWvfrmxdutlGMxYvPN9G9k5LYwo+eu
 31HxeVLDXtSBRU9FV7I4CD7vUhM0lk/PXTk0Fxv95uGy6jZUxbo30f/gLHSOvwTD
 b4yviF/bkeM7JhYqoSQaCSKxiuDqRKAfQTXE6zNDYk3P97N4bht/yKyPfjTHPXof
 IPOVmrzxvqlGqS+DrfA/Drr22AS17Lzv3pXmhyeD1Pr4fKttYzuS06XLXdC/mUlZ
 kyntEbLbiHE18ii9NBza0mhmYZUmKnGPkHnQj3gICztfp3mkILhnUY19YoQOkrPP
 cpLRDtS9rBdV+z6dlgAp/zk9XAla02DwYsUMCGlT+OKYSHjTR83TdPzGKvbNrLt9
 AqRt/Cv6qpPP3xBHCb17zBYKY3RQP7JPgoBEJ6YiGczTHmt5Kw+L8S2nL56Sf46b
 gjCeR6zWSZk=
 =hKrK
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v5.6/soc-build-fix-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/soc

Randconfig build fix for recent SoC changes for v5.6

We can get build failures if let's say if only am335x SoC is selected.
Let's fix this by always building secure-common.

* tag 'omap-for-v5.6/soc-build-fix-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: OMAP2+: Fix undefined reference to omap_secure_init

Link: https://lore.kernel.org/r/pull-1579896427-50330@atomide.com
Signed-off-by: Olof Johansson <olof@lixom.net>
2020-01-25 13:25:42 -08:00
Andrew F. Davis
c37baa06f8 ARM: OMAP2+: Fix undefined reference to omap_secure_init
omap_secure_init() is now called from all OMAP2+ platforms during their
init_early() call. This function is in omap-secure.o so include that
in the build for these platforms.

Fixes: db711893eac8 ("ARM: OMAP2+: Add omap_secure_init callback hook for secure initialization")
Reported-by: Dan Murphy <dmurphy@ti.com>
Signed-off-by: Andrew F. Davis <afd@ti.com>
Tested-by: Dan Murphy <dmurphy@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2020-01-23 07:48:26 -08:00
Olof Johansson
a9eeb0e611 Samsung mach/soc changes for v5.6, part 2
1. Switch from legacy to atomic pwm API in rx1950 (s3c24xx),
 2. Cleanups of unneeded selects in Kconfig.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAl4ohVcQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD16yhD/sF39YOK3B7jNkTD1AYn7NndWELZjNpQbs+
 ncSShCJFSNlGavGJFZz6Nv4lJXWBYk8Rf1NXfEs+q3bnkng4X2o41iy6zFJKKDIY
 Hak2XYe/1VMWTS2RsGgd9ucR5lSOhxQtJ4eZw/RrPuWUu2i4jfjLVaLOXfHKK1sd
 MF0fhuwySCv+8exRWO572qhXZI14G6rUC0MQoCEU9YTJ5Yt9dxnhk9seCQCcTytI
 DnGiakIky3zmBUW97KCtUgYxNP9dlcGioqDeHi5M2OzKfsI2psdiUmpCGfCcZgfE
 BgArUJNe/TEKgz/BER1mHIgFjIqV7g3w6grEzWxoaL/u8k1eJYD12+o2VRL/qTx6
 YYr1sXMPI2wVa/MAODXLpsU2B/lEur5rW97BgQt+rPWB/sxO1N5PArNEFN2BIXbK
 qVlFyy2DKYqiRuOsn4Y4qy0h+ACcbPgZrdKbSVfGMoIDtBfAj2Wi7w3oG4tVOu3A
 yHhITLAheF1NU32h+GaGG8kKOOS3v0PqarwTDRuZ95d0bEM3uVC8AbvaDCHYiDPO
 E1Q1GVFd77udfNb3rFKm5MDop+aRlxhGHvR1xTiIPitU8999ii+ztlWgcxr3B3Sc
 TxfQwztCj5pmSXP8Rm+FcWHMlUeNRXvXYhOv1KFarfQ0ZiBJlDQdMBFDPimMY4lw
 NPgdEH0ANQ==
 =iP3T
 -----END PGP SIGNATURE-----

Merge tag 'samsung-soc-5.6-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/soc

Samsung mach/soc changes for v5.6, part 2

1. Switch from legacy to atomic pwm API in rx1950 (s3c24xx),
2. Cleanups of unneeded selects in Kconfig.

* tag 'samsung-soc-5.6-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  ARM: s3c64xx: Drop unneeded select of TIMER_OF
  ARM: exynos: Drop unneeded select of MIGHT_HAVE_CACHE_L2X0
  ARM: s3c24xx: Switch to atomic pwm API in rx1950

Link: https://lore.kernel.org/r/20200122172649.3143-1-krzk@kernel.org
Signed-off-by: Olof Johansson <olof@lixom.net>
2020-01-22 16:41:25 -08:00
Olof Johansson
31a7d26fbc ARM: Xilinx Zynq SoC patches for v5.6
- Fix cpuid handling logic in platform SMP startup code
 -----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQQbPNTMvXmYlBPRwx7KSWXLKUoMIQUCXibNXgAKCRDKSWXLKUoM
 IePMAJ9Ns3FI1bKKrCnCsSJ3MqC14uzERwCfbwE+cugR80XD2GH6Zi1pV47u2C4=
 =tUYe
 -----END PGP SIGNATURE-----

Merge tag 'zynq-soc-for-v5.6' of https://github.com/Xilinx/linux-xlnx into arm/soc

ARM: Xilinx Zynq SoC patches for v5.6

- Fix cpuid handling logic in platform SMP startup code

* tag 'zynq-soc-for-v5.6' of https://github.com/Xilinx/linux-xlnx:
  ARM: zynq: use physical cpuid in zynq_slcr_cpu_stop/start

Link: https://lore.kernel.org/r/50dec3cf-5f80-69be-c3d1-cc14b9bce5ff@monstr.eu
Signed-off-by: Olof Johansson <olof@lixom.net>
2020-01-21 15:07:05 -08:00
Geert Uytterhoeven
af15a11b90 ARM: s3c64xx: Drop unneeded select of TIMER_OF
Support for Samsung S3C64XX systems depends on ARCH_MULTI_V6, and thus
on ARCH_MULTIPLATFORM.
As the latter selects TIMER_OF, there is no need for MACH_S3C64XX_DT to
select TIMER_OF.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2020-01-21 20:58:03 +01:00
Geert Uytterhoeven
21829ec37e ARM: exynos: Drop unneeded select of MIGHT_HAVE_CACHE_L2X0
Support for Samsung Exynos SoCs depends on ARCH_MULTI_V7, which selects
ARCH_MULTI_V6_V7.
As the latter selects MIGHT_HAVE_CACHE_L2X0, there is no need for
ARCH_EXYNOS4 to select MIGHT_HAVE_CACHE_L2X0.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2020-01-21 20:57:55 +01:00
Uwe Kleine-König
5ec6fd39f5 ARM: s3c24xx: Switch to atomic pwm API in rx1950
Stop using the legacy PWM API which only still exists because there are
some users left.

Note this change make use of the fact that the value of struct
pwm_state::duty_cycle doesn't matter for a disabled PWM and so its value
can stay constant simplifying the code a bit.

A side effect of the conversion is that the pwm isn't stopped in
rx1950_backlight_init() by the call to pwm_apply_args() just before
reenabling it when rx1950_lcd_power(1) is called.

Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2020-01-21 20:56:47 +01:00
Olof Johansson
21473e16b1 SMC related changes for omaps for v5.6 merge window
A series of changes to use optee SMC calls if optee is initialized by
 the bootloader. Based on the discussions on LAKML in mailing list thread
 "arm_smccc_smc as generic smc interface?" we don't want to add more quirk
 handling to arm_smccc_smc() and want to handle it locally instead.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAl4grWMRHHRvbnlAYXRv
 bWlkZS5jb20ACgkQG9Q+yVyrpXMbBBAA3BlpJ2g8MUTIqn8tPQXF24JfWo8mkESW
 454c43lV7wWOv4QZZY8fWD6V4dupVFnCMCIEr91HHSVnNBAMdLl+t4rdZgkdVS0t
 QvA5xKbRX8U3B4ohI7qqsYSKgHUz+W/oqwxt8j8xnn93KELan07V8JV2OxBjXiGp
 msUc3qFwwKgLDiZcVHfAsRUYFYfZ0TtrVf2Dn/EsZNsa5KWM+Dx1nckTRpsXn9v4
 9PzG2peeKkFizE6nGLHFZj5n+rNjiVGzZ2NIlFkAkqm+BuBBaTaKcSbUzkB6Rf0a
 nWLlrvbAuwgLOHyYKZfx8vmv3hvT3Qvfz3LZYpVLlLZuA2eYpcJ0CLKAO85Lz1xg
 zaSqcJhkfLUxYYDngfGP2y3yl/BrhJj10MYT+daXCiSDS+uGZmON+7maXAB1rOTK
 zNJwY6YbjNu9KDLkvHwOPUeuQgATT4bZ2wPNrFAZisIDEjTzSKIqGrQj5h8IeOSx
 quD5YTk8Cc4E/QgSJUmqqgIkHlVNrc71hxIO7dZ+cZVviQS6PUfjAMGdkZ20UfFO
 mRBpmUp6ATTv9Q4TuQ3rnFlN0MfL+eSOtDdP5homNyyemseAVy3YxMrc68Wur3jP
 Mmcl5KZQweDy+NC4mQi/YqpHFOWMYra6o2cNsrcY73ZbVp/0bqDWw2klUWM0JyM5
 wjt8aly0yBQ=
 =XJDD
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v5.6/soc-smc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/soc

SMC related changes for omaps for v5.6 merge window

A series of changes to use optee SMC calls if optee is initialized by
the bootloader. Based on the discussions on LAKML in mailing list thread
"arm_smccc_smc as generic smc interface?" we don't want to add more quirk
handling to arm_smccc_smc() and want to handle it locally instead.

* tag 'omap-for-v5.6/soc-smc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: OMAP2+: sleep43xx: Call secure suspend/resume handlers
  ARM: OMAP2+: Use ARM SMC Calling Convention when OP-TEE is available
  ARM: OMAP2+: Introduce check for OP-TEE in omap_secure_init()
  ARM: OMAP2+: Add omap_secure_init callback hook for secure initialization

Link: https://lore.kernel.org/r/pull-1579200367-372444@atomide.com-2
Signed-off-by: Olof Johansson <olof@lixom.net>
2020-01-16 15:57:42 -08:00
Olof Johansson
e9d440157e AT91 SoC for 5.5
- Document new SoC: sam9x60
  - rework sam9x60 Kconfig option
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEycoQi/giopmpPgB12wIijOdRNOUFAl4cRF0ACgkQ2wIijOdR
 NOWOmBAAo51oiKPnOcbLCZ7gFpdvCegC14coxLNq+xdJ4nEmUJq5tWPzO1k3iQqp
 xgWiKBFpaXeS2BoOdaCyCgFSeWUF7BCoZf2lFMnWN+K77TgL9q6jWsMeshzmJpWj
 1GWU0po3qLlNEe7mXKCpy0f8P0zjAFp3ISzDdOhdxPEgzRyBiVtEeQF/iz+AHk7c
 /SaczAlRf3FpagOtDUWM9aB0FEmHQfC4dRYAsOmKIFvS+VX23edKnPDkKd4LV0D1
 gQla4j2YJXICAR/U/XOaLFMYCpYZt+kViO7ByjnMKaIP+1xkzH8jlg6fUKzF5yhN
 7FICjIugxldpW21iUfJ5ubV9WT8Ir9ao8s7Qs2qSZrVW66+R2n63aQaObSVVFdM2
 J2aUTktBOqspHyiMkTLWPNFLqzGU46XUAxgMgMhVp4dig3O+HMC1rUeB66vaeSAM
 B13g2c5qrIYGi4NYdgG6y510HVjh+2BhGZHKWPowZHBG9yLapHlm3CrHafFbJ7cF
 N7DbrBf3aw1iYwyq6117mcSkbRscZqb4IpyQsTEee+5hdu2ztM9gRfFMT4OPwHkY
 FmosbCCocq+PGbhM5oBd1fKGpi1pj+BRxtW6hf21nUc9bbAFaSqVcCsbzsJFSB0d
 mPgVN7k1sDS7DPmxlrrcQBaiJILvi8qOYe1Vw+eVbMP/fUc+Peo=
 =RmHQ
 -----END PGP SIGNATURE-----

Merge tag 'at91-5.6-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into arm/soc

AT91 SoC for 5.5

 - Document new SoC: sam9x60
 - rework sam9x60 Kconfig option

* tag 'at91-5.6-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
  ARM: at91: Documentation: add sam9x60 product and datasheet
  ARM: at91: pm: use of_device_id array to find the proper shdwc node
  ARM: at91: pm: use SAM9X60 PMC's compatible
  ARM: debug-ll: select DEBUG_AT91_RM9200_DBGU for sam9x60
  drivers: soc: atmel: select POWER_RESET_AT91_SAMA5D2_SHDWC for sam9x60
  power: reset: Kconfig: select POWER_RESET_AT91_RESET for sam9x60
  drivers: soc: atmel: move sam9x60 under its own config flag
  ARM: at91: pm: move SAM9X60's PM under its own SoC config flag
  ARM: at91: Kconfig: add config flag for SAM9X60 SoC
  ARM: at91: Kconfig: add sam9x60 pll config flag

Link: https://lore.kernel.org/r/20200113161612.GA1358903@piout.net
Signed-off-by: Olof Johansson <olof@lixom.net>
2020-01-16 14:09:31 -08:00
Olof Johansson
1237186597 i.MX SoC changes for 5.6:
- Add support for reading serial number from OCOTP on i.MX7ULP.
  - A patch from Anson to enable ARM_ERRATA_814220 for i.MX6UL & i.MX7D,
    and a fixup patch from Arnd to select the option only for ARMv7-A.
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCgAyFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAl4bF6sUHHNoYXduZ3Vv
 QGtlcm5lbC5vcmcACgkQUFdYWoewfM6cQAf/TMR+UC1obMFNx7SjpGkil1sq+fP5
 jNGy2+ekdsPuuIysLLN/1L+GcfECumoiJujDqmslVKhKLdU8U1NiVlHpsjpKQj1k
 gti+JCy0ErXvUNxfGffD9LmZDWtu6nctcN6i4ZeldNpTzN8kNyc5hYNAAGoENPch
 bLVL/SaMpAUDLwlozagwhrzoEXgqg/CES3Itp7S7FuPxgorsWtp6TbIm3PnQI+c9
 U4U/LR8Je4LOOrZXih/aoECKsoS8fWceKgHNncPkDGFvP9cV078c31vED2CiTMw7
 UUbj/64Ob1lUsr61YbBnB/YIFkAnFV03arIbIOeiAPONF5b++MX+NL/VLw==
 =asr0
 -----END PGP SIGNATURE-----

Merge tag 'imx-soc-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/soc

i.MX SoC changes for 5.6:

 - Add support for reading serial number from OCOTP on i.MX7ULP.
 - A patch from Anson to enable ARM_ERRATA_814220 for i.MX6UL & i.MX7D,
   and a fixup patch from Arnd to select the option only for ARMv7-A.

* tag 'imx-soc-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  ARM: imx: only select ARM_ERRATA_814220 for ARMv7-A
  ARM: imx: Enable ARM_ERRATA_814220 for i.MX6UL and i.MX7D
  ARM: imx: Add i.MX7ULP SoC serial number support
  ARM: imx: Fix boot crash if ocotp is not found
  ARM: imx_v6_v7_defconfig: Explicitly restore CONFIG_DEBUG_FS
  ARM: dts: imx6ul-evk: Fix peripheral regulator
  arm64: dts: ls1028a: fix reboot node
  arm64: dts: ls1028a: fix typo in TMU calibration data
  ARM: imx: Correct ocotp id for serial number support of i.MX6ULL/ULZ SoCs
  ARM: dts: e60k02: fix power button
  ARM: dts: imx6ul: imx6ul-14x14-evk.dtsi: Fix SPI NOR probing

Link: https://lore.kernel.org/r/20200113034006.17430-2-shawnguo@kernel.org
Signed-off-by: Olof Johansson <olof@lixom.net>
2020-01-16 10:47:49 -08:00
Olof Johansson
511f96fb67 ARM: tegra: Core changes for v5.6-rc1
Contains a couple of fixes for RAM repair on Tegra124.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAl4ZDJ4THHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zodzCD/9Eb50/MYKTNeSaKXB8mfaTi/1CeoJ9
 Q5eHVxQg2cQKv26StN9eh2+tPCZCJ36Hcr0kKSwvSFyri3OAfurg9PcVJ7xvgRCs
 etC+S7DFDE30AfIXb4X5365A8Y5O6IF7qVdl4DAF2XosxMMXXGID81MGwcPavYbk
 GPLhql4ovQPyiPxxwt2hYjeex8y1pi8uD+gQzFB2u1pVDjdI4j/zSxPZCfA65Ek3
 wVaj9/HAlV5Iu7GfvZny8YeO6T8kiZCfd6rTWuSeKZ2R2ZpeXgX+flIaWVerMnCN
 kmeF02SOsqP6+sKELo4eVDQVieAuBHlkERiXWHeWDqD8KUCRldnys4ijRjV+4lrS
 MbUY2yDy70DbMbsrKusj4qpfw1dOVZNfvEY3p5VyWOdbzpEHvWAx0rCGjni1T6Z7
 MS46OmCXB9q6Mk59u290FpOb7t1qn+MulnUIpeJO6vOq+xlo5gKy9mkR1UyavdtX
 sZftBuN/NBCePMCbfmPKqQH31hCiim853qSwNghXmcWBa/HKF87NkCtXlyCBh+zp
 3mw3DH68PPoLlzMaDl98rAKYGpQY2XQqrD9Lncfw9f3urdh6fJQpFqnu11bsBs2+
 p2WEsDjETRfV1ArLvBHYcKjHoSdeFynsoAutbVumXp8znDLwbLGprqXUQQP62Gpe
 pIe3UkpVSzzo1w==
 =UJTP
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-5.6-arm-core' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/soc

ARM: tegra: Core changes for v5.6-rc1

Contains a couple of fixes for RAM repair on Tegra124.

* tag 'tegra-for-5.6-arm-core' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  ARM: tegra: Use clk_m CPU on Tegra124 LP1 resume
  ARM: tegra: Modify reshift divider during LP1
  ARM: tegra: Enable PLLP bypass during Tegra124 LP1

Link: https://lore.kernel.org/r/20200111003553.2411874-5-thierry.reding@gmail.com
Signed-off-by: Olof Johansson <olof@lixom.net>
2020-01-16 10:42:40 -08:00
Andrew F. Davis
8ab871f8bd ARM: OMAP2+: sleep43xx: Call secure suspend/resume handlers
During suspend CPU context may be lost in both non-secure and secure CPU
states. The kernel can handle saving and restoring the non-secure context
but must call into the secure side to allow it to save any context it may
lose. Add these calls here.

Note that on systems with OP-TEE available the suspend call is issued to
OP-TEE using the ARM SMCCC, but the resume call is always issued to the
ROM. This is because on waking from suspend the ROM is restored as the
secure monitor. It is this resume call that instructs the ROM to restore
OP-TEE, all subsequent calls will be handled by OP-TEE and should use the
ARM SMCCC.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Acked-by: Dave Gerlach <d-gerlach@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2020-01-13 10:06:46 -08:00
Andrew F. Davis
48840e16c2 ARM: OMAP2+: Use ARM SMC Calling Convention when OP-TEE is available
On High-Security(HS) OMAP2+ class devices a couple actions must be
performed from the ARM TrustZone during boot. These traditionally can be
performed by calling into the secure ROM code resident in this secure
world using legacy SMC calls. Optionally OP-TEE can replace this secure
world functionality by replacing the ROM after boot. ARM recommends a
standard calling convention is used for this interaction (SMC Calling
Convention). We check for the presence of OP-TEE and use this type of
call to perform the needed actions, falling back to the legacy OMAP ROM
call if OP-TEE is not available.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2020-01-13 10:06:34 -08:00
Andrew F. Davis
dbebc8bfe9 ARM: OMAP2+: Introduce check for OP-TEE in omap_secure_init()
This check and associated flag can be used to signal the presence
of OP-TEE on the platform. This can be used to determine which
SMC calls to make to perform secure operations.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2020-01-13 10:06:25 -08:00
Andrew F. Davis
db711893ea ARM: OMAP2+: Add omap_secure_init callback hook for secure initialization
This can be used for detecting secure features or making early device
init sequence changes based on device security type.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2020-01-13 10:02:43 -08:00
Olof Johansson
e4b072cc2e Samsung mach/soc changes for v5.6
Cleanups (Samsung and Exynos names, Kconfig help text correction).
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAl4YsHAQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD1wKGD/9IdB5FLNEAoJ0hqn+JifCP77fAXpjuJu8A
 XK/ruLhqJAFsmpynLmN8Mbno+48mewlQq9hRgl0vx9UN8wSzQh5vWqyTQl0PjqwV
 4DdEJhxSueOxm7oxaBKV3k+QZX498sJxucdgCG53gRkxwvQj6TQn7PXDBwZYlOo8
 6b40qwZ2lY/T/T8kUuKrMZs1SPoRa55y5Yc3Sj2B0S343grR6fdZ73AcSr44LN5v
 GBCajYM8jyNXrfDcNaM54eeCDT/ExaF2QoqOS77C2dBb+pii41/Fz1w4jmj36X1E
 izzqSbMlcZR0nMzywdy34l7XyWDgz2l7siUnhVCzbVcb9WtceEwnwLbASSzgQj6Z
 XAZKBk1X618Oq8aFznzGIPx8CTxsUpjw/9vgpCsgx+v69L/xr6/pPTQveXiGVySo
 0uevBI/6zbhr7kmarn3+0S2ly2DsVh2rTHC/T8P4wmD1rJSszjCXlXloUGnc7sNH
 9z3I7zIzT9KmHFtN7wSb7olJYgnlWu32WWmvD8WsXkWGIDkX08J1qv7UIO00OL3H
 rzG0hKJ3P2fA0EI/sLAbXLkrDwm/lOIINQpSdeqoBNRPKlPJ4njnRqHZtH5r29pu
 Qsy+fCh+lj3M1RHLecnlq1DwWqJgSflFmd7j9zWoSw57XHTdW+zm+mZo1VY4brdr
 UvaQruhzhw==
 =NDK3
 -----END PGP SIGNATURE-----

Merge tag 'samsung-soc-5.6' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/soc

Samsung mach/soc changes for v5.6

Cleanups (Samsung and Exynos names, Kconfig help text correction).

* tag 'samsung-soc-5.6' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  ARM: samsung: Rename Samsung and Exynos to lowercase
  ARM: exynos: Correct the help text for platform Kconfig option

Link: https://lore.kernel.org/r/20200110172334.4767-4-krzk@kernel.org
Signed-off-by: Olof Johansson <olof@lixom.net>
2020-01-10 22:26:50 -08:00
Olof Johansson
3a4252daee This pull request contains Broadcom ARM-based SoCs Kconfig/machine
changes for 5.6, please pull the following:
 
 - Justin adds an entry for BCM7216's debug UART to support DEBUG_LL
 - Florian adds a select ARM_AMBA to support the ARM PL011 UART/console
   which is required on BCM7211
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAl4WKG8ACgkQh9CWnEQH
 BwTZug/8CDl9acI49fAWuKRNfd2InZQnwtvmdb5+kwYAtedkY/hmUodyDPoTqr9C
 vQ/uzjXPRqKsr9TysK+ubZQomeqBdb4madmGoxqPE9Fl2yZwjnon9PE5Evqvk1b9
 DxCBvrnP3/YMEFlGxebL5MORf8TPq+IKzA8Klzcs0ED3E6F2c8xG4ODFjXK7GSzf
 Oz9+MropwWw7+bTN/VlOjL2x90b5fZM7chztC9zwBJGym85oqZnY5HvwLOZuysYp
 5AsENirqgMuisM7EIy4DXwJFC15W4YIDTK/B+iKyapgyeYcrJmpQmsGePYY2Rtrs
 tFd91RX5Wsg5RqCmFKgb2qa8QwtVOqARFoSfAOBU4Gx+ezIyg0hchgfhT9Mk2jF8
 luM9ts99sxyUrS1yXv1MunXBmuXl+rMho3Su3vuAJNcYTW0b3ebE+UTxUM+oBu20
 vPVVwLzUglS4siSi/Q09ar+GB4U8pn2y0k0reZuFUo8VBxjFIyFEIF9PUqgaXgtn
 RKJto4YpDcTByhODYnDkLdzlPMC3vyMG+efgEj3YpWrfXxIx3L3kRT8dAEtU6zs+
 8pD+OBxdgGfgwGCHU4AtpaANriaLXlGx+kMZiqXQYidHGOUtDS3rKkVkcVrhoJCs
 GB7RHFABQrUFq+F72TxprxaXJ1a7EYmIeK8SYm6DvBXBYee63u4=
 =yt4p
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-5.6/soc' of https://github.com/Broadcom/stblinux into arm/soc

This pull request contains Broadcom ARM-based SoCs Kconfig/machine
changes for 5.6, please pull the following:

- Justin adds an entry for BCM7216's debug UART to support DEBUG_LL
- Florian adds a select ARM_AMBA to support the ARM PL011 UART/console
  which is required on BCM7211

* tag 'arm-soc/for-5.6/soc' of https://github.com/Broadcom/stblinux:
  ARM: bcm: Select ARM_AMBA for ARCH_BRCMSTB
  ARM: brcmstb: Add debug UART entry for 7216

Link: https://lore.kernel.org/r/20200108191114.15987-3-f.fainelli@gmail.com
Signed-off-by: Olof Johansson <olof@lixom.net>
2020-01-10 22:15:54 -08:00
Claudiu Beznea
ec6e618c8c ARM: at91: pm: use of_device_id array to find the proper shdwc node
Use of_device_id array to find the proper shdwc compatibile node.
SAM9X60's shdwc changes were not integrated when
commit eaedc0d379da ("ARM: at91: pm: add ULP1 support for SAM9X60")
was integrated.

Fixes: eaedc0d379da ("ARM: at91: pm: add ULP1 support for SAM9X60")
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Link: https://lore.kernel.org/r/1576062248-18514-3-git-send-email-claudiu.beznea@microchip.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2020-01-10 23:40:31 +01:00
Claudiu Beznea
6b9dfd986a ARM: at91: pm: use SAM9X60 PMC's compatible
SAM9X60 PMC's has a different PMC. It was not integrated at the moment
commit 01c7031cfa73 ("ARM: at91: pm: initial PM support for SAM9X60")
was published.

Fixes: 01c7031cfa73 ("ARM: at91: pm: initial PM support for SAM9X60")
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Link: https://lore.kernel.org/r/1576062248-18514-2-git-send-email-claudiu.beznea@microchip.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2020-01-10 23:40:31 +01:00
Arnd Bergmann
c74067a0f7 ARM: imx: only select ARM_ERRATA_814220 for ARMv7-A
i.MX7D is supported for either the v7-A or the v7-M cores,
but the latter causes a warning:

WARNING: unmet direct dependencies detected for ARM_ERRATA_814220
  Depends on [n]: CPU_V7 [=n]
  Selected by [y]:
  - SOC_IMX7D [=y] && ARCH_MXC [=y] && (ARCH_MULTI_V7 [=n] || ARM_SINGLE_ARMV7M [=y])

Make the select statement conditional.

Fixes: 4562fa4c86c9 ("ARM: imx: Enable ARM_ERRATA_814220 for i.MX6UL and i.MX7D")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2020-01-09 18:48:35 +08:00
Quanyang Wang
6c6b3f1f26 ARM: zynq: use physical cpuid in zynq_slcr_cpu_stop/start
When kernel booting, it will create a cpuid map between the logical cpus
and physical cpus. In a normal boot, the cpuid map is as below:

    Physical      Logical
        0    ==>     0
        1    ==>     1

But in kdump, there is a condition that the crash happens at the
physical cpu1, and the crash kernel will run at the physical cpu1 too,
so the cpuid map in crash kernel is as below:

    Physical      Logical
        1    ==>     0
        0    ==>     1

The functions zynq_slcr_cpu_stop/start is to stop/start the physical
cpus, the parameter cpu should be the physical cpuid. So use
cpu_logical_map to translate the logical cpuid to physical cpuid.
Or else the logical cpu0(physical cpu1) will stop itself and
the processor will hang.

Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com>
Tested-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2020-01-08 15:21:09 +01:00
Stephen Warren
9c65b8463f ARM: tegra: Use clk_m CPU on Tegra124 LP1 resume
Configure the clock controller to set an alternate clock for the CPU
when it receives an IRQ during LP1 (system suspend). Specifically, use
clk_m (the crystal) rather than clk_s (a 32KHz clock). Such an IRQ will
be the LP1 wake event. This reduces the amount of time taken to resume
from LP1.

NVIDIA's downstream kernel executes this code on both Tegra30 and
Tegra124, so it appears OK to make this change unconditionally.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-08 12:58:46 +01:00
Stephen Warren
cf94a7a06a ARM: tegra: Modify reshift divider during LP1
The reshift hardware module implements the RAM re-repair process. This
module uses PLLP as an input clock during LP1 resume. The input divider
for this clock is typically set for PLLP's normal rate. During LP1
resume, PLLP is bypassed and so runs at the crystal rate, which is much
slower. Consequently, decrease the divider so that the reshift module
runs at a reasonable rate during LP1 resume.

NVIDIA's downstream kernel code only does this if not compiled for
Tegra30, so the added code is made conditional upon the chip ID.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-08 12:57:53 +01:00
Stephen Warren
1a3388d506 ARM: tegra: Enable PLLP bypass during Tegra124 LP1
For a little over a year, U-Boot has configured the flow controller to
perform automatic RAM re-repair on off->on power transitions of the CPU
rail[1]. This is mandatory for correct operation of Tegra124. However,
RAM re-repair relies on certain clocks, which the kernel must enable and
leave running. PLLP is one of those clocks. This clock is shut down
during LP1 in order to save power. Enable bypass (which I believe routes
osc_div_clk, essentially the crystal clock, to the PLL output) so that
this clock signal toggles even though the PLL is not active. This is
required so that LP1 power mode (system suspend) operates correctly.

The bypass configuration must then be undone when resuming from LP1, so
that all peripheral clocks run at the expected rate. Without this, many
peripherals won't work correctly; for example, the UART baud rate would
be incorrect.

NVIDIA's downstream kernel code only does this if not compiled for
Tegra30, so the added code is made conditional upon the chip ID.
NVIDIA's downstream code makes this change conditional upon the active
CPU cluster. The upstream kernel currently doesn't support cluster
switching, so this patch doesn't test the active CPU cluster ID.

[1] 3cc7942a4ae5 ARM: tegra: implement RAM repair

Reported-by: Jonathan Hunter <jonathanh@nvidia.com>
Cc: stable@vger.kernel.org
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2020-01-08 12:57:05 +01:00
Krzysztof Kozlowski
45984f0c70 ARM: samsung: Rename Samsung and Exynos to lowercase
Fix up inconsistent usage of upper and lowercase letters in "Samsung"
and "Exynos" names.

"SAMSUNG" and "EXYNOS" are not abbreviations but regular trademarked
names.  Therefore they should be written with lowercase letters starting
with capital letter.

The lowercase "Exynos" name is promoted by its manufacturer Samsung
Electronics Co., Ltd., in advertisement materials and on website.

Although advertisement materials usually use uppercase "SAMSUNG", the
lowercase version is used in all legal aspects (e.g. on Wikipedia and in
privacy/legal statements on
https://www.samsung.com/semiconductor/privacy-global/).

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2020-01-07 20:44:22 +01:00
Krzysztof Kozlowski
ad097ab061 ARM: exynos: Correct the help text for platform Kconfig option
ARCH_EXYNOS option is used for entire ARMv7 Exynos family, including
also Exynos3 SoCs.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2020-01-07 20:43:19 +01:00
Olof Johansson
d5279a57c4 SoC changes for omaps for v5.6 merge window
SoC related changes for omaps that mostly relate to making iommus
 to start probing with ti-sysc interconnect target module driver:
 
 - Add missing lcdc clockdomain for am43xx
 
 - Pass auxdata for reset control driver
 
 - Remove old pdata quirks for iommus
 
 - Add workaround for dra7 dsp mstandby errata
 
 - Convert iommu platform code to probe with ti-sysc
 
 - Use sperate iommu auxdata for ipu1
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAl4Uwa8RHHRvbnlAYXRv
 bWlkZS5jb20ACgkQG9Q+yVyrpXNafBAApp7l7dV4WFw0zGb8G7RcX7mDLpEtHRzX
 EmoMHeAoJZm46r4FyXF8RoCC2cpiH/HAFMYO/Ev61VJycmgJKGYSuzQ4+7LRSwxP
 3U0n5/xsrswFnWnEN2jsarKSi+UKD7AVe4hNiMSXQizXxuuCZBzCjh9RQN8IBt99
 uaM2prmAzCQ+x4ukX1NyXSFfxF257IpU6BB/oDLpHjPdQUq7nJr94hdzuqwG3J8j
 fOwO1emMyciQf5dTC/fBffyBEsrWYkfQXmrf10DsG1TkICN13vRUIHTO62iHgwAV
 MBYVbqWS7vcfLXQV+Ai7nrsA1csE/677BKD/X+DJDt3+B0huviFt0fw8ZcCNftqx
 LbfklzzNnwbgTeRSuw5i/z0l33jBtGiyjhAx5mAqxax2g8hCX2ef2zuW6rJXpjoD
 JHzLxtBUWI7Ef5J5mteaISa+uTaJTqRtFLzR5b1xOkshYmt/k90HkWOlguzpW7RV
 SfH4lG7mWHuZVR1c7vnhxQAuHoK4zM+F15AqHuF3W/hgYbXKvhLTSYRIzS0aNNIH
 EXCo8oG/fjAcNkqfJSz9W1E+Wow6/zwz86XiRdczYSq104X3CNOC2DFT8wG2qSNO
 vyNvGu/KHaMA6lVZHZNgE+54BH4VkHXeWE8wgokEj7TQFj0NGyVQ9aNxKDG9Ces0
 YKssMka7HHc=
 =DT9F
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v5.6/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/soc

SoC changes for omaps for v5.6 merge window

SoC related changes for omaps that mostly relate to making iommus
to start probing with ti-sysc interconnect target module driver:

- Add missing lcdc clockdomain for am43xx

- Pass auxdata for reset control driver

- Remove old pdata quirks for iommus

- Add workaround for dra7 dsp mstandby errata

- Convert iommu platform code to probe with ti-sysc

- Use sperate iommu auxdata for ipu1

* tag 'omap-for-v5.6/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: OMAP2+: use separate IOMMU pdata to fix DRA7 IPU1 boot
  ARM: OMAP2+: omap-iommu.c conversion to ti-sysc
  ARM: OMAP2+: Add workaround for DRA7 DSP MStandby errata i879
  ARM: OMAP4+: remove pdata quirks for omap4+ iommus
  ARM: OMAP2+: pdata-quirks: add PRM data for reset support
  ARM: OMAP2+: am43xx: Add lcdc clockdomain

Link: https://lore.kernel.org/r/pull-1578420398-290837@atomide.com
Signed-off-by: Olof Johansson <olof@lixom.net>
2020-01-07 11:16:03 -08:00
Florian Fainelli
c586f47f55 ARM: bcm: Select ARM_AMBA for ARCH_BRCMSTB
BCM7211 uses a PL011 UART and is supported using ARCH_BRCMSTB, make sure
that we can enable that driver by selecting ARM_AMBA.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2019-12-26 19:50:54 -08:00
Justin Chen
064f42b28a ARM: brcmstb: Add debug UART entry for 7216
7216 has the same memory map as 7278 and the same physical address for
the UART, alias the definition accordingly.

Signed-off-by: Justin Chen <justinpopo6@gmail.com>
[florian: expand commit message]
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2019-12-20 10:54:05 -08:00
Suman Anna
4601832f40 ARM: OMAP2+: use separate IOMMU pdata to fix DRA7 IPU1 boot
The IPU1 MMU has been using common IOMMU pdata quirks defined and
used by all IPU IOMMU devices on OMAP4 and beyond. Separate out the
pdata for IPU1 MMU with the additional .set_pwrdm_constraint ops
plugged in, so that the IPU1 power domain can be restricted to ON
state during the boot and active period of the IPU1 remote processor.
This eliminates the pre-conditions for the IPU1 boot issue as
described in commit afe518400bdb ("iommu/omap: fix boot issue on
remoteprocs with AMMU/Unicache").

NOTE:
1. RET is not a valid target power domain state on DRA7 platforms,
   and IPU power domain is normally programmed for OFF. The IPU1
   still fails to boot though, and an unclearable l3_noc error is
   thrown currently on 4.14 kernel without this fix. This behavior
   is slightly different from previous 4.9 LTS kernel.
2. The fix is currently applied only to IPU1 on DRA7xx SoC, as the
   other affected processors on OMAP4/OMAP5/DRA7 are in domains
   that are not entering RET. IPU2 on DRA7 is in CORE power domain
   which is only programmed for ON power state. The fix can be easily
   scaled if these domains do hit RET in the future.
3. The issue was not seen on current DRA7 platforms if any of the
   DSP remote processors were booted and using one of the GPTimers
   5, 6, 7 or 8 on previous 4.9 LTS kernel. This was due to the
   errata fix for i874 implemented in commit 1cbabcb9807e ("ARM:
   DRA7: clockdomain: Implement timer workaround for errata i874")
   which keeps the IPU1 power domain from entering RET when the
   timers are active. But the timer workaround did not make any
   difference on 4.14 kernel, and an l3_noc error was seen still
   without this fix.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-12-17 09:57:09 -08:00
Tero Kristo
4ea3711aec ARM: OMAP2+: omap-iommu.c conversion to ti-sysc
Convert omap2 iommu platform code to use ti-sysc instead of legacy
omap-device / hwmod interfaces.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-12-17 09:53:22 -08:00
Suman Anna
2f14101a1d ARM: OMAP2+: Add workaround for DRA7 DSP MStandby errata i879
Errata Title:
i879: DSP MStandby requires CD_EMU in SW_WKUP

Description:
The DSP requires the internal emulation clock to be actively toggling
in order to successfully enter a low power mode via execution of the
IDLE instruction and PRCM MStandby/Idle handshake. This assumes that
other prerequisites and software sequence are followed.

Workaround:
The emulation clock to the DSP is free-running anytime CCS is connected
via JTAG debugger to the DSP subsystem or when the CD_EMU clock domain
is set in SW_WKUP mode. The CD_EMU domain can be set in SW_WKUP mode
via the CM_EMU_CLKSTCTRL [1:0]CLKTRCTRL field.

Implementation:
This patch implements this workaround by denying the HW_AUTO mode
for the EMU clockdomain during the power-up of any DSP processor
and re-enabling the HW_AUTO mode during the shutdown of the last
DSP processor (actually done during the enabling and disabling of
the respective DSP MDMA MMUs). Reference counting has to be used to
manage the independent sequencing between the multiple DSP processors.

This switching is done at runtime rather than a static clockdomain
flags value to meet the target power domain state for the EMU power
domain during suspend.

Note that the DSP MStandby behavior is not consistent across all
boards prior to this fix. Please see commit 45f871eec6c0 ("ARM:
OMAP2+: Extend DRA7 IPU1 MMU pdata quirks to DSP MDMA MMUs") for
details.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-12-17 09:53:18 -08:00
Tero Kristo
e4c4b540e1 ARM: OMAP4+: remove pdata quirks for omap4+ iommus
IOMMU driver will be using ti-sysc bus driver for power management control
going forward, and the pdata quirks are not needed for anything anymore.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-12-17 09:52:26 -08:00
Tero Kristo
8de44fb706 ARM: OMAP2+: pdata-quirks: add PRM data for reset support
The parent clockdomain for reset must be in force wakeup mode, otherwise
the reset may never complete. Add pdata quirks for this purpose for PRM
driver.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-12-17 09:52:01 -08:00
Linus Torvalds
f791ede32a Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto fix from Herbert Xu:
 "Fix another build problem for Wireguard without Crypto"

* 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
  crypto: arm/curve25519 - add arch-specific key generation function
2019-12-14 12:32:28 -08:00
Dave Gerlach
da4f2b4ccc ARM: OMAP2+: am43xx: Add lcdc clockdomain
As described in AM437x TRM, spruhl7h, Revised January 2018, there is
an LCDC clockdomain present in the PER power domain. Although it is
entirely unused on AM437x, it should be defined along with the other
clockdomains so it can be shut off by Linux as there are no users.

Reported-by: Munan Xu <munan@ti.com>
Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-12-12 09:42:34 -08:00
Anson Huang
4562fa4c86 ARM: imx: Enable ARM_ERRATA_814220 for i.MX6UL and i.MX7D
ARM_ERRATA_814220 has below description:

The v7 ARM states that all cache and branch predictor maintenance
operations that do not specify an address execute, relative to
each other, in program order.
However, because of this erratum, an L2 set/way cache maintenance
operation can overtake an L1 set/way cache maintenance operation.
This ERRATA only affected the Cortex-A7 and present in r0p2, r0p3,
r0p4, r0p5.

i.MX6UL and i.MX7D have Cortex-A7 r0p5 inside, need to enable
ARM_ERRATA_814220 for proper workaround.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-12-12 20:38:04 +08:00
Anson Huang
b3082f1bf8 ARM: imx: Add i.MX7ULP SoC serial number support
i.MX7ULP's unique ID layout in OCOTP is different from other
i.MX6/7 SoCs as below:

OCOTP layout		unique ID

0x4b0 bit[15:0]		bit[15:0]
0x4c0 bit[15:0]		bit[31:16]
0x4d0 bit[15:0]		bit[47:32]
0x4e0 bit[15:0]		bit[63:48]

Add support for reading serial number from OCOTP on i.MX7ULP.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-12-12 20:38:01 +08:00
Jason A. Donenfeld
84faa30724 crypto: arm/curve25519 - add arch-specific key generation function
Somehow this was forgotten when Zinc was being split into oddly shaped
pieces, resulting in linker errors. The x86_64 glue has a specific key
generation implementation, but the Arm one does not. However, it can
still receive the NEON speedups by calling the ordinary DH function
using the base point.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2019-12-12 14:07:14 +08:00
Leonard Crestez
7947e3238b ARM: imx: Fix boot crash if ocotp is not found
The imx_soc_device_init functions tries to fetch the ocotp regmap in
order to soc serial number. If regmap fetch fails then a message is
printed but regmap_read is called anyway and the system crashes.

Failing to lookup ocotp regmap shouldn't be a fatal boot error so check
that the pointer is valid.

Only side-effect of ocotp lookup failure now is that serial number will
be reported as all-zeros which is acceptable.

Cc: stable@vger.kernel.org
Fixes: 8267ff89b713 ("ARM: imx: Add serial number support for i.MX6/7 SoCs")
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Tested-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-12-12 10:44:28 +08:00
Leonard Crestez
46db63abb7 ARM: imx_v6_v7_defconfig: Explicitly restore CONFIG_DEBUG_FS
This is currently off and that's not desirable: default imx config is
meant to be generally useful for development and debugging.

Running git bisect between v5.4 and v5.5-rc1 finds this started from
commit 0e4a459f56c3 ("tracing: Remove unnecessary DEBUG_FS dependency")

Explicit CONFIG_DEBUG_FS=y was earlier removed by
commit c29d541f590c ("ARM: imx_v6_v7_defconfig: Remove unneeded options")

A very similar fix was required before:
commit 7e9eb6268809 ("ARM: imx_v6_v7_defconfig: Explicitly restore CONFIG_DEBUG_FS")

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-12-12 10:09:07 +08:00
Leonard Crestez
62cfe242db ARM: dts: imx6ul-evk: Fix peripheral regulator
Many peripherals are affected by gpio5/2, not just sensors. One of those
is ethernet phy so network boot is current broken.

Fix by renaming reg_sensors and marking it as "always on". Also add a
comment asking for careful testing if this is to be made dynamic in the
future.

The "peri_3v3" naming is similar to imx6sx-sdb and regulator-name is
same string as in schematics (VPERI_3V3).

Fixes: 09e2b1048954 ("ARM: dts: imx6ul-14x14-evk: Add sensors' GPIO regulator")
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-12-12 10:04:55 +08:00
Christoph Niedermaier
125ad46f38 ARM: imx: Correct ocotp id for serial number support of i.MX6ULL/ULZ SoCs
After the commit 8267ff89b713 ("ARM: imx: Add serial number support for i.MX6/7 SoCs")
the kernel doesn't start on i.MX6ULL/ULZ SoC.
Tested on next-20191205.

For i.MX6ULL/ULZ the variable "ocotp_compat" is set to "fsl,imx6ul-ocotp", but with commit
ffbc34bf0e9c ("nvmem: imx-ocotp: Implement i.MX6ULL/ULZ support") and commit
f243bc821ee3 ("ARM: dts: imx6ull: Fix i.MX6ULL/ULZ ocotp compatible") the value
"fsl,imx6ull-ocotp" is already defined and set in device tree...

By setting "ocotp_compat" to "fsl,imx6ull-ocotp" the kernel does boot.

Fixes: 8267ff89b713 ("ARM: imx: Add serial number support for i.MX6/7 SoCs")
Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-12-11 14:59:24 +08:00
Claudiu Beznea
80f5869515 ARM: debug-ll: select DEBUG_AT91_RM9200_DBGU for sam9x60
Select DEBUG_AT91_RM9200_DBGU for SAM9X60 SoC.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Link: https://lore.kernel.org/r/1575035505-6310-8-git-send-email-claudiu.beznea@microchip.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2019-12-10 00:45:30 +01:00
Claudiu Beznea
eb0df9b7fb ARM: at91: pm: move SAM9X60's PM under its own SoC config flag
Move SAM9X60's PM part under SoC config flag. This allows the building
of SAM9X60 platform withouth depending on CONFIG_SOC_AT91SAM9 flag,
allowing us to select only necessary config flags for SAM9X60.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Link: https://lore.kernel.org/r/1575035505-6310-4-git-send-email-claudiu.beznea@microchip.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2019-12-10 00:44:53 +01:00
Claudiu Beznea
fe7ff55d79 ARM: at91: Kconfig: add config flag for SAM9X60 SoC
Add config flag for SAM9X60 SoC.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/1575035505-6310-3-git-send-email-claudiu.beznea@microchip.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2019-12-10 00:44:53 +01:00
Claudiu Beznea
fc8c4c059c ARM: at91: Kconfig: add sam9x60 pll config flag
Add SAM9X60's pll config flag. It was first used in
commit a436c2a447e5 ("clk: at91: add sam9x60 PLL driver").

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Link: https://lore.kernel.org/r/1575035505-6310-2-git-send-email-claudiu.beznea@microchip.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2019-12-10 00:44:53 +01:00
Andreas Kemnade
b731fadff4 ARM: dts: e60k02: fix power button
The power button was only producing irqs, but no key events,
Forced power down with long key press works, so probably
only a short spike arrives at the SoC.
Further investigation shows that LDORTC2 is off after boot
of the vendor kernel. LDORTC2 is shared with a GPIO at the pmic
which probably transfers the button press to the SoC.
That regulator off at boot, so "regulator-boot-on" is definitively
wrong. So remove that.

Reported-by: H. Nikolaus Schaller <hns@goldelico.com>
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Fixes: c100ea86e6ab ("ARM: dts: add Netronix E60K02 board common file")
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-12-09 08:55:16 +08:00
Stefan Roese
0aeb1f2b74 ARM: dts: imx6ul: imx6ul-14x14-evk.dtsi: Fix SPI NOR probing
Without this "jedec,spi-nor" compatible property, probing of the SPI NOR
does not work on the NXP i.MX6ULL EVK. Fix this by adding this
compatible property to the DT.

Fixes: 7d77b8505aa9 ("ARM: dts: imx6ull: fix the imx6ull-14x14-evk configuration")
Signed-off-by: Stefan Roese <sr@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-12-09 08:25:21 +08:00
Linus Torvalds
eea2d5da29 ARM fixes for 5.5-rc:
- fix CPU topology setup for SCHED_MC case
 - fix VDSO regression
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEuNNh8scc2k/wOAE+9OeQG+StrGQFAl3qQUYACgkQ9OeQG+St
 rGTg0g/+LThc7XoEkGzXbswGtAZU0Tv+pcNXi4G+KAlePIutHpcf9ogY//mfXyVp
 SHLQBb0fNKzygt5e1Aq1X+99RsGbI7oMgKTiQgLrb6MPrhOLWwCWymnbyaTAcKgD
 QXHghta7tEGunvnnRWJTKWG24qoTvM1JFoUnHnrArYYyJoyRzQE2kMK2S3Z6X6xp
 Rcx152s/7lPdwPB5i6hyIlYVYVQN6JAz0w1nyrqmwjGTZU1NvPQaAemKYO3Ti4pD
 8HjMGtLa4AhgngkKiZt0gFI75kKp2Uf/rcowC4Li6ZQua1kYCankCYXoc9soCkHu
 1Qn0WyEZXVtMGMenEOGeYo/neTfhcBEkY3CMQO/QMfcpsFFn2fmiBmwMLvE8RMJ7
 UDiNBqVW8eZL45h6BF6QefWUzbzFQjfe2SXk5C58WrvlaZPldTucSmNLA1GoFn/p
 Ni+KqDHUACTNMb87kEDAfJGx3znS2EtdiwFfb3lqHnQ5GO6GdKrMPC1GfK32LgfO
 TN4nVEYu71ZMINidxuK0wuSRK2eadY6M08lKlrikGbkQJlo0R6YGuwzKiRmlHq5H
 QldDMKhPRuxLMTViphqRdHwoWRPpvbwVbJDjwea0run0lgCzEq4J+s2X/CXUZIAM
 b1y4APz/UgGyiYzmstZCYvfYZ0Tq8AU52757jFWjBoiEr+xEppE=
 =gTck
 -----END PGP SIGNATURE-----

Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm

Pull ARM fixes from Russell King:

 - fix CPU topology setup for SCHED_MC case

 - fix VDSO regression

* tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
  ARM: 8947/1: Fix __arch_get_hw_counter() access to CNTVCT
  ARM: 8943/1: Fix topology setup in case of CPU hotplug for CONFIG_SCHED_MC
2019-12-06 16:12:39 -08:00