Caglar,

Thank you, it's appreciated. I would be interested to receive u-boot level
changes as a patch.

Regards,

Nicolas



On Tue, Aug 17, 2010 at 10:31 AM, Caglar Akyuz <[email protected]>wrote:

> On Tuesday 17 August 2010 05:15:32 pm Nicolas Luna wrote:
> > 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 ?
> >
>
> My local UBL git tree is attached. You can see both DMA and Linux booting
> related changes in history. I can provide u-boot level changes(for dma and
> some small optimizations) as a patch for u-boot as well.
>
> Regards,
> Caglar
>
>
> > 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-sourc
> > > > >e
> >
>
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to