* [PATCH 1/4] OMAP: Resubmitting support for 2K page nand
@ 2007-09-19 21:21 sshahrom
2007-11-28 21:59 ` Tony Lindgren
0 siblings, 1 reply; 3+ messages in thread
From: sshahrom @ 2007-09-19 21:21 UTC (permalink / raw)
To: linux-omap-open-source; +Cc: sshahrom
Hello,
Following patches would add support for 2k Page nand with Enabled HW ECC on omap2430 v4.0. and v5. It has been Tested with Micron Nand.
The Patch is against 2.6.23 linux-omap.git tree. As Always all the comments are welcomed.
Regards,
-Shahrom
Signed-off-by: Shahrom Sharif-Kashani <sshahrom <at> micron.com>
:100644 100644 1e8492a... 0000000... M arch/arm/mach-omap2/board-2430sdp-flash.c
diff --git a/arch/arm/mach-omap2/board-2430sdp-flash.c b/arch/arm/mach-omap2/board-2430sdp-flash.c
index 1e8492a..b534a07 100644
--- a/arch/arm/mach-omap2/board-2430sdp-flash.c
+++ b/arch/arm/mach-omap2/board-2430sdp-flash.c
@@ -20,10 +20,64 @@
#include <asm/arch/onenand.h>
#include <asm/arch/board.h>
#include <asm/arch/gpmc.h>
+#include <asm/arch/nand.h>
#define ONENAND_MAP 0x20000000
#define GPMC_OFF_CONFIG1_0 0x60
+enum fstype {
+ NAND = 0,
+ NOR,
+ ONENAND,
+ UNKNOWN = -1
+};
+
+static enum fstype flash_type = NAND;
+
+static struct mtd_partition nand_partitions[] = {
+ {
+ .name = "X-Loader",
+ .offset = 0,
+ .size = 4*(64*2048), /* 0-3 blks reserved.
+ Mandated by ROM code */
+ .mask_flags = MTD_WRITEABLE /* force read-only */
+ },
+ {
+ .name = "U-Boot",
+ .offset = MTDPART_OFS_APPEND,
+ .size = 4*(64*2048),
+ .mask_flags = MTD_WRITEABLE /* force read-only */
+ },
+ {
+ .name = "U-Boot Environment",
+ .offset = MTDPART_OFS_APPEND,
+ .size = 2*(64*2048),
+ },
+ {
+ .name = "Kernel",
+ .offset = MTDPART_OFS_APPEND,
+ .size = 32*(64*2048), /* 4*1M */
+ },
+ {
+ .name = "File System",
+ .offset = MTDPART_OFS_APPEND,
+ .size = MTDPART_SIZ_FULL,
+ },
+};
+static struct omap_nand_platform_data sdp_nand_data = {
+ .parts = nand_partitions,
+ .nr_parts = ARRAY_SIZE(nand_partitions),
+ .dma_channel = -1, /* disable DMA in OMAP OneNAND driver */
+};
+
+static struct platform_device sdp_nand_device = {
+ .name = "omap2-nand",
+ .id = -1,
+ .dev = {
+ .platform_data = &sdp_nand_data,
+ },
+};
+
static struct mtd_partition onenand_partitions[] = {
{
.name = "(OneNAND)X-Loader",
@@ -72,7 +126,7 @@ static struct platform_device sdp_onenan
void __init sdp2430_flash_init(void)
{
unsigned long gpmc_base_add, gpmc_cs_base_add;
- unsigned char cs=0;
+ unsigned char cs = 0;
gpmc_base_add = OMAP243X_GPMC_VIRT;
while (cs < GPMC_CS_NUM) {
@@ -82,29 +136,50 @@ void __init sdp2430_flash_init(void)
gpmc_cs_base_add =
(gpmc_base_add + GPMC_OFF_CONFIG1_0 + (cs*0x30));
- /* xloader/Uboot would have programmed the oneNAND
+ /* xloader/Uboot would have programmed the NAND/oneNAND
* base address for us This is a ugly hack. The proper
* way of doing this is to pass the setup of u-boot up
* to kernel using kernel params - something on the
- * lines of machineID. Check if oneNAND is
+ * lines of machineID. Check if Nand/oneNAND is
* configured */
+ ret = __raw_readl(gpmc_cs_base_add + GPMC_CS_CONFIG1);
+ if ((ret & 0xC00) == (0x800)) {
+ /* Found it!! */
+ printk(KERN_INFO "NAND: Found NAND on CS %d \n", cs);
+ flash_type = NAND;
+ break;
+ }
ret = __raw_readl(gpmc_cs_base_add + GPMC_CS_CONFIG7);
if ((ret & 0x3F) == (ONENAND_MAP >> 24)) {
/* Found it!! */
+ flash_type = ONENAND;
break;
}
cs++;
}
if (cs >= GPMC_CS_NUM) {
- printk("OneNAND: Unable to find oneNAND configuration in GPMC "
- " - not registering.\n");
+ printk(KERN_INFO "MTD: Unable to find MTD configuration in "
+ "GPMC - not registering.\n");
+ return;
+ }
+
+ if (flash_type == NAND) {
+ sdp_nand_data.cs = cs;
+ sdp_nand_data.gpmc_cs_baseaddr = (void *) gpmc_cs_base_add;
+ sdp_nand_data.gpmc_baseaddr = (void *) gpmc_base_add;
+
+ if (platform_device_register(&sdp_nand_device) < 0) {
+ printk(KERN_ERR "Unable to register NAND device\n");
return;
}
+ }
+ if (flash_type == ONENAND) {
sdp_onenand_data.cs = cs;
if (platform_device_register(&sdp_onenand_device) < 0) {
printk(KERN_ERR "Unable to register OneNAND device\n");
return;
}
+ }
}
Signed-off-by: Shahrom Sharif-Kashani <sshahrom@micron.com>
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/4] OMAP: Resubmitting support for 2K page nand
2007-09-19 21:21 [PATCH 1/4] OMAP: Resubmitting support for 2K page nand sshahrom
@ 2007-11-28 21:59 ` Tony Lindgren
2007-11-29 2:34 ` sshahrom
0 siblings, 1 reply; 3+ messages in thread
From: Tony Lindgren @ 2007-11-28 21:59 UTC (permalink / raw)
To: sshahrom; +Cc: linux-omap-open-source
Hi,
* sshahrom@micron.com <sshahrom@micron.com> [070919 14:21]:
>
> Hello,
> Following patches would add support for 2k Page nand with Enabled HW ECC on omap2430 v4.0. and v5. It has been Tested with Micron Nand.
> The Patch is against 2.6.23 linux-omap.git tree. As Always all the comments are welcomed.
I've made some formatting changes and pushed this series
in two patches. I also moved some defines from the header
to the driver file. Can you please check?
Regards,
Tony
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH 1/4] OMAP: Resubmitting support for 2K page nand
2007-11-28 21:59 ` Tony Lindgren
@ 2007-11-29 2:34 ` sshahrom
0 siblings, 0 replies; 3+ messages in thread
From: sshahrom @ 2007-11-29 2:34 UTC (permalink / raw)
To: tony; +Cc: linux-omap-open-source
Hi,
I will do that,
Thanks,
-Shahrom
-----Original Message-----
From: Tony Lindgren [mailto:tony@atomide.com]
Sent: Wednesday, November 28, 2007 1:59 PM
To: sshahrom
Cc: linux-omap-open-source@linux.omap.com
Subject: Re: [PATCH 1/4] OMAP: Resubmitting support for 2K page nand
Hi,
* sshahrom@micron.com <sshahrom@micron.com> [070919 14:21]:
>
> Hello,
> Following patches would add support for 2k Page nand with Enabled HW ECC on omap2430 v4.0. and v5. It has been Tested with Micron Nand.
> The Patch is against 2.6.23 linux-omap.git tree. As Always all the comments are welcomed.
I've made some formatting changes and pushed this series in two patches. I also moved some defines from the header to the driver file. Can you please check?
Regards,
Tony
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-11-29 2:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-19 21:21 [PATCH 1/4] OMAP: Resubmitting support for 2K page nand sshahrom
2007-11-28 21:59 ` Tony Lindgren
2007-11-29 2:34 ` sshahrom
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox