On 13-12-20 01:56 AM, Ravi Rao wrote:
> Hi Paul,
>     Thanks a lot for your help. I disabled many of the fs that I was not 
> using from the .config and got the uImage size down to 2.5MB and now the 
> card boots up with 3.4.36 kernel.
> 
> 
> ~ # uname -a
> Linux hd12 3.4.36-yocto-standard #4 PREEMPT Fri Dec 20 00:17:47 CST 2013 
> ppc unknown

Good stuff, glad you got it working.

Paul.
--

> 
> Regards,
> Ravi..
> 
> On 12/19/13 15:48, Paul Gortmaker wrote:
>> [Re: [linux-yocto] ERROR: Failed to allocate 0x3dbd bytes below 0x800000.] 
>> On 19/12/2013 (Thu 15:24) Ravi Rao wrote:
>>
>>> Hi Paul,
>>>    Appreciate the feed back. My responses are in line below..
>>>
>>>
>>> On 12/19/13 09:30, Paul Gortmaker wrote:
>>>
>>>      On 13-12-18 11:50 PM, Ravi Rao wrote:
>>>
>>>          Hi All,
>>>          We have a custom Board which is based on mpc8349EMDS which is 
>>> based on e300.
>>>          I got the Toolchain downloaded using poky-dora-10.0.0 project which
>>>          supports e300 core
>>>          Now when I cross compile Linux kernel ver 2.6.32 the system boots 
>>> up and
>>>          works fine.
>>>          But when I cross compile Linux kernel ver 3.X the target reboots 
>>> just
>>>          after uncompressing the kernel with the error
>>>          ERROR: Failed to allocate 0x3dbd bytes below 0x800000.
>>>          device tree - allocation error
>>>          I am using the same device tree for both kernel versions !!!
>>>
>>>      Why would you use the old device tree on the new kernel?  The
>>>      8349EMDS is in mainline IIRC, and hence you aren't tied to the
>>>      old dts file.
>>>
>>> I am not using old device tree. I created one which is based on 
>>> mpc834x_mds.dts in 3.4.36 kernel. Attaching it for your ref..
>>> When I use this newly created one with 2.6.32 kernel it works fine. Hence I 
>>> mentioned I was using the same device tree for both kernels!!
>> OK, so new dts works on the old kernel.  Good to know;  I'd got the
>> impression you were using the old dts on the new kernel....
>>
>>>      What is the u-boot version?
>>>
>>> U-Boot 2009.08 (Nov 11 2013 - 12:37:05) MPC83XX
>> Not super new, but not so ancient as to probably be the problem.
>>
>>>
>>>      How much difference in size is there between the two uImage?
>>>
>>> -rw-rw-r--  1 platform33 platform33 4055829 Dec 19 14:21 uImage4hd12_3x
>>> -rw-r--r-- 1 platform33 platform33  1653704 Dec 13 13:30 uImage4hd12_2x
>>> Is it this size diff causing this issue ??
>>> Any idea what may be the reason for increase in 2.5 MB ???
>> Ouch.  That is a _huge_ difference.  I think objdump and nm are your
>> friends here -- or even "file" -- with that size difference, I wonder if
>> you've stripped the newer image...
>>
>>>
>>>      Does the 3.x image work if you turn off some stuff to reduce
>>>      the size?  (you can turn off essentially all device drivers
>>>      other than serial for this test)
>>>
>>> I tried using a dts with just serial ports and that failed too!!
>> No, you misunderstand ; the idea was to strip options from the kernel
>> config file to reduce vmlinux/uImage size; you never want to remove
>> entries from a dts, as if they aren't used, they are inert.
>>
>>>
>>>      What happens if you take a default yocto mpc8315 BSP, and enable
>>>      the mpc8349EMDS in that kernel config (one kernel can support
>>>      multiple mpc83xx boards, IIRC -- haven't booted one for a while...)
>>>
>>> I tried enabling CONFIG_MPC834x_MDS=y in .config but I still have the same
>>> error
>> OK, well your giant increase in uImage size is probably the root cause;
>> you need to figure out what happened there.
>>
>> Good luck,
>> Paul.
>> --
>>
>>>      Paul.
>>>      --
>>>
>>>
>>>          Any Idea what may be causing this ??
>>>          Regards,
>>>          Ravi..
>>>
>>>          ********** Console Dump ************
>>>          =>  run nfsboot
>>>          Speed: 100, full duplex
>>>          Using TSEC1 device
>>>          TFTP from server 167.254.232.11; our IP address is 167.254.213.35;
>>>          sending through gateway 167.254.213.254
>>>          Filename 'hd12_images/uImage4hd12'.
>>>          Load address: 0x1000000
>>>          Loading: 
>>> #################################################################
>>>                    
>>> #################################################################
>>>                    
>>> #################################################################
>>>                    
>>> #################################################################
>>>                    #################
>>>          done
>>>          Bytes transferred = 4054972 (3ddfbc hex)
>>>          Speed: 100, full duplex
>>>          Using TSEC1 device
>>>          TFTP from server 167.254.232.11; our IP address is 167.254.213.35;
>>>          sending through gateway 167.254.213.254
>>>          Filename 'hd12_images/dtb4hd12.dtb'.
>>>          Load address: 0xc00000
>>>          Loading: #
>>>          done
>>>          Bytes transferred = 3517 (dbd hex)
>>>          WARNING: adjusting available memory to 30000000
>>>          ## Booting kernel from Legacy Image at 01000000 ...
>>>              Image Name:   Linux-3.4.36-yocto-standard
>>>              Created:      2013-12-18  19:26:38 UTC
>>>              Image Type:   PowerPC Linux Kernel Image (gzip compressed)
>>>              Data Size:    4054908 Bytes =  3.9 MB
>>>              Load Address: 00000000
>>>              Entry Point:  00000000
>>>              Verifying Checksum ... OK
>>>          ## Flattened Device Tree blob at 00c00000
>>>              Booting using the fdt blob at 0xc00000
>>>              Uncompressing Kernel Image ... OK
>>>          ERROR: Failed to allocate 0x3dbd bytes below 0x800000.
>>>          device tree - allocation error
>>>          Resetting the board?
>>>
>>>
>>>
>>>          _______________________________________________
>>>          linux-yocto mailing list
>>>          linux-yocto@yoctoproject.org
>>>          https://lists.yoctoproject.org/listinfo/linux-yocto
>>>
>>>
>>> /*
>>>   * MPC8349E MDS Device Tree Source
>>>   *
>>>   * Copyright 2005, 2006 Freescale Semiconductor Inc.
>>>   *
>>>   * This program is free software; you can redistribute  it and/or modify it
>>>   * under  the terms of  the GNU General  Public License as published by the
>>>   * Free Software Foundation;  either version 2 of the  License, or (at your
>>>   * option) any later version.
>>>   */
>>>
>>> /dts-v1/;
>>>
>>> / {
>>>     model = "MPC8349EMDS";
>>>     compatible = "MPC8349EMDS", "MPC834xMDS", "MPC83xxMDS";
>>>     #address-cells =<1>;
>>>     #size-cells =<1>;
>>>
>>>     aliases {
>>>             ethernet0 =&enet0;
>>>             ethernet1 =&enet1;
>>>             serial0 =&serial0;
>>>             serial1 =&serial1;
>>>             pci0 =&pci0;
>>>
>>>     };
>>>
>>>     cpus {
>>>             #address-cells =<1>;
>>>             #size-cells =<0>;
>>>
>>>             PowerPC,8349@0 {
>>>                     device_type = "cpu";
>>>                     reg =<0x0>;
>>>                     d-cache-line-size =<32>;
>>>                     i-cache-line-size =<32>;
>>>                     d-cache-size =<32768>;
>>>                     i-cache-size =<32768>;
>>>                     timebase-frequency =<0>;        // from bootloader
>>>                     bus-frequency =<0>;             // from bootloader
>>>                     clock-frequency =<0>;           // from bootloader
>>>             };
>>>     };
>>>
>>>     memory {
>>>             device_type = "memory";
>>>             reg =<0x00000000 0x40000000>;   // 1G at 0
>>>     };
>>>     
>>>     soc8349@e0000000 {
>>>             #address-cells =<1>;
>>>             #size-cells =<1>;
>>>             device_type = "soc";
>>>             compatible = "simple-bus";
>>>             ranges =<0x0 0xe0000000 0x00100000>;
>>>             reg =<0xe0000000 0x00000200>;
>>>             bus-frequency =<0>;
>>>
>>>             wdt@200 {
>>>                     device_type = "watchdog";
>>>                     compatible = "mpc83xx_wdt";
>>>                     reg =<0x200 0x100>;
>>>             };
>>>
>>>             i2c@3000 {
>>>                     #address-cells =<1>;
>>>                     #size-cells =<0>;
>>>                     cell-index =<0>;
>>>                     compatible = "fsl-i2c";
>>>                     reg =<0x3000 0x100>;
>>>                     interrupts =<0xe 0x8>;
>>>                     interrupt-parent =<  &ipic>;
>>>                     dfsrr;
>>>
>>>                     temp-sensor@4a {
>>>                             compatible = "dallas,ds1631";
>>>                             reg =<0x4a>;
>>>                     };
>>>
>>>                     rtc@51 {
>>>                             compatible = "nxp,pcf8563";
>>>                             reg =<0x51>;
>>>                     };
>>>
>>>                     eeprom@52 {
>>>                             compatible = "at24,24c32";
>>>                             reg =<0x52>;
>>>                     };
>>>
>>>                     eeprom@53 {
>>>                             compatible = "at24,24c32";
>>>                             reg =<0x53>;
>>>                     };
>>>             };
>>>
>>>             i2c@3100 {
>>>                     #address-cells =<1>;
>>>                     #size-cells =<0>;
>>>                     cell-index =<1>;
>>>                     compatible = "fsl-i2c";
>>>                     reg =<0x3100 0x100>;
>>>                     interrupts =<15 0x8>;
>>>                     interrupt-parent =<&ipic>;
>>>                     dfsrr;
>>>                     
>>>             };
>>>
>>>
>>>             enet0: ethernet@24000 {
>>>                     #address-cells =<1>;
>>>                     #size-cells =<1>;
>>>                     cell-index =<0>;
>>>                     device_type = "network";
>>>                     model = "TSEC";
>>>                     compatible = "gianfar";
>>>                     reg =<0x24000 0x1000>;
>>>                     ranges =<0x0 0x24000 0x1000>;
>>>                     local-mac-address = [ 00 00 0e 11 22 80 ];
>>>                     interrupts =<32 0x8 33 0x8 34 0x8>;
>>>                     interrupt-parent =<&ipic>;
>>>                     phy-handle =<&phy1>;
>>>
>>>             };
>>>
>>>             mdio@24520 {
>>>                     #address-cells =<1>;
>>>                     #size-cells =<0>;
>>>                     compatible = "fsl,gianfar-mdio";
>>>                     reg =<0x24520 0x20>;
>>>
>>>                     /* Vitesse 8201 */
>>>                     phy1: ethernet-phy@1 {
>>>                             reg =<0x1>;
>>>                     };
>>>                     phy2: ethernet-phy@2 {
>>>                             reg =<0x2>;
>>>                     };
>>>
>>>             };
>>>
>>>             enet1: ethernet@25000 {
>>>                     #address-cells =<1>;
>>>                     #size-cells =<1>;
>>>                     cell-index =<1>;
>>>                     device_type = "network";
>>>                     model = "TSEC";
>>>                     compatible = "gianfar";
>>>                     reg =<0x25000 0x1000>;
>>>                     ranges =<0x0 0x25000 0x1000>;
>>>                     local-mac-address = [ 00 00 0e 11 22 81 ];
>>>                     interrupts =<35 0x8 36 0x8 37 0x8>;
>>>                     interrupt-parent =<&ipic>;
>>>                     /* Vitesse 7385 isn't on the MDIO bus */
>>>                     phy-handle =<&phy2>;
>>>             };
>>>
>>>
>>>
>>>             serial0: serial@4500 {
>>>                     cell-index =<0>;
>>>                     device_type = "serial";
>>>                     compatible = "ns16550";
>>>                     reg =<0x4500 0x100>;
>>>                     clock-frequency =<0>;
>>>                     interrupts =<0x9 0x8>;
>>>                     interrupt-parent =<  &ipic>;
>>>             };
>>>
>>>             serial1: serial@4600 {
>>>                     cell-index =<1>;
>>>                     device_type = "serial";
>>>                     compatible = "ns16550";
>>>                     reg =<0x4600 0x100>;
>>>                     clock-frequency =<0>;
>>>                     interrupts =<0xa 0x8>;
>>>                     interrupt-parent =<  &ipic>;
>>>             };
>>>             /* IPIC
>>>              * interrupts cell =<intr #, sense>
>>>             * sense values match linux IORESOURCE_IRQ_* defines:
>>>              * sense == 8: Level, low assertion
>>>              * sense == 2: Edge, high-to-low change
>>>              */
>>>             ipic: pic@700 {
>>>                     interrupt-controller;
>>>                     #address-cells =<0>;
>>>                     #interrupt-cells =<2>;
>>>                     reg =<0x700 0x100>;
>>>                     built-in;
>>>                     device_type = "ipic";
>>>             };
>>>     };
>>>
>>>     pci0:  pci@e0008500 {
>>>             interrupt-map-mask =<0xf800 0 0 0x7>;
>>>             interrupt-map =<
>>>                     /* IDSEL 0x18 -  */
>>>                     0xC000 0x0 0x0 0x1&ipic 0x12 0x8 /* Broadcom */
>>>                     0xC000 0x0 0x0 0x2&ipic 0x12 0x8 /* Broadcom */
>>>                     0xC000 0x0 0x0 0x3&ipic 0x12 0x8 /* Broadcom */
>>>                     0xC000 0x0 0x0 0x4&ipic 0x12 0x8 /* Broadcom */
>>>             /*      0xC800 0x0 0x0 0x1&ipic 19 0x8  test */
>>>                     >;
>>>                                     
>>>             interrupt-parent =<  &ipic>;
>>>             interrupts =<66 0x8>;
>>>             bus-range =<0x0 0x0>;
>>>             ranges =<
>>>                     /* 0x42000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000 
>>> */
>>>                     0x02000000 0x0 0x80000000 0x80000000 0x0 0x01000000
>>>                     0x01000000 0x0 0x00000000 0xe3000000 0x0 0x01000000>;
>>>             clock-frequency =<66666666>;
>>>             #interrupt-cells =<1>;
>>>             #size-cells =<2>;
>>>             #address-cells =<3>;
>>>             reg =<0xe0008500 0x100          /* internal registers */
>>>                    0xe0008300 0x8>;         /* config space access 
>>> registers */
>>>             compatible = "fsl,mpc8349-pci";
>>>             device_type = "pci";
>>>     };
>>> };
>>> /*
>>>   * MPC8349E MDS Device Tree Source
>>>   *
>>>   * Copyright 2005, 2006 Freescale Semiconductor Inc.
>>>   *
>>>   * This program is free software; you can redistribute  it and/or modify it
>>>   * under  the terms of  the GNU General  Public License as published by the
>>>   * Free Software Foundation;  either version 2 of the  License, or (at your
>>>   * option) any later version.
>>>   */
>>>
>>> /dts-v1/;
>>>
>>> / {
>>>     model = "MPC8349EMDS";
>>>     compatible = "MPC8349EMDS", "MPC834xMDS", "MPC83xxMDS";
>>>     #address-cells =<1>;
>>>     #size-cells =<1>;
>>>
>>>     aliases {
>>>             serial0 =&serial0;
>>>             serial1 =&serial1;
>>>
>>>     };
>>>
>>>     cpus {
>>>             #address-cells =<1>;
>>>             #size-cells =<0>;
>>>
>>>             PowerPC,8349@0 {
>>>                     device_type = "cpu";
>>>                     reg =<0x0>;
>>>                     d-cache-line-size =<32>;
>>>                     i-cache-line-size =<32>;
>>>                     d-cache-size =<32768>;
>>>                     i-cache-size =<32768>;
>>>                     timebase-frequency =<0>;        // from bootloader
>>>                     bus-frequency =<0>;             // from bootloader
>>>                     clock-frequency =<0>;           // from bootloader
>>>             };
>>>     };
>>>
>>>     memory {
>>>             device_type = "memory";
>>>             reg =<0x00000000 0x40000000>;   // 1G at 0
>>>     };
>>>     
>>>     soc8349@e0000000 {
>>>             #address-cells =<1>;
>>>             #size-cells =<1>;
>>>             device_type = "soc";
>>>             compatible = "simple-bus";
>>>             ranges =<0x0 0xe0000000 0x00100000>;
>>>             reg =<0xe0000000 0x00000200>;
>>>             bus-frequency =<0>;
>>>
>>>
>>>             serial0: serial@4500 {
>>>                     cell-index =<0>;
>>>                     device_type = "serial";
>>>                     compatible = "ns16550";
>>>                     reg =<0x4500 0x100>;
>>>                     clock-frequency =<0>;
>>>                     interrupts =<0x9 0x8>;
>>>                     interrupt-parent =<  &ipic>;
>>>             };
>>>
>>>             serial1: serial@4600 {
>>>                     cell-index =<1>;
>>>                     device_type = "serial";
>>>                     compatible = "ns16550";
>>>                     reg =<0x4600 0x100>;
>>>                     clock-frequency =<0>;
>>>                     interrupts =<0xa 0x8>;
>>>                     interrupt-parent =<  &ipic>;
>>>             };
>>>             /* IPIC
>>>                   * interrupts cell =<intr #, sense>
>>>                   * sense values match linux IORESOURCE_IRQ_* defines:
>>>                   * sense == 8: Level, low assertion
>>>                   * sense == 2: Edge, high-to-low change
>>>                   */
>>>                  ipic: pic@700 {
>>>                          interrupt-controller;
>>>                          #address-cells =<0>;
>>>                          #interrupt-cells =<2>;
>>>                          reg =<0x700 0x100>;
>>>                          built-in;
>>>                          device_type = "ipic";
>>>                  };
>>>
>>>     };
>>>
>>> };
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to