the timestamp during the kernel boot not correct

I set the frequency of the system counter to 20MHz: by set cntfrq_el0

dmesg:

arch_timer_of_init, rate 20000000

arch_timer: cp15 timer(s) running at 20.00MHz (phys).

but in dmesg, the time shows take 10 seconds to finish the boot,

but in fact, it is 3 mins which I count by my iphone.

does anyone can tell the reason?

since it is a arm board, I can't get the cpu freq though /proc/cpuinfo, 

processor : 0
BogoMIPS : 40.00
Features : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4

Hardware : Rockchip RK3568 EVB1 DDR4 V10 Board
Serial : 0000000000000000

  • dmesg should count the Linux kernel time only? When start_kernel() is not executed, the cntfrq_el0 timer is not started?
    While you iphone time will calculate the time when you pressed the board Power On button?  It takes much time for the Board Firmware to launch Linux kernel and this time may be ignored by you.