diff options
author | Tomas Vanek <vanekt@fbl.cz> | 2023-05-12 12:04:22 +0200 |
---|---|---|
committer | Tomas Vanek <vanekt@fbl.cz> | 2023-05-24 05:25:54 +0000 |
commit | b41b368255d53d9561851900eeeba38b12720a82 (patch) | |
tree | f6981349927eabfddfd6cc7e428a7dd83f0f9fa3 | |
parent | c164906420521546849d03a26977fb91838aca8e (diff) | |
download | riscv-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>
-rw-r--r-- | src/jtag/drivers/bcm2835gpio.c | 16 |
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]", }, |