L_Idle |
|
1. tl.lunID.targRequest | -> | L_Idle_TargetRequest |
L_Idle_TargetRequest |
1. tl.lunID.reset | -> | L_RST_Execute | |
2. tl_WP.lunID?writeProtect
|
-> | L_WP_Update | |
3. tl_setSR6.lunID?SR6value
|
-> | L_SR_Update | |
4. tl.lunID.statusRequest | -> | L_Status_Execute | |
5. tl.lunID.outputBufferOff | -> | L_Idle | |
6. tl.lunID.clearPageRegRequest | -> | L_Idle_ClearPageReg | |
7. tl.lunID.invalidatePageRegRequest | -> | L_Idle_InvalidPageReg | |
8. tl_programRequest.lunID?addr3BlockIn?addr2PageIn?addr1ColHIn?addr0ColLIn | -> | L_PP_Execute | |
9. tl_erase.lunID?addr | -> | L_BE_Execute | |
10. tl_readPage.lunID?addr3BlockIn?addr2PageIn?addr1ColHIn?addr0ColLIn | -> | L_RD_WaitForCmd | |
11. tl.lunID.retrieveParameters | -> | L_Idle_RdPp |
L_Idle_RdPp |
|
1. tl_sync.lunID -> li.lunID.readDone | -> | L_Idle_RdPp_End | |
2. tl.lunID.targRequest -> tl.lunID.statusRequest | -> | L_Status_Execute |
L_Idle_Rd |
|
1. li.lunID.readDone | -> | L_Idle_Rd_Finish | |
2. tl_selectColumn.lunID?addr0ColLIn?addr1ColHIn | -> | L_Idle_Rd_ColSelect | |
3. tl.lunID.readRequest | -> | L_Idle_Rd_Xfer | |
4. tl.lunID.targRequest | -> | L_Idle_TargetRequest |
L_Status_Execute |
1. tl.lunID.statusValue | -> | L_Status_Value | |
2. tl_cmd.lunID.cmd78h | -> | L_Status_Enhanced | |
3. tl_cmd.lunID.cmd70h | -> | L_Status_Legacy |
L_Status_Enhanced |
1. (if lunID == lunID) | -> | L_Status_Record_78h | |
2. (if lunID != lunID) | -> | L_Status_Output_Off |
L_Status_Record_78h |
|
1. Unconditional | -> | LUN_Return |
L_Status_Output_Off |
1. (if lunReturnState == L_Idle_Rd) | -> | L_Idle | |
2. (if lunReturnState != L_Idle_Rd) | -> | LUN_Return |
L_RST_Execute |
|
1. tl_sync.lunID -> li.lunID.li_resetDone | -> | L_RST_Complete | |
2. tl.lunID.targRequest -> tl.lunID.statusRequest | -> | L_Status_Execute |
L_RST_Complete |
|
1. Unconditional | -> | L_Idle |
L_BE_Erase |
|
1. Unconditional | -> | L_BE_Erase_Wait |
L_BE_Erase_Wait |
|
1. li.lunID.eraseDone (if (lunbInterleave==false)) | -> | L_BE_Sts | |
2. tl.lunID.clearPageRegRequest (if progress==false) | -> | L_Idle_ClearPageReg | |
3. tl.lunID.targRequest -> tl.lunID.statusRequest (if progress==false) | -> | L_Status_Execute |
L_BE_Sts |
|
1. Unconditional | -> | L_Idle |
L_RD_WaitForCmd | lunbInterleave set to false |
1. tl_cmd.lunID?cmd:{cmd30h,cmd35h}
|
-> | L_RD_ArrayRead |
L_RD_ArrayRead |
|
1. li.lunID.readDone | -> | L_RD_Complete | |
2. tl.lunID.targRequest -> tl.lunID.statusRequest (if progress==false) | -> | L_Status_Execute |
L_RD_Complete |
|
1. Unconditional | -> | L_Idle_Rd |
L_PP_WaitForData | lunReturnState set to L_PP_WaitForData |
1. tl_io.lunID?data
|
-> | L_PP_AcceptData | |
2. tl_cmd.lunID.cmd10h | -> | L_PP_Prog | |
3. tl_selectColumn.lunID?addr0ColLIn?addr1ColHIn | -> | L_PP_ColSelect |
L_PP_Prog |
|
1. Unconditional | -> | L_PP_Prog_Wait |
L_PP_Prog_Wait |
|
1. li.lunID.pageProgramDone (if (lunbInterleave == false)) | -> | L_PP_Sts | |
2. tl.lunID.targRequest ->tl.lunID.statusRequest (if progress==false) | -> | L_Status_Execute |
L_PP_Sts |
|
1. Unconditional | -> | L_Idle |
LUN_Return |
1. (if lunReturnState == L_Idle) | -> | L_Idle | |
2. (if lunReturnState == L_Idle_RdPp) | -> | L_Idle_RdPp | |
3. (if lunReturnState == L_Idle_Rd) | -> | L_Idle_Rd | |
4. (if lunReturnState == L_RST_Execute) | -> | L_RST_Execute | |
5. (if lunReturnState == L_BE_Erase_Wait) | -> | L_BE_Erase_Wait | |
6. (if lunReturnState == L_RD_ArrayRead) | -> | L_RD_ArrayRead | |
7. (if lunReturnState == L_PP_WaitForData) | -> | L_PP_WaitForData | |
8. (if lunReturnState == L_PP_Prog_Wait) | -> | L_PP_Prog_Wait |
HTML generated on 2010-02-16T15:43:13.056Z