
пт, 2 авг. 2019 г. в 13:41, Chen-Yu Tsai wens@kernel.org:
On Fri, Aug 2, 2019 at 3:40 PM Matwey V. Kornilov matwey.kornilov@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@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@ff500000: 1, rksdmmc@ff520000: 0 Loading Environment from MMC... *** Warning - bad CRC, using default environment
In: serial@ff130000 Out: serial@ff130000 Err: serial@ff130000 Model: Pine64 Rock64 Net: Warning: ethernet@ff540000 (eth0) using random MAC address - 7e:ba:fc:e6:98:1f eth0: ethernet@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.
My output:
Model: Pine64 Rock64 DRAM: 2 GiB MMC: rksdmmc@ff500000: 1, rksdmmc@ff520000: 0 Loading Environment from MMC... *** Warning - bad CRC, using default environment
In: serial@ff130000 Out: serial@ff130000 Err: serial@ff130000 Model: Pine64 Rock64 Net: Warning: ethernet@ff540000 (eth0) using random MAC address - 02:14:70:31:8b:96 eth0: ethernet@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@ff500000.blk... Card did not respond to voltage select! Scanning disk rksdmmc@ff520000.blk... Disk rksdmmc@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!
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/
Previously I was using an old build from Armbian, and that worked fine.
ChenYu