[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] nvme: 64kB page size fixes
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] nvme: 64kB page size fixes |
Date: |
Tue, 02 Dec 2014 21:18:59 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 |
On 27/11/2014 04:39, Anton Blanchard wrote:
> Initialise our maximum page size capability to 64kB and increase
> the page_size variable from 16 to 32 bits.
>
> Signed-off-by: Anton Blanchard <address@hidden>
> --
>
> diff --git a/hw/block/nvme.c b/hw/block/nvme.c
> index 1327658..aa1ed98 100644
> --- a/hw/block/nvme.c
> +++ b/hw/block/nvme.c
> @@ -811,6 +811,7 @@ static int nvme_init(PCIDevice *pci_dev)
> NVME_CAP_SET_AMS(n->bar.cap, 1);
> NVME_CAP_SET_TO(n->bar.cap, 0xf);
> NVME_CAP_SET_CSS(n->bar.cap, 1);
> + NVME_CAP_SET_MPSMAX(n->bar.cap, 4);
>
> n->bar.vs = 0x00010001;
> n->bar.intmc = n->bar.intms = 0;
> diff --git a/hw/block/nvme.h b/hw/block/nvme.h
> index 993c511..b6ccb65 100644
> --- a/hw/block/nvme.h
> +++ b/hw/block/nvme.h
> @@ -688,7 +688,7 @@ typedef struct NvmeCtrl {
> NvmeBar bar;
> BlockConf conf;
>
> - uint16_t page_size;
> + uint32_t page_size;
> uint16_t page_bits;
> uint16_t max_prp_ents;
> uint16_t cqe_size;
>
>
This should probably be a property of the device instead. If you want
to change the default, you need to preserve a backwards-compatible value
for pre-2.3 machine types (-M pc-i440fx-2.2, -M pc-i440fx-2.1 etc.).
Paolo