Index: parse.c |
diff --git a/parse.c b/parse.c |
index 49d7b4a193e8cbdef3fcecb88a6bbad41e55b9cd..1005ebc30cc3d16fc59724989bce02dbc892ac06 100644 |
--- a/parse.c |
+++ b/parse.c |
@@ -61,7 +61,7 @@ static char *parse_enum(build_image_context *context, |
static char |
*parse_field_name(char *rest, field_item *field_table, field_item **field); |
static char |
-*parse_field_value(build_image_context *context, |
+*parse_field_value(build_image_context *context, |
char *rest, |
field_item *field, |
u_int32_t *value); |
@@ -85,7 +85,7 @@ parse_sdram_param(build_image_context *context, parse_token token, char *rest); |
static int process_statement(build_image_context *context, char *statement); |
-static enum_item s_devtype_table[] = |
+enum_item s_devtype_table[] = |
{ |
{ "NvBootDevType_Sdmmc", nvbct_lib_id_dev_type_sdmmc }, |
{ "NvBootDevType_Spi", nvbct_lib_id_dev_type_spi }, |
@@ -97,7 +97,7 @@ static enum_item s_devtype_table[] = |
{ NULL, 0 } |
}; |
-static enum_item s_sdmmc_data_width_table[] = |
+enum_item s_sdmmc_data_width_table[] = |
{ |
{ |
"NvBootSdmmcDataWidth_4Bit", |
@@ -112,7 +112,7 @@ static enum_item s_sdmmc_data_width_table[] = |
{ NULL, 0 } |
}; |
-static enum_item s_spi_clock_source_table[] = |
+enum_item s_spi_clock_source_table[] = |
{ |
{ |
"NvBootSpiClockSource_PllPOut0", |
@@ -145,7 +145,7 @@ static enum_item s_spi_clock_source_table[] = |
{ NULL, 0 } |
}; |
-static enum_item s_nvboot_memory_type_table[] = |
+enum_item s_nvboot_memory_type_table[] = |
{ |
{ "NvBootMemoryType_None", nvbct_lib_id_memory_type_none }, |
{ "NvBootMemoryType_Ddr2", nvbct_lib_id_memory_type_ddr2 }, |
@@ -162,247 +162,164 @@ static enum_item s_nvboot_memory_type_table[] = |
{ NULL, 0 } |
}; |
-static field_item s_sdram_field_table[] = |
+#define TOKEN(name) \ |
+ token_##name, nvbct_lib_id_sdram_##name, field_type_u32, NULL |
+ |
+field_item s_sdram_field_table[] = |
{ |
- { "MemoryType", token_memory_type, |
- field_type_enum, s_nvboot_memory_type_table }, |
- { "PllMChargePumpSetupControl", token_pllm_charge_pump_setup_ctrl, |
- field_type_u32, NULL }, |
- { "PllMLoopFilterSetupControl", token_pllm_loop_filter_setup_ctrl, |
- field_type_u32, NULL }, |
- { "PllMInputDivider", token_pllm_input_divider, |
- field_type_u32, NULL }, |
- { "PllMFeedbackDivider", token_pllm_feedback_divider, |
- field_type_u32, NULL }, |
- { "PllMPostDivider", token_pllm_post_divider, |
- field_type_u32, NULL }, |
- { "PllMStableTime", token_pllm_stable_time, |
- field_type_u32, NULL }, |
- { "EmcClockDivider", token_emc_clock_divider, |
- field_type_u32, NULL }, |
- { "EmcAutoCalInterval", token_emc_auto_cal_interval, |
- field_type_u32, NULL }, |
- { "EmcAutoCalConfig", token_emc_auto_cal_config, |
- field_type_u32, NULL }, |
- { "EmcAutoCalWait", token_emc_auto_cal_wait, |
- field_type_u32, NULL }, |
- { "EmcPinProgramWait", token_emc_pin_program_wait, |
- field_type_u32, NULL }, |
- { "EmcRc", token_emc_rc, |
- field_type_u32, NULL }, |
- { "EmcRfc", token_emc_rfc, |
- field_type_u32, NULL }, |
- { "EmcRas", token_emc_ras, |
- field_type_u32, NULL }, |
- { "EmcRp", token_emc_rp, |
- field_type_u32, NULL }, |
- { "EmcR2w", token_emc_r2w, |
- field_type_u32, NULL }, |
- { "EmcW2r", token_emc_w2r, |
- field_type_u32, NULL }, |
- { "EmcR2p", token_emc_r2p, |
- field_type_u32, NULL }, |
- { "EmcW2p", token_emc_w2p, |
- field_type_u32, NULL }, |
- { "EmcRrd", token_emc_rrd, |
- field_type_u32, NULL }, |
- { "EmcRdRcd", token_emc_rd_rcd, |
- field_type_u32, NULL }, |
- { "EmcWrRcd", token_emc_wr_rcd, |
- field_type_u32, NULL }, |
- { "EmcRext", token_emc_rext, |
- field_type_u32, NULL }, |
- { "EmcWdv", token_emc_wdv, |
- field_type_u32, NULL }, |
- { "EmcQUseExtra", token_emc_quse_extra, |
- field_type_u32, NULL }, |
- { "EmcQUse", token_emc_quse, |
- field_type_u32, NULL }, |
- { "EmcQRst", token_emc_qrst, |
- field_type_u32, NULL }, |
- { "EmcQSafe", token_emc_qsafe, |
- field_type_u32, NULL }, |
- { "EmcRdv", token_emc_rdv, |
- field_type_u32, NULL }, |
- { "EmcRefresh", token_emc_refresh, |
- field_type_u32, NULL }, |
- { "EmcBurstRefreshNum", token_emc_burst_refresh_num, |
- field_type_u32, NULL }, |
- { "EmcPdEx2Wr", token_emc_pdex2wr, |
- field_type_u32, NULL }, |
- { "EmcPdEx2Rd", token_emc_pdex2rd, |
- field_type_u32, NULL }, |
- { "EmcPChg2Pden", token_emc_pchg2pden, |
- field_type_u32, NULL }, |
- { "EmcAct2Pden", token_emc_act2pden, |
- field_type_u32, NULL }, |
- { "EmcAr2Pden", token_emc_ar2pden, |
- field_type_u32, NULL }, |
- { "EmcRw2Pden", token_emc_rw2pden, |
- field_type_u32, NULL }, |
- { "EmcTxsr", token_emc_txsr, |
- field_type_u32, NULL }, |
- { "EmcTcke", token_emc_tcke, |
- field_type_u32, NULL }, |
- { "EmcTfaw", token_emc_tfaw, |
- field_type_u32, NULL }, |
- { "EmcTrpab", token_emc_trpab, |
- field_type_u32, NULL }, |
- { "EmcTClkStable", token_emc_tclkstable, |
- field_type_u32, NULL }, |
- { "EmcTClkStop", token_emc_tclkstop, |
- field_type_u32, NULL }, |
- { "EmcTRefBw", token_emc_trefbw, |
- field_type_u32, NULL }, |
- { "EmcFbioCfg1", token_emc_fbio_cfg1, |
- field_type_u32, NULL }, |
- { "EmcFbioDqsibDlyMsb", token_emc_fbio_dqsib_dly_msb, |
- field_type_u32, NULL }, |
- { "EmcFbioDqsibDly", token_emc_fbio_dqsib_dly, |
- field_type_u32, NULL }, |
- { "EmcFbioQuseDlyMsb", token_emc_fbio_quse_dly_msb, |
- field_type_u32, NULL }, |
- { "EmcFbioQuseDly", token_emc_fbio_quse_dly, |
- field_type_u32, NULL }, |
- { "EmcFbioCfg5", token_emc_fbio_cfg5, |
- field_type_u32, NULL }, |
- { "EmcFbioCfg6", token_emc_fbio_cfg6, |
- field_type_u32, NULL }, |
- { "EmcFbioSpare", token_emc_fbio_spare, |
- field_type_u32, NULL }, |
- { "EmcMrsResetDllWait", token_emc_mrs_reset_dll_wait, |
- field_type_u32, NULL }, |
- { "EmcMrsResetDll", token_emc_mrs_reset_dll, |
- field_type_u32, NULL }, |
- { "EmcMrsDdr2DllReset", token_emc_mrs_ddr2_dll_reset, |
- field_type_u32, NULL }, |
- { "EmcMrs", token_emc_mrs, |
- field_type_u32, NULL }, |
- { "EmcEmrsEmr2", token_emc_emrs_emr2, |
- field_type_u32, NULL }, |
- { "EmcEmrsEmr3", token_emc_emrs_emr3, |
- field_type_u32, NULL }, |
- { "EmcEmrsDdr2DllEnable", token_emc_emrs_ddr2_dll_enable, |
- field_type_u32, NULL }, |
- { "EmcEmrsDdr2OcdCalib", token_emc_emrs_ddr2_ocd_calib, |
- field_type_u32, NULL }, |
- { "EmcEmrs", token_emc_emrs, |
- field_type_u32, NULL }, |
- { "EmcMrw1", token_emc_mrw1, |
- field_type_u32, NULL }, |
- { "EmcMrw2", token_emc_mrw2, |
- field_type_u32, NULL }, |
- { "EmcMrw3", token_emc_mrw3, |
- field_type_u32, NULL }, |
- { "EmcMrwResetCommand", token_emc_mrw_reset_command, |
- field_type_u32, NULL }, |
- { "EmcMrwResetNInitWait", token_emc_mrw_reset_ninit_wait, |
- field_type_u32, NULL }, |
- { "EmcAdrCfg1", token_emc_adr_cfg1, |
- field_type_u32, NULL }, |
- { "EmcAdrCfg", token_emc_adr_cfg, |
- field_type_u32, NULL }, |
- { "McEmemCfg", token_mc_emem_Cfg, |
- field_type_u32, NULL }, |
- { "McLowLatencyConfig", token_mc_lowlatency_config, |
- field_type_u32, NULL }, |
- { "EmcCfg2", token_emc_cfg2, |
- field_type_u32, NULL }, |
- { "EmcCfgDigDll", token_emc_cfg_dig_dll, |
- field_type_u32, NULL }, |
- { "EmcCfgClktrim0", token_emc_cfg_clktrim0, |
- field_type_u32, NULL }, |
- { "EmcCfgClktrim1", token_emc_cfg_clktrim1, |
- field_type_u32, NULL }, |
- { "EmcCfgClktrim2", token_emc_cfg_clktrim2, |
- field_type_u32, NULL }, |
- { "EmcCfg", token_emc_cfg, |
- field_type_u32, NULL }, |
- { "EmcDbg", token_emc_dbg, |
- field_type_u32, NULL }, |
- { "AhbArbitrationXbarCtrl", token_ahb_arbitration_xbar_ctrl, |
- field_type_u32, NULL }, |
- { "EmcDllXformDqs", token_emc_dll_xform_dqs, |
- field_type_u32, NULL }, |
- { "EmcDllXformQUse", token_emc_dll_xform_quse, |
- field_type_u32, NULL }, |
- { "WarmBootWait", token_warm_boot_wait, |
- field_type_u32, NULL }, |
- { "EmcCttTermCtrl", token_emc_ctt_term_ctrl, |
- field_type_u32, NULL }, |
- { "EmcOdtWrite", token_emc_odt_write, |
- field_type_u32, NULL }, |
- { "EmcOdtRead", token_emc_odt_read, |
- field_type_u32, NULL }, |
- { "EmcZcalRefCnt", token_emc_zcal_ref_cnt, |
- field_type_u32, NULL }, |
- { "EmcZcalWaitCnt", token_emc_zcal_wait_cnt, |
- field_type_u32, NULL }, |
- { "EmcZcalMrwCmd", token_emc_zcal_mrw_cmd, |
- field_type_u32, NULL }, |
- { "EmcMrwZqInitDev0", token_emc_mrw_zq_init_dev0, |
- field_type_u32, NULL }, |
- { "EmcMrwZqInitDev1", token_emc_mrw_zq_init_dev1, |
- field_type_u32, NULL }, |
- { "EmcMrwZqInitWait", token_emc_mrw_zq_init_wait, |
- field_type_u32, NULL }, |
- { "EmcDdr2Wait", token_emc_ddr2_wait, |
- field_type_u32, NULL }, |
- { "PmcDdrPwr", token_pmc_ddr_pwr, |
- field_type_u32, NULL }, |
- { "ApbMiscGpXm2CfgAPadCtrl", token_apb_misc_gp_xm2cfga_pad_ctrl, |
- field_type_u32, NULL }, |
- { "ApbMiscGpXm2CfgCPadCtrl2", token_apb_misc_gp_xm2cfgc_pad_ctrl2, |
- field_type_u32, NULL }, |
- { "ApbMiscGpXm2CfgCPadCtrl", token_apb_misc_gp_xm2cfgc_pad_ctrl, |
- field_type_u32, NULL }, |
- { "ApbMiscGpXm2CfgDPadCtrl2", token_apb_misc_gp_xm2cfgd_pad_ctrl2, |
- field_type_u32, NULL }, |
- { "ApbMiscGpXm2CfgDPadCtrl", token_apb_misc_gp_xm2cfgd_pad_ctrl, |
- field_type_u32, NULL }, |
- { "ApbMiscGpXm2ClkCfgPadCtrl", token_apb_misc_gp_xm2clkcfg_Pad_ctrl, |
- field_type_u32, NULL }, |
- { "ApbMiscGpXm2CompPadCtrl", token_apb_misc_gp_xm2comp_pad_ctrl, |
- field_type_u32, NULL }, |
- { "ApbMiscGpXm2VttGenPadCtrl", token_apb_misc_gp_xm2vttgen_pad_ctrl |
- ,field_type_u32, NULL }, |
- |
- { NULL, 0, 0, NULL } |
+ { "MemoryType", token_memory_type, nvbct_lib_id_sdram_memory_type, |
+ field_type_enum, s_nvboot_memory_type_table }, |
+ |
+ { "PllMChargePumpSetupControl", TOKEN(pllm_charge_pump_setup_ctrl) }, |
+ { "PllMLoopFilterSetupControl", TOKEN(pllm_loop_filter_setup_ctrl) }, |
+ { "PllMInputDivider", TOKEN(pllm_input_divider) }, |
+ { "PllMFeedbackDivider", TOKEN(pllm_feedback_divider) }, |
+ { "PllMPostDivider", TOKEN(pllm_post_divider) }, |
+ { "PllMStableTime", TOKEN(pllm_stable_time) }, |
+ { "EmcClockDivider", TOKEN(emc_clock_divider) }, |
+ { "EmcAutoCalInterval", TOKEN(emc_auto_cal_interval) }, |
+ { "EmcAutoCalConfig", TOKEN(emc_auto_cal_config) }, |
+ { "EmcAutoCalWait", TOKEN(emc_auto_cal_wait) }, |
+ { "EmcPinProgramWait", TOKEN(emc_pin_program_wait) }, |
+ { "EmcRc", TOKEN(emc_rc) }, |
+ { "EmcRfc", TOKEN(emc_rfc) }, |
+ { "EmcRas", TOKEN(emc_ras) }, |
+ { "EmcRp", TOKEN(emc_rp) }, |
+ { "EmcR2w", TOKEN(emc_r2w) }, |
+ { "EmcW2r", TOKEN(emc_w2r) }, |
+ { "EmcR2p", TOKEN(emc_r2p) }, |
+ { "EmcW2p", TOKEN(emc_w2p) }, |
+ { "EmcRrd", TOKEN(emc_rrd) }, |
+ { "EmcRdRcd", TOKEN(emc_rd_rcd) }, |
+ { "EmcWrRcd", TOKEN(emc_wr_rcd) }, |
+ { "EmcRext", TOKEN(emc_rext) }, |
+ { "EmcWdv", TOKEN(emc_wdv) }, |
+ { "EmcQUseExtra", TOKEN(emc_quse_extra) }, |
+ { "EmcQUse", TOKEN(emc_quse) }, |
+ { "EmcQRst", TOKEN(emc_qrst) }, |
+ { "EmcQSafe", TOKEN(emc_qsafe) }, |
+ { "EmcRdv", TOKEN(emc_rdv) }, |
+ { "EmcRefresh", TOKEN(emc_refresh) }, |
+ { "EmcBurstRefreshNum", TOKEN(emc_burst_refresh_num) }, |
+ { "EmcPdEx2Wr", TOKEN(emc_pdex2wr) }, |
+ { "EmcPdEx2Rd", TOKEN(emc_pdex2rd) }, |
+ { "EmcPChg2Pden", TOKEN(emc_pchg2pden) }, |
+ { "EmcAct2Pden", TOKEN(emc_act2pden) }, |
+ { "EmcAr2Pden", TOKEN(emc_ar2pden) }, |
+ { "EmcRw2Pden", TOKEN(emc_rw2pden) }, |
+ { "EmcTxsr", TOKEN(emc_txsr) }, |
+ { "EmcTcke", TOKEN(emc_tcke) }, |
+ { "EmcTfaw", TOKEN(emc_tfaw) }, |
+ { "EmcTrpab", TOKEN(emc_trpab) }, |
+ { "EmcTClkStable", TOKEN(emc_tclkstable) }, |
+ { "EmcTClkStop", TOKEN(emc_tclkstop) }, |
+ { "EmcTRefBw", TOKEN(emc_trefbw) }, |
+ { "EmcFbioCfg1", TOKEN(emc_fbio_cfg1) }, |
+ { "EmcFbioDqsibDlyMsb", TOKEN(emc_fbio_dqsib_dly_msb) }, |
+ { "EmcFbioDqsibDly", TOKEN(emc_fbio_dqsib_dly) }, |
+ { "EmcFbioQuseDlyMsb", TOKEN(emc_fbio_quse_dly_msb) }, |
+ { "EmcFbioQuseDly", TOKEN(emc_fbio_quse_dly) }, |
+ { "EmcFbioCfg5", TOKEN(emc_fbio_cfg5) }, |
+ { "EmcFbioCfg6", TOKEN(emc_fbio_cfg6) }, |
+ { "EmcFbioSpare", TOKEN(emc_fbio_spare) }, |
+ { "EmcMrsResetDllWait", TOKEN(emc_mrs_reset_dll_wait) }, |
+ { "EmcMrsResetDll", TOKEN(emc_mrs_reset_dll) }, |
+ { "EmcMrsDdr2DllReset", TOKEN(emc_mrs_ddr2_dll_reset) }, |
+ { "EmcMrs", TOKEN(emc_mrs) }, |
+ { "EmcEmrsEmr2", TOKEN(emc_emrs_emr2) }, |
+ { "EmcEmrsEmr3", TOKEN(emc_emrs_emr3) }, |
+ { "EmcEmrsDdr2DllEnable", TOKEN(emc_emrs_ddr2_dll_enable) }, |
+ { "EmcEmrsDdr2OcdCalib", TOKEN(emc_emrs_ddr2_ocd_calib) }, |
+ { "EmcEmrs", TOKEN(emc_emrs) }, |
+ { "EmcMrw1", TOKEN(emc_mrw1) }, |
+ { "EmcMrw2", TOKEN(emc_mrw2) }, |
+ { "EmcMrw3", TOKEN(emc_mrw3) }, |
+ { "EmcMrwResetCommand", TOKEN(emc_mrw_reset_command) }, |
+ { "EmcMrwResetNInitWait", TOKEN(emc_mrw_reset_ninit_wait) }, |
+ { "EmcAdrCfg1", TOKEN(emc_adr_cfg1) }, |
+ { "EmcAdrCfg", TOKEN(emc_adr_cfg) }, |
+ { "McEmemCfg", TOKEN(mc_emem_Cfg) }, |
+ { "McLowLatencyConfig", TOKEN(mc_lowlatency_config) }, |
+ { "EmcCfg2", TOKEN(emc_cfg2) }, |
+ { "EmcCfgDigDll", TOKEN(emc_cfg_dig_dll) }, |
+ { "EmcCfgClktrim0", TOKEN(emc_cfg_clktrim0) }, |
+ { "EmcCfgClktrim1", TOKEN(emc_cfg_clktrim1) }, |
+ { "EmcCfgClktrim2", TOKEN(emc_cfg_clktrim2) }, |
+ { "EmcCfg", TOKEN(emc_cfg) }, |
+ { "EmcDbg", TOKEN(emc_dbg) }, |
+ { "AhbArbitrationXbarCtrl", TOKEN(ahb_arbitration_xbar_ctrl) }, |
+ { "EmcDllXformDqs", TOKEN(emc_dll_xform_dqs) }, |
+ { "EmcDllXformQUse", TOKEN(emc_dll_xform_quse) }, |
+ { "WarmBootWait", TOKEN(warm_boot_wait) }, |
+ { "EmcCttTermCtrl", TOKEN(emc_ctt_term_ctrl) }, |
+ { "EmcOdtWrite", TOKEN(emc_odt_write) }, |
+ { "EmcOdtRead", TOKEN(emc_odt_read) }, |
+ { "EmcZcalRefCnt", TOKEN(emc_zcal_ref_cnt) }, |
+ { "EmcZcalWaitCnt", TOKEN(emc_zcal_wait_cnt) }, |
+ { "EmcZcalMrwCmd", TOKEN(emc_zcal_mrw_cmd) }, |
+ { "EmcMrwZqInitDev0", TOKEN(emc_mrw_zq_init_dev0) }, |
+ { "EmcMrwZqInitDev1", TOKEN(emc_mrw_zq_init_dev1) }, |
+ { "EmcMrwZqInitWait", TOKEN(emc_mrw_zq_init_wait) }, |
+ { "EmcDdr2Wait", TOKEN(emc_ddr2_wait) }, |
+ { "PmcDdrPwr", TOKEN(pmc_ddr_pwr) }, |
+ { "ApbMiscGpXm2CfgAPadCtrl", TOKEN(apb_misc_gp_xm2cfga_pad_ctrl) }, |
+ { "ApbMiscGpXm2CfgCPadCtrl2", TOKEN(apb_misc_gp_xm2cfgc_pad_ctrl2) }, |
+ { "ApbMiscGpXm2CfgCPadCtrl", TOKEN(apb_misc_gp_xm2cfgc_pad_ctrl) }, |
+ { "ApbMiscGpXm2CfgDPadCtrl2", TOKEN(apb_misc_gp_xm2cfgd_pad_ctrl2) }, |
+ { "ApbMiscGpXm2CfgDPadCtrl", TOKEN(apb_misc_gp_xm2cfgd_pad_ctrl) }, |
+ { "ApbMiscGpXm2ClkCfgPadCtrl", TOKEN(apb_misc_gp_xm2clkcfg_Pad_ctrl)}, |
+ { "ApbMiscGpXm2CompPadCtrl", TOKEN(apb_misc_gp_xm2comp_pad_ctrl) }, |
+ { "ApbMiscGpXm2VttGenPadCtrl", TOKEN(apb_misc_gp_xm2vttgen_pad_ctrl)}, |
+ { NULL, 0, 0, 0, NULL } |
}; |
-static field_item s_nand_table[] = |
+#undef TOKEN |
+#define TOKEN(name) \ |
+ token_##name, nvbct_lib_id_nand_##name, field_type_u32, NULL |
+ |
+field_item s_nand_table[] = |
{ |
- { "ClockDivider", token_clock_divider, field_type_u32, NULL }, |
+ { "ClockDivider", TOKEN(clock_divider) }, |
/* Note: NandTiming2 must appear before NandTiming, because NandTiming |
* is a prefix of NandTiming2 and would otherwise match first. |
*/ |
- { "NandTiming2", token_nand_timing2, field_type_u32, NULL }, |
- { "NandTiming", token_nand_timing, field_type_u32, NULL }, |
- { "BlockSizeLog2", token_block_size_log2, field_type_u32, NULL }, |
- { "PageSizeLog2", token_page_size_log2, field_type_u32, NULL }, |
- { NULL, 0, 0, NULL } |
+ { "NandTiming2", TOKEN(nand_timing2) }, |
+ { "NandTiming", TOKEN(nand_timing) }, |
+ { "BlockSizeLog2", TOKEN(block_size_log2) }, |
+ { "PageSizeLog2", TOKEN(page_size_log2) }, |
+ { NULL, 0, 0, 0, NULL } |
}; |
-static field_item s_sdmmc_table[] = |
-{ |
- { "ClockDivider", token_clock_divider, field_type_u32, NULL }, |
- { "DataWidth", token_data_width, |
- field_type_enum, s_sdmmc_data_width_table }, |
- { "MaxPowerClassSupported", token_max_power_class_supported, |
- field_type_u32, NULL }, |
+#undef TOKEN |
+#define TOKEN(name) \ |
+ token_##name, nvbct_lib_id_sdmmc_##name, field_type_u32, NULL |
- { NULL, 0, 0, NULL } |
+field_item s_sdmmc_table[] = |
+{ |
+ { "ClockDivider", TOKEN(clock_divider) }, |
+ { "DataWidth", |
+ token_data_width, |
+ nvbct_lib_id_sdmmc_data_width, |
+ field_type_enum, |
+ s_sdmmc_data_width_table }, |
+ { "MaxPowerClassSupported", TOKEN(max_power_class_supported) }, |
+ { NULL, 0, 0, 0, NULL } |
}; |
-static field_item s_spiflash_table[] = |
-{ |
- { "ReadCommandTypeFast", token_read_command_type_fast, |
- field_type_u8, NULL }, |
- { "ClockDivider", token_clock_divider, field_type_u8, NULL }, |
- { "ClockSource", token_clock_source, |
- field_type_enum, s_spi_clock_source_table }, |
+#undef TOKEN |
+#define TOKEN(name) \ |
+ token_##name, nvbct_lib_id_spiflash_##name, field_type_u8, NULL |
- { NULL, 0, 0, NULL } |
+field_item s_spiflash_table[] = |
+{ |
+ { "ReadCommandTypeFast", TOKEN(read_command_type_fast) }, |
+ { "ClockDivider", TOKEN(clock_divider) }, |
+ { "ClockSource", |
+ token_clock_source, |
+ nvbct_lib_id_spiflash_clock_source, |
+ field_type_enum, |
+ s_spi_clock_source_table }, |
+ { NULL, 0, 0, 0, NULL } |
}; |
static parse_subfield_item s_device_type_table[] = |