* [U-Boot] [PATCH V2 1/5] ARM: OMAP: Make omap_boot_parameters common across socs
2013-04-24 10:41 [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function Sricharan R
@ 2013-04-24 10:41 ` Sricharan R
2013-04-24 10:41 ` [U-Boot] [PATCH V2 2/5] ARM: OMAP4/5: Make OMAPx_SRAM_SCRATCH_ defines common Sricharan R
` (5 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Sricharan R @ 2013-04-24 10:41 UTC (permalink / raw)
To: u-boot
omap_boot_parameters is same and defined for each
soc. So move this to a common place to reuse it
across socs.
Signed-off-by: Sricharan R <r.sricharan@ti.com>
---
[V2] Rebased on mainline.
arch/arm/include/asm/arch-am33xx/omap.h | 25 ----------------
arch/arm/include/asm/arch-omap4/omap.h | 24 ---------------
arch/arm/include/asm/arch-omap5/omap.h | 23 ---------------
arch/arm/include/asm/omap_boot.h | 49 +++++++++++++++++++++++++++++++
4 files changed, 49 insertions(+), 72 deletions(-)
create mode 100644 arch/arm/include/asm/omap_boot.h
diff --git a/arch/arm/include/asm/arch-am33xx/omap.h b/arch/arm/include/asm/arch-am33xx/omap.h
index d28f9a8..7e3bb9c 100644
--- a/arch/arm/include/asm/arch-am33xx/omap.h
+++ b/arch/arm/include/asm/arch-am33xx/omap.h
@@ -35,29 +35,4 @@
#define NON_SECURE_SRAM_START 0x40300000
#define NON_SECURE_SRAM_END 0x40320000
#endif
-
-/* ROM code defines */
-/* Boot device */
-#define BOOT_DEVICE_MASK 0xFF
-#define BOOT_DEVICE_OFFSET 0x8
-#define DEV_DESC_PTR_OFFSET 0x4
-#define DEV_DATA_PTR_OFFSET 0x18
-#define BOOT_MODE_OFFSET 0x8
-#define RESET_REASON_OFFSET 0x9
-#define CH_FLAGS_OFFSET 0xA
-
-#define CH_FLAGS_CHSETTINGS (0x1 << 0)
-#define CH_FLAGS_CHRAM (0x1 << 1)
-#define CH_FLAGS_CHFLASH (0x1 << 2)
-#define CH_FLAGS_CHMMCSD (0x1 << 3)
-
-#ifndef __ASSEMBLY__
-struct omap_boot_parameters {
- char *boot_message;
- unsigned int mem_boot_descriptor;
- unsigned char omap_bootdevice;
- unsigned char reset_reason;
- unsigned char ch_flags;
-};
-#endif
#endif
diff --git a/arch/arm/include/asm/arch-omap4/omap.h b/arch/arm/include/asm/arch-omap4/omap.h
index ad984da..9ad1e82 100644
--- a/arch/arm/include/asm/arch-omap4/omap.h
+++ b/arch/arm/include/asm/arch-omap4/omap.h
@@ -155,28 +155,4 @@ struct s32ktimer {
#define OMAP4_SRAM_SCRATCH_SYS_CTRL (SRAM_SCRATCH_SPACE_ADDR + 0x20)
#define OMAP4_SRAM_SCRATCH_SPACE_END (SRAM_SCRATCH_SPACE_ADDR + 0x24)
-/* ROM code defines */
-/* Boot device */
-#define BOOT_DEVICE_MASK 0xFF
-#define BOOT_DEVICE_OFFSET 0x8
-#define DEV_DESC_PTR_OFFSET 0x4
-#define DEV_DATA_PTR_OFFSET 0x18
-#define BOOT_MODE_OFFSET 0x8
-#define RESET_REASON_OFFSET 0x9
-#define CH_FLAGS_OFFSET 0xA
-
-#define CH_FLAGS_CHSETTINGS (0x1 << 0)
-#define CH_FLAGS_CHRAM (0x1 << 1)
-#define CH_FLAGS_CHFLASH (0x1 << 2)
-#define CH_FLAGS_CHMMCSD (0x1 << 3)
-
-#ifndef __ASSEMBLY__
-struct omap_boot_parameters {
- char *boot_message;
- unsigned int mem_boot_descriptor;
- unsigned char omap_bootdevice;
- unsigned char reset_reason;
- unsigned char ch_flags;
-};
-#endif
#endif
diff --git a/arch/arm/include/asm/arch-omap5/omap.h b/arch/arm/include/asm/arch-omap5/omap.h
index 887fcaa..3bf5afa 100644
--- a/arch/arm/include/asm/arch-omap5/omap.h
+++ b/arch/arm/include/asm/arch-omap5/omap.h
@@ -214,21 +214,6 @@ struct s32ktimer {
#define OMAP4460_ES1_0 0x44600100
#define OMAP4460_ES1_1 0x44600110
-/* ROM code defines */
-/* Boot device */
-#define BOOT_DEVICE_MASK 0xFF
-#define BOOT_DEVICE_OFFSET 0x8
-#define DEV_DESC_PTR_OFFSET 0x4
-#define DEV_DATA_PTR_OFFSET 0x18
-#define BOOT_MODE_OFFSET 0x8
-#define RESET_REASON_OFFSET 0x9
-#define CH_FLAGS_OFFSET 0xA
-
-#define CH_FLAGS_CHSETTINGS (0x1 << 0)
-#define CH_FLAGS_CHRAM (0x1 << 1)
-#define CH_FLAGS_CHFLASH (0x1 << 2)
-#define CH_FLAGS_CHMMCSD (0x1 << 3)
-
/* CONTROL_SRCOMP_XXX_SIDE */
#define OVERRIDE_XS_SHIFT 30
#define OVERRIDE_XS_MASK (1 << 30)
@@ -249,14 +234,6 @@ struct srcomp_params {
s8 multiply_factor;
};
-struct omap_boot_parameters {
- char *boot_message;
- unsigned int mem_boot_descriptor;
- unsigned char omap_bootdevice;
- unsigned char reset_reason;
- unsigned char ch_flags;
-};
-
struct ctrl_ioregs {
u32 ctrl_ddrch;
u32 ctrl_lpddr2ch;
diff --git a/arch/arm/include/asm/omap_boot.h b/arch/arm/include/asm/omap_boot.h
new file mode 100644
index 0000000..87a9530
--- /dev/null
+++ b/arch/arm/include/asm/omap_boot.h
@@ -0,0 +1,49 @@
+/*
+ * (C) Copyright 2013
+ * Texas Instruments, <www.ti.com>
+ *
+ * Sricharan R <r.sricharan@ti.com>
+ *
+ * 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
+ */
+
+/* ROM code defines */
+/* Boot device */
+#define BOOT_DEVICE_MASK 0xFF
+#define BOOT_DEVICE_OFFSET 0x8
+#define DEV_DESC_PTR_OFFSET 0x4
+#define DEV_DATA_PTR_OFFSET 0x18
+#define BOOT_MODE_OFFSET 0x8
+#define RESET_REASON_OFFSET 0x9
+#define CH_FLAGS_OFFSET 0xA
+
+#define CH_FLAGS_CHSETTINGS (0x1 << 0)
+#define CH_FLAGS_CHRAM (0x1 << 1)
+#define CH_FLAGS_CHFLASH (0x1 << 2)
+#define CH_FLAGS_CHMMCSD (0x1 << 3)
+
+#ifndef __ASSEMBLY__
+struct omap_boot_parameters {
+ char *boot_message;
+ unsigned int mem_boot_descriptor;
+ unsigned char omap_bootdevice;
+ unsigned char reset_reason;
+ unsigned char ch_flags;
+};
+#endif
--
1.7.9.5
^ permalink raw reply related [flat|nested] 15+ messages in thread* [U-Boot] [PATCH V2 2/5] ARM: OMAP4/5: Make OMAPx_SRAM_SCRATCH_ defines common
2013-04-24 10:41 [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function Sricharan R
2013-04-24 10:41 ` [U-Boot] [PATCH V2 1/5] ARM: OMAP: Make omap_boot_parameters common across socs Sricharan R
@ 2013-04-24 10:41 ` Sricharan R
2013-04-24 10:41 ` [U-Boot] [PATCH V2 3/5] ARM: OMAP: Correct save_boot_params and replace with 'C' function Sricharan R
` (4 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Sricharan R @ 2013-04-24 10:41 UTC (permalink / raw)
To: u-boot
These defines are same across OMAP4/5. So move them to
omap_common.h. This is required for the patches that
follow.
Signed-off-by: Sricharan R <r.sricharan@ti.com>
---
[V2] Rebased on mainline.
arch/arm/cpu/armv7/omap4/emif.c | 4 ++--
arch/arm/cpu/armv7/omap4/hw_data.c | 2 +-
arch/arm/cpu/armv7/omap4/hwinit.c | 3 ++-
arch/arm/cpu/armv7/omap5/emif.c | 4 ++--
arch/arm/cpu/armv7/omap5/hw_data.c | 2 +-
arch/arm/cpu/armv7/omap5/hwinit.c | 3 ++-
arch/arm/include/asm/arch-omap4/omap.h | 12 ------------
arch/arm/include/asm/arch-omap5/omap.h | 13 -------------
arch/arm/include/asm/omap_common.h | 14 ++++++++++++++
9 files changed, 24 insertions(+), 33 deletions(-)
diff --git a/arch/arm/cpu/armv7/omap4/emif.c b/arch/arm/cpu/armv7/omap4/emif.c
index 53f6063..0ddf35f 100644
--- a/arch/arm/cpu/armv7/omap4/emif.c
+++ b/arch/arm/cpu/armv7/omap4/emif.c
@@ -31,8 +31,8 @@
#include <asm/utils.h>
#ifndef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
-u32 *const T_num = (u32 *)OMAP4_SRAM_SCRATCH_EMIF_T_NUM;
-u32 *const T_den = (u32 *)OMAP4_SRAM_SCRATCH_EMIF_T_DEN;
+u32 *const T_num = (u32 *)OMAP_SRAM_SCRATCH_EMIF_T_NUM;
+u32 *const T_den = (u32 *)OMAP_SRAM_SCRATCH_EMIF_T_DEN;
#endif
#ifdef CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
diff --git a/arch/arm/cpu/armv7/omap4/hw_data.c b/arch/arm/cpu/armv7/omap4/hw_data.c
index 04977b4..06a2fc8 100644
--- a/arch/arm/cpu/armv7/omap4/hw_data.c
+++ b/arch/arm/cpu/armv7/omap4/hw_data.c
@@ -40,7 +40,7 @@ struct dplls const **dplls_data =
struct vcores_data const **omap_vcores =
(struct vcores_data const **) OMAP_SRAM_SCRATCH_VCORES_PTR;
struct omap_sys_ctrl_regs const **ctrl =
- (struct omap_sys_ctrl_regs const **)OMAP4_SRAM_SCRATCH_SYS_CTRL;
+ (struct omap_sys_ctrl_regs const **)OMAP_SRAM_SCRATCH_SYS_CTRL;
/*
* The M & N values in the following tables are created using the
diff --git a/arch/arm/cpu/armv7/omap4/hwinit.c b/arch/arm/cpu/armv7/omap4/hwinit.c
index 2db517b..81f5a48 100644
--- a/arch/arm/cpu/armv7/omap4/hwinit.c
+++ b/arch/arm/cpu/armv7/omap4/hwinit.c
@@ -34,10 +34,11 @@
#include <asm/sizes.h>
#include <asm/emif.h>
#include <asm/arch/gpio.h>
+#include <asm/omap_common.h>
DECLARE_GLOBAL_DATA_PTR;
-u32 *const omap_si_rev = (u32 *)OMAP4_SRAM_SCRATCH_OMAP4_REV;
+u32 *const omap_si_rev = (u32 *)OMAP_SRAM_SCRATCH_OMAP_REV;
static const struct gpio_bank gpio_bank_44xx[6] = {
{ (void *)OMAP44XX_GPIO1_BASE, METHOD_GPIO_24XX },
diff --git a/arch/arm/cpu/armv7/omap5/emif.c b/arch/arm/cpu/armv7/omap5/emif.c
index 3f37abd..b4c1319 100644
--- a/arch/arm/cpu/armv7/omap5/emif.c
+++ b/arch/arm/cpu/armv7/omap5/emif.c
@@ -32,8 +32,8 @@
#ifndef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
#define print_timing_reg(reg) debug(#reg" - 0x%08x\n", (reg))
-static u32 *const T_num = (u32 *)OMAP5_SRAM_SCRATCH_EMIF_T_NUM;
-static u32 *const T_den = (u32 *)OMAP5_SRAM_SCRATCH_EMIF_T_DEN;
+static u32 *const T_num = (u32 *)OMAP_SRAM_SCRATCH_EMIF_T_NUM;
+static u32 *const T_den = (u32 *)OMAP_SRAM_SCRATCH_EMIF_T_DEN;
#endif
#ifdef CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
diff --git a/arch/arm/cpu/armv7/omap5/hw_data.c b/arch/arm/cpu/armv7/omap5/hw_data.c
index ced274e..e29803d 100644
--- a/arch/arm/cpu/armv7/omap5/hw_data.c
+++ b/arch/arm/cpu/armv7/omap5/hw_data.c
@@ -41,7 +41,7 @@ struct dplls const **dplls_data =
struct vcores_data const **omap_vcores =
(struct vcores_data const **) OMAP_SRAM_SCRATCH_VCORES_PTR;
struct omap_sys_ctrl_regs const **ctrl =
- (struct omap_sys_ctrl_regs const **)OMAP5_SRAM_SCRATCH_SYS_CTRL;
+ (struct omap_sys_ctrl_regs const **)OMAP_SRAM_SCRATCH_SYS_CTRL;
/* OPP HIGH FREQUENCY for ES2.0 */
static const struct dpll_params mpu_dpll_params_1_5ghz[NUM_SYS_CLKS] = {
diff --git a/arch/arm/cpu/armv7/omap5/hwinit.c b/arch/arm/cpu/armv7/omap5/hwinit.c
index 2f4b247..e93f403 100644
--- a/arch/arm/cpu/armv7/omap5/hwinit.c
+++ b/arch/arm/cpu/armv7/omap5/hwinit.c
@@ -37,10 +37,11 @@
#include <asm/utils.h>
#include <asm/arch/gpio.h>
#include <asm/emif.h>
+#include <asm/omap_common.h>
DECLARE_GLOBAL_DATA_PTR;
-u32 *const omap_si_rev = (u32 *)OMAP5_SRAM_SCRATCH_OMAP5_REV;
+u32 *const omap_si_rev = (u32 *)OMAP_SRAM_SCRATCH_OMAP_REV;
static struct gpio_bank gpio_bank_54xx[6] = {
{ (void *)OMAP54XX_GPIO1_BASE, METHOD_GPIO_24XX },
diff --git a/arch/arm/include/asm/arch-omap4/omap.h b/arch/arm/include/asm/arch-omap4/omap.h
index 9ad1e82..e9a6ffe 100644
--- a/arch/arm/include/asm/arch-omap4/omap.h
+++ b/arch/arm/include/asm/arch-omap4/omap.h
@@ -143,16 +143,4 @@ struct s32ktimer {
#define NON_SECURE_SRAM_END 0x4030E000 /* Not inclusive */
/* base address for indirect vectors (internal boot mode) */
#define SRAM_ROM_VECT_BASE 0x4030D000
-/* Temporary SRAM stack used while low level init is done */
-#define SRAM_SCRATCH_SPACE_ADDR NON_SECURE_SRAM_START
-/* SRAM scratch space entries */
-#define OMAP4_SRAM_SCRATCH_OMAP4_REV SRAM_SCRATCH_SPACE_ADDR
-#define OMAP4_SRAM_SCRATCH_EMIF_T_NUM (SRAM_SCRATCH_SPACE_ADDR + 0xC)
-#define OMAP4_SRAM_SCRATCH_EMIF_T_DEN (SRAM_SCRATCH_SPACE_ADDR + 0x10)
-#define OMAP_SRAM_SCRATCH_PRCM_PTR (SRAM_SCRATCH_SPACE_ADDR + 0x14)
-#define OMAP_SRAM_SCRATCH_DPLLS_PTR (SRAM_SCRATCH_SPACE_ADDR + 0x18)
-#define OMAP_SRAM_SCRATCH_VCORES_PTR (SRAM_SCRATCH_SPACE_ADDR + 0x1C)
-#define OMAP4_SRAM_SCRATCH_SYS_CTRL (SRAM_SCRATCH_SPACE_ADDR + 0x20)
-#define OMAP4_SRAM_SCRATCH_SPACE_END (SRAM_SCRATCH_SPACE_ADDR + 0x24)
-
#endif
diff --git a/arch/arm/include/asm/arch-omap5/omap.h b/arch/arm/include/asm/arch-omap5/omap.h
index 3bf5afa..4f43a90 100644
--- a/arch/arm/include/asm/arch-omap5/omap.h
+++ b/arch/arm/include/asm/arch-omap5/omap.h
@@ -191,19 +191,6 @@ struct s32ktimer {
/* base address for indirect vectors (internal boot mode) */
#define SRAM_ROM_VECT_BASE 0x4031F000
-#define SRAM_SCRATCH_SPACE_ADDR NON_SECURE_SRAM_START
-/*
- * SRAM scratch space entries
- */
-#define OMAP5_SRAM_SCRATCH_OMAP5_REV SRAM_SCRATCH_SPACE_ADDR
-#define OMAP5_SRAM_SCRATCH_EMIF_T_NUM (SRAM_SCRATCH_SPACE_ADDR + 0xC)
-#define OMAP5_SRAM_SCRATCH_EMIF_T_DEN (SRAM_SCRATCH_SPACE_ADDR + 0x10)
-#define OMAP_SRAM_SCRATCH_PRCM_PTR (SRAM_SCRATCH_SPACE_ADDR + 0x14)
-#define OMAP_SRAM_SCRATCH_DPLLS_PTR (SRAM_SCRATCH_SPACE_ADDR + 0x18)
-#define OMAP_SRAM_SCRATCH_VCORES_PTR (SRAM_SCRATCH_SPACE_ADDR + 0x1C)
-#define OMAP5_SRAM_SCRATCH_SYS_CTRL (SRAM_SCRATCH_SPACE_ADDR + 0x20)
-#define OMAP5_SRAM_SCRATCH_SPACE_END (SRAM_SCRATCH_SPACE_ADDR + 0x24)
-
/* Silicon revisions */
#define OMAP4430_SILICON_ID_INVALID 0xFFFFFFFF
#define OMAP4430_ES1_0 0x44300100
diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h
index 091ddb5..6b70dbb 100644
--- a/arch/arm/include/asm/omap_common.h
+++ b/arch/arm/include/asm/omap_common.h
@@ -583,4 +583,18 @@ static inline u32 omap_revision(void)
/* DRA7XX */
#define DRA752_ES1_0 0x07520100
+
+/*
+ * SRAM scratch space entries
+ */
+#define SRAM_SCRATCH_SPACE_ADDR NON_SECURE_SRAM_START
+#define OMAP_SRAM_SCRATCH_OMAP_REV SRAM_SCRATCH_SPACE_ADDR
+#define OMAP_SRAM_SCRATCH_EMIF_SIZE (SRAM_SCRATCH_SPACE_ADDR + 0x4)
+#define OMAP_SRAM_SCRATCH_EMIF_T_NUM (SRAM_SCRATCH_SPACE_ADDR + 0xC)
+#define OMAP_SRAM_SCRATCH_EMIF_T_DEN (SRAM_SCRATCH_SPACE_ADDR + 0x10)
+#define OMAP_SRAM_SCRATCH_PRCM_PTR (SRAM_SCRATCH_SPACE_ADDR + 0x14)
+#define OMAP_SRAM_SCRATCH_DPLLS_PTR (SRAM_SCRATCH_SPACE_ADDR + 0x18)
+#define OMAP_SRAM_SCRATCH_VCORES_PTR (SRAM_SCRATCH_SPACE_ADDR + 0x1C)
+#define OMAP_SRAM_SCRATCH_SYS_CTRL (SRAM_SCRATCH_SPACE_ADDR + 0x20)
+#define OMAP_SRAM_SCRATCH_SPACE_END (SRAM_SCRATCH_SPACE_ADDR + 0x24)
#endif /* _OMAP_COMMON_H_ */
--
1.7.9.5
^ permalink raw reply related [flat|nested] 15+ messages in thread* [U-Boot] [PATCH V2 3/5] ARM: OMAP: Correct save_boot_params and replace with 'C' function
2013-04-24 10:41 [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function Sricharan R
2013-04-24 10:41 ` [U-Boot] [PATCH V2 1/5] ARM: OMAP: Make omap_boot_parameters common across socs Sricharan R
2013-04-24 10:41 ` [U-Boot] [PATCH V2 2/5] ARM: OMAP4/5: Make OMAPx_SRAM_SCRATCH_ defines common Sricharan R
@ 2013-04-24 10:41 ` Sricharan R
2013-04-24 10:41 ` [U-Boot] [PATCH V2 4/5] ARM: OMAP: Cleanup boot parameters usage Sricharan R
` (3 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Sricharan R @ 2013-04-24 10:41 UTC (permalink / raw)
To: u-boot
Currently save_boot_params saves the boot parameters passed
from romcode. But this is not stored in a writable location
consistently. So the current code would not work for a
'XIP' boot. Change this by saving the boot parameters in
'gd' which is always writable. Also add a 'C' function
instead of an assembly code that is more readable.
Signed-off-by: Sricharan R <r.sricharan@ti.com>
---
[V2] Fixed comments and rebased on mainline
There is a checkpatch warning because of multiple
assignments in the below mainline.
gd->arch.omap_boot_params.omap_bootdevice = boot_device =
. But the code is better readable this way
arch/arm/cpu/armv7/omap-common/hwinit-common.c | 50 +++++++++++++++++++++---
arch/arm/include/asm/global_data.h | 8 ++++
arch/arm/include/asm/omap_boot.h | 1 +
arch/arm/include/asm/omap_common.h | 4 +-
4 files changed, 56 insertions(+), 7 deletions(-)
diff --git a/arch/arm/cpu/armv7/omap-common/hwinit-common.c b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
index 70d16a8..c710784 100644
--- a/arch/arm/cpu/armv7/omap-common/hwinit-common.c
+++ b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
@@ -101,11 +101,6 @@ void omap_rev_string(void)
}
#ifdef CONFIG_SPL_BUILD
-static void init_boot_params(void)
-{
- boot_params_ptr = (u32 *) &boot_params;
-}
-
void spl_display_print(void)
{
omap_rev_string();
@@ -116,6 +111,42 @@ void __weak srcomp_enable(void)
{
}
+static void save_omap_boot_params(void)
+{
+ u32 rom_params = *((u32 *)OMAP_SRAM_SCRATCH_BOOT_PARAMS);
+ u8 boot_device;
+ u32 dev_desc, dev_data;
+
+ if ((rom_params < NON_SECURE_SRAM_START) ||
+ (rom_params > NON_SECURE_SRAM_END))
+ return;
+
+ /*
+ * rom_params can be type casted to omap_boot_parameters and
+ * used. But it not correct to assume that romcode structure
+ * encoding would be same as u-boot. So use the defined offsets.
+ */
+ gd->arch.omap_boot_params.omap_bootdevice = boot_device =
+ *((u8 *)(rom_params + BOOT_DEVICE_OFFSET));
+
+ gd->arch.omap_boot_params.ch_flags =
+ *((u8 *)(rom_params + CH_FLAGS_OFFSET));
+
+ if ((boot_device >= MMC_BOOT_DEVICES_START) &&
+ (boot_device <= MMC_BOOT_DEVICES_END)) {
+ if ((omap_hw_init_context() ==
+ OMAP_INIT_CONTEXT_UBOOT_AFTER_SPL)) {
+ gd->arch.omap_boot_params.omap_bootmode =
+ *((u8 *)(rom_params + BOOT_MODE_OFFSET));
+ } else {
+ dev_desc = *((u32 *)(rom_params + DEV_DESC_PTR_OFFSET));
+ dev_data = *((u32 *)(dev_desc + DEV_DATA_PTR_OFFSET));
+ gd->arch.omap_boot_params.omap_bootmode =
+ *((u32 *)(dev_data + BOOT_MODE_OFFSET));
+ }
+ }
+}
+
/*
* Routine: s_init
* Description: Does early system init of watchdog, muxing, andclocks
@@ -132,6 +163,14 @@ void __weak srcomp_enable(void)
*/
void s_init(void)
{
+ /*
+ * Save the boot parameters passed from romcode.
+ * We cannot delay the saving further than this,
+ * to prevent overwrites.
+ */
+#ifdef CONFIG_SPL_BUILD
+ save_omap_boot_params();
+#endif
init_omap_revision();
hw_data_init();
@@ -156,7 +195,6 @@ void s_init(void)
/* For regular u-boot sdram_init() is called from dram_init() */
sdram_init();
- init_boot_params();
#endif
}
diff --git a/arch/arm/include/asm/global_data.h b/arch/arm/include/asm/global_data.h
index 37ac0da..7611d0a 100644
--- a/arch/arm/include/asm/global_data.h
+++ b/arch/arm/include/asm/global_data.h
@@ -24,6 +24,10 @@
#ifndef __ASM_GBL_DATA_H
#define __ASM_GBL_DATA_H
+#ifdef CONFIG_OMAP
+#include <asm/omap_boot.h>
+#endif
+
/* Architecture-specific global data */
struct arch_global_data {
#if defined(CONFIG_FSL_ESDHC)
@@ -51,6 +55,10 @@ struct arch_global_data {
unsigned long tlb_addr;
unsigned long tlb_size;
#endif
+
+#ifdef CONFIG_OMAP
+ struct omap_boot_parameters omap_boot_params;
+#endif
};
#include <asm-generic/global_data.h>
diff --git a/arch/arm/include/asm/omap_boot.h b/arch/arm/include/asm/omap_boot.h
index 87a9530..a803965 100644
--- a/arch/arm/include/asm/omap_boot.h
+++ b/arch/arm/include/asm/omap_boot.h
@@ -45,5 +45,6 @@ struct omap_boot_parameters {
unsigned char omap_bootdevice;
unsigned char reset_reason;
unsigned char ch_flags;
+ unsigned long omap_bootmode;
};
#endif
diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h
index 6b70dbb..6b73d86 100644
--- a/arch/arm/include/asm/omap_common.h
+++ b/arch/arm/include/asm/omap_common.h
@@ -596,5 +596,7 @@ static inline u32 omap_revision(void)
#define OMAP_SRAM_SCRATCH_DPLLS_PTR (SRAM_SCRATCH_SPACE_ADDR + 0x18)
#define OMAP_SRAM_SCRATCH_VCORES_PTR (SRAM_SCRATCH_SPACE_ADDR + 0x1C)
#define OMAP_SRAM_SCRATCH_SYS_CTRL (SRAM_SCRATCH_SPACE_ADDR + 0x20)
-#define OMAP_SRAM_SCRATCH_SPACE_END (SRAM_SCRATCH_SPACE_ADDR + 0x24)
+#define OMAP_SRAM_SCRATCH_BOOT_PARAMS (SRAM_SCRATCH_SPACE_ADDR + 0x24)
+#define OMAP5_SRAM_SCRATCH_SPACE_END (SRAM_SCRATCH_SPACE_ADDR + 0x28)
+
#endif /* _OMAP_COMMON_H_ */
--
1.7.9.5
^ permalink raw reply related [flat|nested] 15+ messages in thread* [U-Boot] [PATCH V2 4/5] ARM: OMAP: Cleanup boot parameters usage
2013-04-24 10:41 [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function Sricharan R
` (2 preceding siblings ...)
2013-04-24 10:41 ` [U-Boot] [PATCH V2 3/5] ARM: OMAP: Correct save_boot_params and replace with 'C' function Sricharan R
@ 2013-04-24 10:41 ` Sricharan R
2013-05-08 17:56 ` Tom Rini
2013-04-24 10:41 ` [U-Boot] [PATCH V2 5/5] ARM: OMAP: Add arch_cpu_init function Sricharan R
` (2 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Sricharan R @ 2013-04-24 10:41 UTC (permalink / raw)
To: u-boot
The boot parameters are read from individual variables
assigned for each of them. This been corrected and now
they are stored as a part of the global data 'gd'
structure. So read them from 'gd' instead.
Signed-off-by: Sricharan R <r.sricharan@ti.com>
---
[V2] Addressed comments and rebased on mainline.
arch/arm/cpu/armv7/lowlevel_init.S | 8 +++-
arch/arm/cpu/armv7/omap-common/boot-common.c | 31 +++++++--------
arch/arm/cpu/armv7/omap-common/lowlevel_init.S | 50 +-----------------------
arch/arm/include/asm/arch-omap4/sys_proto.h | 11 ++----
arch/arm/include/asm/arch-omap5/sys_proto.h | 12 ++----
arch/arm/include/asm/omap_common.h | 3 ++
common/spl/spl.c | 10 ++---
include/configs/am335x_evm.h | 1 +
include/configs/pcm051.h | 1 +
include/configs/ti814x_evm.h | 1 +
include/spl.h | 1 -
11 files changed, 38 insertions(+), 91 deletions(-)
diff --git a/arch/arm/cpu/armv7/lowlevel_init.S b/arch/arm/cpu/armv7/lowlevel_init.S
index 0d45528..0a15aa4 100644
--- a/arch/arm/cpu/armv7/lowlevel_init.S
+++ b/arch/arm/cpu/armv7/lowlevel_init.S
@@ -37,7 +37,13 @@ ENTRY(lowlevel_init)
*/
ldr sp, =CONFIG_SYS_INIT_SP_ADDR
bic sp, sp, #7 /* 8-byte alignment for ABI compliance */
-
+#ifdef CONFIG_SPL_BUILD
+ ldr r8, =gdata
+#else
+ sub sp, #GD_SIZE
+ bic sp, sp, #7
+ mov r8, sp
+#endif
/*
* Save the old lr(passed in ip) and the current lr to stack
*/
diff --git a/arch/arm/cpu/armv7/omap-common/boot-common.c b/arch/arm/cpu/armv7/omap-common/boot-common.c
index 24cbe2d..bff7e9c 100644
--- a/arch/arm/cpu/armv7/omap-common/boot-common.c
+++ b/arch/arm/cpu/armv7/omap-common/boot-common.c
@@ -23,31 +23,17 @@
#include <asm/arch/mmc_host_def.h>
#include <asm/arch/sys_proto.h>
-/*
- * This is used to verify if the configuration header
- * was executed by rom code prior to control of transfer
- * to the bootloader. SPL is responsible for saving and
- * passing the boot_params pointer to the u-boot.
- */
-struct omap_boot_parameters boot_params __attribute__ ((section(".data")));
+DECLARE_GLOBAL_DATA_PTR;
#ifdef CONFIG_SPL_BUILD
-/*
- * We use static variables because global data is not ready yet.
- * Initialized data is available in SPL right from the beginning.
- * We would not typically need to save these parameters in regular
- * U-Boot. This is needed only in SPL at the moment.
- */
-u32 omap_bootmode = MMCSD_MODE_FAT;
-
u32 spl_boot_device(void)
{
- return (u32) (boot_params.omap_bootdevice);
+ return (u32) (gd->arch.omap_boot_params.omap_bootdevice);
}
u32 spl_boot_mode(void)
{
- return omap_bootmode;
+ return gd->arch.omap_boot_params.omap_bootmode;
}
void spl_board_init(void)
@@ -73,4 +59,15 @@ int board_mmc_init(bd_t *bis)
}
return 0;
}
+
+void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
+{
+ typedef void __noreturn (*image_entry_noargs_t)(u32 *);
+ image_entry_noargs_t image_entry =
+ (image_entry_noargs_t) spl_image->entry_point;
+
+ debug("image entry point: 0x%X\n", spl_image->entry_point);
+ /* Pass the saved boot_params from rom code */
+ image_entry((u32 *)&gd->arch.omap_boot_params);
+}
#endif
diff --git a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S
index 90b3c8a..c489536 100644
--- a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S
+++ b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S
@@ -28,59 +28,13 @@
#include <config.h>
#include <asm/arch/omap.h>
+#include <asm/omap_common.h>
#include <asm/arch/spl.h>
#include <linux/linkage.h>
ENTRY(save_boot_params)
- /*
- * See if the rom code passed pointer is valid:
- * It is not valid if it is not in non-secure SRAM
- * This may happen if you are booting with the help of
- * debugger
- */
- ldr r2, =NON_SECURE_SRAM_START
- cmp r2, r0
- bgt 1f
- ldr r2, =NON_SECURE_SRAM_END
- cmp r2, r0
- blt 1f
-
- /*
- * store the boot params passed from rom code or saved
- * and passed by SPL
- */
- cmp r0, #0
- beq 1f
- ldr r1, =boot_params
+ ldr r1, =OMAP_SRAM_SCRATCH_BOOT_PARAMS
str r0, [r1]
-#ifdef CONFIG_SPL_BUILD
- /* Store the boot device in spl_boot_device */
- ldrb r2, [r0, #BOOT_DEVICE_OFFSET] @ r1 <- value of boot device
- and r2, #BOOT_DEVICE_MASK
- ldr r3, =boot_params
- strb r2, [r3, #BOOT_DEVICE_OFFSET] @ spl_boot_device <- r1
-
- /*
- * boot mode is only valid for device that can be raw or FAT booted.
- * in other cases it may be fatal to look. While platforms differ
- * in the values used for each MMC slot, they are contiguous.
- */
- cmp r2, #MMC_BOOT_DEVICES_START
- blt 2f
- cmp r2, #MMC_BOOT_DEVICES_END
- bgt 2f
- /* Store the boot mode (raw/FAT) in omap_bootmode */
- ldr r2, [r0, #DEV_DESC_PTR_OFFSET] @ get the device descriptor ptr
- ldr r2, [r2, #DEV_DATA_PTR_OFFSET] @ get the pDeviceData ptr
- ldr r2, [r2, #BOOT_MODE_OFFSET] @ get the boot mode
- ldr r3, =omap_bootmode
- str r2, [r3]
-#endif
-2:
- ldrb r2, [r0, #CH_FLAGS_OFFSET]
- ldr r3, =boot_params
- strb r2, [r3, #CH_FLAGS_OFFSET]
-1:
bx lr
ENDPROC(save_boot_params)
diff --git a/arch/arm/include/asm/arch-omap4/sys_proto.h b/arch/arm/include/asm/arch-omap4/sys_proto.h
index d5f1868..841388a 100644
--- a/arch/arm/include/asm/arch-omap4/sys_proto.h
+++ b/arch/arm/include/asm/arch-omap4/sys_proto.h
@@ -27,6 +27,8 @@
#include <asm/omap_common.h>
#include <asm/arch/mux_omap4.h>
+DECLARE_GLOBAL_DATA_PTR;
+
struct omap_sysinfo {
char *board_string;
};
@@ -58,13 +60,6 @@ void omap_vc_init(u16 speed_khz);
int omap_vc_bypass_send_value(u8 sa, u8 reg_addr, u8 reg_data);
u32 warm_reset(void);
void force_emif_self_refresh(void);
-/*
- * This is used to verify if the configuration header
- * was executed by Romcode prior to control of transfer
- * to the bootloader. SPL is responsible for saving and
- * passing this to the u-boot.
- */
-extern struct omap_boot_parameters boot_params;
static inline u32 running_from_sdram(void)
{
@@ -84,7 +79,7 @@ static inline u8 uboot_loaded_by_spl(void)
* variable by both SPL and u-boot.Check out for CHSETTINGS, which is a
* mandatory section if CH is present.
*/
- if ((boot_params.ch_flags) & (CH_FLAGS_CHSETTINGS))
+ if ((gd->arch.omap_boot_params.ch_flags) & (CH_FLAGS_CHSETTINGS))
return 0;
else
return running_from_sdram();
diff --git a/arch/arm/include/asm/arch-omap5/sys_proto.h b/arch/arm/include/asm/arch-omap5/sys_proto.h
index e66ab44..1099ec3 100644
--- a/arch/arm/include/asm/arch-omap5/sys_proto.h
+++ b/arch/arm/include/asm/arch-omap5/sys_proto.h
@@ -27,6 +27,8 @@
#include <asm/omap_common.h>
#include <asm/arch/clocks.h>
+DECLARE_GLOBAL_DATA_PTR;
+
struct pad_conf_entry {
u32 offset;
u32 val;
@@ -65,14 +67,6 @@ void force_emif_self_refresh(void);
void get_ioregs(const struct ctrl_ioregs **regs);
void srcomp_enable(void);
-/*
- * This is used to verify if the configuration header
- * was executed by Romcode prior to control of transfer
- * to the bootloader. SPL is responsible for saving and
- * passing this to the u-boot.
- */
-extern struct omap_boot_parameters boot_params;
-
static inline u32 running_from_sdram(void)
{
u32 pc;
@@ -91,7 +85,7 @@ static inline u8 uboot_loaded_by_spl(void)
* variable by both SPL and u-boot.Check out for CHSETTINGS, which is a
* mandatory section if CH is present.
*/
- if ((boot_params.ch_flags) & (CH_FLAGS_CHSETTINGS))
+ if ((gd->arch.omap_boot_params.ch_flags) & (CH_FLAGS_CHSETTINGS))
return 0;
else
return running_from_sdram();
diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h
index 6b73d86..9db4b1b 100644
--- a/arch/arm/include/asm/omap_common.h
+++ b/arch/arm/include/asm/omap_common.h
@@ -25,6 +25,8 @@
#ifndef _OMAP_COMMON_H_
#define _OMAP_COMMON_H_
+#ifndef __ASSEMBLY__
+
#include <common.h>
#define NUM_SYS_CLKS 8
@@ -557,6 +559,7 @@ static inline u32 omap_revision(void)
extern u32 *const omap_si_rev;
return *omap_si_rev;
}
+#endif
/*
* silicon revisions.
diff --git a/common/spl/spl.c b/common/spl/spl.c
index 6715e0d..e6aa89b 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -125,17 +125,13 @@ void spl_parse_image_header(const struct image_header *header)
__weak void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
{
- typedef void __noreturn (*image_entry_noargs_t)(u32 *);
+ typedef void __noreturn (*image_entry_noargs_t)(void);
+
image_entry_noargs_t image_entry =
(image_entry_noargs_t) spl_image->entry_point;
debug("image entry point: 0x%X\n", spl_image->entry_point);
- /* Pass the saved boot_params from rom code */
-#if defined(CONFIG_VIRTIO) || defined(CONFIG_ZEBU)
- image_entry = (image_entry_noargs_t)0x80100000;
-#endif
- u32 boot_params_ptr_addr = (u32)&boot_params_ptr;
- image_entry((u32 *)boot_params_ptr_addr);
+ image_entry();
}
#ifdef CONFIG_SPL_RAM_DEVICE
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
index ef00306..ddfd52e 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -17,6 +17,7 @@
#define __CONFIG_AM335X_EVM_H
#define CONFIG_AM33XX
+#define CONFIG_OMAP
#include <asm/arch/omap.h>
diff --git a/include/configs/pcm051.h b/include/configs/pcm051.h
index d0ea74e..5e5fab1 100644
--- a/include/configs/pcm051.h
+++ b/include/configs/pcm051.h
@@ -20,6 +20,7 @@
#define __CONFIG_PCM051_H
#define CONFIG_AM33XX
+#define CONFIG_OMAP
#include <asm/arch/omap.h>
diff --git a/include/configs/ti814x_evm.h b/include/configs/ti814x_evm.h
index 16547e3..68a7307 100644
--- a/include/configs/ti814x_evm.h
+++ b/include/configs/ti814x_evm.h
@@ -19,6 +19,7 @@
#define CONFIG_TI81XX
#define CONFIG_TI814X
#define CONFIG_SYS_NO_FLASH
+#define CONFIG_OMAP
#include <asm/arch/omap.h>
diff --git a/include/spl.h b/include/spl.h
index b40be80..4bc1dd1 100644
--- a/include/spl.h
+++ b/include/spl.h
@@ -44,7 +44,6 @@ struct spl_image_info {
#define SPL_COPY_PAYLOAD_ONLY 1
extern struct spl_image_info spl_image;
-extern u32 *boot_params_ptr;
/* SPL common functions */
void preloader_console_init(void);
--
1.7.9.5
^ permalink raw reply related [flat|nested] 15+ messages in thread* [U-Boot] [PATCH V2 5/5] ARM: OMAP: Add arch_cpu_init function
2013-04-24 10:41 [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function Sricharan R
` (3 preceding siblings ...)
2013-04-24 10:41 ` [U-Boot] [PATCH V2 4/5] ARM: OMAP: Cleanup boot parameters usage Sricharan R
@ 2013-04-24 10:41 ` Sricharan R
2013-05-08 17:56 ` Tom Rini
2013-05-08 9:20 ` [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function Sricharan R
2013-05-31 14:18 ` Tom Rini
6 siblings, 1 reply; 15+ messages in thread
From: Sricharan R @ 2013-04-24 10:41 UTC (permalink / raw)
To: u-boot
The boot parameters passed from SPL to UBOOT
must be saved as a part of uboot's gd data
as early as possible, before we will inadvertently
overwrite it. So adding a arch_cpu_init for the required
Socs to save it.
Signed-off-by: Sricharan R <r.sricharan@ti.com>
---
[V2] Rebased on mainline.
arch/arm/cpu/armv7/omap-common/hwinit-common.c | 11 +++++++++++
include/configs/am335x_evm.h | 3 +++
include/configs/omap4_common.h | 4 ++++
include/configs/omap5_common.h | 3 +++
include/configs/pcm051.h | 3 +++
include/configs/ti814x_evm.h | 3 +++
6 files changed, 27 insertions(+)
diff --git a/arch/arm/cpu/armv7/omap-common/hwinit-common.c b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
index c710784..1645120 100644
--- a/arch/arm/cpu/armv7/omap-common/hwinit-common.c
+++ b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
@@ -147,6 +147,17 @@ static void save_omap_boot_params(void)
}
}
+#ifdef CONFIG_ARCH_CPU_INIT
+/*
+ * SOC specific cpu init
+ */
+int arch_cpu_init(void)
+{
+ save_omap_boot_params();
+ return 0;
+}
+#endif /* CONFIG_ARCH_CPU_INIT */
+
/*
* Routine: s_init
* Description: Does early system init of watchdog, muxing, andclocks
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
index ddfd52e..e5da51c 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -296,6 +296,9 @@
#define CONFIG_SYS_BAUDRATE_TABLE { 110, 300, 600, 1200, 2400, \
4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200 }
+/* CPU */
+#define CONFIG_ARCH_CPU_INIT
+
#define CONFIG_ENV_OVERWRITE 1
#define CONFIG_SYS_CONSOLE_INFO_QUIET
diff --git a/include/configs/omap4_common.h b/include/configs/omap4_common.h
index 1fd3097..2871d87 100644
--- a/include/configs/omap4_common.h
+++ b/include/configs/omap4_common.h
@@ -87,6 +87,10 @@
#define CONFIG_BAUDRATE 115200
#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\
115200}
+
+/* CPU */
+#define CONFIG_ARCH_CPU_INIT
+
/* I2C */
#define CONFIG_HARD_I2C 1
#define CONFIG_SYS_I2C_SPEED 100000
diff --git a/include/configs/omap5_common.h b/include/configs/omap5_common.h
index c21c387..32c113e 100644
--- a/include/configs/omap5_common.h
+++ b/include/configs/omap5_common.h
@@ -86,6 +86,9 @@
#define CONFIG_BAUDRATE 115200
+/* CPU */
+#define CONFIG_ARCH_CPU_INIT
+
/* I2C */
#define CONFIG_HARD_I2C
#define CONFIG_SYS_I2C_SPEED 100000
diff --git a/include/configs/pcm051.h b/include/configs/pcm051.h
index 5e5fab1..9614f70 100644
--- a/include/configs/pcm051.h
+++ b/include/configs/pcm051.h
@@ -195,6 +195,9 @@
#define CONFIG_SYS_BAUDRATE_TABLE { 110, 300, 600, 1200, 2400, \
4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200 }
+/* CPU */
+#define CONFIG_ARCH_CPU_INIT
+
#define CONFIG_ENV_OVERWRITE
#define CONFIG_SYS_CONSOLE_INFO_QUIET
diff --git a/include/configs/ti814x_evm.h b/include/configs/ti814x_evm.h
index 68a7307..8ba1e1b 100644
--- a/include/configs/ti814x_evm.h
+++ b/include/configs/ti814x_evm.h
@@ -163,6 +163,9 @@
#define CONFIG_BAUDRATE 115200
+/* CPU */
+#define CONFIG_ARCH_CPU_INIT
+
#define CONFIG_ENV_OVERWRITE
#define CONFIG_CONS_INDEX 1
#define CONFIG_SYS_CONSOLE_INFO_QUIET
--
1.7.9.5
^ permalink raw reply related [flat|nested] 15+ messages in thread* [U-Boot] [PATCH V2 5/5] ARM: OMAP: Add arch_cpu_init function
2013-04-24 10:41 ` [U-Boot] [PATCH V2 5/5] ARM: OMAP: Add arch_cpu_init function Sricharan R
@ 2013-05-08 17:56 ` Tom Rini
0 siblings, 0 replies; 15+ messages in thread
From: Tom Rini @ 2013-05-08 17:56 UTC (permalink / raw)
To: u-boot
On Wed, Apr 24, 2013 at 04:11:25PM +0530, Sricharan R wrote:
> The boot parameters passed from SPL to UBOOT
> must be saved as a part of uboot's gd data
> as early as possible, before we will inadvertently
> overwrite it. So adding a arch_cpu_init for the required
> Socs to save it.
>
> Signed-off-by: Sricharan R <r.sricharan@ti.com>
With the following change, applied to u-boot-ti/master, thanks!
diff --git a/include/configs/igep0033.h b/include/configs/igep0033.h
index 50eafdf..38a2755 100644
--- a/include/configs/igep0033.h
+++ b/include/configs/igep0033.h
@@ -156,6 +156,9 @@
#define CONFIG_CONS_INDEX 1
#define CONFIG_BAUDRATE 115200
+/* CPU */
+#define CONFIG_ARCH_CPU_INIT
+
#define CONFIG_ENV_OVERWRITE 1
#define CONFIG_SYS_CONSOLE_INFO_QUIET
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130508/e8351823/attachment.pgp>
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function
2013-04-24 10:41 [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function Sricharan R
` (4 preceding siblings ...)
2013-04-24 10:41 ` [U-Boot] [PATCH V2 5/5] ARM: OMAP: Add arch_cpu_init function Sricharan R
@ 2013-05-08 9:20 ` Sricharan R
2013-05-08 17:56 ` Tom Rini
2013-05-31 14:18 ` Tom Rini
6 siblings, 1 reply; 15+ messages in thread
From: Sricharan R @ 2013-05-08 9:20 UTC (permalink / raw)
To: u-boot
Tom,
On Wednesday 24 April 2013 04:11 PM, Sricharan R wrote:
> The save_boot_params function does not store the data in a
> always writable area. So the code is broken for a 'XIP' boot.
> This series corrects this by storing it in 'gd' and also
> adds a 'C' equivalent function for the same. The essential cleanups
> for the same are added in this.
>
> Tested this on omap5 uevm board with SD/EMMC boot.
> omap4/5 boards does not have a XIP flash.
> So yet to test XIP with this series.
>
> Also verfied a MAKEALL for armv7.
>
> Sricharan R (5):
> ARM: OMAP: Make omap_boot_parameters common across socs
> ARM: OMAP4/5: Make OMAPx_SRAM_SCRATCH_ defines common
> ARM: OMAP: Correct save_boot_params and replace with 'C' function
> ARM: OMAP: Cleanup boot parameters usage
> ARM: OMAP: Add arch_cpu_init function
>
> arch/arm/cpu/armv7/lowlevel_init.S | 8 +++-
> arch/arm/cpu/armv7/omap-common/boot-common.c | 20 ++------
> arch/arm/cpu/armv7/omap-common/hwinit-common.c | 61 +++++++++++++++++++++---
> arch/arm/cpu/armv7/omap-common/lowlevel_init.S | 50 +------------------
> arch/arm/cpu/armv7/omap4/emif.c | 4 +-
> arch/arm/cpu/armv7/omap4/hw_data.c | 2 +-
> arch/arm/cpu/armv7/omap4/hwinit.c | 3 +-
> arch/arm/cpu/armv7/omap5/emif.c | 4 +-
> arch/arm/cpu/armv7/omap5/hw_data.c | 2 +-
> arch/arm/cpu/armv7/omap5/hwinit.c | 3 +-
> arch/arm/include/asm/arch-am33xx/omap.h | 25 ----------
> arch/arm/include/asm/arch-omap4/omap.h | 36 --------------
> arch/arm/include/asm/arch-omap4/sys_proto.h | 11 ++---
> arch/arm/include/asm/arch-omap5/omap.h | 36 --------------
> arch/arm/include/asm/arch-omap5/sys_proto.h | 12 ++---
> arch/arm/include/asm/global_data.h | 8 ++++
> arch/arm/include/asm/omap_boot.h | 50 +++++++++++++++++++
> arch/arm/include/asm/omap_common.h | 19 ++++++++
> common/spl/spl.c | 12 +++--
> include/configs/am335x_evm.h | 4 ++
> include/configs/omap4_common.h | 4 ++
> include/configs/omap5_common.h | 3 ++
> include/configs/pcm051.h | 4 ++
> include/configs/ti814x_evm.h | 4 ++
> include/spl.h | 1 -
> 25 files changed, 187 insertions(+), 199 deletions(-)
> create mode 100644 arch/arm/include/asm/omap_boot.h
>
Does this look ok, go to get in ?
Regards,
Sricharan
^ permalink raw reply [flat|nested] 15+ messages in thread* [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function
2013-05-08 9:20 ` [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function Sricharan R
@ 2013-05-08 17:56 ` Tom Rini
2013-05-09 6:04 ` Sricharan R
0 siblings, 1 reply; 15+ messages in thread
From: Tom Rini @ 2013-05-08 17:56 UTC (permalink / raw)
To: u-boot
On Wed, May 08, 2013 at 02:50:14PM +0530, Sricharan R wrote:
> Tom,
>
> On Wednesday 24 April 2013 04:11 PM, Sricharan R wrote:
> > The save_boot_params function does not store the data in a
> > always writable area. So the code is broken for a 'XIP' boot.
> > This series corrects this by storing it in 'gd' and also
> > adds a 'C' equivalent function for the same. The essential cleanups
> > for the same are added in this.
> >
> > Tested this on omap5 uevm board with SD/EMMC boot.
> > omap4/5 boards does not have a XIP flash.
> > So yet to test XIP with this series.
> >
> > Also verfied a MAKEALL for armv7.
> >
> > Sricharan R (5):
> > ARM: OMAP: Make omap_boot_parameters common across socs
> > ARM: OMAP4/5: Make OMAPx_SRAM_SCRATCH_ defines common
> > ARM: OMAP: Correct save_boot_params and replace with 'C' function
> > ARM: OMAP: Cleanup boot parameters usage
> > ARM: OMAP: Add arch_cpu_init function
> >
> > arch/arm/cpu/armv7/lowlevel_init.S | 8 +++-
> > arch/arm/cpu/armv7/omap-common/boot-common.c | 20 ++------
> > arch/arm/cpu/armv7/omap-common/hwinit-common.c | 61 +++++++++++++++++++++---
> > arch/arm/cpu/armv7/omap-common/lowlevel_init.S | 50 +------------------
> > arch/arm/cpu/armv7/omap4/emif.c | 4 +-
> > arch/arm/cpu/armv7/omap4/hw_data.c | 2 +-
> > arch/arm/cpu/armv7/omap4/hwinit.c | 3 +-
> > arch/arm/cpu/armv7/omap5/emif.c | 4 +-
> > arch/arm/cpu/armv7/omap5/hw_data.c | 2 +-
> > arch/arm/cpu/armv7/omap5/hwinit.c | 3 +-
> > arch/arm/include/asm/arch-am33xx/omap.h | 25 ----------
> > arch/arm/include/asm/arch-omap4/omap.h | 36 --------------
> > arch/arm/include/asm/arch-omap4/sys_proto.h | 11 ++---
> > arch/arm/include/asm/arch-omap5/omap.h | 36 --------------
> > arch/arm/include/asm/arch-omap5/sys_proto.h | 12 ++---
> > arch/arm/include/asm/global_data.h | 8 ++++
> > arch/arm/include/asm/omap_boot.h | 50 +++++++++++++++++++
> > arch/arm/include/asm/omap_common.h | 19 ++++++++
> > common/spl/spl.c | 12 +++--
> > include/configs/am335x_evm.h | 4 ++
> > include/configs/omap4_common.h | 4 ++
> > include/configs/omap5_common.h | 3 ++
> > include/configs/pcm051.h | 4 ++
> > include/configs/ti814x_evm.h | 4 ++
> > include/spl.h | 1 -
> > 25 files changed, 187 insertions(+), 199 deletions(-)
> > create mode 100644 arch/arm/include/asm/omap_boot.h
> >
> Does this look ok, go to get in ?
With the posted changes to 4 and 5 (for platforms that are new to
u-boot-ti/master), applied, thanks for the reminder!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130508/27ddc35e/attachment.pgp>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function
2013-05-08 17:56 ` Tom Rini
@ 2013-05-09 6:04 ` Sricharan R
0 siblings, 0 replies; 15+ messages in thread
From: Sricharan R @ 2013-05-09 6:04 UTC (permalink / raw)
To: u-boot
Hi Tom,
On Wednesday 08 May 2013 11:26 PM, Tom Rini wrote:
> On Wed, May 08, 2013 at 02:50:14PM +0530, Sricharan R wrote:
>> Tom,
>>
>> On Wednesday 24 April 2013 04:11 PM, Sricharan R wrote:
>>> The save_boot_params function does not store the data in a
>>> always writable area. So the code is broken for a 'XIP' boot.
>>> This series corrects this by storing it in 'gd' and also
>>> adds a 'C' equivalent function for the same. The essential cleanups
>>> for the same are added in this.
>>>
>>> Tested this on omap5 uevm board with SD/EMMC boot.
>>> omap4/5 boards does not have a XIP flash.
>>> So yet to test XIP with this series.
>>>
>>> Also verfied a MAKEALL for armv7.
>>>
>>> Sricharan R (5):
>>> ARM: OMAP: Make omap_boot_parameters common across socs
>>> ARM: OMAP4/5: Make OMAPx_SRAM_SCRATCH_ defines common
>>> ARM: OMAP: Correct save_boot_params and replace with 'C' function
>>> ARM: OMAP: Cleanup boot parameters usage
>>> ARM: OMAP: Add arch_cpu_init function
>>>
>>> arch/arm/cpu/armv7/lowlevel_init.S | 8 +++-
>>> arch/arm/cpu/armv7/omap-common/boot-common.c | 20 ++------
>>> arch/arm/cpu/armv7/omap-common/hwinit-common.c | 61 +++++++++++++++++++++---
>>> arch/arm/cpu/armv7/omap-common/lowlevel_init.S | 50 +------------------
>>> arch/arm/cpu/armv7/omap4/emif.c | 4 +-
>>> arch/arm/cpu/armv7/omap4/hw_data.c | 2 +-
>>> arch/arm/cpu/armv7/omap4/hwinit.c | 3 +-
>>> arch/arm/cpu/armv7/omap5/emif.c | 4 +-
>>> arch/arm/cpu/armv7/omap5/hw_data.c | 2 +-
>>> arch/arm/cpu/armv7/omap5/hwinit.c | 3 +-
>>> arch/arm/include/asm/arch-am33xx/omap.h | 25 ----------
>>> arch/arm/include/asm/arch-omap4/omap.h | 36 --------------
>>> arch/arm/include/asm/arch-omap4/sys_proto.h | 11 ++---
>>> arch/arm/include/asm/arch-omap5/omap.h | 36 --------------
>>> arch/arm/include/asm/arch-omap5/sys_proto.h | 12 ++---
>>> arch/arm/include/asm/global_data.h | 8 ++++
>>> arch/arm/include/asm/omap_boot.h | 50 +++++++++++++++++++
>>> arch/arm/include/asm/omap_common.h | 19 ++++++++
>>> common/spl/spl.c | 12 +++--
>>> include/configs/am335x_evm.h | 4 ++
>>> include/configs/omap4_common.h | 4 ++
>>> include/configs/omap5_common.h | 3 ++
>>> include/configs/pcm051.h | 4 ++
>>> include/configs/ti814x_evm.h | 4 ++
>>> include/spl.h | 1 -
>>> 25 files changed, 187 insertions(+), 199 deletions(-)
>>> create mode 100644 arch/arm/include/asm/omap_boot.h
>>>
>> Does this look ok, go to get in ?
> With the posted changes to 4 and 5 (for platforms that are new to
> u-boot-ti/master), applied, thanks for the reminder!
>
Thanks for it !!
Regards,
Sricharan
^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function
2013-04-24 10:41 [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function Sricharan R
` (5 preceding siblings ...)
2013-05-08 9:20 ` [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function Sricharan R
@ 2013-05-31 14:18 ` Tom Rini
2013-05-31 14:22 ` Tom Rini
6 siblings, 1 reply; 15+ messages in thread
From: Tom Rini @ 2013-05-31 14:18 UTC (permalink / raw)
To: u-boot
On Wed, Apr 24, 2013 at 04:11:20PM +0530, Sricharan R wrote:
> The save_boot_params function does not store the data in a
> always writable area. So the code is broken for a 'XIP' boot.
> This series corrects this by storing it in 'gd' and also
> adds a 'C' equivalent function for the same. The essential cleanups
> for the same are added in this.
>
> Tested this on omap5 uevm board with SD/EMMC boot.
> omap4/5 boards does not have a XIP flash.
> So yet to test XIP with this series.
>
> Also verfied a MAKEALL for armv7.
OK, do you have a beaglebone or am335x_evm around? This switch up
breaks them, and I'm not sure what's going on. Part of the issue is
that the NON_SECURE_SRAM_START/END weren't quite right, but they weren't
so wrong as to be a problem (END wasn't quite the end, and start was in
the middle of our image, but we didn't reference it). I'm going to keep
poking at this as well. Thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130531/ecae476c/attachment.pgp>
^ permalink raw reply [flat|nested] 15+ messages in thread* [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function
2013-05-31 14:18 ` Tom Rini
@ 2013-05-31 14:22 ` Tom Rini
2013-06-03 6:09 ` Sricharan R
0 siblings, 1 reply; 15+ messages in thread
From: Tom Rini @ 2013-05-31 14:22 UTC (permalink / raw)
To: u-boot
On Fri, May 31, 2013 at 10:18:46AM -0400, Tom Rini wrote:
> On Wed, Apr 24, 2013 at 04:11:20PM +0530, Sricharan R wrote:
>
> > The save_boot_params function does not store the data in a
> > always writable area. So the code is broken for a 'XIP' boot.
> > This series corrects this by storing it in 'gd' and also
> > adds a 'C' equivalent function for the same. The essential cleanups
> > for the same are added in this.
> >
> > Tested this on omap5 uevm board with SD/EMMC boot.
> > omap4/5 boards does not have a XIP flash.
> > So yet to test XIP with this series.
> >
> > Also verfied a MAKEALL for armv7.
>
> OK, do you have a beaglebone or am335x_evm around? This switch up
> breaks them, and I'm not sure what's going on. Part of the issue is
> that the NON_SECURE_SRAM_START/END weren't quite right, but they weren't
> so wrong as to be a problem (END wasn't quite the end, and start was in
> the middle of our image, but we didn't reference it). I'm going to keep
> poking at this as well. Thanks!
Answered my own question now, am33xx (andti81xx) doesn't opt-in for
omap-common/hwinit-common.c
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130531/512d60dd/attachment.pgp>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function
2013-05-31 14:22 ` Tom Rini
@ 2013-06-03 6:09 ` Sricharan R
2013-06-03 7:26 ` Sricharan R
0 siblings, 1 reply; 15+ messages in thread
From: Sricharan R @ 2013-06-03 6:09 UTC (permalink / raw)
To: u-boot
Hi Tom,
On Friday 31 May 2013 07:52 PM, Tom Rini wrote:
> On Fri, May 31, 2013 at 10:18:46AM -0400, Tom Rini wrote:
>> On Wed, Apr 24, 2013 at 04:11:20PM +0530, Sricharan R wrote:
>>
>>> The save_boot_params function does not store the data in a
>>> always writable area. So the code is broken for a 'XIP' boot.
>>> This series corrects this by storing it in 'gd' and also
>>> adds a 'C' equivalent function for the same. The essential cleanups
>>> for the same are added in this.
>>>
>>> Tested this on omap5 uevm board with SD/EMMC boot.
>>> omap4/5 boards does not have a XIP flash.
>>> So yet to test XIP with this series.
>>>
>>> Also verfied a MAKEALL for armv7.
>> OK, do you have a beaglebone or am335x_evm around? This switch up
>> breaks them, and I'm not sure what's going on. Part of the issue is
>> that the NON_SECURE_SRAM_START/END weren't quite right, but they weren't
>> so wrong as to be a problem (END wasn't quite the end, and start was in
>> the middle of our image, but we didn't reference it). I'm going to keep
>> poking at this as well. Thanks!
> Answered my own question now, am33xx (andti81xx) doesn't opt-in for
> omap-common/hwinit-common.c
>
Ok, Thanks for the pointer. So i will add this in the series.
and boot test once on am33xx
Regards,
Sricharan
^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH V2 0/5] ARM: OMAP: Cleanup save_boot_params function
2013-06-03 6:09 ` Sricharan R
@ 2013-06-03 7:26 ` Sricharan R
0 siblings, 0 replies; 15+ messages in thread
From: Sricharan R @ 2013-06-03 7:26 UTC (permalink / raw)
To: u-boot
On Monday 03 June 2013 11:39 AM, Sricharan R wrote:
> Hi Tom,
>
> On Friday 31 May 2013 07:52 PM, Tom Rini wrote:
>> On Fri, May 31, 2013 at 10:18:46AM -0400, Tom Rini wrote:
>>> On Wed, Apr 24, 2013 at 04:11:20PM +0530, Sricharan R wrote:
>>>
>>>> The save_boot_params function does not store the data in a
>>>> always writable area. So the code is broken for a 'XIP' boot.
>>>> This series corrects this by storing it in 'gd' and also
>>>> adds a 'C' equivalent function for the same. The essential cleanups
>>>> for the same are added in this.
>>>>
>>>> Tested this on omap5 uevm board with SD/EMMC boot.
>>>> omap4/5 boards does not have a XIP flash.
>>>> So yet to test XIP with this series.
>>>>
>>>> Also verfied a MAKEALL for armv7.
>>> OK, do you have a beaglebone or am335x_evm around? This switch up
>>> breaks them, and I'm not sure what's going on. Part of the issue is
>>> that the NON_SECURE_SRAM_START/END weren't quite right, but they weren't
>>> so wrong as to be a problem (END wasn't quite the end, and start was in
>>> the middle of our image, but we didn't reference it). I'm going to keep
>>> poking at this as well. Thanks!
>> Answered my own question now, am33xx (andti81xx) doesn't opt-in for
>> omap-common/hwinit-common.c
>>
> Ok, Thanks for the pointer. So i will add this in the series.
> and boot test once on am33xx
Ok, you have already addressed this . Thanks a lot..
Regards,
Sricharan
^ permalink raw reply [flat|nested] 15+ messages in thread