1. 程式人生 > >NVMe記憶體初始化

NVMe記憶體初始化

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;
    }