summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2015-03-20 07:01:00 -0400
committerTom Rini <trini@konsulko.com>2015-03-20 07:01:00 -0400
commite6f4042a04195be258f79e33abe3b71af9162862 (patch)
treec386524124d1c95eb75e478ff271735454a04029
parenta538ae997ae4cb375ba5362b50ba3f5b35f9519b (diff)
parent8e7a96364bc29073e5246d331a11ce8602d5d6a3 (diff)
downloadu-boot-e6f4042a04195be258f79e33abe3b71af9162862.tar.gz
u-boot-e6f4042a04195be258f79e33abe3b71af9162862.tar.xz
u-boot-e6f4042a04195be258f79e33abe3b71af9162862.zip
Merge branch 'master' of git://git.denx.de/u-boot-atmel
-rw-r--r--arch/arm/mach-at91/arm926ejs/at91sam9rl_devices.c17
-rw-r--r--arch/arm/mach-at91/armv7/sama5d4_devices.c9
-rw-r--r--arch/arm/mach-at91/armv7/u-boot-spl.lds (renamed from arch/arm/mach-at91/u-boot-spl.lds)0
-rw-r--r--board/atmel/at91sam9rlek/at91sam9rlek.c10
-rw-r--r--board/atmel/sama5d4_xplained/sama5d4_xplained.c3
-rw-r--r--configs/at91sam9rlek_dataflash_defconfig1
-rw-r--r--configs/at91sam9rlek_mmc_defconfig4
-rw-r--r--configs/at91sam9rlek_nandflash_defconfig1
-rw-r--r--drivers/net/macb.c2
-rw-r--r--include/configs/at91sam9rlek.h47
-rw-r--r--include/configs/sama5d3_xplained.h2
-rw-r--r--include/configs/sama5d3xek.h2
-rw-r--r--include/configs/sama5d4_xplained.h2
-rw-r--r--include/configs/sama5d4ek.h2
14 files changed, 89 insertions, 13 deletions
diff --git a/arch/arm/mach-at91/arm926ejs/at91sam9rl_devices.c b/arch/arm/mach-at91/arm926ejs/at91sam9rl_devices.c
index 0ec32c3ab9..857c864068 100644
--- a/arch/arm/mach-at91/arm926ejs/at91sam9rl_devices.c
+++ b/arch/arm/mach-at91/arm926ejs/at91sam9rl_devices.c
@@ -101,3 +101,20 @@ void at91_spi0_hw_init(unsigned long cs_mask)
}
}
#endif
+
+#ifdef CONFIG_GENERIC_ATMEL_MCI
+void at91_mci_hw_init(void)
+{
+ struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
+
+ at91_set_a_periph(AT91_PIO_PORTA, 2, 0); /* MCI CLK */
+ at91_set_a_periph(AT91_PIO_PORTA, 1, 0); /* MCI CDA */
+ at91_set_a_periph(AT91_PIO_PORTA, 0, 0); /* MCI DA0 */
+ at91_set_a_periph(AT91_PIO_PORTA, 3, 0); /* MCI DA1 */
+ at91_set_a_periph(AT91_PIO_PORTA, 4, 0); /* MCI DA2 */
+ at91_set_a_periph(AT91_PIO_PORTA, 5, 0); /* MCI DA3 */
+
+ /* Enable clock */
+ writel(1 << ATMEL_ID_MCI, &pmc->pcer);
+}
+#endif
diff --git a/arch/arm/mach-at91/armv7/sama5d4_devices.c b/arch/arm/mach-at91/armv7/sama5d4_devices.c
index ef39cb7e08..76301d6302 100644
--- a/arch/arm/mach-at91/armv7/sama5d4_devices.c
+++ b/arch/arm/mach-at91/armv7/sama5d4_devices.c
@@ -75,6 +75,15 @@ void matrix_init(void)
writel(0x00000001, &h32mx->sassr[4]);
writel(0x00000001, &h32mx->srtsr[4]);
+ /* Configure Programmable Security peripherals on matrix 64 */
+ writel(readl(&h64mx->spselr[0]) | 0x00080000, &h64mx->spselr[0]);
+ writel(readl(&h64mx->spselr[1]) | 0x00180000, &h64mx->spselr[1]);
+ writel(readl(&h64mx->spselr[2]) | 0x00000008, &h64mx->spselr[2]);
+
+ /* Configure Programmable Security peripherals on matrix 32 */
+ writel(readl(&h32mx->spselr[0]) | 0xFFC00000, &h32mx->spselr[0]);
+ writel(readl(&h32mx->spselr[1]) | 0x60E3FFFF, &h32mx->spselr[1]);
+
/* Enable the write protect */
writel(ATMEL_MATRIX_WPMR_WPKEY | ATMEL_MATRIX_WPMR_WPEN, &h64mx->wpmr);
writel(ATMEL_MATRIX_WPMR_WPKEY | ATMEL_MATRIX_WPMR_WPEN, &h32mx->wpmr);
diff --git a/arch/arm/mach-at91/u-boot-spl.lds b/arch/arm/mach-at91/armv7/u-boot-spl.lds
index eccca43a42..eccca43a42 100644
--- a/arch/arm/mach-at91/u-boot-spl.lds
+++ b/arch/arm/mach-at91/armv7/u-boot-spl.lds
diff --git a/board/atmel/at91sam9rlek/at91sam9rlek.c b/board/atmel/at91sam9rlek/at91sam9rlek.c
index 56ca1d4f7e..f995cef1e2 100644
--- a/board/atmel/at91sam9rlek/at91sam9rlek.c
+++ b/board/atmel/at91sam9rlek/at91sam9rlek.c
@@ -19,6 +19,7 @@
#include <lcd.h>
#include <atmel_lcdc.h>
+#include <atmel_mci.h>
#if defined(CONFIG_RESET_PHY_R) && defined(CONFIG_MACB)
#include <net.h>
#endif
@@ -162,6 +163,15 @@ void lcd_show_board_info(void)
#endif /* CONFIG_LCD_INFO */
#endif
+#ifdef CONFIG_GENERIC_ATMEL_MCI
+int board_mmc_init(bd_t *bis)
+{
+ at91_mci_hw_init();
+
+ return atmel_mci_init((void *)ATMEL_BASE_MCI);
+}
+#endif
+
int board_early_init_f(void)
{
struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
diff --git a/board/atmel/sama5d4_xplained/sama5d4_xplained.c b/board/atmel/sama5d4_xplained/sama5d4_xplained.c
index bc2aa38b92..e7f225a155 100644
--- a/board/atmel/sama5d4_xplained/sama5d4_xplained.c
+++ b/board/atmel/sama5d4_xplained/sama5d4_xplained.c
@@ -228,6 +228,9 @@ void sama5d4_xplained_mci1_hw_init(void)
int board_mmc_init(bd_t *bis)
{
+ /* Enable the power supply */
+ at91_set_pio_output(AT91_PIO_PORTE, 4, 0);
+
return atmel_mci_init((void *)ATMEL_BASE_MCI1);
}
#endif /* CONFIG_GENERIC_ATMEL_MCI */
diff --git a/configs/at91sam9rlek_dataflash_defconfig b/configs/at91sam9rlek_dataflash_defconfig
index ee632d1ea9..174bcc4f5b 100644
--- a/configs/at91sam9rlek_dataflash_defconfig
+++ b/configs/at91sam9rlek_dataflash_defconfig
@@ -2,3 +2,4 @@ CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9RL,SYS_USE_DATAFLASH"
CONFIG_ARM=y
CONFIG_ARCH_AT91=y
CONFIG_TARGET_AT91SAM9RLEK=y
+CONFIG_HUSH_PARSER=y
diff --git a/configs/at91sam9rlek_mmc_defconfig b/configs/at91sam9rlek_mmc_defconfig
new file mode 100644
index 0000000000..8704140605
--- /dev/null
+++ b/configs/at91sam9rlek_mmc_defconfig
@@ -0,0 +1,4 @@
+CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9RL,SYS_USE_MMC"
+CONFIG_ARM=y
+CONFIG_TARGET_AT91SAM9RLEK=y
+CONFIG_HUSH_PARSER=y
diff --git a/configs/at91sam9rlek_nandflash_defconfig b/configs/at91sam9rlek_nandflash_defconfig
index 6465f577cd..fdb2d6bc40 100644
--- a/configs/at91sam9rlek_nandflash_defconfig
+++ b/configs/at91sam9rlek_nandflash_defconfig
@@ -2,3 +2,4 @@ CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9RL,SYS_USE_NANDFLASH"
CONFIG_ARM=y
CONFIG_ARCH_AT91=y
CONFIG_TARGET_AT91SAM9RLEK=y
+CONFIG_HUSH_PARSER=y
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 9c2ff487a7..170ff0646f 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -515,7 +515,7 @@ static int macb_phy_init(struct macb_device *macb)
lpa);
ncfgr = macb_readl(macb, NCFGR);
- ncfgr &= ~(MACB_BIT(SPD) | MACB_BIT(FD));
+ ncfgr &= ~(MACB_BIT(SPD) | MACB_BIT(FD) | GEM_BIT(GBE));
if (speed)
ncfgr |= MACB_BIT(SPD);
if (duplex)
diff --git a/include/configs/at91sam9rlek.h b/include/configs/at91sam9rlek.h
index d5f0197466..6c1bd304c6 100644
--- a/include/configs/at91sam9rlek.h
+++ b/include/configs/at91sam9rlek.h
@@ -124,6 +124,17 @@
#endif
+/* MMC */
+#define CONFIG_CMD_MMC
+
+#ifdef CONFIG_CMD_MMC
+#define CONFIG_MMC
+#define CONFIG_GENERIC_MMC
+#define CONFIG_GENERIC_ATMEL_MCI
+#define CONFIG_CMD_FAT
+#define CONFIG_DOS_PARTITION
+#endif
+
/* Ethernet - not present */
/* USB - not supported */
@@ -147,19 +158,39 @@
"mtdparts=atmel_nand:-(root) "\
"rw rootfstype=jffs2"
-#else /* CONFIG_SYS_USE_NANDFLASH */
+#elif CONFIG_SYS_USE_NANDFLASH
/* bootstrap + u-boot + env + linux in nandflash */
#define CONFIG_ENV_IS_IN_NAND 1
-#define CONFIG_ENV_OFFSET 0x60000
-#define CONFIG_ENV_OFFSET_REDUND 0x80000
+#define CONFIG_ENV_OFFSET 0xc0000
+#define CONFIG_ENV_OFFSET_REDUND 0x100000
#define CONFIG_ENV_SIZE 0x20000 /* 1 sector = 128 kB */
-#define CONFIG_BOOTCOMMAND "nand read 0x22000000 0xA0000 0x200000; bootm"
+#define CONFIG_BOOTCOMMAND "nand read 0x22000000 0x200000 0x600000; " \
+ "nand read 0x21000000 0x180000 0x80000; " \
+ "bootz 0x22000000 - 0x21000000"
+#define CONFIG_BOOTARGS \
+ "console=ttyS0,115200 earlyprintk " \
+ "mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro," \
+ "256K(env),256k(evn_redundent),256k(spare)," \
+ "512k(dtb),6M(kernel)ro,-(rootfs) " \
+ "rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs"
+
+#else /* CONFIG_SYS_USE_MMC */
+
+/* bootstrap + u-boot + env + linux in mmc */
+#define CONFIG_ENV_IS_IN_FAT
+#define CONFIG_FAT_WRITE
+#define FAT_ENV_INTERFACE "mmc"
+#define FAT_ENV_FILE "uboot.env"
+#define FAT_ENV_DEVICE_AND_PART "0"
+#define CONFIG_ENV_SIZE 0x4000
+#define CONFIG_BOOTCOMMAND "fatload mmc 0:1 0x21000000 at91sam9rlek.dtb; " \
+ "fatload mmc 0:1 0x22000000 zImage; " \
+ "bootz 0x22000000 - 0x21000000"
#define CONFIG_BOOTARGS "console=ttyS0,115200 " \
- "root=/dev/mtdblock5 " \
- "mtdparts=atmel_nand:128k(bootstrap)ro,256k(uboot)ro,128k(env1)ro,128k(env2)ro,2M(linux),-(root) " \
- "rw rootfstype=jffs2"
-
+ "mtdparts=atmel_nand:" \
+ "8M(bootstrap/uboot/kernel)ro,-(rootfs) " \
+ "root=/dev/mmcblk0p2 rw rootwait"
#endif
#define CONFIG_SYS_PROMPT "U-Boot> "
diff --git a/include/configs/sama5d3_xplained.h b/include/configs/sama5d3_xplained.h
index 5dab61d56d..c82728e999 100644
--- a/include/configs/sama5d3_xplained.h
+++ b/include/configs/sama5d3_xplained.h
@@ -227,7 +227,7 @@
#define CONFIG_SYS_MONITOR_LEN (512 << 10)
#ifdef CONFIG_SYS_USE_MMC
-#define CONFIG_SPL_LDSCRIPT arch/arm/mach-at91/u-boot-spl.lds
+#define CONFIG_SPL_LDSCRIPT arch/arm/mach-at91/armv7/u-boot-spl.lds
#define CONFIG_SPL_MMC_SUPPORT
#define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS 0x400
#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x200
diff --git a/include/configs/sama5d3xek.h b/include/configs/sama5d3xek.h
index bd288beaeb..a99b559da6 100644
--- a/include/configs/sama5d3xek.h
+++ b/include/configs/sama5d3xek.h
@@ -274,7 +274,7 @@
#define CONFIG_SYS_MONITOR_LEN (512 << 10)
#ifdef CONFIG_SYS_USE_MMC
-#define CONFIG_SPL_LDSCRIPT arch/arm/mach-at91/u-boot-spl.lds
+#define CONFIG_SPL_LDSCRIPT arch/arm/mach-at91/armv7/u-boot-spl.lds
#define CONFIG_SPL_MMC_SUPPORT
#define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS 0x400
#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x200
diff --git a/include/configs/sama5d4_xplained.h b/include/configs/sama5d4_xplained.h
index 6493d567b4..4cb0761520 100644
--- a/include/configs/sama5d4_xplained.h
+++ b/include/configs/sama5d4_xplained.h
@@ -246,7 +246,7 @@
#define CONFIG_SYS_MONITOR_LEN (512 << 10)
#ifdef CONFIG_SYS_USE_MMC
-#define CONFIG_SPL_LDSCRIPT arch/arm/cpu/at91-common/u-boot-spl.lds
+#define CONFIG_SPL_LDSCRIPT arch/arm/mach-at91/armv7/u-boot-spl.lds
#define CONFIG_SPL_MMC_SUPPORT
#define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS 0x400
#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x200
diff --git a/include/configs/sama5d4ek.h b/include/configs/sama5d4ek.h
index 9e1b86a347..897d4819f8 100644
--- a/include/configs/sama5d4ek.h
+++ b/include/configs/sama5d4ek.h
@@ -244,7 +244,7 @@
#define CONFIG_SYS_MONITOR_LEN (512 << 10)
#ifdef CONFIG_SYS_USE_MMC
-#define CONFIG_SPL_LDSCRIPT arch/arm/cpu/at91-common/u-boot-spl.lds
+#define CONFIG_SPL_LDSCRIPT arch/arm/mach-at91/armv7/u-boot-spl.lds
#define CONFIG_SPL_MMC_SUPPORT
#define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS 0x400
#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x200