From: Gleb Natapov <gleb@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: seabios@seabios.org, qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [SeaBIOS] [PATCH 5/8] roms: use new fw_cfg file xfer support.
Date: Sun, 20 Dec 2009 10:45:59 +0200 [thread overview]
Message-ID: <20091220084559.GG4490@redhat.com> (raw)
In-Reply-To: <1261134074-11795-6-git-send-email-kraxel@redhat.com>
On Fri, Dec 18, 2009 at 12:01:11PM +0100, Gerd Hoffmann wrote:
> roms: use fw_cfg for vgabios and option rom loading, additionally to
> deploying them the traditional way (copy to 0xc0000 -> 0xe0000 range).
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
> hw/loader.c | 25 ++++++++++++++++++++++---
> hw/loader.h | 5 +++--
> hw/pc.c | 2 ++
> 3 files changed, 27 insertions(+), 5 deletions(-)
>
> diff --git a/hw/loader.c b/hw/loader.c
> index 2d7a2c4..ccc0ccc 100644
> --- a/hw/loader.c
> +++ b/hw/loader.c
> @@ -48,6 +48,7 @@
> #include "sysemu.h"
> #include "uboot_image.h"
> #include "loader.h"
> +#include "fw_cfg.h"
>
> #include <zlib.h>
>
> @@ -528,6 +529,8 @@ struct Rom {
> uint8_t *data;
> int align;
> int isrom;
> + char *fw_dir;
> + char *fw_file;
>
> target_phys_addr_t min;
> target_phys_addr_t max;
> @@ -556,7 +559,7 @@ static void rom_insert(Rom *rom)
> QTAILQ_INSERT_TAIL(&roms, rom, next);
> }
>
> -int rom_add_file(const char *file,
> +int rom_add_file(const char *file, const char *fw_dir, const char *fw_file,
Currently file == fw_file except for rom_add_file_fixed. Is this always
going to be the case? If yes may be better to pass "bool fixed" instead
of "const char *fw_file"?
> target_phys_addr_t min, target_phys_addr_t max, int align)
> {
> Rom *rom;
> @@ -576,6 +579,8 @@ int rom_add_file(const char *file,
> goto err;
> }
>
> + rom->fw_dir = fw_dir ? qemu_strdup(fw_dir) : NULL;
> + rom->fw_file = fw_file ? qemu_strdup(fw_file) : NULL;
> rom->align = align;
> rom->min = min;
> rom->max = max;
> @@ -623,14 +628,16 @@ int rom_add_vga(const char *file)
> {
> if (!rom_enable_driver_roms)
> return 0;
> - return rom_add_file(file, PC_ROM_MIN_VGA, PC_ROM_MAX, PC_ROM_ALIGN);
> + return rom_add_file(file, "vgaroms", file,
> + PC_ROM_MIN_VGA, PC_ROM_MAX, PC_ROM_ALIGN);
> }
>
> int rom_add_option(const char *file)
> {
> if (!rom_enable_driver_roms)
> return 0;
> - return rom_add_file(file, PC_ROM_MIN_OPTION, PC_ROM_MAX, PC_ROM_ALIGN);
> + return rom_add_file(file, "genroms", file,
> + PC_ROM_MIN_OPTION, PC_ROM_MAX, PC_ROM_ALIGN);
> }
>
> static void rom_reset(void *unused)
> @@ -692,6 +699,18 @@ int rom_load_all(void)
> return 0;
> }
>
> +int rom_load_fw(void *fw_cfg)
> +{
> + Rom *rom;
> +
> + QTAILQ_FOREACH(rom, &roms, next) {
> + if (!rom->fw_file)
> + continue;
> + fw_cfg_add_file(fw_cfg, rom->fw_dir, rom->fw_file, rom->data, rom->romsize);
> + }
> + return 0;
> +}
> +
> static Rom *find_rom(target_phys_addr_t addr)
> {
> Rom *rom;
> diff --git a/hw/loader.h b/hw/loader.h
> index b3311a3..634f7d5 100644
> --- a/hw/loader.h
> +++ b/hw/loader.h
> @@ -19,17 +19,18 @@ void pstrcpy_targphys(const char *name,
> target_phys_addr_t dest, int buf_size,
> const char *source);
>
> -int rom_add_file(const char *file,
> +int rom_add_file(const char *file, const char *fw_dir, const char *fw_file,
> target_phys_addr_t min, target_phys_addr_t max, int align);
> int rom_add_blob(const char *name, const void *blob, size_t len,
> target_phys_addr_t min, target_phys_addr_t max, int align);
> int rom_load_all(void);
> +int rom_load_fw(void *fw_cfg);
> int rom_copy(uint8_t *dest, target_phys_addr_t addr, size_t size);
> void *rom_ptr(target_phys_addr_t addr);
> void do_info_roms(Monitor *mon);
>
> #define rom_add_file_fixed(_f, _a) \
> - rom_add_file(_f, _a, 0, 0)
> + rom_add_file(_f, NULL, NULL, _a, 0, 0)
> #define rom_add_blob_fixed(_f, _b, _l, _a) \
> rom_add_blob(_f, _b, _l, _a, 0, 0)
>
> diff --git a/hw/pc.c b/hw/pc.c
> index 147a9a7..be70f50 100644
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@ -1248,6 +1248,8 @@ static void pc_init1(ram_addr_t ram_size,
> }
> }
> }
> +
> + rom_load_fw(fw_cfg);
> }
>
> static void pc_init_pci(ram_addr_t ram_size,
> --
> 1.6.5.2
>
>
> _______________________________________________
> SeaBIOS mailing list
> SeaBIOS@seabios.org
> http://www.seabios.org/mailman/listinfo/seabios
--
Gleb.
next prev parent reply other threads:[~2009-12-20 8:46 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-18 11:01 [Qemu-devel] [PATCH 0/8] option rom loading overhaul Gerd Hoffmann
2009-12-18 11:01 ` [Qemu-devel] [PATCH 1/8] Support PCI based option rom loading Gerd Hoffmann
2009-12-19 10:57 ` Blue Swirl
2009-12-20 15:34 ` Anthony Liguori
2009-12-20 17:02 ` Blue Swirl
2009-12-20 17:18 ` Alexander Graf
2009-12-20 17:55 ` Anthony Liguori
2009-12-20 18:01 ` Alexander Graf
2009-12-20 18:24 ` Andreas Färber
2009-12-20 18:53 ` Blue Swirl
2009-12-20 21:24 ` Benjamin Herrenschmidt
2009-12-20 21:23 ` Benjamin Herrenschmidt
2009-12-18 11:01 ` [Qemu-devel] [PATCH 2/8] pci romfiles: add property, add default to PCIDeviceInfo Gerd Hoffmann
2010-01-11 21:18 ` [Qemu-devel] [RFC] New naming rules for GPXE romfiles Stefan Weil
2010-01-11 21:34 ` Anthony Liguori
2010-01-12 10:23 ` Kevin Wolf
2009-12-18 11:01 ` [Qemu-devel] [PATCH 3/8] fw_cfg: make calls typesafe Gerd Hoffmann
2009-12-18 11:01 ` [Qemu-devel] [PATCH 4/8] fw_cfg: add API for file transfer Gerd Hoffmann
2009-12-19 12:06 ` Blue Swirl
2009-12-20 8:42 ` [Qemu-devel] Re: [SeaBIOS] " Gleb Natapov
2009-12-18 11:01 ` [Qemu-devel] [PATCH 5/8] roms: use new fw_cfg file xfer support Gerd Hoffmann
2009-12-20 8:45 ` Gleb Natapov [this message]
2009-12-18 11:01 ` [Qemu-devel] [PATCH 6/8] roms: remove option rom packing logic Gerd Hoffmann
2009-12-18 11:01 ` [Qemu-devel] [PATCH 7/8] updated seabios binary for testing convinience Gerd Hoffmann
2009-12-18 11:01 ` [Qemu-devel] [PATCH 8/8] debug: enable bios messages Gerd Hoffmann
2009-12-18 14:35 ` [Qemu-devel] Re: [SeaBIOS] [PATCH 0/8] option rom loading overhaul Anthony Liguori
2009-12-18 16:34 ` Gerd Hoffmann
2009-12-18 16:42 ` Anthony Liguori
2009-12-18 17:03 ` Gerd Hoffmann
2009-12-18 17:12 ` Anthony Liguori
2009-12-19 1:48 ` Kevin O'Connor
2009-12-19 3:07 ` Anthony Liguori
2009-12-18 17:14 ` Anthony Liguori
2009-12-18 18:04 ` Gerd Hoffmann
2009-12-18 19:41 ` Sebastian Herbszt
2009-12-18 19:53 ` Anthony Liguori
2009-12-18 20:10 ` Sebastian Herbszt
2009-12-20 8:38 ` Gleb Natapov
2009-12-20 14:43 ` Anthony Liguori
2009-12-20 14:52 ` Gleb Natapov
2009-12-20 14:58 ` Anthony Liguori
2009-12-20 15:07 ` Gleb Natapov
2009-12-20 15:11 ` Anthony Liguori
2009-12-20 15:20 ` Avi Kivity
2009-12-20 15:31 ` Anthony Liguori
2009-12-20 15:35 ` Avi Kivity
2009-12-22 13:04 ` Paul Brook
2009-12-22 13:09 ` Avi Kivity
2009-12-22 15:11 ` Anthony Liguori
2009-12-22 15:54 ` Paul Brook
2009-12-22 16:16 ` Anthony Liguori
2009-12-20 15:23 ` Gleb Natapov
2009-12-20 15:28 ` Anthony Liguori
2009-12-20 15:33 ` Gleb Natapov
2009-12-20 15:39 ` Anthony Liguori
2009-12-20 15:52 ` Gleb Natapov
2009-12-20 16:08 ` Blue Swirl
2009-12-20 16:15 ` Gleb Natapov
2009-12-20 16:23 ` Blue Swirl
2009-12-20 17:48 ` Anthony Liguori
2009-12-21 1:59 ` Kevin O'Connor
2009-12-21 7:32 ` Gleb Natapov
2009-12-21 16:40 ` Anthony Liguori
2009-12-21 16:43 ` Gleb Natapov
2009-12-21 17:26 ` Anthony Liguori
2009-12-21 17:43 ` Gleb Natapov
2009-12-21 18:24 ` [Qemu-devel] Re: Re: [SeaBIOS] [PATCH 0/8] option rom loadingoverhaul Sebastian Herbszt
2009-12-21 18:36 ` Gleb Natapov
2009-12-21 19:28 ` Sebastian Herbszt
2009-12-21 19:57 ` Gleb Natapov
2009-12-21 19:17 ` [Qemu-devel] " Anthony Liguori
2009-12-21 19:39 ` Sebastian Herbszt
2009-12-21 19:53 ` Gleb Natapov
2009-12-21 20:16 ` Sebastian Herbszt
2009-12-22 7:58 ` Gleb Natapov
2009-12-22 14:57 ` Anthony Liguori
2009-12-21 19:48 ` Gleb Natapov
2009-12-21 19:13 ` [Qemu-devel] Re: [SeaBIOS] [PATCH 0/8] option rom loading overhaul Anthony Liguori
2009-12-21 19:43 ` Gleb Natapov
2009-12-21 23:54 ` Anthony Liguori
2009-12-22 20:50 ` [Qemu-devel] Re: Re: [SeaBIOS] [PATCH 0/8] option rom loadingoverhaul Sebastian Herbszt
2009-12-21 7:40 ` [Qemu-devel] Re: [SeaBIOS] [PATCH 0/8] option rom loading overhaul Gleb Natapov
2009-12-21 17:27 ` Michael S. Tsirkin
2010-01-12 4:48 ` Jamie Lokier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20091220084559.GG4490@redhat.com \
--to=gleb@redhat.com \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=seabios@seabios.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.