#! /bin/sh

#
# Check VTOP translation for AArch64 with LPA and 64k pages.
#

pf="aarch64_lpa:16,13,13,6"

ptes="-e 0x00000:0x20003"	# PUD[0] -> 20000
ptes="$ptes -e 0x00008:0xd0003"	# PUD[1] -> d0000
ptes="$ptes -e 0x00010:0xc0000009791" # PUD[2] -> c0000000000 (4T)
ptes="$ptes -e 0x00020:0xf0003" # PUD[4] -> f0000
ptes="$ptes -e 0x20000:0x30003"	# PUD[0] -> PMD[0] -> 30000
ptes="$ptes -e 0x20008:0x40003"	# PUD[0] -> PMD[1] -> 40000
ptes="$ptes -e 0x20010:0xe0009791" # PUD[0] -> PMD[2] -> e0000000 (512M)
ptes="$ptes -e 0x30000:0xa9793"	# PUD[0] -> PMD[0] -> PTE[0] -> a0000
ptes="$ptes -e 0x30008:0xb9793"	# PUD[0] -> PMD[0] -> PTE[1] -> b0000
ptes="$ptes -e 0x48000:0xc9793"	# PUD[0] -> PMD[1] -> PTE[4096] -> c0000
ptes="$ptes -e 0xd0010:0xe0003"	# PUD[1] -> PMD[2] -> e0000
ptes="$ptes -e 0xe0018:0xd9793"	# PUD[1] -> PMD[2] -> PTE[3] -> d0000
ptes="$ptes -e 0xf8d10:0x123440009791" # PUD[4] -> PMD[4514] -> directmap (512M)

list="0x1234:0x90000000a1234"		# PUD[0] -> PMD[0] -> PTE[0]
list="$list 0x12345:0x90000000b2345"	# PUD[0] -> PMD[0] -> PTE[1]
list="$list 0x30005678:0x90000000c5678"	# PUD[0] -> PMD[1] -> PTE[4096]
list="$list 0x400400389ab:0x90000000d89ab" # PUD[1] -> PMD[2] -> PTE[3]
list="$list 0x41234567:0x90000e1234567" # PUD[0] -> PMD[2] (512M)
list="$list 0xffff123456789abc:0x9123456789abc" # PUD[1] -> PMD[4514] (512M)
list="$list 0x8123456789a:0x90c123456789a" # PUD[2] (4T)

. "$srcdir"/addrxlat-common
