board: starfive: jh7110: Modify cpu voltage set commands

Update the cpu voltage set commands per
binning information from OTP.

Signed-off-by: Mason Huo <mason.huo@starfivetech.com>
This commit is contained in:
Mason Huo 2023-04-07 09:34:08 +08:00
parent 231dd9d11b
commit c8f3d1842a
4 changed files with 50 additions and 26 deletions

View file

@ -27,12 +27,14 @@ enum chip_type_t {
};
enum cpu_voltage_type_t {
CPU_VOL_1020 = 0x0e,
CPU_VOL_1040 = 0xff,
CPU_VOL_1060 = 0xf0,
CPU_VOL_1080 = 0xf1,
CPU_VOL_1100 = 0xf2,
CPU_VOL_1020 = 0xef0,
CPU_VOL_1040 = 0xfff,
CPU_VOL_1060 = 0xff0,
CPU_VOL_1080 = 0xfe0,
CPU_VOL_1100 = 0xf80,
CPU_VOL_1120 = 0xf00,
};
#define CPU_VOL_MASK 0xfff
#define SYS_CLOCK_ENABLE(clk) \
setbits_le32(SYS_CRG_BASE + clk, CLK_ENABLE_MASK)
@ -212,8 +214,10 @@ static void get_cpu_voltage_type(struct udevice *dev)
if (ret != sizeof(buf))
printf("%s: error reading CPU vol from OTP\n", __func__);
else {
buf = 0x0e;
switch ((buf & 0xff)) {
switch ((buf & CPU_VOL_MASK)) {
case CPU_VOL_1120:
env_set("cpu_max_vol", "1120000");
break;
case CPU_VOL_1100:
env_set("cpu_max_vol", "1100000");
break;

View file

@ -53,12 +53,14 @@ enum board_type_t {
enum cpu_voltage_type_t {
CPU_VOL_1020 = 0x0e,
CPU_VOL_1040 = 0xff,
CPU_VOL_1060 = 0xf0,
CPU_VOL_1080 = 0xf1,
CPU_VOL_1100 = 0xf2,
CPU_VOL_1020 = 0xef0,
CPU_VOL_1040 = 0xfff,
CPU_VOL_1060 = 0xff0,
CPU_VOL_1080 = 0xfe0,
CPU_VOL_1100 = 0xf80,
CPU_VOL_1120 = 0xf00,
};
#define CPU_VOL_MASK 0xfff
static void sys_reset_clear(ulong assert, ulong status, u32 rst)
{
@ -311,7 +313,10 @@ static void get_cpu_voltage_type(struct udevice *dev)
if (ret != sizeof(buf))
printf("%s: error reading CPU vol from OTP\n", __func__);
else {
switch ((buf & 0xff)) {
switch ((buf & CPU_VOL_MASK)) {
case CPU_VOL_1120:
env_set("cpu_max_vol", "1120000");
break;
case CPU_VOL_1100:
env_set("cpu_max_vol", "1100000");
break;

View file

@ -120,20 +120,27 @@
"cpu_vol_1100_set=" \
"fdt set /opp-table-0/opp-1500000000 opp-microvolt <1100000>;\0"
#define CPU_VOL_1120_SET \
"cpu_vol_1120_set=" \
"fdt set /opp-table-0/opp-1500000000 opp-microvolt <1120000>;\0"
#define CPU_VOL_SET \
"cpu_vol_set=" \
"if test ${cpu_max_vol} = 1100000; then " \
"run cpu_vol_1100_set;" \
"elif test ${cpu_max_vol} = 1080000; then " \
"run cpu_vol_1080_set;" \
"elif test ${cpu_max_vol} = 1060000; then " \
"run cpu_vol_1060_set;" \
"elif test ${cpu_max_vol} = 1020000; then " \
"run cpu_vol_1020_set;" \
"else " \
"run cpu_vol_1040_set;" \
"cpu_vol_set=" \
"if test ${cpu_max_vol} = 1120000; then " \
"run cpu_vol_1120_set;" \
"elif test ${cpu_max_vol} = 1100000; then " \
"run cpu_vol_1100_set;" \
"elif test ${cpu_max_vol} = 1080000; then " \
"run cpu_vol_1080_set;" \
"elif test ${cpu_max_vol} = 1060000; then " \
"run cpu_vol_1060_set;" \
"elif test ${cpu_max_vol} = 1020000; then " \
"run cpu_vol_1020_set;" \
"else " \
"run cpu_vol_1040_set;" \
"fi; \0"
#define CHIPA_GMAC_SET \
"chipa_gmac_set=" \
"fdt set /soc/ethernet@16030000/ethernet-phy@0 tx_inverted_10 <0x1>;" \
@ -174,6 +181,7 @@
CPU_VOL_1060_SET \
CPU_VOL_1080_SET \
CPU_VOL_1100_SET \
CPU_VOL_1120_SET \
CPU_VOL_SET \
"type_guid_gpt_loader1=" TYPE_GUID_LOADER1 "\0" \
"type_guid_gpt_loader2=" TYPE_GUID_LOADER2 "\0" \

View file

@ -118,9 +118,15 @@
"cpu_vol_1100_set=" \
"fdt set /opp-table-0/opp-1500000000 opp-microvolt <1100000>;\0"
#define CPU_VOL_1120_SET \
"cpu_vol_1120_set=" \
"fdt set /opp-table-0/opp-1500000000 opp-microvolt <1120000>;\0"
#define CPU_VOL_SET \
"cpu_vol_set=" \
"if test ${cpu_max_vol} = 1100000; then " \
"cpu_vol_set=" \
"if test ${cpu_max_vol} = 1120000; then " \
"run cpu_vol_1120_set;" \
"elif test ${cpu_max_vol} = 1100000; then " \
"run cpu_vol_1100_set;" \
"elif test ${cpu_max_vol} = 1080000; then " \
"run cpu_vol_1080_set;" \
@ -273,6 +279,7 @@
CPU_VOL_1060_SET \
CPU_VOL_1080_SET \
CPU_VOL_1100_SET \
CPU_VOL_1120_SET \
CPU_VOL_SET \
CHIPA_SET_FORCE \
VISIONFIVE2_MEM_SET \