U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] arm: zynqmp: Initialize some registers at boot
@ 2024-09-05 17:18 Sean Anderson
  2024-09-05 17:18 ` [PATCH v2 1/2] zynqmp: Disable secure access for boot devices Sean Anderson
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Sean Anderson @ 2024-09-05 17:18 UTC (permalink / raw)
  To: Michal Simek, u-boot; +Cc: Tom Rini, Sean Anderson

These patches are independent in intent, but they modify adjacent
lines so I have sent them as a series.

Changes in v2:
- Don't set reserved bits in AXI_RPRTCN, since QSPI doesn't use ARPROT

Sean Anderson (2):
  zynqmp: Disable secure access for boot devices
  arm: zynqmp: Enable non-invasive CCI-400 PMU debug

 arch/arm/mach-zynqmp/include/mach/hardware.h | 5 +++++
 board/xilinx/zynqmp/zynqmp.c                 | 8 ++++++++
 2 files changed, 13 insertions(+)

-- 
2.35.1.1320.gc452695387.dirty


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2 1/2] zynqmp: Disable secure access for boot devices
  2024-09-05 17:18 [PATCH v2 0/2] arm: zynqmp: Initialize some registers at boot Sean Anderson
@ 2024-09-05 17:18 ` Sean Anderson
  2024-09-05 17:18 ` [PATCH v2 2/2] arm: zynqmp: Enable non-invasive CCI-400 PMU debug Sean Anderson
  2024-09-06 10:08 ` [PATCH v2 0/2] arm: zynqmp: Initialize some registers at boot Michal Simek
  2 siblings, 0 replies; 4+ messages in thread
From: Sean Anderson @ 2024-09-05 17:18 UTC (permalink / raw)
  To: Michal Simek, u-boot; +Cc: Tom Rini, Sean Anderson

Boot devices (QSPI, MMC, NAND, and Ethernet) use secure access for DMA
by default. As this causes problems when using the SMMU [1], configure
them for normal access instead.

[1] https://support.xilinx.com/s/article/72164

Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
---

Changes in v2:
- Don't set reserved bits in AXI_RPRTCN, since QSPI doesn't use ARPROT

 arch/arm/mach-zynqmp/include/mach/hardware.h | 2 ++
 board/xilinx/zynqmp/zynqmp.c                 | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/arch/arm/mach-zynqmp/include/mach/hardware.h b/arch/arm/mach-zynqmp/include/mach/hardware.h
