Xilinx/Embedded-Design-Tutorials

using petalinux 2021.2 vitis 2021.2 image from eMMC (sd0) image.ub read by u-boot takes a long time (~19sec): Trying to load boot images from mmc0 286172648 bytes read in 18889 ms (14.4 MiB/s) how can i significantly increase transfer rate?

hudini87 opened this issue · 0 comments

using
petalinux 2021.2
vitis 2021.2
image from eMMC (sd0)

root FS type:
initramfs FS

boot.bin, image.ub and boot.scr are located at FAT32 partition of the eMMC.

image.ub read by u-boot takes a long time (~19sec):
Trying to load boot images from mmc0
286172648 bytes read in 18889 ms (14.4 MiB/s)

how can i significantly increase transfer rate?

hi,

here is the log from u-boot:

switch to partitions #0, OK

mmc0(part 0) is current device

Scanning mmc 0:1...

Found U-Boot script /boot.scr

2710 bytes read in 16 ms (165 KiB/s)

Executing script at 20000000

Trying to load boot images from mmc0

286172648 bytes read in 18889 ms (14.4 MiB/s)

Loading kernel from FIT Image at 10000000 ...

I GET while stop at u-boot stage:

ZynqMP> version

U-Boot 2021.01 (Oct 12 2021 - 09:28:42 +0000)

ZynqMP> mmc list

mmc@ff160000: 0 (eMMC)

mmc@ff170000: 1

ZynqMP> mmc dev 0

switch to partitions #0, OK

mmc0(part 0) is current device

ZynqMP> mmcinfo

Device: mmc@ff160000

Manufacturer ID: 70

OEM: 100

Name: W5251

Bus Speed: 199999998

Mode: HS200 (200MHz)

Rd Block Len: 512

MMC version 5.0

High Capacity: Yes

Capacity: 14.3 GiB

Bus Width: 8-bit

Erase Group Size: 512 KiB

HC WP Group Size: 16 MiB

User Capacity: 14.3 GiB

Boot Capacity: 4 MiB ENH

RPMB Capacity: 4 MiB ENH

Boot area 0 is not write protected

Boot area 1 is not write protected

as expected.

the big problem is:

**ZynqMP> fatload mmc 0 0x1000000 image.ub

286172648 bytes read in 18889 ms (14.4 MiB/s)

it takes 19 seconds to u-boot to read image.ub.

why read transfer rate is so slow, 14.4MiB/s??????**

**we have 200MHz reference clock from PS subsystem, 8 bus width, means 200MByte/s capacity..so according my calculation :

286172648/200000000 = 1.43 SECONDS.

am i wrong?**

in addition kernel debug is also fine:

root@petalinux:~# cat /sys/kernel/debug/mmc0/ios

clock: 200000000 Hz

actual clock: 200000000 Hz

vdd: 21 (3.3 ~ 3.4 V)

bus mode: 2 (push-pull)

chip select: 0 (don't care)

power mode: 2 (on)

bus width: 3 (8 bits)

timing spec: 9 (mmc HS200)

signal voltage: 1 (1.80 V)

driver type: 0 (driver type B)

can somebody help?

thanks and best regards