This is an automated email from Gerrit.

"Tomas Vanek <van...@fbl.cz>" just uploaded a new patch set to Gerrit, which 
you can find at https://review.openocd.org/c/openocd/+/8333

-- gerrit

commit fbdc058cd2e518efa009f187bf70f468c801820c
Author: Tomas Vanek <van...@fbl.cz>
Date:   Tue Jun 11 16:40:29 2024 +0200

    tcl/interface: support for Raspberry Pi 5
    
    Make sure raspberrypi-native.cfg cannot be used on RPi5.
    
    Add raspberrypi5-gpiod.cfg which uses linuxgpiod adapter driver.
    Issue a warning if PCIe is in power save mode.
    
    While on it, re-format warnings issued from Tcl to look similar
    to LOG_WARNING() output.
    
    Change-Id: If19b0350bd5fff83d9a0c65999e33b161fb6957a
    Signed-off-by: Tomas Vanek <van...@fbl.cz>

diff --git a/tcl/interface/raspberrypi-native.cfg 
b/tcl/interface/raspberrypi-native.cfg
index 7224723d63..c80f90a146 100644
--- a/tcl/interface/raspberrypi-native.cfg
+++ b/tcl/interface/raspberrypi-native.cfg
@@ -37,9 +37,9 @@ proc get_max_cpu_clock { default } {
                return $clock
        }
 
-       echo "WARNING: Host CPU clock unknown."
-       echo "WARNING: Using the highest possible value $default kHz as a safe 
default."
-       echo "WARNING: Expect JTAG/SWD clock significantly slower than 
requested."
+       echo "Warn : Host CPU clock unknown."
+       echo "Warn : Using the highest possible value $default kHz as a safe 
default."
+       echo "Warn : Expect JTAG/SWD clock significantly slower than requested."
 
        return $default
 }
@@ -56,9 +56,13 @@ if {[string match *bcm2711* $compat]} {
 } elseif {[string match *bcm2835* $compat] || [string match *bcm2708* 
$compat]} {
        set clocks_per_timing_loop 6
        set speed_offset 32
+} elseif {[string match *bcm2712* $compat]} {
+       echo "Error: Raspberrypi Pi 5 has moved GPIOs to PCIe connected RP1 
chip."
+       echo "Error: Native GPIO handling is not supported, use 
'raspberrypi5-gpiod.cfg'"
+       shutdown
 } else {
        set speed_offset 32
-       echo "WARNING: Unknown type of the host SoC. Expect JTAG/SWD clock 
slower than requested."
+       echo "Warn : Unknown type of the host SoC. Expect JTAG/SWD clock slower 
than requested."
 }
 
 set clock [get_max_cpu_clock 2000000]
diff --git a/tcl/interface/raspberrypi5-gpiod.cfg 
b/tcl/interface/raspberrypi5-gpiod.cfg
new file mode 100644
index 0000000000..ac419b4186
--- /dev/null
+++ b/tcl/interface/raspberrypi5-gpiod.cfg
@@ -0,0 +1,28 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Config for Raspberry Pi used as a bitbang adapter.
+# https://www.raspberrypi.com/documentation/computers/raspberry-pi.html
+
+# Raspberry Pi 5 is not compatible with bcm2835gpio native GPIO driver.
+# linuxgpiod driver without configurable adapter speed runs at approximately
+# 800 kHz
+
+adapter driver linuxgpiod
+
+proc read_file { name } {
+       if {[catch {open $name r} fd]} {
+               return ""
+       }
+       set result [read $fd]
+       close $fd
+       return $result
+}
+
+set pcie_aspm [read_file /sys/module/pcie_aspm/parameters/policy]
+# escaping [ ] characters in string match pattern does not work in Jim-Tcl
+if {![string match "*<performance>*" [string map { "\[" < "\]" > } 
$pcie_aspm]]} {
+       echo "Warn : Switch PCIe power saving off or the first couple of pulses 
gets clocked as fast as 20 MHz"
+       echo "Warn : Issue 'echo performance | sudo tee 
/sys/module/pcie_aspm/parameters/policy'"
+}
+
+source [find interface/raspberrypi-gpio-connector.cfg]

-- 

Reply via email to