Rizwan Qureshi has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/35228 )
Change subject: src/soc/intel/{common,cnl,skl,icl}: Move global reset req function to common ......................................................................
Patch Set 25:
(2 comments)
https://review.coreboot.org/c/coreboot/+/35228/25/src/soc/intel/common/block... File src/soc/intel/common/block/cse/cse.c:
https://review.coreboot.org/c/coreboot/+/35228/25/src/soc/intel/common/block... PS25, Line 577: The reset type can be GLOBAL_RESET/ : * HOST_RESET_ONLY/CSE_RESET_ONLY.
So, all the three reset types are supported on ME 6.0+ and TXE 3.0+. […]
Yes
https://review.coreboot.org/c/coreboot/+/35228/25/src/soc/intel/common/block... PS25, Line 609: if (rst_type == CSE_RESET_ONLY)
correct, that is what I meant by "Need to to check if there is something in HFSTS registers which we […]
there is Host Firmware Status Register #1 (HFSTS1)—Bits [3:0] Current Working State Values, which gives us the current state of the CSE. 0 Reset: The Intel® ME firmware is in a reset state. The firmware will exit this state within 1 millisecond. 1 Initializing: The Intel® ME firmware is initializing, the final functional state is NOT known at this time. The firmware will exit this state within 4 seconds.
The above values can be used to determine whether the CSE is resetting.
So here is what we can do to not miss out on the response for CSE_ONLY reset and also reduce the wait time for it: 1. Send the Global reset request with reset type as CSE_ONLY_RESET 2. Wait for 4 seconds or less for the CSE to enter the Initializing state 3. If the CSE enters this state, then consider that the CSE was reset and continue with teh rest of the flow without waiting for response 4. Else start receiving/waiting-for the response