Question 1: When REMAP [0]=1, is the data read by host 1 at address 0x7000_000C and host 2 at address 0x0000_000C the same?
Question 2.1: When REMAP [0]=1, is the data read from 0x7fff_ffff address by Host 1 and from 0x0fff_ffff address by Host 2 the same?
Question 2.2: 0x8000_0000~0x8fff_ffff does not have an address alias area?
You don't say what IP you are referring to here, so I'll answer assuming it is one of the ARM supplied AHB BusMatrix solutions, probably from SIE-200 as you mention AMBA 5.
Q1. The "SI1" memory map describes the MI0 address range remapping as being an "alias", so yes, the data read from 7000_000C is accessing the exact same physical location as 0000_000C (2 addresses mapping on to the same physical memory).
Q2.1. The address map describes only applies to SI1 (I assume this is what you refer to as "host 1"), so we have no information on what the address map for SI2 (host 2) specifies.
Q2.2. The address map you have specified only creates an alias for the lower half of the 7000_0000 to 8fff_ffff MI0 in the range 0000_0000 to 0fff_ffff.
Your questions sound as if this isn't a BusMatrix you have created yourself, so could you say where this configuration file came from, and perhaps then I can give better answers ?
Note that if this is IP that you have licensed directly from ARM, you should be able to raise a support case for your questions and have them answered by the ARM applications engineers who look after this IP.
Okay, I think I now see what these questions are asking.
The BusMatrix has address decoders for each input port, looking at the incoming HADDR value, and routing this incoming transfer to an output port. One output port could have multiple entries in the address map, so those could be mirroring a smaller external memory across a larger address space, or it could be creating different address ranges that access different parts of the external component.
All 32-bits of the HADDR bus will be driven out to the external component, so whether the multiple address ranges map on to different regions of that target, or else the MSBs of HADDR are ignored and the smaller target footprint is accessed repeatedly across the different address ranges assigned to it.
REMAP adds some complexity or flexibility to the address decoders, allowing you to change at runtime where an output port might appear in the address map (remapping="move") or creating multiple copies of it (remapping="alias"). You could use "alias" to open up access to a different sections of an external device so that the multiple address ranges access different locations in the target, but this would be less likely to be needed at runtime.
But again you still see the full 32-bits of HADDR at the output, so it is up to you whether the multiple address ranges assigned to this target access the same range of addresses repeatedly, or access different physical parts of a larger external device.
So my earlier reply was based on how designers usually use REMAP, creating aliases or copies of the original non-REMAP address range so that the same external device can be accessed at multiple address ranges, with each range accessing the same physical locations, but you could use REMAP to add access to different regions of an external device. Again you see the full 32-bit HADDR value after the address decoding, so it is up to you to decide what those multiple address ranges access in your external device.
Thank you very much.
Firstly,Can you answer the three questions in the picture ?
Secondly, as shown in the two images above, I found that the codes generated using the SIE-200 images is completely identical. What is the difference between reapplying="alias" and reapplying="none"? If the two functions are the same, why not merge them into one?
The following figure is a description in the technical reference manual:
I'm not sure what your questions are asking as the answers depend on what the user is connecting to the BusMatrix ports.
So all that I can say is the BusMatrix just looks at the current address map to work out which output a transfer can be routed to.
REMAP allows you to change the base address map, either moving the original address space to a new address space (move) or creating a second address range this source can access for this target (alias).
For the "alias" case, you now have two or more address ranges allocated to the same external port. It is up to you whether those address ranges access the same physical locations (so ignoring the address MSBs), or else access different locations (using the MSBs).
All the BusMatrix does is create a path from source interface to destination interface, with REMAP giving you some run-time flexibility on what this mapping is. How you then use that configurable mapping is up to the user.
As there are various ways you can connect the destination component (using MSBs or not) will determine if two addresses access the same physical data or not, hence me being unable to answer your specific questions.