Support / Knowledge Base / How do I decrease or optimize the ConnectCore 9U boot time?

How do I decrease or optimize the ConnectCore 9U boot time?

  • reduce the U-Boot environment variable "bootdelay", e.g. to 1 second

        CC9U> setenv bootdelay 1; saveenv
  
    but avoid to set the bootdelay to 0, as there might be no way back to U-Boot console from this.

  • Use 32bit read access while reading the Linux kernel from Flash

        typically you have: bootcmd=run boot_flash
        with boot_flash=run smtd gfk;bootm
        while gfk=cp.w 10040000 ${loadaddr} 180000
        but you can reduce read time by using "cp.l" instead with a smaller length value.
        E.g. to read a 3MB kernel from flash:

        CC9U> setenv gfk cp.l 10040000 ${loadaddr} c0000; saveenv

        Note: 0xC0000 * 4 = 0x300000 = 3MB while you have a 3MB kernel partition reserved in flash

  • Reduce the Linux kernel size read from flash actually to the exact length of your kernel instead of partition size

        E.g. when programming kernel into flash via TFTP or USB:
        CC9U> run update_kernel_tftp   or  update kernel tftp
        uImage-unc90dev will be updated now via tftp
        TFTP from server 192.168.42.1; our IP address is 192.168.42.30
        Filename 'uImage-unc90dev'.
        Load address: 0x20100000
        Loading: * #################################################################
        #################################################################
        #################################################################
        ###################
       done
       Bytes transferred = 1092916 (10ad34 hex)

       Use the size of Bytes beeing transfered, and devide it by 4 (rounded up!) for reading kernel from flash.
    In above example kernel size is 0x10ad34, devided by 4 = 0x42B4D, so set:

      CC9U> setenv gfk cp.l 10040000 ${loadaddr} 42B4D; saveenv

    Note: keep in mind to alter "gfk" every time you update the kernel. E.g. if you do an update from the running Linux you need to alter this environment variable also, in order to avoid that the kernel is not loaded into RAM completely on next boot (presumed your new kernel is bigger).

Last updated: Aug 08, 2017

Recently Viewed Articles

No recently viewed articles
Contact a Digi expert and get started today! Contact Us