Lately, I tried to map SPIBAR space into virtual address space, and read them. It works well by reps instruction, and normal memory pointer access. However, I ran into a problem that use optimized version of memcpy, it used SSE2 instruction set. The copied content are all 0xFF. Why is that happening?
My guess is, device mapped physical memory is different from common physical memory, it doesn't support SSE2 instruction load / store, says, out of width --> so no MMIO is triggered.
Please correct me if I'm wrong.
The details may depend on the particular chipset, but the documents I have say that accesses to this space are only allowed to be naturally aligned byte, word, and double-word accesses.