[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg |
Date: |
Tue, 16 Dec 2014 20:49:10 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 |
On 16/12/2014 20:00, Laszlo Ersek wrote:
> Yes.
>
> The root of this question is what each of
>
> enum device_endian {
> DEVICE_NATIVE_ENDIAN,
> DEVICE_BIG_ENDIAN,
> DEVICE_LITTLE_ENDIAN,
> };
Actually, I think the root of the answer :) is that fw_cfg_read (and
thus fw_cfg_data_mem_read) is not idempotent. The split/compose stuff
accesses the bytes at offsets 8,9,10,11,12,13,14,15 and composes them
according to the endianness.
In the case of fw_cfg it just retrieves 8 bytes, but in the case of host
big endian it reads them in the "wrong" order for some reason (sorry, I
haven't looked at this thoroughly).
So the solution is:
1) make fw_cfg_data_mem_ops DEVICE_LITTLE_ENDIAN
2) make fw_cfg_data_mem_read and fw_cfg_data_mem_write call fw_cfg_read
and fw_cfg_write SIZE times and build up a value from the lowest byte up.
Paolo
- [Qemu-devel] [PATCH v4 0/8] fw_cfg, bootorder, and UEFI+'-kernel' on arm/virt, Laszlo Ersek, 2014/12/12
- [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg, Laszlo Ersek, 2014/12/12
- Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg, Andrew Jones, 2014/12/16
- Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg, Laszlo Ersek, 2014/12/16
- Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg,
Paolo Bonzini <=
- Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg, Laszlo Ersek, 2014/12/16
- Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg, Laszlo Ersek, 2014/12/16
- Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg, Paolo Bonzini, 2014/12/16
- Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg, Laszlo Ersek, 2014/12/16
- Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg, Paolo Bonzini, 2014/12/16
- Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg, Peter Maydell, 2014/12/16
- Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg, Laszlo Ersek, 2014/12/17
- Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg, Paolo Bonzini, 2014/12/17
- Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg, Alexander Graf, 2014/12/17
- Re: [Qemu-devel] [PATCH v4 1/8] fw_cfg: max access size and region size are the same for MMIO data reg, Peter Maydell, 2014/12/16