25 |
* SUCH DAMAGE. |
* SUCH DAMAGE. |
26 |
* |
* |
27 |
* |
* |
28 |
* $Id: arcbios.c,v 1.103 2005/05/23 12:21:45 debug Exp $ |
* $Id: arcbios.c,v 1.107 2005/08/09 17:18:22 debug Exp $ |
29 |
* |
* |
30 |
* ARCBIOS emulation. |
* ARCBIOS emulation. |
31 |
*/ |
*/ |
2290 |
#endif |
#endif |
2291 |
arcbios_putstring(cpu, " ARCBIOS emulation\n"); |
arcbios_putstring(cpu, " ARCBIOS emulation\n"); |
2292 |
|
|
2293 |
sprintf(tmpstr, "%i cpu%s (%s), %i MB memory\n\n", |
snprintf(tmpstr, sizeof(tmpstr), "%i cpu%s (%s), %i MB " |
2294 |
machine->ncpus, machine->ncpus > 1? "s" : "", |
"memory\n\n", machine->ncpus, machine->ncpus > 1? "s" : "", |
2295 |
cpu->cd.mips.cpu_type.name, |
cpu->cd.mips.cpu_type.name, |
2296 |
machine->physical_ram_in_mb); |
machine->physical_ram_in_mb); |
2297 |
arcbios_putstring(cpu, tmpstr); |
arcbios_putstring(cpu, tmpstr); |
2445 |
/* A very special case for IP24 (which identifies itself |
/* A very special case for IP24 (which identifies itself |
2446 |
as an IP22): */ |
as an IP22): */ |
2447 |
if (machine->machine_subtype == 24) |
if (machine->machine_subtype == 24) |
2448 |
sprintf(name, "SGI-IP22"); |
snprintf(name, alloclen, "SGI-IP22"); |
2449 |
break; |
break; |
2450 |
case MACHINE_ARC: |
case MACHINE_ARC: |
2451 |
/* ARC: */ |
/* ARC: */ |
2512 |
if (arc_cpu_name[jj] >= 'a' && arc_cpu_name[jj] <= 'z') |
if (arc_cpu_name[jj] >= 'a' && arc_cpu_name[jj] <= 'z') |
2513 |
arc_cpu_name[jj] += ('A' - 'a'); |
arc_cpu_name[jj] += ('A' - 'a'); |
2514 |
|
|
2515 |
strcpy(arc_fpc_name, arc_cpu_name); |
strlcpy(arc_fpc_name, arc_cpu_name, sizeof(arc_fpc_name)); |
2516 |
strcat(arc_fpc_name, "FPC"); |
strlcat(arc_fpc_name, "FPC", sizeof(arc_fpc_name)); |
2517 |
|
|
2518 |
cpuaddr = arcbios_addchild_manual(cpu, |
cpuaddr = arcbios_addchild_manual(cpu, |
2519 |
COMPONENT_CLASS_ProcessorClass, COMPONENT_TYPE_CPU, |
COMPONENT_CLASS_ProcessorClass, COMPONENT_TYPE_CPU, |
2639 |
/* |
/* |
2640 |
* Defalt TLB entry for 64-bit SGI machines: |
* Defalt TLB entry for 64-bit SGI machines: |
2641 |
*/ |
*/ |
2642 |
if (machine->machine_type == MACHINE_SGI) { |
if (machine->machine_type == MACHINE_SGI && |
2643 |
|
machine->machine_subtype != 12 /* TODO: ugly */ ) { |
2644 |
/* TODO: On which models is this required? */ |
/* TODO: On which models is this required? */ |
2645 |
mips_coproc_tlb_set_entry(cpu, 0, 1048576*16, |
mips_coproc_tlb_set_entry(cpu, 0, 1048576*16, |
2646 |
0xc000000000000000ULL, 0, 1048576*16, 1,1,1,1,1, 0, 2, 2); |
0xc000000000000000ULL, 0, 1048576*16, 1,1,1,1,1, 0, 2, 2); |
2651 |
* Set up Firmware Vectors: |
* Set up Firmware Vectors: |
2652 |
*/ |
*/ |
2653 |
add_symbol_name(&machine->symbol_context, |
add_symbol_name(&machine->symbol_context, |
2654 |
ARC_FIRMWARE_ENTRIES, 0x10000, "[ARCBIOS entry]", 0); |
ARC_FIRMWARE_ENTRIES, 0x10000, "[ARCBIOS entry]", 0, 1); |
2655 |
|
|
2656 |
for (i=0; i<100; i++) { |
for (i=0; i<100; i++) { |
2657 |
if (is64bit) { |
if (is64bit) { |