index 8cb6494e52c..f1514d6a869 100644
--- a/arch/arm/mach-zynqmp/include/mach/hardware.h
+++ b/arch/arm/mach-zynqmp/include/mach/hardware.h
@@ -63,6 +63,8 @@ struct crlapb_regs {
 
 #define crlapb_base ((struct crlapb_regs *)ZYNQMP_CRL_APB_BASEADDR)
 
+#define ZYNQMP_IOU_SECURE_SLCR 0xFF240000
+
 #define ZYNQMP_IOU_SCNTR_SECURE	0xFF260000
 #define ZYNQMP_IOU_SCNTR_COUNTER_CONTROL_REGISTER_EN	0x1
 #define ZYNQMP_IOU_SCNTR_COUNTER_CONTROL_REGISTER_HDBG	0x2
diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
index e6331c0e4d8..56e3b36ca99 100644
--- a/board/xilinx/zynqmp/zynqmp.c
+++ b/board/xilinx/zynqmp/zynqmp.c
@@ -72,6 +72,10 @@ int __maybe_unused psu_uboot_init(void)
 	writel(ZYNQMP_PS_SYSMON_ANALOG_BUS_VAL,
 	       ZYNQMP_AMS_PS_SYSMON_ANALOG_BUS);
 
+	/* Disable secure access for boot devices */
+	writel(0x04920492, ZYNQMP_IOU_SECURE_SLCR);
+	writel(0x00920492, ZYNQMP_IOU_SECURE_SLCR + 4);
+
 	/* Delay is required for clocks to be propagated */
 	udelay(1000000);
 	
-- 
2.35.1.1320.gc452695387.dirty


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] arm: zynqmp: Enable non-invasive CCI-400 PMU debug
  2024-09-05 17:18 [PATCH v2 0/2] arm: zynqmp: Initialize some registers at boot Sean Anderson
  2024-09-05 17:18 ` [PATCH v2 1/2] zynqmp: Disable secure access for boot devices Sean Anderson
@ 2024-09-05 17:18 ` Sean Anderson
  2024-09-06 10:08 ` [PATCH v2 0/2] arm: zynqmp: Initialize some registers at boot Michal Simek
  2 siblings, 0 replies; 4+ messages in thread
From: Sean Anderson @ 2024-09-05 17:18 UTC (permalink / raw)
  To: Michal Simek, u-boot; +Cc: Tom Rini, Sean Anderson, Michal Simek

Set NIDEN, enabling non-invasive debug for the CCI-400 PMU. Otherwise,
the PMU is effectively disabled.

Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
Reviewed-by: Michal Simek <michal.simek@amd.com>
---

(no changes since v1)

 arch/arm/mach-zynqmp/include/mach/hardware.h | 3 +++
 board/xilinx/zynqmp/zynqmp.c                 | 4 ++++
 2 files changed, 7 insertions(+)

diff --git a/arch/arm/mach-zynqmp/include/mach/hardware.h b/arch/arm/mach-zynqmp/include/mach/hardware.h
index f1514d6a869..51eab3509b8 100644
--- a/arch/arm/mach-zynqmp/include/mach/hardware.h
+++ b/arch/arm/mach-zynqmp/include/mach/hardware.h
@@ -128,6 +128,9 @@ struct crfapb_regs {
 
 #define crfapb_base ((struct crfapb_regs *)ZYNQMP_CRF_APB_BASEADDR)
 
+#define ZYNQMP_CCI_REG_CCI_MISC_CTRL	0xFD5E0040
+#define ZYNQMP_CCI_REG_CCI_MISC_CTRL_NIDEN	BIT(1)
+
 #define ZYNQMP_APU_BASEADDR	0xFD5C0000
 
 struct apu_regs {
diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
index 56e3b36ca99..20a675c010d 100644
--- a/board/xilinx/zynqmp/zynqmp.c
+++ b/board/xilinx/zynqmp/zynqmp.c
@@ -76,6 +76,10 @@ int __maybe_unused psu_uboot_init(void)
 	writel(0x04920492, ZYNQMP_IOU_SECURE_SLCR);
 	writel(0x00920492, ZYNQMP_IOU_SECURE_SLCR + 4);
 
+	/* Enable CCI PMU events */
+	writel(ZYNQMP_CCI_REG_CCI_MISC_CTRL_NIDEN,
+	       ZYNQMP_CCI_REG_CCI_MISC_CTRL);
+
 	/* Delay is required for clocks to be propagated */
 	udelay(1000000);
 	
-- 
2.35.1.1320.gc452695387.dirty


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 0/2] arm: zynqmp: Initialize some registers at boot
  2024-09-05 17:18 [PATCH v2 0/2] arm: zynqmp: Initialize some registers at boot Sean Anderson
  2024-09-05 17:18 ` [PATCH v2 1/2] zynqmp: Disable secure access for boot devices Sean Anderson
  2024-09-05 17:18 ` [PATCH v2 2/2] arm: zynqmp: Enable non-invasive CCI-400 PMU debug Sean Anderson
@ 2024-09-06 10:08 ` Michal Simek
  2 siblings, 0 replies; 4+ messages in thread
From: Michal Simek @ 2024-09-06 10:08 UTC (permalink / raw)
  To: Sean Anderson, Michal Simek, u-boot; +Cc: Tom Rini



On 9/5/24 19:18, Sean Anderson wrote:
> CAUTION: This message has originated from an External Source. Please use proper judgment and caution when opening attachments, clicking links, or responding to this email.
> 
> 
> These patches are independent in intent, but they modify adjacent
> lines so I have sent them as a series.
> 
> Changes in v2:
> - Don't set reserved bits in AXI_RPRTCN, since QSPI doesn't use ARPROT
> 
> Sean Anderson (2):
>    zynqmp: Disable secure access for boot devices
>    arm: zynqmp: Enable non-invasive CCI-400 PMU debug
> 
>   arch/arm/mach-zynqmp/include/mach/hardware.h | 5 +++++
>   board/xilinx/zynqmp/zynqmp.c                 | 8 ++++++++
>   2 files changed, 13 insertions(+)
> 
> --
> 2.35.1.1320.gc452695387.dirty
> 

Applied.
M

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-09-06 10:08 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-05 17:18 [PATCH v2 0/2] arm: zynqmp: Initialize some registers at boot Sean Anderson
2024-09-05 17:18 ` [PATCH v2 1/2] zynqmp: Disable secure access for boot devices Sean Anderson
2024-09-05 17:18 ` [PATCH v2 2/2] arm: zynqmp: Enable non-invasive CCI-400 PMU debug Sean Anderson
2024-09-06 10:08 ` [PATCH v2 0/2] arm: zynqmp: Initialize some registers at boot Michal Simek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox