[IA64] Add PAL_VM_SUMMARY/PAL_MEM_ATTRIB to bootloader for SKI

This patch implements PAL_VM_SUMMARY (and PAL_MEM_ATTRIB for good
measure) and pretends that the simulated machine is a McKinley.

Some extra comments and clean-up by Tony Luck.

Signed-off-by: Peter Chubb <peterc@gelato.unsw.edu.au>
Signed-off-by: Tony Luck <tony.luck@intel.com>

authored by

Peter Chubb and committed by
Tony Luck
dc90e95f d8971fcb

+25 -6
+25 -6
arch/ia64/hp/sim/boot/boot_head.S
··· 4 4 */ 5 5 6 6 #include <asm/asmmacro.h> 7 + #include <asm/pal.h> 7 8 8 9 .bss 9 10 .align 16 ··· 50 49 br.sptk.few b7 51 50 END(jmp_to_kernel) 52 51 53 - 52 + /* 53 + * r28 contains the index of the PAL function 54 + * r29--31 the args 55 + * Return values in ret0--3 (r8--11) 56 + */ 54 57 GLOBAL_ENTRY(pal_emulator_static) 55 58 mov r8=-1 56 59 mov r9=256 ··· 67 62 cmp.gtu p6,p7=r9,r28 68 63 (p6) br.cond.sptk.few stacked 69 64 ;; 70 - static: cmp.eq p6,p7=6,r28 /* PAL_PTCE_INFO */ 65 + static: cmp.eq p6,p7=PAL_PTCE_INFO,r28 71 66 (p7) br.cond.sptk.few 1f 72 67 ;; 73 68 mov r8=0 /* status = 0 */ ··· 75 70 movl r10=0x0000000200000003 /* count[0], count[1] */ 76 71 movl r11=0x1000000000002000 /* stride[0], stride[1] */ 77 72 br.cond.sptk.few rp 78 - 1: cmp.eq p6,p7=14,r28 /* PAL_FREQ_RATIOS */ 73 + 1: cmp.eq p6,p7=PAL_FREQ_RATIOS,r28 79 74 (p7) br.cond.sptk.few 1f 80 75 mov r8=0 /* status = 0 */ 81 76 movl r9 =0x100000064 /* proc_ratio (1/100) */ 82 77 movl r10=0x100000100 /* bus_ratio<<32 (1/256) */ 83 78 movl r11=0x100000064 /* itc_ratio<<32 (1/100) */ 84 79 ;; 85 - 1: cmp.eq p6,p7=19,r28 /* PAL_RSE_INFO */ 80 + 1: cmp.eq p6,p7=PAL_RSE_INFO,r28 86 81 (p7) br.cond.sptk.few 1f 87 82 mov r8=0 /* status = 0 */ 88 83 mov r9=96 /* num phys stacked */ 89 84 mov r10=0 /* hints */ 90 85 mov r11=0 91 86 br.cond.sptk.few rp 92 - 1: cmp.eq p6,p7=1,r28 /* PAL_CACHE_FLUSH */ 87 + 1: cmp.eq p6,p7=PAL_CACHE_FLUSH,r28 /* PAL_CACHE_FLUSH */ 93 88 (p7) br.cond.sptk.few 1f 94 89 mov r9=ar.lc 95 90 movl r8=524288 /* flush 512k million cache lines (16MB) */ ··· 107 102 mov ar.lc=r9 108 103 mov r8=r0 109 104 ;; 110 - 1: cmp.eq p6,p7=15,r28 /* PAL_PERF_MON_INFO */ 105 + 1: cmp.eq p6,p7=PAL_PERF_MON_INFO,r28 111 106 (p7) br.cond.sptk.few 1f 112 107 mov r8=0 /* status = 0 */ 113 108 movl r9 =0x08122f04 /* generic=4 width=47 retired=8 cycles=18 */ ··· 142 137 ;; 143 138 st8 [r29]=r0,16 /* clear remaining bits */ 144 139 st8 [r18]=r0,16 /* clear remaining bits */ 140 + ;; 141 + 1: cmp.eq p6,p7=PAL_VM_SUMMARY,r28 142 + (p7) br.cond.sptk.few 1f 143 + mov r8=0 /* status = 0 */ 144 + movl r9=0x2044040020F1865 /* num_tc_levels=2, num_unique_tcs=4 */ 145 + /* max_itr_entry=64, max_dtr_entry=64 */ 146 + /* hash_tag_id=2, max_pkr=15 */ 147 + /* key_size=24, phys_add_size=50, vw=1 */ 148 + movl r10=0x183C /* rid_size=24, impl_va_msb=60 */ 149 + ;; 150 + 1: cmp.eq p6,p7=PAL_MEM_ATTRIB,r28 151 + (p7) br.cond.sptk.few 1f 152 + mov r8=0 /* status = 0 */ 153 + mov r9=0x80|0x01 /* NatPage|WB */ 145 154 ;; 146 155 1: br.cond.sptk.few rp 147 156 stacked: