]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
4 years agoarm64: zynqmp: Update DPDMA entry
Dylan Yip [Wed, 10 Mar 2021 09:47:40 +0000 (01:47 -0800)] 
arm64: zynqmp: Update DPDMA entry

As per Linux commit 7cbb0c63de3f ("dmaengine: xilinx: dpdma: Add the Xilinx
DisplayPort DMA engine driver"), the dt entry for the ZynqMP DPDMA has been
modified. So update the dt entry per the new dt bindings.

Signed-off-by: Dylan Yip <dylan.yip@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agospi: zynqmp_gqspi: fix set_speed bug on multiple runs
Brandon Maier [Wed, 20 Jan 2021 20:28:30 +0000 (14:28 -0600)] 
spi: zynqmp_gqspi: fix set_speed bug on multiple runs

If zynqmp_qspi_set_speed() is called multiple times with the same speed,
then on the second call it will skip recalculating the baud_rate_val as
it assumes the speed is already configured correctly. But it will still
write the baud_rate_val to the configuration register and call
zynqmp_gqspi_set_tapdelay(). Because it skipped recalculating the
baud_rate_val, it will use the initial value of 0 . This causes the
driver to run at maximum speed which for many spi flashes is too fast and
causes data corruption.

Instead only write out a new baud_rate_val if we have calculated the
correct baud_rate_val.

This opens up another issue with the "if (speed == 0)", we don't save
off the new plat->speed_hz value when setting the baud rate on the
speed=0 path. Instead mimic what the Linux zynqmp gqspi driver does, and
have speed==0 just use the same calculation as a normal speed. That will
cause the baud_rate_val to use the slowest speed possible, which is the
safest option.

Signed-off-by: Brandon Maier <brandon.maier@rockwellcollins.com>
CC: jagan@amarulasolutions.com
CC: michal.simek@xilinx.com
CC: Ashok Reddy Soma <ashokred@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: zynqmp: Add mode-pin GPIO controller DT node
Piyush Mehta [Wed, 10 Mar 2021 16:09:40 +0000 (21:39 +0530)] 
arm64: zynqmp: Add mode-pin GPIO controller DT node

Add mode-pin GPIO controller DT node in zynqmp.dtsi

Signed-off-by: Piyush Mehta <piyush.mehta@xilinx.com>
4 years agoxilinx: Sync DTs for GTRs with Linux kernel
Michal Simek [Thu, 11 Mar 2021 14:33:25 +0000 (15:33 +0100)] 
xilinx: Sync DTs for GTRs with Linux kernel

There are several changes which happen in mainline kernel which should get
also to U-Boot. Here is the list of patches from the kernel:

- arm64: dts: zynqmp: Fix u48 si5382 chip on zcu111
- arm64: dts: zynqmp: Enable phy driver for Sata on zcu102/zcu104/zcu106
- arm64: dts: zynqmp: Enable si5341 driver for zcu102/106/111
- arm64: dts: zynqmp: Add DT description for si5328 for zcu102/zcu106

but also some other changes have been done.
- Remove USB3.0 serdes configurations
- Remove SATA serdes configuration for zc1232
- Remove comments about sgmii from a2197* boards
- Update all files with psgtr which are not upstream yet.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: zynqmp: Sync dpdma with mainline kernel
Michal Simek [Fri, 12 Mar 2021 09:19:19 +0000 (10:19 +0100)] 
arm64: zynqmp: Sync dpdma with mainline kernel

Just exchange possition and use the same coding style.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: zynqmp: Rename xlnx_dpdma to zynqmp_dpdma
Michal Simek [Thu, 11 Mar 2021 12:37:15 +0000 (13:37 +0100)] 
arm64: zynqmp: Rename xlnx_dpdma to zynqmp_dpdma

This label is used in upstream linux that's why align with it.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: dts: zynqmp: Add missing mio-bank properties to sdhcis
Michal Simek [Thu, 21 Jan 2021 10:26:55 +0000 (11:26 +0100)] 
arm64: dts: zynqmp: Add missing mio-bank properties to sdhcis

Add missing xlnx,mio-bank property to sdhci nodes. Also add properties with
0 value to have it listed in case that files are copied to different
projects where default case doesn't need to be handled in the same way.
That's why explicitly list them too.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lore.kernel.org/r/dbdfcc1b25af8b28fc658a37ce18902978cb410d.1611224800.git.michal.simek@xilinx.com
4 years agoarm64: zynqmp: Add also support for xck24
Michal Simek [Fri, 6 Nov 2020 09:06:17 +0000 (10:06 +0100)] 
arm64: zynqmp: Add also support for xck24

Not to lost information about ID code.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: zynqmp: Add missing silabs,skip-recall for si570 ref clk nodes
Michal Simek [Tue, 9 Mar 2021 11:43:42 +0000 (12:43 +0100)] 
arm64: zynqmp: Add missing silabs,skip-recall for si570 ref clk nodes

All si570 which are used for ps reference clock generation should contain
silabls,skip-recall property not to cause break on ps clock.
On Versal boards this will cause hang on Versal cpu when it is booted at
the same time with SC.
On zcu670 this can cause PS hang that's why add it for sure.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: zynqmp: Add support for K26 and KV260
Michal Simek [Wed, 15 Jul 2020 09:44:43 +0000 (11:44 +0200)] 
arm64: zynqmp: Add support for K26 and KV260

Add support for K26 and KV260
The support is split to 4 files for the following reason.

-k26-revA.dts - This is base DTS file which describes only SOM with
few exceptions.
a) GPIOs
b) uart at MIO34/MIO35
c) Aliases are filled even by IPs which are not enabled to have consistent
numbering scheme

-k26-revA-u-boot.dts - DTS file which targets only U-Boot project and
 which is automatically pick up by u-boot at build time. It enables SD card
 which is available on CC and it disable all HS modes capabilities to make
 sure that u-boot is capable to read data from SD without a need to setup
 tap delays for custom CCs.

-kv260-revA.dts - it is device tree overlay automatically built as dtbo
 which describes CC and all features on it.

-kv260-revA-pl.dts - ML Vision description for hardware i2c switch which is
 connected to PL. As of today it is here just for reference that there is a
 node which needs to be described and handled by SW.

Pincntrl description is not present but it could come in future especially
in connection to SD card connection.

There is also high chance that there is going to be a need to detect CC
from u-boot that's why u-boot DTS could also contain eeprom available at CC
for detection. It doesn't need to be there but it is good to list it not to
go around driver model in u-boot.

