|
@@ -132,6 +132,8 @@ prom_sun4v_name:
|
|
|
.asciz "sun4v"
|
|
|
prom_niagara_prefix:
|
|
|
.asciz "SUNW,UltraSPARC-T"
|
|
|
+prom_sparc_prefix:
|
|
|
+ .asciz "SPARC-T"
|
|
|
.align 4
|
|
|
prom_root_compatible:
|
|
|
.skip 64
|
|
@@ -379,6 +381,22 @@ sun4v_chip_type:
|
|
|
sethi %hi(prom_niagara_prefix), %g7
|
|
|
or %g7, %lo(prom_niagara_prefix), %g7
|
|
|
mov 17, %g3
|
|
|
+90: ldub [%g7], %g2
|
|
|
+ ldub [%g1], %g4
|
|
|
+ cmp %g2, %g4
|
|
|
+ bne,pn %icc, 89f
|
|
|
+ add %g7, 1, %g7
|
|
|
+ subcc %g3, 1, %g3
|
|
|
+ bne,pt %xcc, 90b
|
|
|
+ add %g1, 1, %g1
|
|
|
+ ba,pt %xcc, 91f
|
|
|
+ nop
|
|
|
+
|
|
|
+89: sethi %hi(prom_cpu_compatible), %g1
|
|
|
+ or %g1, %lo(prom_cpu_compatible), %g1
|
|
|
+ sethi %hi(prom_sparc_prefix), %g7
|
|
|
+ or %g7, %lo(prom_sparc_prefix), %g7
|
|
|
+ mov 7, %g3
|
|
|
90: ldub [%g7], %g2
|
|
|
ldub [%g1], %g4
|
|
|
cmp %g2, %g4
|
|
@@ -389,6 +407,15 @@ sun4v_chip_type:
|
|
|
add %g1, 1, %g1
|
|
|
|
|
|
sethi %hi(prom_cpu_compatible), %g1
|
|
|
+ or %g1, %lo(prom_cpu_compatible), %g1
|
|
|
+ ldub [%g1 + 7], %g2
|
|
|
+ cmp %g2, '3'
|
|
|
+ be,pt %xcc, 5f
|
|
|
+ mov SUN4V_CHIP_NIAGARA3, %g4
|
|
|
+ ba,pt %xcc, 4f
|
|
|
+ nop
|
|
|
+
|
|
|
+91: sethi %hi(prom_cpu_compatible), %g1
|
|
|
or %g1, %lo(prom_cpu_compatible), %g1
|
|
|
ldub [%g1 + 17], %g2
|
|
|
cmp %g2, '1'
|
|
@@ -397,6 +424,7 @@ sun4v_chip_type:
|
|
|
cmp %g2, '2'
|
|
|
be,pt %xcc, 5f
|
|
|
mov SUN4V_CHIP_NIAGARA2, %g4
|
|
|
+
|
|
|
4:
|
|
|
mov SUN4V_CHIP_UNKNOWN, %g4
|
|
|
5: sethi %hi(sun4v_chip_type), %g2
|
|
@@ -514,6 +542,9 @@ niagara_tlb_fixup:
|
|
|
cmp %g1, SUN4V_CHIP_NIAGARA2
|
|
|
be,pt %xcc, niagara2_patch
|
|
|
nop
|
|
|
+ cmp %g1, SUN4V_CHIP_NIAGARA3
|
|
|
+ be,pt %xcc, niagara2_patch
|
|
|
+ nop
|
|
|
|
|
|
call generic_patch_copyops
|
|
|
nop
|