From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mlbe2k2.cs.myharris.net (mlbe2k2.cs.myharris.net [137.237.90.89]) by ozlabs.org (Postfix) with ESMTP id 39D7BDDEFA for ; Thu, 21 Aug 2008 23:27:26 +1000 (EST) Message-ID: <48AD6D3B.6030701@harris.com> Date: Thu, 21 Aug 2008 09:27:23 -0400 From: "Steven A. Falco" MIME-Version: 1.0 To: Valentine Barshak Subject: Re: Strange behavior with I2C on Sequoia board References: <48AC84D9.8050809@harris.com> <1219279463.26429.35.camel@jdub.homelinux.org> <20080820231828.3c22da08@lappy.seanm.ca> <200808211151.40499.sr@denx.de> <48AD5FD1.1090809@ru.mvista.com> In-Reply-To: <48AD5FD1.1090809@ru.mvista.com> Content-Type: text/plain; charset=ISO-8859-1 Cc: linuxppc-dev@ozlabs.org, Stefan Roese , Sean MacLennan List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Valentine Barshak wrote: > > Stefan Roese wrote: >> On Thursday 21 August 2008, Sean MacLennan wrote: >>>> That's all output from the wrapper, not the kernel. And the kernel >>>> config doesn't make a difference at all to the wrapper. I wonder if >>>> there is some weird size issue going on there or if whatever U-Boot >>>> version you are using is doing odd things... >>> Any chance something in the DTS could affect it? Maybe try commenting >>> out the second IIC controller? >> >> Yes, I2C is generally working and should make a difference in Linux >> kernel booting. >> >> It seems that your bootwrapper is somehow not copying the correct MAC >> address to the device-tree. Not sure what's going wrong here. We >> usually don't use the bootwrapper but boot the uImage directly from >> U-Boot on all 4xx systems. >> >> You might want to debug the bootwrapper code, if possible drop the >> bootwrapper and use the uImage with a newer, device-tree enabled >> U-Boot version. >> > > U-boot thinks that all memory above the first 8MB is out of reach for > the kernel and puts kernel bootargs and boardinfo structure below 8MB as > close as possible to this limit. Including the i2c driver into the > kernel increases the kernel image size. So when u-boot unpacks the > kernel to 0x400000 (Load Address: 00400000) it overwrites the kernel > parameters. So when the kernel actually starts, it reads zeros instead > of boardinfo (and mac addresses) > > The 8MB limit is set for all AMCC boards in include/configs/amcc-common.h: > #define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */ > > I think this limit is obsolete and can be moved to at least 64MB. > But you'll need to rebuild u-boot. > > Stefan, what do you think? Can we increase the default initial memory > map for AMCC boards in the next u-boot release, since u-boot has all > memory identity-mapped on ppc 44x? > Your diagnosis is correct! I changed the define from 8<<20 to 8<<21 and it now boots. Previously the parameters were at 7ffe70, and this change moved them to fffe70. I would like to switch over to using a uImage rather than the cuboot.uImage. But I have not figured out whether it is the U-boot build that converts the .dts to a .dtb or if the kernel build should do that. Also, I have not figured out whether the .dtb can remain part of the kernel image, as it is with the cuboot kernel, or if the .dtb must be a separate image in a different part of the rom. So basically, I understand the components, but I'm not yet sure how to glue it all together. Steve