Hi Deepak,

Yeah, the cache disable bit may not work correctly in the page table
walker/TLB. You can check the code there to see if that's what's going
wrong.

You can also try adding an E820 entry to the workload object (e.g.,
https://gem5.googlesource.com/public/gem5-resources/+/refs/heads/stable/src/boot-exit/configs/system/system.py#305)
which marks that physical range as uncachable. I believe that works
correctly.

Cheers,
Jason

On Thu, Jun 17, 2021 at 4:02 AM Deepak Mohan via gem5-users <
gem5-users@gem5.org> wrote:

> Hi,
>   I'm doing some experiments using gem5 FS mode for x86.
> In the FS mode I'm running a custom OS written for the requirements of
> my experiment. I have added a PIO device to the x86 system which
> responds to reads and writes to an address range. In the OS I have
> mapped this device to a range in the PCI memory map region (@3GB). I
> don't want this range to be cached, but when I add the cache hierarchy
> to my FS simulation it seems that the device range is also cached. I
> tried setting the C bit (Cache disable) in page table entries to
> prevent this device range from getting cached, but it seems that
> doesn't work. What can I do to prevent the address range of my device
> from being cached , or am I doing something conceptually wrong ? Any
> ideas / suggestions / pointers would be helpful.
>
> Thanks,
> Deepak Mohan.
> _______________________________________________
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to