For checking DTBo fdtoverlay command can be used to make sure that base DT
and overlays are compatible to each other:
fdtoverlay -v -i arch/arm/dts/zynqmp-sm-k26-revA.dtb \
arch/arm/dts/zynqmp-sk-kv260-revA.dtbo -o /tmp/1.dtb

For building u-boots dtb file just run make.
For building Linux dtb files don't include u-boot.dtsi in build

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: zynqmp: Add labels to DPSub vid and gfx layers
Christian Kohn [Sat, 30 Jan 2021 02:37:25 +0000 (18:37 -0800)] 
arm64: zynqmp: Add labels to DPSub vid and gfx layers

For the SOM aa2 use case where the video mixer PL IP is connected to the DP
subsystem, the video layer needs to be referenced from a dt overlay. Hence,
add labels for the video and graphics layers in the dpsub node.

Signed-off-by: Christian Kohn <christian.kohn@xilinx.com>
4 years agoarm64: zynqmp: Add support for SVD devices
Michal Simek [Mon, 5 Oct 2020 07:35:40 +0000 (09:35 +0200)] 
arm64: zynqmp: Add support for SVD devices

SVD are using different name which can't be handled via zynqmp_devices
structure. That's why introduce zynqmp_detect_svd_name() which checks ID
code for these devices and show proper name for them.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: zynqmp: Update clock controller on zcu670
Michal Simek [Wed, 3 Mar 2021 12:43:09 +0000 (13:43 +0100)] 
arm64: zynqmp: Update clock controller on zcu670

There is no Linux driver for this chip that's why comment it out for now.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: zynqmp: Add support for zcu670-revA board
Michal Simek [Mon, 18 Jan 2021 12:58:39 +0000 (13:58 +0100)] 
arm64: zynqmp: Add support for zcu670-revA board

The board is sharing a lot of components with zcu208 but it contains
differet silicon and also several components are done differently.
The board has 4GB memory connected to PS and additional 4GB connected to
PL. Compare to zcu208 sata support has been dropped and only USB3.0 is
using GTR (lane2). Others GTRs are routed to connectors.

MIO configuration is also shared with zcu111.

The board is using si5381 chip compare to si5341 which is normally used.
And as of now there is no Linux driver for this chip. PS reference clock is
generated out of si570 chip which is also new approach compare to zcu208.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: versal: Define zynqmp_mmio_write() for versal
Michal Simek [Tue, 16 Mar 2021 12:44:58 +0000 (13:44 +0100)] 
arm64: versal: Define zynqmp_mmio_write() for versal

