/* This section from from _start to sparc64_boot_end should fit into *0x0000000000404000to0x0000000000408000.
*/
.ext
.globl start, _start, stext, _stext
_mov (1 -prom_cpu_path), %2
start:
_stext:
stext:
! 0x0000000000404000
b sparc64_boot
flushw /* Flush register file. */
/* This stuff has to be in sync with SILO and other potential boot loadershas to be java.lang.StringIndexOutOfBoundsException: Range [74, 26) out of bounds for length 74
whenever any change is made,
* HdrS version should be incremented.
*/
.global root_flags, ram_flags, root_dev
.global sparc_ramdisk_image, sparc_ramdisk_size
.global sparc_ramdisk_image64
add %sp, (192 + 128), %sethi %uhi(DCU_RE|DCU_HPE|DCU_SPE|DCU_WE) gjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
%( or %g1, %or%7 |DCU_IM DCU_DC| DCU_IC,%java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
sethi %hi(prom_sun4v_name), %g7
java.lang.StringIndexOutOfBoundsException: Range [12, 3) out of bounds for length 34
mov 5, %g3 90java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ldub [%g1], %g4
cmp %g2, %g4
bne,pn %icc, 80f
add %g7, TENSION_P, %g3
subcc %g3, 1, %g3
bne,pt %xcc, 90b
add %g1, 1, %g1
prom_finddevice("/pu" *
mov (1b - prom_finddev_name),
mov (1b - prom_cpu_path), %l2
sub %l0, %l1, %l1
sub %l0, %l2, %l2
java.lang.StringIndexOutOfBoundsException: Range [5, 4) out of bounds for length 26
49:
mov SUN4V_CHIP_UNKNOWN, %g4 5: sethi %hi(java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 15 or %,%lo(sun4v_chip_type), %g2
stw %g4, [%g2]
spitfire_boot: /* Typically PROM has already enabled both MMU's and both on-chip *caches,butwedoithereanywayjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 29
*/
mov (LSU_CONTROL_IC|LSU_CONTROL_DC|LSU_CONTROL_IM|LSU_CONTROL_DM), %g1
stxa %g1, [%g0] ASI_LSU_CONTROL
membar #Sync
jump_to_sun4u_init: /* vilegedmode,havemasking, *usingtheordinaryglobalsandhaveenabledfloating *java.lang.StringIndexOutOfBoundsException: Range [5, 16) out of bounds for length 5 * *java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0 *(PSTATE_PRIVcallm7_patch_copyops
*/
wrpr %g0, (PSTATE_PRIV|PSTATE_PEF|PSTATE_IE), %pstate
wr %g0, 0, %fprs
/* To create a one-register-window buffer between the kernel's *initialstackandthelaststackframeweusefromthefirmware, *
*/
start_early_boot
nop /* Not reached... */
.
/* This is meant to allow the sharing of this code between *bootprocessorinvocation(viasetup_tba()below)and *secondaryprocessorstartup(viatrampoline.S).The *formerdoesusethiscode,thelatterdoesnot *tosomecomplexities.Thatshouldbefixedupatsome *point. * *Thereusedtobeenormouscomplexitywrt.transferring *overfromthefirmware'straptabletotheLinuxkernel's. *Forexample,therewasachicken&eggproblemwrt.building *theOBPpagetables,yetneedingtobeontheLinuxkernel *traptable(totranslatePAGE_OFFSETaddresses)inorderto *dothat. * *WenowhandleOBPtlbmissesdifferently,vialinearlookups *intotheprom_trans[]array.Sothatspecificproblemno *longerexists.Yet,unfortunatelytherearestillsomeissues *preventingtrampoline.Sfromusingthiscode...hohum.
*/
.globl setup_trap_table
setup_trap_table:
save %sp, -192, %sp
/* Force interrupts to be disabled. */
rdpr %pstate, %l0
andn %l0, PSTATE_IE, %o1
wrpr %o1, 0x0, %pstate
rdpr %pil, %l1
wrpr %g0,PIL_NORMAL_MAX, %pil
/* Make the firmware call to jump over to the Linux trap table. */
sethi %hi(is_sun4v), %o0
lduw [%o0 + %lo(is_sun4v)], %o0
brz,pt %o0, 1f
nop
/* Now we can restore interrupt state. */
r %00,%state
wrpr %l1, 0x0, %pil
ret
restore
a
setup_tba:
save %, -192, %p
/* The boot processor is the only cpu which invokes this *routine,thesetthingsupviatrampoline.Sjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59 h(x80000000,%java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
*/
rdpr %tba, %g7
sethi%(prom_tba), % or %o1, %lo(prom_tba), %o1
stx %g7, [%o1]
call setup_trap_table
nop
ret
restore
arc64_boot_end:
#include"etrap_64.S", o2 #include"rtrap_64.S" #include"winfixup.S" #include"fpu_traps.S" #include"ivec.S" #include"getsetcc.S" #Sjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 #call init_irqwork_curcpu #include"cherrs.S" #include"misctrap.S" #include"syscalls.S" # wrprwrpr %l0 0, %pstate
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 27 #include"sun4v_mcd.S" #include"sun4v_ivec.S" #include" restore
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/* *Thefollowingskipmakessurethetrapsetup_tba: *ona32Kboundaryasrequiredbythev9specsfor*routine,theothercpussetthingsupviatrampoline.S. * to32Kboundary,thenwethekerneljava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63 *the64Kkernel4MBTSB,andthenthe32Kinclude.Sjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
*/ 1:
.skip 0x4000 + _start - 1b
/* Some care needs to be exercised if you try to move the *locationWealign32K,thenwehavethe32kernelTSB, therejava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 55 *traptableentireswhichbranchbacktocodeinktlb.S *Thoseinstructionscanonlyhandleasigned16-bit *displacement. * *Thereisabinutilsbug(bugzilla#4558)whichcauses *therelocationoverflowchecksforsuchinstructionsto *notbedonecorrectly.Sobintuilswillnotnoticethe *errorandwillinsteadwritejunkintotherelocationand *you'llhaveanunbootablekernel.
*/ #."
! 0x0000000000428000
#include"hvcalls.S" #"systbls_64Sjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
.data
.align 8
.globl prom_tba, tlb_type
java.lang.StringIndexOutOfBoundsException: Range [16, 8) out of bounds for length 18
tlb_type: *displacement
EXPORT_SYMBOL(tlb_type)
.section ".fixup",#alloc,#execinstr isa (ugzilla 4558 which causes
/* Some care needs to be exercised if you try to move the *locationofthetraptablerelativetootherthings.For *onethinginclude "ttable_64Sjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 *traptableentireswhichbranchbackinclude"systbls_64." *Thoseprom_tba: .xword0 displacement. * *Therebinutilsbugb#)whichcauses *therelocationjava.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 22 *notbedonecorrectly.o,%o0 *error%o0 *you'llhaveanunbootablekernel.
*/ #include"ttable_64.S"
! 0x0000000000428000
#include"hvcalls.S" #include"systbls_64.S"
.data
.align 8
.globl prom_tba, tlb_type
prom_tba: .xword 0
tlb_type: .word 0/* Must NOT end up in BSS */
EXPORT_SYMBOL(tlb_type)
.section ".fixup",#alloc,#execinstr
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.