Re: [PATCH] mtd: spi-nor: Add support for BoHong bh25q128as

David Bauer
2021-05-10T09:47:45Z

Hi Michael,

thanks for your review.

On 5/10/21 10:00 AM, Michael Walle wrote

[...]

>> +static const struct flash_info bohong_parts[] = {
>> +    /* BoHong Microelectronics */
>> +    { "bh25q128as", INFO(0x684018, 0, 64 * 1024, 256,
>
> I couldn't find "BoHong" in JEP106BC. 0x68 (without continuation codes)
> is "Convex Computer". So this is wrong. OTOH I'm not sure, how many
> SPI flashes "convex computer" have, if any ;) This company was brought
> by HP in the end.
>
> In any case, this patch depends on how we handle continuation codes or
> if we can handle them at all. Or if this flash just lie about its
> manufacturer id and don't and CC.

First of all, BoHong and Boya microelectronics seems to be the same company, as their
datasheets seem to copy each other. There's not much information about either of both,
so I'd say that's a fair assumption.

Regarding the continuation codes, Boya is listed in bank nine, however in this case I
should currently read an all 0x7f ID shouldn't I? The datasheet also only specifies 3
bytes as a return value for register 0x9fh :(

Best
David

>
> See also:
> https://lkml.org/lkml/2021/2/7/223
> https://www.spinics.net/lists/kernel/msg3808260.html
>
>> +                SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
>> +};
>> +
>> +const struct spi_nor_manufacturer spi_nor_bohong = {
>> +    .name = "bohong",
>> +    .parts = bohong_parts,
>> +    .nparts = ARRAY_SIZE(bohong_parts),
>> +};
>> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
>> index 0522304f52fa..03a05bce6231 100644
>> --- a/drivers/mtd/spi-nor/core.c
>> +++ b/drivers/mtd/spi-nor/core.c
>> @@ -2199,6 +2199,7 @@ int spi_nor_sr2_bit7_quad_enable(struct spi_nor *nor)
>>
>>  static const struct spi_nor_manufacturer *manufacturers[] = {
>>      &spi_nor_atmel,
>> +    &spi_nor_bohong,
>>      &spi_nor_catalyst,
>>      &spi_nor_eon,
>>      &spi_nor_esmt,
>> diff --git a/drivers/mtd/spi-nor/core.h b/drivers/mtd/spi-nor/core.h
>> index 4a3f7f150b5d..b71323317235 100644
>> --- a/drivers/mtd/spi-nor/core.h
>> +++ b/drivers/mtd/spi-nor/core.h
>> @@ -409,6 +409,7 @@ struct spi_nor_manufacturer {
>>
>>  /* Manufacturer drivers. */
>>  extern const struct spi_nor_manufacturer spi_nor_atmel;
>> +extern const struct spi_nor_manufacturer spi_nor_bohong;
>>  extern const struct spi_nor_manufacturer spi_nor_catalyst;
>>  extern const struct spi_nor_manufacturer spi_nor_eon;
>>  extern const struct spi_nor_manufacturer spi_nor_esmt;