From owner-freebsd-arm@FreeBSD.ORG Thu Mar 22 15:04:23 2007 Return-Path: X-Original-To: freebsd-arm@freebsd.org Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BEB6816A405 for ; Thu, 22 Mar 2007 15:04:23 +0000 (UTC) (envelope-from sam@errno.com) Received: from ebb.errno.com (ebb.errno.com [69.12.149.25]) by mx1.freebsd.org (Postfix) with ESMTP id 977A713C487 for ; Thu, 22 Mar 2007 15:04:23 +0000 (UTC) (envelope-from sam@errno.com) Received: from [10.0.0.248] (trouble.errno.com [10.0.0.248]) (authenticated bits=0) by ebb.errno.com (8.13.6/8.12.6) with ESMTP id l2MF4LQG026404 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 22 Mar 2007 08:04:23 -0700 (PDT) (envelope-from sam@errno.com) Message-ID: <46029AF5.20903@errno.com> Date: Thu, 22 Mar 2007 08:04:21 -0700 From: Sam Leffler User-Agent: Thunderbird 1.5.0.9 (X11/20070208) MIME-Version: 1.0 To: John Hay References: <20070322080335.GA52745@zibbi.meraka.csir.co.za> In-Reply-To: <20070322080335.GA52745@zibbi.meraka.csir.co.za> X-Enigmail-Version: 0.94.0.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: freebsd-arm@freebsd.org Subject: Re: progress on the adi pronghorn metro board X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Mar 2007 15:04:23 -0000 John Hay wrote: > Hi Guys, > > With this patch I am at the stage where both an Avila 2348-4 and the > ADI Pronghorn Metro boot from the same kernel binary. The "main" stuff > is working, ie. console, ethernet and mini-pci slots. The iic bus on > the Avila is still working. The one for the Pronghorn is configured, > but I must still write a driver for their max6652 temperature/voltage > sensor before I will know if it is really working. > > The biggest difference between the 2 boards are in the 16 GPIO pins. > I think there is only 1 pin that have the same function. :-/ > > So what I did was to create a structure and then have 2 instances of > it, one with Avila values in it and one with Pronghorn values. Then > early in the boot phase, the board type gets detected and a pointer > gets set to the relevant structure. All the drivers then use this > pointer to get the correct values. The efect is that most of the > drivers needs no checks for the different boards. > > What I would like to know is, if this approach is acceptable? Should > I use different files to put the stuff in? > > My code is not finished yet, but I thought that I would like to get > some feedback. I still have to replace some of the numbers in the > structure with defined values. I would also like to try and really > probe the iic devices and not just assume that they are there. I'm not sure whether it makes sense to support different boards in a single binary (variations on a board design yes). My experience is that embedded applications are often cycle starved and giving up cycles for flexibility like this is ok only for devel/bringup. I suspect compile-time configuration is preferable. However if this flexibility is desirable it might be better to use ivar's hung off the nexus. Sam