the L1 cache is often in the arm core, sram, very fast, L2 might be off chip might not.
The real answer to your question is go to infocenter.arm.com then go to the AMBA link on the left side then download one of the AMBA or AXI specs, even the oldest one there AMBA2 is okay.
Inside the core if there is an L1 cache the processor knows if a memory access is an instruction fetch or data, and that information is put on the internal bus and if the cache is enabled it will look up that result before going to the edge of the core. the edge of the core is some flavor of amba, ahb, or axi bus which has as one of the bits on the bus an access type which includes among other things cacheable or not. So whatever is glued onto that, in particular if the vendor has purchased L2 cache logic from arm to glue onto this core, that L2 logic will, using the items on the bus, look for and possibly return the result to the core. Otherwise goto main memory on the other side of the l2 cache (also an amba/axi/whatever bus) to resolve the transaction or evict something needed to complete the transaction, etc.
The differences in flavors of ARM busses or versions, can/will provide more or less information depending on the bus details. But if the system is capable of having a cache the transaction will indicate cacheable or not and indicate in some way instruction from data (if that cache can separate the two L1 might be able to and L2 might not for example L1 to some extent drives what is in L2)