latest mtd changes broke collie
Pavel Machek
pavel at suse.cz
Thu Nov 10 17:41:58 EST 2005
Hi!
> > Well, how do I found out? I tried switching to CFI, and it will not
> > boot (unable to mount root...). No mtd-related messages as far as I
> > can see. There's quite a lot of mtd-related config options, I set them
> > like this:
>
> If the old sharp driver had even a _chance_ of working, then you
> presumably have four 8-bit flash chips laid out on a 32-bit bus, and
> those chips are compatible with the Intel command set.
>
> You can CONFIG_MTD_JEDECPROBE, and you want CONFIG_MTD_MAP_BANK_WIDTH=4,
> CONFIG_MTD_CFI_I4, CONFIG_MTD_CFI_INTELEXT.
>
> Check that your chips are listed in the table in jedec_probe.c and turn
> on all the debugging in jedec_probe.c
With these hacks, I'm able to mount flash at least read-only. On
attempt to remount read-write, I get
"Write error in obliterating obsoleted node at 0x00bc0000: -30
...
Erase at 0x00c00000 failed immediately: -EROFS. Is the sector locked?"
Is it good news?
Pavel
diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c
--- a/arch/arm/mach-sa1100/collie.c
+++ b/arch/arm/mach-sa1100/collie.c
@@ -208,7 +208,7 @@ static void collie_set_vpp(int vpp)
}
static struct flash_platform_data collie_flash_data = {
- .map_name = "sharp",
+ .map_name = "jedec_probe",
.set_vpp = collie_set_vpp,
.parts = collie_partitions,
.nr_parts = ARRAY_SIZE(collie_partitions),
diff --git a/drivers/mtd/chips/jedec_probe.c b/drivers/mtd/chips/jedec_probe.c
--- a/drivers/mtd/chips/jedec_probe.c
+++ b/drivers/mtd/chips/jedec_probe.c
@@ -25,6 +25,8 @@
#include <linux/mtd/cfi.h>
#include <linux/mtd/gen_probe.h>
+#define DEBUG(a, b...) printk(b)
+
/* Manufacturers */
#define MANUFACTURER_AMD 0x0001
#define MANUFACTURER_ATMEL 0x001f
@@ -271,6 +273,19 @@ struct amd_flash_info {
*/
static const struct amd_flash_info jedec_table[] = {
{
+ .mfr_id = 0x00b0,
+ .dev_id = 0x00b0,
+ .name = "Collie hack",
+ .uaddr = {
+ [0] = MTD_UADDR_UNNECESSARY, /* x8 */
+ },
+ .DevSize = SIZE_4MiB,
+ .CmdSet = P_ID_INTEL_EXT,
+ .NumEraseRegions= 1,
+ .regions = {
+ ERASEINFO(0x10000,64),
+ }
+ }, {
.mfr_id = MANUFACTURER_AMD,
.dev_id = AM29F032B,
.name = "AMD AM29F032B",
--
Thanks, Sharp!
More information about the linux-mtd
mailing list