omap3: Add support for flash on 3430SDP board
This patch adds support for flashes on 3430SDP boards. All three NAND, NOR and OneNAND are supported. I have tested it on 3430SDP (ES2 and ES3.1). This patch can be treated as an example to "how to utilize": 'gpmc-nand.c' and 'board-sdp-flash.c'. Similar patches can be created for 2430sdp and 3630sdp or any other similar board. Signed-off-by: Vimal Singh <vimalsingh@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
c2798e9342
commit
88c8460ac3
|
@ -100,7 +100,8 @@ obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o \
|
|||
obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o \
|
||||
mmc-twl4030.o
|
||||
obj-$(CONFIG_MACH_OMAP_3430SDP) += board-3430sdp.o \
|
||||
mmc-twl4030.o
|
||||
mmc-twl4030.o \
|
||||
board-sdp-flash.o
|
||||
obj-$(CONFIG_MACH_NOKIA_N8X0) += board-n8x0.o
|
||||
obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \
|
||||
board-rx51-sdram.o \
|
||||
|
|
|
@ -41,6 +41,8 @@
|
|||
#include <plat/control.h>
|
||||
#include <plat/gpmc-smc91x.h>
|
||||
|
||||
#include <mach/board-sdp.h>
|
||||
|
||||
#include "mux.h"
|
||||
#include "sdram-qimonda-hyb18m512160af-6.h"
|
||||
#include "mmc-twl4030.h"
|
||||
|
@ -650,6 +652,114 @@ static struct omap_board_mux board_mux[] __initdata = {
|
|||
#define board_mux NULL
|
||||
#endif
|
||||
|
||||
static struct mtd_partition sdp_nor_partitions[] = {
|
||||
/* bootloader (U-Boot, etc) in first sector */
|
||||
{
|
||||
.name = "Bootloader-NOR",
|
||||
.offset = 0,
|
||||
.size = SZ_256K,
|
||||
.mask_flags = MTD_WRITEABLE, /* force read-only */
|
||||
},
|
||||
/* bootloader params in the next sector */
|
||||
{
|
||||
.name = "Params-NOR",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = SZ_256K,
|
||||
.mask_flags = 0,
|
||||
},
|
||||
/* kernel */
|
||||
{
|
||||
.name = "Kernel-NOR",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = SZ_2M,
|
||||
.mask_flags = 0
|
||||
},
|
||||
/* file system */
|
||||
{
|
||||
.name = "Filesystem-NOR",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = MTDPART_SIZ_FULL,
|
||||
.mask_flags = 0
|
||||
}
|
||||
};
|
||||
|
||||
static struct mtd_partition sdp_onenand_partitions[] = {
|
||||
{
|
||||
.name = "X-Loader-OneNAND",
|
||||
.offset = 0,
|
||||
.size = 4 * (64 * 2048),
|
||||
.mask_flags = MTD_WRITEABLE /* force read-only */
|
||||
},
|
||||
{
|
||||
.name = "U-Boot-OneNAND",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = 2 * (64 * 2048),
|
||||
.mask_flags = MTD_WRITEABLE /* force read-only */
|
||||
},
|
||||
{
|
||||
.name = "U-Boot Environment-OneNAND",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = 1 * (64 * 2048),
|
||||
},
|
||||
{
|
||||
.name = "Kernel-OneNAND",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = 16 * (64 * 2048),
|
||||
},
|
||||
{
|
||||
.name = "File System-OneNAND",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = MTDPART_SIZ_FULL,
|
||||
},
|
||||
};
|
||||
|
||||
static struct mtd_partition sdp_nand_partitions[] = {
|
||||
/* All the partition sizes are listed in terms of NAND block size */
|
||||
{
|
||||
.name = "X-Loader-NAND",
|
||||
.offset = 0,
|
||||
.size = 4 * (64 * 2048),
|
||||
.mask_flags = MTD_WRITEABLE, /* force read-only */
|
||||
},
|
||||
{
|
||||
.name = "U-Boot-NAND",
|
||||
.offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */
|
||||
.size = 10 * (64 * 2048),
|
||||
.mask_flags = MTD_WRITEABLE, /* force read-only */
|
||||
},
|
||||
{
|
||||
.name = "Boot Env-NAND",
|
||||
|
||||
.offset = MTDPART_OFS_APPEND, /* Offset = 0x1c0000 */
|
||||
.size = 6 * (64 * 2048),
|
||||
},
|
||||
{
|
||||
.name = "Kernel-NAND",
|
||||
.offset = MTDPART_OFS_APPEND, /* Offset = 0x280000 */
|
||||
.size = 40 * (64 * 2048),
|
||||
},
|
||||
{
|
||||
.name = "File System - NAND",
|
||||
.size = MTDPART_SIZ_FULL,
|
||||
.offset = MTDPART_OFS_APPEND, /* Offset = 0x780000 */
|
||||
},
|
||||
};
|
||||
|
||||
static struct flash_partitions sdp_flash_partitions[] = {
|
||||
{
|
||||
.parts = sdp_nor_partitions,
|
||||
.nr_parts = ARRAY_SIZE(sdp_nor_partitions),
|
||||
},
|
||||
{
|
||||
.parts = sdp_onenand_partitions,
|
||||
.nr_parts = ARRAY_SIZE(sdp_onenand_partitions),
|
||||
},
|
||||
{
|
||||
.parts = sdp_nand_partitions,
|
||||
.nr_parts = ARRAY_SIZE(sdp_nand_partitions),
|
||||
},
|
||||
};
|
||||
|
||||
static void __init omap_3430sdp_init(void)
|
||||
{
|
||||
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
|
||||
|
@ -666,6 +776,7 @@ static void __init omap_3430sdp_init(void)
|
|||
omap_serial_init();
|
||||
usb_musb_init();
|
||||
board_smc91x_init();
|
||||
sdp_flash_init(sdp_flash_partitions);
|
||||
sdp3430_display_init();
|
||||
enable_board_wakeup_source();
|
||||
usb_ehci_init(&ehci_pdata);
|
||||
|
|
Loading…
Reference in New Issue