[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] hw/block/nand: Decommission the NAND museum
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH] hw/block/nand: Decommission the NAND museum |
Date: |
Sun, 13 Sep 2020 13:38:12 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
On 8/14/20 3:23 PM, Philippe Mathieu-Daudé wrote:
> I forgot to Cc qemu-arm@, doing it now since most of the users
> of this are ARM machines.
The machine using this device are:
- axis-dev88
- tosa (via tc6393xb_init)
- spitz based (akita, borzoi, terrier)
$ git grep nand_init
hw/arm/spitz.c:223: s->nand = nand_init(nand ?
blk_by_legacy_dinfo(nand) : NULL,
hw/block/nand.c:641:DeviceState *nand_init(BlockBackend *blk, int
manf_id, int chip_id)
hw/cris/axis_dev88.c:278: nand_state.nand = nand_init(nand ?
blk_by_legacy_dinfo(nand) : NULL,
hw/display/tc6393xb.c:569: s->flash = nand_init(nand ?
blk_by_legacy_dinfo(nand) : NULL,
>
> On 8/14/20 3:21 PM, Philippe Mathieu-Daudé wrote:
>> This is the QEMU equivalent of this Linux commit (but 7 years later):
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f7025a43a9da2
>>
>> The MTD subsystem has its own small museum of ancient NANDs
>> in a form of the CONFIG_MTD_NAND_MUSEUM_IDS configuration option.
>> The museum contains stone age NANDs with 256 bytes pages, as well
>> as iron age NANDs with 512 bytes per page and up to 8MiB page size.
>>
>> It is with great sorrow that I inform you that the museum is being
>> decommissioned. The MTD subsystem is out of budget for Kconfig
>> options and already has too many of them, and there is a general
>> kernel trend to simplify the configuration menu.
>>
>> We remove the stone age exhibits along with closing the museum,
>> but some of the iron age ones are transferred to the regular NAND
>> depot. Namely, only those which have unique device IDs are
>> transferred, and the ones which have conflicting device IDs are
>> removed.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> hw/block/nand.c | 13 ++++++-------
>> 1 file changed, 6 insertions(+), 7 deletions(-)
>>
>> diff --git a/hw/block/nand.c b/hw/block/nand.c
>> index 654e0cb5d1..7d7ccc9aa4 100644
>> --- a/hw/block/nand.c
>> +++ b/hw/block/nand.c
>> @@ -137,7 +137,7 @@ static void mem_and(uint8_t *dest, const uint8_t *src,
>> size_t n)
>> # define ADDR_SHIFT 16
>> # include "nand.c"
>>
>> -/* Information based on Linux drivers/mtd/nand/nand_ids.c */
>> +/* Information based on Linux drivers/mtd/nand/raw/nand_ids.c */
>> static const struct {
>> int size;
>> int width;
>> @@ -153,15 +153,14 @@ static const struct {
>> [0xe8] = { 1, 8, 8, 4, 0 },
>> [0xec] = { 1, 8, 8, 4, 0 },
>> [0xea] = { 2, 8, 8, 4, 0 },
>> - [0xd5] = { 4, 8, 9, 4, 0 },
>> [0xe3] = { 4, 8, 9, 4, 0 },
>> [0xe5] = { 4, 8, 9, 4, 0 },
>> - [0xd6] = { 8, 8, 9, 4, 0 },
>>
>> - [0x39] = { 8, 8, 9, 4, 0 },
>> - [0xe6] = { 8, 8, 9, 4, 0 },
>> - [0x49] = { 8, 16, 9, 4, NAND_BUSWIDTH_16 },
>> - [0x59] = { 8, 16, 9, 4, NAND_BUSWIDTH_16 },
>> + [0x6b] = { 4, 8, 9, 4, 0 },
>> + [0xe3] = { 4, 8, 9, 4, 0 },
>> + [0xe5] = { 4, 8, 9, 4, 0 },
>> + [0xd6] = { 8, 8, 9, 4, 0 },
>> + [0xe6] = { 8, 8, 9, 4, 0 },
>>
>> [0x33] = { 16, 8, 9, 5, 0 },
>> [0x73] = { 16, 8, 9, 5, 0 },
>>
>