What is the difference between these two functions

2019-06-28 08:50发布

When I want to mark memory region as Write Combined (to disable cacheable and use BIU) or Uncacheable through set PAT(Page attribute table - 7bit in PTE), then what do I must to use, and what is the difference between two these functions?

Taken from: http://lwn.net/Articles/278994/

Why can't I use the same single function both for PCI BARs and RAM ranges?

Clarification: Does ioremap_uc() get physical address and return virtual address with setting Uncacheable, versus set_memory_uc() which get already virtual address and set Uncacheable for these pages?

Are these codes equal?

void* virt_ptr = ioremap_uc(phys_ptr, size);

and

void* virt_ptr = ioremap(phys_ptr, size);
const int page_size = 4096;
set_memory_uc(virt_ptr, size/page_size);

0条回答
登录 后发表回答