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]>
Thanks, pushing today.
> ---
> 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.
Will add this to davinci git while waiting for upstream.
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