root/include/linux/mtd/jedec.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Copyright © 2000-2010 David Woodhouse <dwmw2@infradead.org>
   4  *                       Steven J. Hill <sjhill@realitydiluted.com>
   5  *                       Thomas Gleixner <tglx@linutronix.de>
   6  *
   7  * Contains all JEDEC related definitions
   8  */
   9 
  10 #ifndef __LINUX_MTD_JEDEC_H
  11 #define __LINUX_MTD_JEDEC_H
  12 
  13 struct jedec_ecc_info {
  14         u8 ecc_bits;
  15         u8 codeword_size;
  16         __le16 bb_per_lun;
  17         __le16 block_endurance;
  18         u8 reserved[2];
  19 } __packed;
  20 
  21 /* JEDEC features */
  22 #define JEDEC_FEATURE_16_BIT_BUS        (1 << 0)
  23 
  24 struct nand_jedec_params {
  25         /* rev info and features block */
  26         /* 'J' 'E' 'S' 'D'  */
  27         u8 sig[4];
  28         __le16 revision;
  29         __le16 features;
  30         u8 opt_cmd[3];
  31         __le16 sec_cmd;
  32         u8 num_of_param_pages;
  33         u8 reserved0[18];
  34 
  35         /* manufacturer information block */
  36         char manufacturer[12];
  37         char model[20];
  38         u8 jedec_id[6];
  39         u8 reserved1[10];
  40 
  41         /* memory organization block */
  42         __le32 byte_per_page;
  43         __le16 spare_bytes_per_page;
  44         u8 reserved2[6];
  45         __le32 pages_per_block;
  46         __le32 blocks_per_lun;
  47         u8 lun_count;
  48         u8 addr_cycles;
  49         u8 bits_per_cell;
  50         u8 programs_per_page;
  51         u8 multi_plane_addr;
  52         u8 multi_plane_op_attr;
  53         u8 reserved3[38];
  54 
  55         /* electrical parameter block */
  56         __le16 async_sdr_speed_grade;
  57         __le16 toggle_ddr_speed_grade;
  58         __le16 sync_ddr_speed_grade;
  59         u8 async_sdr_features;
  60         u8 toggle_ddr_features;
  61         u8 sync_ddr_features;
  62         __le16 t_prog;
  63         __le16 t_bers;
  64         __le16 t_r;
  65         __le16 t_r_multi_plane;
  66         __le16 t_ccs;
  67         __le16 io_pin_capacitance_typ;
  68         __le16 input_pin_capacitance_typ;
  69         __le16 clk_pin_capacitance_typ;
  70         u8 driver_strength_support;
  71         __le16 t_adl;
  72         u8 reserved4[36];
  73 
  74         /* ECC and endurance block */
  75         u8 guaranteed_good_blocks;
  76         __le16 guaranteed_block_endurance;
  77         struct jedec_ecc_info ecc_info[4];
  78         u8 reserved5[29];
  79 
  80         /* reserved */
  81         u8 reserved6[148];
  82 
  83         /* vendor */
  84         __le16 vendor_rev_num;
  85         u8 reserved7[88];
  86 
  87         /* CRC for Parameter Page */
  88         __le16 crc;
  89 } __packed;
  90 
  91 #endif /* __LINUX_MTD_JEDEC_H */

/* [<][>][^][v][top][bottom][index][help] */