1
0
Fork 0
mirror of https://github.com/CTCaer/hekate.git synced 2024-11-23 02:16:41 +00:00

Add important fuse info (like burnt eFuses)

This commit is contained in:
Kostas Missos 2018-07-05 01:51:36 +03:00
parent 5e8eb1c57a
commit 879fc643d9
3 changed files with 28 additions and 9 deletions

View file

@ -81,7 +81,7 @@ typedef struct _merge_kip_t
#define KB_FIRMWARE_VERSION_500 4 #define KB_FIRMWARE_VERSION_500 4
#define KB_FIRMWARE_VERSION_MAX KB_FIRMWARE_VERSION_500 #define KB_FIRMWARE_VERSION_MAX KB_FIRMWARE_VERSION_500
// Exosphere magic "XBC0" // Exosphère magic "XBC0"
#define MAGIC_EXOSPHERE 0x30434258 #define MAGIC_EXOSPHERE 0x30434258
static const u8 keyblob_keyseeds[][0x10] = { static const u8 keyblob_keyseeds[][0x10] = {
@ -571,7 +571,7 @@ int hos_launch(ini_sec_t *cfg)
if(ctxt.debugmode) if(ctxt.debugmode)
_copy_bootconfig(&ctxt); _copy_bootconfig(&ctxt);
// Config Exosphere if booting Atmosphere. // Config Exosphère if booting Atmosphère.
if (ctxt.atmosphere) if (ctxt.atmosphere)
{ {
vu32 *mb_exo_magic = (vu32 *)0x40002E40; vu32 *mb_exo_magic = (vu32 *)0x40002E40;

View file

@ -357,10 +357,32 @@ void print_fuseinfo()
gfx_clear_grey(&gfx_ctxt, 0x1B); gfx_clear_grey(&gfx_ctxt, 0x1B);
gfx_con_setpos(&gfx_con, 0, 0); gfx_con_setpos(&gfx_con, 0, 0);
u32 burntFuses = 0;
for (u32 i = 0; i < 32; i++)
{
if ((fuse_read_odm(7) >> i) & 1)
burntFuses++;
}
gfx_printf(&gfx_con, "\nSKU: %X - ", FUSE(0x110));
switch (fuse_read_odm(4) & 3)
{
case 0:
gfx_printf(&gfx_con, "Retail\n");
break;
case 3:
gfx_printf(&gfx_con, "Dev\n");
break;
}
gfx_printf(&gfx_con, "Sdram ID: %d\n", (fuse_read_odm(4) >> 3) & 0x1F);
gfx_printf(&gfx_con, "Burnt fuses: %d\n", burntFuses);
gfx_printf(&gfx_con, "Secure key: %08X%08X%08X%08X\n\n\n",
byte_swap_32(FUSE(0x1A4)), byte_swap_32(FUSE(0x1A8)), byte_swap_32(FUSE(0x1AC)), byte_swap_32(FUSE(0x1B0)));
gfx_printf(&gfx_con, "%k(Unlocked) fuse cache:\n\n%k", 0xFF00DDFF, 0xFFCCCCCC); gfx_printf(&gfx_con, "%k(Unlocked) fuse cache:\n\n%k", 0xFF00DDFF, 0xFFCCCCCC);
gfx_hexdump(&gfx_con, 0x7000F900, (u8 *)0x7000F900, 0x2FC); gfx_hexdump(&gfx_con, 0x7000F900, (u8 *)0x7000F900, 0x2FC);
gfx_puts(&gfx_con, "\nPress POWER to dump them to SD Card.\nPress VOL to go to the menu.\n"); gfx_puts(&gfx_con, "Press POWER to dump them to SD Card.\nPress VOL to go to the menu.\n");
u32 btn = btn_wait(); u32 btn = btn_wait();
if (btn & BTN_POWER) if (btn & BTN_POWER)
@ -2054,11 +2076,8 @@ void print_battery_charger_info()
bq24193_get_property(BQ24193_ChargeVoltageLimit, &value); bq24193_get_property(BQ24193_ChargeVoltageLimit, &value);
gfx_printf(&gfx_con, "Charge voltage limit: %4d mV\n", value); gfx_printf(&gfx_con, "Charge voltage limit: %4d mV\n", value);
bq24193_get_property(BQ24193_ThermalRegulation, &value);
gfx_printf(&gfx_con, "Thermal threshold: %4d oC\n", value);
bq24193_get_property(BQ24193_ChargeStatus, &value); bq24193_get_property(BQ24193_ChargeStatus, &value);
gfx_printf(&gfx_con, "Charge status: "); gfx_printf(&gfx_con, "Charge status: ");
switch (value) switch (value)
{ {
case 0: case 0:
@ -2078,7 +2097,7 @@ void print_battery_charger_info()
break; break;
} }
bq24193_get_property(BQ24193_TempStatus, &value); bq24193_get_property(BQ24193_TempStatus, &value);
gfx_printf(&gfx_con, "Temperature status: "); gfx_printf(&gfx_con, "Temperature status: ");
switch (value) switch (value)
{ {
case 0: case 0:

View file

@ -51,7 +51,7 @@ PATCHSET_DEF(_secmon_4_patchset,
{ 0x2300 + 0x5D80, _NOP() }, //package2 structure. { 0x2300 + 0x5D80, _NOP() }, //package2 structure.
{ 0x2300 + 0x5D8C, _NOP() }, //Version. { 0x2300 + 0x5D8C, _NOP() }, //Version.
{ 0x2300 + 0x5EFC, _NOP() }, //Header signature. { 0x2300 + 0x5EFC, _NOP() }, //Header signature.
{ 0xAC8 + 0xA2C, _NOP() } //Sections SHA2. { 0xAC8 + 0xA2C, _NOP() } //Sections SHA2.
); );
PATCHSET_DEF(_secmon_5_patchset, PATCHSET_DEF(_secmon_5_patchset,