[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 09/23] hw/ppc/mpc8544_guts: Populate POR PLL ratio status regi
From: |
Bernhard Beschow |
Subject: |
[PATCH v2 09/23] hw/ppc/mpc8544_guts: Populate POR PLL ratio status register |
Date: |
Sat, 5 Oct 2024 21:45:49 +0200 |
Populate this read-only register with some arbitrary values which avoids
U-Boot's get_clocks() to hang().
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
hw/ppc/mpc8544_guts.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/hw/ppc/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c
index e3540b0281..c02b34ccde 100644
--- a/hw/ppc/mpc8544_guts.c
+++ b/hw/ppc/mpc8544_guts.c
@@ -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;
--
2.46.2
- [PATCH v2 02/23] hw/ppc/e500: Remove firstenv variable, (continued)
- [PATCH v2 02/23] hw/ppc/e500: Remove firstenv variable, Bernhard Beschow, 2024/10/05
- [PATCH v2 03/23] hw/ppc/e500: Prefer QOM cast, Bernhard Beschow, 2024/10/05
- [PATCH v2 04/23] hw/ppc/e500: Remove unused "irqs" parameter, Bernhard Beschow, 2024/10/05
- [PATCH v2 05/23] hw/ppc/e500: Add missing device tree properties to i2c controller node, Bernhard Beschow, 2024/10/05
- [PATCH v2 06/23] hw/ppc/e500: Use SysBusDevice API to access TYPE_CCSR's internal resources, Bernhard Beschow, 2024/10/05
- [PATCH v2 07/23] hw/ppc/e500: Extract ppce500_ccsr.c, Bernhard Beschow, 2024/10/05
- [PATCH v2 08/23] hw/ppc/ppce500_ccsr: Log access to unimplemented registers, Bernhard Beschow, 2024/10/05
- [PATCH v2 10/23] hw/i2c/mpc_i2c: Convert DPRINTF to trace events for register access, Bernhard Beschow, 2024/10/05
- [PATCH v2 09/23] hw/ppc/mpc8544_guts: Populate POR PLL ratio status register,
Bernhard Beschow <=
- [PATCH v2 12/23] hw/pci-host/ppce500: Reuse TYPE_PPC_E500_PCI_BRIDGE define, Bernhard Beschow, 2024/10/05
- [PATCH v2 15/23] hw/ppc/mpc8544_guts: Prefer DEFINE_TYPES() macro, Bernhard Beschow, 2024/10/05
- [PATCH v2 13/23] hw/pci-host/ppce500: Prefer DEFINE_TYPES() macro, Bernhard Beschow, 2024/10/05
- [PATCH v2 14/23] hw/gpio/mpc8xxx: Prefer DEFINE_TYPES() macro, Bernhard Beschow, 2024/10/05
- [PATCH v2 19/23] hw/block/pflash_cfi01: Prefer DEFINE_TYPES() macro, Bernhard Beschow, 2024/10/05
- [PATCH v2 17/23] hw/intc: Guard openpic_kvm.c by dedicated OPENPIC_KVM Kconfig switch, Bernhard Beschow, 2024/10/05
- [PATCH v2 21/23] hw/rtc/ds1338: Prefer DEFINE_TYPES() macro, Bernhard Beschow, 2024/10/05
- [PATCH v2 20/23] hw/i2c/smbus_eeprom: Prefer DEFINE_TYPES() macro, Bernhard Beschow, 2024/10/05