Hi,
we are allowed to access only an address range which is covered by MMU. Otherwise an exception TLB Miss is triggered.
Each core access (I do not consider debug features) uses virtual address. It doesn't matter if virtual address and physical address is identical or if there's some translation.
If you want to access the same physical address using two virtual addresses, it can be done but you need to have two TLBs.
First TLB will be configured in this way: physical address 0x0000-0x1000, virtual address 0x0000-0x1000
Second TLB: physical address 0x0000-0x1000, virtual address 0x8000-0x9000
"My assumption is that the flash driver cannot handle virtual address space, and that only real physical address should be used."
SSD flash drivers expect that physical and virtual address is identical because it checks addresses, blocks and so on... That means you should really have two TLBs as mentioned above and use 'physical' address for programming.
Regards,
Lukas