static int pci_tnetw1130_init(PCIDevice* pci_dev) { #if defined(DEBUG_TNETW1130) set_traceflags("DEBUG_TNETW1130"); #endif TRACE(TNETW, logout("\n")); return tnetw1130_init(pci_dev); }
PCIDevice *pci_tnetw1130_init(PCIBus * bus, NICInfo * nd, int devfn) { pci_tnetw1130_t *d = (pci_tnetw1130_t *) pci_register_device(bus, "TNETW1130", sizeof(pci_tnetw1130_t), -1, NULL, NULL); #if defined(DEBUG_TNETW1130) set_traceflags("DEBUG_TNETW1130"); #endif TRACE(TNETW, logout("\n")); tnetw1130_init(d, nd); return (PCIDevice *)d; }
static int vlynq_tnetw1130_init(VLYNQDevice* vlynq_dev) { vlynq_tnetw1130_t *d = DO_UPCAST(vlynq_tnetw1130_t, dev, vlynq_dev); //~ uint8_t *pci_conf = d->dev.config; tnetw1130_t *s = &d->tnetw1130; #if defined(DEBUG_TNETW1130) set_traceflags("DEBUG_AR7"); #endif TRACE(TNETW, logout("\n")); /* TI TNETW1130 */ //~ tnetw1130_pci_config(pci_conf); /* Handler for memory-mapped I/O */ // TODO: Code is missing. logout("vlynq i/o is missing\n"); //~ s->io_memory[0] = //~ cpu_register_io_memory(tnetw1130_region0_read, tnetw1130_region0_write, //~ d, DEVICE_NATIVE_ENDIAN); //~ s->io_memory[1] = //~ cpu_register_io_memory(tnetw1130_region1_read, tnetw1130_region1_write, //~ d, DEVICE_NATIVE_ENDIAN); TRACE(TNETW, logout("io_memory = 0x%08x, 0x%08x\n", s->io_memory[0], s->io_memory[1])); //~ memcpy(s->mem1 + 0x0001f000, pci_conf, 64); /* eCPU is halted. */ reg_write16(s->mem0, TNETW1130_ECPU_CTRL, 1); //~ tnetw1130_mem_map(&d->dev, 0, 0x04000000, 0x22000, 0); /* 0xf0000000 */ //~ tnetw1130_mem_map(&d->dev, 1, 0x04022000, 0x40000, 0); /* 0xc0000000 */ //~ tnetw1130_mem_map(&d->dev, 1, 0x04000000, 0x40000, 0); //~ tnetw1130_mem_map(&d->dev, 0, 0x04040000, 0x22000, 0); tnetw1130_mem_map(&d->dev, 0, 0x04000000, TNETW1130_MEM0_SIZE, 0); tnetw1130_mem_map(&d->dev, 1, 0x04022000, TNETW1130_MEM1_SIZE, 0); return 0; }
void vlynq_tnetw1130_init(void) { pci_tnetw1130_t *d = &vlynq; uint8_t *pci_conf = d->dev.config; tnetw1130_t *s = &d->tnetw1130; #if defined(DEBUG_TNETW1130) set_traceflags("DEBUG_AR7"); #endif TRACE(TNETW, logout("\n")); /* TI TNETW1130 */ tnetw1130_pci_config(pci_conf); /* Handler for memory-mapped I/O */ s->io_memory[0] = cpu_register_io_memory(0, tnetw1130_region0_read, tnetw1130_region0_write, d); s->io_memory[1] = cpu_register_io_memory(0, tnetw1130_region1_read, tnetw1130_region1_write, d); TRACE(TNETW, logout("io_memory = 0x%08x, 0x%08x\n", s->io_memory[0], s->io_memory[1])); pci_register_io_region(&d->dev, 0, TNETW1130_MEM0_SIZE, PCI_ADDRESS_SPACE_MEM, tnetw1130_mem_map); pci_register_io_region(&d->dev, 1, TNETW1130_MEM1_SIZE, PCI_ADDRESS_SPACE_MEM, tnetw1130_mem_map); memcpy(s->mem1 + 0x0001f000, pci_conf, 64); /* eCPU is halted. */ reg_write16(s->mem0, TNETW1130_ECPU_CTRL, 1); //~ tnetw1130_mem_map(&d->dev, 0, 0x04000000, 0x22000, 0); /* 0xf0000000 */ //~ tnetw1130_mem_map(&d->dev, 1, 0x04022000, 0x40000, 0); /* 0xc0000000 */ //~ tnetw1130_mem_map(&d->dev, 1, 0x04000000, 0x40000, 0); //~ tnetw1130_mem_map(&d->dev, 0, 0x04040000, 0x22000, 0); tnetw1130_mem_map(&d->dev, 0, 0x04000000, TNETW1130_MEM0_SIZE, 0); tnetw1130_mem_map(&d->dev, 1, 0x04022000, TNETW1130_MEM1_SIZE, 0); }
int main(int argc, char *argv[]) { int port = 2344; const char *config = "sys161.conf"; const char *kernel = NULL; int usetcp=0; char *argstr = NULL; int j, opt; size_t argsize=0; int debugwait=0; int pass_signals=0; #ifdef USE_TRACE int profiling=0; #endif int use_second_console=0; const char *second_console = NULL; unsigned ncpus; /* This must come absolutely first so msg() can be used. */ console_earlyinit(); if (sizeof(u_int32_t)!=4) { /* * Just in case. */ msg("sys161 requires sizeof(u_int32_t)==4"); die(); } while ((opt = mygetopt(argc, argv, "c:f:p:Pst:wk:"))!=-1) { switch (opt) { case 'c': config = myoptarg; break; case 'f': #ifdef USE_TRACE set_tracefile(myoptarg); #endif break; case 'p': port = atoi(myoptarg); usetcp=1; break; case 'P': #ifdef USE_TRACE profiling = 1; #endif break; case 's': pass_signals = 1; break; case 't': #ifdef USE_TRACE set_traceflags(myoptarg); #endif break; case 'w': debugwait = 1; break; case 'k': use_second_console = 1; second_console = myoptarg; break; default: usage(); break; } } if (myoptind==argc) { usage(); } kernel = argv[myoptind++]; for (j=myoptind; j<argc; j++) { argsize += strlen(argv[j])+1; } argstr = malloc(argsize+1); if (!argstr) { msg("malloc failed"); die(); } *argstr = 0; for (j=myoptind; j<argc; j++) { strcat(argstr, argv[j]); if (j<argc-1) strcat(argstr, " "); } /* This must come before bus_config in case a network card needs it */ mkdir(".sockets", 0700); console_init(pass_signals, use_second_console, second_console); clock_init(); ncpus = bus_config(config); initstats(ncpus); cpu_init(ncpus); if (usetcp) { gdb_inet_init(port); } else { unlink(".sockets/gdb"); gdb_unix_init(".sockets/gdb"); } unlink(".sockets/meter"); meter_init(".sockets/meter"); load_kernel(kernel, argstr); msg("System/161 %s, compiled %s %s", VERSION, __DATE__, __TIME__); #ifdef USE_TRACE print_traceflags(); if (profiling) { prof_setup(); } #endif if (debugwait) { stoploop(); } run(); #ifdef USE_TRACE if (profiling) { prof_write(); } #endif bus_cleanup(); console_cleanup(); clock_cleanup(); return 0; }