-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable paging for 64-bit vexpress #1575
Changes from all commits
439afae
f0bb736
8df3474
7c74bb3
159efbc
4387c26
cc358cc
7fd107a
a1c791e
f2bdb6d
7c930be
1559b44
ff3799d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -820,6 +820,9 @@ static void rem_area(struct tee_pager_area_head *area_head, | |
} | ||
} | ||
|
||
/* TODO only invalidate entries touched above */ | ||
core_tlb_maintenance(TLBINV_UNIFIEDTLB, 0); | ||
|
||
pager_unlock(exceptions); | ||
free_area(area); | ||
} | ||
|
@@ -1403,6 +1406,8 @@ static void pager_save_and_release_entry(struct tee_pager_pmem *pmem) | |
|
||
area_get_entry(pmem->area, pmem->pgidx, NULL, &attr); | ||
area_set_entry(pmem->area, pmem->pgidx, 0, 0); | ||
/* TODO only invalidate entry touched above */ | ||
core_tlb_maintenance(TLBINV_UNIFIEDTLB, 0); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, I noticed that too. :-) |
||
tee_pager_save_page(pmem, attr); | ||
assert(pmem->area->pgt->num_used_entries); | ||
pmem->area->pgt->num_used_entries--; | ||
|
@@ -1449,7 +1454,7 @@ void tee_pager_release_phys(void *addr, size_t size) | |
struct tee_pager_area *area; | ||
uint32_t exceptions; | ||
|
||
if (!size) | ||
if (end <= begin) | ||
return; | ||
|
||
area = find_area(&tee_pager_area_head, begin); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can use
dsb ishst
here anddsb ish
below after tlbi invalidation. ARMv7 support these.This can apply to modified
secure_mmu_unifiedtlbinvXXX()
below.(Yet this could come in a later patch, I am preparing something to invalidate by mva when necessary)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I'd rather take that in a later patch.