machine_pmax.cc Source File
Back to the index.
Go to the documentation of this file.
53 #define BOOTARG_BUFLEN 2000
58 const char *framebuffer_console_name, *serial_console_name;
61 int boot_scsi_boardnumber = 3, boot_net_boardnumber = 3;
62 const char *turbochannel_default_gfx_card =
"PMAG-BA";
82 framebuffer_console_name =
"osconsole=0,3";
83 serial_console_name =
"osconsole=1";
97 fprintf(stderr,
"WARNING! Real DECstation 3100 machines"
98 " cannot have more than 24MB RAM.\n");
101 fprintf(stderr,
"WARNING! Real DECstation 3100 machines"
102 " have an integer multiple of 4 MBs of RAM.\n");
119 0,0,0,0,0, color_fb_flag?
"VFB02":
"VFB01");
125 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].%i",
131 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].%i",
136 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].%i",
141 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].%i",
148 framebuffer_console_name =
"osconsole=0,3";
149 serial_console_name =
"osconsole=3";
161 fprintf(stderr,
"WARNING! Real KN02 machines do not "
162 "have less than 8MB RAM. Continuing anyway.\n");
164 fprintf(stderr,
"WARNING! Real KN02 machines cannot "
165 "have more than 480MB RAM. Continuing anyway.\n");
180 snprintf(tmpstr,
sizeof(tmpstr),
"kn02 addr=0x%x "
193 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].2.kn02.%i",
198 turbochannel_default_gfx_card :
"",
201 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].2.kn02.%i",
206 turbochannel_default_gfx_card :
"",
209 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].2.kn02.%i",
214 turbochannel_default_gfx_card :
"",
220 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].2.kn02.%i",
227 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].2.kn02.%i",
234 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].2.kn02.%i",
240 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].%i",
245 framebuffer_console_name =
"osconsole=0,7";
247 serial_console_name =
"osconsole=2";
248 boot_scsi_boardnumber = 5;
249 boot_net_boardnumber = 6;
258 fprintf(stderr,
"WARNING! Real 3MIN machines cannot "
259 "have more than 128MB RAM. Continuing anyway.\n");
262 snprintf(tmpstr,
sizeof(tmpstr),
"kn02ba irq=%s.cpu[%i].%i",
289 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].%i.kn02ba.0x%x",
294 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].%i.kn02ba.0x%x",
300 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].%i.kn02ba.0x%x",
305 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].%i.kn02ba.0x%x",
318 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].%i",
323 turbochannel_default_gfx_card :
"",
326 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].%i",
331 turbochannel_default_gfx_card :
"",
334 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].%i",
339 turbochannel_default_gfx_card :
"",
346 framebuffer_console_name =
"osconsole=0,3";
347 serial_console_name =
"osconsole=3";
359 fprintf(stderr,
"WARNING! Real KN03 machines cannot "
360 "have more than 480MB RAM. Continuing anyway.\n");
363 fatal(
"TODO: Legacy rewrite\n");
381 fatal(
"TODO: dec_ioasic legacy rewrite\n");
386 fatal(
"TODO: kn03 dev_le_init rewrite\n");
391 fatal(
"TODO: dec_ioasic legacy rewrite\n");
404 fatal(
"TODO: mc146818 irq\n");
408 fatal(
"TODO: asc init rewrite\n");
420 fatal(
"TODO: turbochannel rewrite init\n");
426 turbochannel_default_gfx_card :
"",
432 turbochannel_default_gfx_card :
"",
438 turbochannel_default_gfx_card :
"",
445 framebuffer_console_name =
"osconsole=0,3";
446 serial_console_name =
"osconsole=3";
454 fprintf(stderr,
"WARNING! 5800 will probably not run "
455 "with less than 48MB RAM. Continuing anyway.\n");
476 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].dec5800.28",
522 "(MAXINE) (KN02CA)");
527 fprintf(stderr,
"WARNING! Real KN02CA machines do not "
528 "have less than 8MB RAM. Continuing anyway.\n");
530 fprintf(stderr,
"WARNING! Real KN02CA machines cannot "
531 "have more than 40MB RAM. Continuing anyway.\n");
534 fatal(
"TODO: Legacy rewrite\n");
562 fatal(
"TODO: dec_ioasic legacy rewrite\n");
567 fatal(
"TODO: turbochannel rewrite!\n");
572 0x10000000, 0x103fffff,
574 turbochannel_default_gfx_card :
"",
577 0x14000000, 0x143fffff,
579 turbochannel_default_gfx_card :
"",
587 0x8000000, 0xbffffff,
"PMAG-DV", 0);
593 fatal(
"TODO: xine dev_le_init rewrite\n");
599 fatal(
"TODO: mc146818 irq\n");
603 fatal(
"TODO: xine asc init rewrite\n");
608 framebuffer_console_name =
"osconsole=3,2";
609 serial_console_name =
"osconsole=3";
650 0x171fffff,
"PMAZ-AA", 0);
656 framebuffer_console_name =
"osconsole=0,0";
657 serial_console_name =
"osconsole=0";
667 fprintf(stderr,
"WARNING! Real MIPSMATE 5100 machines "
668 "cannot have more than 128MB RAM. Continuing"
672 fprintf(stderr,
"WARNING! Real MIPSMATE 5100 machines "
673 "cannot have a graphical framebuffer. "
674 "Continuing anyway.\n");
677 snprintf(tmpstr,
sizeof(tmpstr),
688 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].%i",
693 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].kn230.0x%x",
703 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].kn230.0x%x",
710 snprintf(tmpstr,
sizeof(tmpstr),
"%s.cpu[%i].kn230.0x%x",
715 serial_console_name =
"osconsole=0";
718 default:
fatal(
"Unknown DEC machine type: %i\n",
736 for (i=0; i<150; i++)
741 for (i=0; i<150; i++) {
749 for (i=0; i<0x180; i+=8) {
804 strlcpy(bootpath,
"rz(0,0,0)",
sizeof(bootpath));
807 strlcpy(bootpath,
"5/rz1/",
sizeof(bootpath));
811 strlcpy(bootpath,
"5/tftp/",
sizeof(bootpath));
812 bootpath[0] =
'0' + boot_net_boardnumber;
815 bootpath[0] =
'0' + boot_scsi_boardnumber;
822 init_bootpath = bootpath;
829 fprintf(stderr,
"bootarg truncated?\n");
849 fprintf(stderr,
"bootstr truncated?\n");
854 xx.a.common.next = (
char *)&xx.b - (
char *)&xx;
858 xx.b.common.next = (
char *)&xx.c - (
char *)&xx.b;
862 xx.c.common.next = 0;
903 snprintf(tmps,
sizeof(tmps),
"cca=%" PRIx32,
913 tmps[
sizeof(tmps)-1] =
'\0';
916 snprintf(tmps,
sizeof(tmps),
"bitmap=0x%" PRIx32, (uint32_t)
919 ) & 0xffffffffULL) );
920 tmps[
sizeof(tmps)-1] =
'\0';
923 snprintf(tmps,
sizeof(tmps),
"bitmaplen=0x%" PRIx32, (uint32_t)
925 tmps[
sizeof(tmps)-1] =
'\0';
1010 me->set_default_ram = machine_default_ram_pmax;
struct mips_coproc * coproc[N_MIPS_COPROCS]
#define KN230_SYS_SII_B_END
uint64_t file_loaded_end_addr
#define KN03_PHYS_TC_2_END
#define KN01_SYS_LANCE_B_END
void dev_le_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, uint64_t buf_start, uint64_t buf_end, const char *irq_path, int len)
#define KN02_PHYS_TC_1_END
#define KN230_SYS_LANCE_B_START
#define KN03_PHYS_TC_0_START
void store_buf(struct cpu *cpu, uint64_t addr, const char *s, size_t len)
unsigned char rgb_palette[256 *3]
#define KN02_PHYS_TC_1_START
#define KMIN_PHYS_TC_1_START
#define KN230_CSR_INTR_DZ0
unsigned char color_plane_mask
#define KN02_PHYS_TC_5_START
void add_environment_string(struct cpu *cpu, const char *s, uint64_t *addr)
#define KN230_SYS_SII_B_START
struct mips_coproc * mips_coproc_new(struct cpu *cpu, int coproc_nr)
#define KMIN_PHYS_TC_2_START
#define KN03_PHYS_TC_0_END
struct dec5500_ioboard_data * dev_dec5500_ioboard_init(struct cpu *cpu, struct memory *mem, uint64_t baseaddr)
char * boot_string_argument
#define MACHINE_DEC_MIPSMATE_5100
#define KN02_PHYS_TC_2_START
#define KMIN_PHYS_TC_1_END
#define KN03_PHYS_TC_1_END
#define KN01_SYS_SII_B_START
int diskimage_is_a_tape(struct machine *machine, int id, int type)
struct dec_memmap * memmap
void fatal(const char *fmt,...)
#define KN01_SYS_SII_B_END
void machine_entry_add_subtype(struct machine_entry *me, const char *name, int oldstyle_subtype,...)
#define KN03_PHYS_TC_1_START
#define KN230_CSR_INTR_LANCE
#define KN02_PHYS_TC_2_END
#define KN02_PHYS_TC_5_END
void * device_add(struct machine *machine, const char *name_and_params)
#define MACHINE_DEC_3MIN_5000
#define KN02_PHYS_TC_6_END
void dev_deccca_init(struct memory *mem, uint64_t baseaddr)
#define MR_DEFAULT(x, name, arch, type)
void dev_ssc_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, const char *irq_path, int use_fb)
void store_string(struct cpu *cpu, uint64_t addr, const char *s)
#define KN01_PHYS_COLMASK_START
void dev_colorplanemask_init(struct memory *mem, uint64_t baseaddr, unsigned char *color_plane_mask)
#define DEC_DECCCA_BASEADDR
struct machine_pmax * pmax
void * dev_scc_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, char *irq_path, int use_fb, int scc_nr, int addrmul)
#define DEC_PROM_INITIAL_ARGV
MACHINE_DEFAULT_RAM(pmax)
#define KMIN_PHYS_TC_0_END
void dev_sgec_init(struct memory *mem, uint64_t baseaddr, int irq_nr)
#define EMUL_LITTLE_ENDIAN
char * boot_kernel_filename
void dev_asc_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, const char *irq_path, void *turbochannel, int mode, size_t(*dma_controller)(void *dma_controller_data, unsigned char *data, size_t len, int writeflag), void *dma_controller_data)
#define DEV_RAM_MIGHT_POINT_TO_DEVICES
#define KN01_PHYS_FBUF_START
#define DEC_PROM_EMULATION
#define MACHINE_DEC_PMAX_3100
#define KN03_PHYS_TC_2_START
int store_32bit_word(struct cpu *cpu, uint64_t addr, uint64_t data32)
#define KN02_PHYS_TC_0_START
void dev_kn01_init(struct memory *mem, uint64_t baseaddr, int color_fb)
#define INITIAL_STACK_POINTER
uint64_t gpr[N_MIPS_GPRS]
#define MACHINE_DEC_3MAXPLUS_5000
void store_32bit_word_in_host(struct cpu *cpu, unsigned char *data, uint64_t data32)
int dev_dc7085_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, char *irq_path, int use_fb)
#define DEC_PROM_CALLBACK_STRUCT
void dev_vdac_init(struct memory *mem, uint64_t baseaddr, unsigned char *rgb_palette, int color_fb_flag)
void dev_turbochannel_init(struct machine *machine, struct memory *mem, int slot_nr, uint64_t baseaddr, uint64_t endaddr, const char *device_name, const char *irq_path)
void dev_sii_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, uint64_t buf_start, uint64_t buf_end, char *irq_path)
#define MACHINE_DEC_3MAX_5000
#define KN02_PHYS_TC_0_END
#define MACHINE_DEC_MAXINE_5000
const char * machine_name
void dev_mc146818_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, char *irq_path, int access_style, int addrdiv)
#define KN01_SYS_LANCE_B_START
#define KN02_PHYS_TC_6_START
#define KMIN_PHYS_TC_2_END
MACHINE_DEFAULT_CPU(pmax)
void dev_decxmi_init(struct memory *mem, uint64_t baseaddr)
#define KN230_SYS_LANCE_B_END
void machine_entry_add_alias(struct machine_entry *me, const char *name)
void dev_ram_init(struct machine *machine, uint64_t baseaddr, uint64_t length, int mode, uint64_t otheraddress, const char *name)
#define KMIN_PHYS_TC_0_START
struct vfb_data * dev_fb_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, int vfb_type, int visible_xsize, int visible_ysize, int xsize, int ysize, int bit_depth, const char *name)
#define KN230_CSR_INTR_SII
#define CHECK_ALLOCATION(ptr)
Generated on Tue Mar 24 2020 14:04:48 for GXemul by
1.8.17