[PATCH] rockchip: rk3328: rock64 - fix gen3 SPL hang

Kurt Miller kurt at intricatesoftware.com
Tue May 19 16:30:20 CEST 2020


On Tue, 2020-05-19 at 12:48 +0300, Matwey V. Kornilov wrote:
> вт, 19 мая 2020 г. в 01:06, Kurt Miller <lists at intricatesoftware.com>:
> > 
> > 
> > On Wed, 2020-05-13 at 16:10 -0400, Kurt Miller wrote:
> > > 
> > > On Wed, 2020-05-13 at 22:58 +0300, Matwey V. Kornilov wrote:
> > > > 
> > > > 
> > > > Thanks. Have you already checked it on gen2? I think I have gen2 board to test.
> > > Yes, I have both gen3 and gen2 boards. gen2 continues to work
> > > with this patch as well.
> > Hi Matwey,
> Hi Kurt,
> 
> Sorry for the late reply. I've just managed to apply you patch on top
> of ed9a3aa645 and it didn't work for me on 2GB v2.0 rock64 board.
> 
> U-Boot TPL 2020.07-rc2-00133-ged9a3aa645-dirty (May 19 2020 - 12:44:16)
> LPDDR3, 800MHz
> BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
> Trying to boot from BOOTROM
> Returning to boot ROM...
> 
> U-Boot SPL 2020.07-rc2-00133-ged9a3aa645-dirty (May 19 2020 - 12:44:16 +0300)
> Trying to boot from MMC1
> [and nothing else happens here]
> 
> What do you think may be the reason?

Hi Matwey,

Thank you for testing the patch. Hmm, are you building with ATF 2.3?

I’m booting from the uSD without an eMMC installed. Are you booting
from the eMMC or have one installed?

Here are some background emails related to the gen3 freeze. I also
included the output for when gen3 fails below and the output for
my gen2 2gb and gen3 4gb with the patch.

https://marc.info/?l=u-boot&m=158550521101881&w=2
https://marc.info/?l=u-boot&m=156427088018689&w=2

Gen2 2GB with patch:

U-Boot TPL 2020.07-rc2-00133-ged9a3aa645-dirty (May 19 2020 - 09:52:15)
LPDDR3, 800MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
Trying to boot from BOOTROM
Returning to boot ROM...

U-Boot SPL 2020.07-rc2-00133-ged9a3aa645-dirty (May 19 2020 - 09:52:15 -0400)
Trying to boot from MMC1
NOTICE:  BL31: v2.3():2.3
NOTICE:  BL31: Built : 11:30:57, May 15 2020
NOTICE:  BL31:Rockchip release version: v1.2
INFO:    ARM GICv2 driver initialized
INFO:    plat_rockchip_pmu_init: pd status 0xe
INFO:    BL31: Initializing runtime services
INFO:    BL31: cortex_a53: CPU workaround for 855873 was applied
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x200000
INFO:    SPSR = 0x3c9


U-Boot 2020.07-rc2-00133-ged9a3aa645-dirty (May 19 2020 - 09:52:15 -0400)

Model: Pine64 Rock64
DRAM:  2 GiB
PMIC:  RK8050 (on=0x40, off=0x01)
MMC:   mmc at ff500000: 1, mmc at ff520000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial at ff130000
Out:   serial at ff130000
Err:   serial at ff130000
Model: Pine64 Rock64
Net:   eth0: ethernet at ff540000
Hit any key to stop autoboot:  0 
Card did not respond to voltage select!
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:1...
Found EFI removable media binary efi/boot/bootaa64.efi
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Scanning disk mmc at ff500000.blk...
** Unrecognized filesystem type **
Card did not respond to voltage select!
Scanning disk mmc at ff520000.blk...
Disk mmc at ff520000.blk not ready
Found 3 disks
BootOrder not defined
EFI boot manager: Cannot load any image
169176 bytes read in 15 ms (10.8 MiB/s)
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
disks: sd0*

