* [U-Boot] [PATCH 3/3] m68k: add generic-board support
@ 2015-02-12 0:40 Angelo Dureghello
2015-03-06 15:46 ` [U-Boot] [U-Boot,3/3] " Tom Rini
2015-03-07 8:00 ` [U-Boot] [PATCH 3/3] " Jan Kiszka
0 siblings, 2 replies; 3+ messages in thread
From: Angelo Dureghello @ 2015-02-12 0:40 UTC (permalink / raw)
To: u-boot
Add generic-board support for the m68k architecture.
Signed-off-by: Angelo Dureghello <angelo@sysam.it>
---
arch/m68k/config.mk | 3 +++
arch/m68k/include/asm/config.h | 3 +++
arch/m68k/include/asm/u-boot.h | 8 ++++++++
arch/m68k/lib/Makefile | 4 +++-
common/board_f.c | 22 ++++++++++++++++------
common/board_r.c | 22 +++++++---------------
include/asm-generic/u-boot.h | 2 +-
7 files changed, 41 insertions(+), 23 deletions(-)
diff --git a/arch/m68k/config.mk b/arch/m68k/config.mk
index 3b3a7e8..a629b68 100644
--- a/arch/m68k/config.mk
+++ b/arch/m68k/config.mk
@@ -11,6 +11,9 @@ endif
CONFIG_STANDALONE_LOAD_ADDR ?= 0x20000
+# Support generic board on m68k
+__HAVE_ARCH_GENERIC_BOARD := y
+
PLATFORM_CPPFLAGS += -D__M68K__
PLATFORM_LDFLAGS += -n
PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
diff --git a/arch/m68k/include/asm/config.h b/arch/m68k/include/asm/config.h
index 9c4d3fb..7590842 100644
--- a/arch/m68k/include/asm/config.h
+++ b/arch/m68k/include/asm/config.h
@@ -7,6 +7,9 @@
#ifndef _ASM_CONFIG_H_
#define _ASM_CONFIG_H_
+#define CONFIG_SYS_GENERIC_BOARD
+#define CONFIG_SYS_GENERIC_GLOBAL_DATA
+
#define CONFIG_NEEDS_MANUAL_RELOC
#define CONFIG_LMB
diff --git a/arch/m68k/include/asm/u-boot.h b/arch/m68k/include/asm/u-boot.h
index 983cb2d..911c0d3 100644
--- a/arch/m68k/include/asm/u-boot.h
+++ b/arch/m68k/include/asm/u-boot.h
@@ -20,6 +20,11 @@
* include/asm-ppc/u-boot.h
*/
+#ifdef CONFIG_SYS_GENERIC_BOARD
+/* Use the generic board which requires a unified bd_info */
+#include <asm-generic/u-boot.h>
+#else
+
#ifndef __ASSEMBLY__
typedef struct bd_info {
@@ -48,6 +53,9 @@ typedef struct bd_info {
#endif /* __ASSEMBLY__ */
+#endif /* !CONFIG_SYS_GENERIC_BOARD */
+
+
/* For image.h:image_check_target_arch() */
#define IH_ARCH_DEFAULT IH_ARCH_M68K
diff --git a/arch/m68k/lib/Makefile b/arch/m68k/lib/Makefile
index 65867d6..d0e1a84 100644
--- a/arch/m68k/lib/Makefile
+++ b/arch/m68k/lib/Makefile
@@ -5,7 +5,9 @@
# SPDX-License-Identifier: GPL-2.0+
#
-obj-y += board.o
+ifndef CONFIG_SYS_GENERIC_BOARD
+obj-y += board.o
+endif
obj-$(CONFIG_CMD_BOOTM) += bootm.o
obj-y += cache.o
obj-y += interrupts.o
diff --git a/common/board_f.c b/common/board_f.c
index bdad36b..0de3919 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -174,7 +174,7 @@ static int announce_dram_init(void)
return 0;
}
-#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
+#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_M68K)
static int init_func_ram(void)
{
#ifdef CONFIG_BOARD_TYPES
@@ -624,7 +624,7 @@ static int display_new_sp(void)
return 0;
}
-#ifdef CONFIG_PPC
+#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
static int setup_board_part1(void)
{
bd_t *bd = gd->bd;
@@ -645,7 +645,7 @@ static int setup_board_part1(void)
defined(CONFIG_E500) || defined(CONFIG_MPC86xx)
bd->bi_immr_base = CONFIG_SYS_IMMR; /* base of IMMR register */
#endif
-#if defined(CONFIG_MPC5xxx)
+#if defined(CONFIG_MPC5xxx) || defined(CONFIG_M68K)
bd->bi_mbar_base = CONFIG_SYS_MBAR; /* base of internal registers */
#endif
#if defined(CONFIG_MPC83xx)
@@ -735,6 +735,13 @@ static int setup_reloc(void)
{
#ifdef CONFIG_SYS_TEXT_BASE
gd->reloc_off = gd->relocaddr - CONFIG_SYS_TEXT_BASE;
+#ifdef CONFIG_M68K
+ /*
+ * On all ColdFire arch cpu, monitor code starts always
+ * just after the default vector table location, so at 0x400
+ */
+ gd->reloc_off = gd->relocaddr - (CONFIG_SYS_TEXT_BASE + 0x400);
+#endif
#endif
memcpy(gd->new_gd, (char *)gd, sizeof(gd_t));
@@ -860,6 +867,9 @@ static init_fnc_t init_sequence_f[] = {
#ifdef CONFIG_FSL_ESDHC
get_clocks,
#endif
+#ifdef CONFIG_M68K
+ get_clocks,
+#endif
env_init, /* initialize environment */
#if defined(CONFIG_8xx_CPUCLK_DEFAULT)
/* get CPU and bus clocks according to the environment variable */
@@ -886,7 +896,7 @@ static init_fnc_t init_sequence_f[] = {
#if defined(CONFIG_MPC83xx)
prt_83xx_rsr,
#endif
-#ifdef CONFIG_PPC
+#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
checkcpu,
#endif
print_cpuinfo, /* display cpu info (and speed) */
@@ -912,7 +922,7 @@ static init_fnc_t init_sequence_f[] = {
#if defined(CONFIG_ARM) || defined(CONFIG_X86) || defined(CONFIG_MICROBLAZE)
dram_init, /* configure available RAM banks */
#endif
-#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
+#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_M68K)
init_func_ram,
#endif
#ifdef CONFIG_POST
@@ -980,7 +990,7 @@ static init_fnc_t init_sequence_f[] = {
reserve_stacks,
setup_dram_config,
show_dram_config,
-#ifdef CONFIG_PPC
+#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
setup_board_part1,
INIT_FUNC_WATCHDOG_RESET
setup_board_part2,
diff --git a/common/board_r.c b/common/board_r.c
index 907b33c..b2488c0 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -164,14 +164,17 @@ static int initr_serial(void)
return 0;
}
-#ifdef CONFIG_PPC
+#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
static int initr_trap(void)
{
/*
* Setup trap handlers
*/
+#if defined(CONFIG_PPC)
trap_init(gd->relocaddr);
-
+#else
+ trap_init(CONFIG_SYS_SDRAM_BASE);
+#endif
return 0;
}
#endif
@@ -265,14 +268,6 @@ static int initr_malloc(void)
return 0;
}
-#ifdef CONFIG_SYS_NONCACHED_MEMORY
-static int initr_noncached(void)
-{
- noncached_init();
- return 0;
-}
-#endif
-
#ifdef CONFIG_DM
static int initr_dm(void)
{
@@ -688,9 +683,6 @@ init_fnc_t init_sequence_r[] = {
#endif
initr_barrier,
initr_malloc,
-#ifdef CONFIG_SYS_NONCACHED_MEMORY
- initr_noncached,
-#endif
bootstage_relocate,
#ifdef CONFIG_DM
initr_dm,
@@ -714,7 +706,7 @@ init_fnc_t init_sequence_r[] = {
#ifdef CONFIG_NEEDS_MANUAL_RELOC
initr_manual_reloc_cmdtable,
#endif
-#ifdef CONFIG_PPC
+#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
initr_trap,
#endif
#ifdef CONFIG_ADDR_MAP
@@ -813,7 +805,7 @@ init_fnc_t init_sequence_r[] = {
#if defined(CONFIG_ARM)
initr_enable_interrupts,
#endif
-#if defined(CONFIG_X86) || defined(CONFIG_MICROBLAZE)
+#if defined(CONFIG_X86) || defined(CONFIG_MICROBLAZE) || defined(CONFIG_M68K)
timer_init, /* initialize timer */
#endif
#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
diff --git a/include/asm-generic/u-boot.h b/include/asm-generic/u-boot.h
index aef39d7..e00db7d 100644
--- a/include/asm-generic/u-boot.h
+++ b/include/asm-generic/u-boot.h
@@ -41,7 +41,7 @@ typedef struct bd_info {
|| defined(CONFIG_E500) || defined(CONFIG_MPC86xx)
unsigned long bi_immr_base; /* base of IMMR register */
#endif
-#if defined(CONFIG_MPC5xxx)
+#if defined(CONFIG_MPC5xxx) || defined(CONFIG_M68K)
unsigned long bi_mbar_base; /* base of internal registers */
#endif
#if defined(CONFIG_MPC83xx)
--
2.1.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [U-Boot] [U-Boot,3/3] m68k: add generic-board support
2015-02-12 0:40 [U-Boot] [PATCH 3/3] m68k: add generic-board support Angelo Dureghello
@ 2015-03-06 15:46 ` Tom Rini
2015-03-07 8:00 ` [U-Boot] [PATCH 3/3] " Jan Kiszka
1 sibling, 0 replies; 3+ messages in thread
From: Tom Rini @ 2015-03-06 15:46 UTC (permalink / raw)
To: u-boot
On Thu, Feb 12, 2015 at 01:40:17AM +0100, angelo at sysam.it wrote:
> Add generic-board support for the m68k architecture.
>
> Signed-off-by: Angelo Dureghello <angelo@sysam.it>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150306/9960e086/attachment.sig>
^ permalink raw reply [flat|nested] 3+ messages in thread
* [U-Boot] [PATCH 3/3] m68k: add generic-board support
2015-02-12 0:40 [U-Boot] [PATCH 3/3] m68k: add generic-board support Angelo Dureghello
2015-03-06 15:46 ` [U-Boot] [U-Boot,3/3] " Tom Rini
@ 2015-03-07 8:00 ` Jan Kiszka
1 sibling, 0 replies; 3+ messages in thread
From: Jan Kiszka @ 2015-03-07 8:00 UTC (permalink / raw)
To: u-boot
On 2015-02-12 01:40, Angelo Dureghello wrote:
> Add generic-board support for the m68k architecture.
>
> Signed-off-by: Angelo Dureghello <angelo@sysam.it>
> ---
> arch/m68k/config.mk | 3 +++
> arch/m68k/include/asm/config.h | 3 +++
> arch/m68k/include/asm/u-boot.h | 8 ++++++++
> arch/m68k/lib/Makefile | 4 +++-
> common/board_f.c | 22 ++++++++++++++++------
> common/board_r.c | 22 +++++++---------------
> include/asm-generic/u-boot.h | 2 +-
> 7 files changed, 41 insertions(+), 23 deletions(-)
>
> diff --git a/arch/m68k/config.mk b/arch/m68k/config.mk
> index 3b3a7e8..a629b68 100644
> --- a/arch/m68k/config.mk
> +++ b/arch/m68k/config.mk
> @@ -11,6 +11,9 @@ endif
>
> CONFIG_STANDALONE_LOAD_ADDR ?= 0x20000
>
> +# Support generic board on m68k
> +__HAVE_ARCH_GENERIC_BOARD := y
> +
> PLATFORM_CPPFLAGS += -D__M68K__
> PLATFORM_LDFLAGS += -n
> PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
> diff --git a/arch/m68k/include/asm/config.h b/arch/m68k/include/asm/config.h
> index 9c4d3fb..7590842 100644
> --- a/arch/m68k/include/asm/config.h
> +++ b/arch/m68k/include/asm/config.h
> @@ -7,6 +7,9 @@
> #ifndef _ASM_CONFIG_H_
> #define _ASM_CONFIG_H_
>
> +#define CONFIG_SYS_GENERIC_BOARD
> +#define CONFIG_SYS_GENERIC_GLOBAL_DATA
> +
> #define CONFIG_NEEDS_MANUAL_RELOC
>
> #define CONFIG_LMB
> diff --git a/arch/m68k/include/asm/u-boot.h b/arch/m68k/include/asm/u-boot.h
> index 983cb2d..911c0d3 100644
> --- a/arch/m68k/include/asm/u-boot.h
> +++ b/arch/m68k/include/asm/u-boot.h
> @@ -20,6 +20,11 @@
> * include/asm-ppc/u-boot.h
> */
>
> +#ifdef CONFIG_SYS_GENERIC_BOARD
> +/* Use the generic board which requires a unified bd_info */
> +#include <asm-generic/u-boot.h>
> +#else
> +
> #ifndef __ASSEMBLY__
>
> typedef struct bd_info {
> @@ -48,6 +53,9 @@ typedef struct bd_info {
>
> #endif /* __ASSEMBLY__ */
>
> +#endif /* !CONFIG_SYS_GENERIC_BOARD */
> +
> +
> /* For image.h:image_check_target_arch() */
> #define IH_ARCH_DEFAULT IH_ARCH_M68K
>
> diff --git a/arch/m68k/lib/Makefile b/arch/m68k/lib/Makefile
> index 65867d6..d0e1a84 100644
> --- a/arch/m68k/lib/Makefile
> +++ b/arch/m68k/lib/Makefile
> @@ -5,7 +5,9 @@
> # SPDX-License-Identifier: GPL-2.0+
> #
>
> -obj-y += board.o
> +ifndef CONFIG_SYS_GENERIC_BOARD
> +obj-y += board.o
> +endif
> obj-$(CONFIG_CMD_BOOTM) += bootm.o
> obj-y += cache.o
> obj-y += interrupts.o
> diff --git a/common/board_f.c b/common/board_f.c
> index bdad36b..0de3919 100644
> --- a/common/board_f.c
> +++ b/common/board_f.c
> @@ -174,7 +174,7 @@ static int announce_dram_init(void)
> return 0;
> }
>
> -#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_M68K)
> static int init_func_ram(void)
> {
> #ifdef CONFIG_BOARD_TYPES
> @@ -624,7 +624,7 @@ static int display_new_sp(void)
> return 0;
> }
>
> -#ifdef CONFIG_PPC
> +#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
> static int setup_board_part1(void)
> {
> bd_t *bd = gd->bd;
> @@ -645,7 +645,7 @@ static int setup_board_part1(void)
> defined(CONFIG_E500) || defined(CONFIG_MPC86xx)
> bd->bi_immr_base = CONFIG_SYS_IMMR; /* base of IMMR register */
> #endif
> -#if defined(CONFIG_MPC5xxx)
> +#if defined(CONFIG_MPC5xxx) || defined(CONFIG_M68K)
> bd->bi_mbar_base = CONFIG_SYS_MBAR; /* base of internal registers */
> #endif
> #if defined(CONFIG_MPC83xx)
> @@ -735,6 +735,13 @@ static int setup_reloc(void)
> {
> #ifdef CONFIG_SYS_TEXT_BASE
> gd->reloc_off = gd->relocaddr - CONFIG_SYS_TEXT_BASE;
> +#ifdef CONFIG_M68K
> + /*
> + * On all ColdFire arch cpu, monitor code starts always
> + * just after the default vector table location, so at 0x400
> + */
> + gd->reloc_off = gd->relocaddr - (CONFIG_SYS_TEXT_BASE + 0x400);
> +#endif
> #endif
> memcpy(gd->new_gd, (char *)gd, sizeof(gd_t));
>
> @@ -860,6 +867,9 @@ static init_fnc_t init_sequence_f[] = {
> #ifdef CONFIG_FSL_ESDHC
> get_clocks,
> #endif
> +#ifdef CONFIG_M68K
> + get_clocks,
> +#endif
> env_init, /* initialize environment */
> #if defined(CONFIG_8xx_CPUCLK_DEFAULT)
> /* get CPU and bus clocks according to the environment variable */
> @@ -886,7 +896,7 @@ static init_fnc_t init_sequence_f[] = {
> #if defined(CONFIG_MPC83xx)
> prt_83xx_rsr,
> #endif
> -#ifdef CONFIG_PPC
> +#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
> checkcpu,
> #endif
> print_cpuinfo, /* display cpu info (and speed) */
> @@ -912,7 +922,7 @@ static init_fnc_t init_sequence_f[] = {
> #if defined(CONFIG_ARM) || defined(CONFIG_X86) || defined(CONFIG_MICROBLAZE)
> dram_init, /* configure available RAM banks */
> #endif
> -#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_M68K)
> init_func_ram,
> #endif
> #ifdef CONFIG_POST
> @@ -980,7 +990,7 @@ static init_fnc_t init_sequence_f[] = {
> reserve_stacks,
> setup_dram_config,
> show_dram_config,
> -#ifdef CONFIG_PPC
> +#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
> setup_board_part1,
> INIT_FUNC_WATCHDOG_RESET
> setup_board_part2,
> diff --git a/common/board_r.c b/common/board_r.c
> index 907b33c..b2488c0 100644
> --- a/common/board_r.c
> +++ b/common/board_r.c
> @@ -164,14 +164,17 @@ static int initr_serial(void)
> return 0;
> }
>
> -#ifdef CONFIG_PPC
> +#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
> static int initr_trap(void)
> {
> /*
> * Setup trap handlers
> */
> +#if defined(CONFIG_PPC)
> trap_init(gd->relocaddr);
> -
> +#else
> + trap_init(CONFIG_SYS_SDRAM_BASE);
> +#endif
> return 0;
> }
> #endif
> @@ -265,14 +268,6 @@ static int initr_malloc(void)
> return 0;
> }
>
> -#ifdef CONFIG_SYS_NONCACHED_MEMORY
> -static int initr_noncached(void)
> -{
> - noncached_init();
> - return 0;
> -}
> -#endif
> -
Why did this patch remove this hunk and the one below? This breaks
Ethernet for the Jetson TK1 which uses non-cached memory.
Jan
> #ifdef CONFIG_DM
> static int initr_dm(void)
> {
> @@ -688,9 +683,6 @@ init_fnc_t init_sequence_r[] = {
> #endif
> initr_barrier,
> initr_malloc,
> -#ifdef CONFIG_SYS_NONCACHED_MEMORY
> - initr_noncached,
> -#endif
> bootstage_relocate,
> #ifdef CONFIG_DM
> initr_dm,
> @@ -714,7 +706,7 @@ init_fnc_t init_sequence_r[] = {
> #ifdef CONFIG_NEEDS_MANUAL_RELOC
> initr_manual_reloc_cmdtable,
> #endif
> -#ifdef CONFIG_PPC
> +#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
> initr_trap,
> #endif
> #ifdef CONFIG_ADDR_MAP
> @@ -813,7 +805,7 @@ init_fnc_t init_sequence_r[] = {
> #if defined(CONFIG_ARM)
> initr_enable_interrupts,
> #endif
> -#if defined(CONFIG_X86) || defined(CONFIG_MICROBLAZE)
> +#if defined(CONFIG_X86) || defined(CONFIG_MICROBLAZE) || defined(CONFIG_M68K)
> timer_init, /* initialize timer */
> #endif
> #if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
> diff --git a/include/asm-generic/u-boot.h b/include/asm-generic/u-boot.h
> index aef39d7..e00db7d 100644
> --- a/include/asm-generic/u-boot.h
> +++ b/include/asm-generic/u-boot.h
> @@ -41,7 +41,7 @@ typedef struct bd_info {
> || defined(CONFIG_E500) || defined(CONFIG_MPC86xx)
> unsigned long bi_immr_base; /* base of IMMR register */
> #endif
> -#if defined(CONFIG_MPC5xxx)
> +#if defined(CONFIG_MPC5xxx) || defined(CONFIG_M68K)
> unsigned long bi_mbar_base; /* base of internal registers */
> #endif
> #if defined(CONFIG_MPC83xx)
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150307/4d391fe9/attachment.sig>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-03-07 8:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-12 0:40 [U-Boot] [PATCH 3/3] m68k: add generic-board support Angelo Dureghello
2015-03-06 15:46 ` [U-Boot] [U-Boot,3/3] " Tom Rini
2015-03-07 8:00 ` [U-Boot] [PATCH 3/3] " Jan Kiszka
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox