Skip to content
Jannik Vogel edited this page May 17, 2014 · 13 revisions
  • Changes from stock qemu which are outside of hw/xbox:

    • vl.c: Added xqemu command line options [should be moved to xbox.c during development?]
    • ac97.c / ac97_int.h: Comments
    • ac97.c / ac97_int.h: add SO_* wherever, PI_*,PO_* and MC_* are found in a group (SO_INDEX = 7)
    • ac97.c / ac97_int.h: bm_regs therefore has LAST_INDEX elements
    • ac97.c / ac97_int.h: Also split the init into seperate function
    • ac97.c / ac97_int.h: Moved the linkstate typedef to header for mcpx_aci
    • ac97.c / ac97_int.h: iops variables must be public so the static attribute was removed
    • blockdev.c: QTAILQ_INSERT_TAIL(&drives, dinfo, next); -> drive_append() [so Chihiro drive can be added on the fly]
    • blockdev.c: "locked" option added
    • smbus_eeprom.c: Split init function so the address can be set freely [should be fixed upstream, already done in private gist / being tested]
    • configure: replace GLX by OpenGL in various flavours
    • configure: Add xbox target
    • configure: Fix an original qemu bug where KVM is only compiled by target name, not target arch
    • hw/ide/core.c: security stuff (cmd_security_unlock) for hdd added
    • hw/display/vga.c: VGA Overlay stuff for PVIDEO
    • memory.c: Support for aliasses re-enabled after QEMU dropped that
    • memory.c: DIRTY_MEMORY_NV2A_GPU*
    • Somewere else?!
      • Probably more I'm forgetting..
  • Based on 1.6.0 espes:

    • configure needs OpenGL and Xbox sections, also fix the KVM check by looking for the arch (JayFoxRox first commits)
    • AC97 requires SPIDF regs
    • EGL / GLX missing
    • More missing.. check xbox_bootrom_hle and slowly move stuff
  • Changes for 1.7.0:

    • http://blog.alex.org.uk/2013/08/24/changes-to-qemus-timer-system/ (Script works fine)
    • PCI IRQ Wrapper
      • qemu_irq_raise(d->dev.irq[0]); -> pci_irq_assert(&d->dev);
      • qemu_irq_lower(d->dev.irq[0]); -> pci_irq_deassert(&d->dev);
      • d->dev.config[PCI_INTERRUPT_PIN] = 0x01; must be set properly !!!
        • Part of te PBUS writes espes was ignoring without any warning.. ;P
      • Remove qemu_irq from state, still allocate for non PCI objects
    • https://github.com/qemu/qemu/commit/6e931878c1bde26ff594f284a6857e0d786674bc (and other commits around it)
      • le32_to_cpupu(x); -> ldl_le_p(x);
      • cpu_to_le32wu(x); -> stl_le_p(x);
    • DEFAULT_MACHINE_OPTIONS -> PC_DEFAULT_MACHINE_OPTIONS
      • but we should probably have our own (XBOX_DEFAULT_MACHINE_OPTIONS) or use PC_COMMON_MACHINE_OPTIONS which is also only boot_order like it used to be
  • Changes for 2.0.0:

    • i2c_bus -> I2CBus
    • Physical Memory access requires address space?
      • ldl_le_phys(x); -> ldl_le_phys(&address_space_memory, x);
      • stl_le_phys(x); -> stl_le_phys(&address_space_memory, x);
      • cpu_physical_memory_write_rom(x); -> cpu_physical_memory_write_rom(&address_space_memory, x);
      • cpu_physical_memory_write() and cpu_physical_memory_read() not modified
      • including hw/pci/pci.h works fine for address_space_memory but we probably should do something else
    • memory_region_set_client_dirty() was removed and we should either rewrite our code OR just set all bits and not care about performance loss
    • qemu_thread_create(x,y,z); -> qemu_thread_create(x,"thread-name",y,z);
    • graphic_console_init(x,y,z); -> graphic_console_init(x,0,y,z);
    • dc->no_user = 1; -> dc->cannot_instantiate_with_device_add_yet = true; /* FIXME explain why */
      • Best to add a reason the line above, check commit or grep to find out how
    • k->no_hotplug = 1; -> dc->hotpluggable = false;
    • index_from_keycode() was removed, no solution yet! xid broken
    • InterfaceRequestVendor -> VendorInterfaceRequest
    • memory.c no longer seems to set dirty bits in aliases? Is that a problem?
    • XID is broken because index_from_keycode was removed. We should simply use input-legacy and switch to keyboard scancodes.
      • TODO: kidnap some QEMU devs, hold them hostage for a while and force them that all input systems generate at least Q_KEY_CODE_... events instead of some arbitrary platform crap..
  • Unknown when:

    • DeviceState Pointers should be named dev and not d
    • Replace init with realize
  • Changes for the future:

Clone this wiki locally