src/jtag/drivers/ep93xx: fix GCC 12 warning
authorAntonio Borneo <borneo.antonio@gmail.com>
Thu, 8 Sep 2022 12:37:55 +0000 (14:37 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Tue, 13 Sep 2022 22:16:07 +0000 (22:16 +0000)
New GCC reports 5 warning:

src/jtag/drivers/ep93xx.c: In function 'set_gonk_mode':
src/jtag/drivers/ep93xx.c:123:47: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
  123 |         devicecfg = *((volatile int *)(syscon + 0x80));
      |                                               ^
src/jtag/drivers/ep93xx.c:124:35: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
  124 |         *((volatile int *)(syscon + 0xc0)) = 0xaa;
      |                                   ^
src/jtag/drivers/ep93xx.c:125:35: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
  125 |         *((volatile int *)(syscon + 0x80)) = devicecfg | 0x08000000;
      |                                   ^
src/jtag/drivers/ep93xx.c: In function 'ep93xx_init':
src/jtag/drivers/ep93xx.c:182:46: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
  182 |         gpio_data_register = gpio_controller + 0x08;
      |                                              ^
src/jtag/drivers/ep93xx.c:183:56: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
  183 |         gpio_data_direction_register = gpio_controller + 0x18;
      |                                                        ^

Change pointer type to allow pointer arithmetic.

Change-Id: Idd78a7156bdf99df2624043e924b8e54a0588ace
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/7180
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
src/jtag/drivers/ep93xx.c

index e7c993b3bc7945af076cee7e02c53ee67eabe519..5130bd4228f5535656d87b391d31d1e1d212089f 100644 (file)
@@ -24,7 +24,7 @@
 
 static uint8_t output_value;
 static int dev_mem_fd;
-static void *gpio_controller;
+static uint8_t *gpio_controller;
 static volatile uint8_t *gpio_data_register;
 static volatile uint8_t *gpio_data_direction_register;
 
@@ -110,19 +110,16 @@ static int ep93xx_reset(int trst, int srst)
 
 static int set_gonk_mode(void)
 {
-       void *syscon;
-       uint32_t devicecfg;
-
-       syscon = mmap(NULL, 4096, PROT_READ | PROT_WRITE,
+       void *syscon = mmap(NULL, 4096, PROT_READ | PROT_WRITE,
                        MAP_SHARED, dev_mem_fd, 0x80930000);
        if (syscon == MAP_FAILED) {
                LOG_ERROR("mmap: %s", strerror(errno));
                return ERROR_JTAG_INIT_FAILED;
        }
 
-       devicecfg = *((volatile int *)(syscon + 0x80));
-       *((volatile int *)(syscon + 0xc0)) = 0xaa;
-       *((volatile int *)(syscon + 0x80)) = devicecfg | 0x08000000;
+       uint32_t devicecfg = *((volatile uint32_t *)((uintptr_t)syscon + 0x80));
+       *((volatile uint32_t *)((uintptr_t)syscon + 0xc0)) = 0xaa;
+       *((volatile uint32_t *)((uintptr_t)syscon + 0x80)) = devicecfg | 0x08000000;
 
        munmap(syscon, 4096);