1. 10 Sep, 2013 28 commits
  2. 09 Sep, 2013 1 commit
    • Paul Burton's avatar
      mips_malta: support up to 2GiB RAM · 94c2b6af
      Paul Burton authored
      A Malta board can support up to 2GiB of RAM. Since the unmapped kseg0/1
      regions are only 512MiB large & the latter 256MiB of those are taken up
      by the IO region, access to RAM beyond 256MiB must be done through a
      mapped region. In the case of a Linux guest this means we need to use
      highmem.
      
      The mainline Linux kernel does not support highmem for Malta at this
      time, however this can be tested using the linux-mti-3.8 kernel branch
      available from:
      
        git://git.linux-mips.org/pub/scm/linux-mti.git
      
      
      
      You should be able to boot a Linux kernel built from the linux-mti-3.8
      branch, with CONFIG_HIGHMEM enabled, using 2GiB RAM by passing "-m 2G"
      to QEMU and appending the following kernel parameters:
      
        mem=256m@0x0 mem=256m@0x90000000 mem=1536m@0x20000000
      
      Note that the upper half of the physical address space of a Malta
      mirrors the lower half (hence the 2GiB limit) except that the IO region
      (0x10000000-0x1fffffff in the lower half) is not mirrored in the upper
      half. That is, physical addresses 0x90000000-0x9fffffff access RAM
      rather than the IO region, resulting in a physical address space
      resembling the following:
      
        0x00000000 -> 0x0fffffff  RAM
        0x10000000 -> 0x1fffffff  I/O
        0x20000000 -> 0x7fffffff  RAM
        0x80000000 -> 0x8fffffff  RAM (mirror of 0x00000000 -> 0x0fffffff)
        0x90000000 -> 0x9fffffff  RAM
        0xa0000000 -> 0xffffffff  RAM (mirror of 0x20000000 -> 0x7fffffff)
      
      The second mem parameter provided to the kernel above accesses the
      second 256MiB of RAM through the upper half of the physical address
      space, making use of the aliasing described above in order to avoid
      the IO region and use the whole 2GiB RAM.
      
      The memory setup may be seen as 'backwards' in this commit since the
      'real' memory is mapped in the upper half of the physical address space
      and the lower half contains the aliases. On real hardware it would be
      typical to see the upper half of the physical address space as the alias
      since the bus addresses generated match the lower half of the physical
      address space. However since the memory accessible in the upper half of
      the physical address space is uninterrupted by the IO region it is
      easiest to map the RAM as a whole there, and functionally it makes no
      difference to the target code.
      
      Due to the requirements of accessing the second 256MiB of RAM through
      a mapping to the upper half of the physical address space it is usual
      for the bootloader to indicate a maximum of 256MiB memory to a kernel.
      This allows kernels which do not support such access to boot on systems
      with more than 256MiB of RAM. It is also the behaviour assumed by Linux.
      QEMUs small generated bootloader is modified to provide this behaviour.
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Signed-off-by: default avatarYongbok Kim <yongbok.kim@imgtec.com>
      Reviewed-by: default avatarAurelien Jarno <aurelien@aurel32.net>
      Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
      94c2b6af
  3. 05 Sep, 2013 7 commits
  4. 03 Sep, 2013 4 commits
    • Anthony Liguori's avatar
      Merge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging · aaa6a401
      Anthony Liguori authored
      QOM CPUState refactorings / X86CPU
      
      * Conversion of global CPU list to QTAILQ - preparing for CPU hot-unplug
      * Document X86CPU magic numbers for CPUID cache info
      
      # gpg: Signature made Tue 03 Sep 2013 10:59:22 AM CDT using RSA key ID 3E7E013F
      # gpg: Can't check signature: public key not found
      
      # By Andreas Färber (3) and Eduardo Habkost (1)
      # Via Andreas Färber
      * afaerber/tags/qom-cpu-for-anthony:
        target-i386: Use #defines instead of magic numbers for CPUID cache info
        cpu: Replace qemu_for_each_cpu()
        cpu: Use QTAILQ for CPU list
        a15mpcore: Use qemu_get_cpu() for generic timers
      aaa6a401
    • Anthony Liguori's avatar
      Merge remote-tracking branch 'kwolf/for-anthony' into staging · bb7d4d82
      Anthony Liguori authored
      
      
      # By Max Reitz (11) and others
      # Via Kevin Wolf
      * kwolf/for-anthony: (26 commits)
        qemu-iotests: Overlapping cluster allocations
        qcow2_check: Mark image consistent
        qcow2-refcount: Repair shared refcount blocks
        qcow2-refcount: Repair OFLAG_COPIED errors
        qcow2-refcount: Move OFLAG_COPIED checks
        qcow2: Employ metadata overlap checks
        qcow2: Metadata overlap checks
        qcow2: Add corrupt bit
        qemu-iotests: Snapshotting zero clusters
        qcow2-refcount: Snapshot update for zero clusters
        option: Add assigned flag to QEMUOptionParameter
        gluster: Abort on AIO completion failure
        block: Remove old raw driver
        switch raw block driver from "raw.o" to "raw_bsd.o"
        raw_bsd: register bdrv_raw
        raw_bsd: add raw_create_options
        raw_bsd: introduce "special members"
        raw_bsd: add raw_create()
        raw_bsd: emit debug events in bdrv_co_readv() and bdrv_co_writev()
        add skeleton for BSD licensed "raw" BlockDriver
        ...
      
      Message-id: 1378111792-20436-1-git-send-email-kwolf@redhat.com
      Signed-off-by: default avatarAnthony Liguori <anthony@codemonkey.ws>
      bb7d4d82
    • Anthony Liguori's avatar
      Merge remote-tracking branch 'mjt/trivial-patches' into staging · 5a93d5c2
      Anthony Liguori authored
      
      
      # By Stefan Weil (6) and others
      # Via Michael Tokarev
      * mjt/trivial-patches:
        aio / timers: use g_usleep() not sleep()
        adlib: sort offsets in portio registration
        qmp: fix integer usage in examples
        tci: Remove function tcg_out64 (fix broken build)
        target-arm: Report unimplemented opcodes (LOG_UNIMP)
        pflash_cfi02.c: fix debug macro
        configure: Remove unneeded redirections of stderr (pkg-config --exists)
        configure: Remove unneeded redirections of stderr (pkg-config --cflags, --libs)
        configure: Don't write .pyc files by default (python -B)
        curl: qemu_bh_new() can never return NULL
        slirp/arp_table.c: Avoid shifting into sign bit of signed integers
        configure: disable clang -Wstring-plus-int warning
        rdma: silly ipv6 bugfix
        misc: Fix some typos in names and comments
        slirp: Port redirection option behave differently on Linux and Windows
      
      Message-id: 1378119695-14568-1-git-send-email-mjt@msgid.tls.msk.ru
      Signed-off-by: default avatarAnthony Liguori <anthony@codemonkey.ws>
      5a93d5c2
    • Anthony Liguori's avatar
      Merge remote-tracking branch 'kraxel/usb.88' into staging · 9ea0f58f
      Anthony Liguori authored
      
      
      # By Gerd Hoffmann (10) and Marcel Apfelbaum (1)
      # Via Gerd Hoffmann
      * kraxel/usb.88:
        usb/dev-hid: Modified usb-tablet category from Misc to Input
        Revert "usb-hub: report status changes only once"
        usb-hub: add tracepoint for status reports
        usb: parallelize usb3 streams
        uas: add property for request logging
        xhci: reset port when disabling slot
        xhci: emulate intr endpoint intervals correctly
        xhci: fix endpoint interval calculation
        xhci: add port to slot_address tracepoint
        xhci: add tracepoint for endpoint state changes
        xhci: remove leftover debug printf
      
      Message-id: 1378117055-29620-1-git-send-email-kraxel@redhat.com
      Signed-off-by: default avatarAnthony Liguori <anthony@codemonkey.ws>
      9ea0f58f