All of lore.kernel.org
 help / color / mirror / Atom feed
From: BALATON Zoltan <balaton@eik.bme.hu>
To: Bernhard Beschow <shentey@gmail.com>
Cc: qemu-devel@nongnu.org, "Hanna Reitz" <hreitz@redhat.com>,
	qemu-ppc@nongnu.org, "Kevin Wolf" <kwolf@redhat.com>,
	"Corey Minyard" <cminyard@mvista.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Daniel Henrique Barboza" <danielhb413@gmail.com>,
	qemu-block@nongnu.org, "Nicholas Piggin" <npiggin@gmail.com>,
	"Bin Meng" <bmeng.cn@gmail.com>,
	"Cédric Le Goater" <clg@redhat.com>
Subject: Re: [PATCH 09/23] hw/ppc/mpc8544_guts: Populate POR PLL ratio status register
Date: Tue, 24 Sep 2024 11:59:21 +0200 (CEST)	[thread overview]
Message-ID: <da2c3d7a-8d75-0e7c-e47e-ab329d64841a@eik.bme.hu> (raw)
In-Reply-To: <56E67259-70A9-44E5-A3C2-6E40363A73C2@gmail.com>

On Mon, 23 Sep 2024, Bernhard Beschow wrote:
> Am 23. September 2024 10:43:19 UTC schrieb BALATON Zoltan <balaton@eik.bme.hu>:
>> On Mon, 23 Sep 2024, Bernhard Beschow wrote:
>>> Populate this read-only register with some arbitrary values which avoids
>>> U-Boot's get_clocks() to hang().
>>
>> Maybe this should be a property settable by the machine as each board 
>> may have different values and it may need to use the correct value for 
>> the machine.
>
> I actually considered this but went with the pragmatic solution to avoid 
> over-engineering. In particular, I wanted to avoid further 
> machine-specitic attributes in the machine class struct. Or do you 
> expect a new e500 machine to be added? In that case I'd set above 
> arbitrary values as default and expect a new machine to override these 
> properties.

Can't override if there's no property for it. There's one machine I may be 
interested in that uses a Freescale e500 SoC. That one seems to use 
0x0606180c for this value which I think corresponds to 0/1 Ratio both 3:1, 
DDR Ratio 12:1 and Plat Ratio 6:1. I think one property to set the 32 bit 
value without individual fields would be enough and we can put comments 
next to the value if needed to note what components it comes from. Or if 
you just need any value here maybe you could take this one then that would 
be good for me as well. (I have some patches adding second i2c bus and SPD 
data that are needed for U-Boot for memory detection but it needs more 
clean up before I can submit it and also waiting for these patches to 
avoid conflict.)

Regards,
BALATON Zoltan

