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 --- |