Kevin. I will resend the 'mask_ale' patch as you suggested.
Thanks. - Hemant > -----Original Message----- > From: Kevin Hilman [mailto:[email protected]] > Sent: Wednesday, September 30, 2009 5:25 AM > To: Pedanekar, Hemant > Cc: [email protected] > Subject: Re: [PATCH v4] davinci: dm646x-evm: Add platform data for NAND > > Hemant Pedanekar <[email protected]> writes: > > > This patch adds platform data and partition info for NAND on dm6467 EVM. > > > > Note that the partition layout is dependent on the UBL, U-Boot etc. > used. This > > patch tries to minimize that dependency by setting first partition for > UBL, > > U-Boot and environment altogether. > > > > Signed-off-by: Hemant Pedanekar <[email protected]> > > This patch looks fine, but will wait until dependency gets queued > upstream someplace. > > > --- > > Depends on patch "[MTD] [NAND] davinci: fix to use mask_ale from pdata" > > submitted earlier. Without this patch "No NAND device found" error will > be shown > > on dm6467-evm when booting with NAND enabled in config and NAND won't be > > accessible. > > Can you resend this 'mask_ale' patch to a broader audience? There's a > new script in the kernel: scripts/get_maintainer.pl. Run your patch > through this script and it will will give you a list of folks/lists to > send to. And please continue to CC davinci list. > > Thanks, > > Kevin > > > arch/arm/mach-davinci/board-dm646x-evm.c | 69 > ++++++++++++++++++++++++++++++ > > 1 files changed, 69 insertions(+), 0 deletions(-) > > > > diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach- > davinci/board-dm646x-evm.c > > index 2054704..78f7cf5 100644 > > --- a/arch/arm/mach-davinci/board-dm646x-evm.c > > +++ b/arch/arm/mach-davinci/board-dm646x-evm.c > > @@ -34,6 +34,10 @@ > > #include <linux/i2c/pcf857x.h> > > #include <linux/etherdevice.h> > > > > +#include <linux/mtd/mtd.h> > > +#include <linux/mtd/nand.h> > > +#include <linux/mtd/partitions.h> > > + > > #include <asm/setup.h> > > #include <asm/mach-types.h> > > #include <asm/mach/arch.h> > > @@ -45,6 +49,7 @@ > > #include <mach/psc.h> > > #include <mach/serial.h> > > #include <mach/i2c.h> > > +#include <mach/nand.h> > > #include <mach/mmc.h> > > #include <mach/emac.h> > > > > @@ -55,6 +60,11 @@ > > #define HAS_ATA 0 > > #endif > > > > +#define DAVINCI_ASYNC_EMIF_CONTROL_BASE 0x20008000 > > +#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE 0x42000000 > > + > > +#define NAND_BLOCK_SIZE SZ_128K > > + > > /* CPLD Register 0 bits to control ATA */ > > #define DM646X_EVM_ATA_RST BIT(0) > > #define DM646X_EVM_ATA_PWD BIT(1) > > @@ -66,6 +76,63 @@ static struct davinci_uart_config uart_config > __initdata = { > > .enabled_uarts = (1 << 0), > > }; > > > > +/* Note: We are setting first partition as 'bootloader' constituting > UBL, U-Boot > > + * and U-Boot environment this avoids dependency on any particular > combination > > + * of UBL, U-Boot or flashing tools etc. > > + */ > > +static struct mtd_partition davinci_nand_partitions[] = { > > + { > > + /* UBL, U-Boot with environment */ > > + .name = "bootloader", > > + .offset = MTDPART_OFS_APPEND, > > + .size = 16 * NAND_BLOCK_SIZE, > > + .mask_flags = MTD_WRITEABLE, /* force read-only */ > > + }, { > > + .name = "kernel", > > + .offset = MTDPART_OFS_APPEND, > > + .size = SZ_4M, > > + .mask_flags = 0, > > + }, { > > + .name = "filesystem", > > + .offset = MTDPART_OFS_APPEND, > > + .size = MTDPART_SIZ_FULL, > > + .mask_flags = 0, > > + } > > +}; > > + > > +static struct davinci_nand_pdata davinci_nand_data = { > > + .mask_cle = 0x80000, > > + .mask_ale = 0x40000, > > + .parts = davinci_nand_partitions, > > + .nr_parts = ARRAY_SIZE(davinci_nand_partitions), > > + .ecc_mode = NAND_ECC_HW, > > + .options = 0, > > +}; > > + > > +static struct resource davinci_nand_resources[] = { > > + { > > + .start = DAVINCI_ASYNC_EMIF_DATA_CE0_BASE, > > + .end = DAVINCI_ASYNC_EMIF_DATA_CE0_BASE + SZ_32M - 1, > > + .flags = IORESOURCE_MEM, > > + }, { > > + .start = DAVINCI_ASYNC_EMIF_CONTROL_BASE, > > + .end = DAVINCI_ASYNC_EMIF_CONTROL_BASE + SZ_4K - 1, > > + .flags = IORESOURCE_MEM, > > + }, > > +}; > > + > > +static struct platform_device davinci_nand_device = { > > + .name = "davinci_nand", > > + .id = 0, > > + > > + .num_resources = ARRAY_SIZE(davinci_nand_resources), > > + .resource = davinci_nand_resources, > > + > > + .dev = { > > + .platform_data = &davinci_nand_data, > > + }, > > +}; > > + > > /* CPLD Register 0 Client: used for I/O Control */ > > static int cpld_reg0_probe(struct i2c_client *client, > > const struct i2c_device_id *id) > > @@ -330,6 +397,8 @@ static __init void evm_init(void) > > dm646x_init_mcasp0(&dm646x_evm_snd_data[0]); > > dm646x_init_mcasp1(&dm646x_evm_snd_data[1]); > > > > + platform_device_register(&davinci_nand_device); > > + > > if (HAS_ATA) > > dm646x_init_ide(); > > > > -- > > 1.6.2.4 > > > > _______________________________________________ > > Davinci-linux-open-source mailing list > > [email protected] > > http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source _______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
