NVMe記憶體初始化
阿新 • • 發佈:2019-01-04
④ 49.6.2 Controller Reset
4. Zeroizeinternal memory as follows:
a. If the reset is caused by CC.EN deassertion or if the host disablesthe NVMe Contr
program CREG_ZEROIZE_MD (R15000000h[4]) to 1h. Otherwise, program
CREG_ZEROIZE_MD (R15000000h[4]) to 0h
// Zeroize mode to skip some NVMe controller register during zeroizing if (flag & cHwPartialControlRegInit) rNvme.ctrlRegisterModuleCfg.b.ZEROIZE_MD = 1;
b. Set CSRM_FM_ZERO_START(R15017008h [1]) and CSRM_HM_ZERO_START(R15017008h
[0]). Wait until CSRM_FM_ZERO_DONE (R1501700Ch[1]) and CSRM_HM_ZERO_DONE
(R1501700Ch [0]) are asserted.
// Command SRAM memory zerorize if (flag & cHwCommandSramInit) rNvmeCmdSram.cmdSramCmd.b.HM_ZERO_START = 1; if (flag & cFwCommandSramInit) rNvmeCmdSram.cmdSramCmd.b.FM_ZERO_START = 1;
HM_ZERO_START ///<BIT [0] Hardware Command SRAM ZeroizeStart.
FM_ZERO_START ///<BIT[1] Firmware Command SRAM Zeroize Start.
c. Set CREG_MEM_ZERO_START(R15000008h [0]). Wait until CREG_ENG_STAT_ZERO_DONE
(R1500000Ch [0]) is asserted.
// Control register memory zerorize if (flag & (cHwControlRegInit|cHwPartialControlRegInit)) { rNvme.ctrlRegisterModuleCmd.b.MEM_ZERO_START = 1; }