aboutsummaryrefslogtreecommitdiff
path: root/src/jtag
diff options
context:
space:
mode:
authorTomas Vanek <vanekt@fbl.cz>2023-05-12 12:04:22 +0200
committerTomas Vanek <vanekt@fbl.cz>2023-05-24 05:25:54 +0000
commitb41b368255d53d9561851900eeeba38b12720a82 (patch)
treef6981349927eabfddfd6cc7e428a7dd83f0f9fa3 /src/jtag
parentc164906420521546849d03a26977fb91838aca8e (diff)
downloadriscv-openocd-b41b368255d53d9561851900eeeba38b12720a82.zip
riscv-openocd-b41b368255d53d9561851900eeeba38b12720a82.tar.gz
riscv-openocd-b41b368255d53d9561851900eeeba38b12720a82.tar.bz2
jtag/drivers/bcm2835gpio: extend peripheral_base to off_t
Raspberry Pi 4 with 64-bit kernel and arm_peri_high=1 config.txt parameter needs peripheral_base 0x47e000000, uint32_t is not enough. Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Change-Id: Icedd084e2916657fa4478d452a5eb1e84a45c281 Reviewed-on: https://review.openocd.org/c/openocd/+/7685 Tested-by: jenkins Reviewed-by: Jonathan Bell <jonathan@raspberrypi.com> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'src/jtag')
-rw-r--r--src/jtag/drivers/bcm2835gpio.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/jtag/drivers/bcm2835gpio.c b/src/jtag/drivers/bcm2835gpio.c
index 16c76cd..c723860 100644
--- a/src/jtag/drivers/bcm2835gpio.c
+++ b/src/jtag/drivers/bcm2835gpio.c
@@ -19,7 +19,7 @@
#include <sys/mman.h>
-static uint32_t bcm2835_peri_base = 0x20000000;
+static off_t bcm2835_peri_base = 0x20000000;
#define BCM2835_GPIO_BASE (bcm2835_peri_base + 0x200000) /* GPIO controller */
#define BCM2835_PADS_GPIO_0_27 (bcm2835_peri_base + 0x100000)
@@ -302,11 +302,15 @@ COMMAND_HANDLER(bcm2835gpio_handle_speed_coeffs)
COMMAND_HANDLER(bcm2835gpio_handle_peripheral_base)
{
- if (CMD_ARGC == 1)
- COMMAND_PARSE_NUMBER(u32, CMD_ARGV[0], bcm2835_peri_base);
+ uint64_t tmp_base;
+ if (CMD_ARGC == 1) {
+ COMMAND_PARSE_NUMBER(u64, CMD_ARGV[0], tmp_base);
+ bcm2835_peri_base = (off_t)tmp_base;
+ }
- command_print(CMD, "BCM2835 GPIO: peripheral_base = 0x%08x",
- bcm2835_peri_base);
+ tmp_base = bcm2835_peri_base;
+ command_print(CMD, "BCM2835 GPIO: peripheral_base = 0x%08" PRIu64,
+ tmp_base);
return ERROR_OK;
}
@@ -322,7 +326,7 @@ static const struct command_registration bcm2835gpio_subcommand_handlers[] = {
.name = "peripheral_base",
.handler = &bcm2835gpio_handle_peripheral_base,
.mode = COMMAND_CONFIG,
- .help = "peripheral base to access GPIOs (RPi1 0x20000000, RPi2 0x3F000000).",
+ .help = "peripheral base to access GPIOs, not needed with /dev/gpiomem.",
.usage = "[base]",
},