[U-Boot] [PATCH v2 0/7] Add TPL support for Pine64 Rock64 board.

Chen-Yu Tsai wens at kernel.org
Fri Aug 2 11:21:31 UTC 2019


On Fri, Aug 2, 2019 at 6:55 PM Matwey V. Kornilov
<matwey.kornilov at gmail.com> wrote:
>
> пт, 2 авг. 2019 г. в 13:41, Chen-Yu Tsai <wens at kernel.org>:
> >
> > On Fri, Aug 2, 2019 at 3:40 PM Matwey V. Kornilov
> > <matwey.kornilov at gmail.com> wrote:
> > >
> > > This series adds initial TPL support for Pine64 Rock64 board.
> > >
> > > The ROCK64 is a credit card size SBC based on Rockchip RK3328 Quad-Core ARM Cortex A53.
> > >
> > > The series has been tested with ATF v2.1.
> > >
> > > Some patches in the series are taken from https://github.com/rockchip-linux/u-boot
> > > Credits are given in each patch separately.
> > >
> > > Changes since v1:
> > >  - Added commit message in patch 6
> > >  - Split config to rk3328/Kconfig in patch 4
> > >  - Introduced rk3328-evb-u-boot.dtsi to collect u-boot specific dts configs
> > >
> > > Kever Yang (4):
> > >   rockchip: ram: add full feature rk3328 DRAM driver
> > >   rockchip: dts: rk3328: update dmc node for driver
> > >   rockchip: Kconfig: enable TPL support for rk3328
> > >   rockchip: evb-rk3328: enable defconfig options for TPL/SPL
> > >
> > > Matwey V. Kornilov (3):
> > >   rockchip: dts: rk3328: Add rk3328-evb-u-boot.dtsi
> > >   configs: rk3328: enable TPL for rock64-rk3328_defconfig
> > >   doc: rockchip: Adapt Pine64 Rock64 board instructions
> > >
> > >  arch/arm/dts/rk3328-evb-u-boot.dtsi               |   33 +
> > >  arch/arm/dts/rk3328-rock64-u-boot.dtsi            |    2 +
> > >  arch/arm/dts/rk3328-sdram-ddr3-666.dtsi           |  215 +++++
> > >  arch/arm/dts/rk3328-sdram-lpddr3-1600.dtsi        |  215 +++++
> > >  arch/arm/dts/rk3328-sdram-lpddr3-666.dtsi         |  215 +++++
> > >  arch/arm/dts/rk3328.dtsi                          |   11 +-
> > >  arch/arm/include/asm/arch-rockchip/sdram_rk3328.h |  441 +++++++++
> > >  arch/arm/mach-rockchip/Kconfig                    |    5 +
> > >  arch/arm/mach-rockchip/rk3328/Kconfig             |   12 +
> > >  configs/evb-rk3328_defconfig                      |   37 +-
> > >  configs/rock64-rk3328_defconfig                   |   14 +
> > >  doc/README.rockchip                               |   10 +-
> > >  drivers/ram/rockchip/sdram_rk3328.c               | 1018 ++++++++++++++++++++-
> > >  13 files changed, 2212 insertions(+), 16 deletions(-)
> > >  create mode 100644 arch/arm/dts/rk3328-evb-u-boot.dtsi
> > >  create mode 100644 arch/arm/dts/rk3328-sdram-ddr3-666.dtsi
> > >  create mode 100644 arch/arm/dts/rk3328-sdram-lpddr3-1600.dtsi
> > >  create mode 100644 arch/arm/dts/rk3328-sdram-lpddr3-666.dtsi
> > >  create mode 100644 arch/arm/include/asm/arch-rockchip/sdram_rk3328.h
> >
> > Tested-by: Chen-Yu Tsai <wens at csie.org>
> >
> > It correctly boots up to a U-boot prompt on my Rock64. However it
> > fails to read data correctly from the SD card afterwards:
> >
> > U-Boot TPL 2019.10-rc1-00072-gaf0ea60e1a42 (Aug 02 2019 - 18:10:38)
> > LPDDR3
> > Trying to boot from BOOTROM
> > Returning to boot ROM...
> >
> > U-Boot SPL 2019.10-rc1-00072-gaf0ea60e1a42 (Aug 02 2019 - 18:10:38 +0800)
> > Trying to boot from MMC2
> > Card did not respond to voltage select!
> > spl: mmc init failed with error: -95
> > Trying to boot from MMC1
> > NOTICE:  BL31: v2.1(release):v2.1-531-g3ee48f40f
> > NOTICE:  BL31: Built : 17:09:50, Aug  2 2019
> > ERROR:   over or zero region, nr=4187640, max=10
> > NOTICE:  BL31:Rockchip release version: v1.2
> >
> >
> > U-Boot 2019.10-rc1-00072-gaf0ea60e1a42 (Aug 02 2019 - 18:11:02 +0800)
> >
> > Model: Pine64 Rock64
> > DRAM:  4 GiB
> > MMC:   rksdmmc at ff500000: 1, rksdmmc 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:
> > Warning: ethernet at ff540000 (eth0) using random MAC address - 7e:ba:fc:e6:98:1f
> > 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 U-Boot script /boot/boot.scr
> > 588 bytes read in 13 ms (43.9 KiB/s)
> > ## Executing script at 00500000
> >  ** fs_devread read error - block
> > ** No partition table - mmc 1 **
> > ** No partition table - mmc 1 **
> > ERROR: Did not find a cmdline Flattened Device Tree
> > FDT and ATAGS support not compiled in - hanging
> > ### ERROR ### Please RESET the board ###
> >
> >
> > boot script contents:
> >
> > setenv bootargs console=ttyS2,1500000n8 earlycon=uart,mmio32,ff130000
> > loglevel=8 root=/dev/mmcblk0p1 rootwait kpti=off panic=10 debug
> >
> > load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} ${prefix}Image
> > load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${fdtfile}
> >
> > if load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r}
> > ${prefix}rock64-audio-dac.dtbo; then
> >     fdt addr ${fdt_addr_r}
> >     fdt resize 2048
> >     fdt apply ${ramdisk_addr_r}
> > fi
> >
> > booti ${kernel_addr_r} - ${fdt_addr_r}
> >
> > =============
> >
> > If I manually load the kernel Image, that also fails.
> > If I manually load the fdt file, it completes, but the data is
> > complete gibberish.
> > ls works fine though.
>
> Hi,
>
> Thank you for testing! I've tested only EFI payload execution, running
> GRUB works fine for me (and it also boots Linux afterwards).
> If you could share your OS Image or tell how could I reproduce it, I
> would dig a little into this issue.

