I want to create a memory like like thisone master, two slaves 0x40000000 - 0x417fffff (24MB) Slave 1 0x41800000 - 0x41fffff (8MB) Slave 2 I create a address span of 24MB (0x1800000), and see the correct values in the memory map. But I get the following error: Error: gdb_rapidio.io_write_master: gdb_srio_swap_inb_wr_if_nrt.wr_slave (0x41800000..0x41ffffff) overlaps gdb_srio_inbound_wr_if_rt.wr_slave (0x40000000..0x41ffffff) I don't know why? Can someone explain what is wrong? With kind regards, John
Hi, normally address decoding is done by power of 2. I suppose you can not define an address range of 24M respectively this address span is converted to 32 MB which then occupies the address range from 0x40000000 - 0x41FFFFFF. This memory area then overlaps the 8MB address span. You have to move the address span for slave 2 behind the 32 MB boundary.Regards, HJS
That 24M address span is really a 32M space. So that 8M location can be placed at 0x42000000 to avoid this.Like HJS said, spans are usually powers of 2. In the case of that 24M slave port they probably added a property that tells the tools that only the first 24M of the 32M span is valid. So if you shoved the 8M slave directly after the 24M slave then the decoder will not work properly which is what the tools are trying to tell you.