Lines Matching +full:sound +full:- +full:name +full:- +full:prefix
26 #include "qemu/guest-random.h"
31 #include "hw/or-irq.h"
38 #include "standard-headers/asm-m68k/bootinfo.h"
39 #include "standard-headers/asm-m68k/bootinfo-mac.h"
42 #include "hw/m68k/q800-glue.h"
48 #include "hw/nubus/mac-nubus-bridge.h"
54 #include "qemu/error-report.h"
67 #define IO_SLICE_MASK (IO_SLICE - 1)
96 * Slot 0x9 is reserved for use by the in-built framebuffer whilst only
112 cpu->env.aregs[7] = ldl_phys(cs->as, 0); in main_cpu_reset()
113 cpu->env.pc = ldl_phys(cs->as, 4); in main_cpu_reset()
119 qemu_guest_getrandom_nofail((void *)rng_seed->data + 2, in rerandomize_rng_seed()
120 be16_to_cpu(*(uint16_t *)rng_seed->data)); in rerandomize_rng_seed()
126 /* offset: 0xa - mac_reset */
137 0x02, 0x00, 0xFF, 0xFB, /* andib #-5,%d0 */
259 ram_addr_t ram_size = machine->ram_size; in q800_machine_init()
260 const char *kernel_filename = machine->kernel_filename; in q800_machine_init()
261 const char *initrd_filename = machine->initrd_filename; in q800_machine_init()
262 const char *kernel_cmdline = machine->kernel_cmdline; in q800_machine_init()
263 const char *bios_name = machine->firmware ?: MACROM_FILENAME; in q800_machine_init()
286 object_initialize_child(OBJECT(machine), "cpu", &m->cpu, machine->cpu_type); in q800_machine_init()
287 qdev_realize(DEVICE(&m->cpu), NULL, &error_fatal); in q800_machine_init()
288 qemu_register_reset(main_cpu_reset, &m->cpu); in q800_machine_init()
291 memory_region_init_io(&m->ramio, OBJECT(machine), &ramio_ops, &m->ramio, in q800_machine_init()
293 memory_region_add_subregion(get_system_memory(), 0x0, &m->ramio); in q800_machine_init()
295 memory_region_add_subregion(&m->ramio, 0, machine->ram); in q800_machine_init()
300 memory_region_init(&m->macio, OBJECT(machine), "mac-io", IO_SLICE); in q800_machine_init()
301 memory_region_add_subregion(get_system_memory(), IO_BASE, &m->macio); in q800_machine_init()
307 memory_region_init_io(&m->macio_alias, OBJECT(machine), &macio_alias_ops, in q800_machine_init()
308 &m->macio, "mac-io.alias", IO_SIZE - IO_SLICE); in q800_machine_init()
310 &m->macio_alias); in q800_machine_init()
312 memory_region_init_io(&m->machine_id, NULL, &machine_id_ops, NULL, in q800_machine_init()
315 &m->machine_id); in q800_machine_init()
318 object_initialize_child(OBJECT(machine), "glue", &m->glue, TYPE_GLUE); in q800_machine_init()
319 object_property_set_link(OBJECT(&m->glue), "cpu", OBJECT(&m->cpu), in q800_machine_init()
321 sysbus_realize(SYS_BUS_DEVICE(&m->glue), &error_fatal); in q800_machine_init()
324 object_initialize_child(OBJECT(machine), "djmemc", &m->djmemc, in q800_machine_init()
326 sysbus = SYS_BUS_DEVICE(&m->djmemc); in q800_machine_init()
328 memory_region_add_subregion(&m->macio, DJMEMC_BASE - IO_BASE, in q800_machine_init()
332 object_initialize_child(OBJECT(machine), "iosb", &m->iosb, TYPE_IOSB); in q800_machine_init()
333 sysbus = SYS_BUS_DEVICE(&m->iosb); in q800_machine_init()
335 memory_region_add_subregion(&m->macio, IOSB_BASE - IO_BASE, in q800_machine_init()
339 object_initialize_child(OBJECT(machine), "via1", &m->via1, in q800_machine_init()
343 qdev_prop_set_drive(DEVICE(&m->via1), "drive", in q800_machine_init()
346 sysbus = SYS_BUS_DEVICE(&m->via1); in q800_machine_init()
348 memory_region_add_subregion(&m->macio, VIA_BASE - IO_BASE, in q800_machine_init()
351 qdev_get_gpio_in(DEVICE(&m->glue), GLUE_IRQ_IN_VIA1)); in q800_machine_init()
353 qdev_connect_gpio_out(DEVICE(&m->via1), 0, in q800_machine_init()
354 qdev_get_gpio_in_named(DEVICE(&m->glue), in q800_machine_init()
357 adb_bus = qdev_get_child_bus(DEVICE(&m->via1), "adb.0"); in q800_machine_init()
364 object_initialize_child(OBJECT(machine), "via2", &m->via2, in q800_machine_init()
366 sysbus = SYS_BUS_DEVICE(&m->via2); in q800_machine_init()
368 memory_region_add_subregion(&m->macio, VIA_BASE - IO_BASE + VIA_SIZE, in q800_machine_init()
371 qdev_get_gpio_in(DEVICE(&m->glue), GLUE_IRQ_IN_VIA2)); in q800_machine_init()
377 * Valid prefix are: in q800_machine_init()
384 object_initialize_child(OBJECT(machine), "dp8393x", &m->dp8393x, in q800_machine_init()
386 dev = DEVICE(&m->dp8393x); in q800_machine_init()
390 memcpy(mac.a, nd->macaddr.a, sizeof(mac.a)); in q800_machine_init()
405 memory_region_add_subregion(&m->macio, SONIC_BASE - IO_BASE, in q800_machine_init()
408 qdev_get_gpio_in(DEVICE(&m->glue), GLUE_IRQ_IN_SONIC)); in q800_machine_init()
410 memory_region_init_rom(&m->dp8393x_prom, NULL, "dp8393x-q800.prom", in q800_machine_init()
413 &m->dp8393x_prom); in q800_machine_init()
416 prom = memory_region_get_ram_ptr(&m->dp8393x_prom); in q800_machine_init()
422 prom[7] = 0xff - checksum; in q800_machine_init()
426 object_initialize_child(OBJECT(machine), "escc", &m->escc, in q800_machine_init()
428 dev = DEVICE(&m->escc); in q800_machine_init()
441 object_initialize_child(OBJECT(machine), "escc_orgate", &m->escc_orgate, in q800_machine_init()
443 object_property_set_int(OBJECT(&m->escc_orgate), "num-lines", 2, in q800_machine_init()
445 dev = DEVICE(&m->escc_orgate); in q800_machine_init()
450 qdev_get_gpio_in(DEVICE(&m->glue), in q800_machine_init()
452 memory_region_add_subregion(&m->macio, SCC_BASE - IO_BASE, in q800_machine_init()
456 memory_region_init_alias(&m->escc_alias, OBJECT(machine), "escc-alias", in q800_machine_init()
458 memory_region_add_subregion(&m->macio, SCC_BASE - IO_BASE - 0x20, in q800_machine_init()
459 &m->escc_alias); in q800_machine_init()
463 object_initialize_child(OBJECT(machine), "esp", &m->esp, in q800_machine_init()
465 sysbus_esp = SYSBUS_ESP(&m->esp); in q800_machine_init()
466 esp = &sysbus_esp->esp; in q800_machine_init()
467 esp->dma_memory_read = NULL; in q800_machine_init()
468 esp->dma_memory_write = NULL; in q800_machine_init()
469 esp->dma_opaque = NULL; in q800_machine_init()
470 sysbus_esp->it_shift = 4; in q800_machine_init()
471 esp->dma_enabled = 1; in q800_machine_init()
473 sysbus = SYS_BUS_DEVICE(&m->esp); in q800_machine_init()
478 qdev_get_gpio_in(DEVICE(&m->via2), in q800_machine_init()
482 qdev_get_gpio_in(DEVICE(&m->via2), in q800_machine_init()
484 memory_region_add_subregion(&m->macio, ESP_BASE - IO_BASE, in q800_machine_init()
486 memory_region_add_subregion(&m->macio, ESP_PDMA - IO_BASE, in q800_machine_init()
489 scsi_bus_legacy_handle_cmdline(&esp->bus); in q800_machine_init()
491 /* Apple Sound Chip */ in q800_machine_init()
493 object_initialize_child(OBJECT(machine), "asc", &m->asc, TYPE_ASC); in q800_machine_init()
494 qdev_prop_set_uint8(DEVICE(&m->asc), "asctype", m->easc ? ASC_TYPE_EASC in q800_machine_init()
496 if (machine->audiodev) { in q800_machine_init()
497 qdev_prop_set_string(DEVICE(&m->asc), "audiodev", machine->audiodev); in q800_machine_init()
499 sysbus = SYS_BUS_DEVICE(&m->asc); in q800_machine_init()
501 memory_region_add_subregion(&m->macio, ASC_BASE - IO_BASE, in q800_machine_init()
503 sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(DEVICE(&m->glue), in q800_machine_init()
507 qdev_connect_gpio_out(DEVICE(&m->glue), GLUE_IRQ_ASC, in q800_machine_init()
508 qdev_get_gpio_in(DEVICE(&m->via2), in q800_machine_init()
513 object_initialize_child(OBJECT(machine), "swim", &m->swim, in q800_machine_init()
515 sysbus = SYS_BUS_DEVICE(&m->swim); in q800_machine_init()
517 memory_region_add_subregion(&m->macio, SWIM_BASE - IO_BASE, in q800_machine_init()
522 object_initialize_child(OBJECT(machine), "mac-nubus-bridge", in q800_machine_init()
523 &m->mac_nubus_bridge, in q800_machine_init()
525 sysbus = SYS_BUS_DEVICE(&m->mac_nubus_bridge); in q800_machine_init()
526 dev = DEVICE(&m->mac_nubus_bridge); in q800_machine_init()
527 qdev_prop_set_uint32(DEVICE(&m->mac_nubus_bridge), "slot-available-mask", in q800_machine_init()
538 qdev_get_gpio_in_named(DEVICE(&m->via2), "nubus-irq", in q800_machine_init()
542 qdev_get_gpio_in_named(DEVICE(&m->via2), in q800_machine_init()
543 "nubus-irq", in q800_machine_init()
551 qdev_connect_gpio_out(DEVICE(&m->glue), GLUE_IRQ_NUBUS_9, in q800_machine_init()
552 qdev_get_gpio_in_named(DEVICE(&m->via2), "nubus-irq", in q800_machine_init()
555 nubus = NUBUS_BUS(qdev_get_child_bus(dev, "nubus-bus.0")); in q800_machine_init()
559 object_initialize_child(OBJECT(machine), "macfb", &m->macfb, in q800_machine_init()
561 dev = DEVICE(&m->macfb); in q800_machine_init()
573 macfb_mode = (NUBUS_MACFB(dev)->macfb).mode; in q800_machine_init()
575 cs = CPU(&m->cpu); in q800_machine_init()
593 stl_phys(cs->as, 4, elf_entry); /* reset initial PC */ in q800_machine_init()
607 VIDEO_BASE + macfb_mode->offset); in q800_machine_init()
611 BOOTINFO1(param_ptr, BI_MAC_VROW, macfb_mode->stride); in q800_machine_init()
614 memory_region_init_ram_ptr(&m->rom, NULL, "m68k_fake_mac.rom", in q800_machine_init()
616 memory_region_set_readonly(&m->rom, true); in q800_machine_init()
617 memory_region_add_subregion(get_system_memory(), MACROM_ADDR, &m->rom); in q800_machine_init()
639 initrd_base = (ram_size - initrd_size) & TARGET_PAGE_MASK; in q800_machine_init()
641 ram_size - initrd_base); in q800_machine_init()
649 rom_add_blob_fixed_as("bootinfo", param_blob, param_ptr - param_blob, in q800_machine_init()
650 parameters_base, cs->as); in q800_machine_init()
652 rom_ptr_for_as(cs->as, parameters_base, in q800_machine_init()
653 param_ptr - param_blob) + in q800_machine_init()
654 (param_rng_seed - param_blob)); in q800_machine_init()
659 memory_region_init_rom(&m->rom, NULL, "m68k_mac.rom", MACROM_SIZE, in q800_machine_init()
662 memory_region_add_subregion(get_system_memory(), MACROM_ADDR, &m->rom); in q800_machine_init()
664 memory_region_init_alias(&m->rom_alias, NULL, "m68k_mac.rom-alias", in q800_machine_init()
665 &m->rom, 0, MACROM_SIZE); in q800_machine_init()
667 &m->rom_alias); in q800_machine_init()
674 bios_size = -1; in q800_machine_init()
686 stl_phys(cs->as, 0, ldl_be_p(ptr)); /* reset initial SP */ in q800_machine_init()
687 stl_phys(cs->as, 4, in q800_machine_init()
697 return ms->easc; in q800_get_easc()
704 ms->easc = value; in q800_set_easc()
712 ms->easc = true; in q800_init()
716 { "scsi-hd", "quirk_mode_page_vendor_specific_apple", "on" },
717 { "scsi-hd", "vendor", " SEAGATE" },
718 { "scsi-hd", "product", " ST225N" },
719 { "scsi-hd", "ver", "1.0 " },
720 { "scsi-cd", "quirk_mode_page_apple_vendor", "on" },
721 { "scsi-cd", "quirk_mode_sense_rom_use_dbd", "on" },
722 { "scsi-cd", "quirk_mode_page_vendor_specific_apple", "on" },
723 { "scsi-cd", "quirk_mode_page_truncated", "on" },
724 { "scsi-cd", "vendor", "MATSHITA" },
725 { "scsi-cd", "product", "CD-ROM CR-8005" },
726 { "scsi-cd", "ver", "1.0k" },
738 mc->desc = "Macintosh Quadra 800"; in q800_machine_class_init()
739 mc->init = q800_machine_init; in q800_machine_class_init()
740 mc->default_cpu_type = M68K_CPU_TYPE_NAME("m68040"); in q800_machine_class_init()
741 mc->valid_cpu_types = valid_cpu_types; in q800_machine_class_init()
742 mc->max_cpus = 1; in q800_machine_class_init()
743 mc->block_default_type = IF_SCSI; in q800_machine_class_init()
744 mc->default_ram_id = "m68k_mac.ram"; in q800_machine_class_init()
746 compat_props_add(mc->compat_props, hw_compat_q800, hw_compat_q800_len); in q800_machine_class_init()
754 .name = MACHINE_TYPE_NAME("q800"),