From owner-freebsd-embedded@FreeBSD.ORG Tue May 22 16:15:56 2007 Return-Path: X-Original-To: freebsd-embedded@FreeBSD.org Delivered-To: freebsd-embedded@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0A16616A468 for ; Tue, 22 May 2007 16:15:56 +0000 (UTC) (envelope-from sbruno@miralink.com) Received: from plato.miralink.com (mail.miralink.com [70.103.185.20]) by mx1.freebsd.org (Postfix) with ESMTP id D0C3A13C45E for ; Tue, 22 May 2007 16:15:55 +0000 (UTC) (envelope-from sbruno@miralink.com) Received: from localhost (localhost.localdomain [127.0.0.1]) by plato.miralink.com (Postfix) with ESMTP id 3CC1E619B30; Tue, 22 May 2007 09:15:55 -0700 (PDT) Received: from plato.miralink.com ([127.0.0.1]) by localhost (plato.miralink.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 03367-09; Tue, 22 May 2007 09:15:54 -0700 (PDT) Received: from [10.47.1.6] (vpn.office.miralink.com [10.0.0.5]) by plato.miralink.com (Postfix) with ESMTP id 46CB2619AEC; Tue, 22 May 2007 09:15:51 -0700 (PDT) Message-ID: <46531726.9050907@miralink.com> Date: Tue, 22 May 2007 09:15:34 -0700 From: Sean Bruno User-Agent: Thunderbird 1.5.0.10 (X11/20070302) MIME-Version: 1.0 To: Warner Losh References: <465233FF.8060100@miralink.com> <20070522.094257.74690293.imp@bsdimp.com> In-Reply-To: <20070522.094257.74690293.imp@bsdimp.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-DSPAM-Result: Innocent X-DSPAM-Processed: Tue May 22 09:15:54 2007 X-DSPAM-Confidence: 0.9997 X-DSPAM-Probability: 0.0000 X-DSPAM-Signature: 4653173a233955715714951 X-DSPAM-Factors: 27, X-Virus-Scanned: amavisd-new at X-Spam-Status: No, score=-4.499 tagged_above=-10 required=6.6 autolearn=ham tests=[ALL_TRUSTED=-1.8, BAYES_00=-2.599, DSPAM_HAM=-0.1] X-Spam-Score: -4.499 X-Spam-Level: Cc: freebsd-embedded@FreeBSD.org Subject: Re: [nanobsd] Calculation of new flash image size X-BeenThere: freebsd-embedded@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Dedicated and Embedded Systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 May 2007 16:15:56 -0000 Warner Losh wrote: > From: Sean Bruno > Subject: [nanobsd] Calculation of new flash image size > Date: Mon, 21 May 2007 17:06:23 -0700 > > >> If the manufacturer doesn't provide me with the specific values for >> NANO_SECTS, NANO_HEADS and NANO_MEDIASIZE, I assume that I would be able >> to use the output of fdisk to calculate it for me: >> >> fmybox# fdisk /dev/ad0 >> ******* Working on device /dev/ad0 ******* >> parameters extracted from in-core disklabel are: >> cylinders=993 heads=16 sectors/track=63 (1008 blks/cyl) >> >> parameters to be used for BIOS calculations are: >> cylinders=993 heads=16 sectors/track=63 (1008 blks/cyl) >> >> >> So in this case, NANO_SECTS=63, NANO_HEADS=16 and NANO_MEDIASIZE=(993 * >> 16 * 63)=1000944? >> >> I added the following to Flashdevices.sub: >> >> dom512m) >> # Source: sbruno@miralink.com >> NANO_MEDIASIZE=`expr 512483328 / 512` >> NANO_HEADS=16 >> NANO_SECTS=63 >> ;; >> > > The flashdevices.sub database is lame. It is a misfeature to require > it. > > >> If I do this for my new Transcend module, the system won't boot properly >> and freezes on the BTX boot loader startup. >> >> What am I doing wrong here? >> > > There's a fundamental flaw in nanobsd. That is that it requires one > to know the geometry of the target device. fdisk won't tell you this > when you are using a scsi card reader, so you can't find it out > automatically. This is because the scsi layer uses a fake geometry > here (I can't recall if it is FreeBSD software, or the card reader). > Nanobsd is supposed to use 'packet mode' so that geometry doesn't > matter. You should make sure that the CF/disk created is in packet > mode. > This is an IDE flash device, not a CF card or other memory stick-ish thing. > If you have a card that you've re-fdisked since you bought it, dd > about 30k of zeros to the front of it from /dev/zero. Then insert it > into a camera that can do the formatting of flash cards. Put that > back into your freebsd box and run fdisk again and see what the > partitions look like. > After wiping the flash disk, fdisk reports the same values. The only item of note is the "Warning" section. mybox# fdisk /dev/ad0 ******* Working on device /dev/ad0 ******* parameters extracted from in-core disklabel are: cylinders=993 heads=16 sectors/track=63 (1008 blks/cyl) parameters to be used for BIOS calculations are: cylinders=993 heads=16 sectors/track=63 (1008 blks/cyl) fdisk: invalid fdisk partition table found Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 63, size 1000881 (488 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 1; end: cyl 992/ head 15/ sector 63 The data for partition 2 is: The data for partition 3 is: The data for partition 4 is: I didn't retry as the values retrieved here are the same as I previously had used. Sean