* [U-Boot] [PATCH] spl: exynos: make spl_boot common for all exynos based platforms
@ 2013-03-16 8:46 Inderpal Singh
2013-03-27 8:48 ` Inderpal Singh
2013-05-31 23:14 ` Geoff Levand
0 siblings, 2 replies; 5+ messages in thread
From: Inderpal Singh @ 2013-03-16 8:46 UTC (permalink / raw)
To: u-boot
The spl_boot.c which copies the u-boot from the booting device to ram
is made common for all the exynos based platforms. To do so:
1. Moved smdk5250/spl_boot.c to common armv7/exynos folder and updated
to make it common for exynos4 and exynos5
2. Introduced a CONFIG_SPL_BOOTING option as only exynos5250 supports
booting from SPI device
3. Renamed some config options to make them common between exynos5250,
origen and smdkv310.
SD/MMC booting: tested on exynos4210 based origen, exynos5250 based Arndale
and SMDK5250 boards.
SPI booting: tested on SMDK5250 board
Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org>
---
It depends on the patchset at [1] as it provides the infrastructure to
detect the SOC type and revision in spl at runtime.
[1] http://www.mail-archive.com/u-boot at lists.denx.de/msg108301.html
arch/arm/cpu/armv7/exynos/Makefile | 4 ++
.../arm/cpu/armv7/exynos}/spl_boot.c | 33 +++++++----
board/samsung/origen/Makefile | 4 --
board/samsung/origen/mmc_boot.c | 58 -------------------
board/samsung/smdk5250/Makefile | 4 --
board/samsung/smdkv310/Makefile | 4 --
board/samsung/smdkv310/mmc_boot.c | 60 --------------------
include/configs/exynos5250-dt.h | 10 ++--
include/configs/origen.h | 21 +++----
include/configs/smdkv310.h | 21 +++----
10 files changed, 54 insertions(+), 165 deletions(-)
rename {board/samsung/smdk5250 => arch/arm/cpu/armv7/exynos}/spl_boot.c (73%)
delete mode 100644 board/samsung/origen/mmc_boot.c
delete mode 100644 board/samsung/smdkv310/mmc_boot.c
diff --git a/arch/arm/cpu/armv7/exynos/Makefile b/arch/arm/cpu/armv7/exynos/Makefile
index b9cf921..c507608 100644
--- a/arch/arm/cpu/armv7/exynos/Makefile
+++ b/arch/arm/cpu/armv7/exynos/Makefile
@@ -24,6 +24,10 @@ LIB = $(obj)lib$(SOC).o
COBJS += clock.o power.o soc.o system.o pinmux.o tzpc_init.o
+ifdef CONFIG_SPL_BUILD
+COBJS += spl_boot.o
+endif
+
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS))
diff --git a/board/samsung/smdk5250/spl_boot.c b/arch/arm/cpu/armv7/exynos/spl_boot.c
similarity index 73%
rename from board/samsung/smdk5250/spl_boot.c
rename to arch/arm/cpu/armv7/exynos/spl_boot.c
index d8f3c1e..e970ff6 100644
--- a/board/samsung/smdk5250/spl_boot.c
+++ b/arch/arm/cpu/armv7/exynos/spl_boot.c
@@ -23,6 +23,8 @@
#include<common.h>
#include<config.h>
+#define OM_STAT (0x1f << 1)
+
enum boot_mode {
BOOT_MODE_MMC = 4,
BOOT_MODE_SERIAL = 20,
@@ -31,8 +33,6 @@ enum boot_mode {
BOOT_MODE_USB, /* Boot using USB download */
};
- typedef u32 (*spi_copy_func_t)(u32 offset, u32 nblock, u32 dst);
-
/*
* Copy U-boot from mmc to RAM:
* COPY_BL2_FNPTR_ADDR: Address in iRAM, which Contains
@@ -40,26 +40,37 @@ enum boot_mode {
*/
void copy_uboot_to_ram(void)
{
- spi_copy_func_t spi_copy;
enum boot_mode bootmode;
- u32 (*copy_bl2)(u32, u32, u32);
+ u32 (*copy_bl2)(u32, u32, u32) = NULL;
+ u32 offset = 0, size = 0;
- bootmode = readl(EXYNOS5_POWER_BASE) & OM_STAT;
+ bootmode = readl(samsung_get_base_power()) & OM_STAT;
switch (bootmode) {
+#ifdef CONFIG_SPI_BOOTING
case BOOT_MODE_SERIAL:
- spi_copy = *(spi_copy_func_t *)EXYNOS_COPY_SPI_FNPTR_ADDR;
- spi_copy(SPI_FLASH_UBOOT_POS, CONFIG_BL2_SIZE,
- CONFIG_SYS_TEXT_BASE);
+ offset = CONFIG_BL2_OFFSET - CONFIG_RES_BLOCK_SIZE;
+ size = CONFIG_BL2_SIZE;
+ copy_bl2 = (void *) *(u32 *)EXYNOS_COPY_SPI_FNPTR_ADDR;
break;
+#endif
case BOOT_MODE_MMC:
- copy_bl2 = (void *) *(u32 *)COPY_BL2_FNPTR_ADDR;
- copy_bl2(BL2_START_OFFSET, BL2_SIZE_BLOC_COUNT,
- CONFIG_SYS_TEXT_BASE);
+ offset = CONFIG_BL2_BLOCK_OFFSET;
+ size = CONFIG_BL2_SIZE_BLOCK_COUNT;
+
+ /* Only SMDKv310 EVT0 directly jumps to BootROM copy function */
+ if (s5p_get_cpu_rev())
+ copy_bl2 = (void *) *(u32 *)COPY_BL2_FNPTR_ADDR;
+ else
+ copy_bl2 = (void *) COPY_BL2_FNPTR_ADDR;
+
break;
default:
break;
}
+
+ if (copy_bl2)
+ copy_bl2(offset, size, CONFIG_SYS_TEXT_BASE);
}
void board_init_f(unsigned long bootflag)
diff --git a/board/samsung/origen/Makefile b/board/samsung/origen/Makefile
index 3a885a5..6133b26 100644
--- a/board/samsung/origen/Makefile
+++ b/board/samsung/origen/Makefile
@@ -31,10 +31,6 @@ ifndef CONFIG_SPL_BUILD
COBJS += origen.o
endif
-ifdef CONFIG_SPL_BUILD
-COBJS += mmc_boot.o
-endif
-
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS))
diff --git a/board/samsung/origen/mmc_boot.c b/board/samsung/origen/mmc_boot.c
deleted file mode 100644
index 072f161..0000000
--- a/board/samsung/origen/mmc_boot.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2011 Samsung Electronics
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include<common.h>
-#include<config.h>
-
-/*
-* Copy U-boot from mmc to RAM:
-* COPY_BL2_FNPTR_ADDR: Address in iRAM, which Contains
-* Pointer to API (Data transfer from mmc to ram)
-*/
-void copy_uboot_to_ram(void)
-{
- u32 (*copy_bl2)(u32, u32, u32) = (void *) *(u32 *)COPY_BL2_FNPTR_ADDR;
-
- copy_bl2(BL2_START_OFFSET, BL2_SIZE_BLOC_COUNT, CONFIG_SYS_TEXT_BASE);
-}
-
-void board_init_f(unsigned long bootflag)
-{
- __attribute__((noreturn)) void (*uboot)(void);
- copy_uboot_to_ram();
-
- /* Jump to U-Boot image */
- uboot = (void *)CONFIG_SYS_TEXT_BASE;
- (*uboot)();
- /* Never returns Here */
-}
-
-/* Place Holders */
-void board_init_r(gd_t *id, ulong dest_addr)
-{
- /* Function attribute is no-return */
- /* This Function never executes */
- while (1)
- ;
-}
-
-void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3) {}
diff --git a/board/samsung/smdk5250/Makefile b/board/samsung/smdk5250/Makefile
index f2c32ee..075b1a7 100644
--- a/board/samsung/smdk5250/Makefile
+++ b/board/samsung/smdk5250/Makefile
@@ -38,10 +38,6 @@ COBJS += smdk5250.o
endif
endif
-ifdef CONFIG_SPL_BUILD
-COBJS += spl_boot.o
-endif
-
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS))
diff --git a/board/samsung/smdkv310/Makefile b/board/samsung/smdkv310/Makefile
index 56e0c16..e79045d 100644
--- a/board/samsung/smdkv310/Makefile
+++ b/board/samsung/smdkv310/Makefile
@@ -30,10 +30,6 @@ ifndef CONFIG_SPL_BUILD
COBJS += smdkv310.o
endif
-ifdef CONFIG_SPL_BUILD
-COBJS += mmc_boot.o
-endif
-
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS))
diff --git a/board/samsung/smdkv310/mmc_boot.c b/board/samsung/smdkv310/mmc_boot.c
deleted file mode 100644
index d3fc18d..0000000
--- a/board/samsung/smdkv310/mmc_boot.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2011 Samsung Electronics
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include<common.h>
-#include<config.h>
-
-/*
-* Copy U-boot from mmc to RAM:
-* COPY_BL2_FNPTR_ADDR: Address in iRAM, which Contains
-* API (Data transfer from mmc to ram)
-*/
-void copy_uboot_to_ram(void)
-{
- u32 (*copy_bl2)(u32, u32, u32) = (void *)COPY_BL2_FNPTR_ADDR;
-
- copy_bl2(BL2_START_OFFSET, BL2_SIZE_BLOC_COUNT, CONFIG_SYS_TEXT_BASE);
-}
-
-void board_init_f(unsigned long bootflag)
-{
- __attribute__((noreturn)) void (*uboot)(void);
- copy_uboot_to_ram();
-
- /* Jump to U-Boot image */
- uboot = (void *)CONFIG_SYS_TEXT_BASE;
- (*uboot)();
- /* Never returns Here */
-}
-
-/* Place Holders */
-void board_init_r(gd_t *id, ulong dest_addr)
-{
- /*Function attribute is no-return*/
- /*This Function never executes*/
- while (1)
- ;
-}
-
-void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3)
-{
-}
diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h
index 16d3ab1..7308522 100644
--- a/include/configs/exynos5250-dt.h
+++ b/include/configs/exynos5250-dt.h
@@ -206,12 +206,14 @@
#define CONFIG_ENV_OFFSET (CONFIG_BL2_OFFSET + CONFIG_BL2_SIZE)
/* U-boot copy size from boot Media to DRAM.*/
-#define BL2_START_OFFSET (CONFIG_BL2_OFFSET/512)
-#define BL2_SIZE_BLOC_COUNT (CONFIG_BL2_SIZE/512)
+#define CONFIG_BL2_BLOCK_OFFSET (CONFIG_BL2_OFFSET/512)
+#define CONFIG_BL2_SIZE_BLOCK_COUNT (CONFIG_BL2_SIZE/512)
-#define OM_STAT (0x1f << 1)
+#define CONFIG_SPI_BOOTING
+
+#ifdef CONFIG_SPI_BOOTING
#define EXYNOS_COPY_SPI_FNPTR_ADDR 0x02020058
-#define SPI_FLASH_UBOOT_POS (CONFIG_SEC_FW_SIZE + CONFIG_BL1_SIZE)
+#endif
#define CONFIG_DOS_PARTITION
diff --git a/include/configs/origen.h b/include/configs/origen.h
index e179911..c4f2ec0 100644
--- a/include/configs/origen.h
+++ b/include/configs/origen.h
@@ -139,20 +139,21 @@
/* MIU (Memory Interleaving Unit) */
#define CONFIG_MIU_2BIT_21_7_INTERLEAVED
-#define CONFIG_ENV_IS_IN_MMC 1
-#define CONFIG_SYS_MMC_ENV_DEV 0
-#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */
-#define RESERVE_BLOCK_SIZE (512)
-#define BL1_SIZE (16 << 10) /*16 K reserved for BL1*/
-#define CONFIG_ENV_OFFSET (RESERVE_BLOCK_SIZE + BL1_SIZE)
-#define CONFIG_DOS_PARTITION 1
+#define CONFIG_ENV_IS_IN_MMC 1
+#define CONFIG_SYS_MMC_ENV_DEV 0
+#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */
+#define CONFIG_RES_BLOCK_SIZE (512)
+#define CONFIG_BL1_SIZE (16 << 10) /*16 K reserved for BL1*/
+#define CONFIG_ENV_OFFSET (CONFIG_RES_BLOCK_SIZE + CONFIG_BL1_SIZE)
+#define CONFIG_BL2_OFFSET (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
+#define CONFIG_DOS_PARTITION 1
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - GENERATED_GBL_DATA_SIZE)
/* U-boot copy size from boot Media to DRAM.*/
-#define COPY_BL2_SIZE 0x80000
-#define BL2_START_OFFSET ((CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)/512)
-#define BL2_SIZE_BLOC_COUNT (COPY_BL2_SIZE/512)
+#define CONFIG_BL2_SIZE 0x80000
+#define CONFIG_BL2_BLOCK_OFFSET (CONFIG_BL2_OFFSET/512)
+#define CONFIG_BL2_SIZE_BLOCK_COUNT (CONFIG_BL2_SIZE/512)
/* Enable devicetree support */
#define CONFIG_OF_LIBFDT
diff --git a/include/configs/smdkv310.h b/include/configs/smdkv310.h
index 5e43066..8bb8de7 100644
--- a/include/configs/smdkv310.h
+++ b/include/configs/smdkv310.h
@@ -138,20 +138,21 @@
/* MIU (Memory Interleaving Unit) */
#define CONFIG_MIU_2BIT_INTERLEAVED
-#define CONFIG_ENV_IS_IN_MMC 1
-#define CONFIG_SYS_MMC_ENV_DEV 0
-#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */
-#define RESERVE_BLOCK_SIZE (512)
-#define BL1_SIZE (16 << 10) /*16 K reserved for BL1*/
-#define CONFIG_ENV_OFFSET (RESERVE_BLOCK_SIZE + BL1_SIZE)
-#define CONFIG_DOS_PARTITION 1
+#define CONFIG_ENV_IS_IN_MMC 1
+#define CONFIG_SYS_MMC_ENV_DEV 0
+#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */
+#define CONFIG_RES_BLOCK_SIZE (512)
+#define CONFIG_BL1_SIZE (16 << 10) /*16 K reserved for BL1*/
+#define CONFIG_ENV_OFFSET (CONFIG_RES_BLOCK_SIZE + CONFIG_BL1_SIZE)
+#define CONFIG_BL2_OFFSET (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
+#define CONFIG_DOS_PARTITION 1
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - GENERATED_GBL_DATA_SIZE)
/* U-boot copy size from boot Media to DRAM.*/
-#define COPY_BL2_SIZE 0x80000
-#define BL2_START_OFFSET ((CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)/512)
-#define BL2_SIZE_BLOC_COUNT (COPY_BL2_SIZE/512)
+#define CONFIG_BL2_SIZE 0x80000
+#define CONFIG_BL2_BLOCK_OFFSET (CONFIG_BL2_OFFSET/512)
+#define CONFIG_BL2_SIZE_BLOCK_COUNT (CONFIG_BL2_SIZE/512)
/* Ethernet Controllor Driver */
#ifdef CONFIG_CMD_NET
--
1.7.9.5
^ permalink raw reply related [flat|nested] 5+ messages in thread* [U-Boot] [PATCH] spl: exynos: make spl_boot common for all exynos based platforms 2013-03-16 8:46 [U-Boot] [PATCH] spl: exynos: make spl_boot common for all exynos based platforms Inderpal Singh @ 2013-03-27 8:48 ` Inderpal Singh 2013-06-04 7:26 ` Minkyu Kang 2013-05-31 23:14 ` Geoff Levand 1 sibling, 1 reply; 5+ messages in thread From: Inderpal Singh @ 2013-03-27 8:48 UTC (permalink / raw) To: u-boot Dear Minkyu, Please let me know if you have any comments for this patch. With Regards, Inder On 16 March 2013 14:16, Inderpal Singh <inderpal.singh@linaro.org> wrote: > The spl_boot.c which copies the u-boot from the booting device to ram > is made common for all the exynos based platforms. To do so: > > 1. Moved smdk5250/spl_boot.c to common armv7/exynos folder and updated > to make it common for exynos4 and exynos5 > 2. Introduced a CONFIG_SPL_BOOTING option as only exynos5250 supports > booting from SPI device > 3. Renamed some config options to make them common between exynos5250, > origen and smdkv310. > > SD/MMC booting: tested on exynos4210 based origen, exynos5250 based Arndale > and SMDK5250 boards. > SPI booting: tested on SMDK5250 board > > Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org> > --- > It depends on the patchset at [1] as it provides the infrastructure to > detect the SOC type and revision in spl at runtime. > > [1] http://www.mail-archive.com/u-boot at lists.denx.de/msg108301.html > > arch/arm/cpu/armv7/exynos/Makefile | 4 ++ > .../arm/cpu/armv7/exynos}/spl_boot.c | 33 +++++++---- > board/samsung/origen/Makefile | 4 -- > board/samsung/origen/mmc_boot.c | 58 ------------------- > board/samsung/smdk5250/Makefile | 4 -- > board/samsung/smdkv310/Makefile | 4 -- > board/samsung/smdkv310/mmc_boot.c | 60 -------------------- > include/configs/exynos5250-dt.h | 10 ++-- > include/configs/origen.h | 21 +++---- > include/configs/smdkv310.h | 21 +++---- > 10 files changed, 54 insertions(+), 165 deletions(-) > rename {board/samsung/smdk5250 => arch/arm/cpu/armv7/exynos}/spl_boot.c (73%) > delete mode 100644 board/samsung/origen/mmc_boot.c > delete mode 100644 board/samsung/smdkv310/mmc_boot.c > > diff --git a/arch/arm/cpu/armv7/exynos/Makefile b/arch/arm/cpu/armv7/exynos/Makefile > index b9cf921..c507608 100644 > --- a/arch/arm/cpu/armv7/exynos/Makefile > +++ b/arch/arm/cpu/armv7/exynos/Makefile > @@ -24,6 +24,10 @@ LIB = $(obj)lib$(SOC).o > > COBJS += clock.o power.o soc.o system.o pinmux.o tzpc_init.o > > +ifdef CONFIG_SPL_BUILD > +COBJS += spl_boot.o > +endif > + > SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) > OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) > > diff --git a/board/samsung/smdk5250/spl_boot.c b/arch/arm/cpu/armv7/exynos/spl_boot.c > similarity index 73% > rename from board/samsung/smdk5250/spl_boot.c > rename to arch/arm/cpu/armv7/exynos/spl_boot.c > index d8f3c1e..e970ff6 100644 > --- a/board/samsung/smdk5250/spl_boot.c > +++ b/arch/arm/cpu/armv7/exynos/spl_boot.c > @@ -23,6 +23,8 @@ > #include<common.h> > #include<config.h> > > +#define OM_STAT (0x1f << 1) > + > enum boot_mode { > BOOT_MODE_MMC = 4, > BOOT_MODE_SERIAL = 20, > @@ -31,8 +33,6 @@ enum boot_mode { > BOOT_MODE_USB, /* Boot using USB download */ > }; > > - typedef u32 (*spi_copy_func_t)(u32 offset, u32 nblock, u32 dst); > - > /* > * Copy U-boot from mmc to RAM: > * COPY_BL2_FNPTR_ADDR: Address in iRAM, which Contains > @@ -40,26 +40,37 @@ enum boot_mode { > */ > void copy_uboot_to_ram(void) > { > - spi_copy_func_t spi_copy; > enum boot_mode bootmode; > - u32 (*copy_bl2)(u32, u32, u32); > + u32 (*copy_bl2)(u32, u32, u32) = NULL; > + u32 offset = 0, size = 0; > > - bootmode = readl(EXYNOS5_POWER_BASE) & OM_STAT; > + bootmode = readl(samsung_get_base_power()) & OM_STAT; > > switch (bootmode) { > +#ifdef CONFIG_SPI_BOOTING > case BOOT_MODE_SERIAL: > - spi_copy = *(spi_copy_func_t *)EXYNOS_COPY_SPI_FNPTR_ADDR; > - spi_copy(SPI_FLASH_UBOOT_POS, CONFIG_BL2_SIZE, > - CONFIG_SYS_TEXT_BASE); > + offset = CONFIG_BL2_OFFSET - CONFIG_RES_BLOCK_SIZE; > + size = CONFIG_BL2_SIZE; > + copy_bl2 = (void *) *(u32 *)EXYNOS_COPY_SPI_FNPTR_ADDR; > break; > +#endif > case BOOT_MODE_MMC: > - copy_bl2 = (void *) *(u32 *)COPY_BL2_FNPTR_ADDR; > - copy_bl2(BL2_START_OFFSET, BL2_SIZE_BLOC_COUNT, > - CONFIG_SYS_TEXT_BASE); > + offset = CONFIG_BL2_BLOCK_OFFSET; > + size = CONFIG_BL2_SIZE_BLOCK_COUNT; > + > + /* Only SMDKv310 EVT0 directly jumps to BootROM copy function */ > + if (s5p_get_cpu_rev()) > + copy_bl2 = (void *) *(u32 *)COPY_BL2_FNPTR_ADDR; > + else > + copy_bl2 = (void *) COPY_BL2_FNPTR_ADDR; > + > break; > default: > break; > } > + > + if (copy_bl2) > + copy_bl2(offset, size, CONFIG_SYS_TEXT_BASE); > } > > void board_init_f(unsigned long bootflag) > diff --git a/board/samsung/origen/Makefile b/board/samsung/origen/Makefile > index 3a885a5..6133b26 100644 > --- a/board/samsung/origen/Makefile > +++ b/board/samsung/origen/Makefile > @@ -31,10 +31,6 @@ ifndef CONFIG_SPL_BUILD > COBJS += origen.o > endif > > -ifdef CONFIG_SPL_BUILD > -COBJS += mmc_boot.o > -endif > - > SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) > OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) > > diff --git a/board/samsung/origen/mmc_boot.c b/board/samsung/origen/mmc_boot.c > deleted file mode 100644 > index 072f161..0000000 > --- a/board/samsung/origen/mmc_boot.c > +++ /dev/null > @@ -1,58 +0,0 @@ > -/* > - * Copyright (C) 2011 Samsung Electronics > - * > - * See file CREDITS for list of people who contributed to this > - * project. > - * > - * This program is free software; you can redistribute it and/or > - * modify it under the terms of the GNU General Public License as > - * published by the Free Software Foundation; either version 2 of > - * the License, or (at your option) any later version. > - * > - * This program is distributed in the hope that it will be useful, > - * but WITHOUT ANY WARRANTY; without even the implied warranty of > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > - * GNU General Public License for more details. > - * > - * You should have received a copy of the GNU General Public License > - * along with this program; if not, write to the Free Software > - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, > - * MA 02111-1307 USA > - */ > - > -#include<common.h> > -#include<config.h> > - > -/* > -* Copy U-boot from mmc to RAM: > -* COPY_BL2_FNPTR_ADDR: Address in iRAM, which Contains > -* Pointer to API (Data transfer from mmc to ram) > -*/ > -void copy_uboot_to_ram(void) > -{ > - u32 (*copy_bl2)(u32, u32, u32) = (void *) *(u32 *)COPY_BL2_FNPTR_ADDR; > - > - copy_bl2(BL2_START_OFFSET, BL2_SIZE_BLOC_COUNT, CONFIG_SYS_TEXT_BASE); > -} > - > -void board_init_f(unsigned long bootflag) > -{ > - __attribute__((noreturn)) void (*uboot)(void); > - copy_uboot_to_ram(); > - > - /* Jump to U-Boot image */ > - uboot = (void *)CONFIG_SYS_TEXT_BASE; > - (*uboot)(); > - /* Never returns Here */ > -} > - > -/* Place Holders */ > -void board_init_r(gd_t *id, ulong dest_addr) > -{ > - /* Function attribute is no-return */ > - /* This Function never executes */ > - while (1) > - ; > -} > - > -void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3) {} > diff --git a/board/samsung/smdk5250/Makefile b/board/samsung/smdk5250/Makefile > index f2c32ee..075b1a7 100644 > --- a/board/samsung/smdk5250/Makefile > +++ b/board/samsung/smdk5250/Makefile > @@ -38,10 +38,6 @@ COBJS += smdk5250.o > endif > endif > > -ifdef CONFIG_SPL_BUILD > -COBJS += spl_boot.o > -endif > - > SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) > OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) > > diff --git a/board/samsung/smdkv310/Makefile b/board/samsung/smdkv310/Makefile > index 56e0c16..e79045d 100644 > --- a/board/samsung/smdkv310/Makefile > +++ b/board/samsung/smdkv310/Makefile > @@ -30,10 +30,6 @@ ifndef CONFIG_SPL_BUILD > COBJS += smdkv310.o > endif > > -ifdef CONFIG_SPL_BUILD > -COBJS += mmc_boot.o > -endif > - > SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) > OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) > > diff --git a/board/samsung/smdkv310/mmc_boot.c b/board/samsung/smdkv310/mmc_boot.c > deleted file mode 100644 > index d3fc18d..0000000 > --- a/board/samsung/smdkv310/mmc_boot.c > +++ /dev/null > @@ -1,60 +0,0 @@ > -/* > - * Copyright (C) 2011 Samsung Electronics > - * > - * See file CREDITS for list of people who contributed to this > - * project. > - * > - * This program is free software; you can redistribute it and/or > - * modify it under the terms of the GNU General Public License as > - * published by the Free Software Foundation; either version 2 of > - * the License, or (at your option) any later version. > - * > - * This program is distributed in the hope that it will be useful, > - * but WITHOUT ANY WARRANTY; without even the implied warranty of > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > - * GNU General Public License for more details. > - * > - * You should have received a copy of the GNU General Public License > - * along with this program; if not, write to the Free Software > - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, > - * MA 02111-1307 USA > - */ > - > -#include<common.h> > -#include<config.h> > - > -/* > -* Copy U-boot from mmc to RAM: > -* COPY_BL2_FNPTR_ADDR: Address in iRAM, which Contains > -* API (Data transfer from mmc to ram) > -*/ > -void copy_uboot_to_ram(void) > -{ > - u32 (*copy_bl2)(u32, u32, u32) = (void *)COPY_BL2_FNPTR_ADDR; > - > - copy_bl2(BL2_START_OFFSET, BL2_SIZE_BLOC_COUNT, CONFIG_SYS_TEXT_BASE); > -} > - > -void board_init_f(unsigned long bootflag) > -{ > - __attribute__((noreturn)) void (*uboot)(void); > - copy_uboot_to_ram(); > - > - /* Jump to U-Boot image */ > - uboot = (void *)CONFIG_SYS_TEXT_BASE; > - (*uboot)(); > - /* Never returns Here */ > -} > - > -/* Place Holders */ > -void board_init_r(gd_t *id, ulong dest_addr) > -{ > - /*Function attribute is no-return*/ > - /*This Function never executes*/ > - while (1) > - ; > -} > - > -void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3) > -{ > -} > diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h > index 16d3ab1..7308522 100644 > --- a/include/configs/exynos5250-dt.h > +++ b/include/configs/exynos5250-dt.h > @@ -206,12 +206,14 @@ > #define CONFIG_ENV_OFFSET (CONFIG_BL2_OFFSET + CONFIG_BL2_SIZE) > > /* U-boot copy size from boot Media to DRAM.*/ > -#define BL2_START_OFFSET (CONFIG_BL2_OFFSET/512) > -#define BL2_SIZE_BLOC_COUNT (CONFIG_BL2_SIZE/512) > +#define CONFIG_BL2_BLOCK_OFFSET (CONFIG_BL2_OFFSET/512) > +#define CONFIG_BL2_SIZE_BLOCK_COUNT (CONFIG_BL2_SIZE/512) > > -#define OM_STAT (0x1f << 1) > +#define CONFIG_SPI_BOOTING > + > +#ifdef CONFIG_SPI_BOOTING > #define EXYNOS_COPY_SPI_FNPTR_ADDR 0x02020058 > -#define SPI_FLASH_UBOOT_POS (CONFIG_SEC_FW_SIZE + CONFIG_BL1_SIZE) > +#endif > > #define CONFIG_DOS_PARTITION > > diff --git a/include/configs/origen.h b/include/configs/origen.h > index e179911..c4f2ec0 100644 > --- a/include/configs/origen.h > +++ b/include/configs/origen.h > @@ -139,20 +139,21 @@ > /* MIU (Memory Interleaving Unit) */ > #define CONFIG_MIU_2BIT_21_7_INTERLEAVED > > -#define CONFIG_ENV_IS_IN_MMC 1 > -#define CONFIG_SYS_MMC_ENV_DEV 0 > -#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */ > -#define RESERVE_BLOCK_SIZE (512) > -#define BL1_SIZE (16 << 10) /*16 K reserved for BL1*/ > -#define CONFIG_ENV_OFFSET (RESERVE_BLOCK_SIZE + BL1_SIZE) > -#define CONFIG_DOS_PARTITION 1 > +#define CONFIG_ENV_IS_IN_MMC 1 > +#define CONFIG_SYS_MMC_ENV_DEV 0 > +#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */ > +#define CONFIG_RES_BLOCK_SIZE (512) > +#define CONFIG_BL1_SIZE (16 << 10) /*16 K reserved for BL1*/ > +#define CONFIG_ENV_OFFSET (CONFIG_RES_BLOCK_SIZE + CONFIG_BL1_SIZE) > +#define CONFIG_BL2_OFFSET (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) > +#define CONFIG_DOS_PARTITION 1 > > #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - GENERATED_GBL_DATA_SIZE) > > /* U-boot copy size from boot Media to DRAM.*/ > -#define COPY_BL2_SIZE 0x80000 > -#define BL2_START_OFFSET ((CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)/512) > -#define BL2_SIZE_BLOC_COUNT (COPY_BL2_SIZE/512) > +#define CONFIG_BL2_SIZE 0x80000 > +#define CONFIG_BL2_BLOCK_OFFSET (CONFIG_BL2_OFFSET/512) > +#define CONFIG_BL2_SIZE_BLOCK_COUNT (CONFIG_BL2_SIZE/512) > > /* Enable devicetree support */ > #define CONFIG_OF_LIBFDT > diff --git a/include/configs/smdkv310.h b/include/configs/smdkv310.h > index 5e43066..8bb8de7 100644 > --- a/include/configs/smdkv310.h > +++ b/include/configs/smdkv310.h > @@ -138,20 +138,21 @@ > /* MIU (Memory Interleaving Unit) */ > #define CONFIG_MIU_2BIT_INTERLEAVED > > -#define CONFIG_ENV_IS_IN_MMC 1 > -#define CONFIG_SYS_MMC_ENV_DEV 0 > -#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */ > -#define RESERVE_BLOCK_SIZE (512) > -#define BL1_SIZE (16 << 10) /*16 K reserved for BL1*/ > -#define CONFIG_ENV_OFFSET (RESERVE_BLOCK_SIZE + BL1_SIZE) > -#define CONFIG_DOS_PARTITION 1 > +#define CONFIG_ENV_IS_IN_MMC 1 > +#define CONFIG_SYS_MMC_ENV_DEV 0 > +#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */ > +#define CONFIG_RES_BLOCK_SIZE (512) > +#define CONFIG_BL1_SIZE (16 << 10) /*16 K reserved for BL1*/ > +#define CONFIG_ENV_OFFSET (CONFIG_RES_BLOCK_SIZE + CONFIG_BL1_SIZE) > +#define CONFIG_BL2_OFFSET (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) > +#define CONFIG_DOS_PARTITION 1 > > #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - GENERATED_GBL_DATA_SIZE) > > /* U-boot copy size from boot Media to DRAM.*/ > -#define COPY_BL2_SIZE 0x80000 > -#define BL2_START_OFFSET ((CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)/512) > -#define BL2_SIZE_BLOC_COUNT (COPY_BL2_SIZE/512) > +#define CONFIG_BL2_SIZE 0x80000 > +#define CONFIG_BL2_BLOCK_OFFSET (CONFIG_BL2_OFFSET/512) > +#define CONFIG_BL2_SIZE_BLOCK_COUNT (CONFIG_BL2_SIZE/512) > > /* Ethernet Controllor Driver */ > #ifdef CONFIG_CMD_NET > -- > 1.7.9.5 > ^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH] spl: exynos: make spl_boot common for all exynos based platforms 2013-03-27 8:48 ` Inderpal Singh @ 2013-06-04 7:26 ` Minkyu Kang 2013-06-07 6:14 ` Inderpal Singh 0 siblings, 1 reply; 5+ messages in thread From: Minkyu Kang @ 2013-06-04 7:26 UTC (permalink / raw) To: u-boot Dear Inderpal Singh, On 27/03/13 17:48, Inderpal Singh wrote: > Dear Minkyu, > > Please let me know if you have any comments for this patch. > > With Regards, > Inder > > On 16 March 2013 14:16, Inderpal Singh <inderpal.singh@linaro.org> wrote: >> The spl_boot.c which copies the u-boot from the booting device to ram >> is made common for all the exynos based platforms. To do so: >> >> 1. Moved smdk5250/spl_boot.c to common armv7/exynos folder and updated >> to make it common for exynos4 and exynos5 >> 2. Introduced a CONFIG_SPL_BOOTING option as only exynos5250 supports >> booting from SPI device >> 3. Renamed some config options to make them common between exynos5250, >> origen and smdkv310. >> >> SD/MMC booting: tested on exynos4210 based origen, exynos5250 based Arndale >> and SMDK5250 boards. >> SPI booting: tested on SMDK5250 board >> >> Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org> >> --- >> It depends on the patchset at [1] as it provides the infrastructure to >> detect the SOC type and revision in spl at runtime. >> >> [1] http://www.mail-archive.com/u-boot at lists.denx.de/msg108301.html >> >> arch/arm/cpu/armv7/exynos/Makefile | 4 ++ >> .../arm/cpu/armv7/exynos}/spl_boot.c | 33 +++++++---- >> board/samsung/origen/Makefile | 4 -- >> board/samsung/origen/mmc_boot.c | 58 ------------------- >> board/samsung/smdk5250/Makefile | 4 -- >> board/samsung/smdkv310/Makefile | 4 -- >> board/samsung/smdkv310/mmc_boot.c | 60 -------------------- >> include/configs/exynos5250-dt.h | 10 ++-- >> include/configs/origen.h | 21 +++---- >> include/configs/smdkv310.h | 21 +++---- >> 10 files changed, 54 insertions(+), 165 deletions(-) >> rename {board/samsung/smdk5250 => arch/arm/cpu/armv7/exynos}/spl_boot.c (73%) >> delete mode 100644 board/samsung/origen/mmc_boot.c >> delete mode 100644 board/samsung/smdkv310/mmc_boot.c Since this patch had wait too long on queue, need to rebase. I'm sorry to late review. >> >> diff --git a/arch/arm/cpu/armv7/exynos/Makefile b/arch/arm/cpu/armv7/exynos/Makefile >> index b9cf921..c507608 100644 >> --- a/arch/arm/cpu/armv7/exynos/Makefile >> +++ b/arch/arm/cpu/armv7/exynos/Makefile >> @@ -24,6 +24,10 @@ LIB = $(obj)lib$(SOC).o >> >> COBJS += clock.o power.o soc.o system.o pinmux.o tzpc_init.o >> >> +ifdef CONFIG_SPL_BUILD >> +COBJS += spl_boot.o >> +endif >> + >> SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) >> OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) >> >> diff --git a/board/samsung/smdk5250/spl_boot.c b/arch/arm/cpu/armv7/exynos/spl_boot.c >> similarity index 73% >> rename from board/samsung/smdk5250/spl_boot.c >> rename to arch/arm/cpu/armv7/exynos/spl_boot.c >> index d8f3c1e..e970ff6 100644 >> --- a/board/samsung/smdk5250/spl_boot.c >> +++ b/arch/arm/cpu/armv7/exynos/spl_boot.c >> @@ -23,6 +23,8 @@ >> #include<common.h> >> #include<config.h> >> >> +#define OM_STAT (0x1f << 1) >> + >> enum boot_mode { >> BOOT_MODE_MMC = 4, >> BOOT_MODE_SERIAL = 20, >> @@ -31,8 +33,6 @@ enum boot_mode { >> BOOT_MODE_USB, /* Boot using USB download */ >> }; >> >> - typedef u32 (*spi_copy_func_t)(u32 offset, u32 nblock, u32 dst); >> - >> /* >> * Copy U-boot from mmc to RAM: >> * COPY_BL2_FNPTR_ADDR: Address in iRAM, which Contains >> @@ -40,26 +40,37 @@ enum boot_mode { >> */ >> void copy_uboot_to_ram(void) >> { >> - spi_copy_func_t spi_copy; >> enum boot_mode bootmode; >> - u32 (*copy_bl2)(u32, u32, u32); >> + u32 (*copy_bl2)(u32, u32, u32) = NULL; >> + u32 offset = 0, size = 0; >> >> - bootmode = readl(EXYNOS5_POWER_BASE) & OM_STAT; >> + bootmode = readl(samsung_get_base_power()) & OM_STAT; >> >> switch (bootmode) { >> +#ifdef CONFIG_SPI_BOOTING Is this ifdef needs? >> case BOOT_MODE_SERIAL: >> - spi_copy = *(spi_copy_func_t *)EXYNOS_COPY_SPI_FNPTR_ADDR; >> - spi_copy(SPI_FLASH_UBOOT_POS, CONFIG_BL2_SIZE, >> - CONFIG_SYS_TEXT_BASE); >> + offset = CONFIG_BL2_OFFSET - CONFIG_RES_BLOCK_SIZE; >> + size = CONFIG_BL2_SIZE; >> + copy_bl2 = (void *) *(u32 *)EXYNOS_COPY_SPI_FNPTR_ADDR; >> break; >> +#endif >> case BOOT_MODE_MMC: >> - copy_bl2 = (void *) *(u32 *)COPY_BL2_FNPTR_ADDR; >> - copy_bl2(BL2_START_OFFSET, BL2_SIZE_BLOC_COUNT, >> - CONFIG_SYS_TEXT_BASE); >> + offset = CONFIG_BL2_BLOCK_OFFSET; >> + size = CONFIG_BL2_SIZE_BLOCK_COUNT; >> + >> + /* Only SMDKv310 EVT0 directly jumps to BootROM copy function */ >> + if (s5p_get_cpu_rev()) According to your comment, you should check cpu_ids. >> + copy_bl2 = (void *) *(u32 *)COPY_BL2_FNPTR_ADDR; >> + else >> + copy_bl2 = (void *) COPY_BL2_FNPTR_ADDR; >> + >> break; >> default: >> break; >> } >> + >> + if (copy_bl2) >> + copy_bl2(offset, size, CONFIG_SYS_TEXT_BASE); >> } >> >> void board_init_f(unsigned long bootflag) >> diff --git a/board/samsung/origen/Makefile b/board/samsung/origen/Makefile >> index 3a885a5..6133b26 100644 >> --- a/board/samsung/origen/Makefile >> +++ b/board/samsung/origen/Makefile >> @@ -31,10 +31,6 @@ ifndef CONFIG_SPL_BUILD >> COBJS += origen.o >> endif >> >> -ifdef CONFIG_SPL_BUILD >> -COBJS += mmc_boot.o >> -endif >> - >> SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) >> OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) >> >> diff --git a/board/samsung/origen/mmc_boot.c b/board/samsung/origen/mmc_boot.c >> deleted file mode 100644 >> index 072f161..0000000 >> --- a/board/samsung/origen/mmc_boot.c >> +++ /dev/null >> @@ -1,58 +0,0 @@ >> -/* >> - * Copyright (C) 2011 Samsung Electronics >> - * >> - * See file CREDITS for list of people who contributed to this >> - * project. >> - * >> - * This program is free software; you can redistribute it and/or >> - * modify it under the terms of the GNU General Public License as >> - * published by the Free Software Foundation; either version 2 of >> - * the License, or (at your option) any later version. >> - * >> - * This program is distributed in the hope that it will be useful, >> - * but WITHOUT ANY WARRANTY; without even the implied warranty of >> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> - * GNU General Public License for more details. >> - * >> - * You should have received a copy of the GNU General Public License >> - * along with this program; if not, write to the Free Software >> - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, >> - * MA 02111-1307 USA >> - */ >> - >> -#include<common.h> >> -#include<config.h> >> - >> -/* >> -* Copy U-boot from mmc to RAM: >> -* COPY_BL2_FNPTR_ADDR: Address in iRAM, which Contains >> -* Pointer to API (Data transfer from mmc to ram) >> -*/ >> -void copy_uboot_to_ram(void) >> -{ >> - u32 (*copy_bl2)(u32, u32, u32) = (void *) *(u32 *)COPY_BL2_FNPTR_ADDR; >> - >> - copy_bl2(BL2_START_OFFSET, BL2_SIZE_BLOC_COUNT, CONFIG_SYS_TEXT_BASE); >> -} >> - >> -void board_init_f(unsigned long bootflag) >> -{ >> - __attribute__((noreturn)) void (*uboot)(void); >> - copy_uboot_to_ram(); >> - >> - /* Jump to U-Boot image */ >> - uboot = (void *)CONFIG_SYS_TEXT_BASE; >> - (*uboot)(); >> - /* Never returns Here */ >> -} >> - >> -/* Place Holders */ >> -void board_init_r(gd_t *id, ulong dest_addr) >> -{ >> - /* Function attribute is no-return */ >> - /* This Function never executes */ >> - while (1) >> - ; >> -} >> - >> -void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3) {} >> diff --git a/board/samsung/smdk5250/Makefile b/board/samsung/smdk5250/Makefile >> index f2c32ee..075b1a7 100644 >> --- a/board/samsung/smdk5250/Makefile >> +++ b/board/samsung/smdk5250/Makefile >> @@ -38,10 +38,6 @@ COBJS += smdk5250.o >> endif >> endif >> >> -ifdef CONFIG_SPL_BUILD >> -COBJS += spl_boot.o >> -endif >> - >> SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) >> OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) >> >> diff --git a/board/samsung/smdkv310/Makefile b/board/samsung/smdkv310/Makefile >> index 56e0c16..e79045d 100644 >> --- a/board/samsung/smdkv310/Makefile >> +++ b/board/samsung/smdkv310/Makefile >> @@ -30,10 +30,6 @@ ifndef CONFIG_SPL_BUILD >> COBJS += smdkv310.o >> endif >> >> -ifdef CONFIG_SPL_BUILD >> -COBJS += mmc_boot.o >> -endif >> - >> SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) >> OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) >> >> diff --git a/board/samsung/smdkv310/mmc_boot.c b/board/samsung/smdkv310/mmc_boot.c >> deleted file mode 100644 >> index d3fc18d..0000000 >> --- a/board/samsung/smdkv310/mmc_boot.c >> +++ /dev/null >> @@ -1,60 +0,0 @@ >> -/* >> - * Copyright (C) 2011 Samsung Electronics >> - * >> - * See file CREDITS for list of people who contributed to this >> - * project. >> - * >> - * This program is free software; you can redistribute it and/or >> - * modify it under the terms of the GNU General Public License as >> - * published by the Free Software Foundation; either version 2 of >> - * the License, or (at your option) any later version. >> - * >> - * This program is distributed in the hope that it will be useful, >> - * but WITHOUT ANY WARRANTY; without even the implied warranty of >> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> - * GNU General Public License for more details. >> - * >> - * You should have received a copy of the GNU General Public License >> - * along with this program; if not, write to the Free Software >> - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, >> - * MA 02111-1307 USA >> - */ >> - >> -#include<common.h> >> -#include<config.h> >> - >> -/* >> -* Copy U-boot from mmc to RAM: >> -* COPY_BL2_FNPTR_ADDR: Address in iRAM, which Contains >> -* API (Data transfer from mmc to ram) >> -*/ >> -void copy_uboot_to_ram(void) >> -{ >> - u32 (*copy_bl2)(u32, u32, u32) = (void *)COPY_BL2_FNPTR_ADDR; >> - >> - copy_bl2(BL2_START_OFFSET, BL2_SIZE_BLOC_COUNT, CONFIG_SYS_TEXT_BASE); >> -} >> - >> -void board_init_f(unsigned long bootflag) >> -{ >> - __attribute__((noreturn)) void (*uboot)(void); >> - copy_uboot_to_ram(); >> - >> - /* Jump to U-Boot image */ >> - uboot = (void *)CONFIG_SYS_TEXT_BASE; >> - (*uboot)(); >> - /* Never returns Here */ >> -} >> - >> -/* Place Holders */ >> -void board_init_r(gd_t *id, ulong dest_addr) >> -{ >> - /*Function attribute is no-return*/ >> - /*This Function never executes*/ >> - while (1) >> - ; >> -} >> - >> -void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3) >> -{ >> -} >> diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h >> index 16d3ab1..7308522 100644 >> --- a/include/configs/exynos5250-dt.h >> +++ b/include/configs/exynos5250-dt.h >> @@ -206,12 +206,14 @@ >> #define CONFIG_ENV_OFFSET (CONFIG_BL2_OFFSET + CONFIG_BL2_SIZE) >> >> /* U-boot copy size from boot Media to DRAM.*/ >> -#define BL2_START_OFFSET (CONFIG_BL2_OFFSET/512) >> -#define BL2_SIZE_BLOC_COUNT (CONFIG_BL2_SIZE/512) >> +#define CONFIG_BL2_BLOCK_OFFSET (CONFIG_BL2_OFFSET/512) >> +#define CONFIG_BL2_SIZE_BLOCK_COUNT (CONFIG_BL2_SIZE/512) >> >> -#define OM_STAT (0x1f << 1) >> +#define CONFIG_SPI_BOOTING >> + >> +#ifdef CONFIG_SPI_BOOTING I think this ifdef is unnecessary. You already know that we will use spi booting on this board. >> #define EXYNOS_COPY_SPI_FNPTR_ADDR 0x02020058 >> -#define SPI_FLASH_UBOOT_POS (CONFIG_SEC_FW_SIZE + CONFIG_BL1_SIZE) >> +#endif >> >> #define CONFIG_DOS_PARTITION >> >> diff --git a/include/configs/origen.h b/include/configs/origen.h >> index e179911..c4f2ec0 100644 >> --- a/include/configs/origen.h >> +++ b/include/configs/origen.h >> @@ -139,20 +139,21 @@ >> /* MIU (Memory Interleaving Unit) */ >> #define CONFIG_MIU_2BIT_21_7_INTERLEAVED >> >> -#define CONFIG_ENV_IS_IN_MMC 1 >> -#define CONFIG_SYS_MMC_ENV_DEV 0 >> -#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */ >> -#define RESERVE_BLOCK_SIZE (512) >> -#define BL1_SIZE (16 << 10) /*16 K reserved for BL1*/ >> -#define CONFIG_ENV_OFFSET (RESERVE_BLOCK_SIZE + BL1_SIZE) >> -#define CONFIG_DOS_PARTITION 1 >> +#define CONFIG_ENV_IS_IN_MMC 1 >> +#define CONFIG_SYS_MMC_ENV_DEV 0 >> +#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */ >> +#define CONFIG_RES_BLOCK_SIZE (512) >> +#define CONFIG_BL1_SIZE (16 << 10) /*16 K reserved for BL1*/ >> +#define CONFIG_ENV_OFFSET (CONFIG_RES_BLOCK_SIZE + CONFIG_BL1_SIZE) >> +#define CONFIG_BL2_OFFSET (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) >> +#define CONFIG_DOS_PARTITION 1 >> >> #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - GENERATED_GBL_DATA_SIZE) >> >> /* U-boot copy size from boot Media to DRAM.*/ >> -#define COPY_BL2_SIZE 0x80000 >> -#define BL2_START_OFFSET ((CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)/512) >> -#define BL2_SIZE_BLOC_COUNT (COPY_BL2_SIZE/512) >> +#define CONFIG_BL2_SIZE 0x80000 >> +#define CONFIG_BL2_BLOCK_OFFSET (CONFIG_BL2_OFFSET/512) >> +#define CONFIG_BL2_SIZE_BLOCK_COUNT (CONFIG_BL2_SIZE/512) >> >> /* Enable devicetree support */ >> #define CONFIG_OF_LIBFDT >> diff --git a/include/configs/smdkv310.h b/include/configs/smdkv310.h >> index 5e43066..8bb8de7 100644 >> --- a/include/configs/smdkv310.h >> +++ b/include/configs/smdkv310.h >> @@ -138,20 +138,21 @@ >> /* MIU (Memory Interleaving Unit) */ >> #define CONFIG_MIU_2BIT_INTERLEAVED >> >> -#define CONFIG_ENV_IS_IN_MMC 1 >> -#define CONFIG_SYS_MMC_ENV_DEV 0 >> -#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */ >> -#define RESERVE_BLOCK_SIZE (512) >> -#define BL1_SIZE (16 << 10) /*16 K reserved for BL1*/ >> -#define CONFIG_ENV_OFFSET (RESERVE_BLOCK_SIZE + BL1_SIZE) >> -#define CONFIG_DOS_PARTITION 1 >> +#define CONFIG_ENV_IS_IN_MMC 1 >> +#define CONFIG_SYS_MMC_ENV_DEV 0 >> +#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */ >> +#define CONFIG_RES_BLOCK_SIZE (512) >> +#define CONFIG_BL1_SIZE (16 << 10) /*16 K reserved for BL1*/ >> +#define CONFIG_ENV_OFFSET (CONFIG_RES_BLOCK_SIZE + CONFIG_BL1_SIZE) >> +#define CONFIG_BL2_OFFSET (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) >> +#define CONFIG_DOS_PARTITION 1 >> >> #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - GENERATED_GBL_DATA_SIZE) >> >> /* U-boot copy size from boot Media to DRAM.*/ >> -#define COPY_BL2_SIZE 0x80000 >> -#define BL2_START_OFFSET ((CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)/512) >> -#define BL2_SIZE_BLOC_COUNT (COPY_BL2_SIZE/512) >> +#define CONFIG_BL2_SIZE 0x80000 >> +#define CONFIG_BL2_BLOCK_OFFSET (CONFIG_BL2_OFFSET/512) >> +#define CONFIG_BL2_SIZE_BLOCK_COUNT (CONFIG_BL2_SIZE/512) >> >> /* Ethernet Controllor Driver */ >> #ifdef CONFIG_CMD_NET >> -- >> 1.7.9.5 >> > This patch needs to test. Please help to test this patch and let me know. Thanks, Minkyu Kang. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH] spl: exynos: make spl_boot common for all exynos based platforms 2013-06-04 7:26 ` Minkyu Kang @ 2013-06-07 6:14 ` Inderpal Singh 0 siblings, 0 replies; 5+ messages in thread From: Inderpal Singh @ 2013-06-07 6:14 UTC (permalink / raw) To: u-boot Dear Minkyu Kang, Thanks for the review. On 4 June 2013 12:56, Minkyu Kang <mk7.kang@samsung.com> wrote: > Dear Inderpal Singh, > > On 27/03/13 17:48, Inderpal Singh wrote: > > Dear Minkyu, > > > > Please let me know if you have any comments for this patch. > > > > With Regards, > > Inder > > > > On 16 March 2013 14:16, Inderpal Singh <inderpal.singh@linaro.org> > wrote: > >> The spl_boot.c which copies the u-boot from the booting device to ram > >> is made common for all the exynos based platforms. To do so: > >> > >> 1. Moved smdk5250/spl_boot.c to common armv7/exynos folder and updated > >> to make it common for exynos4 and exynos5 > >> 2. Introduced a CONFIG_SPL_BOOTING option as only exynos5250 supports > >> booting from SPI device > >> 3. Renamed some config options to make them common between exynos5250, > >> origen and smdkv310. > >> > >> SD/MMC booting: tested on exynos4210 based origen, exynos5250 based > Arndale > >> and SMDK5250 boards. > >> SPI booting: tested on SMDK5250 board > >> > >> Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org> > >> --- > >> It depends on the patchset at [1] as it provides the infrastructure to > >> detect the SOC type and revision in spl at runtime. > >> > >> [1] http://www.mail-archive.com/u-boot at lists.denx.de/msg108301.html > >> > >> arch/arm/cpu/armv7/exynos/Makefile | 4 ++ > >> .../arm/cpu/armv7/exynos}/spl_boot.c | 33 +++++++---- > >> board/samsung/origen/Makefile | 4 -- > >> board/samsung/origen/mmc_boot.c | 58 > ------------------- > >> board/samsung/smdk5250/Makefile | 4 -- > >> board/samsung/smdkv310/Makefile | 4 -- > >> board/samsung/smdkv310/mmc_boot.c | 60 > -------------------- > >> include/configs/exynos5250-dt.h | 10 ++-- > >> include/configs/origen.h | 21 +++---- > >> include/configs/smdkv310.h | 21 +++---- > >> 10 files changed, 54 insertions(+), 165 deletions(-) > >> rename {board/samsung/smdk5250 => > arch/arm/cpu/armv7/exynos}/spl_boot.c (73%) > >> delete mode 100644 board/samsung/origen/mmc_boot.c > >> delete mode 100644 board/samsung/smdkv310/mmc_boot.c > > Since this patch had wait too long on queue, need to rebase. > I'm sorry to late review. > > >> > >> diff --git a/arch/arm/cpu/armv7/exynos/Makefile > b/arch/arm/cpu/armv7/exynos/Makefile > >> index b9cf921..c507608 100644 > >> --- a/arch/arm/cpu/armv7/exynos/Makefile > >> +++ b/arch/arm/cpu/armv7/exynos/Makefile > >> @@ -24,6 +24,10 @@ LIB = $(obj)lib$(SOC).o > >> > >> COBJS += clock.o power.o soc.o system.o pinmux.o tzpc_init.o > >> > >> +ifdef CONFIG_SPL_BUILD > >> +COBJS += spl_boot.o > >> +endif > >> + > >> SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) > >> OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) > >> > >> diff --git a/board/samsung/smdk5250/spl_boot.c > b/arch/arm/cpu/armv7/exynos/spl_boot.c > >> similarity index 73% > >> rename from board/samsung/smdk5250/spl_boot.c > >> rename to arch/arm/cpu/armv7/exynos/spl_boot.c > >> index d8f3c1e..e970ff6 100644 > >> --- a/board/samsung/smdk5250/spl_boot.c > >> +++ b/arch/arm/cpu/armv7/exynos/spl_boot.c > >> @@ -23,6 +23,8 @@ > >> #include<common.h> > >> #include<config.h> > >> > >> +#define OM_STAT (0x1f << 1) > >> + > >> enum boot_mode { > >> BOOT_MODE_MMC = 4, > >> BOOT_MODE_SERIAL = 20, > >> @@ -31,8 +33,6 @@ enum boot_mode { > >> BOOT_MODE_USB, /* Boot using USB download */ > >> }; > >> > >> - typedef u32 (*spi_copy_func_t)(u32 offset, u32 nblock, u32 dst); > >> - > >> /* > >> * Copy U-boot from mmc to RAM: > >> * COPY_BL2_FNPTR_ADDR: Address in iRAM, which Contains > >> @@ -40,26 +40,37 @@ enum boot_mode { > >> */ > >> void copy_uboot_to_ram(void) > >> { > >> - spi_copy_func_t spi_copy; > >> enum boot_mode bootmode; > >> - u32 (*copy_bl2)(u32, u32, u32); > >> + u32 (*copy_bl2)(u32, u32, u32) = NULL; > >> + u32 offset = 0, size = 0; > >> > >> - bootmode = readl(EXYNOS5_POWER_BASE) & OM_STAT; > >> + bootmode = readl(samsung_get_base_power()) & OM_STAT; > >> > >> switch (bootmode) { > >> +#ifdef CONFIG_SPI_BOOTING > > Is this ifdef needs? > I introduced this ifdef because only exynos5250 has EXYNOS_COPY_SPI_FNPTR_ADDR defined. If i don't use this ifdef, It won't compile for origen, smdkv310 etc. > >> case BOOT_MODE_SERIAL: > >> - spi_copy = *(spi_copy_func_t > *)EXYNOS_COPY_SPI_FNPTR_ADDR; > >> - spi_copy(SPI_FLASH_UBOOT_POS, CONFIG_BL2_SIZE, > >> - CONFIG_SYS_TEXT_BASE); > >> + offset = CONFIG_BL2_OFFSET - CONFIG_RES_BLOCK_SIZE; > >> + size = CONFIG_BL2_SIZE; > >> + copy_bl2 = (void *) *(u32 *)EXYNOS_COPY_SPI_FNPTR_ADDR; > >> break; > >> +#endif > >> case BOOT_MODE_MMC: > >> - copy_bl2 = (void *) *(u32 *)COPY_BL2_FNPTR_ADDR; > >> - copy_bl2(BL2_START_OFFSET, BL2_SIZE_BLOC_COUNT, > >> - CONFIG_SYS_TEXT_BASE); > >> + offset = CONFIG_BL2_BLOCK_OFFSET; > >> + size = CONFIG_BL2_SIZE_BLOCK_COUNT; > >> + > >> + /* Only SMDKv310 EVT0 directly jumps to BootROM copy > function */ > >> + if (s5p_get_cpu_rev()) > > According to your comment, you should check cpu_ids. > The s5p_cpu_rev is being set to zero only for Exynos4210 EVT0, hence I thought only revision check is sufficient. That's, perhaps, not very clear. I will change it to check both cpuid as well as cpu_rev. > > >> + copy_bl2 = (void *) *(u32 *)COPY_BL2_FNPTR_ADDR; > >> + else > >> + copy_bl2 = (void *) COPY_BL2_FNPTR_ADDR; > >> + > >> break; > >> default: > >> break; > >> } > >> + > >> + if (copy_bl2) > >> + copy_bl2(offset, size, CONFIG_SYS_TEXT_BASE); > >> } > >> > >> void board_init_f(unsigned long bootflag) > >> diff --git a/board/samsung/origen/Makefile > b/board/samsung/origen/Makefile > >> index 3a885a5..6133b26 100644 > >> --- a/board/samsung/origen/Makefile > >> +++ b/board/samsung/origen/Makefile > >> @@ -31,10 +31,6 @@ ifndef CONFIG_SPL_BUILD > >> COBJS += origen.o > >> endif > >> > >> -ifdef CONFIG_SPL_BUILD > >> -COBJS += mmc_boot.o > >> -endif > >> - > >> SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) > >> OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) > >> > >> diff --git a/board/samsung/origen/mmc_boot.c > b/board/samsung/origen/mmc_boot.c > >> deleted file mode 100644 > >> index 072f161..0000000 > >> --- a/board/samsung/origen/mmc_boot.c > >> +++ /dev/null > >> @@ -1,58 +0,0 @@ > >> -/* > >> - * Copyright (C) 2011 Samsung Electronics > >> - * > >> - * See file CREDITS for list of people who contributed to this > >> - * project. > >> - * > >> - * This program is free software; you can redistribute it and/or > >> - * modify it under the terms of the GNU General Public License as > >> - * published by the Free Software Foundation; either version 2 of > >> - * the License, or (at your option) any later version. > >> - * > >> - * This program is distributed in the hope that it will be useful, > >> - * but WITHOUT ANY WARRANTY; without even the implied warranty of > >> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > >> - * GNU General Public License for more details. > >> - * > >> - * You should have received a copy of the GNU General Public License > >> - * along with this program; if not, write to the Free Software > >> - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, > >> - * MA 02111-1307 USA > >> - */ > >> - > >> -#include<common.h> > >> -#include<config.h> > >> - > >> -/* > >> -* Copy U-boot from mmc to RAM: > >> -* COPY_BL2_FNPTR_ADDR: Address in iRAM, which Contains > >> -* Pointer to API (Data transfer from mmc to ram) > >> -*/ > >> -void copy_uboot_to_ram(void) > >> -{ > >> - u32 (*copy_bl2)(u32, u32, u32) = (void *) *(u32 > *)COPY_BL2_FNPTR_ADDR; > >> - > >> - copy_bl2(BL2_START_OFFSET, BL2_SIZE_BLOC_COUNT, > CONFIG_SYS_TEXT_BASE); > >> -} > >> - > >> -void board_init_f(unsigned long bootflag) > >> -{ > >> - __attribute__((noreturn)) void (*uboot)(void); > >> - copy_uboot_to_ram(); > >> - > >> - /* Jump to U-Boot image */ > >> - uboot = (void *)CONFIG_SYS_TEXT_BASE; > >> - (*uboot)(); > >> - /* Never returns Here */ > >> -} > >> - > >> -/* Place Holders */ > >> -void board_init_r(gd_t *id, ulong dest_addr) > >> -{ > >> - /* Function attribute is no-return */ > >> - /* This Function never executes */ > >> - while (1) > >> - ; > >> -} > >> - > >> -void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3) {} > >> diff --git a/board/samsung/smdk5250/Makefile > b/board/samsung/smdk5250/Makefile > >> index f2c32ee..075b1a7 100644 > >> --- a/board/samsung/smdk5250/Makefile > >> +++ b/board/samsung/smdk5250/Makefile > >> @@ -38,10 +38,6 @@ COBJS += smdk5250.o > >> endif > >> endif > >> > >> -ifdef CONFIG_SPL_BUILD > >> -COBJS += spl_boot.o > >> -endif > >> - > >> SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) > >> OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) > >> > >> diff --git a/board/samsung/smdkv310/Makefile > b/board/samsung/smdkv310/Makefile > >> index 56e0c16..e79045d 100644 > >> --- a/board/samsung/smdkv310/Makefile > >> +++ b/board/samsung/smdkv310/Makefile > >> @@ -30,10 +30,6 @@ ifndef CONFIG_SPL_BUILD > >> COBJS += smdkv310.o > >> endif > >> > >> -ifdef CONFIG_SPL_BUILD > >> -COBJS += mmc_boot.o > >> -endif > >> - > >> SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) > >> OBJS := $(addprefix $(obj),$(COBJS) $(SOBJS)) > >> > >> diff --git a/board/samsung/smdkv310/mmc_boot.c > b/board/samsung/smdkv310/mmc_boot.c > >> deleted file mode 100644 > >> index d3fc18d..0000000 > >> --- a/board/samsung/smdkv310/mmc_boot.c > >> +++ /dev/null > >> @@ -1,60 +0,0 @@ > >> -/* > >> - * Copyright (C) 2011 Samsung Electronics > >> - * > >> - * See file CREDITS for list of people who contributed to this > >> - * project. > >> - * > >> - * This program is free software; you can redistribute it and/or > >> - * modify it under the terms of the GNU General Public License as > >> - * published by the Free Software Foundation; either version 2 of > >> - * the License, or (at your option) any later version. > >> - * > >> - * This program is distributed in the hope that it will be useful, > >> - * but WITHOUT ANY WARRANTY; without even the implied warranty of > >> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > >> - * GNU General Public License for more details. > >> - * > >> - * You should have received a copy of the GNU General Public License > >> - * along with this program; if not, write to the Free Software > >> - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, > >> - * MA 02111-1307 USA > >> - */ > >> - > >> -#include<common.h> > >> -#include<config.h> > >> - > >> -/* > >> -* Copy U-boot from mmc to RAM: > >> -* COPY_BL2_FNPTR_ADDR: Address in iRAM, which Contains > >> -* API (Data transfer from mmc to ram) > >> -*/ > >> -void copy_uboot_to_ram(void) > >> -{ > >> - u32 (*copy_bl2)(u32, u32, u32) = (void *)COPY_BL2_FNPTR_ADDR; > >> - > >> - copy_bl2(BL2_START_OFFSET, BL2_SIZE_BLOC_COUNT, > CONFIG_SYS_TEXT_BASE); > >> -} > >> - > >> -void board_init_f(unsigned long bootflag) > >> -{ > >> - __attribute__((noreturn)) void (*uboot)(void); > >> - copy_uboot_to_ram(); > >> - > >> - /* Jump to U-Boot image */ > >> - uboot = (void *)CONFIG_SYS_TEXT_BASE; > >> - (*uboot)(); > >> - /* Never returns Here */ > >> -} > >> - > >> -/* Place Holders */ > >> -void board_init_r(gd_t *id, ulong dest_addr) > >> -{ > >> - /*Function attribute is no-return*/ > >> - /*This Function never executes*/ > >> - while (1) > >> - ; > >> -} > >> - > >> -void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3) > >> -{ > >> -} > >> diff --git a/include/configs/exynos5250-dt.h > b/include/configs/exynos5250-dt.h > >> index 16d3ab1..7308522 100644 > >> --- a/include/configs/exynos5250-dt.h > >> +++ b/include/configs/exynos5250-dt.h > >> @@ -206,12 +206,14 @@ > >> #define CONFIG_ENV_OFFSET (CONFIG_BL2_OFFSET + CONFIG_BL2_SIZE) > >> > >> /* U-boot copy size from boot Media to DRAM.*/ > >> -#define BL2_START_OFFSET (CONFIG_BL2_OFFSET/512) > >> -#define BL2_SIZE_BLOC_COUNT (CONFIG_BL2_SIZE/512) > >> +#define CONFIG_BL2_BLOCK_OFFSET (CONFIG_BL2_OFFSET/512) > >> +#define CONFIG_BL2_SIZE_BLOCK_COUNT (CONFIG_BL2_SIZE/512) > >> > >> -#define OM_STAT (0x1f << 1) > >> +#define CONFIG_SPI_BOOTING > >> + > >> +#ifdef CONFIG_SPI_BOOTING > > I think this ifdef is unnecessary. > You already know that we will use spi booting on this board. > As this is consolidation patch, I introduced this to solve the compilation issue for other boards as mentioned above. Now, the USB download boot mode is also supported on exynos5250 and it has one more EXYNOS_COPY_USB_FNPTR_ADDR. The other boards won't have this as well. Let me know your thinking about handling this issue for spl_boot.c consolidation. With Regards, Inder > > >> #define EXYNOS_COPY_SPI_FNPTR_ADDR 0x02020058 > >> -#define SPI_FLASH_UBOOT_POS (CONFIG_SEC_FW_SIZE + > CONFIG_BL1_SIZE) > >> +#endif > >> > >> #define CONFIG_DOS_PARTITION > >> > >> diff --git a/include/configs/origen.h b/include/configs/origen.h > >> index e179911..c4f2ec0 100644 > >> --- a/include/configs/origen.h > >> +++ b/include/configs/origen.h > >> @@ -139,20 +139,21 @@ > >> /* MIU (Memory Interleaving Unit) */ > >> #define CONFIG_MIU_2BIT_21_7_INTERLEAVED > >> > >> -#define CONFIG_ENV_IS_IN_MMC 1 > >> -#define CONFIG_SYS_MMC_ENV_DEV 0 > >> -#define CONFIG_ENV_SIZE (16 << 10) /* 16 > KB */ > >> -#define RESERVE_BLOCK_SIZE (512) > >> -#define BL1_SIZE (16 << 10) /*16 K reserved for > BL1*/ > >> -#define CONFIG_ENV_OFFSET (RESERVE_BLOCK_SIZE + BL1_SIZE) > >> -#define CONFIG_DOS_PARTITION 1 > >> +#define CONFIG_ENV_IS_IN_MMC 1 > >> +#define CONFIG_SYS_MMC_ENV_DEV 0 > >> +#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */ > >> +#define CONFIG_RES_BLOCK_SIZE (512) > >> +#define CONFIG_BL1_SIZE (16 << 10) /*16 K reserved for > BL1*/ > >> +#define CONFIG_ENV_OFFSET (CONFIG_RES_BLOCK_SIZE + > CONFIG_BL1_SIZE) > >> +#define CONFIG_BL2_OFFSET (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) > >> +#define CONFIG_DOS_PARTITION 1 > >> > >> #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - > GENERATED_GBL_DATA_SIZE) > >> > >> /* U-boot copy size from boot Media to DRAM.*/ > >> -#define COPY_BL2_SIZE 0x80000 > >> -#define BL2_START_OFFSET ((CONFIG_ENV_OFFSET + > CONFIG_ENV_SIZE)/512) > >> -#define BL2_SIZE_BLOC_COUNT (COPY_BL2_SIZE/512) > >> +#define CONFIG_BL2_SIZE 0x80000 > >> +#define CONFIG_BL2_BLOCK_OFFSET (CONFIG_BL2_OFFSET/512) > >> +#define CONFIG_BL2_SIZE_BLOCK_COUNT (CONFIG_BL2_SIZE/512) > >> > >> /* Enable devicetree support */ > >> #define CONFIG_OF_LIBFDT > >> diff --git a/include/configs/smdkv310.h b/include/configs/smdkv310.h > >> index 5e43066..8bb8de7 100644 > >> --- a/include/configs/smdkv310.h > >> +++ b/include/configs/smdkv310.h > >> @@ -138,20 +138,21 @@ > >> /* MIU (Memory Interleaving Unit) */ > >> #define CONFIG_MIU_2BIT_INTERLEAVED > >> > >> -#define CONFIG_ENV_IS_IN_MMC 1 > >> -#define CONFIG_SYS_MMC_ENV_DEV 0 > >> -#define CONFIG_ENV_SIZE (16 << 10) /* 16 > KB */ > >> -#define RESERVE_BLOCK_SIZE (512) > >> -#define BL1_SIZE (16 << 10) /*16 K reserved for > BL1*/ > >> -#define CONFIG_ENV_OFFSET (RESERVE_BLOCK_SIZE + BL1_SIZE) > >> -#define CONFIG_DOS_PARTITION 1 > >> +#define CONFIG_ENV_IS_IN_MMC 1 > >> +#define CONFIG_SYS_MMC_ENV_DEV 0 > >> +#define CONFIG_ENV_SIZE (16 << 10) /* 16 KB */ > >> +#define CONFIG_RES_BLOCK_SIZE (512) > >> +#define CONFIG_BL1_SIZE (16 << 10) /*16 K reserved for > BL1*/ > >> +#define CONFIG_ENV_OFFSET (CONFIG_RES_BLOCK_SIZE + > CONFIG_BL1_SIZE) > >> +#define CONFIG_BL2_OFFSET (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) > >> +#define CONFIG_DOS_PARTITION 1 > >> > >> #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - > GENERATED_GBL_DATA_SIZE) > >> > >> /* U-boot copy size from boot Media to DRAM.*/ > >> -#define COPY_BL2_SIZE 0x80000 > >> -#define BL2_START_OFFSET ((CONFIG_ENV_OFFSET + > CONFIG_ENV_SIZE)/512) > >> -#define BL2_SIZE_BLOC_COUNT (COPY_BL2_SIZE/512) > >> +#define CONFIG_BL2_SIZE 0x80000 > >> +#define CONFIG_BL2_BLOCK_OFFSET (CONFIG_BL2_OFFSET/512) > >> +#define CONFIG_BL2_SIZE_BLOCK_COUNT (CONFIG_BL2_SIZE/512) > >> > >> /* Ethernet Controllor Driver */ > >> #ifdef CONFIG_CMD_NET > >> -- > >> 1.7.9.5 > >> > > > > This patch needs to test. > Please help to test this patch and let me know. > > Thanks, > Minkyu Kang. > ^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH] spl: exynos: make spl_boot common for all exynos based platforms 2013-03-16 8:46 [U-Boot] [PATCH] spl: exynos: make spl_boot common for all exynos based platforms Inderpal Singh 2013-03-27 8:48 ` Inderpal Singh @ 2013-05-31 23:14 ` Geoff Levand 1 sibling, 0 replies; 5+ messages in thread From: Geoff Levand @ 2013-05-31 23:14 UTC (permalink / raw) To: u-boot > [1] http://www.mail-archive.com/u-boot <at> lists.denx.de/msg108301.html This gives 404 not found... ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-06-07 6:14 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-03-16 8:46 [U-Boot] [PATCH] spl: exynos: make spl_boot common for all exynos based platforms Inderpal Singh 2013-03-27 8:48 ` Inderpal Singh 2013-06-04 7:26 ` Minkyu Kang 2013-06-07 6:14 ` Inderpal Singh 2013-05-31 23:14 ` Geoff Levand
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox