Path: blob/master/arch/ia64/hp/sim/boot/boot_head.S
15159 views
/*1* Copyright (C) 1998-2003 Hewlett-Packard Co2* David Mosberger-Tang <[email protected]>3*/45#include <asm/asmmacro.h>6#include <asm/pal.h>78.bss9.align 1610stack_mem:11.skip 168341213.text1415/* This needs to be defined because lib/string.c:strlcat() calls it in case of error... */16GLOBAL_ENTRY(printk)17break 018END(printk)1920GLOBAL_ENTRY(_start)21.prologue22.save rp, r023.body24movl gp = __gp25movl sp = stack_mem+16384-1626bsw.127br.call.sptk.many rp=start_bootloader280: nop 0 /* dummy nop to make unwinding work */29END(_start)3031/*32* Set a break point on this function so that symbols are available to set breakpoints in33* the kernel being debugged.34*/35GLOBAL_ENTRY(debug_break)36br.ret.sptk.many b037END(debug_break)3839GLOBAL_ENTRY(ssc)40.regstk 5,0,0,041mov r15=in442break 0x8000143br.ret.sptk.many b044END(ssc)4546GLOBAL_ENTRY(jmp_to_kernel)47.regstk 2,0,0,048mov r28=in049mov b7=in150br.sptk.few b751END(jmp_to_kernel)5253/*54* r28 contains the index of the PAL function55* r29--31 the args56* Return values in ret0--3 (r8--11)57*/58GLOBAL_ENTRY(pal_emulator_static)59mov r8=-160mov r9=25661;;62cmp.gtu p6,p7=r9,r28 /* r28 <= 255? */63(p6) br.cond.sptk.few static64;;65mov r9=51266;;67cmp.gtu p6,p7=r9,r2868(p6) br.cond.sptk.few stacked69;;70static: cmp.eq p6,p7=PAL_PTCE_INFO,r2871(p7) br.cond.sptk.few 1f72;;73mov r8=0 /* status = 0 */74movl r9=0x100000000 /* tc.base */75movl r10=0x0000000200000003 /* count[0], count[1] */76movl r11=0x1000000000002000 /* stride[0], stride[1] */77br.cond.sptk.few rp781: cmp.eq p6,p7=PAL_FREQ_RATIOS,r2879(p7) br.cond.sptk.few 1f80mov r8=0 /* status = 0 */81movl r9 =0x100000064 /* proc_ratio (1/100) */82movl r10=0x100000100 /* bus_ratio<<32 (1/256) */83movl r11=0x100000064 /* itc_ratio<<32 (1/100) */84;;851: cmp.eq p6,p7=PAL_RSE_INFO,r2886(p7) br.cond.sptk.few 1f87mov r8=0 /* status = 0 */88mov r9=96 /* num phys stacked */89mov r10=0 /* hints */90mov r11=091br.cond.sptk.few rp921: cmp.eq p6,p7=PAL_CACHE_FLUSH,r28 /* PAL_CACHE_FLUSH */93(p7) br.cond.sptk.few 1f94mov r9=ar.lc95movl r8=524288 /* flush 512k million cache lines (16MB) */96;;97mov ar.lc=r898movl r8=0xe00000000000000099;;100.loop: fc r8101add r8=32,r8102br.cloop.sptk.few .loop103sync.i104;;105srlz.i106;;107mov ar.lc=r9108mov r8=r0109;;1101: cmp.eq p6,p7=PAL_PERF_MON_INFO,r28111(p7) br.cond.sptk.few 1f112mov r8=0 /* status = 0 */113movl r9 =0x08122f04 /* generic=4 width=47 retired=8 cycles=18 */114mov r10=0 /* reserved */115mov r11=0 /* reserved */116mov r16=0xffff /* implemented PMC */117mov r17=0x3ffff /* implemented PMD */118add r18=8,r29 /* second index */119;;120st8 [r29]=r16,16 /* store implemented PMC */121st8 [r18]=r0,16 /* clear remaining bits */122;;123st8 [r29]=r0,16 /* clear remaining bits */124st8 [r18]=r0,16 /* clear remaining bits */125;;126st8 [r29]=r17,16 /* store implemented PMD */127st8 [r18]=r0,16 /* clear remaining bits */128mov r16=0xf0 /* cycles count capable PMC */129;;130st8 [r29]=r0,16 /* clear remaining bits */131st8 [r18]=r0,16 /* clear remaining bits */132mov r17=0xf0 /* retired bundles capable PMC */133;;134st8 [r29]=r16,16 /* store cycles capable */135st8 [r18]=r0,16 /* clear remaining bits */136;;137st8 [r29]=r0,16 /* clear remaining bits */138st8 [r18]=r0,16 /* clear remaining bits */139;;140st8 [r29]=r17,16 /* store retired bundle capable */141st8 [r18]=r0,16 /* clear remaining bits */142;;143st8 [r29]=r0,16 /* clear remaining bits */144st8 [r18]=r0,16 /* clear remaining bits */145;;1461: cmp.eq p6,p7=PAL_VM_SUMMARY,r28147(p7) br.cond.sptk.few 1f148mov r8=0 /* status = 0 */149movl r9=0x2044040020F1865 /* num_tc_levels=2, num_unique_tcs=4 */150/* max_itr_entry=64, max_dtr_entry=64 */151/* hash_tag_id=2, max_pkr=15 */152/* key_size=24, phys_add_size=50, vw=1 */153movl r10=0x183C /* rid_size=24, impl_va_msb=60 */154;;1551: cmp.eq p6,p7=PAL_MEM_ATTRIB,r28156(p7) br.cond.sptk.few 1f157mov r8=0 /* status = 0 */158mov r9=0x80|0x01 /* NatPage|WB */159;;1601: br.cond.sptk.few rp161stacked:162br.ret.sptk.few rp163END(pal_emulator_static)164165166