qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/3] hw/misc: imx6_ccm: Update PMU_MISC0 reset value


From: Bin Meng
Subject: Re: [PATCH 1/3] hw/misc: imx6_ccm: Update PMU_MISC0 reset value
Date: Mon, 14 Dec 2020 18:43:24 +0800

On Mon, Dec 14, 2020 at 6:32 PM Alex Bennée <alex.bennee@linaro.org> wrote:
>
>
> Bin Meng <bmeng.cn@gmail.com> writes:
>
> > From: Bin Meng <bin.meng@windriver.com>
> >
> > U-Boot expects PMU_MISC0 register bit 7 is set (see init_bandgap()
> > in arch/arm/mach-imx/mx6/soc.c) during boot. This bit indicates the
> > bandgap has stabilized.
> >
> > With this change, the latest upstream U-Boot (v2021.01-rc3) for imx6
> > sabrelite board (mx6qsabrelite_defconfig), with a slight change made
> > by switching CONFIG_OF_SEPARATE to CONFIG_OF_EMBED, boots to U-Boot
> > shell on QEMU with the following command:
> >
> > $ qemu-system-arm -M sabrelite -m 1G -kernel u-boot -display none \
> >     -serial null -serial stdio
> >
> > Boot log below:
> >
> >   U-Boot 2021.01-rc3 (Dec 12 2020 - 17:40:02 +0800)
> >
> >   CPU:   Freescale i.MX?? rev1.0 at 792 MHz
> >   Reset cause: POR
> >   Model: Freescale i.MX6 Quad SABRE Lite Board
> >   Board: SABRE Lite
> >   I2C:   ready
> >   DRAM:  1 GiB
> >   force_idle_bus: sda=0 scl=0 sda.gp=0x5c scl.gp=0x55
> >   force_idle_bus: failed to clear bus, sda=0 scl=0
> >   force_idle_bus: sda=0 scl=0 sda.gp=0x6d scl.gp=0x6c
> >   force_idle_bus: failed to clear bus, sda=0 scl=0
> >   force_idle_bus: sda=0 scl=0 sda.gp=0xcb scl.gp=0x5
> >   force_idle_bus: failed to clear bus, sda=0 scl=0
> >   MMC:   FSL_SDHC: 0, FSL_SDHC: 1
> >   Loading Environment from MMC... *** Warning - No block device, using 
> > default environment
> >
> >   In:    serial
> >   Out:   serial
> >   Err:   serial
> >   Net:   Board Net Initialization Failed
> >   No ethernet found.
> >   starting USB...
> >   Bus usb@2184000: usb dr_mode not found
> >   USB EHCI 1.00
> >   Bus usb@2184200: USB EHCI 1.00
> >   scanning bus usb@2184000 for devices... 1 USB Device(s) found
> >   scanning bus usb@2184200 for devices... 1 USB Device(s) found
> >          scanning usb for storage devices... 0 Storage Device(s) found
> >          scanning usb for ethernet devices... 0 Ethernet Device(s) found
> >   Hit any key to stop autoboot:  0
> >   =>
> >
> > Signed-off-by: Bin Meng <bin.meng@windriver.com>
> > ---
> >
> >  hw/misc/imx6_ccm.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/hw/misc/imx6_ccm.c b/hw/misc/imx6_ccm.c
> > index cb74042..7e031b6 100644
> > --- a/hw/misc/imx6_ccm.c
> > +++ b/hw/misc/imx6_ccm.c
> > @@ -450,7 +450,7 @@ static void imx6_ccm_reset(DeviceState *dev)
> >      s->analog[PMU_REG_3P0] = 0x00000F74;
> >      s->analog[PMU_REG_2P5] = 0x00005071;
> >      s->analog[PMU_REG_CORE] = 0x00402010;
> > -    s->analog[PMU_MISC0] = 0x04000000;
> > +    s->analog[PMU_MISC0] = 0x04000080;
>
> Are the registers different on the imx6ul machine or should a similar
> change be made to imx6ul_ccm_reset?

I am not sure. I did not try the mcimx6ul-evk machine. I only looked
at the i.MX6 DQ reference manual, and current user in QEMU of this
imx6_ccm is only the sabrelite machine.

>
> Also what is the write behaviour of this bit? If it is RAO/WI then
> analog_mask needs fixing so a write to the register doesn't reset the
> state.
>
> >      s->analog[PMU_MISC1] = 0x00000000;
> >      s->analog[PMU_MISC2] = 0x00272727;
>

There is no analog_mask in the imx6_ccm codes. It exists in the
imx6ul_ccm however.

The i.MX6 DQ reference manual says this bit is RW, and does not
document the behavior of write. AFAICT this bit is only concerned by
the bootloader.

Regards,
Bin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]