W dniu 21.12.2015 o 12:35, Peter Crosthwaite pisze: > Commit subject subsystem prefix (block: m25p80:) needed. > > On Wed, Dec 16, 2015 at 4:57 AM, <marcin.krzemin...@nokia.com> wrote: >> From: Marcin Krzeminski <marcin.krzemin...@nokia.com> >> >> Signed-off-by: Marcin Krzeminski <marcin.krzemin...@nokia.com> >> --- >> hw/block/m25p80.c | 31 ++++++++++++++++++++++++++++--- >> 1 file changed, 28 insertions(+), 3 deletions(-) >> >> diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c >> index 1a547ae..6d5d90d 100644 >> --- a/hw/block/m25p80.c >> +++ b/hw/block/m25p80.c >> @@ -237,6 +237,9 @@ typedef enum { >> ERASE_32K = 0x52, >> ERASE_SECTOR = 0xd8, >> >> + EN_4BYTE_ADDR = 0xB7, >> + EX_4BYTE_ADDR = 0xE9, >> + >> RESET_ENABLE = 0x66, >> RESET_MEMORY = 0x99, >> >> @@ -267,6 +270,7 @@ typedef struct Flash { >> uint8_t cmd_in_progress; >> uint64_t cur_addr; >> bool write_enable; >> + bool four_bytes_address_mode; >> bool reset_enable; >> bool initialized; >> uint8_t reset_pin; >> @@ -405,11 +409,24 @@ void flash_write8(Flash *s, uint64_t addr, uint8_t >> data) >> s->dirty_page = page; >> } >> >> +static inline int is_4bytes(Flash *s) >> +{ >> + return s->four_bytes_address_mode; >> + } >> +} >> + >> static void complete_collecting_data(Flash *s) >> { >> - s->cur_addr = s->data[0] << 16; >> - s->cur_addr |= s->data[1] << 8; >> - s->cur_addr |= s->data[2]; >> + if (is_4bytes(s)) { >> + s->cur_addr = s->data[0] << 24; >> + s->cur_addr |= s->data[1] << 16; >> + s->cur_addr |= s->data[2] << 8; >> + s->cur_addr |= s->data[3]; >> + } else { >> + s->cur_addr = s->data[0] << 16; >> + s->cur_addr |= s->data[1] << 8; >> + s->cur_addr |= s->data[2]; >> + } > > Avoid the duped code with a loop: > > s->cur_addr = 0; > for (i = 0; i < (is_4bytes(s) ? 4 : 3); i++) { > s->cur_addr <<= 8; > s->cur_addr |= s->data[i]; > } Ok. Thanks, Marcin > > Otherwise: > > Reviewed-by: Peter Crosthwaite <crosthwaite.pe...@gmail.com> > > Regards, > Peter > >> >> s->state = STATE_IDLE; >> >> @@ -446,6 +463,7 @@ static void reset_memory(Flash *s) >> { >> s->cmd_in_progress = NOP; >> s->cur_addr = 0; >> + s->four_bytes_address_mode = false; >> s->len = 0; >> s->needed_bytes = 0; >> s->pos = 0; >> @@ -565,6 +583,12 @@ static void decode_new_cmd(Flash *s, uint32_t value) >> break; >> case NOP: >> break; >> + case EN_4BYTE_ADDR: >> + s->four_bytes_address_mode = true; >> + break; >> + case EX_4BYTE_ADDR: >> + s->four_bytes_address_mode = false; >> + break; >> case RESET_ENABLE: >> s->reset_enable = true; >> break; >> @@ -715,6 +739,7 @@ static const VMStateDescription vmstate_m25p80 = { >> VMSTATE_UINT8(cmd_in_progress, Flash), >> VMSTATE_UINT64(cur_addr, Flash), >> VMSTATE_BOOL(write_enable, Flash), >> + VMSTATE_BOOL(four_bytes_address_mode, Flash), >> VMSTATE_BOOL(reset_enable, Flash), >> VMSTATE_BOOL(initialized, Flash), >> VMSTATE_UINT8(reset_pin, Flash), >> -- >> 2.5.0 >> >> > >
[Qemu-devel] ODP: [PATCH 06/12] 4byte address mode support added.
Krzeminski, Marcin (Nokia - PL/Wroclaw) Mon, 21 Dec 2015 06:01:37 -0800
- Re: [Qemu-devel] [PATCH 05/12... Peter Crosthwaite
- [Qemu-devel] ODP: [PATCH ... Krzeminski, Marcin (Nokia - PL/Wroclaw)
- [Qemu-devel] [PATCH 07/12] Added s... marcin . krzeminski
- Re: [Qemu-devel] [PATCH 07/12... Peter Crosthwaite
- [Qemu-devel] ODP: [PATCH ... Krzeminski, Marcin (Nokia - PL/Wroclaw)
- [Qemu-devel] [PATCH 02/12] Added r... marcin . krzeminski
- Re: [Qemu-devel] [PATCH 02/12... Peter Crosthwaite
- [Qemu-devel] ODP: [PATCH ... Krzeminski, Marcin (Nokia - PL/Wroclaw)
- [Qemu-devel] [PATCH 06/12] 4byte a... marcin . krzeminski
- Re: [Qemu-devel] [PATCH 06/12... Peter Crosthwaite
- [Qemu-devel] ODP: [PATCH ... Krzeminski, Marcin (Nokia - PL/Wroclaw)
- Re: [Qemu-devel] [PATCH 06/12... Cédric Le Goater
- Re: [Qemu-devel] [PATCH 0... Peter Crosthwaite
- [Qemu-devel] [PATCH 11/12] Support... marcin . krzeminski
- [Qemu-devel] [PATCH 09/12] Support... marcin . krzeminski
- Re: [Qemu-devel] [PATCH 09/12... Peter Crosthwaite
- [Qemu-devel] ODP: [PATCH... Krzeminski, Marcin (Nokia - PL/Wroclaw)
- Re: [Qemu-devel] [PATCH 00/12] Sup... Krzeminski, Marcin (Nokia - PL/Wroclaw)
- [Qemu-devel] [PATCH 10/12] Support... marcin . krzeminski
- Re: [Qemu-devel] [PATCH 10/12... Peter Crosthwaite
- [Qemu-devel] ODP: [PATCH... Krzeminski, Marcin (Nokia - PL/Wroclaw)