diff options
author | Jiri Gaisler <jiri@gaisler.se> | 2020-11-30 22:52:27 +0100 |
---|---|---|
committer | Jiri Gaisler <jiri@gaisler.se> | 2020-12-01 16:44:49 +0100 |
commit | 11154be7bec2967b869fe385ab1df93a27efd82c (patch) | |
tree | 955b1c03b0ea4bd3bf6d36af9ec0431c27391401 /grlib.h | |
parent | Add %asr22/23 support to leon3 (diff) | |
download | sis-11154be7bec2967b869fe385ab1df93a27efd82c.tar.bz2 |
Make grlib IP cores more modular and move them to grlib.c
Diffstat (limited to 'grlib.h')
-rw-r--r-- | grlib.h | 39 |
1 files changed, 39 insertions, 0 deletions
@@ -52,6 +52,9 @@ #define APBPP_START 0x800FF000 #define APBPP_END 0x800FFFFF +#define ROM_MASKPP ((~ROM_MASK >> 20) & 0xFFF) +#define RAM_MASKPP ((~RAM_MASK >> 20) & 0xFFF) + extern int grlib_apbpp_add (uint32 id, uint32 addr); extern int grlib_ahbmpp_add (uint32 id); extern int grlib_ahbspp_add (uint32 id, uint32 addr1, uint32 addr2, @@ -60,3 +63,39 @@ extern uint32 grlib_ahbpnp_read (uint32 addr); extern uint32 grlib_apbpnp_read (uint32 addr); extern void grlib_init (); extern uint32 rvtimer_read (int address, int cpu); + +struct grlib_ipcore +{ + void (*init) (void); + void (*reset) (void); + int (*read) (uint32 addr, uint32 * data); + int (*write) (uint32 addr, uint32 * data, uint32 size); + void (*add) (int irq, uint32 addr, uint32 mask); +}; + +struct grlib_buscore +{ + const struct grlib_ipcore *core; + uint32 start; + uint32 end; + uint32 mask; +}; + +extern void grlib_ahbs_add (const struct grlib_ipcore *core, int irq, + uint32 addr, uint32 mask); +extern void grlib_ahbm_add (const struct grlib_ipcore *core, int irq); +extern void grlib_apb_add (const struct grlib_ipcore *core, int irq, + uint32 addr, uint32 mask); +extern int grlib_read (uint32 addr, uint32 * data); +extern int grlib_write (uint32 addr, uint32 * data, uint32 sz); +extern void grlib_set_irq (int32 level); +extern void grlib_store_bytes (char *mem, uint32 waddr, uint32 * data, + int32 sz); +extern void grlib_boot_init (void); +extern void grlib_reset (void); +extern void apbuart_init_stdio (void); +extern void apbuart_restore_stdio (void); +extern void apbuart_close_port (void); +extern void apbuart_flush (void); +extern const struct grlib_ipcore gptimer, irqmp, apbuart, apbmst, + greth, leon3s, srctrl; |