# paste.ha -rw-r--r-- 818 bytes View raw
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
	const ips = rdtcr_el1() & TCR_EL1_IPS_MASK;
	log::printfln("old TCR_EL1: {:b}", rdtcr_el1());
	const tcr_el1: u64 =
		ips |			// IPS from EFI
		TCR_EL1_TG1_4K |	// Higher half: 4K granule size
		TCR_EL1_SH1_IS |	// Higher half: inner shareable
		TCR_EL1_ORGN1_WB |	// Higher half: outer write-back
		TCR_EL1_IRGN1_WB |	// Higher half: inner write-back
		TCR_EL1_EPD1 |		// Higher half enable
		(24 << TCR_EL1_T1SZ) |	// Higher half: 3 levels (1024G)
		TCR_EL1_TG0_4K |	// Lower half: 4K granule size
		TCR_EL1_SH0_IS |	// Lower half: inner sharable
		TCR_EL1_ORGN0_WB |	// Lower half: outer write-back
		TCR_EL1_IRGN0_WB |	// Lower half: inner write-back
		TCR_EL1_EPD0 |		// Lower half enable
		(24 << TCR_EL1_T0SZ);	// Lower half: 3 levels (1024G)
	wrtcr_el1(tcr_el1);
	log::printfln("new TCR_EL1: {:b}", tcr_el1);