[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 15/16] boot-order-test: Support fw_cfg in I/O
From: |
Anthony Liguori |
Subject: |
Re: [Qemu-devel] [PATCH v3 15/16] boot-order-test: Support fw_cfg in I/O space |
Date: |
Fri, 14 Jun 2013 08:53:50 -0500 |
User-agent: |
Notmuch/0.15.2+77~g661dcf8 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu) |
Markus Armbruster <address@hidden> writes:
> Next commit needs it.
>
> Cc: Blue Swirl <address@hidden>
> Signed-off-by: Markus Armbruster <address@hidden>
> ---
> tests/boot-order-test.c | 24 ++++++++++++++++--------
> 1 file changed, 16 insertions(+), 8 deletions(-)
>
> diff --git a/tests/boot-order-test.c b/tests/boot-order-test.c
> index 7b1edc1..d1d99f8 100644
> --- a/tests/boot-order-test.c
> +++ b/tests/boot-order-test.c
> @@ -133,23 +133,31 @@ static void test_prep_boot_order(void)
> test_boot_orders("prep", read_boot_order_prep, test_cases_prep);
> }
>
> -static void read_fw_cfg(uint64_t cfg_addr, uint16_t cmd,
> +static void read_fw_cfg(uint64_t cfg_addr, bool addr_is_io, uint16_t cmd,
> void *buf, size_t len)
I missed it earlier, but you can use libqos/fw_cfg.h for this.
Regards,
Anthony Liguori
> {
> uint8_t *p = buf;
> size_t i;
>
> - writew(cfg_addr, cmd);
> - for (i = 0; i < len; i++) {
> - p[i] = readb(cfg_addr + 2);
> + if (addr_is_io) {
> + outw(cfg_addr, cmd);
> + for (i = 0; i < len; i++) {
> + p[i] = inb(cfg_addr + 1);
> + }
> + } else {
> + writew(cfg_addr, cmd);
> + for (i = 0; i < len; i++) {
> + p[i] = readb(cfg_addr + 2);
> + }
> }
> }
>
> -static uint16_t read_fw_cfg_i16(uint64_t cfg_addr, uint16_t cmd)
> +static uint16_t read_fw_cfg_i16(uint64_t cfg_addr, bool addr_is_io,
> + uint16_t cmd)
> {
> uint16_t value;
>
> - read_fw_cfg(cfg_addr, cmd, &value, sizeof(value));
> + read_fw_cfg(cfg_addr, addr_is_io, cmd, &value, sizeof(value));
> return le16_to_cpu(value);
> }
>
> @@ -157,7 +165,7 @@ static uint16_t read_fw_cfg_i16(uint64_t cfg_addr,
> uint16_t cmd)
>
> static uint64_t read_boot_order_pmac(void)
> {
> - return read_fw_cfg_i16(PMAC_CFG_ADDR, FW_CFG_BOOT_DEVICE);
> + return read_fw_cfg_i16(PMAC_CFG_ADDR, false, FW_CFG_BOOT_DEVICE);
> }
>
> static const boot_order_test test_cases_fw_cfg[] = {
> @@ -182,7 +190,7 @@ static void test_pmac_newworld_boot_order(void)
>
> static uint64_t read_boot_order_sun4m(void)
> {
> - return read_fw_cfg_i16(SUN4M_CFG_ADDR, FW_CFG_BOOT_DEVICE);
> + return read_fw_cfg_i16(SUN4M_CFG_ADDR, false, FW_CFG_BOOT_DEVICE);
> }
>
> static void test_sun4m_boot_order(void)
> --
> 1.7.11.7
- Re: [Qemu-devel] [PATCH v3 03/16] vl: Fix -boot order and once regressions, and related bugs, (continued)
- [Qemu-devel] [PATCH v3 12/16] boot-order-test: Code motion for better readability, Markus Armbruster, 2013/06/14
- [Qemu-devel] [PATCH v3 06/16] doc: Drop ref to Bochs from -no-fd-bootchk documentation, Markus Armbruster, 2013/06/14
- [Qemu-devel] [PATCH v3 14/16] boot-order-test: Add tests for Sun4m, Markus Armbruster, 2013/06/14
- [Qemu-devel] [PATCH v3 11/16] boot-order-test: Better separate target-specific and generic parts, Markus Armbruster, 2013/06/14
- [Qemu-devel] [PATCH v3 09/16] boot-order-test: Add tests for PowerMacs, Markus Armbruster, 2013/06/14
- [Qemu-devel] [PATCH v3 15/16] boot-order-test: Support fw_cfg in I/O space, Markus Armbruster, 2013/06/14
- Re: [Qemu-devel] [PATCH v3 15/16] boot-order-test: Support fw_cfg in I/O space,
Anthony Liguori <=
- [Qemu-devel] [PATCH v3 16/16] boot-order-test: Add tests for Sun4u, Markus Armbruster, 2013/06/14
- Re: [Qemu-devel] [PATCH v3 00/16] -boot and -no-fd-bootchk fixes, Anthony Liguori, 2013/06/21