Hi Cedric, On [2022 Jul 22] Fri 08:35:57, Cédric Le Goater wrote: > The SFDP table is 0x80 bytes long. The mandatory table for basic > features is available at byte 0x30 and an extra Macronix specific > table is available at 0x60. > > 4B opcodes are not supported. > > Signed-off-by: Cédric Le Goater <c...@kaod.org> > --- > hw/block/m25p80_sfdp.h | 3 +++ > hw/block/m25p80.c | 3 ++- > hw/block/m25p80_sfdp.c | 26 ++++++++++++++++++++++++++ > 3 files changed, 31 insertions(+), 1 deletion(-) > > diff --git a/hw/block/m25p80_sfdp.h b/hw/block/m25p80_sfdp.h > index d3a0a778ae84..0c46e669b335 100644 > --- a/hw/block/m25p80_sfdp.h > +++ b/hw/block/m25p80_sfdp.h > @@ -17,4 +17,7 @@ > > extern uint8_t m25p80_sfdp_n25q256a(uint32_t addr); > > +extern uint8_t m25p80_sfdp_mx25l25635e(uint32_t addr);
We could be without 'extern' in above hdr if we like (also the other patches), either way: Reviewed-by: Francisco Iglesias <frasse.igles...@gmail.com> > + > + > #endif > diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c > index 13e7b28fd2b0..028b026d8ba2 100644 > --- a/hw/block/m25p80.c > +++ b/hw/block/m25p80.c > @@ -232,7 +232,8 @@ static const FlashPartInfo known_devices[] = { > { INFO("mx25l6405d", 0xc22017, 0, 64 << 10, 128, 0) }, > { INFO("mx25l12805d", 0xc22018, 0, 64 << 10, 256, 0) }, > { INFO("mx25l12855e", 0xc22618, 0, 64 << 10, 256, 0) }, > - { INFO6("mx25l25635e", 0xc22019, 0xc22019, 64 << 10, 512, 0) }, > + { INFO6("mx25l25635e", 0xc22019, 0xc22019, 64 << 10, 512, 0), > + .sfdp_read = m25p80_sfdp_mx25l25635e }, > { INFO("mx25l25655e", 0xc22619, 0, 64 << 10, 512, 0) }, > { INFO("mx66l51235f", 0xc2201a, 0, 64 << 10, 1024, ER_4K | ER_32K) > }, > { INFO("mx66u51235f", 0xc2253a, 0, 64 << 10, 1024, ER_4K | ER_32K) > }, > diff --git a/hw/block/m25p80_sfdp.c b/hw/block/m25p80_sfdp.c > index 24ec05de79a1..6499c4c39954 100644 > --- a/hw/block/m25p80_sfdp.c > +++ b/hw/block/m25p80_sfdp.c > @@ -56,3 +56,29 @@ static const uint8_t sfdp_n25q256a[] = { > 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, > }; > define_sfdp_read(n25q256a); > + > + > +/* > + * Matronix > + */ > + > +/* mx25l25635e. No 4B opcodes */ > +static const uint8_t sfdp_mx25l25635e[] = { > + 0x53, 0x46, 0x44, 0x50, 0x00, 0x01, 0x01, 0xff, > + 0x00, 0x00, 0x01, 0x09, 0x30, 0x00, 0x00, 0xff, > + 0xc2, 0x00, 0x01, 0x04, 0x60, 0x00, 0x00, 0xff, > + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, > + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, > + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, > + 0xe5, 0x20, 0xf3, 0xff, 0xff, 0xff, 0xff, 0x0f, > + 0x44, 0xeb, 0x08, 0x6b, 0x08, 0x3b, 0x04, 0xbb, > + 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, > + 0xff, 0xff, 0x00, 0xff, 0x0c, 0x20, 0x0f, 0x52, > + 0x10, 0xd8, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, > + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, > + 0x00, 0x36, 0x00, 0x27, 0xf7, 0x4f, 0xff, 0xff, > + 0xd9, 0xc8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, > + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, > + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, > +}; > +define_sfdp_read(mx25l25635e) > -- > 2.35.3 >