From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Mon, 14 Jun 2010 13:27:45 +0200 Subject: [U-Boot] Linux kernel hang with FDT changes In-Reply-To: <559139.59434.qm@web46109.mail.sp1.yahoo.com> References: <559139.59434.qm@web46109.mail.sp1.yahoo.com> Message-ID: <201006141327.45384.sr@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Ronny, On Monday 14 June 2010 12:00:38 Ronny D wrote: > I am using customized ppc440 based board. BTW: Do you plan to send the U-Boot changes to the mailing list and some time? > We have created a .dtb file, u-boot should not update the file because of > that we have added following macro in config file > #define CONFIG_OF_LIBFDT 1 > #undef CONFIG_OF_BOARD_SETUP > > With the above change kernel code gets hang with following log: > > > Movable zone start PFN for each node > early_node_map[1] active PFN ranges > 0: 0x00000000 -> 0x00030000 > MMU: Allocated 1088 bytes of context maps for 255 contexts > Built 1 zonelists in Zone order, mobility grouping on. Total pages: 195072 > Kernel command line: > PID hash table entries: 4096 (order: 12, 16384 bytes) > Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) > Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) > Memory: 755584k/786432k available (1860k kernel code, 30508k reserved, 112k > data , 60k bss, 116k init) > Kernel virtual memory layout: > * 0xffffe000..0xfffff000 : fixmap > * 0xfde00000..0xfe000000 : consistent mem > * 0xfddfe000..0xfde00000 : early ioremap > * 0xf1000000..0xfddfe000 : vmalloc & ioremap > SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 > NR_IRQS:512 > UIC0 (32 IRQ sources) at DCR 0x20 > UIC1 (32 IRQ sources) at DCR 0x30 > UIC1 (32 IRQ sources) at DCR 0x60 > > > > > When we debug the u-boot code by added the following flag > #define CONFIG_OF_BOARD_SETUP 1 > Kernel works fine. > > Is there any dependency of CONFIG_OF_BOARD_SETUP flag for .dtb file? With CONFIG_OF_BOARD_SETUP defined, the function ft_board_setup() will be called to modify the dtb before passing it to the Linux kernel. I suggest you check the code to see, what exactly gets changed/patched by this routine. Cheers, Stefan -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de