Caglar,

I tried to use static linking, it reduced the boot time but not enough. Is
it possible to have a look at the code that you ported from linux kernel to
u-boot/UBL ?

Thank you.

Regards,

Nicolas



On Sat, Jul 31, 2010 at 5:10 AM, Caglar Akyuz <[email protected]> wrote:

> On Friday 30 July 2010 11:47:14 pm Nicolas Luna wrote:
> > Hi,
> >
> > Thanks guys for your advices, I applied few of them and I save a lot of
> > time, I'm at 3.9 seconds now. I'll also apply the deferred init calls
> >  concept later.
> >
> > I have two other questions.
> >
> > I'm not sure to understand how to use EDMA to copy from NOR to RAM in
> >  uboot. Every post that I found it is never explain the procedure to
> apply
> >  this patch.
>
> Where is this patch?
>
> >  Do you guys have a piece of code or something to get started
> >  with that?
> >
>
> I ported edma code from Linux kernel to u-boot(and ubl as well), then I
> changed memcpy with edma copy function under u-boot where kernel is copied
> from flash to ram, and later for the relocation in ram. That's all.
>
> > In the same way, after the kernel boot, I have to start an application
> with
> > QT and it takes 10 seconds to transfert QT lib (libQtCore, libQtGui,
> > libQtNetwork, fonts) from NOR to RAM and start the application. QT stuff
> is
> > ~20MB, I removed every useless lib to reduce the amount of data to
> > transfert. I also optimised the EMIFA CS2 (I changed EMIFA clock to 150
> Mhz
> > and changed CS timing to be at the maximum of my NOR). I probed the NOR
> >  chip select and there are big delays between read access. I suppose that
> >  is because it is not using EDMA and the CPU is not able to feed the
> NOR...
> >  I would like to reduce this transfert time to ~4 secondes or less and I
> >  think that EDMA could maybe help to do it. Do you have any idea how to
> >  apply it, or any other ideas?
> >
>
> I think optimizing link time is more important than optimizing transfer
> time.
> You can use static linking but then your application needs to be GPL. So I
> don't think using static linking is an option. In that case you may use
> prelinking feature of gnu linker [1].
>
> [1] http://people.redhat.com/jakub/prelink.pdf
>
> Regards,
> Caglar
>
> > Thanks for your time.
> >
> > Regards,
> >
> > Nicolas
> >
> > On Thu, Jul 29, 2010 at 10:42 PM, rohan tabish
> <[email protected]>wrote:
> > > set verify=n this will ignore checksum
> > >
> > > Regard's
> > > RT
> > >
> > > --- On *Thu, 29/7/10, Nicolas Luna <[email protected]>* wrote:
> > >
> > >
> > > From: Nicolas Luna <[email protected]>
> > > Subject: Boot time
> > > To: [email protected]
> > > Date: Thursday, 29 July, 2010, 0:59
> > >
> > >
> > > Hi guys,
> > >
> > > I'm trying to make by board boot as quick as possible. I did some
> > > optimisation with the "All This For 1 Second Boot" wiki and other
> > > website. I would like to reduce a little bit more the boot time and I
> > > wonder if you guys could give me some clues.
> > >
> > > I copied my boot log below. For sure I'll remove the uboot autoboot
> delay
> > > and probably build a new kernel with modules. I putted in bold part
> that
> > > I think it is possible to do more optimisation.
> > >
> > > 1- See bullet #3.
> > > 2- The verifying Checksum is about 400 msec is it possible to skip it?
> > > 3- It takes ~1 sec to start booting the kernel and there is a other ~1
> > > sec delay between the starting kernel and the beginning of the
> > > uncompressing. Why it's so long? Ok maybe there is the copy from NOR to
> > > RAM but it should not take more than few msec.
> > > 4- It takes ~1 sec to the kernel to free 120K memory... I got enought
> RAM
> > > is it possible to remove it?
> > >
> > > I got custom hardware based on OMAP-L138 with FS (jffs2) and compressed
> > > kernel in NOR Flash.
> > >
> > > Thanks a lot
> > >
> > > Nicolas
> > >
> > >
> > >
> -------------------------------------------------------------------------
> > >------------
> > >
> > > 0.000 0.000: OMAP-L138 initialization passed!
> > > 0.000 0.000: Booting TI User Boot Loader
> > > 0.004 0.004:    UBL Version: 1.65
> > > 0.004 0.000:    UBL Flashtype: NOR
> > > 0.008 0.004: Starting NOR Copy...
> > > 0.008 0.000: CFI Query...passed.
> > > 0.012 0.004: NOR Initialization:
> > > 0.012 0.000:    Command Set: Intel
> > > 0.012 0.000:    Manufacturer: INTEL
> > > 0.016 0.004:    Size: 0x00000020 MB
> > > 0.020 0.004: Valid magicnum, 0x55424CBB, found..
> > > 0.184 0.164:    DONE
> > > 0.188 0.004: Jumping to entry point at 0xC1080000.
> > > 0.504 0.316:
> > > 1.548 1.044: Hit any key to stop autoboot:  0
> > > *2.372 0.824: ## Booting kernel from Legacy Image at c0007fc0 ...*
> > > 2.372 0.000:    Image Name:   Linux-2.6.34
> > > 2.380 0.008:    Image Type:   ARM Linux Kernel Image (uncompressed)
> > > 2.380 0.000:    Data Size:    1505956 Bytes =  1.4 MB
> > > 2.384 0.004:    Load Address: c0008000
> > > 2.388 0.004:    Entry Point:  c0008000
> > > *2.808 0.420:    Verifying Checksum ... OK*
> > > 2.808 0.000:    Loading Kernel Image ... OK
> > > 2.808 0.000: OK
> > > 2.808 0.000:
> > > *2.812 0.004: Starting kernel ...*
> > > *2.812 0.000:*
> > > *3.860 1.048: Uncompressing Linux... done, booting the kernel.*
> > > 4.264 0.404: Linux version 2.6.34 (i...@idt-ubuntu-linux) (gcc version
> > > 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #89 PREEMPT Thu Jul 22 15:24:03
> > > EDT 2010 4.268 0.004: CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ),
> > > cr=00053177 4.272 0.004: CPU: VIVT data cache, VIVT instruction cache
> > > 4.276 0.004: Machine: DaVinci DA850/OMAP-L138 EVM
> > > 4.280 0.004: Memory policy: ECC disabled, Data cache writeback
> > > 4.284 0.004: DaVinci da850/omap-l138 variant 0x0
> > > 4.288 0.004: Built 1 zonelists in Zone order, mobility grouping on.
> > > Total pages: 32512
> > > 4.300 0.012: Kernel command line: lpj=747520 mem=128M
> > > console=ttyS2,115200n8 root=/dev/mtdblock2 rootfstype=jffs2 rw ip=off
> > > 4.304 0.004: PID hash table entries: 512 (order: -1, 2048 bytes)
> > > 4.308 0.004: Dentry cache hash table entries: 16384 (order: 4, 65536
> > > bytes) 4.316 0.008: Inode-cache hash table entries: 8192 (order: 3,
> 32768
> > > bytes) 4.316 0.000: Memory: 128MB = 128MB total
> > > 4.324 0.008: Memory: 126752k/126752k available, 4320k reserved, 0K
> > > highmem 4.324 0.000: Virtual kernel memory layout:
> > > 4.332 0.008:     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
> > > 4.336 0.004:     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
> > > 4.340 0.004:     DMA     : 0xff000000 - 0xffe00000   (  14 MB)
> > > 4.344 0.004:     vmalloc : 0xc8800000 - 0xfea00000   ( 866 MB)
> > > 4.348 0.004:     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
> > > 4.352 0.004:     modules : 0xbf000000 - 0xc0000000   (  16 MB)
> > > 4.356 0.004:       .init : 0xc0008000 - 0xc0026000   ( 120 kB)
> > > 4.360 0.004:       .text : 0xc0026000 - 0xc02e8000   (2824 kB)
> > > 4.364 0.004:       .data : 0xc02e8000 - 0xc0307a60   ( 127 kB)
> > > 4.372 0.008: SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0,
> > > CPUs=1, Nodes=1
> > > 4.376 0.004: Hierarchical RCU implementation.
> > > 4.376 0.000: NR_IRQS:245
> > > 4.380 0.004: Console: colour dummy device 80x30
> > > 4.384 0.004: Calibrating delay loop (skipped) preset value.. 149.50
> > > BogoMIPS (lpj=747520)
> > > 4.388 0.004: Mount-cache hash table entries: 512
> > > 4.392 0.004: CPU: Testing write buffer coherency: ok
> > > 4.396 0.004: DaVinci: 144 gpio irqs
> > > 4.396 0.000: NET: Registered protocol family 16
> > > 4.400 0.004: bio: create slab <bio-0> at 0
> > > 4.404 0.004: SCSI subsystem initialized
> > > 4.408 0.004: usbcore: registered new interface driver usbfs
> > > 4.412 0.004: usbcore: registered new interface driver hub
> > > 4.416 0.004: usbcore: registered new device driver usb
> > > 4.416 0.000: Switching to clocksource timer0_1
> > > 4.420 0.004: musb_hdrc: version 6.0, pio, host, debug=0
> > > 4.424 0.004: Waiting for USB PHY clock good...
> > > 4.428 0.004: musb_hdrc musb_hdrc: MUSB HDRC host driver
> > > 4.432 0.004: musb_hdrc musb_hdrc: new USB bus registered, assigned bus
> > > number 1
> > > 4.436 0.004: hub 1-0:1.0: USB hub found
> > > 4.440 0.004: hub 1-0:1.0: 1 port detected
> > > 4.444 0.004: musb_hdrc musb_hdrc: USB Host mode controller at fee00000
> > > using PIO, IRQ 58
> > > 4.448 0.004: NET: Registered protocol family 2
> > > 4.456 0.008: IP route cache hash table entries: 1024 (order: 0, 4096
> > > bytes) 4.460 0.004: TCP established hash table entries: 4096 (order: 3,
> > > 32768 bytes)
> > > 4.464 0.004: TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
> > > 4.468 0.004: TCP: Hash tables configured (established 4096 bind 4096)
> > > 4.472 0.004: TCP reno registered
> > > 4.476 0.004: UDP hash table entries: 256 (order: 0, 4096 bytes)
> > > 4.480 0.004: UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
> > > 4.484 0.004: NET: Registered protocol family 1
> > > 4.488 0.004: RPC: Registered udp transport module.
> > > 4.492 0.004: RPC: Registered tcp transport module.
> > > 4.496 0.004: RPC: Registered tcp NFSv4.1 backchannel transport module.
> > > 4.500 0.004: JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
> > > 4.504 0.004: msgmni has been set to 247
> > > 4.508 0.004: io scheduler noop registered (default)
> > > 4.512 0.004: da8xx_lcdc da8xx_lcdc.0: GLCD: Found Sharp_LK043T1DG01
> panel
> > > 4.516 0.004: Console: switching to colour frame buffer device 60x34
> > > 4.520 0.004: Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
> > > 4.528 0.008: serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a
> 16550A
> > > 4.532 0.004: serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a
> 16550A
> > > 4.540 0.008: serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a
> 16550A
> > > 4.540 0.000: console [ttyS2] enabled
> > > 4.548 0.008: brd: module loaded
> > > 4.556 0.008: physmap platform flash device: 02000000 at 60000000
> > > 4.564 0.008: physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
> > > 4.568 0.004:  Intel/Sharp Extended Query Table at 0x010A
> > > 4.572 0.004:  Intel/Sharp Extended Query Table at 0x010A
> > > 4.576 0.004:  Intel/Sharp Extended Query Table at 0x010A
> > > 4.580 0.004:  Intel/Sharp Extended Query Table at 0x010A
> > > 4.584 0.004:  Intel/Sharp Extended Query Table at 0x010A
> > > 4.588 0.004: Using buffer write method
> > > 4.588 0.000: Using auto-unlock on power-up/resume
> > > 4.592 0.004: cfi_cmdset_0001: Erase suspend on write enabled
> > > 4.596 0.004: RedBoot partition parsing not available
> > > 4.600 0.004: Using physmap partition information
> > > 4.604 0.004: Creating 3 MTD partitions on "physmap-flash.0":
> > > 4.608 0.004: 0x000000000000-0x000000080000 : "bootloaders + env"
> > > 4.620 0.012: 0x000000080000-0x000000280000 : "kernel"
> > > 4.628 0.008: 0x000000280000-0x000002000000 : "filesystem"
> > > 4.636 0.008: physmap-flash.0: failed to claim resource 0
> > > 4.644 0.008: NAND device: Manufacturer ID: 0x2c, Chip ID: 0xdc (Micron
> > > NAND 512MiB 3,3V 8-bit)
> > > 4.652 0.008: Creating 2 MTD partitions on "davinci_nand.1":
> > > 4.656 0.004: 0x000000000000-0x000001900000 : "data"
> > > 4.664 0.008: 0x000001900000-0x000020000000 : "else"
> > > 4.672 0.008: davinci_nand davinci_nand.1: controller rev. 2.5
> > > 4.680 0.008: spi_davinci spi_davinci.1: Controller at 0xfef0e000
> > > 4.692 0.012: tun: Universal TUN/TAP device driver, 1.6
> > > 4.696 0.004: tun: (C) 1999-2004 Max Krasnyansky
> > > <[email protected]<http://mc/[email protected]>
> > >
> > > 4.704 0.008: ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
> > > 4.708 0.004: ohci ohci.0: DA8xx OHCI
> > > 4.712 0.004: ohci ohci.0: new USB bus registered, assigned bus number 2
> > > 4.716 0.004: Waiting for USB PHY clock good...
> > > 4.720 0.004: ohci ohci.0: irq 59, io mem 0x01e25000
> > > 4.788 0.068: hub 2-0:1.0: USB hub found
> > > 4.788 0.000: hub 2-0:1.0: 1 port detected
> > > 4.796 0.008: Initializing USB Mass Storage driver...
> > > 4.804 0.008: usbcore: registered new interface driver usb-storage
> > > 4.804 0.000: USB Mass Storage support registered.
> > > 5.804 1.000: i2c_davinci i2c_davinci.1: controller timed out
> > > 5.808 0.004: i2c_davinci i2c_davinci.1: initiating i2c bus recovery
> > > 5.812 0.004: tps6507x-ts: probe of tps6507x-ts failed with error -110
> > > 5.820 0.008: omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
> > > 5.824 0.004: omap_rtc: RTC power up reset detected
> > > 5.824 0.000: omap_rtc: already running
> > > 5.828 0.004: i2c /dev entries driver
> > > 5.832 0.004: TCP cubic registered
> > > 5.836 0.004: Clocks: disable unused i2c1
> > > 5.840 0.004: Clocks: disable unused emac
> > > 5.848 0.008: davinci_emac_probe: using random MAC addr:
> 72:93:72:ad:15:13
> > > 5.852 0.004: emac-mii: probed
> > > 5.860 0.008: omap_rtc omap_rtc: setting system clock to 2000-01-01
> > > 01:34:03 UTC (946690443)
> > > 6.136 0.276: VFS: Mounted root (jffs2 filesystem) on device 31:2.
> > > *6.140 0.004: Freeing init memory: 120K*
> > > *7.356 1.216: Mounting proc*
> > >
> > > -----Inline Attachment Follows-----
> > >
> > >
> > > _______________________________________________
> > > Davinci-linux-open-source mailing list
> > > [email protected]<
> http://mc/compose?to=Davin
> > >[email protected]>
> > > http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
> >
>
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to