Add display_end fix for all fw + easter egg

The easter egg is sth that was forgotten in booting via hekate's hwinit.
This commit is contained in:
Kostas Missos 2018-08-14 02:30:44 +03:00
parent 6b8887b5d8
commit 5fd9daa364
3 changed files with 7 additions and 9 deletions

View file

@ -149,10 +149,6 @@ void display_end()
DSI(_DSIREG(DSI_VIDEO_MODE_CONTROL)) = 1; DSI(_DSIREG(DSI_VIDEO_MODE_CONTROL)) = 1;
DSI(_DSIREG(DSI_WR_DATA)) = 0x2805; DSI(_DSIREG(DSI_WR_DATA)) = 0x2805;
u32 end = HOST1X(0x30A4) + 5;
while (HOST1X(0x30A4) < end)
;
DISPLAY_A(_DIREG(DC_CMD_STATE_ACCESS)) = READ_MUX | WRITE_MUX; DISPLAY_A(_DIREG(DC_CMD_STATE_ACCESS)) = READ_MUX | WRITE_MUX;
DSI(_DSIREG(DSI_VIDEO_MODE_CONTROL)) = 0; DSI(_DSIREG(DSI_VIDEO_MODE_CONTROL)) = 0;
@ -181,7 +177,7 @@ void display_end()
usleep(10000); usleep(10000);
//Disable clocks. // Disable clocks.
CLOCK(CLK_RST_CONTROLLER_RST_DEV_H_SET) = 0x1010000; CLOCK(CLK_RST_CONTROLLER_RST_DEV_H_SET) = 0x1010000;
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_H_CLR) = 0x1010000; CLOCK(CLK_RST_CONTROLLER_CLK_ENB_H_CLR) = 0x1010000;
CLOCK(CLK_RST_CONTROLLER_RST_DEV_L_SET) = 0x18000000; CLOCK(CLK_RST_CONTROLLER_RST_DEV_L_SET) = 0x18000000;

View file

@ -40,12 +40,13 @@
#include "../gfx/gfx.h" #include "../gfx/gfx.h"
extern gfx_ctxt_t gfx_ctxt; extern gfx_ctxt_t gfx_ctxt;
extern gfx_con_t gfx_con; extern gfx_con_t gfx_con;
extern hekate_config h_cfg;
extern void sd_unmount(); extern void sd_unmount();
//#define DPRINTF(...) gfx_printf(&gfx_con, __VA_ARGS__) //#define DPRINTF(...) gfx_printf(&gfx_con, __VA_ARGS__)
#define DPRINTF(...) #define DPRINTF(...)
extern hekate_config h_cfg;
typedef struct _launch_ctxt_t typedef struct _launch_ctxt_t
{ {
void *keyblob; void *keyblob;
@ -666,7 +667,7 @@ int hos_launch(ini_sec_t *cfg)
// Wait for secmon to get ready. // Wait for secmon to get ready.
cluster_boot_cpu0(ctxt.pkg1_id->secmon_base); cluster_boot_cpu0(ctxt.pkg1_id->secmon_base);
while (!*mb_out) while (!*mb_out)
usleep(1); ;
//TODO: pkg1.1 locks PMC scratches, we can do that too at some point. //TODO: pkg1.1 locks PMC scratches, we can do that too at some point.
/*PMC(0x4) = 0x7FFFF3; /*PMC(0x4) = 0x7FFFF3;

View file

@ -16,7 +16,8 @@
#include "../utils/types.h" #include "../utils/types.h"
struct tegra_pmc_regs { struct tegra_pmc_regs
{
u32 cntrl; u32 cntrl;
u32 sec_disable; u32 sec_disable;
u32 pmc_swrst; u32 pmc_swrst;