GQSPI driver is using it but this function is never called for Versal
because it is removed by linker. But function should be declared to avoid
this build warning:
drivers/spi/zynqmp_gqspi.c: In function 'zynqmp_qspi_set_tapdelay':
drivers/spi/zynqmp_gqspi.c:378:3: warning: implicit declaration of function
'zynqmp_mmio_write' [-Wimplicit-function-declaration]
  378 |   zynqmp_mmio_write(IOU_TAPDLY_BYPASS_OFST,

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: versal: Remove interrupt-parent property
Michal Simek [Tue, 16 Mar 2021 12:38:59 +0000 (13:38 +0100)] 
arm64: versal: Remove interrupt-parent property

There is interrupt-parent property for the whole bus that's why it doesn't
need to be setup for every IP.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: versal: Rename bus busses to be align with simple-bus yaml
Michal Simek [Tue, 16 Mar 2021 07:17:15 +0000 (08:17 +0100)] 
arm64: versal: Rename bus busses to be align with simple-bus yaml

The same change has been done in Linux for Zynq and ZynqMP. Also add gic to
the same bus with other nodes to avoid issues reported on ZynqMP. For more
information please take a look at links below.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lore.kernel.org/r/68f20a2b2bb0feee80bc3348619c2ee98aa69963.1598263539.git.michal.simek@xilinx.com
Link: https://lore.kernel.org/r/f767fe007e446a2299fda9905e75b723c650a424.1605021644.git.michal.simek@xilinx.com
4 years agoARM: zynq: Rename bus to be align with simple-bus yaml
Michal Simek [Thu, 26 Nov 2020 13:25:01 +0000 (14:25 +0100)] 
ARM: zynq: Rename bus to be align with simple-bus yaml

Rename amba to AXI. Based on Xilinx Zynq TRM (Chapter 5) chip is "AXI
point-to-point channels for communicating addresses, data, and response
transactions between master and slave clients. This ARM AMBA 3.0..."

Issues are reported as:
.. amba: $nodename:0: 'amba' does not match
'^([a-z][a-z0-9\\-]+-bus|bus|soc|axi|ahb|apb)(@[0-9a-f]+)?$'
>From schema:
../github.com/devicetree-org/dt-schema/dtschema/schemas/simple-bus.yaml

Similar change has been done for Xilinx ZynqMP SoC.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lore.kernel.org/r/8a4bc80debfbb79c296e76fc1e4c173e62657286.1606397101.git.michal.simek@xilinx.com
4 years agoarm64: dts: zynqmp-zcu100-revC: correct interrupt flags
Krzysztof Kozlowski [Thu, 17 Sep 2020 18:50:52 +0000 (20:50 +0200)] 
arm64: dts: zynqmp-zcu100-revC: correct interrupt flags

GPIO_ACTIVE_x flags are not correct in the context of interrupt flags.
These are simple defines so they could be used in DTS but they will not
have the same meaning:
1. GPIO_ACTIVE_HIGH = 0 = IRQ_TYPE_NONE
2. GPIO_ACTIVE_LOW  = 1 = IRQ_TYPE_EDGE_RISING

Correct the interrupt flags, assuming the author of the code wanted same
logical behavior behind the name "ACTIVE_xxx", this is:
  ACTIVE_LOW => IRQ_TYPE_LEVEL_LOW

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20200917185052.5084-1-krzk@kernel.org
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: Linux upstream (fa7a98eb47f4d0aa431994dfd5cf2d621771ebe5)

4 years agonet: gem: Fix setting PCS auto-negotiation state
Robert Hancock [Thu, 11 Mar 2021 22:55:50 +0000 (16:55 -0600)] 
net: gem: Fix setting PCS auto-negotiation state

The code was trying to disable PCS auto-negotiation when a fixed-link node
is present and enable it otherwise. However, the PCS registers were being
written before the PCSSEL bit was set in the network configuration
register, and it appears that in this state, PCS register writes are
ignored. The result is that the intended change only took effect on the
second network operation that was performed, since at that time PCSSEL is
already enabled.

Fix the order of register writes so that PCS registers are only written to
after the PCS is enabled.

Fixes: 26e62cc971 ("net: gem: Disable PCS autonegotiation in case of fixed-link")
Signed-off-by: Robert Hancock <robert.hancock@calian.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Reviewed-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: versal: Add missing DCC uart config
T Karthik Reddy [Wed, 17 Mar 2021 08:48:16 +0000 (02:48 -0600)] 
arm64: versal: Add missing DCC uart config

CONFIG_ARM_DCC is missing in versal mini qspi & ospi defconfig
files. Add above config to both defconfig files.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
4 years agomicroblaze: Make extended addressing support default
T Karthik Reddy [Wed, 17 Mar 2021 07:01:52 +0000 (01:01 -0600)] 
microblaze: Make extended addressing support default

Axi qspi controller supports 32-bit & 24-bit addressing modes
for micron, macronix & spansion flash parts. But for winbond
flashes it only supports 24-bit addressing mode.
Enable CONFIG_SPI_FLASH_BAR to use extended addressing mode
to make 32-bit addressing mode work on all flashes.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
4 years agospi: xilinx_spi: Add support for spi memory operations
T Karthik Reddy [Wed, 17 Mar 2021 07:01:51 +0000 (01:01 -0600)] 
spi: xilinx_spi: Add support for spi memory operations

Add support for spi memory operations for xilinx AXI qspi driver.
This provides an high-level interface to execute SPI memory
operations by the controller.

Remove existing spi transfer based implementation and use
spi memory based exec_op() implementation for qspi IO operations.

Simplified existing startup_block implementation.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
4 years agospi: xilinx_spi: Trivial fixes in axi qspi driver
T Karthik Reddy [Wed, 17 Mar 2021 07:01:50 +0000 (01:01 -0600)] 
spi: xilinx_spi: Trivial fixes in axi qspi driver

Use __func__ instead for function name in debug.
Use Linux style u32 instead of uint32_t.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
4 years agospi: spi-uclass: Add support to manually relocate spi memory ops
T Karthik Reddy [Wed, 17 Mar 2021 07:01:49 +0000 (01:01 -0600)] 
spi: spi-uclass: Add support to manually relocate spi memory ops

Add spi memory operations to relocate manually when
CONFIG_NEEDS_MANUAL_RELOC is enabled.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Pratyush Yadav <p.yadav@ti.com>
4 years agoxilinx: Sync DTs with Linux kernel
Michal Simek [Fri, 12 Mar 2021 09:21:05 +0000 (10:21 +0100)] 
xilinx: Sync DTs with Linux kernel

- Align zynqmp_dpdma node possition
- Resort nvmem_firmware
- Update nand compatible string
- Align power-domains property for sd0/1
- And small other pieces

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: dts: xilinx: align GPIO hog names with dtschema
Krzysztof Kozlowski [Wed, 16 Sep 2020 15:57:07 +0000 (17:57 +0200)] 
arm64: dts: xilinx: align GPIO hog names with dtschema

The convention for node names is to use hyphens, not underscores.
dtschema for pca95xx expects GPIO hogs to end with 'hog' prefix.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20200916155715.21009-8-krzk@kernel.org
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoARM: zynq: Fix compatible string for adi,adxl345 chip
Michal Simek [Thu, 26 Nov 2020 13:25:00 +0000 (14:25 +0100)] 
ARM: zynq: Fix compatible string for adi,adxl345 chip

The commit e359a29225dd ("dt-bindings: iio: accel: adxl345: switch to YAML
bindings") switched binding to yaml and the following error pop up:
../zynq-zturn-v5.dt.yaml: accelerometer@53: compatible: 'oneOf' conditional
failed, one must be
fixed:
['adi,adxl345', 'adxl345', 'adi,adxl34x', 'adxl34x'] is too long
Additional items are not allowed ('adi,adxl34x', 'adxl34x' were unexpected)
Additional items are not allowed ('adxl345', 'adi,adxl34x', 'adxl34x' were
unexpected)
'adi,adxl346' was expected
'adi,adxl345' was expected

Use only one compatible string to be aligned with the binding.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lore.kernel.org/r/a9075ab54df13461380e46d3002302d3672325b5.1606397101.git.michal.simek@xilinx.com
4 years agoarm64: zynqmp: Remove comment about clock chips
Michal Simek [Thu, 11 Mar 2021 12:34:02 +0000 (13:34 +0100)] 
arm64: zynqmp: Remove comment about clock chips

These comments weren't push to mainline that's why remove them.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoARM: zynq: Fix leds subnode name for zc702/zybo-z7
Michal Simek [Thu, 26 Nov 2020 13:25:02 +0000 (14:25 +0100)] 
ARM: zynq: Fix leds subnode name for zc702/zybo-z7

Fix the leds subnode names to match (^led-[0-9a-f]$|led).

Similar change has been also done by commit 9a19a39ee48b ("arm64: dts:
zynqmp: Fix leds subnode name for zcu100/ultra96 v1").

The patch is fixing these warnings:
.../zynq-zc702.dt.yaml: leds: 'ds23' does not match any of the regexes:
'(^led-[0-9a-f]$|led)', 'pinctrl-[0-9]+'
>From schema: .../Documentation/devicetree/bindings/leds/leds-gpio.yaml
.../zynq-zybo-z7.dt.yaml: gpio-leds: 'ld4' does not match any of the
regexes: '(^led-[0-9a-f]$|led)', 'pinctrl-[0-9]+'
>From schema: .../Documentation/devicetree/bindings/leds/leds-gpio.yaml

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lore.kernel.org/r/607a66783b129294364abf09a6fc8abd241ff4ee.1606397101.git.michal.simek@xilinx.com
4 years agoarm64: dts: zynqmp: Fix leds subnode name for zcu100/ultra96 v1
Michal Simek [Mon, 24 Aug 2020 10:28:39 +0000 (12:28 +0200)] 
arm64: dts: zynqmp: Fix leds subnode name for zcu100/ultra96 v1

Fix the leds subnode names to match (^led-[0-9a-f]$|led).

Similar change has been also done by commit 08dc0e5dd9aa ("arm64: dts:
meson: fix leds subnodes name").

The patch is fixing this warning:
avnet-ultra96-rev1.dt.yaml: leds: 'ds2', 'ds3', 'ds4', 'ds5' do not match
any of the regexes: '(^led-[0-9a-f]$|led)', 'pinctrl-[0-9]+'

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lore.kernel.org/r/1a69c3fa0291f991ffcf113ea222c713ba4d4ff0.1598264917.git.michal.simek@xilinx.com
4 years agomtd: spi-nor: Enable strip flag to read configuration register
T Karthik Reddy [Wed, 10 Mar 2021 05:30:02 +0000 (22:30 -0700)] 
mtd: spi-nor: Enable strip flag to read configuration register

In dual parallel mode, unable to read configuration register(CR)
from spansion flash to check quad enable bit due to no response
from upper flash. Add SPI_XFER_STRIPE flag to send configuration
register command to both upper and lower flashes and get
response accordingly.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
4 years agopy: tests: Bind should run only on sandbox
Michal Simek [Tue, 9 Mar 2021 11:43:14 +0000 (12:43 +0100)] 
py: tests: Bind should run only on sandbox

Disable test to run on any other platform than sandbox.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: zynqmp: Enable sha1sum command
Michal Simek [Fri, 4 Dec 2020 09:37:38 +0000 (10:37 +0100)] 
arm64: zynqmp: Enable sha1sum command

Enable it for TPM usage.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: zynqmp: List smmu ids for DP and DPDMA
Michal Simek [Wed, 3 Mar 2021 12:45:31 +0000 (13:45 +0100)] 
arm64: zynqmp: List smmu ids for DP and DPDMA

List these values and comment them for now till we double check how many
can be used the same time.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm: dts: versal: Update calibration value
Srinivas Neeli [Wed, 3 Mar 2021 12:27:34 +0000 (17:57 +0530)] 
arm: dts: versal: Update calibration value

Updated calibration value with 0x7FFF.

If set to anything <0x7FFF, you will see a speedup
If set to anything >0x7FFF, you will see a slowdown

Signed-off-by: Srinivas Neeli <srinivas.neeli@xilinx.com>
4 years agoclk: zynqmp: Fix clk dump values
T Karthik Reddy [Thu, 25 Feb 2021 06:44:46 +0000 (23:44 -0700)] 
clk: zynqmp: Fix clk dump values

With "clk dump" command, few clocks are showing up incorrect values
and some clocks are displayed as "unknown".

Add missing clocks to zynqmp clock driver to display proper
clocks rates.

Implement a simple way to get clock source, instead of calling
functions. Change existing functions to this simple mechanism.

Fix gem clock name "gem_rx" to "gem_tx" which was incorrect.
Change dbf_fpd & dbf_lpd clk names to dbg_fpd & dbg_lpd.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
4 years agoxilinx: versal: Add support for saving env based on bootmode
Ashok Reddy Soma [Tue, 23 Feb 2021 15:07:46 +0000 (08:07 -0700)] 
xilinx: versal: Add support for saving env based on bootmode

Enable saving variables to MMC(FAT) and SPI based on primary
bootmode. If bootmode is JTAG, dont save env anywhere(NOWHERE).

Enable ENV_FAT_DEVICE_AND_PART="0:auto" for Versal platforms as well.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
4 years agoxilinx: zynq: Add support for saving env based on bootmode
Ashok Reddy Soma [Tue, 23 Feb 2021 15:07:45 +0000 (08:07 -0700)] 
xilinx: zynq: Add support for saving env based on bootmode

Enable saving variables to MMC(FAT), NAND, SPI based on primary
bootmode. If bootmode is JTAG, dont save env anywhere(NOWHERE).

Since most of the flashes on zynq evaluation boards are 16MB in size,
set default ENV_OFFSET to 15MB(0xE00000).

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
4 years agoarm64: zynqmp: Rename clocks as per the Arasan NAND driver
Amit Kumar Mahapatra [Tue, 23 Feb 2021 20:47:20 +0000 (13:47 -0700)] 
arm64: zynqmp: Rename clocks as per the Arasan NAND driver

In zynqmp.dtsi file renamed "clk_sys" clock to "controller" and
"clk_flash" clock to "bus" as per upstreamed Arasan NAND driver.
This fixes NAND driver probe failure.

Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agomtd: spi-nor: Check if block protection bits are set
T Karthik Reddy [Mon, 22 Feb 2021 15:39:56 +0000 (08:39 -0700)] 
mtd: spi-nor: Check if block protection bits are set

When block protection is enabled, erase & write operations should
fail for the blocks which are protected. Add support for this
checking in erase and write functions by reading BP & TB bits,
throw error if the blocks are write protected.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
4 years agomtd: spi-nor: Add block protection support for micron flashes
T Karthik Reddy [Mon, 22 Feb 2021 15:39:55 +0000 (08:39 -0700)] 
mtd: spi-nor: Add block protection support for micron flashes

Micron nor flashes provide block protection support using
BP0, BP1, BP2, BP3 & TB bits in status register. This patch
supports only for micron nor flashes with manufacturer id 0x20.

Where BP(Block Protection) bits defines memory to be software
protected against PROGRAM or ERASE operations. When one or more
block protect bits are set to 1, a designated memory area is
protected from PROGRAM and ERASE operations. TB(Top/Bottom) bit
determines whether the protected memory area defined by the block
protect bits starts from the top or bottom of the memory array.

Block Protection table for N25Q00AA with size 128MB, sector size 64KB
and with 2048 sectors.

Top protection:
--------------
TB BP3 BP2 BP1 BP0 Protected Area Un-Protected Area
0 0 0 0 0 None All sectors
0 0 0 0 1 Sector 2047 Sectors (0 to 2046)
0 0 0 1 0 Sectors (2046 to 2047) Sectors (0 to 2045)
0 0 0 1 1 Sectors (2044 to 2047)  Sectors (0 to 2043)
0 0 1 0 0 Sectors (2040 to 2047)  Sectors (0 to 2039)
0 0 1 0 1 Sectors (2032 to 2047)  Sectors (0 to 2031)
0 0 1 1 0 Sectors (2016 to 2047)  Sectors (0 to 2015)
0 0 1 1 1 Sectors (1984 to 2047)  Sectors (0 to 1983)
0 1 0 0 0 Sectors (1920 to 2047)  Sectors (0 to 1919)
0 1 0 0 1 Sectors (1792 to 2047)  Sectors (0 to 1791)
0 1 0 1 0 Sectors (1936 to 2047)  Sectors (0 to 1535)
0 1 0 1 1 Sectors (1024 to 2047) None

Bottom protection:
-----------------
TB BP3 BP2 BP1 BP0 Protected Area Un-protected Area
1 0 0 0 0 None All sectors
1 0 0 0 1 sector 0 Sectors (1 to 2047)
1 0 0 1 0 Sectors (0 to 1) Sectors (2 to 2047)
1 0 0 1 1 Sectors (0 to 3) Sectors (4 to 2047)
1 0 1 0 0 Sectors (0 to 7) Sectors (8 to 2047)
1 0 1 0 1 Sectors (0 to 15) Sectors (16 to 2047)
1 0 1 1 0 Sectors (0 to 31) Sectors (32 to 2047)
1 0 1 1 1 Sectors (0 to 63) Sectors (64 to 2047)
1 1 0 0 0 Sectors (0 to 127) Sectors (128 to 2047)
1 1 0 0 1 Sectors (0 to 255) Sectors (256 to 2047)
1 1 0 1 0 Sectors (0 to 511) Sectors (512 to 2047)
1 1 0 1 1 Sectors (0 to 1023) Sectors (1024 to 2047)

Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
4 years agoarm64: zynqmp: Update device tree properties for nand flash
Amit Kumar Mahapatra [Thu, 18 Feb 2021 07:50:21 +0000 (00:50 -0700)] 
arm64: zynqmp: Update device tree properties for nand flash

Update the following device tree properties for nand flash

- Set software ecc mode.
- Set bch as ecc algo.
- Set read block to 0.

Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@xilinx.com>
4 years agoarm64: zynqmp: Update psu_init for zcu1275
Michal Simek [Wed, 17 Feb 2021 12:10:05 +0000 (13:10 +0100)] 
arm64: zynqmp: Update psu_init for zcu1275

Update clock/pll setup, ddr, MIOs based on 2020.2 hw design.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agonet: gem: unregister mdio bus if probe fails
Michael Walle [Wed, 10 Feb 2021 21:41:57 +0000 (22:41 +0100)] 
net: gem: unregister mdio bus if probe fails

If probe fails, the mdio bus isn't unregistered. Fix it.

Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: zynqmp: Add idt 8a34001 chip to zcu208/zcu216
Michal Simek [Fri, 22 Jan 2021 13:42:29 +0000 (14:42 +0100)] 
arm64: zynqmp: Add idt 8a34001 chip to zcu208/zcu216

There is Linux driver for these chips that's why add it to device tree.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: zynqmp: Add missing psu inits for zcu208/216
Michal Simek [Wed, 17 Feb 2021 08:40:38 +0000 (09:40 +0100)] 
arm64: zynqmp: Add missing psu inits for zcu208/216

Add missing configurations file for zcu208 and zcu216.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agofpga: zynqpl: fix buffer alignment
Michael Walle [Wed, 10 Feb 2021 21:42:29 +0000 (22:42 +0100)] 
fpga: zynqpl: fix buffer alignment

Due to pointer arithmetic, "sizeof(u32) * ARCH_DMA_MINALIGN" is
subtracted. It seems that the original intention was to just subtract
ARCH_DMA_MINALIGN. Fix it.

Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: upstream (8c02d842b61ebd579e42ff3f0326457e7d10ec95)

4 years agoarm64: zynqmp: Rename zc1275/zcu1275 to be aligned with DT name
Michal Simek [Wed, 17 Feb 2021 07:55:34 +0000 (08:55 +0100)] 
arm64: zynqmp: Rename zc1275/zcu1275 to be aligned with DT name

Folder names corresponds to DT name. These boards have been renamed from
zc1275 to zcu1275 by commit shown below and this should be the part of that
commit.

Fixes: 420d44678119 ("arm64: zynqmp: Rename zc1275 to zcu1275")
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: zynqmp: Add emmc specific parameters
Ashok Reddy Soma [Tue, 16 Feb 2021 14:02:14 +0000 (07:02 -0700)] 
arm64: zynqmp: Add emmc specific parameters

EMMC will have bus-width 8 and it is non-removable in general. These
are missing from dt node. Add bus-width and non-removable parameters
to emmc node.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
4 years agoarm64: zynqmp: Increase size of malloc pool
Ashok Reddy Soma [Tue, 16 Feb 2021 14:02:13 +0000 (07:02 -0700)] 
arm64: zynqmp: Increase size of malloc pool

size of malloc() pool for use before relocation is not sufficient
for ZynqMP mini u-boot with emmc configuration. Increase it to 4K.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
4 years agoarm64: zynqmp: Do not clear reset reason
Michal Simek [Tue, 9 Feb 2021 07:50:22 +0000 (08:50 +0100)] 
arm64: zynqmp: Do not clear reset reason

There is no need to clear reset reason register because it is protected by
PMUFW already which is reported when verbose log is enabled as:
pm_core.c@733 APU> No write permission to 0xFF5E0220

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lists.denx.de/pipermail/u-boot/2021-February/440741.html
State: waiting

4 years agoxilinx: zynq: Enable time and timer commands
Ashok Reddy Soma [Thu, 4 Feb 2021 07:39:01 +0000 (00:39 -0700)] 
xilinx: zynq: Enable time and timer commands

Enable time command to get the elapsed time and timer commands.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
4 years agoxilinx: Show silicon version in SPL
Michal Simek [Tue, 2 Feb 2021 15:34:48 +0000 (16:34 +0100)] 
xilinx: Show silicon version in SPL

Both Zynq and ZynqMP can show silicon versions in SPL boot flow. It is
useful to be aware.
The patch is also fixing possition of these bits on ZynqMP.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agonet: gem: Enable ethernet rx clock for versal
T Karthik Reddy [Wed, 3 Feb 2021 10:10:48 +0000 (03:10 -0700)] 
net: gem: Enable ethernet rx clock for versal

Enable rx clock along with tx clock for versal platform. Use compatible
data to enable/disable clocks in the driver.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
4 years agoi2c: i2c_cdns: Enable i2c clock
T Karthik Reddy [Wed, 3 Feb 2021 10:10:46 +0000 (03:10 -0700)] 
i2c: i2c_cdns: Enable i2c clock

Enable i2c controller clock from driver probe function
by calling clk_enable().

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
4 years agoclk: versal: Add support to enable clocks
T Karthik Reddy [Wed, 3 Feb 2021 10:10:47 +0000 (03:10 -0700)] 
clk: versal: Add support to enable clocks

Add clock enable functionality in versal clock driver to enable
clocks from peripheral drivers using clk_ops.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
4 years agoclk: zynqmp: Add support to enable clocks
T Karthik Reddy [Wed, 3 Feb 2021 10:10:45 +0000 (03:10 -0700)] 
clk: zynqmp: Add support to enable clocks

Add clock enable functionality in zynqmp clock driver to enable
clocks from peripheral drivers using clk_ops.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
4 years agoclk: zynq: Add dummy clock enable function
Michal Simek [Tue, 9 Feb 2021 14:28:15 +0000 (15:28 +0100)] 
clk: zynq: Add dummy clock enable function

A lot of Xilinx drivers are checking -ENOSYS which means that clock driver
doesn't have enable function. Remove this checking from drivers and create
dummy enable function as was done for clk_fixed_rate driver by
commit 6bf6d81c1112 ("clk: fixed_rate: add dummy enable() function").

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoMerge xlnx_rebase_v2021.01' into master
Michal Simek [Tue, 2 Feb 2021 16:23:29 +0000 (17:23 +0100)] 
Merge xlnx_rebase_v2021.01' into master

As last year we have prepared rebase branch first and then it was merged to
master. At the same time rebase branch is going to be tuned based on the
latest upstream submission.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoarm64: versal: Update versal watchdog node
Srinivas Neeli [Mon, 12 Oct 2020 12:06:30 +0000 (17:36 +0530)] 
arm64: versal: Update versal watchdog node

Added interrupt information and updated timeout, pretimeout values.

Signed-off-by: Srinivas Neeli <srinivas.neeli@xilinx.com>
State: pending

4 years agoRevert "arm64: versal: Generate position-independent pre-relocation code"
Michal Simek [Thu, 28 Jan 2021 09:21:09 +0000 (10:21 +0100)] 
Revert "arm64: versal: Generate position-independent pre-relocation code"

This reverts commit c3f1eaa32dc2ab48e193778d45b97d4d2206b0b2.
There is any issue on Versal where this option is enabled. That's why
disable it for now.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agoarm64: dts: zynqmp: Enable si5341 driver for zcu102/106/111/208/216
Michal Simek [Fri, 13 Nov 2020 11:47:37 +0000 (12:47 +0100)] 
arm64: dts: zynqmp: Enable si5341 driver for zcu102/106/111/208/216

Enable si5341 driver is the main chip for providing preprogrammed clocks
for the whole platform.

 # cat /sys/kernel/debug/clk/clk_summary
...
 refhdmi                              1        1        0   114285000          0     0  50000
    xtal_0                            0        0        0   114285000          0     0  50000
       pll_0                          0        0        0 40731174000000          0     0  50000
          clk1_0                      0        0        0    27000000          0     0  50000
          clk0_0                      0        0        0    27000000          0     0  50000
 ref48M                               1        2        0    48000000          0     0  50000
    si5341                            0        4        0    14000000          0     0  50000
       clock-generator.N4             0        0        0           0          0     0  50000
       clock-generator.N3             0        1        0   733260000          0     0  50000
          clock-generator.9           0        1        0    33330000          0     0  50000
       clock-generator.N2             0        1        0   104000000          0     0  50000
          clock-generator.2           0        1        0    26000000          0     0  50000
       clock-generator.N1             0        2        0   594000000          0     0  50000
          clock-generator.7           0        1        0    74250000          0     0  50000
          clock-generator.0           0        1        0    27000000          0     0  50000
       clock-generator.N0             0        4        0  1000000000          0     0  50000
          clock-generator.8           0        0        0           0          0     0  50000
          clock-generator.6           0        1        0   125000000          0     0  50000
          clock-generator.5           0        1        0   100000000          0     0  50000
          clock-generator.4           0        1        0   100000000          0     0  50000
          clock-generator.3           0        1        0   125000000          0     0  50000
          clock-generator.1           0        0        0           0          0     0  50000
...

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agoarm64: dts: zynqmp: Add DT description for si5328 for zcu102/zcu106
Michal Simek [Fri, 13 Nov 2020 11:33:45 +0000 (12:33 +0100)] 
arm64: dts: zynqmp: Add DT description for si5328 for zcu102/zcu106

Origin DT binding just specify driver but wasn't aligned with DT binding
which came later. Extend description for zcu102 and zcu106 to cover latest
binding.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agoarm64: dts: zynqmp: Fix u48 si5382 chip on zcu111
Michal Simek [Fri, 13 Nov 2020 11:25:58 +0000 (12:25 +0100)] 
arm64: dts: zynqmp: Fix u48 si5382 chip on zcu111

u48 chip on zcu111 is si5382 not si5328.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agoxilinx: versal: Add new vck5000 data center eval board
Michal Simek [Thu, 18 Jun 2020 07:06:02 +0000 (09:06 +0200)] 
xilinx: versal: Add new vck5000 data center eval board

The board is very similar to v350. The only difference is using 2Gbit OSPI
instead of 1Gbit version.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agoarm64: versal: Add dts files for all supported boards
Michal Simek [Tue, 7 Jan 2020 11:58:20 +0000 (12:58 +0100)] 
arm64: versal: Add dts files for all supported boards

Add DT description for all Versal boards.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending
[michal: Squashed with
dts: versal: Correct power domain ID for PMC GPIO
dts: versal: Move ospi compatible property to versal dtsi
arm64: dts: versal: Add clk cells for sdhci
arm64: versal: Setup 8GB memory for vck190/vmk180/vc-p-a2197
arm64: versal: Fix EMMC boot module connection on vck190/vmk180
arm64: versal: Disable UHS support for SDHC0/1 by default
arm64: dts: versal: Add TTC nodes
clk: versal: Remove alt_ref_clk from clock sources
arm64: dts: versal: Add flexnoc node
arm64: dts: versal: Remove additional new lines
arm: dts: versal: add device tree node for sysmon
dts: versal: Update GEM node SE5
dts: versal: Add DDR Memory Controller nodes
arm64: versal: Update spi max frequency to 150MHz
]

4 years agoarm64: versal: Add mini qspi configurations
Michal Simek [Tue, 7 Jan 2020 12:03:10 +0000 (13:03 +0100)] 
arm64: versal: Add mini qspi configurations

Not all configurations are supported in mainline yet.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending
[michal: Squashed with
arm64: versal: Change mini uboot qspi fixed clock
arm64: versal: Disable DDR cache mapping if DDR is not enabled
xilinx: versal: Disable firmware driver for versal mini qspi
config: versal: Update mini u-boot timer clock to 100Mhz
versal: dts: Add mini ospi stacked support
configs: versal: Enable support for Gigadevice flash
+ defconfig syncup
]

4 years agoarm64: zynqmp: Disable CCI by default
Michal Simek [Mon, 11 May 2020 08:14:34 +0000 (10:14 +0200)] 
arm64: zynqmp: Disable CCI by default

There is no reason to have CCI no enabled by default. Enable it when your
system configuration requires it. In Xilinx configuration flow this is
work for Device Tree Generator which reads information from HW Design
configuration.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agoarm64: zynqmp: Add fclk bindings for VCK190 clocks
Saeed Nowshadi [Wed, 4 Mar 2020 18:21:34 +0000 (10:21 -0800)] 
arm64: zynqmp: Add fclk bindings for VCK190 clocks

Add Xilinx fclk bindings for clocks on VCK190 board so they could be referenced through sysfs interface.

Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
State: pending

4 years agoarm64: zynqmp: Disable watchdog by default for virt platform
Michal Simek [Tue, 11 Feb 2020 08:56:48 +0000 (09:56 +0100)] 
arm64: zynqmp: Disable watchdog by default for virt platform

Disable watchdog based on request in past that not all Linux rootfs have
proper utilities ready to service it. Enable it if your rootfs have proper
watchdog handling.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agoarm64: zynqmp: Add DT overlays for x-prc cards connected on a2197
Michal Simek [Tue, 7 Jan 2020 11:56:20 +0000 (12:56 +0100)] 
arm64: zynqmp: Add DT overlays for x-prc cards connected on a2197

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agoarm64: zynqmp: Add zynqmp mini qspi configurations
Michal Simek [Tue, 7 Jan 2020 11:55:11 +0000 (12:55 +0100)] 
arm64: zynqmp: Add zynqmp mini qspi configurations

Not all configurations are supported in mainline yet.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending
[michal: Squashed with
arm64: zynqmp: dts: Add zynqmp-mini-qspi-single to Makefile
]

4 years agoarm64: zynqmp: Sync dtses with Linux kernel
Michal Simek [Tue, 7 Jan 2020 11:16:08 +0000 (12:16 +0100)] 
arm64: zynqmp: Sync dtses with Linux kernel

There some differences which haven't been upstreamed yet.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agoarm64: zynqmp: Add pinctrl description
Michal Simek [Tue, 13 Oct 2020 13:15:43 +0000 (15:15 +0200)] 
arm64: zynqmp: Add pinctrl description

Pinctrl binding and support haven't been added to mainline Linux yet.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agodt-bindings: arm64: zynqmp: Add pinctrl header
Chirag Parekh [Wed, 25 Jan 2017 15:00:56 +0000 (07:00 -0800)] 
dt-bindings: arm64: zynqmp: Add pinctrl header

Add pin control header to be sources by ZynqMP dtses.

Signed-off-by: Chirag Parekh <chirag.parekh@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agoARM: zynq: Add nand controller node in zynq-ces-nand dt
T Karthik Reddy [Wed, 15 Apr 2020 10:45:02 +0000 (04:45 -0600)] 
ARM: zynq: Add nand controller node in zynq-ces-nand dt

Add memory-controller@e000e000 node in zynq-ces-nand.dts as
zynq_nand driver utilizes flash@e1000000 node. Without this
dt node mini nand u-boot does not probe.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Link: https://lists.denx.de/pipermail/u-boot/2020-April/406949.html
State: waiting

4 years agoARM: zynq: Add zynq mini qspi configurations
Michal Simek [Tue, 7 Jan 2020 11:55:51 +0000 (12:55 +0100)] 
ARM: zynq: Add zynq mini qspi configurations

Not all configurations are supported in mainline yet

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agoARM: zynq: Add missing nor/smcc nodes
Michal Simek [Tue, 7 Jan 2020 09:21:13 +0000 (10:21 +0100)] 
ARM: zynq: Add missing nor/smcc nodes

Add missing nor description.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
state: pending
[michal: squashed with ARM: zynq: Fix addresses in partition definitions]
State: pending

4 years agoARM: zynq: Add missing nand/smcc nodes
Michal Simek [Tue, 7 Jan 2020 09:17:43 +0000 (10:17 +0100)] 
ARM: zynq: Add missing nand/smcc nodes

Add missing nand/smcc description.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending
[michal: squashed with ARM: zynq: Fix addresses in partition definitions]

4 years agoARM: zynq: Add missing QSPI nodes
Michal Simek [Tue, 7 Jan 2020 09:15:50 +0000 (10:15 +0100)] 
ARM: zynq: Add missing QSPI nodes

These nodes are out of mainline because of missing QSPI configuration
support.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending
[michal: squashed with ARM: zynq: Fix addresses in partition definitions]

4 years agoARM: dts: zynq: Add ULPI phys instead of NOP transceivers
Subbaraya Sundeep Bhatta [Mon, 21 Sep 2015 08:18:06 +0000 (13:48 +0530)] 
ARM: dts: zynq: Add ULPI phys instead of NOP transceivers

Zynq USB controller needs explicit access to ULPI PHY registers
so ULPI PHY node is used instead of NOP node.

Also fix for DTC 1.4 which wasn't the part of origin patch.

Signed-off-by: Subbaraya Sundeep Bhatta <sbhatta@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agoARM: zynq: Add missing OCM node
Michal Simek [Tue, 7 Jan 2020 09:13:05 +0000 (10:13 +0100)] 
ARM: zynq: Add missing OCM node

This patch is sync with Linux kernel where ocmc node is present.
Linux driver should be changed to different style and this node will likely
be remove in future.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agoARM: zynq: DT: Enable all FCLKs by default
Christian Kohn [Mon, 29 Sep 2014 18:42:41 +0000 (11:42 -0700)] 
ARM: zynq: DT: Enable all FCLKs by default

The fclk-enable property is set to 0 which disables all FCLKs.
Enable all FCLKs so they can be used as clock sources in the
programmable logic.

Signed-off-by: Christian Kohn <christian.kohn@xilinx.com>
Acked-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
State: pending

4 years agospi: zynq: Add support to detect stripe for required cmds
T Karthik Reddy [Wed, 6 Jan 2021 04:02:15 +0000 (21:02 -0700)] 
spi: zynq: Add support to detect stripe for required cmds

In dual parallel mode commands which are sent with the data
to be written into flash registers should not be striped
and data sent to flash memory regions should be striped.
So update_stripe() function returns appropriate stripe
status for specific commands.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
State: pending

4 years agospi: zynq_qspi: Add SPI memory operations to zynq qspi
T Karthik Reddy [Wed, 6 Jan 2021 04:02:14 +0000 (21:02 -0700)] 
spi: zynq_qspi: Add SPI memory operations to zynq qspi

Spi memory operation interface is added to zynq qspi
driver to provide an high-level interface to execute
qspi controller specific memory operations by avoiding
spi_mem_exec_op() from spi-mem framework.
This change removes all the xilinx specific code from
spi-mem framework.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
State: pending

4 years agospi: zynqmp_gqspi: Add SPI memory operations to zynqmp qspi
T Karthik Reddy [Wed, 6 Jan 2021 04:02:13 +0000 (21:02 -0700)] 
spi: zynqmp_gqspi: Add SPI memory operations to zynqmp qspi

Spi memory operation interface is added to zynqmp qspi
driver to provide an high-level interface to execute
qspi controller specific memory operations by avoiding
spi_mem_exec_op() from spi-mem framework.
This change removes all the xilinx specific code from
spi-mem framework.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
State: pending

4 years agospi: spi-mem: Move execop functionality to controller driver
T Karthik Reddy [Wed, 6 Jan 2021 04:02:12 +0000 (21:02 -0700)] 
spi: spi-mem: Move execop functionality to controller driver

Move all xilinx specific changes from spi-mem framework.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
State: pending

4 years agospi: cadence_qspi: Add function to enable/disable linear mode
Ashok Reddy Soma [Tue, 2 Feb 2021 06:55:30 +0000 (23:55 -0700)] 
spi: cadence_qspi: Add function to enable/disable linear mode

ahb reads/writes needs linear mode to be enabled, dma mode needs linear
mode to be disabled. Add function to do this and call wherever it is
applicable.

Linear mode bit needs to be enabled in secure mode. Use secure calls to
enable/disable linear mode in SLCR register.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
State: pending

4 years agospi: cadence_qspi: Move dma read function to spi_mem_exec_op
Ashok Reddy Soma [Tue, 2 Feb 2021 06:27:04 +0000 (23:27 -0700)] 
spi: cadence_qspi: Move dma read function to spi_mem_exec_op

Move cadence_qspi_apb_dma_read() functionality to
cadence_spi_mem_exec_op() clearly separate ahb and dma reads at top
level.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
State: pending

4 years agospi: cadence_qspi: Fix function prototypes and include header files
Ashok Reddy Soma [Tue, 2 Feb 2021 05:45:26 +0000 (22:45 -0700)] 
spi: cadence_qspi: Fix function prototypes and include header files

Fix function prottotype for cadence_qspi_apb_dma_read to return type
int. Also make cadence_qspi_apb_exec_flash_cmd() as non static function
as we need to use it in drivers/spi/cadence_ospi_versal.c.

Update the changed function prototypes in headerfile.
Add missing include files in drivers/spi/cadence_ospi_versal.c and
cadence_qspi.h to take care of the compilation warnings.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
State: pending

4 years agospi: zynq_qspi: Add support for dual parallel and dual stacked
Michal Simek [Thu, 17 Dec 2020 13:52:08 +0000 (14:52 +0100)] 
spi: zynq_qspi: Add support for dual parallel and dual stacked

Add support for dual-parallel and dual-stacked flash configurations in
zynq qspi driver. Read is-dual and is-stacked properties from dts and
populate them in plat structure.

Read spi-rx-bus-width and spi-tx-bus-width from dts and set tx_rx mode
accordingly.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
State: pending

4 years agospi: zynqmp_gqspi: Fix unaligned data writes issue
T Karthik Reddy [Thu, 19 Nov 2020 12:00:36 +0000 (05:00 -0700)] 
spi: zynqmp_gqspi: Fix unaligned data writes issue

When unaligned 3 bytes data write operation is performed, 3rd byte
is being over written by 1st byte of 3 bytes data. This patch
fixes it.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Link: https://lists.denx.de/pipermail/u-boot/2020-December/435220.html
State: pending

4 years agomtd: spi-nor: Fix issue with clearing BP bits for winbond flashes
T Karthik Reddy [Thu, 8 Oct 2020 11:27:19 +0000 (05:27 -0600)] 
mtd: spi-nor: Fix issue with clearing BP bits for winbond flashes

Flash parts with SPI_NOR_HAS_LOCK flag should clear the status
register(SR) to disable block protection bits. In dual parallel
mode SR is cleared only on single flash instead of both. So set
SPI_XFER_STRIPE flag if dual parallel mode is enabled.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
State: pending

4 years agomtd: spi: Specify winbond w25q512jv flash has BP bits set
T Karthik Reddy [Thu, 8 Oct 2020 11:27:18 +0000 (05:27 -0600)] 
mtd: spi: Specify winbond w25q512jv flash has BP bits set

winbond w25q512jv flash part has Block Protection bits set
on reset and this flash is write protected by default.
So set SPI_NOR_HAS_LOCK flag in the flash id table. SPI_NOR_HAS_TB
specifies status register has Top/Bottom (TB) protect bit. Must be
used with SPI_NOR_HAS_LOCK flag.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Acked-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
State: pending

4 years agomtd: spi: Add support for issi is25wx256 ospi flash
T Karthik Reddy [Mon, 31 Aug 2020 14:02:23 +0000 (08:02 -0600)] 
mtd: spi: Add support for issi is25wx256 ospi flash

Add support for issi is25wx256 ospi flash which supports
octal reads and 4-byte opcodes.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
State: pending

4 years agoospi: versal: Add fast read support for STIG reads
T Karthik Reddy [Mon, 31 Aug 2020 14:02:22 +0000 (08:02 -0600)] 
ospi: versal: Add fast read support for STIG reads

Current STIG read operation uses read(0x13) cmd. Add support for
fast read(0x0c) cmd which needs 8 dummy cycles.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
State: pending

4 years agospi: zynq: Fix issue transmiting odd size bytes
T Karthik Reddy [Tue, 7 Jul 2020 07:15:14 +0000 (01:15 -0600)] 
spi: zynq: Fix issue transmiting odd size bytes

In dual parallel case when write/read data operations are performed,
odd data bytes have to be converted to even to avoid a nibble
(of data when programming / dummy when reading) going to
individual flash devices, where a byte is expected. This patch
fixes above issue.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
State: pending

4 years agomtd: spi: Add support for spansion s25fl256l flash part
T Karthik Reddy [Tue, 7 Jul 2020 07:31:18 +0000 (01:31 -0600)] 
mtd: spi: Add support for spansion s25fl256l flash part

Add support for spansion s25fl256l flash part

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
State: pending

4 years agomtd: spi-nor-ids: Fix mt35xl512 flash id and mt35xu01g entry
Ashok Reddy Soma [Thu, 2 Jul 2020 13:38:01 +0000 (07:38 -0600)] 
mtd: spi-nor-ids: Fix mt35xl512 flash id and mt35xu01g entry

When mt35xu01g is connected it's size is showing up incorrectly as
512Mb. This is due to the wrong id code of mt35xl512g. Fix mt35xl512g
flash id to 0x2c5a1a, here 5a represents 3v and 1a represents 512Mb.

Also change the name of mt35xl512g to mt35xl512aba to be in sync with
mt35xu512aba. These two flashes are similar except for voltage range.

Entry for mt35xu01g is present with extended id codes. Change INFO to
INFO6 for the extended id's to work. Move the entry to above 2g flash
part. This is for the table to be in order of memory sizes.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
State: pending