55 #define ETHERNET_STRING_MAXLEN 40 56 #define MACHINE_NAME_MAXBUF 100 61 uint64_t sgi_ram_offset = 0;
62 int arc_wordlen =
sizeof(uint32_t);
66 char *eaddr_string = strdup(
"eaddr=10:20:30:40:50:60");
67 unsigned char macaddr[6];
70 struct pci_data *pci_data = NULL;
88 sgi_ram_offset + 0x50000);
121 "z8530 addr=0x1fbd9830 irq=0 addr_mult=4");
123 fatal(
"TODO ip19 interrupt rewrite\n");
169 fatal(
"TODO: SGI legacy interrupt system rewrite!\n");
178 "z8530 addr=0x1fbd9830 irq=0 addr_mult=4");
182 "z8530 addr=0x1fb80d10 irq=0 addr_mult=4");
184 "z8530 addr=0x1fb80d00 irq=0 addr_mult=4");
205 arc_wordlen =
sizeof(uint64_t);
215 " (Indy, Indigo2, Challenge S; Full-house)",
217 fatal(
"TODO: SGI legacy interrupt system rewrite!\n");
223 " (Indy, Indigo2, Challenge S; Guiness)",
225 fatal(
"TODO: SGI legacy interrupt system rewrite!\n");
237 fatal(
"TODO: Legacy rewrite\n");
270 "z8530 addr=0x1fbd9830 irq=363 addr_mult=4");
273 fatal(
"TODO: legacy rewrite\n");
307 arc_wordlen =
sizeof(uint64_t);
311 fatal(
"TODO ip25 interrupt rewrite\n");
331 arc_wordlen =
sizeof(uint64_t);
332 strlcat(machineName,
" (uknown SGI-IP26 ?)",
335 "z8530 addr=0x1fbd9830 irq=0 addr_mult=4");
339 strlcat(machineName,
" (Origin 200/2000, Onyx2)",
341 arc_wordlen =
sizeof(uint64_t);
345 "z8530 addr=0x1fbd9830 irq=0 addr_mult=4");
350 arc_wordlen =
sizeof(uint64_t);
361 arc_wordlen =
sizeof(uint64_t);
362 strlcat(machineName,
" (Octane)",
366 snprintf(tmpstr,
sizeof(tmpstr),
367 "sgi_ip30 addr=0x0ff00000");
393 snprintf(tmpstr,
sizeof(tmpstr),
"ns16550 irq=%s.cpu[%i].2 addr=" 394 "0x1f620170 name2=tty0 in_use=%i",
399 snprintf(tmpstr,
sizeof(tmpstr),
"ns16550 irq=%s.cpu[%i].2 addr=" 400 "0x1f620178 name2=tty1 in_use=0",
430 fatal(
"TODO: Legacy framework cannot handle more than 256 MB for the SGI O2.\n");
440 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].2",
495 "eaddr=%02x:%02x:%02x:%02x:%02x:%02x",
496 macaddr[0], macaddr[1], macaddr[2],
497 macaddr[3], macaddr[4], macaddr[5]);
499 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].2.crime.0x%x",
506 snprintf(tmpstr,
sizeof(tmpstr),
507 "ns16550 irq=%s.cpu[%i].2.crime.0x%x.mace.%i addr=" 508 "0x1f390000 addr_mult=0x100 in_use=%i name2=tty0",
512 snprintf(tmpstr,
sizeof(tmpstr),
513 "ns16550 irq=%s.cpu[%i].2.crime.0x%x.mace.%i addr=" 514 "0x1f398000 addr_mult=0x100 in_use=%i name2=tty1",
525 snprintf(tmpstr1,
sizeof(tmpstr1),
526 "%s.cpu[%i].2.crime.0x%x.mace.%i",
530 snprintf(tmpstr2,
sizeof(tmpstr2),
531 "%s.cpu[%i].2.crime.0x%x.mace.%i",
544 snprintf(tmpstr,
sizeof(tmpstr),
545 "%s.cpu[%i].2.crime.0x%x.mace.%i",
560 snprintf(tmpstr,
sizeof(tmpstr),
602 snprintf(tmpstr,
sizeof(tmpstr),
"z8530 addr=0x1fbd9830 irq=%s.cpu[%i].2",
609 strlcat(machineName,
" (Origin 350)",
619 fatal(
"unimplemented SGI machine type IP%i\n",
628 eaddr_string, macaddr);
669 me->set_default_ram = machine_default_ram_sgi;
685 "ip27",
"origin 200",
"origin 2000", NULL);
void dev_mc146818_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, char *irq_path, int access_style, int addrdiv)
void fatal(const char *fmt,...)
int store_32bit_word(struct cpu *cpu, uint64_t addr, uint64_t data32)
int diskimage_exist(struct machine *machine, int id, int type)
void dev_sgi_ust_init(struct memory *mem, uint64_t baseaddr)
void bus_pci_add(struct machine *machine, struct pci_data *pci_data, struct memory *mem, int bus, int device, int function, const char *name)
struct pci_data * dev_macepci_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, char *irq_path)
void * device_add(struct machine *machine, const char *name_and_params)
void dev_sgi_re_init(struct machine *machine, struct memory *mem, uint64_t baseaddr)
#define CHECK_ALLOCATION(ptr)
void dev_ram_init(struct machine *machine, uint64_t baseaddr, uint64_t length, int mode, uint64_t otheraddress, const char *name)
void machine_entry_add_subtype(struct machine_entry *me, const char *name, int oldstyle_subtype,...)
void net_generate_unique_mac(struct machine *, unsigned char *macbuf)
void machine_entry_add_alias(struct machine_entry *me, const char *name)
#define MACHINE_NAME_MAXBUF
void dev_sgi_mec_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, char *irq_path, unsigned char *macaddr)
#define DEV_RAM_MIGHT_POINT_TO_DEVICES
void dev_crime_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, char *irq_path, int use_fb)
#define CRIME_INT_PERIPH_SERIAL
void dev_sgi_gbe_init(struct machine *machine, struct memory *mem, uint64_t baseaddr)
#define CRIME_INT_ETHERNET
int dev_pckbc_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, int type, char *keyboard_irqpath, char *mouse_irqpath, int in_use, int pc_style_flag)
#define CRIME_INT_PCI_BRIDGE
#define ETHERNET_STRING_MAXLEN
#define MR_DEFAULT(x, name, arch, type)
const char * machine_name
void arcbios_init(struct machine *machine, int is64bit, uint64_t sgi_ram_offset, const char *primary_ether_string, uint8_t *primary_ether_macaddr)
#define CRIME_INT_PERIPH_MISC