On 3/18/24 09:42, Mihai Sain wrote:
Add support to nand info for printing the manufacturer,model and size.
The manufacturer and model are printed only for ONFI flashes.

U-Boot> nand info

Device 0: nand0, sector size 256 KiB
   Manufacturer  MACRONIX
   Model         MX30LF4G28AD
   Device size        512 MiB
   Page size         4096 b
   OOB size           256 b
   Erase size      262144 b
   ecc strength         8 bits
   ecc step size      512 b
   subpagesize       4096 b
   options       0x00004200
   bbt options   0x00028000

Signed-off-by: Mihai Sain <mihai.s...@microchip.com>

Changes in v2:
--------------
* use #ifdef directive for ONFI flashes.
* use unsigned int for chipsize.
---
  cmd/nand.c | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/cmd/nand.c b/cmd/nand.c
index fe834c4ac5..5773246d64 100644
--- a/cmd/nand.c
+++ b/cmd/nand.c
@@ -418,6 +418,11 @@ static void nand_print_and_set_info(int idx)
                printf("%dx ", chip->numchips);
        printf("%s, sector size %u KiB\n",
               mtd->name, mtd->erasesize >> 10);
+#ifdef CONFIG_SYS_NAND_ONFI_DETECTION
+       printf("  Manufacturer  %s \n", chip->onfi_params.manufacturer);
+       printf("  Model         %s \n", chip->onfi_params.model);
+#endif
+       printf("  Device size   %8u MiB\n", (unsigned int)(chip->chipsize >> 
20));
        printf("  Page size     %8d b\n", mtd->writesize);
        printf("  OOB size      %8d b\n", mtd->oobsize);
        printf("  Erase size    %8d b\n", mtd->erasesize);

Can you refactor the logic out of the end of nand_detect as a separate
function and use that instead? That will cover more cases (e.g. JEDEC).

--Sean

Reply via email to