Gen3 4GB with patch:

U-Boot TPL 2020.07-rc2-00133-ged9a3aa645-dirty (May 19 2020 - 09:52:15)
LPDDR3, 800MHz
BW=32 Col=11 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=4096MB
Trying to boot from BOOTROM
Returning to boot ROM...

U-Boot SPL 2020.07-rc2-00133-ged9a3aa645-dirty (May 19 2020 - 09:52:15 -0400)
Trying to boot from MMC1
NOTICE:  BL31: v2.3():2.3
NOTICE:  BL31: Built : 11:30:57, May 15 2020
NOTICE:  BL31:Rockchip release version: v1.2
INFO:    ARM GICv2 driver initialized
INFO:    plat_rockchip_pmu_init: pd status 0xe
INFO:    BL31: Initializing runtime services
INFO:    BL31: cortex_a53: CPU workaround for 855873 was applied
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x200000
INFO:    SPSR = 0x3c9


U-Boot 2020.07-rc2-00133-ged9a3aa645-dirty (May 19 2020 - 09:52:15 -0400)

Model: Pine64 Rock64
DRAM:  4 GiB
PMIC:  RK8050 (on=0x40, off=0x00)
MMC:   mmc at ff500000: 1, mmc at ff520000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial at ff130000
Out:   serial at ff130000
Err:   serial at ff130000
Model: Pine64 Rock64
Net:   eth0: ethernet at ff540000
Hit any key to stop autoboot:  0 
Card did not respond to voltage select!
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:1...
Found EFI removable media binary efi/boot/bootaa64.efi
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Scanning disk mmc at ff500000.blk...
** Unrecognized filesystem type **
Card did not respond to voltage select!
Scanning disk mmc at ff520000.blk...
Disk mmc at ff520000.blk not ready
Found 3 disks
BootOrder not defined
EFI boot manager: Cannot load any image
169176 bytes read in 14 ms (11.5 MiB/s)
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
disks: sd0*

Gen3 4GB without patch:

U-Boot TPL 2020.07-rc2-00133-ged9a3aa645-dirty (May 19 2020 - 10:05:41)
LPDDR3, 800MHz
BW=32 Col=11 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=4096MB
Trying to boot from BOOTROM
Returning to boot ROM...

U-Boot SPL 2020.07-rc2-00133-ged9a3aa645-dirty (May 19 2020 - 10:05:41 -0400)
Trying to boot from MMC1
Card did not respond to voltage select!
spl: mmc init failed with error: -95
Trying to boot from MMC2
Card did not respond to voltage select!
spl: mmc init failed with error: -95
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

