bdk: make use of new MC/EMC defines
This commit is contained in:
15
bdk/mem/mc.c
15
bdk/mem/mc.c
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018 naehrwert
|
* Copyright (c) 2018 naehrwert
|
||||||
* Copyright (c) 2018-2024 CTCaer
|
* Copyright (c) 2018-2025 CTCaer
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms and conditions of the GNU General Public License,
|
* under the terms and conditions of the GNU General Public License,
|
||||||
@@ -21,6 +21,8 @@
|
|||||||
#include <soc/t210.h>
|
#include <soc/t210.h>
|
||||||
#include <soc/clock.h>
|
#include <soc/clock.h>
|
||||||
|
|
||||||
|
#define HOS_WPR1_BASE 0x80020000
|
||||||
|
|
||||||
void mc_config_tzdram_carveout(u32 bom, u32 size1mb, bool lock)
|
void mc_config_tzdram_carveout(u32 bom, u32 size1mb, bool lock)
|
||||||
{
|
{
|
||||||
MC(MC_SEC_CARVEOUT_BOM) = bom;
|
MC(MC_SEC_CARVEOUT_BOM) = bom;
|
||||||
@@ -32,8 +34,10 @@ void mc_config_tzdram_carveout(u32 bom, u32 size1mb, bool lock)
|
|||||||
void mc_config_carveout()
|
void mc_config_carveout()
|
||||||
{
|
{
|
||||||
// Enable ACR GSR3.
|
// Enable ACR GSR3.
|
||||||
*(vu32 *)0x8005FFFC = 0xC0EDBBCC;
|
*(u32 *)(HOS_WPR1_BASE + SZ_256K - sizeof(u32)) = ACR_GSC3_ENABLE_MAGIC;
|
||||||
MC(MC_VIDEO_PROTECT_GPU_OVERRIDE_0) = 1;
|
|
||||||
|
// Set VPR CYA TRUSTED DEFAULT.
|
||||||
|
MC(MC_VIDEO_PROTECT_GPU_OVERRIDE_0) = VPR_OVR0_CYA_TRUST_DEFAULT;
|
||||||
MC(MC_VIDEO_PROTECT_GPU_OVERRIDE_1) = 0;
|
MC(MC_VIDEO_PROTECT_GPU_OVERRIDE_1) = 0;
|
||||||
MC(MC_VIDEO_PROTECT_BOM) = 0;
|
MC(MC_VIDEO_PROTECT_BOM) = 0;
|
||||||
MC(MC_VIDEO_PROTECT_REG_CTRL) = VPR_CTRL_LOCKED;
|
MC(MC_VIDEO_PROTECT_REG_CTRL) = VPR_CTRL_LOCKED;
|
||||||
@@ -77,7 +81,7 @@ void mc_config_carveout()
|
|||||||
// SDMMC, TSEC, XUSB and probably more need it to access < DRAM_START.
|
// SDMMC, TSEC, XUSB and probably more need it to access < DRAM_START.
|
||||||
void mc_enable_ahb_redirect()
|
void mc_enable_ahb_redirect()
|
||||||
{
|
{
|
||||||
// Enable ARC_CLK_OVR_ON.
|
// Bypass ARC clock gating.
|
||||||
CLOCK(CLK_RST_CONTROLLER_LVL2_CLK_GATE_OVRD) |= BIT(19);
|
CLOCK(CLK_RST_CONTROLLER_LVL2_CLK_GATE_OVRD) |= BIT(19);
|
||||||
//MC(MC_IRAM_REG_CTRL) &= ~BIT(0);
|
//MC(MC_IRAM_REG_CTRL) &= ~BIT(0);
|
||||||
MC(MC_IRAM_BOM) = IRAM_BASE;
|
MC(MC_IRAM_BOM) = IRAM_BASE;
|
||||||
@@ -90,7 +94,7 @@ void mc_disable_ahb_redirect()
|
|||||||
MC(MC_IRAM_TOM) = 0;
|
MC(MC_IRAM_TOM) = 0;
|
||||||
// Disable IRAM_CFG_WRITE_ACCESS (sticky).
|
// Disable IRAM_CFG_WRITE_ACCESS (sticky).
|
||||||
//MC(MC_IRAM_REG_CTRL) |= BIT(0);
|
//MC(MC_IRAM_REG_CTRL) |= BIT(0);
|
||||||
// Disable ARC_CLK_OVR_ON.
|
// Set ARC clock gating to automatic.
|
||||||
CLOCK(CLK_RST_CONTROLLER_LVL2_CLK_GATE_OVRD) &= ~BIT(19);
|
CLOCK(CLK_RST_CONTROLLER_LVL2_CLK_GATE_OVRD) &= ~BIT(19);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,6 +114,7 @@ void mc_enable()
|
|||||||
{
|
{
|
||||||
// Reset EMC source to PLLP.
|
// Reset EMC source to PLLP.
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_EMC) = (CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_EMC) & 0x1FFFFFFF) | (2 << 29u);
|
CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_EMC) = (CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_EMC) & 0x1FFFFFFF) | (2 << 29u);
|
||||||
|
|
||||||
// Enable and clear reset for memory clocks.
|
// Enable and clear reset for memory clocks.
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_H_SET) = BIT(CLK_H_EMC) | BIT(CLK_H_MEM);
|
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_H_SET) = BIT(CLK_H_EMC) | BIT(CLK_H_MEM);
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_X_SET) = BIT(CLK_X_EMC_DLL);
|
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_X_SET) = BIT(CLK_X_EMC_DLL);
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
#include "minerva.h"
|
#include "minerva.h"
|
||||||
|
|
||||||
#include <ianos/ianos.h>
|
#include <ianos/ianos.h>
|
||||||
#include <mem/emc.h>
|
#include <mem/emc_t210.h>
|
||||||
#include <soc/clock.h>
|
#include <soc/clock.h>
|
||||||
#include <soc/fuse.h>
|
#include <soc/fuse.h>
|
||||||
#include <soc/hw_init.h>
|
#include <soc/hw_init.h>
|
||||||
@@ -147,7 +147,6 @@ void minerva_change_freq(minerva_freq_t freq)
|
|||||||
|
|
||||||
void minerva_sdmmc_la_program(void *table, bool t210b01)
|
void minerva_sdmmc_la_program(void *table, bool t210b01)
|
||||||
{
|
{
|
||||||
|
|
||||||
u32 freq = *(u32 *)(table + TABLE_FREQ_KHZ_OFFSET);
|
u32 freq = *(u32 *)(table + TABLE_FREQ_KHZ_OFFSET);
|
||||||
u32 *la_scale_regs = (u32 *)(table + (t210b01 ? TABLE_LA_REGS_T210B01_OFFSET : TABLE_LA_REGS_T210_OFFSET));
|
u32 *la_scale_regs = (u32 *)(table + (t210b01 ? TABLE_LA_REGS_T210B01_OFFSET : TABLE_LA_REGS_T210_OFFSET));
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <mem/mc.h>
|
#include <mem/mc.h>
|
||||||
#include <mem/emc.h>
|
#include <mem/emc_t210.h>
|
||||||
#include <mem/sdram.h>
|
#include <mem/sdram.h>
|
||||||
#include <mem/sdram_param_t210.h>
|
#include <mem/sdram_param_t210.h>
|
||||||
#include <mem/sdram_param_t210b01.h>
|
#include <mem/sdram_param_t210b01.h>
|
||||||
@@ -1012,26 +1012,26 @@ static void _sdram_config_t210b01(const sdram_params_t210b01_t *params)
|
|||||||
EMC(EMC_PMACRO_TX_SEL_CLK_SRC_5) = params->emc_pmacro_tx_sel_clk_src5;
|
EMC(EMC_PMACRO_TX_SEL_CLK_SRC_5) = params->emc_pmacro_tx_sel_clk_src5;
|
||||||
|
|
||||||
// Program per bit pad macros.
|
// Program per bit pad macros.
|
||||||
EMC(EMC_PMACRO_PERBIT_FGCG_CTRL_0) = params->emc_pmacro_perbit_fgcg_ctrl0;
|
EMC(EMC_PMACRO_PERBIT_FGCG_CTRL_0_B01) = params->emc_pmacro_perbit_fgcg_ctrl0;
|
||||||
EMC(EMC_PMACRO_PERBIT_FGCG_CTRL_1) = params->emc_pmacro_perbit_fgcg_ctrl1;
|
EMC(EMC_PMACRO_PERBIT_FGCG_CTRL_1_B01) = params->emc_pmacro_perbit_fgcg_ctrl1;
|
||||||
EMC(EMC_PMACRO_PERBIT_FGCG_CTRL_2) = params->emc_pmacro_perbit_fgcg_ctrl2;
|
EMC(EMC_PMACRO_PERBIT_FGCG_CTRL_2_B01) = params->emc_pmacro_perbit_fgcg_ctrl2;
|
||||||
EMC(EMC_PMACRO_PERBIT_FGCG_CTRL_3) = params->emc_pmacro_perbit_fgcg_ctrl3;
|
EMC(EMC_PMACRO_PERBIT_FGCG_CTRL_3_B01) = params->emc_pmacro_perbit_fgcg_ctrl3;
|
||||||
EMC(EMC_PMACRO_PERBIT_FGCG_CTRL_4) = params->emc_pmacro_perbit_fgcg_ctrl4;
|
EMC(EMC_PMACRO_PERBIT_FGCG_CTRL_4_B01) = params->emc_pmacro_perbit_fgcg_ctrl4;
|
||||||
EMC(EMC_PMACRO_PERBIT_FGCG_CTRL_5) = params->emc_pmacro_perbit_fgcg_ctrl5;
|
EMC(EMC_PMACRO_PERBIT_FGCG_CTRL_5_B01) = params->emc_pmacro_perbit_fgcg_ctrl5;
|
||||||
EMC(EMC_PMACRO_PERBIT_RFU_CTRL_0) = params->emc_pmacro_perbit_rfu_ctrl0;
|
EMC(EMC_PMACRO_PERBIT_RFU_CTRL_0_B01) = params->emc_pmacro_perbit_rfu_ctrl0;
|
||||||
EMC(EMC_PMACRO_PERBIT_RFU_CTRL_1) = params->emc_pmacro_perbit_rfu_ctrl1;
|
EMC(EMC_PMACRO_PERBIT_RFU_CTRL_1_B01) = params->emc_pmacro_perbit_rfu_ctrl1;
|
||||||
EMC(EMC_PMACRO_PERBIT_RFU_CTRL_2) = params->emc_pmacro_perbit_rfu_ctrl2;
|
EMC(EMC_PMACRO_PERBIT_RFU_CTRL_2_B01) = params->emc_pmacro_perbit_rfu_ctrl2;
|
||||||
EMC(EMC_PMACRO_PERBIT_RFU_CTRL_3) = params->emc_pmacro_perbit_rfu_ctrl3;
|
EMC(EMC_PMACRO_PERBIT_RFU_CTRL_3_B01) = params->emc_pmacro_perbit_rfu_ctrl3;
|
||||||
EMC(EMC_PMACRO_PERBIT_RFU_CTRL_4) = params->emc_pmacro_perbit_rfu_ctrl4;
|
EMC(EMC_PMACRO_PERBIT_RFU_CTRL_4_B01) = params->emc_pmacro_perbit_rfu_ctrl4;
|
||||||
EMC(EMC_PMACRO_PERBIT_RFU_CTRL_5) = params->emc_pmacro_perbit_rfu_ctrl5;
|
EMC(EMC_PMACRO_PERBIT_RFU_CTRL_5_B01) = params->emc_pmacro_perbit_rfu_ctrl5;
|
||||||
EMC(EMC_PMACRO_PERBIT_RFU1_CTRL_0) = params->emc_pmacro_perbit_rfu1_ctrl0;
|
EMC(EMC_PMACRO_PERBIT_RFU1_CTRL_0_B01) = params->emc_pmacro_perbit_rfu1_ctrl0;
|
||||||
EMC(EMC_PMACRO_PERBIT_RFU1_CTRL_1) = params->emc_pmacro_perbit_rfu1_ctrl1;
|
EMC(EMC_PMACRO_PERBIT_RFU1_CTRL_1_B01) = params->emc_pmacro_perbit_rfu1_ctrl1;
|
||||||
EMC(EMC_PMACRO_PERBIT_RFU1_CTRL_2) = params->emc_pmacro_perbit_rfu1_ctrl2;
|
EMC(EMC_PMACRO_PERBIT_RFU1_CTRL_2_B01) = params->emc_pmacro_perbit_rfu1_ctrl2;
|
||||||
EMC(EMC_PMACRO_PERBIT_RFU1_CTRL_3) = params->emc_pmacro_perbit_rfu1_ctrl3;
|
EMC(EMC_PMACRO_PERBIT_RFU1_CTRL_3_B01) = params->emc_pmacro_perbit_rfu1_ctrl3;
|
||||||
EMC(EMC_PMACRO_PERBIT_RFU1_CTRL_4) = params->emc_pmacro_perbit_rfu1_ctrl4;
|
EMC(EMC_PMACRO_PERBIT_RFU1_CTRL_4_B01) = params->emc_pmacro_perbit_rfu1_ctrl4;
|
||||||
EMC(EMC_PMACRO_PERBIT_RFU1_CTRL_5) = params->emc_pmacro_perbit_rfu1_ctrl5;
|
EMC(EMC_PMACRO_PERBIT_RFU1_CTRL_5_B01) = params->emc_pmacro_perbit_rfu1_ctrl5;
|
||||||
EMC(EMC_PMACRO_DATA_PI_CTRL) = params->emc_pmacro_data_pi_ctrl;
|
EMC(EMC_PMACRO_DATA_PI_CTRL_B01) = params->emc_pmacro_data_pi_ctrl;
|
||||||
EMC(EMC_PMACRO_CMD_PI_CTRL) = params->emc_pmacro_cmd_pi_ctrl;
|
EMC(EMC_PMACRO_CMD_PI_CTRL_B01) = params->emc_pmacro_cmd_pi_ctrl;
|
||||||
|
|
||||||
EMC(EMC_PMACRO_DDLL_BYPASS) = params->emc_pmacro_ddll_bypass;
|
EMC(EMC_PMACRO_DDLL_BYPASS) = params->emc_pmacro_ddll_bypass;
|
||||||
EMC(EMC_PMACRO_DDLL_PWRD_0) = params->emc_pmacro_ddll_pwrd0;
|
EMC(EMC_PMACRO_DDLL_PWRD_0) = params->emc_pmacro_ddll_pwrd0;
|
||||||
@@ -1220,7 +1220,7 @@ static void _sdram_config_t210b01(const sdram_params_t210b01_t *params)
|
|||||||
if (params->emc_bct_spare8)
|
if (params->emc_bct_spare8)
|
||||||
*(vu32 *)params->emc_bct_spare8 = params->emc_bct_spare9;
|
*(vu32 *)params->emc_bct_spare8 = params->emc_bct_spare9;
|
||||||
|
|
||||||
EMC(EMC_AUTO_CAL_CONFIG9) = params->emc_auto_cal_config9;
|
EMC(EMC_AUTO_CAL_CONFIG9_B01) = params->emc_auto_cal_config9;
|
||||||
|
|
||||||
// Program EMC timing configuration.
|
// Program EMC timing configuration.
|
||||||
EMC(EMC_CFG_2) = params->emc_cfg2;
|
EMC(EMC_CFG_2) = params->emc_cfg2;
|
||||||
@@ -1240,11 +1240,11 @@ static void _sdram_config_t210b01(const sdram_params_t210b01_t *params)
|
|||||||
EMC(EMC_RAS) = params->emc_ras;
|
EMC(EMC_RAS) = params->emc_ras;
|
||||||
EMC(EMC_RP) = params->emc_rp;
|
EMC(EMC_RP) = params->emc_rp;
|
||||||
EMC(EMC_TPPD) = params->emc_tppd;
|
EMC(EMC_TPPD) = params->emc_tppd;
|
||||||
EMC(EMC_CTT) = params->emc_trtm;
|
EMC(EMC_TRTM_B01) = params->emc_trtm;
|
||||||
EMC(EMC_FBIO_TWTM) = params->emc_twtm;
|
EMC(EMC_TWTM_B01) = params->emc_twtm;
|
||||||
EMC(EMC_FBIO_TRATM) = params->emc_tratm;
|
EMC(EMC_TRATM_B01) = params->emc_tratm;
|
||||||
EMC(EMC_FBIO_TWATM) = params->emc_twatm;
|
EMC(EMC_TWATM_B01) = params->emc_twatm;
|
||||||
EMC(EMC_FBIO_TR2REF) = params->emc_tr2ref;
|
EMC(EMC_TR2REF_B01) = params->emc_tr2ref;
|
||||||
EMC(EMC_R2R) = params->emc_r2r;
|
EMC(EMC_R2R) = params->emc_r2r;
|
||||||
EMC(EMC_W2W) = params->emc_w2w;
|
EMC(EMC_W2W) = params->emc_w2w;
|
||||||
EMC(EMC_R2W) = params->emc_r2w;
|
EMC(EMC_R2W) = params->emc_r2w;
|
||||||
@@ -1321,7 +1321,7 @@ static void _sdram_config_t210b01(const sdram_params_t210b01_t *params)
|
|||||||
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_PMACRO_DSR_VTTGEN_CTRL0) = params->emc_pmacro_dsr_vttgen_ctrl0;
|
EMC(EMC_PMACRO_DSR_VTTGEN_CTRL_0_B01) = params->emc_pmacro_dsr_vttgen_ctrl0;
|
||||||
|
|
||||||
// Set pipe bypass enable bits before sending any DRAM commands.
|
// Set pipe bypass enable bits before sending any DRAM commands.
|
||||||
EMC(EMC_CFG) = (params->emc_cfg & 0xE) | 0x3C00000;
|
EMC(EMC_CFG) = (params->emc_cfg & 0xE) | 0x3C00000;
|
||||||
@@ -1465,7 +1465,7 @@ static void _sdram_config_t210b01(const sdram_params_t210b01_t *params)
|
|||||||
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;
|
||||||
|
|
||||||
// Set untranslated region requirements.
|
// Set untranslated region requirements.
|
||||||
MC(MC_UNTRANSLATED_REGION_CHECK) = params->mc_untranslated_region_check;
|
MC(MC_UNTRANSLATED_REGION_CHECK_B01) = params->mc_untranslated_region_check;
|
||||||
|
|
||||||
// Lock carveouts per BCT cfg.
|
// Lock carveouts per BCT cfg.
|
||||||
MC(MC_VIDEO_PROTECT_REG_CTRL) = params->mc_video_protect_write_access;
|
MC(MC_VIDEO_PROTECT_REG_CTRL) = params->mc_video_protect_write_access;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
#ifndef _SDRAM_H_
|
#ifndef _SDRAM_H_
|
||||||
#define _SDRAM_H_
|
#define _SDRAM_H_
|
||||||
|
|
||||||
#include <mem/emc.h>
|
#include <mem/emc_t210.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Tegra X1/X1+ EMC/DRAM Bandwidth Chart:
|
* Tegra X1/X1+ EMC/DRAM Bandwidth Chart:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018 naehrwert
|
* Copyright (c) 2018 naehrwert
|
||||||
* Copyright (c) 2020-2024 CTCaer
|
* Copyright (c) 2020-2025 CTCaer
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms and conditions of the GNU General Public License,
|
* under the terms and conditions of the GNU General Public License,
|
||||||
@@ -538,18 +538,32 @@ static const sdram_params_t210_t _dram_cfg_0_samsung_4gb = {
|
|||||||
.mc_clken_override = 0x00008000,
|
.mc_clken_override = 0x00008000,
|
||||||
|
|
||||||
.mc_stat_control = 0x00000000,
|
.mc_stat_control = 0x00000000,
|
||||||
|
|
||||||
|
/* VPR carveout configuration */
|
||||||
.mc_video_protect_bom = 0xFFF00000,
|
.mc_video_protect_bom = 0xFFF00000,
|
||||||
.mc_video_protect_bom_adr_hi = 0x00000000,
|
.mc_video_protect_bom_adr_hi = 0x00000000,
|
||||||
.mc_video_protect_size_mb = 0x00000000,
|
.mc_video_protect_size_mb = 0x00000000,
|
||||||
|
|
||||||
// AFI, BPMP, HC, ISP2, CCPLEX, PPCS (AHB), SATA, VI, XUSB_HOST, XUSB_DEV, ADSP, PPCS1 (AHB), DC1, SDMMC1A, SDMMC2A, SDMMC3A. Plus TSEC, NVENC.
|
// Disable access:
|
||||||
.mc_video_protect_vpr_override = 0xE4FACB43, // Default: 0xE4BAC343. New: 0xE4FACB43. + TSEC, NVENC.
|
// AFI (PCIE), BPMP, HC (HOST1x), ISP2, CCPLEX, PPCS (AHB), SATA, VI, XUSB_HOST, XUSB_DEV, ADSP, PPCS1 (AHB), DC1 (WinT), SDMMC1/2/3. Plus TSEC, NVENC.
|
||||||
// SDMMC4A, ISP2B, PPCS2 (AHB), APE, SE, HC1, SE1, AXIAP, ETR. Plus TSECB, TSEC1, TSECB1.
|
// Enable access:
|
||||||
.mc_video_protect_vpr_override1 = 0x0000FED3, // Default: 0x00001ED3. New: 0x0000FED3. + TSECB, TSEC1, TSECB1.
|
// DC, DCB, HDA, VIC.
|
||||||
|
.mc_video_protect_vpr_override = 0xE4FACB43, // Stock/Reset: 0xE4BAC343. HOS new: 0xE4FACB43. + TSEC, NVENC.
|
||||||
|
// Disable access:
|
||||||
|
// SDMMC4, ISP2B, PPCS2 (AHB), APE, SE, HC1, SE1, AXIAP, ETR. Plus TSECB, TSEC1, TSECB1.
|
||||||
|
// Enable access:
|
||||||
|
// GPU, GPUB, NVDEC, NVJPG, NVDEC1.
|
||||||
|
.mc_video_protect_vpr_override1 = 0x0000FED3, // Stock/Reset: 0x00001ED3. HOS new: 0x0000FED3. + TSECB, TSEC1, TSECB1.
|
||||||
|
|
||||||
.mc_video_protect_gpu_override0 = 0x2A800000, // Default: 0x00000000. Forced to 1 by HOS Secmon.
|
// VPR CYA. L4T override (set PD, SCC, SKED, L1 as UNTRUSTED).
|
||||||
.mc_video_protect_gpu_override1 = 0x00000002, // Default: 0x00000000. Forced to 0 by HOS Secmon.
|
.mc_video_protect_gpu_override0 = VPR_OVR0_CYA_TRUST_GCC(VPR_TRUST_GRAPHICS) |
|
||||||
|
VPR_OVR0_CYA_TRUST_RASTER(VPR_TRUST_GRAPHICS) |
|
||||||
|
VPR_OVR0_CYA_TRUST_PE(VPR_TRUST_GRAPHICS) |
|
||||||
|
VPR_OVR0_CYA_TRUST_TEX(VPR_TRUST_GRAPHICS) |
|
||||||
|
VPR_OVR0_CYA_TRUST_OVERRIDE, // Stock: 0. HOS: VPR_OVR0_CYA_TRUST_DEFAULT.
|
||||||
|
.mc_video_protect_gpu_override1 = VPR_OVR1_CYA_TRUST_PROP(VPR_TRUST_GRAPHICS), // Stock: 0. HOS: 0.
|
||||||
|
|
||||||
|
/* TZDRAM carveout configuration */
|
||||||
.mc_sec_carveout_bom = 0xFFF00000,
|
.mc_sec_carveout_bom = 0xFFF00000,
|
||||||
.mc_sec_carveout_adr_hi = 0x00000000,
|
.mc_sec_carveout_adr_hi = 0x00000000,
|
||||||
.mc_sec_carveout_size_mb = 0x00000000,
|
.mc_sec_carveout_size_mb = 0x00000000,
|
||||||
@@ -642,6 +656,7 @@ static const sdram_params_t210_t _dram_cfg_0_samsung_4gb = {
|
|||||||
/* Specifies data for patched boot rom write */
|
/* Specifies data for patched boot rom write */
|
||||||
.boot_rom_patch_data = 0x00000000,
|
.boot_rom_patch_data = 0x00000000,
|
||||||
|
|
||||||
|
/* CPU FW carveout configuration */
|
||||||
.mc_mts_carveout_bom = 0xFFF00000,
|
.mc_mts_carveout_bom = 0xFFF00000,
|
||||||
.mc_mts_carveout_adr_hi = 0x00000000,
|
.mc_mts_carveout_adr_hi = 0x00000000,
|
||||||
.mc_mts_carveout_size_mb = 0x00000000,
|
.mc_mts_carveout_size_mb = 0x00000000,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2020-2024 CTCaer
|
* Copyright (c) 2020-2025 CTCaer
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms and conditions of the GNU General Public License,
|
* under the terms and conditions of the GNU General Public License,
|
||||||
@@ -595,14 +595,26 @@ static const sdram_params_t210b01_t _dram_cfg_08_10_12_14_samsung_hynix_4gb = {
|
|||||||
.mc_video_protect_bom_adr_hi = 0x00000000,
|
.mc_video_protect_bom_adr_hi = 0x00000000,
|
||||||
.mc_video_protect_size_mb = 0x00000000,
|
.mc_video_protect_size_mb = 0x00000000,
|
||||||
|
|
||||||
// AFI, BPMP, HC, ISP2, CCPLEX, PPCS (AHB), SATA, VI, XUSB_HOST, XUSB_DEV, ADSP, PPCS1 (AHB), DC1, SDMMC1A, SDMMC2A, SDMMC3A. Plus TSEC, NVENC.
|
// Disable access:
|
||||||
.mc_video_protect_vpr_override = 0xE4FACB43, // Default: 0xE4BAC343.
|
// AFI (PCIE), BPMP, HC (HOST1x), ISP2, CCPLEX, PPCS (AHB), SATA, VI, XUSB_HOST, XUSB_DEV, ADSP, PPCS1 (AHB), DC1 (WinT), SDMMC1/2/3. Plus TSEC, NVENC.
|
||||||
// SDMMC4A, ISP2B, PPCS2 (AHB), APE, SE, HC1, SE1, AXIAP, ETR. Plus SE2, SE2B and TSECB, TSEC1, TSECB1.
|
// Enable access:
|
||||||
.mc_video_protect_vpr_override1 = 0x0600FED3, // Default: 0x06001ED3.
|
// DC, DCB, HDA, VIC.
|
||||||
|
.mc_video_protect_vpr_override = 0xE4FACB43, // Stock/Reset: 0xE4BAC343. HOS new: 0xE4FACB43. + TSEC, NVENC.
|
||||||
|
// Disable access:
|
||||||
|
// SDMMC4, ISP2B, PPCS2 (AHB), APE, SE, HC1, SE1, AXIAP, ETR, SE2, SE2B. Plus TSECB, TSEC1, TSECB1.
|
||||||
|
// Enable access:
|
||||||
|
// GPU, GPUB, NVDEC, NVJPG, NVDEC1.
|
||||||
|
.mc_video_protect_vpr_override1 = 0x0600FED3, // Reset: 0x06001ED3. HOS new: 0x0600FED3. + TSECB, TSEC1, TSECB1.
|
||||||
|
|
||||||
.mc_video_protect_gpu_override0 = 0x2A800000, // Default: 0x00000000. Forced to 1 by HOS Secmon.
|
// VPR CYA. L4T override (set PD, SCC, SKED, L1 as UNTRUSTED).
|
||||||
.mc_video_protect_gpu_override1 = 0x00000002, // Default: 0x00000000. Forced to 0 by HOS Secmon.
|
.mc_video_protect_gpu_override0 = VPR_OVR0_CYA_TRUST_GCC(VPR_TRUST_GRAPHICS) |
|
||||||
|
VPR_OVR0_CYA_TRUST_RASTER(VPR_TRUST_GRAPHICS) |
|
||||||
|
VPR_OVR0_CYA_TRUST_PE(VPR_TRUST_GRAPHICS) |
|
||||||
|
VPR_OVR0_CYA_TRUST_TEX(VPR_TRUST_GRAPHICS) |
|
||||||
|
VPR_OVR0_CYA_TRUST_OVERRIDE, // Stock: 0. HOS: VPR_OVR0_CYA_TRUST_DEFAULT.
|
||||||
|
.mc_video_protect_gpu_override1 = VPR_OVR1_CYA_TRUST_PROP(VPR_TRUST_GRAPHICS), // Stock: 0. HOS: 0.
|
||||||
|
|
||||||
|
/* TZDRAM carveout configuration */
|
||||||
.mc_sec_carveout_bom = 0xFFF00000,
|
.mc_sec_carveout_bom = 0xFFF00000,
|
||||||
.mc_sec_carveout_adr_hi = 0x00000000,
|
.mc_sec_carveout_adr_hi = 0x00000000,
|
||||||
.mc_sec_carveout_size_mb = 0x00000000,
|
.mc_sec_carveout_size_mb = 0x00000000,
|
||||||
|
|||||||
Reference in New Issue
Block a user