Skip to content
Snippets Groups Projects
  • Alessandro Rubini's avatar
    partitions: compatible change, and update docs · 807f5672
    Alessandro Rubini authored
    
    This changes partitions, mainly adding a kernel-visible mapping of
    what we ha in dataflash.  NAND changes are compatible, as only empty
    space is used differently.
    
    This also includes a new barebox.bin, that you can just write
    to /dev/mtd3 after booting the new kernel.
    
    Documentation is updated to reflect these partitions, but there also
    old leftovers that are fixed in this same commit.
    
    Signed-off-by: default avatarAlessandro Rubini <rubini@gnudd.com>
    807f5672
0009-pm9g45-init-for-wrs-move-environment-for-the-UBI-mov.patch 1.90 KiB
From 685747bfa8bc8a41f5e47077a67c0db18b7561c7 Mon Sep 17 00:00:00 2001
From: Alessandro Rubini <rubini@gnudd.com>
Date: Thu, 19 Jun 2014 11:34:24 +0200
Subject: [PATCH 9/9] pm9g45/init (for wrs): move environment for the UBI move

This moves environment to the first meg of nand so we can ubify the
rest of the nand memory.  Also, prepare for dataflash placement, even
if it doesn't work yet.

Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
---
 arch/arm/boards/pm9g45/init.c |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/arch/arm/boards/pm9g45/init.c b/arch/arm/boards/pm9g45/init.c
index 1f7cc1c..d4cea02 100644
--- a/arch/arm/boards/pm9g45/init.c
+++ b/arch/arm/boards/pm9g45/init.c
@@ -189,9 +189,29 @@ static int pm9g45_devices_init(void)
 	pm9g45_add_device_eth();
 	pm9g45_add_device_usbh();
 
-	//device, offset, size, flag, name
-	devfs_add_partition("nand0", 0x40000, 0x40000, DEVFS_PARTITION_FIXED, "env_raw");
-	dev_add_bb_dev("env_raw", "env0");
+	if (0) {
+		/*
+		 * This is where we want to go, but dataflash access is
+		 * currently not working, so we can't saveenv in there
+		 */
+		devfs_add_partition("dataflash0", /* after at91boot + bbox */
+				    0x8400 + 0x84000, 0x8400,
+				    DEVFS_PARTITION_FIXED, "env0");
+	} else {
+		/*
+		 * This is similar to the previous setup, but we'd better
+		 * use the first meg for the environment. This gives us
+		 * ample space for bad blocks, and a known place (0) with
+		 * an easy-to-remember size (1M).  Previous partitioning left
+		 * the first meg unused, so this is compatible with the
+		 * v3.x layout of the partitions
+		 */
+		devfs_add_partition("nand0", /* 1M at the begginning */
+				    0, 1<<20,
+				    DEVFS_PARTITION_FIXED, "env_raw");
+		/* This is the bad-block-aware mirror of env_raw */
+		dev_add_bb_dev("env_raw", "env0");
+	}
 
 	armlinux_set_architecture(MACH_TYPE_PM9G45);
 
-- 
1.7.7.2