hw/ppc/mpc8544_guts: Populate POR PLL ratio status register
Populate this read-only register with some arbitrary values which avoids U-Boot's get_clocks() to hang(). Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu> Signed-off-by: Bernhard Beschow <shentey@gmail.com> Message-ID: <20241103133412.73536-11-shentey@gmail.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
parent
b5d65592d9
commit
6b0cc65828
@ -29,6 +29,12 @@
|
||||
#define MPC8544_GUTS_RSTCR_RESET 0x02
|
||||
|
||||
#define MPC8544_GUTS_ADDR_PORPLLSR 0x00
|
||||
REG32(GUTS_PORPLLSR, 0x00)
|
||||
FIELD(GUTS_PORPLLSR, E500_1_RATIO, 24, 6)
|
||||
FIELD(GUTS_PORPLLSR, E500_0_RATIO, 16, 6)
|
||||
FIELD(GUTS_PORPLLSR, DDR_RATIO, 9, 5)
|
||||
FIELD(GUTS_PORPLLSR, PLAT_RATIO, 1, 5)
|
||||
|
||||
#define MPC8544_GUTS_ADDR_PORBMSR 0x04
|
||||
#define MPC8544_GUTS_ADDR_PORIMPSCR 0x08
|
||||
#define MPC8544_GUTS_ADDR_PORDEVSR 0x0C
|
||||
@ -75,6 +81,12 @@ static uint64_t mpc8544_guts_read(void *opaque, hwaddr addr,
|
||||
|
||||
addr &= MPC8544_GUTS_MMIO_SIZE - 1;
|
||||
switch (addr) {
|
||||
case MPC8544_GUTS_ADDR_PORPLLSR:
|
||||
value = FIELD_DP32(value, GUTS_PORPLLSR, E500_1_RATIO, 6); /* 3:1 */
|
||||
value = FIELD_DP32(value, GUTS_PORPLLSR, E500_0_RATIO, 6); /* 3:1 */
|
||||
value = FIELD_DP32(value, GUTS_PORPLLSR, DDR_RATIO, 12); /* 12:1 */
|
||||
value = FIELD_DP32(value, GUTS_PORPLLSR, PLAT_RATIO, 6); /* 6:1 */
|
||||
break;
|
||||
case MPC8544_GUTS_ADDR_PVR:
|
||||
value = env->spr[SPR_PVR];
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user