]> git.gag.com Git - fw/openocd/commitdiff
jtag/drivers/bcm2835gpio: bcm2835gpio_init has been updated
authortscn92 <tscn@kamstrup.com>
Mon, 6 Apr 2020 14:05:08 +0000 (16:05 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 6 Jun 2020 17:01:57 +0000 (18:01 +0100)
For jtag/drivers/bcm2835gpio dev_mem_fd has been updated within
bcm2835gpio_init with the add on of gpio to mem. This permits the
access to memory of GPIO without the need for root access.
For failed attempt, a fallback to original memory follows.
It should be noted that any printed error is relative to original
memory ("dev/mem").
Tested on EFM32GG12B390F board

Change-Id: I4540bdf62fb3b91a51221e277881adfae138dcc5
Signed-off-by: tscn92 <tscn@kamstrup.com>
Reviewed-on: http://openocd.zylin.com/5568
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
src/jtag/drivers/bcm2835gpio.c

index bbc87d3dd373c1cf67310d986e2f3084a79cbb1c..df557c5c63826a33543e8f424522cf79d9638440 100644 (file)
@@ -466,7 +466,11 @@ static int bcm2835gpio_init(void)
                return ERROR_JTAG_INIT_FAILED;
        }
 
-       dev_mem_fd = open("/dev/mem", O_RDWR | O_SYNC);
+       dev_mem_fd = open("/dev/gpiomem", O_RDWR | O_SYNC);
+       if (dev_mem_fd < 0) {
+               LOG_DEBUG("Cannot open /dev/gpiomem, fallback to /dev/mem");
+               dev_mem_fd = open("/dev/mem", O_RDWR | O_SYNC);
+       }
        if (dev_mem_fd < 0) {
                perror("open");
                return ERROR_JTAG_INIT_FAILED;