[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
>         [email protected]
>         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
[email protected]
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to