mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-22 12:54:37 +00:00
Xilinx changes for v2024.01-rc3
xilinx: - Disable lock in mini spi configurations zynq: - DTS syncups - Kconfig updates zynqmp: - DTS syncups - Kconfig fixups versal: - Make 30MHz as default freq for spi versal net: - Enable ADMA for mmc serial: - Read baudrate from DT spi: - Put spi lock under one Kconfig - Support 64bit addresses in cadance_ospi - zynqmp_gqspi - change logging support firmware: - Handle errors in zynqmp_pm_feature() include: - Sync vsc8531 dt binding with kernel -----BEGIN PGP SIGNATURE----- iF0EABECAB0WIQQbPNTMvXmYlBPRwx7KSWXLKUoMIQUCZUpXJQAKCRDKSWXLKUoM IWyDAJ4tgFIiBZ7fDfQhSzWVgrKjKO900wCePQS61G0662wUl2fiCzQeTzTfYl4= =VvHj -----END PGP SIGNATURE----- Merge tag 'xilinx-for-v2024.01-rc3' of https://source.denx.de/u-boot/custodians/u-boot-microblaze Xilinx changes for v2024.01-rc3 xilinx: - Disable lock in mini spi configurations zynq: - DTS syncups - Kconfig updates zynqmp: - DTS syncups - Kconfig fixups versal: - Make 30MHz as default freq for spi versal net: - Enable ADMA for mmc serial: - Read baudrate from DT spi: - Put spi lock under one Kconfig - Support 64bit addresses in cadance_ospi - zynqmp_gqspi - change logging support firmware: - Handle errors in zynqmp_pm_feature() include: - Sync vsc8531 dt binding with kernel
This commit is contained in:
commit
e17d174773
78 changed files with 1138 additions and 145 deletions
|
@ -376,6 +376,12 @@ dtb-$(CONFIG_ARCH_ZYNQ) += \
|
||||||
zynq-cse-nand.dtb \
|
zynq-cse-nand.dtb \
|
||||||
zynq-cse-nor.dtb \
|
zynq-cse-nor.dtb \
|
||||||
zynq-cse-qspi-single.dtb \
|
zynq-cse-qspi-single.dtb \
|
||||||
|
zynq-cse-qspi-parallel.dtb \
|
||||||
|
zynq-cse-qspi-stacked.dtb \
|
||||||
|
zynq-cse-qspi-x1-single.dtb \
|
||||||
|
zynq-cse-qspi-x1-stacked.dtb \
|
||||||
|
zynq-cse-qspi-x2-single.dtb \
|
||||||
|
zynq-cse-qspi-x2-stacked.dtb \
|
||||||
zynq-dlc20-rev1.0.dtb \
|
zynq-dlc20-rev1.0.dtb \
|
||||||
zynq-microzed.dtb \
|
zynq-microzed.dtb \
|
||||||
zynq-minized.dtb \
|
zynq-minized.dtb \
|
||||||
|
@ -417,6 +423,13 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += \
|
||||||
zynqmp-mini-emmc1.dtb \
|
zynqmp-mini-emmc1.dtb \
|
||||||
zynqmp-mini-nand.dtb \
|
zynqmp-mini-nand.dtb \
|
||||||
zynqmp-mini-qspi.dtb \
|
zynqmp-mini-qspi.dtb \
|
||||||
|
zynqmp-mini-qspi-parallel.dtb \
|
||||||
|
zynqmp-mini-qspi-single.dtb \
|
||||||
|
zynqmp-mini-qspi-stacked.dtb \
|
||||||
|
zynqmp-mini-qspi-x1-single.dtb \
|
||||||
|
zynqmp-mini-qspi-x1-stacked.dtb \
|
||||||
|
zynqmp-mini-qspi-x2-single.dtb \
|
||||||
|
zynqmp-mini-qspi-x2-stacked.dtb \
|
||||||
zynqmp-sc-revB.dtb \
|
zynqmp-sc-revB.dtb \
|
||||||
zynqmp-sc-revC.dtb \
|
zynqmp-sc-revC.dtb \
|
||||||
zynqmp-sc-vek280-revA.dtbo \
|
zynqmp-sc-vek280-revA.dtbo \
|
||||||
|
@ -467,13 +480,27 @@ dtb-$(CONFIG_ARCH_VERSAL) += \
|
||||||
versal-mini-emmc0.dtb \
|
versal-mini-emmc0.dtb \
|
||||||
versal-mini-emmc1.dtb \
|
versal-mini-emmc1.dtb \
|
||||||
versal-mini-ospi-single.dtb \
|
versal-mini-ospi-single.dtb \
|
||||||
|
versal-mini-ospi-stacked.dtb \
|
||||||
|
versal-mini-qspi-parallel.dtb \
|
||||||
versal-mini-qspi-single.dtb \
|
versal-mini-qspi-single.dtb \
|
||||||
|
versal-mini-qspi-stacked.dtb \
|
||||||
|
versal-mini-qspi-x1-single.dtb \
|
||||||
|
versal-mini-qspi-x1-stacked.dtb \
|
||||||
|
versal-mini-qspi-x2-single.dtb \
|
||||||
|
versal-mini-qspi-x2-stacked.dtb \
|
||||||
xilinx-versal-virt.dtb
|
xilinx-versal-virt.dtb
|
||||||
dtb-$(CONFIG_ARCH_VERSAL_NET) += \
|
dtb-$(CONFIG_ARCH_VERSAL_NET) += \
|
||||||
versal-net-mini.dtb \
|
versal-net-mini.dtb \
|
||||||
versal-net-mini-emmc.dtb \
|
versal-net-mini-emmc.dtb \
|
||||||
versal-net-mini-ospi-single.dtb \
|
versal-net-mini-ospi-single.dtb \
|
||||||
|
versal-net-mini-ospi-stacked.dtb \
|
||||||
versal-net-mini-qspi-single.dtb \
|
versal-net-mini-qspi-single.dtb \
|
||||||
|
versal-net-mini-qspi-parallel.dtb \
|
||||||
|
versal-net-mini-qspi-stacked.dtb \
|
||||||
|
versal-net-mini-qspi-x1-single.dtb \
|
||||||
|
versal-net-mini-qspi-x1-stacked.dtb \
|
||||||
|
versal-net-mini-qspi-x2-single.dtb \
|
||||||
|
versal-net-mini-qspi-x2-stacked.dtb \
|
||||||
xilinx-versal-net-virt.dtb
|
xilinx-versal-net-virt.dtb
|
||||||
dtb-$(CONFIG_ARCH_ZYNQMP_R5) += \
|
dtb-$(CONFIG_ARCH_ZYNQMP_R5) += \
|
||||||
zynqmp-r5.dtb
|
zynqmp-r5.dtb
|
||||||
|
|
|
@ -52,6 +52,8 @@
|
||||||
|
|
||||||
&nfc0 {
|
&nfc0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
nand@0 {
|
nand@0 {
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
};
|
};
|
||||||
|
|
22
arch/arm/dts/versal-mini-ospi-stacked.dts
Normal file
22
arch/arm/dts/versal-mini-ospi-stacked.dts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal QSPI Quad Stacked DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018-2020 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-mini-ospi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal MINI OSPI STACKED";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ospi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x8000000 0x8000000>; /* 128MB */
|
||||||
|
spi-rx-bus-width = <8>;
|
||||||
|
};
|
22
arch/arm/dts/versal-mini-qspi-parallel.dts
Normal file
22
arch/arm/dts/versal-mini-qspi-parallel.dts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal QSPI Quad Parallel DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018-2019 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-mini-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal MINI QSPI PARALLEL";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
parallel-memories = /bits/ 64 <0x8000000 0x8000000>; /* 128MB */
|
||||||
|
spi-rx-bus-width = <4>;
|
||||||
|
};
|
22
arch/arm/dts/versal-mini-qspi-stacked.dts
Normal file
22
arch/arm/dts/versal-mini-qspi-stacked.dts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal QSPI Quad Stacked DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018-2019 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-mini-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal MINI QSPI STACKED";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x8000000 0x8000000>; /* 128MB */
|
||||||
|
spi-rx-bus-width = <4>;
|
||||||
|
};
|
17
arch/arm/dts/versal-mini-qspi-x1-single.dts
Normal file
17
arch/arm/dts/versal-mini-qspi-x1-single.dts
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal QSPI x1 Single DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018-2019 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-mini-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal MINI QSPI X1 SINGLE";
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
spi-tx-bus-width = <1>;
|
||||||
|
spi-rx-bus-width = <1>;
|
||||||
|
};
|
23
arch/arm/dts/versal-mini-qspi-x1-stacked.dts
Normal file
23
arch/arm/dts/versal-mini-qspi-x1-stacked.dts
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal QSPI x1 Stacked DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018-2019 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-mini-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal MINI QSPI X1 STACKED";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x8000000 0x8000000>; /* 128MB */
|
||||||
|
spi-tx-bus-width = <1>;
|
||||||
|
spi-rx-bus-width = <1>;
|
||||||
|
};
|
17
arch/arm/dts/versal-mini-qspi-x2-single.dts
Normal file
17
arch/arm/dts/versal-mini-qspi-x2-single.dts
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal QSPI x2 Single DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018-2019 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-mini-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal MINI QSPI X2 SINGLE";
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
spi-tx-bus-width = <2>;
|
||||||
|
spi-rx-bus-width = <2>;
|
||||||
|
};
|
23
arch/arm/dts/versal-mini-qspi-x2-stacked.dts
Normal file
23
arch/arm/dts/versal-mini-qspi-x2-stacked.dts
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal QSPI x2 Stacked DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018-2019 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-mini-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal MINI QSPI X2 STACKED";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x8000000 0x8000000>; /* 128MB */
|
||||||
|
spi-tx-bus-width = <2>;
|
||||||
|
spi-rx-bus-width = <2>;
|
||||||
|
};
|
22
arch/arm/dts/versal-net-mini-ospi-stacked.dts
Normal file
22
arch/arm/dts/versal-net-mini-ospi-stacked.dts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal NET OSPI Quad Stacked DTS
|
||||||
|
*
|
||||||
|
* (C) Copyright 2023, Advanced Micro Devices, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-net-mini-ospi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal NET MINI OSPI STACKED";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ospi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x8000000 0x8000000>; /* 128MB */
|
||||||
|
spi-rx-bus-width = <8>;
|
||||||
|
};
|
22
arch/arm/dts/versal-net-mini-qspi-parallel.dts
Normal file
22
arch/arm/dts/versal-net-mini-qspi-parallel.dts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal NET QSPI Quad Parallel DTS
|
||||||
|
*
|
||||||
|
* (C) Copyright 2023, Advanced Micro Devices, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-net-mini-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal NET MINI QSPI PARALLEL";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
parallel-memories = /bits/ 64 <0x8000000 0x8000000>; /* 128MB */
|
||||||
|
spi-rx-bus-width = <4>;
|
||||||
|
};
|
22
arch/arm/dts/versal-net-mini-qspi-stacked.dts
Normal file
22
arch/arm/dts/versal-net-mini-qspi-stacked.dts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal NET QSPI Quad Stacked DTS
|
||||||
|
*
|
||||||
|
* (C) Copyright 2023, Advanced Micro Devices, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-net-mini-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal NET MINI QSPI STACKED";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x8000000 0x8000000>; /* 128MB */
|
||||||
|
spi-rx-bus-width = <4>;
|
||||||
|
};
|
17
arch/arm/dts/versal-net-mini-qspi-x1-single.dts
Normal file
17
arch/arm/dts/versal-net-mini-qspi-x1-single.dts
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal NET QSPI x1 Single DTS
|
||||||
|
*
|
||||||
|
* (C) Copyright 2023, Advanced Micro Devices, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-net-mini-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal NET MINI QSPI X1 SINGLE";
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
spi-tx-bus-width = <1>;
|
||||||
|
spi-rx-bus-width = <1>;
|
||||||
|
};
|
23
arch/arm/dts/versal-net-mini-qspi-x1-stacked.dts
Normal file
23
arch/arm/dts/versal-net-mini-qspi-x1-stacked.dts
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal NET QSPI x1 Stacked DTS
|
||||||
|
*
|
||||||
|
* (C) Copyright 2023, Advanced Micro Devices, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-net-mini-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal NET MINI QSPI X1 STACKED";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x8000000 0x8000000>; /* 128MB */
|
||||||
|
spi-tx-bus-width = <1>;
|
||||||
|
spi-rx-bus-width = <1>;
|
||||||
|
};
|
17
arch/arm/dts/versal-net-mini-qspi-x2-single.dts
Normal file
17
arch/arm/dts/versal-net-mini-qspi-x2-single.dts
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal NET QSPI x2 Single DTS
|
||||||
|
*
|
||||||
|
* (C) Copyright 2023, Advanced Micro Devices, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-net-mini-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal NET MINI QSPI X2 SINGLE";
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
spi-tx-bus-width = <2>;
|
||||||
|
spi-rx-bus-width = <2>;
|
||||||
|
};
|
23
arch/arm/dts/versal-net-mini-qspi-x2-stacked.dts
Normal file
23
arch/arm/dts/versal-net-mini-qspi-x2-stacked.dts
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Xilinx Versal NET QSPI x2 Stacked DTS
|
||||||
|
*
|
||||||
|
* (C) Copyright 2023, Advanced Micro Devices, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "versal-net-mini-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Xilinx Versal NET MINI QSPI X2 STACKED";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x8000000 0x8000000>; /* 128MB */
|
||||||
|
spi-tx-bus-width = <2>;
|
||||||
|
spi-rx-bus-width = <2>;
|
||||||
|
};
|
|
@ -306,15 +306,11 @@
|
||||||
compatible = "arm,pl353-nand-r2p1";
|
compatible = "arm,pl353-nand-r2p1";
|
||||||
reg = <0 0 0x1000000>;
|
reg = <0 0 0x1000000>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
};
|
};
|
||||||
nor0: flash@1,0 {
|
nor0: flash@1,0 {
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
compatible = "cfi-flash";
|
compatible = "cfi-flash";
|
||||||
reg = <1 0 0x2000000>;
|
reg = <1 0 0x2000000>;
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
22
arch/arm/dts/zynq-cse-qspi-parallel.dts
Normal file
22
arch/arm/dts/zynq-cse-qspi-parallel.dts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Xilinx CSE QSPI Quad Parallel DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 - 2017 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "zynq-cse-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Zynq CSE QSPI PARALLEL Board";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
parallel-memories = /bits/ 64 <0x1000000 0x1000000>; /* 16MB */
|
||||||
|
spi-rx-bus-width = <4>;
|
||||||
|
};
|
22
arch/arm/dts/zynq-cse-qspi-stacked.dts
Normal file
22
arch/arm/dts/zynq-cse-qspi-stacked.dts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Xilinx CSE QSPI Quad Stacked DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 - 2017 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "zynq-cse-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Zynq CSE QSPI STACKED Board";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x1000000 0x1000000>; /* 16MB */
|
||||||
|
spi-rx-bus-width = <4>;
|
||||||
|
};
|
16
arch/arm/dts/zynq-cse-qspi-x1-single.dts
Normal file
16
arch/arm/dts/zynq-cse-qspi-x1-single.dts
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Xilinx CSE QSPI x1 Single DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 - 2017 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "zynq-cse-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Zynq CSE QSPI X1 SINGLE Board";
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
spi-rx-bus-width = <1>;
|
||||||
|
};
|
22
arch/arm/dts/zynq-cse-qspi-x1-stacked.dts
Normal file
22
arch/arm/dts/zynq-cse-qspi-x1-stacked.dts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Xilinx CSE QSPI x1 Stacked DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 - 2017 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "zynq-cse-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Zynq CSE QSPI X1 STACKED Board";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x1000000 0x1000000>; /* 16MB */
|
||||||
|
spi-rx-bus-width = <1>;
|
||||||
|
};
|
16
arch/arm/dts/zynq-cse-qspi-x2-single.dts
Normal file
16
arch/arm/dts/zynq-cse-qspi-x2-single.dts
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Xilinx CSE QSPI x2 Single DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 - 2017 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "zynq-cse-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Zynq CSE QSPI X2 SINGLE Board";
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
spi-rx-bus-width = <2>;
|
||||||
|
};
|
22
arch/arm/dts/zynq-cse-qspi-x2-stacked.dts
Normal file
22
arch/arm/dts/zynq-cse-qspi-x2-stacked.dts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Xilinx CSE QSPI x2 Stacked DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 - 2017 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "zynq-cse-qspi.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Zynq CSE QSPI X2 STACKED Board";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x1000000 0x1000000>; /* 16MB */
|
||||||
|
spi-rx-bus-width = <2>;
|
||||||
|
};
|
|
@ -406,6 +406,31 @@
|
||||||
spi-tx-bus-width = <1>;
|
spi-tx-bus-width = <1>;
|
||||||
spi-rx-bus-width = <4>;
|
spi-rx-bus-width = <4>;
|
||||||
spi-max-frequency = <50000000>;
|
spi-max-frequency = <50000000>;
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
partition@0 {
|
||||||
|
label = "qspi-fsbl-uboot";
|
||||||
|
reg = <0x0 0x100000>;
|
||||||
|
};
|
||||||
|
partition@100000 {
|
||||||
|
label = "qspi-linux";
|
||||||
|
reg = <0x100000 0x500000>;
|
||||||
|
};
|
||||||
|
partition@600000 {
|
||||||
|
label = "qspi-device-tree";
|
||||||
|
reg = <0x600000 0x20000>;
|
||||||
|
};
|
||||||
|
partition@620000 {
|
||||||
|
label = "qspi-rootfs";
|
||||||
|
reg = <0x620000 0x5e0000>;
|
||||||
|
};
|
||||||
|
partition@c00000 {
|
||||||
|
label = "qspi-bitstream";
|
||||||
|
reg = <0xc00000 0x400000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -309,13 +309,39 @@
|
||||||
&qspi {
|
&qspi {
|
||||||
bootph-all;
|
bootph-all;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
num-cs = <1>;
|
num-cs = <2>;
|
||||||
flash@0 {
|
flash@0 {
|
||||||
compatible = "n25q128a11", "jedec,spi-nor";
|
compatible = "n25q128a11", "jedec,spi-nor";
|
||||||
reg = <0x0>;
|
reg = <0>, <1>;
|
||||||
|
parallel-memories = /bits/ 64 <0x1000000 0x1000000>; /* 16MB */
|
||||||
spi-tx-bus-width = <1>;
|
spi-tx-bus-width = <1>;
|
||||||
spi-rx-bus-width = <4>;
|
spi-rx-bus-width = <4>;
|
||||||
spi-max-frequency = <50000000>;
|
spi-max-frequency = <50000000>;
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
partition@0 {
|
||||||
|
label = "qspi-fsbl-uboot";
|
||||||
|
reg = <0x0 0x100000>;
|
||||||
|
};
|
||||||
|
partition@100000 {
|
||||||
|
label = "qspi-linux";
|
||||||
|
reg = <0x100000 0x500000>;
|
||||||
|
};
|
||||||
|
partition@600000 {
|
||||||
|
label = "qspi-device-tree";
|
||||||
|
reg = <0x600000 0x20000>;
|
||||||
|
};
|
||||||
|
partition@620000 {
|
||||||
|
label = "qspi-rootfs";
|
||||||
|
reg = <0x620000 0x5e0000>;
|
||||||
|
};
|
||||||
|
partition@c00000 {
|
||||||
|
label = "qspi-bitstream";
|
||||||
|
reg = <0xc00000 0x400000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,31 @@
|
||||||
spi-tx-bus-width = <1>;
|
spi-tx-bus-width = <1>;
|
||||||
spi-rx-bus-width = <4>;
|
spi-rx-bus-width = <4>;
|
||||||
spi-max-frequency = <50000000>;
|
spi-max-frequency = <50000000>;
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
partition@0 {
|
||||||
|
label = "qspi-fsbl-uboot";
|
||||||
|
reg = <0x0 0x100000>;
|
||||||
|
};
|
||||||
|
partition@100000 {
|
||||||
|
label = "qspi-linux";
|
||||||
|
reg = <0x100000 0x500000>;
|
||||||
|
};
|
||||||
|
partition@600000 {
|
||||||
|
label = "qspi-device-tree";
|
||||||
|
reg = <0x600000 0x20000>;
|
||||||
|
};
|
||||||
|
partition@620000 {
|
||||||
|
label = "qspi-rootfs";
|
||||||
|
reg = <0x620000 0x5e0000>;
|
||||||
|
};
|
||||||
|
partition@c00000 {
|
||||||
|
label = "qspi-bitstream";
|
||||||
|
reg = <0xc00000 0x400000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -49,8 +49,27 @@
|
||||||
|
|
||||||
&nfc0 {
|
&nfc0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
nand@0 {
|
nand@0 {
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
partition@0 {
|
||||||
|
label = "nand-fsbl-uboot";
|
||||||
|
reg = <0x0 0x1000000>;
|
||||||
|
};
|
||||||
|
partition@1000000 {
|
||||||
|
label = "nand-linux";
|
||||||
|
reg = <0x1000000 0x2000000>;
|
||||||
|
};
|
||||||
|
partition@3000000 {
|
||||||
|
label = "nand-rootfs";
|
||||||
|
reg = <0x3000000 0x200000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,31 @@
|
||||||
&nor0 {
|
&nor0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
bank-width = <1>;
|
bank-width = <1>;
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
partition@0 {
|
||||||
|
label = "nor-fsbl-uboot";
|
||||||
|
reg = <0x0 0x100000>;
|
||||||
|
};
|
||||||
|
partition@100000 {
|
||||||
|
label = "nor-linux";
|
||||||
|
reg = <0x100000 0x500000>;
|
||||||
|
};
|
||||||
|
partition@600000 {
|
||||||
|
label = "nor-device-tree";
|
||||||
|
reg = <0x600000 0x20000>;
|
||||||
|
};
|
||||||
|
partition@620000 {
|
||||||
|
label = "nor-rootfs";
|
||||||
|
reg = <0x620000 0x5e0000>;
|
||||||
|
};
|
||||||
|
partition@c00000 {
|
||||||
|
label = "nor-bitstream";
|
||||||
|
reg = <0xc00000 0x400000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&smcc {
|
&smcc {
|
||||||
|
|
|
@ -61,13 +61,39 @@
|
||||||
|
|
||||||
&qspi {
|
&qspi {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
num-cs = <1>;
|
num-cs = <2>;
|
||||||
flash@0 {
|
flash@0 {
|
||||||
compatible = "n25q128a11", "jedec,spi-nor";
|
compatible = "n25q128a11", "jedec,spi-nor";
|
||||||
reg = <0x0>;
|
reg = <0>, <1>;
|
||||||
|
parallel-memories = /bits/ 64 <0x1000000 0x1000000>; /* 16MB */
|
||||||
spi-tx-bus-width = <1>;
|
spi-tx-bus-width = <1>;
|
||||||
spi-rx-bus-width = <4>;
|
spi-rx-bus-width = <4>;
|
||||||
spi-max-frequency = <50000000>;
|
spi-max-frequency = <50000000>;
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
partition@0 {
|
||||||
|
label = "qspi-fsbl-uboot";
|
||||||
|
reg = <0x0 0x100000>;
|
||||||
|
};
|
||||||
|
partition@100000 {
|
||||||
|
label = "qspi-linux";
|
||||||
|
reg = <0x100000 0x500000>;
|
||||||
|
};
|
||||||
|
partition@600000 {
|
||||||
|
label = "qspi-device-tree";
|
||||||
|
reg = <0x600000 0x20000>;
|
||||||
|
};
|
||||||
|
partition@620000 {
|
||||||
|
label = "qspi-rootfs";
|
||||||
|
reg = <0x620000 0x5e0000>;
|
||||||
|
};
|
||||||
|
partition@c00000 {
|
||||||
|
label = "qspi-bitstream";
|
||||||
|
reg = <0xc00000 0x400000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -55,8 +55,35 @@
|
||||||
flash@0 {
|
flash@0 {
|
||||||
compatible = "spansion,s25fl256s1", "jedec,spi-nor";
|
compatible = "spansion,s25fl256s1", "jedec,spi-nor";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
spi-max-frequency = <30000000>;
|
spi-tx-bus-width = <1>;
|
||||||
|
spi-rx-bus-width = <4>;
|
||||||
|
spi-max-frequency = <50000000>;
|
||||||
m25p,fast-read;
|
m25p,fast-read;
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
partition@0 {
|
||||||
|
label = "qspi-fsbl-uboot";
|
||||||
|
reg = <0x0 0x100000>;
|
||||||
|
};
|
||||||
|
partition@100000 {
|
||||||
|
label = "qspi-linux";
|
||||||
|
reg = <0x100000 0x500000>;
|
||||||
|
};
|
||||||
|
partition@600000 {
|
||||||
|
label = "qspi-device-tree";
|
||||||
|
reg = <0x600000 0x20000>;
|
||||||
|
};
|
||||||
|
partition@620000 {
|
||||||
|
label = "qspi-rootfs";
|
||||||
|
reg = <0x620000 0x5e0000>;
|
||||||
|
};
|
||||||
|
partition@c00000 {
|
||||||
|
label = "qspi-bitstream";
|
||||||
|
reg = <0xc00000 0x400000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -10,12 +10,6 @@
|
||||||
|
|
||||||
#include <dt-bindings/clock/xlnx-zynqmp-clk.h>
|
#include <dt-bindings/clock/xlnx-zynqmp-clk.h>
|
||||||
/ {
|
/ {
|
||||||
fclk0: fclk0 {
|
|
||||||
status = "okay";
|
|
||||||
compatible = "xlnx,fclk";
|
|
||||||
clocks = <&zynqmp_clk PL0_REF>;
|
|
||||||
};
|
|
||||||
|
|
||||||
pss_ref_clk: pss_ref_clk {
|
pss_ref_clk: pss_ref_clk {
|
||||||
bootph-all;
|
bootph-all;
|
||||||
compatible = "fixed-clock";
|
compatible = "fixed-clock";
|
||||||
|
|
|
@ -71,11 +71,13 @@
|
||||||
|
|
||||||
&qspi {
|
&qspi {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
num-cs = <2>;
|
||||||
flash@0 {
|
flash@0 {
|
||||||
compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
|
compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
|
||||||
|
reg = <0>, <1>;
|
||||||
|
parallel-memories = /bits/ 64 <0x4000000 0x4000000>; /* 64MB */
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
reg = <0x0>;
|
|
||||||
spi-tx-bus-width = <4>;
|
spi-tx-bus-width = <4>;
|
||||||
spi-rx-bus-width = <4>;
|
spi-rx-bus-width = <4>;
|
||||||
spi-max-frequency = <108000000>;
|
spi-max-frequency = <108000000>;
|
||||||
|
|
|
@ -67,11 +67,13 @@
|
||||||
|
|
||||||
&qspi {
|
&qspi {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
num-cs = <2>;
|
||||||
flash@0 {
|
flash@0 {
|
||||||
compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
|
compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
|
||||||
|
reg = <0>, <1>;
|
||||||
|
parallel-memories = /bits/ 64 <0x4000000 0x4000000>; /* 64MB */
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
reg = <0x0>;
|
|
||||||
spi-tx-bus-width = <4>;
|
spi-tx-bus-width = <4>;
|
||||||
spi-rx-bus-width = <4>;
|
spi-rx-bus-width = <4>;
|
||||||
spi-max-frequency = <108000000>;
|
spi-max-frequency = <108000000>;
|
||||||
|
|
|
@ -67,11 +67,13 @@
|
||||||
|
|
||||||
&qspi {
|
&qspi {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
num-cs = <2>;
|
||||||
flash@0 {
|
flash@0 {
|
||||||
compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
|
compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
|
||||||
|
reg = <0>, <1>;
|
||||||
|
parallel-memories = /bits/ 64 <0x4000000 0x4000000>; /* 64MB */
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
reg = <0x0>;
|
|
||||||
spi-tx-bus-width = <4>;
|
spi-tx-bus-width = <4>;
|
||||||
spi-rx-bus-width = <4>;
|
spi-rx-bus-width = <4>;
|
||||||
spi-max-frequency = <108000000>;
|
spi-max-frequency = <108000000>;
|
||||||
|
|
21
arch/arm/dts/zynqmp-mini-qspi-parallel.dts
Normal file
21
arch/arm/dts/zynqmp-mini-qspi-parallel.dts
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Xilinx ZynqMP QSPI Quad Parallel DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 - 2017 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "zynqmp-mini-qspi.dts"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "ZynqMP MINI QSPI PARALLEL";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
parallel-memories = /bits/ 64 <0x10000000 0x10000000>; /* 256MB */
|
||||||
|
};
|
12
arch/arm/dts/zynqmp-mini-qspi-single.dts
Normal file
12
arch/arm/dts/zynqmp-mini-qspi-single.dts
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Xilinx ZynqMP QSPI single DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 - 2017 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "zynqmp-mini-qspi.dts"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "ZynqMP MINI QSPI SINGLE";
|
||||||
|
};
|
21
arch/arm/dts/zynqmp-mini-qspi-stacked.dts
Normal file
21
arch/arm/dts/zynqmp-mini-qspi-stacked.dts
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Xilinx ZynqMP QSPI Quad Stacked DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 - 2017 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "zynqmp-mini-qspi.dts"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "ZynqMP MINI QSPI STACKED";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x10000000 0x10000000>; /* 256MB */
|
||||||
|
};
|
17
arch/arm/dts/zynqmp-mini-qspi-x1-single.dts
Normal file
17
arch/arm/dts/zynqmp-mini-qspi-x1-single.dts
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Xilinx ZynqMP QSPI x1 Single DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 - 2017 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "zynqmp-mini-qspi.dts"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "ZynqMP MINI QSPI X1 SINGLE";
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
spi-tx-bus-width = <1>;
|
||||||
|
spi-rx-bus-width = <1>;
|
||||||
|
};
|
23
arch/arm/dts/zynqmp-mini-qspi-x1-stacked.dts
Normal file
23
arch/arm/dts/zynqmp-mini-qspi-x1-stacked.dts
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Xilinx ZynqMP QSPI x1 Stacked DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 - 2017 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "zynqmp-mini-qspi.dts"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "ZynqMP MINI QSPI X1 STACKED";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x10000000 0x10000000>; /* 256MB */
|
||||||
|
spi-tx-bus-width = <1>;
|
||||||
|
spi-rx-bus-width = <1>;
|
||||||
|
};
|
17
arch/arm/dts/zynqmp-mini-qspi-x2-single.dts
Normal file
17
arch/arm/dts/zynqmp-mini-qspi-x2-single.dts
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Xilinx CSE QSPI x2 Single DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 - 2017 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "zynqmp-mini-qspi.dts"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "ZynqMP MINI QSPI X2 SINGLE";
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
spi-tx-bus-width = <2>;
|
||||||
|
spi-rx-bus-width = <2>;
|
||||||
|
};
|
23
arch/arm/dts/zynqmp-mini-qspi-x2-stacked.dts
Normal file
23
arch/arm/dts/zynqmp-mini-qspi-x2-stacked.dts
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Xilinx ZynqMP QSPI x2 Stacked DTS
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 - 2017 Xilinx, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "zynqmp-mini-qspi.dts"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "ZynqMP MINI QSPI X2 STACKED";
|
||||||
|
};
|
||||||
|
|
||||||
|
&qspi {
|
||||||
|
num-cs = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
reg = <0>, <1>;
|
||||||
|
stacked-memories = /bits/ 64 <0x10000000 0x10000000>; /* 256MB */
|
||||||
|
spi-tx-bus-width = <2>;
|
||||||
|
spi-rx-bus-width = <2>;
|
||||||
|
};
|
|
@ -190,6 +190,25 @@
|
||||||
&pinctrl0 {
|
&pinctrl0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
|
pinctrl_gpio0_default: gpio0-default {
|
||||||
|
conf {
|
||||||
|
groups = "gpio0_38_grp";
|
||||||
|
bias-pull-up;
|
||||||
|
power-source = <IO_STANDARD_LVCMOS18>;
|
||||||
|
};
|
||||||
|
|
||||||
|
mux {
|
||||||
|
groups = "gpio0_38_grp";
|
||||||
|
function = "gpio0";
|
||||||
|
};
|
||||||
|
|
||||||
|
conf-tx {
|
||||||
|
pins = "MIO38";
|
||||||
|
bias-disable;
|
||||||
|
output-enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
pinctrl_uart1_default: uart1-default {
|
pinctrl_uart1_default: uart1-default {
|
||||||
conf {
|
conf {
|
||||||
groups = "uart1_9_grp";
|
groups = "uart1_9_grp";
|
||||||
|
@ -345,6 +364,12 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&gpio {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&pinctrl_gpio0_default>;
|
||||||
|
};
|
||||||
|
|
||||||
&uart1 {
|
&uart1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
|
|
|
@ -178,6 +178,25 @@
|
||||||
&pinctrl0 {
|
&pinctrl0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
|
pinctrl_gpio0_default: gpio0-default {
|
||||||
|
conf {
|
||||||
|
groups = "gpio0_38_grp";
|
||||||
|
bias-pull-up;
|
||||||
|
power-source = <IO_STANDARD_LVCMOS18>;
|
||||||
|
};
|
||||||
|
|
||||||
|
mux {
|
||||||
|
groups = "gpio0_38_grp";
|
||||||
|
function = "gpio0";
|
||||||
|
};
|
||||||
|
|
||||||
|
conf-tx {
|
||||||
|
pins = "MIO38";
|
||||||
|
bias-disable;
|
||||||
|
output-enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
pinctrl_uart1_default: uart1-default {
|
pinctrl_uart1_default: uart1-default {
|
||||||
conf {
|
conf {
|
||||||
groups = "uart1_9_grp";
|
groups = "uart1_9_grp";
|
||||||
|
@ -333,6 +352,12 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&gpio {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&pinctrl_gpio0_default>;
|
||||||
|
};
|
||||||
|
|
||||||
&uart1 {
|
&uart1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
|
|
|
@ -119,11 +119,15 @@
|
||||||
phy-mode = "sgmii"; /* DTG generates this properly 1512 */
|
phy-mode = "sgmii"; /* DTG generates this properly 1512 */
|
||||||
is-internal-pcspma;
|
is-internal-pcspma;
|
||||||
/* phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>; */
|
/* phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>; */
|
||||||
/* phy-reset-gpios = <&gpio 142 GPIO_ACTIVE_LOW>; */
|
mdio: mdio {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
/* reset-gpios = <&gpio 142 GPIO_ACTIVE_LOW>; */
|
||||||
phy0: ethernet-phy@0 { /* u131 - M88e1512 */
|
phy0: ethernet-phy@0 { /* u131 - M88e1512 */
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&gpio {
|
&gpio {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
|
@ -120,11 +120,15 @@
|
||||||
phy-mode = "sgmii"; /* DTG generates this properly 1512 */
|
phy-mode = "sgmii"; /* DTG generates this properly 1512 */
|
||||||
is-internal-pcspma;
|
is-internal-pcspma;
|
||||||
/* phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>; */
|
/* phys = <&psgtr 0 PHY_TYPE_SGMII 0 0>; */
|
||||||
/* phy-reset-gpios = <&gpio 142 GPIO_ACTIVE_LOW>; */
|
mdio: mdio {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
/* reset-gpios = <&gpio 142 GPIO_ACTIVE_LOW>; */
|
||||||
phy0: ethernet-phy@0 {
|
phy0: ethernet-phy@0 {
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&gpio {
|
&gpio {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
|
@ -141,8 +141,7 @@
|
||||||
reg = <0x0>;
|
reg = <0x0>;
|
||||||
#address-cells = <0x2>;
|
#address-cells = <0x2>;
|
||||||
#size-cells = <0x1>;
|
#size-cells = <0x1>;
|
||||||
nand-ecc-mode = "soft";
|
nand-ecc-mode = "hw";
|
||||||
nand-ecc-algo = "bch";
|
|
||||||
nand-rb = <0>;
|
nand-rb = <0>;
|
||||||
label = "main-storage-0";
|
label = "main-storage-0";
|
||||||
nand-ecc-step-size = <1024>;
|
nand-ecc-step-size = <1024>;
|
||||||
|
@ -178,8 +177,7 @@
|
||||||
reg = <0x1>;
|
reg = <0x1>;
|
||||||
#address-cells = <0x2>;
|
#address-cells = <0x2>;
|
||||||
#size-cells = <0x1>;
|
#size-cells = <0x1>;
|
||||||
nand-ecc-mode = "soft";
|
nand-ecc-mode = "hw";
|
||||||
nand-ecc-algo = "bch";
|
|
||||||
nand-rb = <0>;
|
nand-rb = <0>;
|
||||||
label = "main-storage-1";
|
label = "main-storage-1";
|
||||||
nand-ecc-step-size = <1024>;
|
nand-ecc-step-size = <1024>;
|
||||||
|
|
|
@ -214,16 +214,61 @@
|
||||||
soc_revision: soc-revision@0 {
|
soc_revision: soc-revision@0 {
|
||||||
reg = <0x0 0x4>;
|
reg = <0x0 0x4>;
|
||||||
};
|
};
|
||||||
|
/* efuse access */
|
||||||
|
efuse_dna: efuse-dna@c {
|
||||||
|
reg = <0xc 0xc>;
|
||||||
|
};
|
||||||
|
efuse_usr0: efuse-usr0@20 {
|
||||||
|
reg = <0x20 0x4>;
|
||||||
|
};
|
||||||
|
efuse_usr1: efuse-usr1@24 {
|
||||||
|
reg = <0x24 0x4>;
|
||||||
|
};
|
||||||
|
efuse_usr2: efuse-usr2@28 {
|
||||||
|
reg = <0x28 0x4>;
|
||||||
|
};
|
||||||
|
efuse_usr3: efuse-usr3@2c {
|
||||||
|
reg = <0x2c 0x4>;
|
||||||
|
};
|
||||||
|
efuse_usr4: efuse-usr4@30 {
|
||||||
|
reg = <0x30 0x4>;
|
||||||
|
};
|
||||||
|
efuse_usr5: efuse-usr5@34 {
|
||||||
|
reg = <0x34 0x4>;
|
||||||
|
};
|
||||||
|
efuse_usr6: efuse-usr6@38 {
|
||||||
|
reg = <0x38 0x4>;
|
||||||
|
};
|
||||||
|
efuse_usr7: efuse-usr7@3c {
|
||||||
|
reg = <0x3c 0x4>;
|
||||||
|
};
|
||||||
|
efuse_miscusr: efuse-miscusr@40 {
|
||||||
|
reg = <0x40 0x4>;
|
||||||
|
};
|
||||||
|
efuse_chash: efuse-chash@50 {
|
||||||
|
reg = <0x50 0x4>;
|
||||||
|
};
|
||||||
|
efuse_pufmisc: efuse-pufmisc@54 {
|
||||||
|
reg = <0x54 0x4>;
|
||||||
|
};
|
||||||
|
efuse_sec: efuse-sec@58 {
|
||||||
|
reg = <0x58 0x4>;
|
||||||
|
};
|
||||||
|
efuse_spkid: efuse-spkid@5c {
|
||||||
|
reg = <0x5c 0x4>;
|
||||||
|
};
|
||||||
|
efuse_ppk0hash: efuse-ppk0hash@a0 {
|
||||||
|
reg = <0xa0 0x30>;
|
||||||
|
};
|
||||||
|
efuse_ppk1hash: efuse-ppk1hash@d0 {
|
||||||
|
reg = <0xd0 0x30>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
zynqmp_pcap: pcap {
|
zynqmp_pcap: pcap {
|
||||||
compatible = "xlnx,zynqmp-pcap-fpga";
|
compatible = "xlnx,zynqmp-pcap-fpga";
|
||||||
};
|
};
|
||||||
|
|
||||||
xlnx_aes: zynqmp-aes {
|
|
||||||
compatible = "xlnx,zynqmp-aes";
|
|
||||||
};
|
|
||||||
|
|
||||||
zynqmp_reset: reset-controller {
|
zynqmp_reset: reset-controller {
|
||||||
compatible = "xlnx,zynqmp-reset";
|
compatible = "xlnx,zynqmp-reset";
|
||||||
#reset-cells = <1>;
|
#reset-cells = <1>;
|
||||||
|
@ -261,7 +306,6 @@
|
||||||
#address-cells = <2>;
|
#address-cells = <2>;
|
||||||
#size-cells = <2>;
|
#size-cells = <2>;
|
||||||
ranges;
|
ranges;
|
||||||
power-domains = <&zynqmp_firmware PD_PL>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
remoteproc {
|
remoteproc {
|
||||||
|
@ -344,7 +388,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <128>;
|
xlnx,bus-width = <128>;
|
||||||
iommus = <&smmu 0x14e8>;
|
/* iommus = <&smmu 0x14e8>; */
|
||||||
power-domains = <&zynqmp_firmware PD_GDMA>;
|
power-domains = <&zynqmp_firmware PD_GDMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -357,7 +401,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <128>;
|
xlnx,bus-width = <128>;
|
||||||
iommus = <&smmu 0x14e9>;
|
/* iommus = <&smmu 0x14e9>; */
|
||||||
power-domains = <&zynqmp_firmware PD_GDMA>;
|
power-domains = <&zynqmp_firmware PD_GDMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -370,7 +414,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <128>;
|
xlnx,bus-width = <128>;
|
||||||
iommus = <&smmu 0x14ea>;
|
/* iommus = <&smmu 0x14ea>; */
|
||||||
power-domains = <&zynqmp_firmware PD_GDMA>;
|
power-domains = <&zynqmp_firmware PD_GDMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -383,7 +427,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <128>;
|
xlnx,bus-width = <128>;
|
||||||
iommus = <&smmu 0x14eb>;
|
/* iommus = <&smmu 0x14eb>; */
|
||||||
power-domains = <&zynqmp_firmware PD_GDMA>;
|
power-domains = <&zynqmp_firmware PD_GDMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -396,7 +440,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <128>;
|
xlnx,bus-width = <128>;
|
||||||
iommus = <&smmu 0x14ec>;
|
/* iommus = <&smmu 0x14ec>; */
|
||||||
power-domains = <&zynqmp_firmware PD_GDMA>;
|
power-domains = <&zynqmp_firmware PD_GDMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -409,7 +453,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <128>;
|
xlnx,bus-width = <128>;
|
||||||
iommus = <&smmu 0x14ed>;
|
/* iommus = <&smmu 0x14ed>; */
|
||||||
power-domains = <&zynqmp_firmware PD_GDMA>;
|
power-domains = <&zynqmp_firmware PD_GDMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -422,7 +466,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <128>;
|
xlnx,bus-width = <128>;
|
||||||
iommus = <&smmu 0x14ee>;
|
/* iommus = <&smmu 0x14ee>; */
|
||||||
power-domains = <&zynqmp_firmware PD_GDMA>;
|
power-domains = <&zynqmp_firmware PD_GDMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -435,7 +479,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <128>;
|
xlnx,bus-width = <128>;
|
||||||
iommus = <&smmu 0x14ef>;
|
/* iommus = <&smmu 0x14ef>; */
|
||||||
power-domains = <&zynqmp_firmware PD_GDMA>;
|
power-domains = <&zynqmp_firmware PD_GDMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -480,7 +524,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <64>;
|
xlnx,bus-width = <64>;
|
||||||
iommus = <&smmu 0x868>;
|
/* iommus = <&smmu 0x868>; */
|
||||||
power-domains = <&zynqmp_firmware PD_ADMA>;
|
power-domains = <&zynqmp_firmware PD_ADMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -493,7 +537,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <64>;
|
xlnx,bus-width = <64>;
|
||||||
iommus = <&smmu 0x869>;
|
/* iommus = <&smmu 0x869>; */
|
||||||
power-domains = <&zynqmp_firmware PD_ADMA>;
|
power-domains = <&zynqmp_firmware PD_ADMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -506,7 +550,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <64>;
|
xlnx,bus-width = <64>;
|
||||||
iommus = <&smmu 0x86a>;
|
/* iommus = <&smmu 0x86a>; */
|
||||||
power-domains = <&zynqmp_firmware PD_ADMA>;
|
power-domains = <&zynqmp_firmware PD_ADMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -519,7 +563,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <64>;
|
xlnx,bus-width = <64>;
|
||||||
iommus = <&smmu 0x86b>;
|
/* iommus = <&smmu 0x86b>; */
|
||||||
power-domains = <&zynqmp_firmware PD_ADMA>;
|
power-domains = <&zynqmp_firmware PD_ADMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -532,7 +576,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <64>;
|
xlnx,bus-width = <64>;
|
||||||
iommus = <&smmu 0x86c>;
|
/* iommus = <&smmu 0x86c>; */
|
||||||
power-domains = <&zynqmp_firmware PD_ADMA>;
|
power-domains = <&zynqmp_firmware PD_ADMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -545,7 +589,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <64>;
|
xlnx,bus-width = <64>;
|
||||||
iommus = <&smmu 0x86d>;
|
/* iommus = <&smmu 0x86d>; */
|
||||||
power-domains = <&zynqmp_firmware PD_ADMA>;
|
power-domains = <&zynqmp_firmware PD_ADMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -558,7 +602,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <64>;
|
xlnx,bus-width = <64>;
|
||||||
iommus = <&smmu 0x86e>;
|
/* iommus = <&smmu 0x86e>; */
|
||||||
power-domains = <&zynqmp_firmware PD_ADMA>;
|
power-domains = <&zynqmp_firmware PD_ADMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -571,7 +615,7 @@
|
||||||
clock-names = "clk_main", "clk_apb";
|
clock-names = "clk_main", "clk_apb";
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
xlnx,bus-width = <64>;
|
xlnx,bus-width = <64>;
|
||||||
iommus = <&smmu 0x86f>;
|
/* iommus = <&smmu 0x86f>; */
|
||||||
power-domains = <&zynqmp_firmware PD_ADMA>;
|
power-domains = <&zynqmp_firmware PD_ADMA>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -591,7 +635,7 @@
|
||||||
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
iommus = <&smmu 0x872>;
|
/* iommus = <&smmu 0x872>; */
|
||||||
power-domains = <&zynqmp_firmware PD_NAND>;
|
power-domains = <&zynqmp_firmware PD_NAND>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -603,7 +647,7 @@
|
||||||
<GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
|
<GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
reg = <0x0 0xff0b0000 0x0 0x1000>;
|
reg = <0x0 0xff0b0000 0x0 0x1000>;
|
||||||
clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
|
clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
|
||||||
iommus = <&smmu 0x874>;
|
/* iommus = <&smmu 0x874>; */
|
||||||
power-domains = <&zynqmp_firmware PD_ETH_0>;
|
power-domains = <&zynqmp_firmware PD_ETH_0>;
|
||||||
resets = <&zynqmp_reset ZYNQMP_RESET_GEM0>;
|
resets = <&zynqmp_reset ZYNQMP_RESET_GEM0>;
|
||||||
reset-names = "gem0_rst";
|
reset-names = "gem0_rst";
|
||||||
|
@ -617,7 +661,7 @@
|
||||||
<GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
|
<GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
reg = <0x0 0xff0c0000 0x0 0x1000>;
|
reg = <0x0 0xff0c0000 0x0 0x1000>;
|
||||||
clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
|
clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
|
||||||
iommus = <&smmu 0x875>;
|
/* iommus = <&smmu 0x875>; */
|
||||||
power-domains = <&zynqmp_firmware PD_ETH_1>;
|
power-domains = <&zynqmp_firmware PD_ETH_1>;
|
||||||
resets = <&zynqmp_reset ZYNQMP_RESET_GEM1>;
|
resets = <&zynqmp_reset ZYNQMP_RESET_GEM1>;
|
||||||
reset-names = "gem1_rst";
|
reset-names = "gem1_rst";
|
||||||
|
@ -631,7 +675,7 @@
|
||||||
<GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
|
<GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
reg = <0x0 0xff0d0000 0x0 0x1000>;
|
reg = <0x0 0xff0d0000 0x0 0x1000>;
|
||||||
clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
|
clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
|
||||||
iommus = <&smmu 0x876>;
|
/* iommus = <&smmu 0x876>; */
|
||||||
power-domains = <&zynqmp_firmware PD_ETH_2>;
|
power-domains = <&zynqmp_firmware PD_ETH_2>;
|
||||||
resets = <&zynqmp_reset ZYNQMP_RESET_GEM2>;
|
resets = <&zynqmp_reset ZYNQMP_RESET_GEM2>;
|
||||||
reset-names = "gem2_rst";
|
reset-names = "gem2_rst";
|
||||||
|
@ -645,7 +689,7 @@
|
||||||
<GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
|
<GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
reg = <0x0 0xff0e0000 0x0 0x1000>;
|
reg = <0x0 0xff0e0000 0x0 0x1000>;
|
||||||
clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
|
clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
|
||||||
iommus = <&smmu 0x877>;
|
/* iommus = <&smmu 0x877>; */
|
||||||
power-domains = <&zynqmp_firmware PD_ETH_3>;
|
power-domains = <&zynqmp_firmware PD_ETH_3>;
|
||||||
resets = <&zynqmp_reset ZYNQMP_RESET_GEM3>;
|
resets = <&zynqmp_reset ZYNQMP_RESET_GEM3>;
|
||||||
reset-names = "gem3_rst";
|
reset-names = "gem3_rst";
|
||||||
|
@ -724,7 +768,7 @@
|
||||||
<0x0 0x0 0x0 0x2 &pcie_intc 0x2>,
|
<0x0 0x0 0x0 0x2 &pcie_intc 0x2>,
|
||||||
<0x0 0x0 0x0 0x3 &pcie_intc 0x3>,
|
<0x0 0x0 0x0 0x3 &pcie_intc 0x3>,
|
||||||
<0x0 0x0 0x0 0x4 &pcie_intc 0x4>;
|
<0x0 0x0 0x0 0x4 &pcie_intc 0x4>;
|
||||||
iommus = <&smmu 0x4d0>;
|
/* iommus = <&smmu 0x4d0>; */
|
||||||
power-domains = <&zynqmp_firmware PD_PCIE>;
|
power-domains = <&zynqmp_firmware PD_PCIE>;
|
||||||
pcie_intc: legacy-interrupt-controller {
|
pcie_intc: legacy-interrupt-controller {
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
|
@ -745,7 +789,7 @@
|
||||||
<0x0 0xc0000000 0x0 0x8000000>;
|
<0x0 0xc0000000 0x0 0x8000000>;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
iommus = <&smmu 0x873>;
|
/* iommus = <&smmu 0x873>; */
|
||||||
power-domains = <&zynqmp_firmware PD_QSPI>;
|
power-domains = <&zynqmp_firmware PD_QSPI>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -777,8 +821,7 @@
|
||||||
interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
power-domains = <&zynqmp_firmware PD_SATA>;
|
power-domains = <&zynqmp_firmware PD_SATA>;
|
||||||
resets = <&zynqmp_reset ZYNQMP_RESET_SATA>;
|
resets = <&zynqmp_reset ZYNQMP_RESET_SATA>;
|
||||||
iommus = <&smmu 0x4c0>, <&smmu 0x4c1>,
|
/* iommus = <&smmu 0x4c0>, <&smmu 0x4c1>, <&smmu 0x4c2>, <&smmu 0x4c3>; */
|
||||||
<&smmu 0x4c2>, <&smmu 0x4c3>;
|
|
||||||
/* dma-coherent; */
|
/* dma-coherent; */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -790,7 +833,7 @@
|
||||||
interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
reg = <0x0 0xff160000 0x0 0x1000>;
|
reg = <0x0 0xff160000 0x0 0x1000>;
|
||||||
clock-names = "clk_xin", "clk_ahb";
|
clock-names = "clk_xin", "clk_ahb";
|
||||||
iommus = <&smmu 0x870>;
|
/* iommus = <&smmu 0x870>; */
|
||||||
#clock-cells = <1>;
|
#clock-cells = <1>;
|
||||||
clock-output-names = "clk_out_sd0", "clk_in_sd0";
|
clock-output-names = "clk_out_sd0", "clk_in_sd0";
|
||||||
power-domains = <&zynqmp_firmware PD_SD_0>;
|
power-domains = <&zynqmp_firmware PD_SD_0>;
|
||||||
|
@ -805,7 +848,7 @@
|
||||||
interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
reg = <0x0 0xff170000 0x0 0x1000>;
|
reg = <0x0 0xff170000 0x0 0x1000>;
|
||||||
clock-names = "clk_xin", "clk_ahb";
|
clock-names = "clk_xin", "clk_ahb";
|
||||||
iommus = <&smmu 0x871>;
|
/* iommus = <&smmu 0x871>; */
|
||||||
#clock-cells = <1>;
|
#clock-cells = <1>;
|
||||||
clock-output-names = "clk_out_sd1", "clk_in_sd1";
|
clock-output-names = "clk_out_sd1", "clk_in_sd1";
|
||||||
power-domains = <&zynqmp_firmware PD_SD_1>;
|
power-domains = <&zynqmp_firmware PD_SD_1>;
|
||||||
|
@ -956,11 +999,10 @@
|
||||||
interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
|
interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
|
<GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
|
<GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
iommus = <&smmu 0x860>;
|
/* iommus = <&smmu 0x860>; */
|
||||||
snps,quirk-frame-length-adjustment = <0x20>;
|
snps,quirk-frame-length-adjustment = <0x20>;
|
||||||
clock-names = "ref";
|
clock-names = "ref";
|
||||||
snps,enable_guctl1_ipd_quirk;
|
snps,enable_guctl1_ipd_quirk;
|
||||||
snps,xhci-stream-quirk;
|
|
||||||
snps,resume-hs-terminations;
|
snps,resume-hs-terminations;
|
||||||
/* dma-coherent; */
|
/* dma-coherent; */
|
||||||
};
|
};
|
||||||
|
@ -989,11 +1031,10 @@
|
||||||
interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
|
interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
|
<GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
|
<GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
iommus = <&smmu 0x861>;
|
/* iommus = <&smmu 0x861>; */
|
||||||
snps,quirk-frame-length-adjustment = <0x20>;
|
snps,quirk-frame-length-adjustment = <0x20>;
|
||||||
clock-names = "ref";
|
clock-names = "ref";
|
||||||
snps,enable_guctl1_ipd_quirk;
|
snps,enable_guctl1_ipd_quirk;
|
||||||
snps,xhci-stream-quirk;
|
|
||||||
snps,resume-hs-terminations;
|
snps,resume-hs-terminations;
|
||||||
/* dma-coherent; */
|
/* dma-coherent; */
|
||||||
};
|
};
|
||||||
|
@ -1039,8 +1080,6 @@
|
||||||
compatible = "xlnx,zynqmp-ams-pl";
|
compatible = "xlnx,zynqmp-ams-pl";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
reg = <0x400 0x400>;
|
reg = <0x400 0x400>;
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1052,6 +1091,7 @@
|
||||||
interrupt-parent = <&gic>;
|
interrupt-parent = <&gic>;
|
||||||
clock-names = "axi_clk";
|
clock-names = "axi_clk";
|
||||||
power-domains = <&zynqmp_firmware PD_DP>;
|
power-domains = <&zynqmp_firmware PD_DP>;
|
||||||
|
/* iommus = <&smmu 0xce4>; */
|
||||||
#dma-cells = <1>;
|
#dma-cells = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1066,6 +1106,7 @@
|
||||||
reg-names = "dp", "blend", "av_buf", "aud";
|
reg-names = "dp", "blend", "av_buf", "aud";
|
||||||
interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
interrupt-parent = <&gic>;
|
interrupt-parent = <&gic>;
|
||||||
|
/* iommus = <&smmu 0xce3>; */
|
||||||
clock-names = "dp_apb_clk", "dp_aud_clk",
|
clock-names = "dp_apb_clk", "dp_aud_clk",
|
||||||
"dp_vtc_pixel_clk_in";
|
"dp_vtc_pixel_clk_in";
|
||||||
power-domains = <&zynqmp_firmware PD_DP>;
|
power-domains = <&zynqmp_firmware PD_DP>;
|
||||||
|
|
|
@ -1572,6 +1572,7 @@
|
||||||
other-node = "/some-bus/c-test@5";
|
other-node = "/some-bus/c-test@5";
|
||||||
int-values = <0x1937 72993>;
|
int-values = <0x1937 72993>;
|
||||||
u-boot,acpi-ssdt-order = <&acpi_test2 &acpi_test1>;
|
u-boot,acpi-ssdt-order = <&acpi_test2 &acpi_test1>;
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
chosen-test {
|
chosen-test {
|
||||||
compatible = "denx,u-boot-fdt-test";
|
compatible = "denx,u-boot-fdt-test";
|
||||||
reg = <9 1>;
|
reg = <9 1>;
|
||||||
|
|
4
cmd/sf.c
4
cmd/sf.c
|
@ -604,7 +604,7 @@ static int do_spi_flash(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||||
ret = do_spi_flash_read_write(argc, argv);
|
ret = do_spi_flash_read_write(argc, argv);
|
||||||
else if (strcmp(cmd, "erase") == 0)
|
else if (strcmp(cmd, "erase") == 0)
|
||||||
ret = do_spi_flash_erase(argc, argv);
|
ret = do_spi_flash_erase(argc, argv);
|
||||||
else if (strcmp(cmd, "protect") == 0)
|
else if (IS_ENABLED(CONFIG_SPI_FLASH_LOCK) && strcmp(cmd, "protect") == 0)
|
||||||
ret = do_spi_protect(argc, argv);
|
ret = do_spi_protect(argc, argv);
|
||||||
else if (IS_ENABLED(CONFIG_CMD_SF_TEST) && !strcmp(cmd, "test"))
|
else if (IS_ENABLED(CONFIG_CMD_SF_TEST) && !strcmp(cmd, "test"))
|
||||||
ret = do_spi_flash_test(argc, argv);
|
ret = do_spi_flash_test(argc, argv);
|
||||||
|
@ -629,8 +629,10 @@ U_BOOT_LONGHELP(sf,
|
||||||
"sf update addr offset|partition len - erase and write `len' bytes from memory\n"
|
"sf update addr offset|partition len - erase and write `len' bytes from memory\n"
|
||||||
" at `addr' to flash at `offset'\n"
|
" at `addr' to flash at `offset'\n"
|
||||||
" or to start of mtd `partition'\n"
|
" or to start of mtd `partition'\n"
|
||||||
|
#ifdef CONFIG_SPI_FLASH_LOCK
|
||||||
"sf protect lock/unlock sector len - protect/unprotect 'len' bytes starting\n"
|
"sf protect lock/unlock sector len - protect/unprotect 'len' bytes starting\n"
|
||||||
" at address 'sector'"
|
" at address 'sector'"
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_CMD_SF_TEST
|
#ifdef CONFIG_CMD_SF_TEST
|
||||||
"\nsf test offset len - run a very basic destructive test"
|
"\nsf test offset len - run a very basic destructive test"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -20,6 +20,7 @@ CONFIG_DISTRO_DEFAULTS=y
|
||||||
CONFIG_USE_PREBOOT=y
|
CONFIG_USE_PREBOOT=y
|
||||||
# CONFIG_DISPLAY_CPUINFO is not set
|
# CONFIG_DISPLAY_CPUINFO is not set
|
||||||
# CONFIG_DISPLAY_BOARDINFO is not set
|
# CONFIG_DISPLAY_BOARDINFO is not set
|
||||||
|
CONFIG_DEFAULT_ENV_IS_RW=y
|
||||||
CONFIG_DISPLAY_BOARDINFO_LATE=y
|
CONFIG_DISPLAY_BOARDINFO_LATE=y
|
||||||
CONFIG_BOARD_EARLY_INIT_F=y
|
CONFIG_BOARD_EARLY_INIT_F=y
|
||||||
CONFIG_SYS_PROMPT="eDPU>> "
|
CONFIG_SYS_PROMPT="eDPU>> "
|
||||||
|
|
|
@ -22,6 +22,7 @@ CONFIG_USE_PREBOOT=y
|
||||||
CONFIG_SYS_CONSOLE_INFO_QUIET=y
|
CONFIG_SYS_CONSOLE_INFO_QUIET=y
|
||||||
# CONFIG_DISPLAY_CPUINFO is not set
|
# CONFIG_DISPLAY_CPUINFO is not set
|
||||||
# CONFIG_DISPLAY_BOARDINFO is not set
|
# CONFIG_DISPLAY_BOARDINFO is not set
|
||||||
|
CONFIG_DEFAULT_ENV_IS_RW=y
|
||||||
CONFIG_DISPLAY_BOARDINFO_LATE=y
|
CONFIG_DISPLAY_BOARDINFO_LATE=y
|
||||||
CONFIG_BOARD_EARLY_INIT_F=y
|
CONFIG_BOARD_EARLY_INIT_F=y
|
||||||
CONFIG_SYS_MAXARGS=32
|
CONFIG_SYS_MAXARGS=32
|
||||||
|
|
|
@ -24,6 +24,7 @@ CONFIG_USE_PREBOOT=y
|
||||||
CONFIG_SYS_CONSOLE_INFO_QUIET=y
|
CONFIG_SYS_CONSOLE_INFO_QUIET=y
|
||||||
# CONFIG_DISPLAY_CPUINFO is not set
|
# CONFIG_DISPLAY_CPUINFO is not set
|
||||||
# CONFIG_DISPLAY_BOARDINFO is not set
|
# CONFIG_DISPLAY_BOARDINFO is not set
|
||||||
|
CONFIG_DEFAULT_ENV_IS_RW=y
|
||||||
CONFIG_DISPLAY_BOARDINFO_LATE=y
|
CONFIG_DISPLAY_BOARDINFO_LATE=y
|
||||||
CONFIG_BOARD_EARLY_INIT_F=y
|
CONFIG_BOARD_EARLY_INIT_F=y
|
||||||
CONFIG_BOARD_LATE_INIT=y
|
CONFIG_BOARD_LATE_INIT=y
|
||||||
|
|
|
@ -20,6 +20,7 @@ CONFIG_DISTRO_DEFAULTS=y
|
||||||
CONFIG_USE_PREBOOT=y
|
CONFIG_USE_PREBOOT=y
|
||||||
# CONFIG_DISPLAY_CPUINFO is not set
|
# CONFIG_DISPLAY_CPUINFO is not set
|
||||||
# CONFIG_DISPLAY_BOARDINFO is not set
|
# CONFIG_DISPLAY_BOARDINFO is not set
|
||||||
|
CONFIG_DEFAULT_ENV_IS_RW=y
|
||||||
CONFIG_DISPLAY_BOARDINFO_LATE=y
|
CONFIG_DISPLAY_BOARDINFO_LATE=y
|
||||||
CONFIG_BOARD_EARLY_INIT_F=y
|
CONFIG_BOARD_EARLY_INIT_F=y
|
||||||
CONFIG_SYS_PROMPT="uDPU>> "
|
CONFIG_SYS_PROMPT="uDPU>> "
|
||||||
|
|
|
@ -57,6 +57,7 @@ CONFIG_SYS_PROMPT="Versal> "
|
||||||
CONFIG_DM_SPI_FLASH=y
|
CONFIG_DM_SPI_FLASH=y
|
||||||
CONFIG_SPI_FLASH_SOFT_RESET=y
|
CONFIG_SPI_FLASH_SOFT_RESET=y
|
||||||
CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y
|
CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y
|
||||||
|
# CONFIG_SPI_FLASH_LOCK is not set
|
||||||
CONFIG_SPI_FLASH_GIGADEVICE=y
|
CONFIG_SPI_FLASH_GIGADEVICE=y
|
||||||
CONFIG_SPI_FLASH_ISSI=y
|
CONFIG_SPI_FLASH_ISSI=y
|
||||||
CONFIG_SPI_FLASH_MACRONIX=y
|
CONFIG_SPI_FLASH_MACRONIX=y
|
||||||
|
|
|
@ -61,6 +61,7 @@ CONFIG_SYS_PROMPT="Versal> "
|
||||||
# CONFIG_MMC is not set
|
# CONFIG_MMC is not set
|
||||||
CONFIG_DM_SPI_FLASH=y
|
CONFIG_DM_SPI_FLASH=y
|
||||||
# CONFIG_SPI_FLASH_SMART_HWCAPS is not set
|
# CONFIG_SPI_FLASH_SMART_HWCAPS is not set
|
||||||
|
# CONFIG_SPI_FLASH_LOCK is not set
|
||||||
# CONFIG_SPI_FLASH_UNLOCK_ALL is not set
|
# CONFIG_SPI_FLASH_UNLOCK_ALL is not set
|
||||||
CONFIG_SPI_FLASH_GIGADEVICE=y
|
CONFIG_SPI_FLASH_GIGADEVICE=y
|
||||||
CONFIG_SPI_FLASH_ISSI=y
|
CONFIG_SPI_FLASH_ISSI=y
|
||||||
|
|
|
@ -56,6 +56,7 @@ CONFIG_SYS_PROMPT="Versal NET> "
|
||||||
CONFIG_DM_SPI_FLASH=y
|
CONFIG_DM_SPI_FLASH=y
|
||||||
CONFIG_SPI_FLASH_SOFT_RESET=y
|
CONFIG_SPI_FLASH_SOFT_RESET=y
|
||||||
CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y
|
CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y
|
||||||
|
# CONFIG_SPI_FLASH_LOCK is not set
|
||||||
CONFIG_SPI_FLASH_GIGADEVICE=y
|
CONFIG_SPI_FLASH_GIGADEVICE=y
|
||||||
CONFIG_SPI_FLASH_ISSI=y
|
CONFIG_SPI_FLASH_ISSI=y
|
||||||
CONFIG_SPI_FLASH_MACRONIX=y
|
CONFIG_SPI_FLASH_MACRONIX=y
|
||||||
|
|
|
@ -60,6 +60,7 @@ CONFIG_SYS_PROMPT="Versal NET> "
|
||||||
# CONFIG_MMC is not set
|
# CONFIG_MMC is not set
|
||||||
CONFIG_DM_SPI_FLASH=y
|
CONFIG_DM_SPI_FLASH=y
|
||||||
# CONFIG_SPI_FLASH_SMART_HWCAPS is not set
|
# CONFIG_SPI_FLASH_SMART_HWCAPS is not set
|
||||||
|
# CONFIG_SPI_FLASH_LOCK is not set
|
||||||
# CONFIG_SPI_FLASH_UNLOCK_ALL is not set
|
# CONFIG_SPI_FLASH_UNLOCK_ALL is not set
|
||||||
CONFIG_SPI_FLASH_ISSI=y
|
CONFIG_SPI_FLASH_ISSI=y
|
||||||
CONFIG_SPI_FLASH_MACRONIX=y
|
CONFIG_SPI_FLASH_MACRONIX=y
|
||||||
|
|
|
@ -85,6 +85,7 @@ CONFIG_MMC_IO_VOLTAGE=y
|
||||||
CONFIG_MMC_UHS_SUPPORT=y
|
CONFIG_MMC_UHS_SUPPORT=y
|
||||||
CONFIG_MMC_HS400_SUPPORT=y
|
CONFIG_MMC_HS400_SUPPORT=y
|
||||||
CONFIG_MMC_SDHCI=y
|
CONFIG_MMC_SDHCI=y
|
||||||
|
CONFIG_MMC_SDHCI_ADMA=y
|
||||||
CONFIG_MMC_SDHCI_ZYNQ=y
|
CONFIG_MMC_SDHCI_ZYNQ=y
|
||||||
CONFIG_ZYNQ_SDHCI_MIN_FREQ=100000
|
CONFIG_ZYNQ_SDHCI_MIN_FREQ=100000
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
|
|
|
@ -6,6 +6,7 @@ CONFIG_ARCH_VERSAL=y
|
||||||
CONFIG_TEXT_BASE=0x8000000
|
CONFIG_TEXT_BASE=0x8000000
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x100000
|
CONFIG_SYS_MALLOC_F_LEN=0x100000
|
||||||
CONFIG_NR_DRAM_BANKS=36
|
CONFIG_NR_DRAM_BANKS=36
|
||||||
|
CONFIG_SF_DEFAULT_SPEED=30000000
|
||||||
CONFIG_DEFAULT_DEVICE_TREE="xilinx-versal-virt"
|
CONFIG_DEFAULT_DEVICE_TREE="xilinx-versal-virt"
|
||||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||||
CONFIG_DM_RESET=y
|
CONFIG_DM_RESET=y
|
||||||
|
|
|
@ -126,6 +126,8 @@ CONFIG_SPI_FLASH_SPANSION=y
|
||||||
CONFIG_SPI_FLASH_STMICRO=y
|
CONFIG_SPI_FLASH_STMICRO=y
|
||||||
CONFIG_SPI_FLASH_SST=y
|
CONFIG_SPI_FLASH_SST=y
|
||||||
CONFIG_SPI_FLASH_WINBOND=y
|
CONFIG_SPI_FLASH_WINBOND=y
|
||||||
|
# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
|
||||||
|
CONFIG_SPI_FLASH_MTD=y
|
||||||
CONFIG_PHY_MARVELL=y
|
CONFIG_PHY_MARVELL=y
|
||||||
CONFIG_PHY_MICREL=y
|
CONFIG_PHY_MICREL=y
|
||||||
CONFIG_PHY_MICREL_KSZ90X1=y
|
CONFIG_PHY_MICREL_KSZ90X1=y
|
||||||
|
|
|
@ -77,6 +77,7 @@ CONFIG_SPL_DM_SEQ_ALIAS=y
|
||||||
# CONFIG_DM_MAILBOX is not set
|
# CONFIG_DM_MAILBOX is not set
|
||||||
# CONFIG_MMC is not set
|
# CONFIG_MMC is not set
|
||||||
# CONFIG_SPI_FLASH_SMART_HWCAPS is not set
|
# CONFIG_SPI_FLASH_SMART_HWCAPS is not set
|
||||||
|
# CONFIG_SPI_FLASH_LOCK is not set
|
||||||
# CONFIG_SPI_FLASH_UNLOCK_ALL is not set
|
# CONFIG_SPI_FLASH_UNLOCK_ALL is not set
|
||||||
CONFIG_SPI_FLASH_GIGADEVICE=y
|
CONFIG_SPI_FLASH_GIGADEVICE=y
|
||||||
CONFIG_SPI_FLASH_ISSI=y
|
CONFIG_SPI_FLASH_ISSI=y
|
||||||
|
|
41
doc/README.serial_dt_baud
Normal file
41
doc/README.serial_dt_baud
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
Fetch serial baudrate from DT
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
To support fetching of baudrate from DT, the following is done:-
|
||||||
|
|
||||||
|
The baudrate configured in Kconfig symbol CONFIG_BAUDRATE is taken by default by serial.
|
||||||
|
If change of baudrate is required then the Kconfig symbol CONFIG_BAUDRATE needs to
|
||||||
|
changed and U-Boot recompilation is required or the U-Boot environment needs to be updated.
|
||||||
|
|
||||||
|
To avoid this, add support to fetch the baudrate directly from the device tree file and
|
||||||
|
update the environment.
|
||||||
|
|
||||||
|
The default environment stores the default baudrate value. When default baudrate and dtb
|
||||||
|
baudrate are not same glitches are seen on the serial.
|
||||||
|
So, the environment also needs to be updated with the dtb baudrate to avoid the glitches on
|
||||||
|
the serial which is enabled by OF_SERIAL_BAUD.
|
||||||
|
|
||||||
|
The Kconfig SPL_ENV_SUPPORT needs to be enabled to allow patching in SPL.
|
||||||
|
|
||||||
|
The Kconfig DEFAULT_ENV_IS_RW which is enabled by OF_SERIAL_BAUD with making the environment
|
||||||
|
writable.
|
||||||
|
|
||||||
|
The ofnode_read_baud() function parses and fetches the baudrate value from the DT. This value
|
||||||
|
is validated and updated to baudrate during serial init. Padding is added at the end of the
|
||||||
|
default environment and the dt baudrate is updated with the latest value.
|
||||||
|
|
||||||
|
Example:-
|
||||||
|
|
||||||
|
The serial port options are of the form "bbbbpnf", where "bbbb" is the baud rate, "p" is parity ("n", "o", or "e"),
|
||||||
|
"n" is number of bits, and "f" is flow control ("r" for RTS or omit it). Default is "115200n8".
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
bootargs = "earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/ram0 rw init_fatal_sh=1";
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
From the chosen node, stdout-path property is obtained as string.
|
||||||
|
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
|
||||||
|
The string is parsed to get the baudrate 115200. This string is converted to integer and updated to the environment.
|
|
@ -991,6 +991,24 @@ ofnode ofnode_get_chosen_node(const char *name)
|
||||||
return ofnode_path(prop);
|
return ofnode_path(prop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ofnode_read_baud(void)
|
||||||
|
{
|
||||||
|
const char *str, *p;
|
||||||
|
u32 baud;
|
||||||
|
|
||||||
|
str = ofnode_read_chosen_string("stdout-path");
|
||||||
|
if (!str)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
/* Parse string serial0:115200n8 */
|
||||||
|
p = strchr(str, ':');
|
||||||
|
if (!p)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
baud = dectoul(p + 1, NULL);
|
||||||
|
return baud;
|
||||||
|
}
|
||||||
|
|
||||||
const void *ofnode_read_aliases_prop(const char *propname, int *sizep)
|
const void *ofnode_read_aliases_prop(const char *propname, int *sizep)
|
||||||
{
|
{
|
||||||
ofnode node;
|
ofnode node;
|
||||||
|
|
|
@ -203,6 +203,8 @@ int zynqmp_pm_feature(const u32 api_id)
|
||||||
/* Check feature check API version */
|
/* Check feature check API version */
|
||||||
ret = xilinx_pm_request(PM_FEATURE_CHECK, api_id, 0, 0, 0,
|
ret = xilinx_pm_request(PM_FEATURE_CHECK, api_id, 0, 0, 0,
|
||||||
ret_payload);
|
ret_payload);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
/* Return feature check version */
|
/* Return feature check version */
|
||||||
return ret_payload[1] & FIRMWARE_VERSION_MASK;
|
return ret_payload[1] & FIRMWARE_VERSION_MASK;
|
||||||
|
|
|
@ -134,6 +134,13 @@ config SPI_FLASH_BAR
|
||||||
Bank/Extended address registers are used to access the flash
|
Bank/Extended address registers are used to access the flash
|
||||||
which has size > 16MiB in 3-byte addressing.
|
which has size > 16MiB in 3-byte addressing.
|
||||||
|
|
||||||
|
config SPI_FLASH_LOCK
|
||||||
|
bool "Enable the Locking feature"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Enable the SPI flash lock support. By default this is set to y.
|
||||||
|
If you intend not to use the lock support you should say n here.
|
||||||
|
|
||||||
config SPI_FLASH_UNLOCK_ALL
|
config SPI_FLASH_UNLOCK_ALL
|
||||||
bool "Unlock the entire SPI flash on u-boot startup"
|
bool "Unlock the entire SPI flash on u-boot startup"
|
||||||
default y
|
default y
|
||||||
|
|
|
@ -1100,6 +1100,7 @@ static int spansion_erase_non_uniform(struct spi_nor *nor, u32 addr,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(CONFIG_SPI_FLASH_LOCK)
|
||||||
#if defined(CONFIG_SPI_FLASH_STMICRO) || defined(CONFIG_SPI_FLASH_SST)
|
#if defined(CONFIG_SPI_FLASH_STMICRO) || defined(CONFIG_SPI_FLASH_SST)
|
||||||
/* Write status register and ensure bits in mask match written values */
|
/* Write status register and ensure bits in mask match written values */
|
||||||
static int write_sr_and_check(struct spi_nor *nor, u8 status_new, u8 mask)
|
static int write_sr_and_check(struct spi_nor *nor, u8 status_new, u8 mask)
|
||||||
|
@ -1387,6 +1388,7 @@ static int stm_is_unlocked(struct spi_nor *nor, loff_t ofs, uint64_t len)
|
||||||
return stm_is_unlocked_sr(nor, ofs, len, status);
|
return stm_is_unlocked_sr(nor, ofs, len, status);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_SPI_FLASH_STMICRO */
|
#endif /* CONFIG_SPI_FLASH_STMICRO */
|
||||||
|
#endif
|
||||||
|
|
||||||
static const struct flash_info *spi_nor_read_id(struct spi_nor *nor)
|
static const struct flash_info *spi_nor_read_id(struct spi_nor *nor)
|
||||||
{
|
{
|
||||||
|
@ -1462,6 +1464,7 @@ read_err:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(CONFIG_SPI_FLASH_LOCK)
|
||||||
#ifdef CONFIG_SPI_FLASH_SST
|
#ifdef CONFIG_SPI_FLASH_SST
|
||||||
/*
|
/*
|
||||||
* sst26 flash series has its own block protection implementation:
|
* sst26 flash series has its own block protection implementation:
|
||||||
|
@ -1730,6 +1733,8 @@ sst_write_err:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Write an address range to the nor chip. Data must be written in
|
* Write an address range to the nor chip. Data must be written in
|
||||||
* FLASH_PAGESIZE chunks. The address range may be any size provided
|
* FLASH_PAGESIZE chunks. The address range may be any size provided
|
||||||
|
@ -4104,6 +4109,7 @@ int spi_nor_scan(struct spi_nor *nor)
|
||||||
mtd->_read = spi_nor_read;
|
mtd->_read = spi_nor_read;
|
||||||
mtd->_write = spi_nor_write;
|
mtd->_write = spi_nor_write;
|
||||||
|
|
||||||
|
#if defined(CONFIG_SPI_FLASH_LOCK)
|
||||||
#if defined(CONFIG_SPI_FLASH_STMICRO) || defined(CONFIG_SPI_FLASH_SST)
|
#if defined(CONFIG_SPI_FLASH_STMICRO) || defined(CONFIG_SPI_FLASH_SST)
|
||||||
/* NOR protection support for STmicro/Micron chips and similar */
|
/* NOR protection support for STmicro/Micron chips and similar */
|
||||||
if (JEDEC_MFR(info) == SNOR_MFR_ST ||
|
if (JEDEC_MFR(info) == SNOR_MFR_ST ||
|
||||||
|
@ -4127,7 +4133,7 @@ int spi_nor_scan(struct spi_nor *nor)
|
||||||
nor->flash_is_unlocked = sst26_is_unlocked;
|
nor->flash_is_unlocked = sst26_is_unlocked;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
if (info->flags & USE_FSR)
|
if (info->flags & USE_FSR)
|
||||||
nor->flags |= SNOR_F_USE_FSR;
|
nor->flags |= SNOR_F_USE_FSR;
|
||||||
if (info->flags & SPI_NOR_HAS_TB)
|
if (info->flags & SPI_NOR_HAS_TB)
|
||||||
|
|
|
@ -24,6 +24,21 @@ config BAUDRATE
|
||||||
in the SPL stage (most drivers) or for choosing a default baudrate
|
in the SPL stage (most drivers) or for choosing a default baudrate
|
||||||
in the absence of an environment setting (serial_mxc.c).
|
in the absence of an environment setting (serial_mxc.c).
|
||||||
|
|
||||||
|
config OF_SERIAL_BAUD
|
||||||
|
bool "Fetch serial baudrate from device tree"
|
||||||
|
depends on DM_SERIAL && SPL_ENV_SUPPORT
|
||||||
|
select DEFAULT_ENV_IS_RW
|
||||||
|
help
|
||||||
|
Select this to enable fetching and setting of the baudrate
|
||||||
|
configured in the DT. Replace the default baudrate with the DT
|
||||||
|
baudrate and also set it to the environment.
|
||||||
|
|
||||||
|
config DEFAULT_ENV_IS_RW
|
||||||
|
bool "Make default environment as writable"
|
||||||
|
help
|
||||||
|
Select this to enable to make default environment writable. This
|
||||||
|
allows modifying the default environment.
|
||||||
|
|
||||||
config REQUIRE_SERIAL_CONSOLE
|
config REQUIRE_SERIAL_CONSOLE
|
||||||
bool "Require a serial port for console"
|
bool "Require a serial port for console"
|
||||||
# Running without a serial console is not supported by the
|
# Running without a serial console is not supported by the
|
||||||
|
|
|
@ -155,12 +155,61 @@ static void serial_find_console_or_panic(void)
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_SERIAL_PRESENT */
|
#endif /* CONFIG_SERIAL_PRESENT */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* check_valid_baudrate() - Check whether baudrate is valid or not
|
||||||
|
*
|
||||||
|
* @baud: baud rate to check
|
||||||
|
* Return: 0 if OK, -ve on error
|
||||||
|
*/
|
||||||
|
static int check_valid_baudrate(int baud)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE(baudrate_table); ++i) {
|
||||||
|
if (baud == baudrate_table[i])
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
int fetch_baud_from_dtb(void)
|
||||||
|
{
|
||||||
|
int baud_value, ret;
|
||||||
|
|
||||||
|
baud_value = ofnode_read_baud();
|
||||||
|
ret = check_valid_baudrate(baud_value);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
return baud_value;
|
||||||
|
}
|
||||||
|
|
||||||
/* Called prior to relocation */
|
/* Called prior to relocation */
|
||||||
int serial_init(void)
|
int serial_init(void)
|
||||||
{
|
{
|
||||||
#if CONFIG_IS_ENABLED(SERIAL_PRESENT)
|
#if CONFIG_IS_ENABLED(SERIAL_PRESENT)
|
||||||
serial_find_console_or_panic();
|
serial_find_console_or_panic();
|
||||||
gd->flags |= GD_FLG_SERIAL_READY;
|
gd->flags |= GD_FLG_SERIAL_READY;
|
||||||
|
|
||||||
|
if (IS_ENABLED(CONFIG_OF_SERIAL_BAUD)) {
|
||||||
|
int ret = 0;
|
||||||
|
char *ptr = (char*)&default_environment[0];
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fetch the baudrate from the dtb and update the value in the
|
||||||
|
* default environment.
|
||||||
|
*/
|
||||||
|
ret = fetch_baud_from_dtb();
|
||||||
|
if (ret != -EINVAL && ret != -EFAULT) {
|
||||||
|
gd->baudrate = ret;
|
||||||
|
|
||||||
|
while (*ptr != '\0' && *(ptr + 1) != '\0')
|
||||||
|
ptr++;
|
||||||
|
ptr += 2;
|
||||||
|
sprintf(ptr, "baudrate=%d", gd->baudrate);
|
||||||
|
}
|
||||||
|
}
|
||||||
serial_setbrg();
|
serial_setbrg();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -44,8 +44,10 @@ int cadence_qspi_apb_dma_read(struct cadence_spi_priv *priv,
|
||||||
priv->regbase + CQSPI_REG_INDIR_TRIG_ADDR_RANGE);
|
priv->regbase + CQSPI_REG_INDIR_TRIG_ADDR_RANGE);
|
||||||
writel(CQSPI_DFLT_DMA_PERIPH_CFG,
|
writel(CQSPI_DFLT_DMA_PERIPH_CFG,
|
||||||
priv->regbase + CQSPI_REG_DMA_PERIPH_CFG);
|
priv->regbase + CQSPI_REG_DMA_PERIPH_CFG);
|
||||||
writel((unsigned long)rxbuf, priv->regbase +
|
writel(lower_32_bits((unsigned long)rxbuf), priv->regbase +
|
||||||
CQSPI_DMA_DST_ADDR_REG);
|
CQSPI_DMA_DST_ADDR_REG);
|
||||||
|
writel(upper_32_bits((unsigned long)rxbuf), priv->regbase +
|
||||||
|
CQSPI_DMA_DST_ADDR_MSB_REG);
|
||||||
writel(priv->trigger_address, priv->regbase +
|
writel(priv->trigger_address, priv->regbase +
|
||||||
CQSPI_DMA_SRC_RD_ADDR_REG);
|
CQSPI_DMA_SRC_RD_ADDR_REG);
|
||||||
writel(bytes_to_dma, priv->regbase +
|
writel(bytes_to_dma, priv->regbase +
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
* Xilinx ZynqMP Generic Quad-SPI(QSPI) controller driver(master mode only)
|
* Xilinx ZynqMP Generic Quad-SPI(QSPI) controller driver(master mode only)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define LOG_CATEGORY UCLASS_SPI
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <cpu_func.h>
|
#include <cpu_func.h>
|
||||||
#include <log.h>
|
#include <log.h>
|
||||||
|
@ -192,8 +194,6 @@ static int zynqmp_qspi_of_to_plat(struct udevice *bus)
|
||||||
{
|
{
|
||||||
struct zynqmp_qspi_plat *plat = dev_get_plat(bus);
|
struct zynqmp_qspi_plat *plat = dev_get_plat(bus);
|
||||||
|
|
||||||
debug("%s\n", __func__);
|
|
||||||
|
|
||||||
plat->regs = (struct zynqmp_qspi_regs *)(dev_read_addr(bus) +
|
plat->regs = (struct zynqmp_qspi_regs *)(dev_read_addr(bus) +
|
||||||
GQSPI_REG_OFFSET);
|
GQSPI_REG_OFFSET);
|
||||||
plat->dma_regs = (struct zynqmp_qspi_dma_regs *)
|
plat->dma_regs = (struct zynqmp_qspi_dma_regs *)
|
||||||
|
@ -250,7 +250,7 @@ static u32 zynqmp_qspi_genfifo_mode(u8 buswidth)
|
||||||
case 4:
|
case 4:
|
||||||
return GQSPI_SPI_MODE_QSPI;
|
return GQSPI_SPI_MODE_QSPI;
|
||||||
default:
|
default:
|
||||||
debug("Unsupported bus width %u\n", buswidth);
|
log_warning("Unsupported bus width %u\n", buswidth);
|
||||||
return GQSPI_SPI_MODE_SPI;
|
return GQSPI_SPI_MODE_SPI;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -262,6 +262,8 @@ static void zynqmp_qspi_fill_gen_fifo(struct zynqmp_qspi_priv *priv,
|
||||||
u32 config_reg, ier;
|
u32 config_reg, ier;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
log_content("%s, GFIFO_CMD: 0x%X\n", __func__, gqspi_fifo_reg);
|
||||||
|
|
||||||
writel(gqspi_fifo_reg, ®s->genfifo);
|
writel(gqspi_fifo_reg, ®s->genfifo);
|
||||||
|
|
||||||
config_reg = readl(®s->confr);
|
config_reg = readl(®s->confr);
|
||||||
|
@ -278,7 +280,7 @@ static void zynqmp_qspi_fill_gen_fifo(struct zynqmp_qspi_priv *priv,
|
||||||
ret = wait_for_bit_le32(®s->isr, GQSPI_IXR_GFEMTY_MASK, 1,
|
ret = wait_for_bit_le32(®s->isr, GQSPI_IXR_GFEMTY_MASK, 1,
|
||||||
GQSPI_TIMEOUT, 1);
|
GQSPI_TIMEOUT, 1);
|
||||||
if (ret)
|
if (ret)
|
||||||
printf("%s Timeout\n", __func__);
|
log_warning("%s, Timeout\n", __func__);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -286,6 +288,8 @@ static void zynqmp_qspi_chipselect(struct zynqmp_qspi_priv *priv, int is_on)
|
||||||
{
|
{
|
||||||
u32 gqspi_fifo_reg = 0;
|
u32 gqspi_fifo_reg = 0;
|
||||||
|
|
||||||
|
log_debug("%s, assert: %d\r\n", __func__, is_on);
|
||||||
|
|
||||||
if (is_on) {
|
if (is_on) {
|
||||||
gqspi_fifo_reg = zynqmp_qspi_bus_select(priv);
|
gqspi_fifo_reg = zynqmp_qspi_bus_select(priv);
|
||||||
gqspi_fifo_reg |= GQSPI_SPI_MODE_SPI |
|
gqspi_fifo_reg |= GQSPI_SPI_MODE_SPI |
|
||||||
|
@ -295,8 +299,6 @@ static void zynqmp_qspi_chipselect(struct zynqmp_qspi_priv *priv, int is_on)
|
||||||
gqspi_fifo_reg |= GQSPI_IMD_DATA_CS_DEASSERT;
|
gqspi_fifo_reg |= GQSPI_IMD_DATA_CS_DEASSERT;
|
||||||
}
|
}
|
||||||
|
|
||||||
debug("GFIFO_CMD_CS: 0x%x\n", gqspi_fifo_reg);
|
|
||||||
|
|
||||||
zynqmp_qspi_fill_gen_fifo(priv, gqspi_fifo_reg);
|
zynqmp_qspi_fill_gen_fifo(priv, gqspi_fifo_reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -311,8 +313,8 @@ static void zynqmp_qspi_set_tapdelay(struct udevice *bus, u32 baudrateval)
|
||||||
clk_rate = plat->frequency;
|
clk_rate = plat->frequency;
|
||||||
reqhz = (clk_rate / (GQSPI_BAUD_DIV_SHIFT << baudrateval));
|
reqhz = (clk_rate / (GQSPI_BAUD_DIV_SHIFT << baudrateval));
|
||||||
|
|
||||||
debug("%s, req_hz:%d, clk_rate:%d, baudrateval:%d\n",
|
log_debug("%s, clk_rate:%d, baudrateval:%d, bus_clk: %d\n",
|
||||||
__func__, reqhz, clk_rate, baudrateval);
|
__func__, clk_rate, baudrateval, reqhz);
|
||||||
|
|
||||||
if (!(IS_ENABLED(CONFIG_ARCH_VERSAL) ||
|
if (!(IS_ENABLED(CONFIG_ARCH_VERSAL) ||
|
||||||
IS_ENABLED(CONFIG_ARCH_VERSAL_NET))) {
|
IS_ENABLED(CONFIG_ARCH_VERSAL_NET))) {
|
||||||
|
@ -362,7 +364,8 @@ static int zynqmp_qspi_set_speed(struct udevice *bus, uint speed)
|
||||||
u32 confr;
|
u32 confr;
|
||||||
u8 baud_rate_val = 0;
|
u8 baud_rate_val = 0;
|
||||||
|
|
||||||
debug("%s\n", __func__);
|
log_debug("%s, Speed: %d, Max: %d\n", __func__, speed, plat->frequency);
|
||||||
|
|
||||||
if (speed > plat->frequency)
|
if (speed > plat->frequency)
|
||||||
speed = plat->frequency;
|
speed = plat->frequency;
|
||||||
|
|
||||||
|
@ -383,9 +386,8 @@ static int zynqmp_qspi_set_speed(struct udevice *bus, uint speed)
|
||||||
confr &= ~GQSPI_BAUD_DIV_MASK;
|
confr &= ~GQSPI_BAUD_DIV_MASK;
|
||||||
confr |= (baud_rate_val << 3);
|
confr |= (baud_rate_val << 3);
|
||||||
writel(confr, ®s->confr);
|
writel(confr, ®s->confr);
|
||||||
zynqmp_qspi_set_tapdelay(bus, baud_rate_val);
|
|
||||||
|
|
||||||
debug("regs=%p, speed=%d\n", priv->regs, plat->speed_hz);
|
zynqmp_qspi_set_tapdelay(bus, baud_rate_val);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -399,8 +401,6 @@ static int zynqmp_qspi_probe(struct udevice *bus)
|
||||||
unsigned long clock;
|
unsigned long clock;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
debug("%s: bus:%p, priv:%p\n", __func__, bus, priv);
|
|
||||||
|
|
||||||
priv->regs = plat->regs;
|
priv->regs = plat->regs;
|
||||||
priv->dma_regs = plat->dma_regs;
|
priv->dma_regs = plat->dma_regs;
|
||||||
priv->io_mode = plat->io_mode;
|
priv->io_mode = plat->io_mode;
|
||||||
|
@ -416,7 +416,6 @@ static int zynqmp_qspi_probe(struct udevice *bus)
|
||||||
dev_err(bus, "failed to get rate\n");
|
dev_err(bus, "failed to get rate\n");
|
||||||
return clock;
|
return clock;
|
||||||
}
|
}
|
||||||
debug("%s: CLK %ld\n", __func__, clock);
|
|
||||||
|
|
||||||
ret = clk_enable(&clk);
|
ret = clk_enable(&clk);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
@ -429,6 +428,8 @@ static int zynqmp_qspi_probe(struct udevice *bus)
|
||||||
/* init the zynq spi hw */
|
/* init the zynq spi hw */
|
||||||
zynqmp_qspi_init_hw(priv);
|
zynqmp_qspi_init_hw(priv);
|
||||||
|
|
||||||
|
log_debug("%s, Rerence clock frequency: %ld\n", __func__, clock);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -438,7 +439,8 @@ static int zynqmp_qspi_set_mode(struct udevice *bus, uint mode)
|
||||||
struct zynqmp_qspi_regs *regs = priv->regs;
|
struct zynqmp_qspi_regs *regs = priv->regs;
|
||||||
u32 confr;
|
u32 confr;
|
||||||
|
|
||||||
debug("%s\n", __func__);
|
log_debug("%s, 0x%X\n", __func__, mode);
|
||||||
|
|
||||||
/* Set the SPI Clock phase and polarities */
|
/* Set the SPI Clock phase and polarities */
|
||||||
confr = readl(®s->confr);
|
confr = readl(®s->confr);
|
||||||
confr &= ~(GQSPI_CONFIG_CPHA_MASK | GQSPI_CONFIG_CPOL_MASK);
|
confr &= ~(GQSPI_CONFIG_CPHA_MASK | GQSPI_CONFIG_CPOL_MASK);
|
||||||
|
@ -461,16 +463,11 @@ static int zynqmp_qspi_fill_tx_fifo(struct zynqmp_qspi_priv *priv, u32 size)
|
||||||
u32 *buf = (u32 *)priv->tx_buf;
|
u32 *buf = (u32 *)priv->tx_buf;
|
||||||
u32 len = size;
|
u32 len = size;
|
||||||
|
|
||||||
debug("TxFIFO: 0x%x, size: 0x%x\n", readl(®s->isr),
|
|
||||||
size);
|
|
||||||
|
|
||||||
while (size) {
|
while (size) {
|
||||||
ret = wait_for_bit_le32(®s->isr, GQSPI_IXR_TXNFULL_MASK, 1,
|
ret = wait_for_bit_le32(®s->isr, GQSPI_IXR_TXNFULL_MASK, 1,
|
||||||
GQSPI_TIMEOUT, 1);
|
GQSPI_TIMEOUT, 1);
|
||||||
if (ret) {
|
if (ret)
|
||||||
printf("%s: Timeout\n", __func__);
|
return log_msg_ret("Timeout\n", ret);
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size >= 4) {
|
if (size >= 4) {
|
||||||
writel(*buf, ®s->txd0r);
|
writel(*buf, ®s->txd0r);
|
||||||
|
@ -501,10 +498,8 @@ static int zynqmp_qspi_fill_tx_fifo(struct zynqmp_qspi_priv *priv, u32 size)
|
||||||
|
|
||||||
ret = wait_for_bit_le32(®s->isr, GQSPI_IXR_TXFIFOEMPTY_MASK, 1,
|
ret = wait_for_bit_le32(®s->isr, GQSPI_IXR_TXFIFOEMPTY_MASK, 1,
|
||||||
GQSPI_TIMEOUT, 1);
|
GQSPI_TIMEOUT, 1);
|
||||||
if (ret) {
|
if (ret)
|
||||||
printf("%s: Timeout\n", __func__);
|
return log_msg_ret("Timeout\n", ret);
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
priv->tx_buf += len;
|
priv->tx_buf += len;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -516,6 +511,9 @@ static void zynqmp_qspi_genfifo_cmd(struct zynqmp_qspi_priv *priv)
|
||||||
u32 gen_fifo_cmd;
|
u32 gen_fifo_cmd;
|
||||||
u8 i, dummy_cycles, addr;
|
u8 i, dummy_cycles, addr;
|
||||||
|
|
||||||
|
log_debug("%s, opcode: 0x%0X, addr.nbytes: %d, dummy.mbytes: %d\r\n",
|
||||||
|
__func__, op->cmd.opcode, op->addr.nbytes, op->dummy.nbytes);
|
||||||
|
|
||||||
/* Send opcode */
|
/* Send opcode */
|
||||||
gen_fifo_cmd = zynqmp_qspi_bus_select(priv);
|
gen_fifo_cmd = zynqmp_qspi_bus_select(priv);
|
||||||
gen_fifo_cmd |= zynqmp_qspi_genfifo_mode(op->cmd.buswidth);
|
gen_fifo_cmd |= zynqmp_qspi_genfifo_mode(op->cmd.buswidth);
|
||||||
|
@ -532,8 +530,6 @@ static void zynqmp_qspi_genfifo_cmd(struct zynqmp_qspi_priv *priv)
|
||||||
gen_fifo_cmd |= GQSPI_GFIFO_TX;
|
gen_fifo_cmd |= GQSPI_GFIFO_TX;
|
||||||
gen_fifo_cmd |= addr;
|
gen_fifo_cmd |= addr;
|
||||||
|
|
||||||
debug("GFIFO_CMD_Cmd = 0x%x\n", gen_fifo_cmd);
|
|
||||||
|
|
||||||
zynqmp_qspi_fill_gen_fifo(priv, gen_fifo_cmd);
|
zynqmp_qspi_fill_gen_fifo(priv, gen_fifo_cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -583,6 +579,8 @@ static int zynqmp_qspi_genfifo_fill_tx(struct zynqmp_qspi_priv *priv)
|
||||||
u32 len;
|
u32 len;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
log_debug("%s, length: %d\r\n", __func__, priv->len);
|
||||||
|
|
||||||
gen_fifo_cmd = zynqmp_qspi_bus_select(priv);
|
gen_fifo_cmd = zynqmp_qspi_bus_select(priv);
|
||||||
gen_fifo_cmd |= zynqmp_qspi_genfifo_mode(priv->op->data.buswidth);
|
gen_fifo_cmd |= zynqmp_qspi_genfifo_mode(priv->op->data.buswidth);
|
||||||
gen_fifo_cmd |= GQSPI_GFIFO_TX | GQSPI_GFIFO_DATA_XFR_MASK;
|
gen_fifo_cmd |= GQSPI_GFIFO_TX | GQSPI_GFIFO_DATA_XFR_MASK;
|
||||||
|
@ -591,8 +589,6 @@ static int zynqmp_qspi_genfifo_fill_tx(struct zynqmp_qspi_priv *priv)
|
||||||
len = zynqmp_qspi_calc_exp(priv, &gen_fifo_cmd);
|
len = zynqmp_qspi_calc_exp(priv, &gen_fifo_cmd);
|
||||||
zynqmp_qspi_fill_gen_fifo(priv, gen_fifo_cmd);
|
zynqmp_qspi_fill_gen_fifo(priv, gen_fifo_cmd);
|
||||||
|
|
||||||
debug("GFIFO_CMD_TX:0x%x\n", gen_fifo_cmd);
|
|
||||||
|
|
||||||
if (gen_fifo_cmd & GQSPI_GFIFO_EXP_MASK)
|
if (gen_fifo_cmd & GQSPI_GFIFO_EXP_MASK)
|
||||||
ret = zynqmp_qspi_fill_tx_fifo(priv, 1 << len);
|
ret = zynqmp_qspi_fill_tx_fifo(priv, 1 << len);
|
||||||
else
|
else
|
||||||
|
@ -608,7 +604,6 @@ static int zynqmp_qspi_start_io(struct zynqmp_qspi_priv *priv,
|
||||||
u32 gen_fifo_cmd, u32 *buf)
|
u32 gen_fifo_cmd, u32 *buf)
|
||||||
{
|
{
|
||||||
u32 len;
|
u32 len;
|
||||||
u32 actuallen = priv->len;
|
|
||||||
u32 config_reg, ier, isr;
|
u32 config_reg, ier, isr;
|
||||||
u32 timeout = GQSPI_TIMEOUT;
|
u32 timeout = GQSPI_TIMEOUT;
|
||||||
struct zynqmp_qspi_regs *regs = priv->regs;
|
struct zynqmp_qspi_regs *regs = priv->regs;
|
||||||
|
@ -623,7 +618,7 @@ static int zynqmp_qspi_start_io(struct zynqmp_qspi_priv *priv,
|
||||||
else
|
else
|
||||||
priv->bytes_to_receive = len;
|
priv->bytes_to_receive = len;
|
||||||
zynqmp_qspi_fill_gen_fifo(priv, gen_fifo_cmd);
|
zynqmp_qspi_fill_gen_fifo(priv, gen_fifo_cmd);
|
||||||
debug("GFIFO_CMD_RX:0x%x\n", gen_fifo_cmd);
|
|
||||||
/* Manual start */
|
/* Manual start */
|
||||||
config_reg = readl(®s->confr);
|
config_reg = readl(®s->confr);
|
||||||
config_reg |= GQSPI_STRT_GEN_FIFO;
|
config_reg |= GQSPI_STRT_GEN_FIFO;
|
||||||
|
@ -652,13 +647,8 @@ static int zynqmp_qspi_start_io(struct zynqmp_qspi_priv *priv,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
debug("buf:0x%lx, rxbuf:0x%lx, *buf:0x%x len: 0x%x\n",
|
if (!timeout)
|
||||||
(unsigned long)buf, (unsigned long)priv->rx_buf,
|
return log_msg_retz("Timeout\n", timeout);
|
||||||
*buf, actuallen);
|
|
||||||
if (!timeout) {
|
|
||||||
printf("IO timeout: %d\n", readl(®s->isr));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -695,26 +685,18 @@ static int zynqmp_qspi_start_dma(struct zynqmp_qspi_priv *priv,
|
||||||
while (priv->len) {
|
while (priv->len) {
|
||||||
zynqmp_qspi_calc_exp(priv, &gen_fifo_cmd);
|
zynqmp_qspi_calc_exp(priv, &gen_fifo_cmd);
|
||||||
zynqmp_qspi_fill_gen_fifo(priv, gen_fifo_cmd);
|
zynqmp_qspi_fill_gen_fifo(priv, gen_fifo_cmd);
|
||||||
|
|
||||||
debug("GFIFO_CMD_RX:0x%x\n", gen_fifo_cmd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = wait_for_bit_le32(&dma_regs->dmaisr,
|
ret = wait_for_bit_le32(&dma_regs->dmaisr,
|
||||||
GQSPI_DMA_DST_I_STS_DONE, 1,
|
GQSPI_DMA_DST_I_STS_DONE, 1,
|
||||||
GQSPI_TIMEOUT, 1);
|
GQSPI_TIMEOUT, 1);
|
||||||
if (ret) {
|
if (ret)
|
||||||
printf("DMA Timeout:0x%x\n", readl(&dma_regs->dmaisr));
|
return log_msg_ret("Timeout:\n", ret);
|
||||||
return -ETIMEDOUT;
|
|
||||||
}
|
|
||||||
|
|
||||||
invalidate_dcache_range(addr, addr + size);
|
invalidate_dcache_range(addr, addr + size);
|
||||||
|
|
||||||
writel(GQSPI_DMA_DST_I_STS_DONE, &dma_regs->dmaisr);
|
writel(GQSPI_DMA_DST_I_STS_DONE, &dma_regs->dmaisr);
|
||||||
|
|
||||||
debug("buf:0x%lx, rxbuf:0x%lx, *buf:0x%x len: 0x%x\n",
|
|
||||||
(unsigned long)buf, (unsigned long)priv->rx_buf, *buf,
|
|
||||||
actuallen);
|
|
||||||
|
|
||||||
if (buf != priv->rx_buf)
|
if (buf != priv->rx_buf)
|
||||||
memcpy(priv->rx_buf, buf, actuallen);
|
memcpy(priv->rx_buf, buf, actuallen);
|
||||||
|
|
||||||
|
@ -731,6 +713,8 @@ static int zynqmp_qspi_genfifo_fill_rx(struct zynqmp_qspi_priv *priv)
|
||||||
u32 *buf;
|
u32 *buf;
|
||||||
u32 actuallen = priv->len;
|
u32 actuallen = priv->len;
|
||||||
|
|
||||||
|
log_debug("%s, length: %d\r\n", __func__, priv->len);
|
||||||
|
|
||||||
gen_fifo_cmd = zynqmp_qspi_bus_select(priv);
|
gen_fifo_cmd = zynqmp_qspi_bus_select(priv);
|
||||||
gen_fifo_cmd |= zynqmp_qspi_genfifo_mode(priv->op->data.buswidth);
|
gen_fifo_cmd |= zynqmp_qspi_genfifo_mode(priv->op->data.buswidth);
|
||||||
gen_fifo_cmd |= GQSPI_GFIFO_RX | GQSPI_GFIFO_DATA_XFR_MASK;
|
gen_fifo_cmd |= GQSPI_GFIFO_RX | GQSPI_GFIFO_DATA_XFR_MASK;
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
/*
|
/*
|
||||||
* Environment
|
* Environment
|
||||||
*/
|
*/
|
||||||
#define DEFAULT_ENV_IS_RW /* required for configuring default fdtfile= */
|
|
||||||
|
|
||||||
#ifdef CONFIG_MMC
|
#ifdef CONFIG_MMC
|
||||||
#define BOOT_TARGET_DEVICES_MMC(func, i) func(MMC, mmc, i)
|
#define BOOT_TARGET_DEVICES_MMC(func, i) func(MMC, mmc, i)
|
||||||
|
|
|
@ -976,13 +976,23 @@ const char *ofnode_read_chosen_string(const char *propname);
|
||||||
*/
|
*/
|
||||||
ofnode ofnode_get_chosen_node(const char *propname);
|
ofnode ofnode_get_chosen_node(const char *propname);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ofnode_read_baud() - get the baudrate from string value of chosen property
|
||||||
|
*
|
||||||
|
* This looks for stdout-path property within the /chosen node and parses its
|
||||||
|
* value to return baudrate.
|
||||||
|
*
|
||||||
|
* This only works with the control FDT.
|
||||||
|
*
|
||||||
|
* Return: baudrate value if found, else -ve error code
|
||||||
|
*/
|
||||||
|
int ofnode_read_baud(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ofnode_read_aliases_prop() - get the value of a aliases property
|
* ofnode_read_aliases_prop() - get the value of a aliases property
|
||||||
*
|
*
|
||||||
* This looks for a property within the /aliases node and returns its value
|
* This looks for a property within the /aliases node and returns its value
|
||||||
*
|
*
|
||||||
* This only works with the control FDT.
|
|
||||||
*
|
|
||||||
* @propname: Property name to look for
|
* @propname: Property name to look for
|
||||||
* @sizep: Returns size of property, or `FDT_ERR_...` error code if function
|
* @sizep: Returns size of property, or `FDT_ERR_...` error code if function
|
||||||
* returns NULL
|
* returns NULL
|
||||||
|
|
|
@ -28,13 +28,4 @@
|
||||||
#define VSC8531_FORCE_LED_OFF 14
|
#define VSC8531_FORCE_LED_OFF 14
|
||||||
#define VSC8531_FORCE_LED_ON 15
|
#define VSC8531_FORCE_LED_ON 15
|
||||||
|
|
||||||
#define VSC8531_RGMII_CLK_DELAY_0_2_NS 0
|
|
||||||
#define VSC8531_RGMII_CLK_DELAY_0_8_NS 1
|
|
||||||
#define VSC8531_RGMII_CLK_DELAY_1_1_NS 2
|
|
||||||
#define VSC8531_RGMII_CLK_DELAY_1_7_NS 3
|
|
||||||
#define VSC8531_RGMII_CLK_DELAY_2_0_NS 4
|
|
||||||
#define VSC8531_RGMII_CLK_DELAY_2_3_NS 5
|
|
||||||
#define VSC8531_RGMII_CLK_DELAY_2_6_NS 6
|
|
||||||
#define VSC8531_RGMII_CLK_DELAY_3_4_NS 7
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -21,7 +21,7 @@ env_t embedded_environment __UBOOT_ENV_SECTION__(environment) = {
|
||||||
{
|
{
|
||||||
#elif defined(DEFAULT_ENV_INSTANCE_STATIC)
|
#elif defined(DEFAULT_ENV_INSTANCE_STATIC)
|
||||||
static char default_environment[] = {
|
static char default_environment[] = {
|
||||||
#elif defined(DEFAULT_ENV_IS_RW)
|
#elif defined(CONFIG_DEFAULT_ENV_IS_RW)
|
||||||
char default_environment[] = {
|
char default_environment[] = {
|
||||||
#else
|
#else
|
||||||
const char default_environment[] = {
|
const char default_environment[] = {
|
||||||
|
@ -42,7 +42,7 @@ const char default_environment[] = {
|
||||||
#if defined(CONFIG_BOOTDELAY)
|
#if defined(CONFIG_BOOTDELAY)
|
||||||
"bootdelay=" __stringify(CONFIG_BOOTDELAY) "\0"
|
"bootdelay=" __stringify(CONFIG_BOOTDELAY) "\0"
|
||||||
#endif
|
#endif
|
||||||
#if defined(CONFIG_BAUDRATE) && (CONFIG_BAUDRATE >= 0)
|
#if !defined(CONFIG_OF_SERIAL_BAUD) && defined(CONFIG_BAUDRATE) && (CONFIG_BAUDRATE >= 0)
|
||||||
"baudrate=" __stringify(CONFIG_BAUDRATE) "\0"
|
"baudrate=" __stringify(CONFIG_BAUDRATE) "\0"
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_LOADS_ECHO
|
#ifdef CONFIG_LOADS_ECHO
|
||||||
|
@ -118,6 +118,10 @@ const char default_environment[] = {
|
||||||
#endif
|
#endif
|
||||||
#ifdef CFG_EXTRA_ENV_SETTINGS
|
#ifdef CFG_EXTRA_ENV_SETTINGS
|
||||||
CFG_EXTRA_ENV_SETTINGS
|
CFG_EXTRA_ENV_SETTINGS
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_OF_SERIAL_BAUD
|
||||||
|
/* Padding for baudrate at the end when environment is writable */
|
||||||
|
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
#endif
|
#endif
|
||||||
"\0"
|
"\0"
|
||||||
#else /* CONFIG_USE_DEFAULT_ENV_FILE */
|
#else /* CONFIG_USE_DEFAULT_ENV_FILE */
|
||||||
|
|
|
@ -89,7 +89,7 @@ typedef struct environment_s {
|
||||||
extern env_t embedded_environment;
|
extern env_t embedded_environment;
|
||||||
#endif /* ENV_IS_EMBEDDED */
|
#endif /* ENV_IS_EMBEDDED */
|
||||||
|
|
||||||
#ifdef DEFAULT_ENV_IS_RW
|
#ifdef CONFIG_DEFAULT_ENV_IS_RW
|
||||||
extern char default_environment[];
|
extern char default_environment[];
|
||||||
#else
|
#else
|
||||||
extern const char default_environment[];
|
extern const char default_environment[];
|
||||||
|
|
|
@ -339,6 +339,13 @@ int serial_setconfig(struct udevice *dev, uint config);
|
||||||
*/
|
*/
|
||||||
int serial_getinfo(struct udevice *dev, struct serial_device_info *info);
|
int serial_getinfo(struct udevice *dev, struct serial_device_info *info);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fetch_baud_from_dtb() - Fetch the baudrate value from DT
|
||||||
|
*
|
||||||
|
* Return: baudrate if OK, -ve on error
|
||||||
|
*/
|
||||||
|
int fetch_baud_from_dtb(void);
|
||||||
|
|
||||||
void atmel_serial_initialize(void);
|
void atmel_serial_initialize(void);
|
||||||
void mcf_serial_initialize(void);
|
void mcf_serial_initialize(void);
|
||||||
void mpc85xx_serial_initialize(void);
|
void mpc85xx_serial_initialize(void);
|
||||||
|
|
|
@ -29,6 +29,7 @@ static int dm_test_serial(struct unit_test_state *uts)
|
||||||
&dev_serial));
|
&dev_serial));
|
||||||
|
|
||||||
ut_assertok(serial_tstc());
|
ut_assertok(serial_tstc());
|
||||||
|
ut_asserteq(115200, fetch_baud_from_dtb());
|
||||||
/*
|
/*
|
||||||
* test with default config which is the only one supported by
|
* test with default config which is the only one supported by
|
||||||
* sandbox_serial driver
|
* sandbox_serial driver
|
||||||
|
|
Loading…
Add table
Reference in a new issue