> > 
> > 
> > Is there anything else you need to complete your review of
> > this patch?
> > 
> > Thanks,
> > -Kurt
> > 
> > > 
> > > 
> > > > 
> > > > 
> > > > 
> > > > ср, 13 мая 2020 г. в 22:55, Kurt Miller <kurt at intricatesoftware.com>:
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > Use the same approach as ROC-RK3328-CC which enables SPL GPIO,
> > > > > pinctl and regulator support. This allows the gen3 board to
> > > > > boot through SPL and does not break gen2 in the process.
> > > > > 
> > > > > Signed-off-by: Kurt Miller <kurt at intricatesoftware.com>
> > > > > ---
> > > > > 
> > > > >  arch/arm/dts/rk3328-rock64-u-boot.dtsi | 21 +++++++++++++++++++++
> > > > >  configs/rock64-rk3328_defconfig        |  7 ++++++-
> > > > >  2 files changed, 27 insertions(+), 1 deletion(-)
> > > > > 
> > > > > diff --git a/arch/arm/dts/rk3328-rock64-u-boot.dtsi b/arch/arm/dts/rk3328-rock64-u-boot.dtsi
> > > > > index 8318bf4e60..f076075076 100644
> > > > > --- a/arch/arm/dts/rk3328-rock64-u-boot.dtsi
> > > > > +++ b/arch/arm/dts/rk3328-rock64-u-boot.dtsi
> > > > > @@ -11,6 +11,22 @@
> > > > >         };
> > > > >  };
> > > > > 
> > > > > +&gpio0 {
> > > > > +       u-boot,dm-spl;
> > > > > +};
> > > > > +
> > > > > +&pinctrl {
> > > > > +       u-boot,dm-spl;
> > > > > +};
> > > > > +
> > > > > +&sdmmc0m1_gpio {
> > > > > +       u-boot,dm-spl;
> > > > > +};
> > > > > +
> > > > > +&pcfg_pull_up_4ma {
> > > > > +       u-boot,dm-spl;
> > > > > +};
> > > > > +
> > > > >  &usb_host0_xhci {
> > > > >         vbus-supply = <&vcc_host_5v>;
> > > > >         status = "okay";
> > > > > @@ -25,3 +41,8 @@
> > > > >         /delete-property/ regulator-always-on;
> > > > >         /delete-property/ regulator-boot-on;
> > > > >  };
> > > > > +
> > > > > +/* Need this and all the pinctrl/gpio stuff above to set pinmux */
> > > > > +&vcc_sd {
> > > > > +       u-boot,dm-spl;
> > > > > +};
> > > > > diff --git a/configs/rock64-rk3328_defconfig b/configs/rock64-rk3328_defconfig
> > > > > index 7d096d38c6..0bc2198f5c 100644
> > > > > --- a/configs/rock64-rk3328_defconfig
> > > > > +++ b/configs/rock64-rk3328_defconfig
> > > > > @@ -1,6 +1,7 @@
> > > > >  CONFIG_ARM=y
> > > > >  CONFIG_ARCH_ROCKCHIP=y
> > > > >  CONFIG_SYS_TEXT_BASE=0x00200000
> > > > > +CONFIG_SPL_GPIO_SUPPORT=y
> > > > >  CONFIG_ENV_OFFSET=0x3F8000
> > > > >  CONFIG_ROCKCHIP_RK3328=y
> > > > >  CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y
> > > > > @@ -25,6 +26,8 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y
> > > > >  # CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
> > > > >  CONFIG_TPL_SYS_MALLOC_SIMPLE=y
> > > > >  CONFIG_SPL_STACK_R=y
> > > > > +CONFIG_SPL_I2C_SUPPORT=y
> > > > > +CONFIG_SPL_POWER_SUPPORT=y
> > > > >  CONFIG_SPL_ATF=y
> > > > >  CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
> > > > >  CONFIG_CMD_BOOTZ=y
> > > > > @@ -36,7 +39,7 @@ CONFIG_CMD_TIME=y
> > > > >  CONFIG_SPL_OF_CONTROL=y
> > > > >  CONFIG_TPL_OF_CONTROL=y
> > > > >  CONFIG_DEFAULT_DEVICE_TREE="rk3328-rock64"
> > > > > -CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-
> > > > > clock-
> > > > > rates assigned-clock-parents"
> > > > > +CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-
> > > > > parents"
> > > > >  CONFIG_TPL_OF_PLATDATA=y
> > > > >  CONFIG_ENV_IS_IN_MMC=y
> > > > >  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> > > > > @@ -64,7 +67,9 @@ CONFIG_PINCTRL=y
> > > > >  CONFIG_SPL_PINCTRL=y
> > > > >  CONFIG_DM_PMIC=y
> > > > >  CONFIG_PMIC_RK8XX=y
> > > > > +CONFIG_SPL_DM_REGULATOR=y
> > > > >  CONFIG_REGULATOR_PWM=y
> > > > > +CONFIG_SPL_DM_REGULATOR_FIXED=y
> > > > >  CONFIG_DM_REGULATOR_FIXED=y
> > > > >  CONFIG_REGULATOR_RK8XX=y
> > > > >  CONFIG_PWM_ROCKCHIP=y
> > > > > --
> > > > > 2.26.0
> > > > > 
> 



More information about the U-Boot mailing list