
Hi Jonas,
Sorry for the late response, I've been meaning to test this for a while but not got around to it.
On Thu, 2023-08-17 at 23:56 +0000, Jonas Karlman wrote:
Hi Christopher,
On 2023-08-08 16:25, Christopher Obbard wrote:
Hi Jonas,
On Sun, 2023-07-23 at 15:04 +0000, Jonas Karlman wrote:
On 2023-07-23 16:55, Jonas Karlman wrote:
The Pine64 Quartz64 Model A is a single-board computer based on the Rockchip RK3566 SoC. The board features USB3, SATA, PCIe, HDMI, USB2.0, CSI, DSI, eDP, eMMC, SD, and an e-paper parallel port, as well as a 20 pin GPIO header.
Features tested on a Quartz64-A 8GB v2.0 2021-04-27:
- SD-card boot
- eMMC boot
- PCIe/NVMe/AHCI
- USB host
Device tree is imported from linux v6.4.
Co-developed-by: Nicolas Frattaroli frattaroli.nicolas@gmail.com Signed-off-by: Nicolas Frattaroli frattaroli.nicolas@gmail.com Signed-off-by: Jonas Karlman jonas@kwiboo.se
[...]
Boot log with ROCKCHIP_TPL=rk3566_ddr_1056MHz_v1.17.bin and BL31=rk3568_bl31_v1.43.elf:
[...]
U-Boot 2023.07 (Jul 23 2023 - 12:42:18 +0000)
Model: Pine64 RK3566 Quartz64-A Board DRAM: 8 GiB (effective 7.7 GiB) PMIC: RK8170 (on=0x10, off=0x00) Core: 321 devices, 27 uclasses, devicetree: separate MMC: rockchip_sdhci_probe clk set rate fail! mmc@fe2b0000: 1, mmc@fe2c0000: 2, mmc@fe310000: 0 Loading Environment from nowhere... OK In: serial@fe660000 Out: serial@fe660000 Err: serial@fe660000 Model: Pine64 RK3566 Quartz64-A Board Net: No ethernet found.
Hit any key to stop autoboot: 0 =>
I just tried booting U-Boot v2023.10-rc2 with ROCKCHIP_TPL=rk3566_ddr_1056MHz_v1.17.bin and BL31=rk3568_bl31_v1.43.elf, on my Quartz64-A but it fails during loading of some parts. I removed the output of the RK TPL from my logs as there were no errors.
Try with latest rk3566_ddr_1056MHz_v1.18.bin and see if that makes any difference.
No difference.
I've also checked, there is no other maskrom bootable media such as SPI flash connected to the board.
This is when booting from eMMC.
Does it boot with SD-card or other eMMC modules?
Booting from SD card (without eMMC connected), everything works fine.
I also tried building your branch from https://github.com/Kwiboo/u-boot-rockchip/tree/rk3568-2023.10%C2%A0and
Please try with a GitHub actions built u-boot-rockchip.bin based on my rk3568-2023.07.02 branch at https://github.com/Kwiboo/u-boot-build/actions/runs/5777761235
With that exact artifact, flashed with:
rkdeveloptool db rk356x_spl_loader_v1.18.113.bin rkdeveloptool ef rkdeveloptool wl 64 u-boot-rockchip.bin rkdeveloptool rd
it fails to boot with with:
DDR V1.18 f366f69a7d typ 23/07/17-15:48:58 ln LP4/4x derate en, other dram:1x trefi SRX ddrconfig:7 LPDDR4X, 324MHz BW=32 Col=10 Bk=8 CS0 Row=17 CS1 Row=17 CS=2 Die BW=8 Size=8192MB
change to: 324MHz clk skew:0x60
change to: 528MHz clk skew:0x58
change to: 780MHz clk skew:0x58
change to: 1056MHz(final freq) clk skew:0x32 out
U-Boot SPL 2023.07.02-g09919887 (Aug 06 2023 - 16:59:31 +0000) Trying to boot from MMC1 spl: mmc init failed with error: -70 Trying to boot from MMC2 Card did not respond to voltage select! : -110 spl: mmc init failed with error: -95 Trying to boot from MMC1 mmc fail to send stop cmd mmc_load_image_raw_sector: mmc block read error SPL: failed to boot from all boot devices ### ERROR ### Please RESET the board ###
I also tried a second eMMC, but it also failed to boot with the same "mmc block read error" message.
What happens if you write u-boot-rockchip.bin to eMMC module usinga USB adapter:
dd if=u-boot-rockchip.bin of=/dev/<device> bs=32k seek=1 conv=fsync
or using U-Boot cmd when booted from a SD-card?
# Read u-boot-rockchip.bin from first partition of a SD card load mmc 1:1 10000000 u-boot-rockchip.bin
# Change to eMMC mmc dev 0
# Write 10 MiB (0x5000 blocks) at sector 64 (0x40) mmc write $fileaddr 40 5000
Does that make any difference?
I don't think I have an eMMC writer for Pine64 eMMCs, I will try to get hold of one this week. But it fails to write to the eMMC with:
=> load mmc 1:2 10000000 u-boot-rockchip.bin 9510400 bytes read in 791 ms (11.5 MiB/s)
=> mmc dev 0 switch to partitions #0, OK mmc0(part 0) is current device
=> mmc write $fileaddr 40 5000 MMC write: dev # 0, block # 64, count 20480 ... mmc write failed 0 blocks written: ERROR
=> mmc info Device: mmc@fe310000 Manufacturer ID: 45 OEM: 0 Name: DF4016 Bus Speed: 52000000 Mode: MMC DDR52 (52MHz) Rd Block Len: 512 MMC version 5.1 High Capacity: Yes Capacity: 14.7 GiB Bus Width: 8-bit DDR Erase Group Size: 512 KiB HC WP Group Size: 8 MiB User Capacity: 14.7 GiB WRREL Boot Capacity: 4 MiB ENH RPMB Capacity: 4 MiB ENH
I think this points to some issue with the mmc driver in U-Boot, or possibly some issue with my board. But I find that hard to believe because the Rockchip usbloader seems to write to the eMMC just fine ?
Boot log (v2023.10-rc2):
U-Boot SPL 2023.10-rc2 (Aug 08 2023 - 14:02:34 +0100) rockchip_sdhci_probe clk set rate fail! Trying to boot from MMC1 spl: mmc init failed with error: -110 Trying to boot from MMC2 Card did not respond to voltage select! : -110 spl: mmc init failed with error: -95 Trying to boot from MMC1
Strange that second try of eMMC (MMC1) gets little bit longer.
## Checking hash(es) for config config-1 ... OK ## Checking hash(es) for Image atf-1 ... sha256+ OK spl_load_simple_fit: can't load image loadables index 0 (ret = -5) mmc_load_image_raw_sector: mmc block read error SPL: failed to boot from all boot devices ### ERROR ### Please RESET the board ###
Boot log (your branch):
U-Boot SPL 2023.10-rc1-00368-g16cb31d427 (Aug 08 2023 - 15:17:35 +0100) Trying to boot from MMC1 spl: mmc init failed with error: -70 Trying to boot from MMC2 Card did not respond to voltage select! : -110 spl: mmc init failed with error: -95 Trying to boot from MMC1 ## Checking hash(es) for config config-1 ... OK mmc_load_image_raw_sector: mmc block read error SPL: failed to boot from all boot devices ### ERROR ### Please RESET the board ###
I have not been able to reproduce this kind of issue on any of my two Quartz64-A boards, tested with different eMMC modules.
Does your eMMC module have some compatibility issue? Do you have any more details on the eMMC module you have tested with?
I have two eMMCs, one from FORESEE which came with a Pine64 and one marked SanDisk (which I posted the mmc info for above).
My hardware is marked Quartz64-RK3399-V2.0 2021-04-27 Maybe there is some difference with your board?
I will also try an image with vendor u-boot as a next step.
There was also some clk and pinctrl changes recently merged into master branch, but they was probably included in the build from my branch based on the lack of "rockchip_sdhci_probe clk set rate fail!" message.
I tried with your build, but I will investigate more with master.
Thanks!
Chris