How memory mapped IO works?
Hi All, can any one clear my doubt on memory mapped IO.
My understanding on communication from CPU to IO devices is below.
CPU <-----> Device controller(pci/usb) <-----> IO device(pci/usb).
If i have an Ethernet device connected through pcie, i know the base address let say 0xd0000000 and register offset in device is 0x4 then the value to read from that location will be
data = *(0xd0000004) (memory mapped).
my question is how CPU knows this address belongs to ethernet device address?
Will CPU/MMU decode this memory mapped address and initiate pcie read transation from controller to IO device?
Because ethernet can respond only for pci cycles.
Just want know how memory mapped IO works.
Thank you.
|