linux XIP 启动时间问题

linux XIP 启动时间问题

此问题尚无答案
All Replies
  • 秀才110分
    我们这边是OMAP-138的板子,有一块nor flash,想要加快linux启动时间
    测试使用了XIP 的启动方式,但是启动时间并没有加快,和传统的拷贝、解压内核所需要的时间比较,并没有快,总体上时间差不多
    据网上很多资料的介绍,XIP 启动方式由于省略了uimage 的拷贝和解压,启动速度理论上是会加快的
    请问这里为什么,还是我们这边那里设置不正确吗?

    CE4 = 0x01000001
    Finished LCD Init!!!!!!!!!!!!!!!!!!!!!!!
    SF: Detected MX25L12805D with page size 256, total 16777216 bytes
    Hit any key to stop autoboot:  0
    ## Booting kernel from Legacy Image at 60000000 ...
       Image Name:   XIP Image
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    7306976 Bytes =  7 MB
       Load Address: 60000000
       Entry Point:  60000040
       Verifying Checksum ... OK
       XIP Kernel Image ... OK
    OK
     
    Starting kernel ...
     
        0.000000] Linux version 2.6.33-rc4-D8135_2.0.1.4 (root@eastcom) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #514 PREEMPT Thu May 4 10:19:33 CST 2017
    [    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    [    0.000000] CPU: VIVT data cache, VIVT instruction cache
    [    0.000000] Machine: DaVinci DA850/OMAP-L138/AM18xx EVM
    [    0.000000] Ignoring unrecognised tag 0x54410009
    [    0.000000] Memory policy: ECC disabled, Data cache writeback
    [    0.000000] DaVinci da850/omap-l138/am18xx variant 0x1
    [    0.000000] init_pll0_iomap ok
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 23876
    [    0.000000] Kernel command line: mem=94M console=ttyS0,115200n8 init=/init
    [    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
    [    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
    [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
    [    0.000000] Memory: 94MB = 94MB total
    [    0.000000] Memory: 94548KB available (2700K code, 733K data, 12K init, 0K highmem)
    [    0.000000] Hierarchical RCU implementation.
    [    0.000000] NR_IRQS:245
    [    0.000000] davinci_clock_tick_rate: 24000000
    [    0.000000] Calibrating delay loop... 98.09 BogoMIPS (lpj=245248)
    [    0.085000] Mount-cache hash table entries: 512
    [    0.100000] CPU: Testing write buffer coherency: ok
    [    0.205000] regulator: core version 0.5
    [    0.225000] NET: Registered protocol family 16
    [    1.075000] bio: create slab <bio-0> at 0
    [    1.375000] regulator: VDCDC1: 3200 <--> 3300 mV at 3300 mV
    [    1.400000] regulator: VDCDC2: 1750 <--> 3300 mV at 3300 mV
    [    1.420000] regulator: VDCDC3: 950 <--> 1375 mV at 1200 mV
    [    1.445000] regulator: LDO1: 1800 mV
    [    1.465000] regulator: LDO2: 1150 <--> 1300 mV at 1200 mV
    [    1.570000] i2c-gpio i2c-gpio.1: using pins 20 (SDA) and 21 (SCL)
    [    1.685000] Switching to clocksource timer0_1
    [    1.875000] musb_hdrc: version 6.0, cppi4.1-dma, peripheral, debug=0
    [    1.910000] Waiting for USB PHY clock good...
    [    1.925000] musb_hdrc: USB Peripheral mode controller at fee00000 using DMA, IRQ 58
    [    1.950000] NET: Registered protocol family 2
    [    1.960000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    1.975000] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
    [    1.975000] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    [    1.975000] TCP: Hash tables configured (established 4096 bind 4096)
    [    1.975000] TCP reno registered
    [    1.975000] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    1.980000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    1.990000] NET: Registered protocol family 1                                       
    [    5.240000] msgmni has been set to 184
    [    5.620000] io scheduler noop registered
    [    5.620000] io scheduler deadline registered
    [    5.625000] io scheduler cfq registered (default)
    [    5.635000] da8xx_lcdc da8xx_lcdc.0: GLCD: Found sitronix_st7735s panel
    [    5.670000] lcd fresh start address:0xc5161000
    [    5.760000] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
    [    5.870000] serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a 16550A
    [    6.155000] console [ttyS0] enabled

  • 探花15920分

    xip虽然没有COPY,但是ARM还是需要到固定的地址读取指令,时间并不减少。

    你可以试试COPY的方式加入EDMA试试。

  • 秀才110分

    那么就是使用压缩内核,然后压缩内核拷贝的时候,使用EDMA的方式进行拷贝吗