STRUCT NAND_SDR_TIMINGS(9)
π struct nand_sdr_timings(9) π
okay so this is a page from the Kernel API Manual bestie, and it's literally all about struct nand_sdr_timings β the glow-up sheet where an SDR NAND chip's timing requirements live. buckle up π
β¨ NAME β¨
struct nand_sdr_timings β SDR NAND chip timings π¦
πΈ SYNOPSIS πΈ
no cap, here's the whole struct, character for character, don't touch a thing:
struct nand_sdr_timings {
u64 tBERS_max;
u32 tCCS_min;
u64 tPROG_max;
u64 tR_max;
u32 tALH_min;
u32 tADL_min;
u32 tALS_min;
u32 tAR_min;
u32 tCEA_max;
u32 tCEH_min;
u32 tCH_min;
u32 tCHZ_max;
u32 tCLH_min;
u32 tCLR_min;
u32 tCLS_min;
u32 tCOH_min;
u32 tCS_min;
u32 tDH_min;
u32 tDS_min;
u32 tFEAT_max;
u32 tIR_min;
u32 tITC_max;
u32 tRC_min;
u32 tREA_max;
u32 tREH_min;
u32 tRHOH_min;
u32 tRHW_min;
u32 tRHZ_max;
u32 tRLOH_min;
u32 tRP_min;
u32 tRR_min;
u64 tRST_max;
u32 tWB_max;
u32 tWC_min;
u32 tWH_min;
u32 tWHR_min;
u32 tWP_min;
u32 tWW_min;
};
π Members π
okay this is the part where every single field gets its moment. main character energy for all 38 of them, periodt:
tBERS_maxβ Block erase time β³tCCS_minβ Change column setup timetPROG_maxβ Page program timetR_maxβ Page read timetALH_minβ ALE hold timetADL_minβ ALE to data loading timetALS_minβ ALE setup timetAR_minβ ALE to RE# delaytCEA_maxβ CE# access timetCEH_minβ CE# high hold timetCH_minβ CE# hold timetCHZ_maxβ CE# high to output hi-ZtCLH_minβ CLE hold timetCLR_minβ CLE to RE# delaytCLS_minβ CLE setup timetCOH_minβ CE# high to output holdtCS_minβ CE# setup timetDH_minβ Data hold timetDS_minβ Data setup timetFEAT_maxβ Busy time for Set Features and Get FeaturestIR_minβ Output hi-Z to RE# lowtITC_maxβ Interface and Timing Mode Change timetRC_minβ RE# cycle timetREA_maxβ RE# access timetREH_minβ RE# high hold timetRHOH_minβ RE# high to output holdtRHW_minβ RE# high to WE# lowtRHZ_maxβ RE# high to output hi-ZtRLOH_minβ RE# low to output holdtRP_minβ RE# pulse widthtRR_minβ Ready to RE# low (data only)tRST_maxβ Device reset time, measured from the falling edge of R/B# to the rising edge of R/B#.tWB_maxβ WE# high to SR[6] lowtWC_minβ WE# cycle timetWH_minβ WE# high hold timetWHR_minβ WE# high to RE# lowtWP_minβ WE# pulse widthtWW_minβ WP# transition to WE# low
π¦ Description π¦
so this struct is literally the whole timing requirements vibe of an SDR NAND chip π« like, it defines them, that's the job. and where do you even find all this tea? every NAND datasheet has it, and the actual meaning of the timings is spelled out in the ONFI specifications: https://media-www.micron.com/-/media/client/onfi/specs/onfi_3_1_spec.pdf (chapter 4.15 Timing Parameters) β iykyk πβ¨
important bestie note: all these timings are expressed in picoseconds. every single one. picoseconds. π tiny.
π SEE ALSO π
the whole friend group, no one left out π«Ά:
Kernel file ./include/linux/mtd/rawnand.h struct nand_parameters(9), struct nand_id(9), struct nand_ecc_step_info(9), struct nand_ecc_caps(9), struct nand_ecc_ctrl(9), struct nand_nvddr_timings(9), enum nand_interface_type(9), struct nand_interface_config(9), nand_interface_is_sdr(9), nand_interface_is_nvddr(9), nand_get_sdr_timings(9), nand_get_nvddr_timings(9), struct nand_op_cmd_instr(9), struct nand_op_addr_instr(9), struct nand_op_data_instr(9), struct nand_op_waitrdy_instr(9), enum nand_op_instr_type(9), struct nand_op_instr(9), struct nand_subop(9), struct nand_op_parser_addr_constraints(9), struct nand_op_parser_data_constraints(9), struct nand_op_parser_pattern_elem(9), struct nand_op_parser_pattern(9), struct nand_op_parser(9), struct nand_operation(9), struct nand_controller_ops(9), struct nand_controller(9), struct nand_legacy(9), struct nand_chip_ops(9), struct nand_manufacturer(9), struct nand_secure_region(9), struct nand_chip(9), nand_get_interface_config(9), struct nand_flash_dev(9), nand_opcode_8bits(9), nand_get_data_buf(9)
and that's the whole page, bestie, you ate that π
β¨ this lil drop came from ./include/linux/mtd and it's dated October 2026, filed under struct nand_sdr_timings(9) β go forth and time your NAND correctly, mwah ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms