From wpdster@gmail.com Tue Jun 14 21:01:34 2011
Received: from mail-fx0-f44.google.com ([209.85.161.44])
	by stoneboat.aleph1.co.uk with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16)
	(Exim 4.69) (envelope-from <wpdster@gmail.com>) id 1QWZnk-0001B4-4A
	for balloon@balloonboard.org; Tue, 14 Jun 2011 21:01:34 +0100
Received: by fxm15 with SMTP id 15so4626421fxm.31
	for <balloon@balloonboard.org>; Tue, 14 Jun 2011 13:01:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:content-type;
	bh=ATEadVIjNrTHxY5NSkI7ByGXUHaBD/NKukLz1DHcJnE=;
	b=nuMVY7VOydaiFKCwoGZqO9HI1Y/7xpyJ9BLD4UgOopajEMCNd80f+/PsILUg1dokQH
	X+vQpWxf/0ebMC5aWoGMBGIt94Cyvxe8BBQZaK06Jd1enjH6qu4hDbX28PdNLNZDOpXz
	DkEnEH5bxy87+LFhqFPSKbkzKGmZMirJzSlzc=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:content-type;
	b=SFj5HddzZ6YXAFIyv3nua/PJJHIE+9/oXqcGcNrTnQxhepoT3SJc+j5E/TTuibAn5Z
	HWsoonEURBfgMmLEobyR16BaleKGxBg8KKhDduRp2S2AhBRBXccTC3Qf1o1is68tKv+a
	cqm+VDwo6f2msooBz+ZYJEntYuP9+4d4L4Rwo=
Received: by 10.223.53.85 with SMTP id l21mr1728627fag.26.1308081682113; Tue,
	14 Jun 2011 13:01:22 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.96.137 with HTTP; Tue, 14 Jun 2011 13:01:02 -0700 (PDT)
In-Reply-To: <BANLkTim_M5zZ3QRHn5-TeiowLffNtgVBXA@mail.gmail.com>
References: <BANLkTim_M5zZ3QRHn5-TeiowLffNtgVBXA@mail.gmail.com>
From: Patrick Doyle <wpdster@gmail.com>
Date: Tue, 14 Jun 2011 16:01:02 -0400
Message-ID: <BANLkTik6bfufQb3YbsFTpGqeFq6vJfHRUQ@mail.gmail.com>
To: balloon@balloonboard.org
Content-Type: multipart/mixed; boundary=00151747885cffe6d904a5b17f87
X-SA-Exim-Connect-IP: 209.85.161.44
X-SA-Exim-Mail-From: wpdster@gmail.com
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on
	stoneboat.aleph1.co.uk
X-Spam-Level: 
X-Spam-Status: No, score=-3.7 required=4.5 tests=AWL,BAYES_00,
	RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.2.5
X-SA-Exim-Version: 4.2.1 (built Wed, 25 Jun 2008 17:14:11 +0000)
X-SA-Exim-Scanned: Yes (on stoneboat.aleph1.co.uk)
Subject: Re: [Balloon] Enabling NOR flash
X-BeenThere: balloon@balloonboard.org
X-Mailman-Version: 2.1.11
Precedence: list
List-Id: Balloon List <balloon.balloonboard.org>
List-Unsubscribe: <http://balloonboard.org/mailman/options/balloon>,
	<mailto:balloon-request@balloonboard.org?subject=unsubscribe>
List-Archive: <http://balloonboard.org/lurker/list/balloon.html>
List-Post: <mailto:balloon@balloonboard.org>
List-Help: <mailto:balloon-request@balloonboard.org?subject=help>
List-Subscribe: <http://balloonboard.org/mailman/listinfo/balloon>,
	<mailto:balloon-request@balloonboard.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Jun 2011 20:01:34 -0000

--00151747885cffe6d904a5b17f87
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On Tue, Jun 14, 2011 at 8:21 AM, Patrick Doyle <wpdster@gmail.com> wrote:
> OK, I've got 3 options here, and I really need to move on from this.
>
> 1) Enable CONFIG_MTD_PHYSMAP and live with the change in mtd blocks.
> Change the linuxargs bootldr param to point to the new root partition
> (in NAND) and get on with life.
>
> 2) Apply the ridiculous ugly, WRONG WAY TO DO THIS, patch (see
> attached) which preserves the partition order by virtue of calling the
> platform specific 'balloon3_nor_init()' procedure (defined in
> arch/arm/pxa-270/balloon3.c) from the NAND driver code procedure
> 'balloon3_nand_init()' (defined in drivers/mtd/nand/balloon3.c.
>
> 3) Arrange somehow for the NAND partition to be probed, recognized,
> and loaded from within balloon3_init(). =A0I'm having trouble figuring
> out how to make this work. =A0Simply calling 'balloon3_nand_init()' (the
> one defined in drivers/mtd/nand/balloon.c, not the confusingly
> identically named one from within baloon3.c) doesn't work, probably
> because other stuff has not yet been initialized.
>
Err.... this is somewhat embaressing...

It turns out that the solution is really quite simple... just enable
CONFIG_MTD_PHYSMAP as a loadable module rather than as a compiled-in
module (which is what I started with).  The NAND flash gets assigned
to partitions mtd0 and mtd1 first; then, once the root fs is mounted
(from mtd1), we can simply insmod the physmap.ko file to gain access
to the NOR flash.

In fact, through some magic I don't fully comprehend yet, the
physmap.ko module gets automatically loaded anyway during the boot
process.

Attached is my patch that defines the partitions to match those
defined in my bootldr.  I am a little concerned that the partitions
scheme in bootldr could change and my patch would know nothing about
that, but I don't really know how to synchronize the two partition
schemes otherwise.  I've done my best to make this as safe as possible
-- requiring CONFIG options to enable writes to the partitions, so
hopefully this should be pretty benign.

--wpd

--00151747885cffe6d904a5b17f87
Content-Type: text/x-patch; charset=US-ASCII; 
	name="0001-Added-support-for-NOR-FLASH-bootldr-partitions.patch"
Content-Disposition: attachment; 
	filename="0001-Added-support-for-NOR-FLASH-bootldr-partitions.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_goxa16y41

RnJvbSBmNmFhZjQxZDFiMGM3NzAwMDBkYzRmNmE1ZjliYjMwMzFkNjBhYmMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXRyaWNrIERveWxlIDx3cGRAbWl0LmVkdT4KRGF0ZTogVHVl
LCAxNCBKdW4gMjAxMSAxNTo0Njo1NCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZGVkIHN1cHBv
cnQgZm9yIE5PUiBGTEFTSCBib290bGRyIHBhcnRpdGlvbnMKCi0tLQogcGFja2FnZS9rZXJuZWwv
cGF0Y2hlcy8yLjYuMzcuNi9iYWxsb29uMy1ub3IucGF0Y2ggfCAgIDk1ICsrKysrKysrKysrKysr
KysrKysrCiAuLi4vcGF0Y2hlcy8yLjYuMzcuNi9zZXJpZXMtYmFsbG9vbjMuZGVmYXVsdCAgICAg
ICB8ICAgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9u
cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHBhY2thZ2Uva2VybmVsL3BhdGNoZXMvMi42LjM3LjYv
YmFsbG9vbjMtbm9yLnBhdGNoCgpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvcGF0Y2hlcy8y
LjYuMzcuNi9iYWxsb29uMy1ub3IucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9wYXRjaGVzLzIuNi4z
Ny42L2JhbGxvb24zLW5vci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kZmM3NTgzCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZS9rZXJuZWwvcGF0Y2hlcy8yLjYu
MzcuNi9iYWxsb29uMy1ub3IucGF0Y2gKQEAgLTAsMCArMSw5NSBAQAorSW5kZXg6IGxpbnV4LTIu
Ni4zNy42L2FyY2gvYXJtL21hY2gtcHhhL2JhbGxvb24zLmMKKz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBsaW51
eC0yLjYuMzcuNi5vcmlnL2FyY2gvYXJtL21hY2gtcHhhL2JhbGxvb24zLmMJMjAxMS0wNi0xNCAx
NTowNToyMy4wMDAwMDAwMDAgLTA0MDAKKysrKyBsaW51eC0yLjYuMzcuNi9hcmNoL2FybS9tYWNo
LXB4YS9iYWxsb29uMy5jCTIwMTEtMDYtMTQgMTU6NDU6MTQuMDAwMDAwMDAwIC0wNDAwCitAQCAt
MTI5LDEwICsxMjksMzcgQEAKKyAjaWYgZGVmaW5lZChDT05GSUdfTVREX1BIWVNNQVApIHx8IGRl
ZmluZWQoQ09ORklHX01URF9QSFlTTUFQX01PRFVMRSkKKyBzdGF0aWMgc3RydWN0IG10ZF9wYXJ0
aXRpb24gYmFsbG9vbjNfbm9yX3BhcnRpdGlvbnNbXSA9IHsKKyAJeworLQkJLm5hbWUJCT0gIkZs
YXNoIiwKKysJCS5uYW1lCQk9ICJib290bGRyIiwKKyAJCS5vZmZzZXQJCT0gMHgwMDAwMDAwMCwK
Ky0JCS5zaXplCQk9IE1URFBBUlRfU0laX0ZVTEwsCistCX0KKysJCS5zaXplCQk9IDB4MDAwNDAw
MDAsCisrI2lmbmRlZiBDT05GSUdfTVREX1BIWVNNQVBfQkFMTE9PTjNfQk9PVExEUl9SVworKyAg
ICAgICAgICAgICAgICAubWFza19mbGFncyAgICAgPSBNVERfV1JJVEVBQkxFLAorKyNlbmRpZgor
Kwl9LAorKwl7CisrCQkubmFtZQkJPSAicGFyYW1zIiwKKysJCS5vZmZzZXQJCT0gMHgwMDA0MDAw
MCwKKysJCS5zaXplCQk9IDB4MDAwNDAwMDAsCisrI2lmbmRlZiBDT05GSUdfTVREX1BIWVNNQVBf
QkFMTE9PTjNfUEFSQU1TX1JXCisrICAgICAgICAgICAgICAgIC5tYXNrX2ZsYWdzICAgICA9IE1U
RF9XUklURUFCTEUsCisrI2VuZGlmCisrCX0sCisrCXsKKysJCS5uYW1lCQk9ICJmcGdhIiwKKysJ
CS5vZmZzZXQJCT0gMHgwMDEwMDAwMCwKKysJCS5zaXplCQk9IDB4MDAxMDAwMDAsCisrI2lmbmRl
ZiBDT05GSUdfTVREX1BIWVNNQVBfQkFMTE9PTjNfRlBHQV9SVworKyAgICAgICAgICAgICAgICAu
bWFza19mbGFncyAgICAgPSBNVERfV1JJVEVBQkxFLAorKyNlbmRpZgorKwl9LAorKwl7CisrCQku
bmFtZQkJPSAia2VybmVsIiwKKysJCS5vZmZzZXQJCT0gMHgwMDIwMDAwMCwKKysJCS5zaXplCQk9
IDB4MDA0MDAwMDAsCisrI2lmbmRlZiBDT05GSUdfTVREX1BIWVNNQVBfQkFMTE9PTjNfS0VSTkVM
X1JXCisrICAgICAgICAgICAgICAgIC5tYXNrX2ZsYWdzICAgICA9IE1URF9XUklURUFCTEUsCisr
I2VuZGlmCisrCX0sCisgfTsKKyAKKyBzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSBi
YWxsb29uM19mbGFzaF9kYXRhW10gPSB7CitJbmRleDogbGludXgtMi42LjM3LjYvZHJpdmVycy9t
dGQvbWFwcy9LY29uZmlnCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbGludXgtMi42LjM3LjYub3JpZy9kcml2
ZXJzL210ZC9tYXBzL0tjb25maWcJMjAxMS0wNi0xNCAxNTowOTo1OS4wMDAwMDAwMDAgLTA0MDAK
KysrKyBsaW51eC0yLjYuMzcuNi9kcml2ZXJzL210ZC9tYXBzL0tjb25maWcJMjAxMS0wNi0xNCAx
NTo0NTozMi4wMDAwMDAwMDAgLTA0MDAKK0BAIC0yMSw2ICsyMSw0NSBAQAorIAkgIFRvIGNvbXBp
bGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQorIAkgIG1vZHVs
ZSB3aWxsIGJlIGNhbGxlZCBwaHlzbWFwLgorIAorK2NvbmZpZyBNVERfUEhZU01BUF9CQUxMT09O
M19CT09UTERSX1JXCisrICAgICAgICBib29sICJXcml0YWJsZSBCYWxsb29uMyBNVEQgYm9vdGxk
ciBwYXJ0aXRpb24iCisrCWRlZmF1bHQgZmFsc2UKKysJZGVwZW5kcyBvbiBNQUNIX0JBTExPT04z
ICYmIE1URF9QSFlTTUFQCisrCWhlbHAKKysJICBCeSBkZWZhdWx0LCB0aGUgYm9vdGxkciBNVEQg
cGFydGlvbiBpcyByZWFkb25seS4gIEVuYWJsaW5nIHRoaXMKKysJICBvcHRpb24gd2lsbCBtYWtl
IHRoYXQgcGFydGl0aW9uIFJXIGFuZCBhbGxvdyB5b3VyIGtlcm5lbCB0bworKwkgIG92ZXJ3cml0
ZSB0aGUgYm9vdGxvYWRlciwgcG9zc2libHkgd2l0aCBkaXNhc3Ryb3VzIHJlc3VsdHMuCisrCisr
Y29uZmlnIE1URF9QSFlTTUFQX0JBTExPT04zX1BBUkFNU19SVworKyAgICAgICAgYm9vbCAiV3Jp
dGFibGUgQmFsbG9vbjMgTVREIHBhcmFtcyBwYXJ0aXRpb24iCisrCWRlZmF1bHQgZmFsc2UKKysJ
ZGVwZW5kcyBvbiBNQUNIX0JBTExPT04zICYmIE1URF9QSFlTTUFQCisrCWhlbHAKKysJICBCeSBk
ZWZhdWx0LCB0aGUgcGFyYW1zIE1URCBwYXJ0aW9uIGlzIHJlYWRvbmx5LiAgRW5hYmxpbmcKKysJ
ICB0aGlzIG9wdGlvbiB3aWxsIG1ha2UgdGhhdCBwYXJ0aXRpb24gUlcgYW5kIGFsbG93IHlvdXIK
KysJICBrZXJuZWwgdG8gb3ZlcndyaXRlIHRoZSBib290bG9hZGVyIHBhcmFtZXRlcnMsIHBvc3Np
Ymx5IHdpdGgKKysJICBkaXNhc3Rlcm91cyByZXN1bHRzLgorKworK2NvbmZpZyBNVERfUEhZU01B
UF9CQUxMT09OM19GUEdBX1JXCisrICAgICAgICBib29sICJXcml0YWJsZSBCYWxsb29uMyBNVEQg
RlBHQSBwYXJ0aXRpb24iCisrCWRlZmF1bHQgZmFsc2UKKysJZGVwZW5kcyBvbiBNQUNIX0JBTExP
T04zICYmIE1URF9QSFlTTUFQCisrCWhlbHAKKysJICBCeSBkZWZhdWx0LCB0aGUgRlBHQSBNVEQg
cGFydGlvbiBpcyByZWFkb25seS4gIEVuYWJsaW5nCisrCSAgdGhpcyBvcHRpb24gd2lsbCBtYWtl
IHRoYXQgcGFydGl0aW9uIFJXIGFuZCBhbGxvdyB5b3VyCisrCSAga2VybmVsIHRvIG92ZXJ3cml0
ZSB0aGUgZnBnYS9jcGxkIGltYWdlLCBwb3NzaWJseSB3aXRoCisrCSAgZGlzYXN0cm91cyByZXN1
bHRzLgorKworK2NvbmZpZyBNVERfUEhZU01BUF9CQUxMT09OM19LRVJORUxfUlcKKysgICAgICAg
IGJvb2wgIldyaXRhYmxlIEJhbGxvb24zIE1URCByZXNjdWUga2VybmVsIHBhcnRpdGlvbiIKKysJ
ZGVmYXVsdCBmYWxzZQorKwlkZXBlbmRzIG9uIE1BQ0hfQkFMTE9PTjMgJiYgTVREX1BIWVNNQVAK
KysJaGVscAorKwkgIEJ5IGRlZmF1bHQsIHRoZSByZXNjdWUga2VybmVsIE1URCBwYXJ0aW9uIGlz
IHJlYWRvbmx5LiAgRW5hYmxpbmcKKysJICB0aGlzIG9wdGlvbiB3aWxsIG1ha2UgdGhhdCBwYXJ0
aXRpb24gUlcgYW5kIGFsbG93IHlvdXIKKysJICBrZXJuZWwgdG8gb3ZlcndyaXRlIHRoZSByZXNj
dWUga2VybmVsLCBwb3NzaWJseSB3aXRoCisrCSAgZGlzYXN0cm91cyByZXN1bHRzLgorKworIGNv
bmZpZyBNVERfUEhZU01BUF9DT01QQVQKKyAJYm9vbCAiUGh5c21hcCBjb21wYXQgc3VwcG9ydCIK
KyAJZGVwZW5kcyBvbiBNVERfUEhZU01BUApkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvcGF0
Y2hlcy8yLjYuMzcuNi9zZXJpZXMtYmFsbG9vbjMuZGVmYXVsdCBiL3BhY2thZ2Uva2VybmVsL3Bh
dGNoZXMvMi42LjM3LjYvc2VyaWVzLWJhbGxvb24zLmRlZmF1bHQKaW5kZXggMDkxYTI2Zi4uMDY4
YWFlNSAxMDA2NDQKLS0tIGEvcGFja2FnZS9rZXJuZWwvcGF0Y2hlcy8yLjYuMzcuNi9zZXJpZXMt
YmFsbG9vbjMuZGVmYXVsdAorKysgYi9wYWNrYWdlL2tlcm5lbC9wYXRjaGVzLzIuNi4zNy42L3Nl
cmllcy1iYWxsb29uMy5kZWZhdWx0CkBAIC00LDMgKzQsNCBAQCBiYWxsb29uMy5wYXRjaAogYmFs
bG9vbjMtY3B1ZnJlcS5wYXRjaAogYmFsbG9vbjMtYWM5Ny5wYXRjaAogYmFsbG9vbjMtbmFuZC5w
YXRjaCAtcDAKK2JhbGxvb24zLW5vci5wYXRjaAotLSAKMS43LjIuNQoK
--00151747885cffe6d904a5b17f87--

