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
