SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
Because ARP32 supports breakpoint insertion, a single register version of the range-based invalidate is provided through the invalidate single address register (EVE_PC_ISAR). This is distinct from the previously defined range based invalidate, though the underlying hardware mechanism is the same. It is legal for the range-based invalidate and single-address invalidate to occur at the same time. Both commands must complete, though the order of completion is not explicitly defined.
Emulation software replaces the appropriate instruction in system memory with the breakpoint instruction. To ensure that future ARP32 execution of that line of code is fetched from system memory (as opposed to directly serviced from the cache), emulation software writes the address to EVE_PC_ISAR[31:0] ADDR.
The invalidate operation begins immediately on writing into the EVE_PC_ISAR register. The hardware operation involves checking the tag for the specified address. If the line exists in the cache, the corresponding valid bit is reset. Upon completion, the EVE_PC_ISAR[31:0] ADDR bit field is set to 0, thus informing the emulation software driver that the command is complete.
Operation is undefined if the application of emulation software tries to write to this register before the previous command completes.