qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v5 12/24] hw/nand.c: bug fix to erase operation


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH v5 12/24] hw/nand.c: bug fix to erase operation
Date: Thu, 28 Feb 2013 17:04:42 +0000

On 27 February 2013 07:15, Kuo-Jung Su <address@hidden> wrote:
> From: Kuo-Jung Su <address@hidden>
>
> The s->addr should be reset along with the s->addrlen,
> or it might have the previous address shifted to MSB
> and then causes problem to nand erase operation.
>
> Signed-off-by: Kuo-Jung Su <address@hidden>
> ---
>  hw/nand.c |    1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/hw/nand.c b/hw/nand.c
> index 7f40ebf..3cf91c5 100644
> --- a/hw/nand.c
> +++ b/hw/nand.c
> @@ -511,6 +511,7 @@ void nand_setio(DeviceState *dev, uint32_t value)
>              nand_command(s);
>
>          if (s->cmd != NAND_CMD_RANDOMREAD2) {
> +            s->addr = 0;
>              s->addrlen = 0;
>          }
>      }

I think this patch is probably right, but the code in nand_setio()
is just awful. It's trying to implement the way some commands are
"do something now" and some are "expect an address and do
something when you have the full address" and some are "command
now; address follows; final command to say now do it". But it's a
pile of conditionals that I think are harder to understand than if
there were a table of commands which were flagged for whether they
wanted addresses or not.

-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]