| 127 | }; |
| 128 | |
| 129 | void intel_me_status(uint32_t hfs, uint32_t gmes) |
| 130 | { |
| 131 | /* Check Current States */ |
| 132 | printf("ME: FW Partition Table : %s\n", |
| 133 | ((hfs & 0x20) >> 5) ? "BAD" : "OK"); |
| 134 | printf("ME: Bringup Loader Failure : %s\n", |
| 135 | ((hfs & 0x400) >> 10) ? "YES" : "NO"); |
| 136 | printf("ME: Firmware Init Complete : %s\n", |
| 137 | ((hfs & 0x200) >> 9) ? "YES" : "NO"); |
| 138 | printf("ME: Manufacturing Mode : %s\n", |
| 139 | ((hfs & 0x10) >> 4) ? "YES" : "NO"); |
| 140 | printf("ME: Boot Options Present : %s\n", |
| 141 | ((hfs & 0x1000000) >> 24) ? "YES" : "NO"); |
| 142 | printf("ME: Update In Progress : %s\n", |
| 143 | ((hfs & 0x800) >> 11) ? "YES" : "NO"); |
| 144 | printf("ME: Current Working State : %s\n", |
| 145 | me_cws_values[hfs & 0xf]); |
| 146 | printf("ME: Current Operation State : %s\n", |
| 147 | me_opstate_values[(hfs & 0x1c0) >> 6]); |
| 148 | printf("ME: Current Operation Mode : %s\n", |
| 149 | me_opmode_values[(hfs & 0xf0000) >> 16]); |
| 150 | printf("ME: Error Code : %s\n", |
| 151 | me_error_values[(hfs & 0xf000) >> 12]); |
| 152 | printf("ME: Progress Phase : %s\n", |
| 153 | me_progress_values[(gmes & 0xf0000000) >> 28]); |
| 154 | printf("ME: Power Management Event : %s\n", |
| 155 | me_pmevent_values[(gmes & 0xf000000) >> 24]); |
| 156 | |
| 157 | printf("ME: Progress Phase State : "); |
| 158 | switch ((gmes & 0xf0000000) >> 28) { |
| 159 | case ME_GMES_PHASE_ROM: /* ROM Phase */ |
| 160 | printf("%s", me_progress_rom_values[(gmes & 0xff0000) >> 16]); |
| 161 | break; |
| 162 | |
| 163 | case ME_GMES_PHASE_BUP: /* Bringup Phase */ |
| 164 | if ((gmes & 0xff0000) >> 16 < ARRAY_SIZE(me_progress_bup_values) |
| 165 | && me_progress_bup_values[(gmes & 0xff0000) >> 16]) |
| 166 | printf("%s", |
| 167 | me_progress_bup_values[(gmes & 0xff0000) >> 16]); |
| 168 | else |
| 169 | printf("0x%02x", (gmes & 0xff0000) >> 16); |
| 170 | break; |
| 171 | |
| 172 | case ME_GMES_PHASE_POLICY: /* Policy Module Phase */ |
| 173 | if ((gmes & 0xff0000) >> 16 < ARRAY_SIZE(me_progress_policy_values) |
| 174 | && me_progress_policy_values[(gmes & 0xff0000) >> 16]) |
| 175 | printf("%s", |
| 176 | me_progress_policy_values[(gmes & 0xff0000) >> 16]); |
| 177 | else |
| 178 | printf("0x%02x", (gmes & 0xff0000) >> 16); |
| 179 | break; |
| 180 | |
| 181 | case ME_GMES_PHASE_HOST: /* Host Communication Phase */ |
| 182 | if (!((gmes & 0xff0000) >> 16)) |
| 183 | printf("Host communication established"); |
| 184 | else |
| 185 | printf("0x%02x", (gmes & 0xff0000) >> 16); |
| 186 | break; |
no test coverage detected