[linux-yocto] ERROR: Failed to allocate 0x3dbd bytes below 0x800000.
Ravi Rao
Ravi.Rao at us.fujitsu.com
Thu Dec 19 13:51:50 PST 2013
Thanks a lot Paul.
Just after sending the email I realized the goofup that I had to
strip .config not .dts. I am in the process of doing this and will
update the results soon.
Thanks again,
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 at 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 at 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 at e0000000 {
>> #address-cells =<1>;
>> #size-cells =<1>;
>> device_type = "soc";
>> compatible = "simple-bus";
>> ranges =<0x0 0xe0000000 0x00100000>;
>> reg =<0xe0000000 0x00000200>;
>> bus-frequency =<0>;
>>
>> wdt at 200 {
>> device_type = "watchdog";
>> compatible = "mpc83xx_wdt";
>> reg =<0x200 0x100>;
>> };
>>
>> i2c at 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 at 4a {
>> compatible = "dallas,ds1631";
>> reg =<0x4a>;
>> };
>>
>> rtc at 51 {
>> compatible = "nxp,pcf8563";
>> reg =<0x51>;
>> };
>>
>> eeprom at 52 {
>> compatible = "at24,24c32";
>> reg =<0x52>;
>> };
>>
>> eeprom at 53 {
>> compatible = "at24,24c32";
>> reg =<0x53>;
>> };
>> };
>>
>> i2c at 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 at 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 at 24520 {
>> #address-cells =<1>;
>> #size-cells =<0>;
>> compatible = "fsl,gianfar-mdio";
>> reg =<0x24520 0x20>;
>>
>> /* Vitesse 8201 */
>> phy1: ethernet-phy at 1 {
>> reg =<0x1>;
>> };
>> phy2: ethernet-phy at 2 {
>> reg =<0x2>;
>> };
>>
>> };
>>
>> enet1: ethernet at 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 at 4500 {
>> cell-index =<0>;
>> device_type = "serial";
>> compatible = "ns16550";
>> reg =<0x4500 0x100>;
>> clock-frequency =<0>;
>> interrupts =<0x9 0x8>;
>> interrupt-parent =< &ipic>;
>> };
>>
>> serial1: serial at 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 at 700 {
>> interrupt-controller;
>> #address-cells =<0>;
>> #interrupt-cells =<2>;
>> reg =<0x700 0x100>;
>> built-in;
>> device_type = "ipic";
>> };
>> };
>>
>> pci0: pci at 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 at 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 at 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 at 4500 {
>> cell-index =<0>;
>> device_type = "serial";
>> compatible = "ns16550";
>> reg =<0x4500 0x100>;
>> clock-frequency =<0>;
>> interrupts =<0x9 0x8>;
>> interrupt-parent =< &ipic>;
>> };
>>
>> serial1: serial at 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 at 700 {
>> interrupt-controller;
>> #address-cells =<0>;
>> #interrupt-cells =<2>;
>> reg =<0x700 0x100>;
>> built-in;
>> device_type = "ipic";
>> };
>>
>> };
>>
>> };
More information about the linux-yocto
mailing list