u-boot booting time is very big with i.mx6solo than with i.mx53. they do almost same thing: init system, read uImage from nand,and then bootm. time of i.mx53 is 1 second, and time of imx6solo is 5 second. how can we speed up u-boot booting with i.mx6solo? below is booting log:
U-Boot 2009.08-svn110 (Jan 20 2015 - 12:45:01)
CPU: Freescale i.MX6 family TO1.1 at 984 MHz
Thermal sensor with ratio = 188
Temperature: 38 C, calibration data 0x5a850c69
mx6q pll1: 984MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock : 66000000Hz
ipg per clock : 66000000Hz
uart clock : 80000000Hz
cspi clock : 60000000Hz
ahb clock : 132000000Hz
axi clock : 198000000Hz
emi_slow clock: 99000000Hz
ddr clock : 396000000Hz
usdhc1 clock : 198000000Hz
usdhc2 clock : 198000000Hz
usdhc3 clock : 198000000Hz
usdhc4 clock : 198000000Hz
nfc clock : 11000000Hz
Board: i.MX6DL/Solo-SABRESD: unknown-board Board: 0x61011 [WDOG ]
Boot Device: NAND
DRAM: 512 MB
board.c 335 time:73
NAND: Manufacturer ID: 0xad, Chip ID: 0xf1 (Hynix NAND 128MiB 3,3V 8-bit), page size: 2048, OOB size: 64
128 MiB
board.c 495 time:736
Hit any key to stop autoboot: 0
cmd_nand.c 235 time:749
NAND read: device 0 offset 0x3b00000, size 0x320000
3276800 bytes read: OK
cmd_nand.c 421 time:2859
cmd_bootm.c 580 time:2861
## Booting kernel from Legacy Image at 10800000 ...
Image Name: Linux-3.0.35-2666-gbdde708-svn84
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3138564 Bytes = 3 MB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
cmd_bootm.c 693 time:4429
Starting kernel ...
U-Boot 2009.08 (Jan 19 2015 - 16:07:16)
CPU: Freescale i.MX53 family 2.0V at 800 MHz
mx53 pll1: 800MHz
mx53 pll2: 400MHz
mx53 pll3: 216MHz
mx53 pll4: 455MHz
ipg clock : 66666666Hz
ipg per clock : 33333333Hz
uart clock : 21600000Hz
cspi clock : 54000000Hz
ahb clock : 133333333Hz
axi_a clock : 400000000Hz
axi_b clock : 200000000Hz
emi_slow clock: 133333333Hz
ddr clock : 400000000Hz
esdhc1 clock : 80000000Hz
esdhc2 clock : 80000000Hz
esdhc3 clock : 80000000Hz
esdhc4 clock : 80000000Hz
nfc clock : 26666666Hz
Board: MX53-LOCO 1.0
Boot Reason: [POR]
Boot Device: NAND
I2C: ready
DRAM: 512 MB
board.c 364 time:60
NAND: Manufacturer : Hynix (0xad)
Device Code : 0xf1
Cell Technology : SLC
Chip Size : 128 MiB
Pages per Block : 64
Page Geometry : 2048+64
ECC Strength : 4 bits
ECC Size : 512 B
Data Setup Time : 45 ns
Data Hold Time : 30 ns
Address Setup Time: 25 ns
GPMI Sample Delay : 6 ns
tREA : Unknown
tRLOH : Unknown
tRHOH : Unknown
Description : <None>
128 MiB
board.c 522 time:182
Hit any key to stop autoboot: 0
cmd_nand.c 235 time:192
NAND read: device 0 offset 0x3b00000, size 0x280000
2621440 bytes read: OK
cmd_nand.c 421 time:721
cmd_bootm.c 573 time:724
## Booting kernel from Legacy Image at 70800000 ...
Image Name: Linux-2.6.35.3-744-g27fdf7b
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2431424 Bytes = 2.3 MB
Load Address: 70008000
Entry Point: 70008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
cmd_bootm.c 675 time:808
Starting kernel ...
Hi,
According to the log file, it seems that both boards are booting from NAND, isn’t it? However, the NAND Flash Controller clock on the i.MX6 is 11 MHz (nfc clock : 11000000Hz) while on the i.MX53 is 26.6 MHz (nfc clock : 26666666Hz). Additionally, the NAND image on the i.MX6 is 3 MB, while it is 2.3 MB on the i.MX53.
So, you could consider modify the NAND clock on the i.MX6 (if available) remembering that the U-Boot varies depending of the BSP provider.
Hope this will be useful for you.
Best regards!
/Carlos
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Dear Carlos,
Thank you very much.
I agree on What you said.
boot time of u-boot booting include 3 parts: system init, nand read(kernel uImage), bootm(do analysis kernel format and move kernel).
system-init nand-read bootm total time
i.MX6solo 0.7 second 2.1 second 1.8 second 4.6 second(0.72.11.8=4.6)
i.MX53 0.2 second 0.5 second 0.1 second 0.8 second(0.20.50.1=0.8)
i.MX6 GPMI module is slower than i.MX53 NAND Flash controller (NFC) in real life applications is one reason. there may be any other reasons. Do you have any ideas?
Best regards,
YongJunTang