I basically took Armbian's image, DD-ed to an SD card, then wiped out the
rootfs and rebuilding it using debootstrap. I forgot if I did `rm -rf *` or
`mkfs.ext4` for this particular one. But IIRC U-boot's ext4 code had been
patched up to correctly support modern (64bit, checksum) ext4.

> My output:
>
> Model: Pine64 Rock64
> DRAM:  2 GiB
> MMC:   rksdmmc at ff500000: 1, rksdmmc 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:
> Warning: ethernet at ff540000 (eth0) using random MAC address - 02:14:70:31:8b:96
> 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:2...
> 52739 bytes read in 39 ms (1.3 MiB/s)
> ** Unrecognized filesystem type **
> Scanning mmc 1:1...
> Found EFI removable media binary efi/boot/bootaa64.efi
> Scanning disk rksdmmc at ff500000.blk...
> Card did not respond to voltage select!
> Scanning disk rksdmmc at ff520000.blk...
> Disk rksdmmc at ff520000.blk not ready
> Found 5 disks
> BootOrder not defined
> EFI boot manager: Cannot load any image
> 1259360 bytes read in 440 ms (2.7 MiB/s)
> Welcome to GRUB!

Maybe reading works for files up to some size? or I/O block size?
I tried a couple files from /usr/lib, and it seems to fail around 2.5 ~ 3 MiB.

>
>
> >
> > And removing the fifo-mode flag from
> > arch/arm/dts/rk3328-rock64-u-boot.dtsi makes it
> > not boot at all.
>
> It is expected behavior. fifo-mode is required until another
> patch-set: https://patchwork.ozlabs.org/patch/1138256/

With this patch set applied on top, things load correctly, so it must be
something with the FIFO mode code.

I'm still not getting anything from the kernel, but that's likely some other
issue.

ChenYu

>
> >
> > Previously I was using an old build from Armbian, and that worked fine.
> >
> > ChenYu
>
>
>
> --
> With best regards,
> Matwey V. Kornilov


More information about the U-Boot mailing list