On Sat, 13 Mar 2021 at 19:05, Richard Henderson <richard.hender...@linaro.org> wrote: > > On 3/12/21 12:59 PM, Peter Maydell wrote: > > On Fri, 12 Mar 2021 at 17:29, Peter Maydell <peter.mayd...@linaro.org> > > wrote: > >> This series handles the possibility of aliasing by iterating through > >> the whole FlatView of the CPU's address space checking for other > >> mappings of the MemoryRegion corresponding to the location of the > >> vector table. If we find any aliases we use rom_ptr() to see if the > >> ROM blob loader has any data there. > > > > The other possible place we could put this code would be > > to put it into rom_ptr() itself. You'd have to change the > > callsites to pass an AddressSpace to rom_ptr(), but really > > we ought to do that anyway, because a Rom has an AddressSpace > > that we should be checking as well as the address. > > I like this as the solution.
I realized that checking against the Rom's AddressSpace is likely to be a bad plan, though -- in some cases the AS is used to allow the loader to say "load this image to AS such-and-such", and we don't want to fail to find the ROM blob because the rom_ptr() code is reading it from a different AS that is an alternate view onto the same actual MemoryRegions (eg Secure vs NonSecure and the RAM is in the same place.) thanks -- PMM