1. 19 1月, 2017 3 次提交
    • L
      fw-cfg: bump "x-file-slots" to 0x20 for 2.9+ machine types · a5b3ebfd
      Laszlo Ersek 提交于
      More precisely, the "x-file-slots" count is bumped for all machine types
      that:
      (a) use fw_cfg, and
      (b) are not versioned (hence migration is not expected to work for them
          across QEMU releases anyway), or have version 2.9.
      
      This affects machine types implemented in the following source files:
      
      - "hw/arm/virt.c". The "virt-*" machine type is versioned, and the <= 2.8
        versions already depend on HW_COMPAT_2_8 (see commit e353aac5).
        Therefore adding the "x-file-slots" compat values to HW_COMPAT_2_8
        suffices.
      
      - "hw/i386/pc.c". The "pc-i440fx-*" (including "pc-*") and "pc-q35-*"
        machine types are versioned. Modifying HW_COMPAT_2_8 is sufficient here
        too (see commit "pc: Add 2.9 machine-types"). The "isapc" machtype is
        not versioned. The "xenfv" machine type, which uses fw_cfg for direct
        kernel booting, is also not versioned.
      
      - "hw/ppc/mac_newworld.c". The "mac99" machine type is not versioned.
      
      - "hw/ppc/mac_oldworld.c". The "g3beige" machine type is not versioned.
      
      - "hw/sparc/sun4m.c". None of the 9 machine types defined in this file
        appear versioned.
      
      - "hw/sparc64/sun4u.c". None of the 3 machine types defined in this file
        appear versioned.
      
      Cc: "Gabriel L. Somlo" <somlo@cmu.edu>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Alexander Graf <agraf@suse.de>
      Cc: Anthony Perard <anthony.perard@citrix.com>
      Cc: Artyom Tarasenko <atar4qemu@gmail.com>
      Cc: David Gibson <david@gibson.dropbear.id.au>
      Cc: Eduardo Habkost <ehabkost@redhat.com>
      Cc: Gerd Hoffmann <kraxel@redhat.com>
      Cc: Igor Mammedov <imammedo@redhat.com>
      Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Peter Maydell <peter.maydell@linaro.org>
      Cc: Stefano Stabellini <sstabellini@kernel.org>
      Signed-off-by: NLaszlo Ersek <lersek@redhat.com>
      Acked-by: NGabriel Somlo <somlo@cmu.edu>
      Tested-by: NGabriel Somlo <somlo@cmu.edu>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      Reviewed-by: NEduardo Habkost <ehabkost@redhat.com>
      a5b3ebfd
    • L
      fw-cfg: turn FW_CFG_FILE_SLOTS into a device property · e12f3a13
      Laszlo Ersek 提交于
      We'd like to raise the value of FW_CFG_FILE_SLOTS. Doing it naively could
      lead to problems with backward migration: a more recent QEMU (running an
      older machine type) would allow the guest, in fw_cfg_select(), to select a
      high key value that is unavailable in the same machine type implemented by
      the older (target) QEMU. On the target host, fw_cfg_data_read() for
      example could dereference nonexistent entries.
      
      As first step, size the FWCfgState.entries[*] and FWCfgState.entry_order
      arrays dynamically. All three array sizes will be influenced by the new
      field FWCfgState.file_slots (and matching device property).
      
      Make the following changes:
      
      - Replace the FW_CFG_FILE_SLOTS macro with FW_CFG_FILE_SLOTS_MIN (minimum
        count of fw_cfg file slots) in the header file. The value remains 0x10.
      
      - Replace all uses of FW_CFG_FILE_SLOTS with a helper function called
        fw_cfg_file_slots(), returning the new property.
      
      - Eliminate the macro FW_CFG_MAX_ENTRY, and replace all its uses with a
        helper function called fw_cfg_max_entry().
      
      - In the MMIO- and IO-mapped realize functions both, allocate all three
        arrays dynamically, based on the new property.
      
      - The new property defaults to FW_CFG_FILE_SLOTS_MIN. This is going to be
        customized in the following patches.
      
      Cc: "Gabriel L. Somlo" <somlo@cmu.edu>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Gerd Hoffmann <kraxel@redhat.com>
      Cc: Igor Mammedov <imammedo@redhat.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NLaszlo Ersek <lersek@redhat.com>
      Acked-by: NGabriel Somlo <somlo@cmu.edu>
      Tested-by: NGabriel Somlo <somlo@cmu.edu>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      Reviewed-by: NEduardo Habkost <ehabkost@redhat.com>
      e12f3a13
    • M
      fw-cfg: support writeable blobs · baf2d5bf
      Michael S. Tsirkin 提交于
      Useful to send guest data back to QEMU.
      
      Changes from Laszlo Ersek <lersek@redhat.com>:
      - rebase the patch from Michael Tsirkin's original postings at [1] and [2]
        to the following patches:
        - loader: Allow a custom AddressSpace when loading ROMs
        - loader: Add AddressSpace loading support to uImages
        - loader: fix handling of custom address spaces when adding ROM blobs
      - reject such writes immediately that would exceed the end of the array,
        rather than performing a partial write before setting the error bit: see
        the (len != dma.length) condition
      - document the write interface
      
      [1] http://lists.nongnu.org/archive/html/qemu-devel/2016-02/msg04968.html
      [2] http://lists.nongnu.org/archive/html/qemu-devel/2016-03/msg02735.html
      
      Cc: "Gabriel L. Somlo" <somlo@cmu.edu>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Gerd Hoffmann <kraxel@redhat.com>
      Cc: Igor Mammedov <imammedo@redhat.com>
      Cc: Michael Walle <michael@walle.cc>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Peter Maydell <peter.maydell@linaro.org>
      Cc: Shannon Zhao <zhaoshenglong@huawei.com>
      Cc: qemu-arm@nongnu.org
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NLaszlo Ersek <lersek@redhat.com>
      Reviewed-by: NMarcel Apfelbaum <marcel@redhat.com>
      Acked-by: NGabriel Somlo <somlo@cmu.edu>
      Tested-by: NGabriel Somlo <somlo@cmu.edu>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      Reviewed-by: NEduardo Habkost <ehabkost@redhat.com>
      baf2d5bf
  2. 19 4月, 2016 1 次提交
    • M
      fw_cfg: Adopt /opt/RFQDN convention · 63d3145a
      Markus Armbruster 提交于
      FW CFG's primary user is QEMU, which uses it to expose configuration
      information (in the widest sense) to Firmware.  Thus the name FW CFG.
      
      FW CFG can also be used by others for their own purposes.  QEMU is
      merely acting as transport then.  Names starting with opt/ are
      reserved for such uses.  There is no provision, however, to guide safe
      sharing among different such users.
      
      Fix that, loosely following QMP precedence: names should start with
      opt/RFQDN/, where RFQDN is a reverse fully qualified domain name you
      control.
      
      Based on a more ambitious patch from Michael Tsirkin.
      
      Cc: Gerd Hoffmann <kraxel@redhat.com>
      Cc: Gabriel L. Somlo <somlo@cmu.edu>
      Cc: Laszlo Ersek <lersek@redhat.com>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      Acked-by: NGabriel Somlo <somlo@cmu.edu>
      Reviewed-by: NLaszlo Ersek <lersek@redhat.com>
      63d3145a
  3. 08 3月, 2016 1 次提交
  4. 15 12月, 2015 1 次提交
  5. 19 10月, 2015 4 次提交
  6. 10 6月, 2015 1 次提交
    • G
      fw_cfg: insert fw_cfg file blobs via qemu cmdline · 81b2b810
      Gabriel L. Somlo 提交于
      Allow user supplied files to be inserted into the fw_cfg
      device before starting the guest. Since fw_cfg_add_file()
      already disallows duplicate fw_cfg file names, qemu will
      exit with an error message if the user supplies multiple
      blobs with the same fw_cfg file name, or if a blob name
      collides with a fw_cfg name programmatically added from
      within the QEMU source code. A warning message will be
      printed if the fw_cfg item name does not begin with the
      prefix "opt/", which is recommended for external, user
      provided blobs.
      Signed-off-by: NGabriel Somlo <somlo@cmu.edu>
      Reviewed-by: NLaszlo Ersek <lersek@redhat.com>
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      81b2b810
  7. 14 4月, 2015 1 次提交