MMU: bug fix on operating va <=> pa convertion

Before referencing to physical address of devs such as lapic, ioapic,
vtd, and uart, switch to virtual address.
Use a phisical address of pml4 to write CR3.

Signed-off-by: Zheng, Gen <gen.zheng@intel.com>
This commit is contained in:
Zheng, Gen
2018-04-16 12:07:42 +08:00
committed by Jack Ren
parent d02f4d4a5f
commit c5f860e1cb
7 changed files with 37 additions and 37 deletions

View File

@@ -314,10 +314,10 @@ struct mem_io_node {
uint64_t range_end;
};
void *get_paging_pml4(void);
uint64_t get_paging_pml4(void);
void *alloc_paging_struct(void);
void free_paging_struct(void *ptr);
void enable_paging(void *pml4_base_addr);
void enable_paging(uint64_t pml4_base_addr);
void init_paging(void);
int map_mem(struct map_params *map_params, void *paddr, void *vaddr,
uint64_t size, uint32_t flags);