>>> 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..6688fd44c3 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, 16, 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, 3); /* 3:2 */
>>> +        value = FIELD_DP32(value, GUTS_PORPLLSR, E500_0_RATIO, 3); /* 3:2 */
>>> +        value = FIELD_DP32(value, GUTS_PORPLLSR, DDR_RATIO, 6); /* 6:1 */
>>> +        value = FIELD_DP32(value, GUTS_PORPLLSR, PLAT_RATIO, 4); /* 4:1 */
>>> +        break;
>>>     case MPC8544_GUTS_ADDR_PVR:
>>>         value = env->spr[SPR_PVR];
>>>         break;
>>>
>
>


  reply	other threads:[~2024-09-24 10:00 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-23  9:29 [PATCH 00/23] E500 Cleanup Bernhard Beschow
2024-09-23  9:29 ` [PATCH 01/23] hw/ppc/e500: Do not leak struct boot_info Bernhard Beschow
2024-09-23 10:02   ` BALATON Zoltan
2024-09-25 19:08     ` Bernhard Beschow
2024-09-25 15:35   ` Cédric Le Goater
2024-09-25 19:03     ` Bernhard Beschow
2024-09-26  0:14     ` BALATON Zoltan
2024-10-01 14:26       ` Bernhard Beschow
2024-09-23  9:29 ` [PATCH 02/23] hw/ppc/e500: Reduce scope of env pointer Bernhard Beschow
2024-09-23 10:04   ` BALATON Zoltan
2024-09-25 19:09     ` Bernhard Beschow
2024-09-25 15:37   ` Cédric Le Goater
2024-09-25 19:02     ` Bernhard Beschow
2024-09-23  9:29 ` [PATCH 03/23] hw/ppc/e500: Prefer QOM cast Bernhard Beschow
2024-09-23 10:07   ` BALATON Zoltan
2024-09-23  9:29 ` [PATCH 04/23] hw/ppc/e500: Remove unused "irqs" parameter Bernhard Beschow
2024-09-23 10:18   ` BALATON Zoltan
2024-09-23  9:29 ` [PATCH 05/23] hw/ppc/e500: Add missing device tree properties to i2c controller node Bernhard Beschow
2024-09-25 15:37   ` Cédric Le Goater
2024-09-23  9:29 ` [PATCH 06/23] hw/ppc/e500: Use SysBusDevice API to access TYPE_CCSR's internal resources Bernhard Beschow
2024-09-23 10:28   ` BALATON Zoltan
2024-09-27 16:57     ` Bernhard Beschow
2024-09-23  9:30 ` [PATCH 07/23] hw/ppc/e500: Extract ppce500_ccsr.c Bernhard Beschow
2024-09-23 10:38   ` BALATON Zoltan
2024-09-24 20:02     ` Bernhard Beschow
2024-10-01 19:31       ` Bernhard Beschow
2024-09-23  9:30 ` [PATCH 08/23] hw/ppc/ppce500_ccsr: Log access to unimplemented registers Bernhard Beschow
2024-09-24 10:15   ` BALATON Zoltan
2024-09-24 19:23     ` Bernhard Beschow
2024-09-23  9:30 ` [PATCH 09/23] hw/ppc/mpc8544_guts: Populate POR PLL ratio status register Bernhard Beschow
2024-09-23 10:43   ` BALATON Zoltan
2024-09-23 21:54     ` Bernhard Beschow
2024-09-24  9:59       ` BALATON Zoltan [this message]
2024-09-24 19:13         ` Bernhard Beschow
2024-09-24 21:06           ` BALATON Zoltan
2024-09-23  9:30 ` [PATCH 10/23] hw/i2c/mpc_i2c: Convert DPRINTF to trace events for register access Bernhard Beschow
2024-09-25 15:40   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 11/23] hw/i2c/mpc_i2c: Prefer DEFINE_TYPES() macro Bernhard Beschow
2024-09-23 10:49   ` BALATON Zoltan
2024-09-23 22:01     ` Bernhard Beschow
2024-09-24 10:12       ` BALATON Zoltan
2024-09-25 15:40   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 12/23] hw/pci-host/ppce500: Reuse TYPE_PPC_E500_PCI_BRIDGE define Bernhard Beschow
2024-09-23 10:46   ` BALATON Zoltan
2024-09-23  9:30 ` [PATCH 13/23] hw/pci-host/ppce500: Prefer DEFINE_TYPES() macro Bernhard Beschow
2024-09-25 15:40   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 14/23] hw/gpio/mpc8xxx: " Bernhard Beschow
2024-09-25 15:41   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 15/23] hw/ppc/mpc8544_guts: " Bernhard Beschow
2024-09-25 15:41   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 16/23] hw/net/fsl_etsec/etsec: " Bernhard Beschow
2024-09-25 15:41   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 17/23] hw/intc: Guard openpic_kvm.c by dedicated OPENPIC_KVM Kconfig switch Bernhard Beschow
2024-09-25 15:41   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 18/23] hw/sd/sdhci: Prefer DEFINE_TYPES() macro Bernhard Beschow
2024-09-25 15:41   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 19/23] hw/block/pflash_cfi01: " Bernhard Beschow
2024-09-25 15:42   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 20/23] hw/i2c/smbus_eeprom: " Bernhard Beschow
2024-09-25 15:42   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 21/23] hw/rtc/ds1338: " Bernhard Beschow
2024-09-25 15:42   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 22/23] hw/usb/hcd-ehci-sysbus: " Bernhard Beschow
2024-09-25 15:43   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 23/23] hw/vfio/platform: Let vfio_start_eventfd_injection() take VFIOPlatformDevice pointer Bernhard Beschow
2024-09-24  8:36   ` Cédric Le Goater
2024-09-23 20:23 ` [PATCH 00/23] E500 Cleanup Cédric Le Goater
2024-09-23 21:25   ` Bernhard Beschow
2024-09-24  8:33     ` Cédric Le Goater
2024-09-26  9:15       ` Bernhard Beschow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=da2c3d7a-8d75-0e7c-e47e-ab329d64841a@eik.bme.hu \
    --to=balaton@eik.bme.hu \
    --cc=alex.williamson@redhat.com \
    --cc=bmeng.cn@gmail.com \
    --cc=clg@redhat.com \
    --cc=cminyard@mvista.com \
    --cc=danielhb413@gmail.com \
    --cc=hreitz@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=npiggin@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=shentey@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.