[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
