mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-24 14:25:56 +00:00
imx93: Add Low performance parts 9302/9301 support
Add support for iMX93 low performance parts 9302 and 9301 which restrict to low drive voltage only. The parts run A55 max speed at 900Mhz and M33 at 133Mhz, have NPU and A55 core1 (9301) disabled. Reviewed-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
parent
98f948ec53
commit
5ee773e60b
5 changed files with 16 additions and 2 deletions
|
@ -68,6 +68,8 @@
|
||||||
#define MXC_CPU_IMX9321 0xC6 /* dummy ID */
|
#define MXC_CPU_IMX9321 0xC6 /* dummy ID */
|
||||||
#define MXC_CPU_IMX9312 0xC7 /* dummy ID */
|
#define MXC_CPU_IMX9312 0xC7 /* dummy ID */
|
||||||
#define MXC_CPU_IMX9311 0xC8 /* dummy ID */
|
#define MXC_CPU_IMX9311 0xC8 /* dummy ID */
|
||||||
|
#define MXC_CPU_IMX9302 0xC9 /* dummy ID */
|
||||||
|
#define MXC_CPU_IMX9301 0xCA /* dummy ID */
|
||||||
|
|
||||||
#define MXC_SOC_MX6 0x60
|
#define MXC_SOC_MX6 0x60
|
||||||
#define MXC_SOC_MX7 0x70
|
#define MXC_SOC_MX7 0x70
|
||||||
|
|
|
@ -85,7 +85,8 @@ struct bd_info;
|
||||||
#define is_imx93() (is_cpu_type(MXC_CPU_IMX93) || is_cpu_type(MXC_CPU_IMX9331) || \
|
#define is_imx93() (is_cpu_type(MXC_CPU_IMX93) || is_cpu_type(MXC_CPU_IMX9331) || \
|
||||||
is_cpu_type(MXC_CPU_IMX9332) || is_cpu_type(MXC_CPU_IMX9351) || \
|
is_cpu_type(MXC_CPU_IMX9332) || is_cpu_type(MXC_CPU_IMX9351) || \
|
||||||
is_cpu_type(MXC_CPU_IMX9322) || is_cpu_type(MXC_CPU_IMX9321) || \
|
is_cpu_type(MXC_CPU_IMX9322) || is_cpu_type(MXC_CPU_IMX9321) || \
|
||||||
is_cpu_type(MXC_CPU_IMX9312) || is_cpu_type(MXC_CPU_IMX9311))
|
is_cpu_type(MXC_CPU_IMX9312) || is_cpu_type(MXC_CPU_IMX9311) || \
|
||||||
|
is_cpu_type(MXC_CPU_IMX9302) || is_cpu_type(MXC_CPU_IMX9301))
|
||||||
#define is_imx9351() (is_cpu_type(MXC_CPU_IMX9351))
|
#define is_imx9351() (is_cpu_type(MXC_CPU_IMX9351))
|
||||||
#define is_imx9332() (is_cpu_type(MXC_CPU_IMX9332))
|
#define is_imx9332() (is_cpu_type(MXC_CPU_IMX9332))
|
||||||
#define is_imx9331() (is_cpu_type(MXC_CPU_IMX9331))
|
#define is_imx9331() (is_cpu_type(MXC_CPU_IMX9331))
|
||||||
|
@ -93,6 +94,8 @@ struct bd_info;
|
||||||
#define is_imx9321() (is_cpu_type(MXC_CPU_IMX9321))
|
#define is_imx9321() (is_cpu_type(MXC_CPU_IMX9321))
|
||||||
#define is_imx9312() (is_cpu_type(MXC_CPU_IMX9312))
|
#define is_imx9312() (is_cpu_type(MXC_CPU_IMX9312))
|
||||||
#define is_imx9311() (is_cpu_type(MXC_CPU_IMX9311))
|
#define is_imx9311() (is_cpu_type(MXC_CPU_IMX9311))
|
||||||
|
#define is_imx9302() (is_cpu_type(MXC_CPU_IMX9302))
|
||||||
|
#define is_imx9301() (is_cpu_type(MXC_CPU_IMX9301))
|
||||||
|
|
||||||
#define is_imxrt1020() (is_cpu_type(MXC_CPU_IMXRT1020))
|
#define is_imxrt1020() (is_cpu_type(MXC_CPU_IMXRT1020))
|
||||||
#define is_imxrt1050() (is_cpu_type(MXC_CPU_IMXRT1050))
|
#define is_imxrt1050() (is_cpu_type(MXC_CPU_IMXRT1050))
|
||||||
|
|
|
@ -30,6 +30,7 @@ choice
|
||||||
|
|
||||||
config TARGET_IMX93_11X11_EVK
|
config TARGET_IMX93_11X11_EVK
|
||||||
bool "imx93_11x11_evk"
|
bool "imx93_11x11_evk"
|
||||||
|
select OF_BOARD_FIXUP
|
||||||
select IMX93
|
select IMX93
|
||||||
imply OF_UPSTREAM
|
imply OF_UPSTREAM
|
||||||
|
|
||||||
|
|
|
@ -191,6 +191,10 @@ static u32 get_cpu_variant_type(u32 type)
|
||||||
bool core1_disable = !!(val & BIT(15));
|
bool core1_disable = !!(val & BIT(15));
|
||||||
u32 pack_9x9_fused = BIT(4) | BIT(17) | BIT(19) | BIT(24);
|
u32 pack_9x9_fused = BIT(4) | BIT(17) | BIT(19) | BIT(24);
|
||||||
|
|
||||||
|
/* Low performance 93 part */
|
||||||
|
if (((val >> 6) & 0x3F) == 0xE && npu_disable)
|
||||||
|
return core1_disable ? MXC_CPU_IMX9301 : MXC_CPU_IMX9302;
|
||||||
|
|
||||||
if ((val2 & pack_9x9_fused) == pack_9x9_fused)
|
if ((val2 & pack_9x9_fused) == pack_9x9_fused)
|
||||||
type = MXC_CPU_IMX9322;
|
type = MXC_CPU_IMX9322;
|
||||||
|
|
||||||
|
@ -704,7 +708,7 @@ int ft_system_setup(void *blob, struct bd_info *bd)
|
||||||
if (fixup_thermal_trips(blob, "cpu-thermal"))
|
if (fixup_thermal_trips(blob, "cpu-thermal"))
|
||||||
printf("Failed to update cpu-thermal trip(s)");
|
printf("Failed to update cpu-thermal trip(s)");
|
||||||
|
|
||||||
if (is_imx9351() || is_imx9331() || is_imx9321() || is_imx9311())
|
if (is_imx9351() || is_imx9331() || is_imx9321() || is_imx9311() || is_imx9301())
|
||||||
disable_cpu_nodes(blob, nodes_path, 1, 2);
|
disable_cpu_nodes(blob, nodes_path, 1, 2);
|
||||||
|
|
||||||
if (is_voltage_mode(VOLT_LOW_DRIVE))
|
if (is_voltage_mode(VOLT_LOW_DRIVE))
|
||||||
|
|
|
@ -60,6 +60,10 @@ static const char *get_imx_type_str(u32 imxtype)
|
||||||
return "93(12)";/* iMX93 9x9 Dual core without NPU */
|
return "93(12)";/* iMX93 9x9 Dual core without NPU */
|
||||||
case MXC_CPU_IMX9311:
|
case MXC_CPU_IMX9311:
|
||||||
return "93(11)";/* iMX93 9x9 Single core without NPU */
|
return "93(11)";/* iMX93 9x9 Single core without NPU */
|
||||||
|
case MXC_CPU_IMX9302:
|
||||||
|
return "93(02)";/* iMX93 900Mhz Low performance Dual core without NPU */
|
||||||
|
case MXC_CPU_IMX9301:
|
||||||
|
return "93(01)";/* iMX93 900Mhz Low performance Single core without NPU */
|
||||||
default:
|
default:
|
||||||
return "??";
|
return "??";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue