mirror of
https://github.com/CTCaer/hekate
synced 2024-12-22 03:11:16 +00:00
Fix all warning.
This commit is contained in:
parent
16ac26f583
commit
120e8f5870
19 changed files with 80 additions and 75 deletions
6
Makefile
6
Makefile
|
@ -2,9 +2,7 @@ ifeq ($(strip $(DEVKITARM)),)
|
||||||
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM")
|
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CC = $(DEVKITARM)/bin/arm-none-eabi-gcc
|
include $(DEVKITARM)/base_rules
|
||||||
LD = $(DEVKITARM)/bin/arm-none-eabi-ld
|
|
||||||
OBJCOPY = $(DEVKITARM)/bin/arm-none-eabi-objcopy
|
|
||||||
|
|
||||||
TARGET := ipl
|
TARGET := ipl
|
||||||
BUILD := build_ipl
|
BUILD := build_ipl
|
||||||
|
@ -44,7 +42,7 @@ OBJS = $(addprefix $(BUILD)/, \
|
||||||
OBJS += $(addprefix $(BUILD)/, diskio.o ff.o ffunicode.o)
|
OBJS += $(addprefix $(BUILD)/, diskio.o ff.o ffunicode.o)
|
||||||
|
|
||||||
ARCH := -march=armv4t -mtune=arm7tdmi -mthumb -mthumb-interwork
|
ARCH := -march=armv4t -mtune=arm7tdmi -mthumb -mthumb-interwork
|
||||||
CFLAGS = $(ARCH) -O2 -nostdlib -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-inline -std=gnu11# -Wall
|
CFLAGS = $(ARCH) -O2 -nostdlib -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-inline -std=gnu11 -Wall
|
||||||
LDFLAGS = $(ARCH) -nostartfiles -lgcc -Wl,--nmagic,--gc-sections
|
LDFLAGS = $(ARCH) -nostartfiles -lgcc -Wl,--nmagic,--gc-sections
|
||||||
|
|
||||||
.PHONY: all clean
|
.PHONY: all clean
|
||||||
|
|
16
ipl/clock.c
16
ipl/clock.c
|
@ -51,14 +51,14 @@ static clock_t _clock_coresight = { 0xC, 0x18, 0x1D4, 9, 0, 4};
|
||||||
void clock_enable(const clock_t *clk)
|
void clock_enable(const clock_t *clk)
|
||||||
{
|
{
|
||||||
//Put clock into reset.
|
//Put clock into reset.
|
||||||
CLOCK(clk->reset) = CLOCK(clk->reset) & ~(1 << clk->index) | (1 << clk->index);
|
CLOCK(clk->reset) = (CLOCK(clk->reset) & ~(1 << clk->index)) | (1 << clk->index);
|
||||||
//Disable.
|
//Disable.
|
||||||
CLOCK(clk->enable) &= ~(1 << clk->index);
|
CLOCK(clk->enable) &= ~(1 << clk->index);
|
||||||
//Configure clock source if required.
|
//Configure clock source if required.
|
||||||
if (clk->source)
|
if (clk->source)
|
||||||
CLOCK(clk->source) = clk->clk_div | (clk->clk_src << 29);
|
CLOCK(clk->source) = clk->clk_div | (clk->clk_src << 29);
|
||||||
//Enable.
|
//Enable.
|
||||||
CLOCK(clk->enable) = CLOCK(clk->enable) & ~(1 << clk->index) | (1 << clk->index);
|
CLOCK(clk->enable) = (CLOCK(clk->enable) & ~(1 << clk->index)) | (1 << clk->index);
|
||||||
//Take clock off reset.
|
//Take clock off reset.
|
||||||
CLOCK(clk->reset) &= ~(1 << clk->index);
|
CLOCK(clk->reset) &= ~(1 << clk->index);
|
||||||
}
|
}
|
||||||
|
@ -66,14 +66,14 @@ void clock_enable(const clock_t *clk)
|
||||||
void clock_disable(const clock_t *clk)
|
void clock_disable(const clock_t *clk)
|
||||||
{
|
{
|
||||||
//Put clock into reset.
|
//Put clock into reset.
|
||||||
CLOCK(clk->reset) = CLOCK(clk->reset) & ~(1 << clk->index) | (1 << clk->index);
|
CLOCK(clk->reset) = (CLOCK(clk->reset) & ~(1 << clk->index)) | (1 << clk->index);
|
||||||
//Disable.
|
//Disable.
|
||||||
CLOCK(clk->enable) &= ~(1 << clk->index);
|
CLOCK(clk->enable) &= ~(1 << clk->index);
|
||||||
}
|
}
|
||||||
|
|
||||||
void clock_enable_fuse(u32 enable)
|
void clock_enable_fuse(u32 enable)
|
||||||
{
|
{
|
||||||
CLOCK(CLK_RST_CONTROLLER_MISC_CLK_ENB) = CLOCK(CLK_RST_CONTROLLER_MISC_CLK_ENB) & 0xEFFFFFFF | ((enable & 1) << 28) & 0x10000000;
|
CLOCK(CLK_RST_CONTROLLER_MISC_CLK_ENB) = (CLOCK(CLK_RST_CONTROLLER_MISC_CLK_ENB) & 0xEFFFFFFF) | ((enable & 1) << 28);
|
||||||
}
|
}
|
||||||
|
|
||||||
void clock_enable_uart(u32 idx)
|
void clock_enable_uart(u32 idx)
|
||||||
|
@ -144,9 +144,9 @@ void clock_disable_sor1()
|
||||||
void clock_enable_kfuse()
|
void clock_enable_kfuse()
|
||||||
{
|
{
|
||||||
//clock_enable(&_clock_kfuse);
|
//clock_enable(&_clock_kfuse);
|
||||||
CLOCK(0x8) = CLOCK(0x8) & 0xFFFFFEFF | 0x100;
|
CLOCK(0x8) = (CLOCK(0x8) & 0xFFFFFEFF) | 0x100;
|
||||||
CLOCK(0x14) &= 0xFFFFFEFF;
|
CLOCK(0x14) &= 0xFFFFFEFF;
|
||||||
CLOCK(0x14) = CLOCK(0x14) & 0xFFFFFEFF | 0x100;
|
CLOCK(0x14) = (CLOCK(0x14) & 0xFFFFFEFF) | 0x100;
|
||||||
sleep(10);
|
sleep(10);
|
||||||
CLOCK(0x8) &= 0xFFFFFEFF;
|
CLOCK(0x8) &= 0xFFFFFEFF;
|
||||||
sleep(20);
|
sleep(20);
|
||||||
|
@ -259,7 +259,7 @@ static int _clock_sdmmc_is_enabled(u32 id)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _clock_sdmmc_set_enable(u32 id)
|
static void _clock_sdmmc_set_enable(u32 id)
|
||||||
{
|
{
|
||||||
switch (id)
|
switch (id)
|
||||||
{
|
{
|
||||||
|
@ -274,7 +274,7 @@ static int _clock_sdmmc_set_enable(u32 id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _clock_sdmmc_clear_enable(u32 id)
|
static void _clock_sdmmc_clear_enable(u32 id)
|
||||||
{
|
{
|
||||||
switch (id)
|
switch (id)
|
||||||
{
|
{
|
||||||
|
|
|
@ -77,15 +77,15 @@ void cluster_boot_cpu0(u32 entry)
|
||||||
sleep(2);
|
sleep(2);
|
||||||
CLOCK(CLK_RST_CONTROLLER_PLLX_BASE) = 0x80404E02;
|
CLOCK(CLK_RST_CONTROLLER_PLLX_BASE) = 0x80404E02;
|
||||||
CLOCK(CLK_RST_CONTROLLER_PLLX_BASE) = 0x404E02;
|
CLOCK(CLK_RST_CONTROLLER_PLLX_BASE) = 0x404E02;
|
||||||
CLOCK(CLK_RST_CONTROLLER_PLLX_MISC) = CLOCK(CLK_RST_CONTROLLER_PLLX_MISC) & 0xFFFBFFFF | 0x40000;
|
CLOCK(CLK_RST_CONTROLLER_PLLX_MISC) = (CLOCK(CLK_RST_CONTROLLER_PLLX_MISC) & 0xFFFBFFFF) | 0x40000;
|
||||||
CLOCK(CLK_RST_CONTROLLER_PLLX_BASE) = 0x40404E02;
|
CLOCK(CLK_RST_CONTROLLER_PLLX_BASE) = 0x40404E02;
|
||||||
}
|
}
|
||||||
while (!(CLOCK(CLK_RST_CONTROLLER_PLLX_BASE) & 0x8000000))
|
while (!(CLOCK(CLK_RST_CONTROLLER_PLLX_BASE) & 0x8000000))
|
||||||
;
|
;
|
||||||
|
|
||||||
//Configure MSELECT source and enable clock.
|
//Configure MSELECT source and enable clock.
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_MSELECT) = CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_MSELECT) & 0x1FFFFF00 | 6;
|
CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_MSELECT) = (CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_MSELECT) & 0x1FFFFF00) | 6;
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_OUT_ENB_V) = CLOCK(CLK_RST_CONTROLLER_CLK_OUT_ENB_V) & 0xFFFFFFF7 | 8;
|
CLOCK(CLK_RST_CONTROLLER_CLK_OUT_ENB_V) = (CLOCK(CLK_RST_CONTROLLER_CLK_OUT_ENB_V) & 0xFFFFFFF7) | 8;
|
||||||
|
|
||||||
//Configure initial CPU clock frequency and enable clock.
|
//Configure initial CPU clock frequency and enable clock.
|
||||||
CLOCK(CLK_RST_CONTROLLER_CCLK_BURST_POLICY) = 0x20008888;
|
CLOCK(CLK_RST_CONTROLLER_CCLK_BURST_POLICY) = 0x20008888;
|
||||||
|
@ -95,7 +95,7 @@ void cluster_boot_cpu0(u32 entry)
|
||||||
clock_enable_coresight();
|
clock_enable_coresight();
|
||||||
|
|
||||||
//CAR2PMC_CPU_ACK_WIDTH should be set to 0.
|
//CAR2PMC_CPU_ACK_WIDTH should be set to 0.
|
||||||
CLOCK(CLK_RST_CONTROLLER_CPU_SOFTRST_CTRL2) = CLOCK(CLK_RST_CONTROLLER_CPU_SOFTRST_CTRL2) & 0xFFFFF000;
|
CLOCK(CLK_RST_CONTROLLER_CPU_SOFTRST_CTRL2) &= 0xFFFFF000;
|
||||||
|
|
||||||
//Enable CPU rail.
|
//Enable CPU rail.
|
||||||
_cluster_pmc_enable_partition(1, 0);
|
_cluster_pmc_enable_partition(1, 0);
|
||||||
|
|
20
ipl/di.c
20
ipl/di.c
|
@ -62,19 +62,19 @@ void display_init()
|
||||||
PINMUX_AUX(0x200) &= 0xFFFFFFEF;
|
PINMUX_AUX(0x200) &= 0xFFFFFFEF;
|
||||||
PINMUX_AUX(0x204) &= 0xFFFFFFEF;
|
PINMUX_AUX(0x204) &= 0xFFFFFFEF;
|
||||||
|
|
||||||
GPIO_3(0x00) = GPIO_3(0x00) & 0xFFFFFFFC | 0x3;
|
GPIO_3(0x00) = (GPIO_3(0x00) & 0xFFFFFFFC) | 0x3;
|
||||||
GPIO_3(0x10) = GPIO_3(0x10) & 0xFFFFFFFC | 0x3;
|
GPIO_3(0x10) = (GPIO_3(0x10) & 0xFFFFFFFC) | 0x3;
|
||||||
GPIO_3(0x20) = GPIO_3(0x20) & 0xFFFFFFFE | 0x1;
|
GPIO_3(0x20) = (GPIO_3(0x20) & 0xFFFFFFFE) | 0x1;
|
||||||
|
|
||||||
sleep(10000u);
|
sleep(10000u);
|
||||||
|
|
||||||
GPIO_3(0x20) = GPIO_3(0x20) & 0xFFFFFFFD | 0x2;
|
GPIO_3(0x20) = (GPIO_3(0x20) & 0xFFFFFFFD) | 0x2;
|
||||||
|
|
||||||
sleep(10000);
|
sleep(10000);
|
||||||
|
|
||||||
GPIO_6(0x04) = GPIO_6(0x04) & 0xFFFFFFF8 | 0x7;
|
GPIO_6(0x04) = (GPIO_6(0x04) & 0xFFFFFFF8) | 0x7;
|
||||||
GPIO_6(0x14) = GPIO_6(0x14) & 0xFFFFFFF8 | 0x7;
|
GPIO_6(0x14) = (GPIO_6(0x14) & 0xFFFFFFF8) | 0x7;
|
||||||
GPIO_6(0x24) = GPIO_6(0x24) & 0xFFFFFFFD | 0x2;
|
GPIO_6(0x24) = (GPIO_6(0x24) & 0xFFFFFFFD) | 0x2;
|
||||||
|
|
||||||
//Config display interface and display.
|
//Config display interface and display.
|
||||||
MIPI_CAL(0x60) = 0;
|
MIPI_CAL(0x60) = 0;
|
||||||
|
@ -85,7 +85,7 @@ void display_init()
|
||||||
|
|
||||||
sleep(10000);
|
sleep(10000);
|
||||||
|
|
||||||
GPIO_6(0x24) = GPIO_6(0x24) & 0xFFFFFFFB | 0x4;
|
GPIO_6(0x24) = (GPIO_6(0x24) & 0xFFFFFFFB) | 0x4;
|
||||||
|
|
||||||
sleep(60000);
|
sleep(60000);
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ void display_end()
|
||||||
|
|
||||||
GPIO_6(0x04) &= 0xFFFFFFFE;
|
GPIO_6(0x04) &= 0xFFFFFFFE;
|
||||||
|
|
||||||
PINMUX_AUX(0x1FC) = PINMUX_AUX(0x1FC) & 0xFFFFFFEF | 0x10;
|
PINMUX_AUX(0x1FC) = (PINMUX_AUX(0x1FC) & 0xFFFFFFEF) | 0x10;
|
||||||
PINMUX_AUX(0x1FC) = (PINMUX_AUX(0x1FC) >> 2) << 2 | 1;
|
PINMUX_AUX(0x1FC) = (PINMUX_AUX(0x1FC) >> 2) << 2 | 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ void display_color_screen(u32 color)
|
||||||
DISPLAY_A(_DIREG(DC_WIN_BD_WIN_OPTIONS)) = 0;
|
DISPLAY_A(_DIREG(DC_WIN_BD_WIN_OPTIONS)) = 0;
|
||||||
DISPLAY_A(_DIREG(DC_WIN_CD_WIN_OPTIONS)) = 0;
|
DISPLAY_A(_DIREG(DC_WIN_CD_WIN_OPTIONS)) = 0;
|
||||||
DISPLAY_A(_DIREG(DC_DISP_BLEND_BACKGROUND_COLOR)) = color;
|
DISPLAY_A(_DIREG(DC_DISP_BLEND_BACKGROUND_COLOR)) = color;
|
||||||
DISPLAY_A(_DIREG(DC_CMD_STATE_CONTROL)) = DISPLAY_A(_DIREG(DC_CMD_STATE_CONTROL)) & 0xFFFFFFFE | GENERAL_ACT_REQ;
|
DISPLAY_A(_DIREG(DC_CMD_STATE_CONTROL)) = (DISPLAY_A(_DIREG(DC_CMD_STATE_CONTROL)) & 0xFFFFFFFE) | GENERAL_ACT_REQ;
|
||||||
|
|
||||||
sleep(35000);
|
sleep(35000);
|
||||||
|
|
||||||
|
|
|
@ -287,7 +287,7 @@ void gfx_hexdump(gfx_con_t *con, u32 base, const u8 *buf, u32 len)
|
||||||
u32 k = 0x10 - 1;
|
u32 k = 0x10 - 1;
|
||||||
if (ln)
|
if (ln)
|
||||||
{
|
{
|
||||||
k = len & 0xF - 1;
|
k = (len & 0xF) - 1;
|
||||||
for (u32 j = 0; j < 0x10 - k; j++)
|
for (u32 j = 0; j < 0x10 - k; j++)
|
||||||
gfx_puts(con, " ");
|
gfx_puts(con, " ");
|
||||||
}
|
}
|
||||||
|
|
14
ipl/hos.c
14
ipl/hos.c
|
@ -184,6 +184,8 @@ int keygen(u8 *keyblob, u32 kb, void *tsec_fw)
|
||||||
// Package2 key
|
// Package2 key
|
||||||
se_key_acc_ctrl(0x08, 0x15);
|
se_key_acc_ctrl(0x08, 0x15);
|
||||||
se_aes_unwrap_key(0x08, 0x0C, key8_keyseed);
|
se_aes_unwrap_key(0x08, 0x0C, key8_keyseed);
|
||||||
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -207,8 +209,8 @@ typedef struct _launch_ctxt_t
|
||||||
u32 kernel_size;
|
u32 kernel_size;
|
||||||
link_t kip1_list;
|
link_t kip1_list;
|
||||||
|
|
||||||
u8 *svcperm;
|
int svcperm;
|
||||||
u8 *debugmode;
|
int debugmode;
|
||||||
} launch_ctxt_t;
|
} launch_ctxt_t;
|
||||||
|
|
||||||
typedef struct _merge_kip_t
|
typedef struct _merge_kip_t
|
||||||
|
@ -345,9 +347,9 @@ static int _config_svcperm(launch_ctxt_t *ctxt, const char *value)
|
||||||
if (*(u8 *)value == '1')
|
if (*(u8 *)value == '1')
|
||||||
{
|
{
|
||||||
DPRINTF("Disabled SVC verification\n");
|
DPRINTF("Disabled SVC verification\n");
|
||||||
ctxt->svcperm = malloc(1);
|
ctxt->svcperm = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -356,8 +358,10 @@ static int _config_debugmode(launch_ctxt_t *ctxt, const char *value)
|
||||||
if (*(u8 *)value == '1')
|
if (*(u8 *)value == '1')
|
||||||
{
|
{
|
||||||
DPRINTF("Enabled Debug mode\n");
|
DPRINTF("Enabled Debug mode\n");
|
||||||
ctxt->debugmode = malloc(1);
|
ctxt->debugmode = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct _cfg_handler_t
|
typedef struct _cfg_handler_t
|
||||||
|
|
14
ipl/i2c.c
14
ipl/i2c.c
|
@ -46,7 +46,7 @@ static int _i2c_send_pkt(u32 idx, u32 x, u8 *buf, u32 size)
|
||||||
base[0] = (2 * size - 2) | 0x2800; //Set size and send mode.
|
base[0] = (2 * size - 2) | 0x2800; //Set size and send mode.
|
||||||
_i2c_wait(base); //Kick transaction.
|
_i2c_wait(base); //Kick transaction.
|
||||||
|
|
||||||
base[0] = base[0] & 0xFFFFFDFF | 0x200;
|
base[0] = (base[0] & 0xFFFFFDFF) | 0x200;
|
||||||
while (base[7] & 0x100)
|
while (base[7] & 0x100)
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ static int _i2c_recv_pkt(u32 idx, u8 *buf, u32 size, u32 x)
|
||||||
base[0] = (2 * size - 2) | 0x2840; //Set size and recv mode.
|
base[0] = (2 * size - 2) | 0x2840; //Set size and recv mode.
|
||||||
_i2c_wait(base); //Kick transaction.
|
_i2c_wait(base); //Kick transaction.
|
||||||
|
|
||||||
base[0] = base[0] & 0xFFFFFDFF | 0x200;
|
base[0] = (base[0] & 0xFFFFFDFF) | 0x200;
|
||||||
while (base[7] & 0x100)
|
while (base[7] & 0x100)
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -94,11 +94,11 @@ void i2c_init(u32 idx)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
vu32 dummy = base[0x22];
|
(vu32)base[0x22];
|
||||||
base[0x1A] = base[0x1A];
|
base[0x1A] = base[0x1A];
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 i2c_send_buf_small(u32 idx, u32 x, u32 y, u8 *buf, u32 size)
|
int i2c_send_buf_small(u32 idx, u32 x, u32 y, u8 *buf, u32 size)
|
||||||
{
|
{
|
||||||
u8 tmp[4];
|
u8 tmp[4];
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ u32 i2c_send_buf_small(u32 idx, u32 x, u32 y, u8 *buf, u32 size)
|
||||||
tmp[0] = y;
|
tmp[0] = y;
|
||||||
memcpy(tmp + 1, buf, size);
|
memcpy(tmp + 1, buf, size);
|
||||||
|
|
||||||
_i2c_send_pkt(idx, x, tmp, size + 1);
|
return _i2c_send_pkt(idx, x, tmp, size + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int i2c_recv_buf_small(u8 *buf, u32 size, u32 idx, u32 x, u32 y)
|
int i2c_recv_buf_small(u8 *buf, u32 size, u32 idx, u32 x, u32 y)
|
||||||
|
@ -119,9 +119,9 @@ int i2c_recv_buf_small(u8 *buf, u32 size, u32 idx, u32 x, u32 y)
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 i2c_send_byte(u32 idx, u32 x, u32 y, u8 b)
|
int i2c_send_byte(u32 idx, u32 x, u32 y, u8 b)
|
||||||
{
|
{
|
||||||
i2c_send_buf_small(idx, x, y, &b, 1);
|
return i2c_send_buf_small(idx, x, y, &b, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 i2c_recv_byte(u32 idx, u32 x, u32 y)
|
u8 i2c_recv_byte(u32 idx, u32 x, u32 y)
|
||||||
|
|
|
@ -27,9 +27,9 @@
|
||||||
#define I2C_6 5
|
#define I2C_6 5
|
||||||
|
|
||||||
void i2c_init(u32 idx);
|
void i2c_init(u32 idx);
|
||||||
u32 i2c_send_buf_small(u32 idx, u32 x, u32 y, u8 *buf, u32 size);
|
int i2c_send_buf_small(u32 idx, u32 x, u32 y, u8 *buf, u32 size);
|
||||||
int i2c_recv_buf_small(u8 *buf, u32 size, u32 idx, u32 x, u32 y);
|
int i2c_recv_buf_small(u8 *buf, u32 size, u32 idx, u32 x, u32 y);
|
||||||
u32 i2c_send_byte(u32 idx, u32 x, u32 y, u8 b);
|
int i2c_send_byte(u32 idx, u32 x, u32 y, u8 b);
|
||||||
u8 i2c_recv_byte(u32 idx, u32 x, u32 y);
|
u8 i2c_recv_byte(u32 idx, u32 x, u32 y);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
21
ipl/main.c
21
ipl/main.c
|
@ -156,17 +156,17 @@ void panic(u32 val)
|
||||||
|
|
||||||
void config_oscillators()
|
void config_oscillators()
|
||||||
{
|
{
|
||||||
CLOCK(CLK_RST_CONTROLLER_SPARE_REG0) = CLOCK(CLK_RST_CONTROLLER_SPARE_REG0) & 0xFFFFFFF3 | 4;
|
CLOCK(CLK_RST_CONTROLLER_SPARE_REG0) = (CLOCK(CLK_RST_CONTROLLER_SPARE_REG0) & 0xFFFFFFF3) | 4;
|
||||||
SYSCTR0(SYSCTR0_CNTFID0) = 19200000;
|
SYSCTR0(SYSCTR0_CNTFID0) = 19200000;
|
||||||
TMR(0x14) = 0x45F;
|
TMR(0x14) = 0x45F;
|
||||||
CLOCK(CLK_RST_CONTROLLER_OSC_CTRL) = 0x50000071;
|
CLOCK(CLK_RST_CONTROLLER_OSC_CTRL) = 0x50000071;
|
||||||
PMC(APBDEV_PMC_OSC_EDPD_OVER) = PMC(APBDEV_PMC_OSC_EDPD_OVER) & 0xFFFFFF81 | 0xE;
|
PMC(APBDEV_PMC_OSC_EDPD_OVER) = (PMC(APBDEV_PMC_OSC_EDPD_OVER) & 0xFFFFFF81) | 0xE;
|
||||||
PMC(APBDEV_PMC_OSC_EDPD_OVER) = PMC(APBDEV_PMC_OSC_EDPD_OVER) & 0xFFBFFFFF | 0x400000;
|
PMC(APBDEV_PMC_OSC_EDPD_OVER) = (PMC(APBDEV_PMC_OSC_EDPD_OVER) & 0xFFBFFFFF) | 0x400000;
|
||||||
PMC(APBDEV_PMC_CNTRL2) = PMC(APBDEV_PMC_CNTRL2) & 0xFFFFEFFF | 0x1000;
|
PMC(APBDEV_PMC_CNTRL2) = (PMC(APBDEV_PMC_CNTRL2) & 0xFFFFEFFF) | 0x1000;
|
||||||
PMC(APBDEV_PMC_SCRATCH188) = PMC(APBDEV_PMC_SCRATCH188) & 0xFCFFFFFF | 0x2000000;
|
PMC(APBDEV_PMC_SCRATCH188) = (PMC(APBDEV_PMC_SCRATCH188) & 0xFCFFFFFF) | 0x2000000;
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_SYSTEM_RATE) = 0x10;
|
CLOCK(CLK_RST_CONTROLLER_CLK_SYSTEM_RATE) = 0x10;
|
||||||
CLOCK(CLK_RST_CONTROLLER_PLLMB_BASE) &= 0xBFFFFFFF;
|
CLOCK(CLK_RST_CONTROLLER_PLLMB_BASE) &= 0xBFFFFFFF;
|
||||||
PMC(APBDEV_PMC_TSC_MULT) = PMC(APBDEV_PMC_TSC_MULT) & 0xFFFF0000 | 0x249F; //0x249F = 19200000 * (16 / 32.768 kHz)
|
PMC(APBDEV_PMC_TSC_MULT) = (PMC(APBDEV_PMC_TSC_MULT) & 0xFFFF0000) | 0x249F; //0x249F = 19200000 * (16 / 32.768 kHz)
|
||||||
CLOCK(CLK_RST_CONTROLLER_SCLK_BURST_POLICY) = 0x20004444;
|
CLOCK(CLK_RST_CONTROLLER_SCLK_BURST_POLICY) = 0x20004444;
|
||||||
CLOCK(CLK_RST_CONTROLLER_SUPER_SCLK_DIVIDER) = 0x80000000;
|
CLOCK(CLK_RST_CONTROLLER_SUPER_SCLK_DIVIDER) = 0x80000000;
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_SYSTEM_RATE) = 2;
|
CLOCK(CLK_RST_CONTROLLER_CLK_SYSTEM_RATE) = 2;
|
||||||
|
@ -247,9 +247,9 @@ void mbist_workaround()
|
||||||
CLOCK(0x554) = 0;
|
CLOCK(0x554) = 0;
|
||||||
CLOCK(0xD0) &= 0x1F7FFFFF;
|
CLOCK(0xD0) &= 0x1F7FFFFF;
|
||||||
CLOCK(0x410) &= 0xFFFF3FFF;
|
CLOCK(0x410) &= 0xFFFF3FFF;
|
||||||
CLOCK(0x148) = CLOCK(0x148) & 0x1FFFFFFF | 0x80000000;
|
CLOCK(0x148) = (CLOCK(0x148) & 0x1FFFFFFF) | 0x80000000;
|
||||||
CLOCK(0x180) = CLOCK(0x180) & 0x1FFFFFFF | 0x80000000;
|
CLOCK(0x180) = (CLOCK(0x180) & 0x1FFFFFFF) | 0x80000000;
|
||||||
CLOCK(0x6A0) = CLOCK(0x6A0) & 0x1FFFFFFF | 0x80000000;
|
CLOCK(0x6A0) = (CLOCK(0x6A0) & 0x1FFFFFFF) | 0x80000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
void config_se_brom()
|
void config_se_brom()
|
||||||
|
@ -325,7 +325,7 @@ void config_hw()
|
||||||
|
|
||||||
config_pmc_scratch();
|
config_pmc_scratch();
|
||||||
|
|
||||||
CLOCK(CLK_RST_CONTROLLER_SCLK_BURST_POLICY) = CLOCK(CLK_RST_CONTROLLER_SCLK_BURST_POLICY) & 0xFFFF8888 | 0x3333;
|
CLOCK(CLK_RST_CONTROLLER_SCLK_BURST_POLICY) = (CLOCK(CLK_RST_CONTROLLER_SCLK_BURST_POLICY) & 0xFFFF8888) | 0x3333;
|
||||||
|
|
||||||
mc_config_carveout();
|
mc_config_carveout();
|
||||||
|
|
||||||
|
@ -1266,7 +1266,6 @@ void launch_firmware()
|
||||||
|
|
||||||
//TODO: free ini.
|
//TODO: free ini.
|
||||||
|
|
||||||
out:;
|
|
||||||
btn_wait();
|
btn_wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
10
ipl/mc.c
10
ipl/mc.c
|
@ -102,7 +102,7 @@ void mc_config_carveout()
|
||||||
|
|
||||||
void mc_enable_ahb_redirect()
|
void mc_enable_ahb_redirect()
|
||||||
{
|
{
|
||||||
CLOCK(0x3A4) = CLOCK(0x3A4) & 0xFFF7FFFF | 0x80000;
|
CLOCK(0x3A4) = (CLOCK(0x3A4) & 0xFFF7FFFF) | 0x80000;
|
||||||
//MC(MC_IRAM_REG_CTRL) &= 0xFFFFFFFE;
|
//MC(MC_IRAM_REG_CTRL) &= 0xFFFFFFFE;
|
||||||
MC(MC_IRAM_BOM) = 0x40000000;
|
MC(MC_IRAM_BOM) = 0x40000000;
|
||||||
MC(MC_IRAM_TOM) = 0x4003F000;
|
MC(MC_IRAM_TOM) = 0x4003F000;
|
||||||
|
@ -119,13 +119,13 @@ void mc_disable_ahb_redirect()
|
||||||
|
|
||||||
void mc_enable()
|
void mc_enable()
|
||||||
{
|
{
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_EMC) = CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_EMC) & 0x1FFFFFFF | 0x40000000;
|
CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_EMC) = (CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_EMC) & 0x1FFFFFFF) | 0x40000000;
|
||||||
//Enable MIPI CAL clock.
|
//Enable MIPI CAL clock.
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_H_SET) = CLOCK(CLK_RST_CONTROLLER_CLK_ENB_H_SET) & 0xFDFFFFFF | 0x2000000;
|
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_H_SET) = (CLOCK(CLK_RST_CONTROLLER_CLK_ENB_H_SET) & 0xFDFFFFFF) | 0x2000000;
|
||||||
//Enable MC clock.
|
//Enable MC clock.
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_H_SET) = CLOCK(CLK_RST_CONTROLLER_CLK_ENB_H_SET) & 0xFFFFFFFE | 1;
|
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_H_SET) = (CLOCK(CLK_RST_CONTROLLER_CLK_ENB_H_SET) & 0xFFFFFFFE) | 1;
|
||||||
//Enable EMC DLL clock.
|
//Enable EMC DLL clock.
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_X_SET) = CLOCK(CLK_RST_CONTROLLER_CLK_ENB_X_SET) & 0xFFFFBFFF | 0x4000;
|
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_X_SET) = (CLOCK(CLK_RST_CONTROLLER_CLK_ENB_X_SET) & 0xFFFFBFFF) | 0x4000;
|
||||||
CLOCK(CLK_RST_CONTROLLER_RST_DEV_H_SET) = 0x2000001; //Clear EMC and MC reset.
|
CLOCK(CLK_RST_CONTROLLER_RST_DEV_H_SET) = 0x2000001; //Clear EMC and MC reset.
|
||||||
sleep(5);
|
sleep(5);
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ void nx_emmc_gpt_parse(link_t *gpt, sdmmc_storage_t *storage)
|
||||||
//HACK
|
//HACK
|
||||||
for (u32 i = 0; i < 36; i++)
|
for (u32 i = 0; i < 36; i++)
|
||||||
part->name[i] = ent->name[i];
|
part->name[i] = ent->name[i];
|
||||||
part->name[37] = 0;
|
part->name[36] = 0;
|
||||||
|
|
||||||
list_append(gpt, &part->link);
|
list_append(gpt, &part->link);
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ typedef struct _emmc_part_t
|
||||||
u32 lba_start;
|
u32 lba_start;
|
||||||
u32 lba_end;
|
u32 lba_end;
|
||||||
u64 attrs;
|
u64 attrs;
|
||||||
u8 name[37];
|
s8 name[37];
|
||||||
link_t link;
|
link_t link;
|
||||||
} emmc_part_t;
|
} emmc_part_t;
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ static const pkg1_id_t _pkg1_ids[] = {
|
||||||
{ "20170710161758", 2, 0x1A00, 0x3FE0, { 0, 1, 2 }, 0x4002D000, 0x8000D000, 1, _secmon_3_patchset }, //3.0.1 - 3.0.2
|
{ "20170710161758", 2, 0x1A00, 0x3FE0, { 0, 1, 2 }, 0x4002D000, 0x8000D000, 1, _secmon_3_patchset }, //3.0.1 - 3.0.2
|
||||||
{ "20170921172629", 3, 0x1800, 0x3FE0, { 1, 2, 0 }, 0x4002B000, 0x4003B000, 0, _secmon_4_patchset }, //4.0.0 - 4.1.0
|
{ "20170921172629", 3, 0x1800, 0x3FE0, { 1, 2, 0 }, 0x4002B000, 0x4003B000, 0, _secmon_4_patchset }, //4.0.0 - 4.1.0
|
||||||
{ "20180220163747", 4, 0x1900, 0x3FE0, { 1, 2, 0 }, 0x4002B000, 0x4003B000, 0, _secmon_5_patchset }, //5.0.0 - 5.1.0
|
{ "20180220163747", 4, 0x1900, 0x3FE0, { 1, 2, 0 }, 0x4002B000, 0x4003B000, 0, _secmon_5_patchset }, //5.0.0 - 5.1.0
|
||||||
{ NULL, 0, 0, 0, 0 } //End.
|
{ NULL } //End.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
10
ipl/sdmmc.c
10
ipl/sdmmc.c
|
@ -307,7 +307,7 @@ static void _mmc_storage_parse_csd(sdmmc_storage_t *storage)
|
||||||
storage->csd.capacity = (1 + unstuff_bits(raw_csd, 62, 12)) << (unstuff_bits(raw_csd, 47, 3) + 2);
|
storage->csd.capacity = (1 + unstuff_bits(raw_csd, 62, 12)) << (unstuff_bits(raw_csd, 47, 3) + 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _mmc_storage_parse_ext_csd(sdmmc_storage_t *storage, u8 *buf)
|
static void _mmc_storage_parse_ext_csd(sdmmc_storage_t *storage, u8 *buf)
|
||||||
{
|
{
|
||||||
storage->ext_csd.rev = buf[EXT_CSD_REV];
|
storage->ext_csd.rev = buf[EXT_CSD_REV];
|
||||||
storage->ext_csd.ext_struct = buf[EXT_CSD_STRUCTURE];
|
storage->ext_csd.ext_struct = buf[EXT_CSD_STRUCTURE];
|
||||||
|
@ -433,9 +433,9 @@ static int _mmc_storage_enable_highspeed(sdmmc_storage_t *storage, u32 card_type
|
||||||
return _mmc_storage_enable_HS400(storage);
|
return _mmc_storage_enable_HS400(storage);
|
||||||
|
|
||||||
if (sdmmc_get_bus_width(storage->sdmmc) == SDMMC_BUS_WIDTH_8 ||
|
if (sdmmc_get_bus_width(storage->sdmmc) == SDMMC_BUS_WIDTH_8 ||
|
||||||
sdmmc_get_bus_width(storage->sdmmc) == SDMMC_BUS_WIDTH_4
|
(sdmmc_get_bus_width(storage->sdmmc) == SDMMC_BUS_WIDTH_4
|
||||||
&& card_type & EXT_CSD_CARD_TYPE_HS200_1_8V
|
&& card_type & EXT_CSD_CARD_TYPE_HS200_1_8V
|
||||||
&& (type == 4 || type == 3))
|
&& (type == 4 || type == 3)))
|
||||||
return _mmc_storage_enable_HS200(storage);
|
return _mmc_storage_enable_HS200(storage);
|
||||||
|
|
||||||
out:;
|
out:;
|
||||||
|
@ -767,12 +767,12 @@ int _sd_storage_enable_highspeed(sdmmc_storage_t *storage, u32 hs_type, u8 *buf)
|
||||||
if (type_out != hs_type)
|
if (type_out != hs_type)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (((u16)buf[0] << 8) | buf[1] < 0x320)
|
if ((((u16)buf[0] << 8) | buf[1]) < 0x320)
|
||||||
{
|
{
|
||||||
if (!_sd_storage_switch(storage, buf, 1, hs_type))
|
if (!_sd_storage_switch(storage, buf, 1, hs_type))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (type_out != buf[16] & 0xF)
|
if (type_out != (buf[16] & 0xF))
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -129,7 +129,7 @@ static int _sdmmc_config_ven_ceata_clk(sdmmc_t *sdmmc, u32 id)
|
||||||
static const u32 tap_values[] = { 4, 0, 3, 0 };
|
static const u32 tap_values[] = { 4, 0, 3, 0 };
|
||||||
tap_val = tap_values[sdmmc->id];
|
tap_val = tap_values[sdmmc->id];
|
||||||
}
|
}
|
||||||
sdmmc->regs->venclkctl = sdmmc->regs->venclkctl & 0xFF00FFFF | (tap_val << 16);
|
sdmmc->regs->venclkctl = (sdmmc->regs->venclkctl & 0xFF00FFFF) | (tap_val << 16);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -624,7 +624,7 @@ static int _sdmmc_autocal_config_offset(sdmmc_t *sdmmc, u32 power)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
sdmmc->regs->autocalcfg = ((sdmmc->regs->autocalcfg & 0xFFFF80FF | (off_pd << 8)) >> 7 << 7) | off_pu;
|
sdmmc->regs->autocalcfg = (((sdmmc->regs->autocalcfg & 0xFFFF80FF) | (off_pd << 8)) >> 7 << 7) | off_pu;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
12
ipl/sdram.c
12
ipl/sdram.c
|
@ -64,7 +64,7 @@ static void _sdram_config(const sdram_params_t *params)
|
||||||
sleep(10);
|
sleep(10);
|
||||||
break_nosleep:
|
break_nosleep:
|
||||||
|
|
||||||
CLOCK(0x19C) = (params->mc_emem_arb_misc0 >> 11) & 0x10000 | params->emc_clock_source & 0xFFFEFFFF;
|
CLOCK(0x19C) = ((params->mc_emem_arb_misc0 >> 11) & 0x10000) | (params->emc_clock_source & 0xFFFEFFFF);
|
||||||
if (params->emc_clock_source_dll)
|
if (params->emc_clock_source_dll)
|
||||||
CLOCK(0x664) = params->emc_clock_source_dll;
|
CLOCK(0x664) = params->emc_clock_source_dll;
|
||||||
if (params->clear_clock2_mc1)
|
if (params->clear_clock2_mc1)
|
||||||
|
@ -97,7 +97,7 @@ break_nosleep:
|
||||||
EMC(EMC_PMACRO_BRICK_MAPPING_0) = params->emc_pmacro_brick_mapping0;
|
EMC(EMC_PMACRO_BRICK_MAPPING_0) = params->emc_pmacro_brick_mapping0;
|
||||||
EMC(EMC_PMACRO_BRICK_MAPPING_1) = params->emc_pmacro_brick_mapping1;
|
EMC(EMC_PMACRO_BRICK_MAPPING_1) = params->emc_pmacro_brick_mapping1;
|
||||||
EMC(EMC_PMACRO_BRICK_MAPPING_2) = params->emc_pmacro_brick_mapping2;
|
EMC(EMC_PMACRO_BRICK_MAPPING_2) = params->emc_pmacro_brick_mapping2;
|
||||||
EMC(EMC_PMACRO_BRICK_CTRL_RFU1) = params->emc_pmacro_brick_ctrl_rfu1 & 0x1120112 | 0x1EED1EED;
|
EMC(EMC_PMACRO_BRICK_CTRL_RFU1) = (params->emc_pmacro_brick_ctrl_rfu1 & 0x1120112) | 0x1EED1EED;
|
||||||
EMC(EMC_CONFIG_SAMPLE_DELAY) = params->emc_config_sample_delay;
|
EMC(EMC_CONFIG_SAMPLE_DELAY) = params->emc_config_sample_delay;
|
||||||
EMC(EMC_FBIO_CFG8) = params->emc_fbio_cfg8;
|
EMC(EMC_FBIO_CFG8) = params->emc_fbio_cfg8;
|
||||||
EMC(EMC_SWIZZLE_RANK0_BYTE0) = params->emc_swizzle_rank0_byte0;
|
EMC(EMC_SWIZZLE_RANK0_BYTE0) = params->emc_swizzle_rank0_byte0;
|
||||||
|
@ -142,7 +142,7 @@ break_nosleep:
|
||||||
EMC(EMC_QUSE_BRLSHFT_1) = params->emc_quse_brlshft1;
|
EMC(EMC_QUSE_BRLSHFT_1) = params->emc_quse_brlshft1;
|
||||||
EMC(EMC_QUSE_BRLSHFT_2) = params->emc_quse_brlshft2;
|
EMC(EMC_QUSE_BRLSHFT_2) = params->emc_quse_brlshft2;
|
||||||
EMC(EMC_QUSE_BRLSHFT_3) = params->emc_quse_brlshft3;
|
EMC(EMC_QUSE_BRLSHFT_3) = params->emc_quse_brlshft3;
|
||||||
EMC(EMC_PMACRO_BRICK_CTRL_RFU1) = params->emc_pmacro_brick_ctrl_rfu1 & 0x1BF01BF | 0x1E401E40;
|
EMC(EMC_PMACRO_BRICK_CTRL_RFU1) = (params->emc_pmacro_brick_ctrl_rfu1 & 0x1BF01BF) | 0x1E401E40;
|
||||||
EMC(EMC_PMACRO_PAD_CFG_CTRL) = params->emc_pmacro_pad_cfg_ctrl;
|
EMC(EMC_PMACRO_PAD_CFG_CTRL) = params->emc_pmacro_pad_cfg_ctrl;
|
||||||
EMC(EMC_PMACRO_CMD_BRICK_CTRL_FDPD) = params->emc_pmacro_cmd_brick_ctrl_fdpd;
|
EMC(EMC_PMACRO_CMD_BRICK_CTRL_FDPD) = params->emc_pmacro_cmd_brick_ctrl_fdpd;
|
||||||
EMC(EMC_PMACRO_BRICK_CTRL_RFU2) = params->emc_pmacro_brick_ctrl_rfu2 & 0xFF7FFF7F;
|
EMC(EMC_PMACRO_BRICK_CTRL_RFU2) = params->emc_pmacro_brick_ctrl_rfu2 & 0xFF7FFF7F;
|
||||||
|
@ -232,7 +232,7 @@ break_nosleep:
|
||||||
EMC(EMC_PMACRO_DDLL_SHORT_CMD_0) = params->emc_pmacro_ddll_short_cmd_0;
|
EMC(EMC_PMACRO_DDLL_SHORT_CMD_0) = params->emc_pmacro_ddll_short_cmd_0;
|
||||||
EMC(EMC_PMACRO_DDLL_SHORT_CMD_1) = params->emc_pmacro_ddll_short_cmd_1;
|
EMC(EMC_PMACRO_DDLL_SHORT_CMD_1) = params->emc_pmacro_ddll_short_cmd_1;
|
||||||
EMC(EMC_PMACRO_DDLL_SHORT_CMD_2) = params->emc_pmacro_ddll_short_cmd_2;
|
EMC(EMC_PMACRO_DDLL_SHORT_CMD_2) = params->emc_pmacro_ddll_short_cmd_2;
|
||||||
EMC(EMC_PMACRO_COMMON_PAD_TX_CTRL) = params->emc_pmacro_common_pad_tx_ctrl & 1 | 0xE;
|
EMC(EMC_PMACRO_COMMON_PAD_TX_CTRL) = (params->emc_pmacro_common_pad_tx_ctrl & 1) | 0xE;
|
||||||
if (params->emc_bct_spare4)
|
if (params->emc_bct_spare4)
|
||||||
*(vu32 *)params->emc_bct_spare4 = params->emc_bct_spare5;
|
*(vu32 *)params->emc_bct_spare4 = params->emc_bct_spare5;
|
||||||
EMC(EMC_TIMING_CONTROL) = 1;
|
EMC(EMC_TIMING_CONTROL) = 1;
|
||||||
|
@ -386,7 +386,7 @@ break_nosleep:
|
||||||
EMC(EMC_PMC_SCRATCH3) = params->emc_pmc_scratch3;
|
EMC(EMC_PMC_SCRATCH3) = params->emc_pmc_scratch3;
|
||||||
EMC(EMC_ACPD_CONTROL) = params->emc_acpd_control;
|
EMC(EMC_ACPD_CONTROL) = params->emc_acpd_control;
|
||||||
EMC(EMC_TXDSRVTTGEN) = params->emc_txdsrvttgen;
|
EMC(EMC_TXDSRVTTGEN) = params->emc_txdsrvttgen;
|
||||||
EMC(EMC_CFG) = params->emc_cfg & 0xE | 0x3C00000;
|
EMC(EMC_CFG) = (params->emc_cfg & 0xE) | 0x3C00000;
|
||||||
if (params->boot_rom_patch_control & 0x80000000)
|
if (params->boot_rom_patch_control & 0x80000000)
|
||||||
{
|
{
|
||||||
*(vu32 *)(4 * (params->boot_rom_patch_control + 0x1C000000)) = params->boot_rom_patch_data;
|
*(vu32 *)(4 * (params->boot_rom_patch_control + 0x1C000000)) = params->boot_rom_patch_data;
|
||||||
|
@ -481,7 +481,7 @@ break_nosleep:
|
||||||
EMC(EMC_TIMING_CONTROL) = 1;
|
EMC(EMC_TIMING_CONTROL) = 1;
|
||||||
EMC(EMC_CFG_PIPE_CLK) = params->emc_cfg_pipe_clk;
|
EMC(EMC_CFG_PIPE_CLK) = params->emc_cfg_pipe_clk;
|
||||||
EMC(EMC_FDPD_CTRL_CMD_NO_RAMP) = params->emc_fdpd_ctrl_cmd_no_ramp;
|
EMC(EMC_FDPD_CTRL_CMD_NO_RAMP) = params->emc_fdpd_ctrl_cmd_no_ramp;
|
||||||
SYSREG(AHB_ARBITRATION_XBAR_CTRL) = SYSREG(AHB_ARBITRATION_XBAR_CTRL) & 0xFFFEFFFF | ((params->ahb_arbitration_xbar_ctrl_meminit_done & 0xFFFF) << 16);
|
SYSREG(AHB_ARBITRATION_XBAR_CTRL) = (SYSREG(AHB_ARBITRATION_XBAR_CTRL) & 0xFFFEFFFF) | ((params->ahb_arbitration_xbar_ctrl_meminit_done & 0xFFFF) << 16);
|
||||||
MC(MC_VIDEO_PROTECT_REG_CTRL) = params->mc_video_protect_write_access;
|
MC(MC_VIDEO_PROTECT_REG_CTRL) = params->mc_video_protect_write_access;
|
||||||
MC(MC_SEC_CARVEOUT_REG_CTRL) = params->mc_sec_carveout_protect_write_access;
|
MC(MC_SEC_CARVEOUT_REG_CTRL) = params->mc_sec_carveout_protect_write_access;
|
||||||
MC(MC_MTS_CARVEOUT_REG_CTRL) = params->mc_mts_carveout_reg_ctrl;
|
MC(MC_MTS_CARVEOUT_REG_CTRL) = params->mc_mts_carveout_reg_ctrl;
|
||||||
|
|
2
ipl/se.c
2
ipl/se.c
|
@ -124,7 +124,7 @@ static void _se_aes_ctr_set(void *ctr)
|
||||||
void se_rsa_acc_ctrl(u32 rs, u32 flags)
|
void se_rsa_acc_ctrl(u32 rs, u32 flags)
|
||||||
{
|
{
|
||||||
if (flags & 0x7F)
|
if (flags & 0x7F)
|
||||||
SE(SE_RSA_KEYTABLE_ACCESS_REG_OFFSET + 4 * rs) = ((flags >> 4) & 4 | flags & 3) ^ 7;
|
SE(SE_RSA_KEYTABLE_ACCESS_REG_OFFSET + 4 * rs) = (((flags >> 4) & 4) | (flags & 3)) ^ 7;
|
||||||
if (flags & 0x80)
|
if (flags & 0x80)
|
||||||
SE(SE_RSA_KEYTABLE_ACCESS_LOCK_OFFSET) &= ~(1 << rs);
|
SE(SE_RSA_KEYTABLE_ACCESS_LOCK_OFFSET) &= ~(1 << rs);
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ void tui_pbar(gfx_con_t *con, int x, int y, u32 val, u32 fgcol, u32 bgcol)
|
||||||
|
|
||||||
void *tui_do_menu(gfx_con_t *con, menu_t *menu)
|
void *tui_do_menu(gfx_con_t *con, menu_t *menu)
|
||||||
{
|
{
|
||||||
int idx = 0, cnt;
|
int idx = 0, cnt = 0;
|
||||||
int prev_idx = 0;
|
int prev_idx = 0;
|
||||||
|
|
||||||
gfx_clear_grey(con->gfx_ctxt, 0x1B);
|
gfx_clear_grey(con->gfx_ctxt, 0x1B);
|
||||||
|
|
|
@ -26,6 +26,10 @@
|
||||||
#define OFFSET_OF(t, m) ((u32)&((t *)NULL)->m)
|
#define OFFSET_OF(t, m) ((u32)&((t *)NULL)->m)
|
||||||
#define CONTAINER_OF(mp, t, mn) ((t *)((u32)mp - OFFSET_OF(t, mn)))
|
#define CONTAINER_OF(mp, t, mn) ((t *)((u32)mp - OFFSET_OF(t, mn)))
|
||||||
|
|
||||||
|
typedef char s8;
|
||||||
|
typedef short s16;
|
||||||
|
typedef int s32;
|
||||||
|
typedef long long int s64;
|
||||||
typedef unsigned char u8;
|
typedef unsigned char u8;
|
||||||
typedef unsigned short u16;
|
typedef unsigned short u16;
|
||||||
typedef unsigned int u32;
|
typedef unsigned int u32;
|
||||||
|
|
Loading…
Reference in a new issue