Deleted Added
full compact
main.c (204152) main.c (207537)
1/*-
2 * Initial implementation:
3 * Copyright (c) 2001 Robert Drehmel
4 * All rights reserved.
5 *
6 * As long as the above copyright statement and this notice remain
7 * unchanged, you can do what ever you want with this file.
8 */

--- 19 unchanged lines hidden (view full) ---

28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 */
34
35#include <sys/cdefs.h>
1/*-
2 * Initial implementation:
3 * Copyright (c) 2001 Robert Drehmel
4 * All rights reserved.
5 *
6 * As long as the above copyright statement and this notice remain
7 * unchanged, you can do what ever you want with this file.
8 */

--- 19 unchanged lines hidden (view full) ---

28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 */
34
35#include <sys/cdefs.h>
36__FBSDID("$FreeBSD: head/sys/boot/sparc64/loader/main.c 204152 2010-02-20 23:24:19Z marius $");
36__FBSDID("$FreeBSD: head/sys/boot/sparc64/loader/main.c 207537 2010-05-02 19:38:17Z marius $");
37
38/*
39 * FreeBSD/sparc64 kernel loader - machine dependent part
40 *
41 * - implements copyin and readin functions that map kernel
42 * pages on demand. The machine independent code does not
43 * know the size of the kernel early enough to pre-enter
44 * TTEs and install just one 4MB mapping seemed to limiting

--- 401 unchanged lines hidden (view full) ---

446 wrpr(pstate, pstate & ~PSTATE_IE, 0);
447 for (i = 0; i < dtlb_slot_max; i++) {
448 reg = ldxa(TLB_DAR_SLOT(i), ASI_DTLB_TAG_READ_REG);
449 if (TLB_TAR_VA(reg) != va)
450 continue;
451 reg = dtlb_get_data_sun4u(i);
452 wrpr(pstate, pstate, 0);
453 reg >>= TD_PA_SHIFT;
37
38/*
39 * FreeBSD/sparc64 kernel loader - machine dependent part
40 *
41 * - implements copyin and readin functions that map kernel
42 * pages on demand. The machine independent code does not
43 * know the size of the kernel early enough to pre-enter
44 * TTEs and install just one 4MB mapping seemed to limiting

--- 401 unchanged lines hidden (view full) ---

446 wrpr(pstate, pstate & ~PSTATE_IE, 0);
447 for (i = 0; i < dtlb_slot_max; i++) {
448 reg = ldxa(TLB_DAR_SLOT(i), ASI_DTLB_TAG_READ_REG);
449 if (TLB_TAR_VA(reg) != va)
450 continue;
451 reg = dtlb_get_data_sun4u(i);
452 wrpr(pstate, pstate, 0);
453 reg >>= TD_PA_SHIFT;
454 if (cpu_impl >= CPU_IMPL_ULTRASPARCIII)
454 if (cpu_impl == CPU_IMPL_SPARC64V ||
455 cpu_impl >= CPU_IMPL_ULTRASPARCIII)
455 return (reg & TD_PA_CH_MASK);
456 return (reg & TD_PA_SF_MASK);
457 }
458 wrpr(pstate, pstate, 0);
459 return (-1);
460}
461
462static vm_offset_t

--- 6 unchanged lines hidden (view full) ---

469 wrpr(pstate, pstate & ~PSTATE_IE, 0);
470 for (i = 0; i < itlb_slot_max; i++) {
471 reg = ldxa(TLB_DAR_SLOT(i), ASI_ITLB_TAG_READ_REG);
472 if (TLB_TAR_VA(reg) != va)
473 continue;
474 reg = itlb_get_data_sun4u(i);
475 wrpr(pstate, pstate, 0);
476 reg >>= TD_PA_SHIFT;
456 return (reg & TD_PA_CH_MASK);
457 return (reg & TD_PA_SF_MASK);
458 }
459 wrpr(pstate, pstate, 0);
460 return (-1);
461}
462
463static vm_offset_t

--- 6 unchanged lines hidden (view full) ---

470 wrpr(pstate, pstate & ~PSTATE_IE, 0);
471 for (i = 0; i < itlb_slot_max; i++) {
472 reg = ldxa(TLB_DAR_SLOT(i), ASI_ITLB_TAG_READ_REG);
473 if (TLB_TAR_VA(reg) != va)
474 continue;
475 reg = itlb_get_data_sun4u(i);
476 wrpr(pstate, pstate, 0);
477 reg >>= TD_PA_SHIFT;
477 if (cpu_impl >= CPU_IMPL_ULTRASPARCIII)
478 if (cpu_impl == CPU_IMPL_SPARC64V ||
479 cpu_impl >= CPU_IMPL_ULTRASPARCIII)
478 return (reg & TD_PA_CH_MASK);
479 return (reg & TD_PA_SF_MASK);
480 }
481 wrpr(pstate, pstate, 0);
482 return (-1);
483}
484
485static int

--- 205 unchanged lines hidden (view full) ---

691}
692
693const char *
694cpu_cpuid_prop_sun4u(void)
695{
696
697 switch (cpu_impl) {
698 case CPU_IMPL_SPARC64:
480 return (reg & TD_PA_CH_MASK);
481 return (reg & TD_PA_SF_MASK);
482 }
483 wrpr(pstate, pstate, 0);
484 return (-1);
485}
486
487static int

--- 205 unchanged lines hidden (view full) ---

693}
694
695const char *
696cpu_cpuid_prop_sun4u(void)
697{
698
699 switch (cpu_impl) {
700 case CPU_IMPL_SPARC64:
701 case CPU_IMPL_SPARC64V:
699 case CPU_IMPL_ULTRASPARCI:
700 case CPU_IMPL_ULTRASPARCII:
701 case CPU_IMPL_ULTRASPARCIIi:
702 case CPU_IMPL_ULTRASPARCIIe:
703 return ("upa-portid");
704 case CPU_IMPL_ULTRASPARCIII:
705 case CPU_IMPL_ULTRASPARCIIIp:
706 case CPU_IMPL_ULTRASPARCIIIi:

--- 8 unchanged lines hidden (view full) ---

715}
716
717uint32_t
718cpu_get_mid_sun4u(void)
719{
720
721 switch (cpu_impl) {
722 case CPU_IMPL_SPARC64:
702 case CPU_IMPL_ULTRASPARCI:
703 case CPU_IMPL_ULTRASPARCII:
704 case CPU_IMPL_ULTRASPARCIIi:
705 case CPU_IMPL_ULTRASPARCIIe:
706 return ("upa-portid");
707 case CPU_IMPL_ULTRASPARCIII:
708 case CPU_IMPL_ULTRASPARCIIIp:
709 case CPU_IMPL_ULTRASPARCIIIi:

--- 8 unchanged lines hidden (view full) ---

718}
719
720uint32_t
721cpu_get_mid_sun4u(void)
722{
723
724 switch (cpu_impl) {
725 case CPU_IMPL_SPARC64:
726 case CPU_IMPL_SPARC64V:
723 case CPU_IMPL_ULTRASPARCI:
724 case CPU_IMPL_ULTRASPARCII:
725 case CPU_IMPL_ULTRASPARCIIi:
726 case CPU_IMPL_ULTRASPARCIIe:
727 return (UPA_CR_GET_MID(ldxa(0, ASI_UPA_CONFIG_REG)));
728 case CPU_IMPL_ULTRASPARCIII:
729 case CPU_IMPL_ULTRASPARCIIIp:
730 return (FIREPLANE_CR_GET_AID(ldxa(AA_FIREPLANE_CONFIG,

--- 224 unchanged lines hidden ---
727 case CPU_IMPL_ULTRASPARCI:
728 case CPU_IMPL_ULTRASPARCII:
729 case CPU_IMPL_ULTRASPARCIIi:
730 case CPU_IMPL_ULTRASPARCIIe:
731 return (UPA_CR_GET_MID(ldxa(0, ASI_UPA_CONFIG_REG)));
732 case CPU_IMPL_ULTRASPARCIII:
733 case CPU_IMPL_ULTRASPARCIIIp:
734 return (FIREPLANE_CR_GET_AID(ldxa(AA_FIREPLANE_CONFIG,

--- 224 unchanged lines hidden ---