diff --git a/hw/omap.h b/hw/omap.h index c227a82b2c12dac21854f01c1cdf78997ef0d1e9..00a0ea9042b13129f356162d442ebc80b6cac11e 100644 --- a/hw/omap.h +++ b/hw/omap.h @@ -93,6 +93,8 @@ struct omap_target_agent_s *omap_l4ta_get( int cs); target_phys_addr_t omap_l4_attach(struct omap_target_agent_s *ta, int region, int iotype); +target_phys_addr_t omap_l4_region_base(struct omap_target_agent_s *ta, + int region); int l4_register_io_memory(CPUReadMemoryFunc * const *mem_read, CPUWriteMemoryFunc * const *mem_write, void *opaque); diff --git a/hw/omap_l4.c b/hw/omap_l4.c index 4af0ca8ea611549151f61dfd686ec680d820f47e..59c84b19a2369a6ea5ba5c5315ea3508c0ff5d9a 100644 --- a/hw/omap_l4.c +++ b/hw/omap_l4.c @@ -146,6 +146,12 @@ struct omap_l4_s *omap_l4_init(target_phys_addr_t base, int ta_num) return bus; } +target_phys_addr_t omap_l4_region_base(struct omap_target_agent_s *ta, + int region) +{ + return ta->bus->base + ta->start[region].offset; +} + static uint32_t omap_l4ta_read(void *opaque, target_phys_addr_t addr) { struct omap_target_agent_s *s = (struct omap_target_agent_s *) opaque;