[reggen] Use Base address to calculate window
This is related to #169
diff --git a/hw/ip/flash_ctrl/sw/flash_ctrl_regs.h b/hw/ip/flash_ctrl/sw/flash_ctrl_regs.h
index 2cc2c81..54dba3e 100644
--- a/hw/ip/flash_ctrl/sw/flash_ctrl_regs.h
+++ b/hw/ip/flash_ctrl/sw/flash_ctrl_regs.h
@@ -179,11 +179,11 @@
#define FLASH_CTRL_FIFO_LVL_RD_OFFSET 8
// Memory area: Flash program fifo.
-#define FLASH_CTRL_PROG_FIFO(base) ((base) + 0x4c)
+#define FLASH_CTRL_PROG_FIFO(id) (FLASH_CTRL##id##_BASE_ADDR + 0x4c)
#define FLASH_CTRL_PROG_FIFO_SIZE_WORDS 1
#define FLASH_CTRL_PROG_FIFO_SIZE_BYTES 4
// Memory area: Flash read fifo.
-#define FLASH_CTRL_RD_FIFO(base) ((base) + 0x50)
+#define FLASH_CTRL_RD_FIFO(id) (FLASH_CTRL##id##_BASE_ADDR + 0x50)
#define FLASH_CTRL_RD_FIFO_SIZE_WORDS 1
#define FLASH_CTRL_RD_FIFO_SIZE_BYTES 4
#endif // _FLASH_CTRL_REG_DEFS_
diff --git a/hw/ip/hmac/sw/hmac_regs.h b/hw/ip/hmac/sw/hmac_regs.h
index bb2b093..319b059 100644
--- a/hw/ip/hmac/sw/hmac_regs.h
+++ b/hw/ip/hmac/sw/hmac_regs.h
@@ -102,7 +102,7 @@
#define HMAC_MSG_LENGTH_UPPER(id) (HMAC##id##_BASE_ADDR + 0x60)
// Memory area: Message FIFO. Any address starts from offset 0x800 to 0xFFF
-#define HMAC_MSG_FIFO(base) ((base) + 0x800)
+#define HMAC_MSG_FIFO(id) (HMAC##id##_BASE_ADDR + 0x800)
#define HMAC_MSG_FIFO_SIZE_WORDS 512
#define HMAC_MSG_FIFO_SIZE_BYTES 2048
#endif // _HMAC_REG_DEFS_
diff --git a/hw/ip/spi_device/sw/spi_device_regs.h b/hw/ip/spi_device/sw/spi_device_regs.h
index 6b340d4..565d999 100644
--- a/hw/ip/spi_device/sw/spi_device_regs.h
+++ b/hw/ip/spi_device/sw/spi_device_regs.h
@@ -100,7 +100,7 @@
#define SPI_DEVICE_TXF_ADDR_LIMIT_OFFSET 16
// Memory area: SPI internal 2kB buffer.
-#define SPI_DEVICE_BUFFER(base) ((base) + 0x800)
+#define SPI_DEVICE_BUFFER(id) (SPI_DEVICE##id##_BASE_ADDR + 0x800)
#define SPI_DEVICE_BUFFER_SIZE_WORDS 512
#define SPI_DEVICE_BUFFER_SIZE_BYTES 2048
#endif // _SPI_DEVICE_REG_DEFS_
diff --git a/util/reggen/gen_cheader.py b/util/reggen/gen_cheader.py
index 3fd3417..84ad28e 100644
--- a/util/reggen/gen_cheader.py
+++ b/util/reggen/gen_cheader.py
@@ -54,16 +54,15 @@
mask = field['bitinfo'][0] >> fieldlsb
genout(outstr,
'#define ' + dname + '_MASK ' + hex(mask) + '\n')
- genout(
- outstr,
- '#define ' + dname + '_OFFSET ' + str(fieldlsb) + '\n')
+ genout(outstr,
+ '#define ' + dname + '_OFFSET ' + str(fieldlsb) + '\n')
if 'enum' in field:
for enum in field['enum']:
ename = as_define(enum['name'])
genout(
outstr,
- '#define ' + defname + '_' + as_define(field['name'])
- + '_' + ename + ' ' + enum['value'] + '\n')
+ '#define ' + defname + '_' + as_define(field['name']) +
+ '_' + ename + ' ' + enum['value'] + '\n')
genout(outstr, '\n')
return
@@ -75,8 +74,8 @@
genout(outstr, '// Memory area: ' + clean_desc(win['desc']) + '\n')
defname = as_define(comp + '_' + wname)
genout(
- outstr,
- '#define ' + defname + '(base) ((base) + ' + hex(offset) + ')\n')
+ outstr, '#define ' + defname + '(id) (' + as_define(comp) +
+ '##id##_BASE_ADDR + ' + hex(offset) + ')\n')
items = int(win['items'])
genout(outstr, '#define ' + defname + '_SIZE_WORDS ' + str(items) + '\n')
items = items * (regwidth // 8)