[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";
};
};
};