mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* Some fixes for MPC5200 platforms
@ 2016-05-27  9:32 Juergen Borleis
  2016-05-27  9:32 ` [PATCH 1/4] PPC: fix size optimisation Juergen Borleis
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Juergen Borleis @ 2016-05-27  9:32 UTC (permalink / raw)
  To: barebox

Barebox for MPC5200 (PCM030 board for example) is currently broken. Below
some fixes and improvemnts to make it boot/work again.

Comments are welcome.

Juergen


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/4] PPC: fix size optimisation
  2016-05-27  9:32 Some fixes for MPC5200 platforms Juergen Borleis
@ 2016-05-27  9:32 ` Juergen Borleis
  2016-05-27  9:32 ` [PATCH 2/4] PPC: clean compiler warning Juergen Borleis
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Juergen Borleis @ 2016-05-27  9:32 UTC (permalink / raw)
  To: barebox

Since patch e92abad36307d the linker discards sections which seems not
used to make the image smaller.
But this change will discard the whole init and exception code from start.S
which renders the final image useless.

From 'barebox.map' without this patch:

Discarded input sections
 .text          0x0000000000000000     0x358c arch/ppc/mach-mpc5xxx/start.o
 .data          0x0000000000000000        0x0 arch/ppc/mach-mpc5xxx/start.o
 .bss           0x0000000000000000        0x0 arch/ppc/mach-mpc5xxx/start.o
 .got2          0x0000000000000000       0x24 arch/ppc/mach-mpc5xxx/start.o
[...]

So, define the entry point to mark the init and exception used.

From 'barebox.map' with this patch applied:

Discarded input sections
 .data          0x0000000000000000        0x0 arch/ppc/mach-mpc5xxx/start.o
 .bss           0x0000000000000000        0x0 arch/ppc/mach-mpc5xxx/start.o
[...]

Note: tested on MPC5200 at run time, for MPC85XX compile time only

Signed-off-by: Juergen Borleis <jbe@pengutronix.de>
---
 arch/ppc/boards/pcm030/barebox.lds.S | 1 +
 arch/ppc/mach-mpc85xx/barebox.lds.S  | 1 +
 2 files changed, 2 insertions(+)

diff --git a/arch/ppc/boards/pcm030/barebox.lds.S b/arch/ppc/boards/pcm030/barebox.lds.S
index 0e08e05..0e34f0a 100644
--- a/arch/ppc/boards/pcm030/barebox.lds.S
+++ b/arch/ppc/boards/pcm030/barebox.lds.S
@@ -20,6 +20,7 @@
 #include <asm-generic/barebox.lds.h>
 
 OUTPUT_ARCH("powerpc")
+ENTRY(_start)
 /* Do we need any of these for elf?
    __DYNAMIC = 0;    */
 SECTIONS
diff --git a/arch/ppc/mach-mpc85xx/barebox.lds.S b/arch/ppc/mach-mpc85xx/barebox.lds.S
index 1f7f52c..beebab3 100644
--- a/arch/ppc/mach-mpc85xx/barebox.lds.S
+++ b/arch/ppc/mach-mpc85xx/barebox.lds.S
@@ -22,6 +22,7 @@
 #endif
 
 OUTPUT_ARCH("powerpc")
+ENTRY(_start_e500)
 
 PHDRS
 {
-- 
2.8.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 2/4] PPC: clean compiler warning
  2016-05-27  9:32 Some fixes for MPC5200 platforms Juergen Borleis
  2016-05-27  9:32 ` [PATCH 1/4] PPC: fix size optimisation Juergen Borleis
@ 2016-05-27  9:32 ` Juergen Borleis
  2016-05-27  9:32 ` [PATCH 3/4] PPC/MPC5XXX/reginfo: fix a bunch of compiler warnings Juergen Borleis
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Juergen Borleis @ 2016-05-27  9:32 UTC (permalink / raw)
  To: barebox

This change fixes the following compiler warning:

arch/ppc/mach-mpc5xxx/cpu.c: In function 'restart_register_feature':
arch/ppc/mach-mpc5xxx/cpu.c:81:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^

Signed-off-by: Juergen Borleis <jbe@pengutronix.de>
---
 arch/ppc/mach-mpc5xxx/cpu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/ppc/mach-mpc5xxx/cpu.c b/arch/ppc/mach-mpc5xxx/cpu.c
index 33835e7..42ced9a 100644
--- a/arch/ppc/mach-mpc5xxx/cpu.c
+++ b/arch/ppc/mach-mpc5xxx/cpu.c
@@ -77,7 +77,7 @@ static void __noreturn mpc5xxx_restart_soc(struct restart_handler *rst)
 
 static int restart_register_feature(void)
 {
-	restart_handler_register_fn(mpc5xxx_restart_soc);
+	return restart_handler_register_fn(mpc5xxx_restart_soc);
 }
 coredevice_initcall(restart_register_feature);
 
-- 
2.8.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 3/4] PPC/MPC5XXX/reginfo: fix a bunch of compiler warnings
  2016-05-27  9:32 Some fixes for MPC5200 platforms Juergen Borleis
  2016-05-27  9:32 ` [PATCH 1/4] PPC: fix size optimisation Juergen Borleis
  2016-05-27  9:32 ` [PATCH 2/4] PPC: clean compiler warning Juergen Borleis
@ 2016-05-27  9:32 ` Juergen Borleis
  2016-05-27  9:32 ` [PATCH 4/4] PPC/MPC5200: enable a useful command by default Juergen Borleis
  2016-05-30  5:08 ` Some fixes for MPC5200 platforms Sascha Hauer
  4 siblings, 0 replies; 6+ messages in thread
From: Juergen Borleis @ 2016-05-27  9:32 UTC (permalink / raw)
  To: barebox

This change fixes a bunch of compiler warnings of this type:

arch/ppc/mach-mpc5xxx/reginfo.c: In function 'reginfo':
arch/ppc/mach-mpc5xxx/reginfo.c:14:3: warning: format '%X' expects argument of type 'unsigned int', but argument 2 has type 'ulong' [-Wformat=]
   (*(volatile ulong*)MPC5XXX_ADDECR & 0x00010000) ? 1 : 0);
   ^

Signed-off-by: Juergen Borleis <jbe@pengutronix.de>
---
 arch/ppc/mach-mpc5xxx/reginfo.c | 77 +++++++++++++++++++++--------------------
 1 file changed, 39 insertions(+), 38 deletions(-)

diff --git a/arch/ppc/mach-mpc5xxx/reginfo.c b/arch/ppc/mach-mpc5xxx/reginfo.c
index 92a1b59..e41d235 100644
--- a/arch/ppc/mach-mpc5xxx/reginfo.c
+++ b/arch/ppc/mach-mpc5xxx/reginfo.c
@@ -1,6 +1,7 @@
 #include <stdio.h>
 #include <config.h>
 #include <mach/mpc5xxx.h>
+#include <asm/io.h>
 
 void reginfo(void)
 {
@@ -8,52 +9,52 @@ void reginfo(void)
 	printf ("MBAR=%08x\n", CFG_MBAR);
 	puts ("Memory map registers\n");
 	printf ("\tCS0: start %08X\tstop %08X\tconfig %08X\ten %d\n",
-		*(volatile ulong*)MPC5XXX_CS0_START,
-		*(volatile ulong*)MPC5XXX_CS0_STOP,
-		*(volatile ulong*)MPC5XXX_CS0_CFG,
-		(*(volatile ulong*)MPC5XXX_ADDECR & 0x00010000) ? 1 : 0);
+		in_be32((void*)MPC5XXX_CS0_START),
+		in_be32((void*)MPC5XXX_CS0_STOP),
+		in_be32((void*)MPC5XXX_CS0_CFG),
+		in_be32((void*)MPC5XXX_ADDECR) & 0x00010000 ? 1 : 0);
 	printf ("\tCS1: start %08X\tstop %08X\tconfig %08X\ten %d\n",
-		*(volatile ulong*)MPC5XXX_CS1_START,
-		*(volatile ulong*)MPC5XXX_CS1_STOP,
-		*(volatile ulong*)MPC5XXX_CS1_CFG,
-		(*(volatile ulong*)MPC5XXX_ADDECR & 0x00020000) ? 1 : 0);
+		in_be32((void*)MPC5XXX_CS1_START),
+		in_be32((void*)MPC5XXX_CS1_STOP),
+		in_be32((void*)MPC5XXX_CS1_CFG),
+		in_be32((void*)MPC5XXX_ADDECR) & 0x00020000 ? 1 : 0);
 	printf ("\tCS2: start %08X\tstop %08X\tconfig %08X\ten %d\n",
-		*(volatile ulong*)MPC5XXX_CS2_START,
-		*(volatile ulong*)MPC5XXX_CS2_STOP,
-		*(volatile ulong*)MPC5XXX_CS2_CFG,
-		(*(volatile ulong*)MPC5XXX_ADDECR & 0x00040000) ? 1 : 0);
+		in_be32((void*)MPC5XXX_CS2_START),
+		in_be32((void*)MPC5XXX_CS2_STOP),
+		in_be32((void*)MPC5XXX_CS2_CFG),
+		in_be32((void*)MPC5XXX_ADDECR) & 0x00040000 ? 1 : 0);
 	printf ("\tCS3: start %08X\tstop %08X\tconfig %08X\ten %d\n",
-		*(volatile ulong*)MPC5XXX_CS3_START,
-		*(volatile ulong*)MPC5XXX_CS3_STOP,
-		*(volatile ulong*)MPC5XXX_CS3_CFG,
-		(*(volatile ulong*)MPC5XXX_ADDECR & 0x00080000) ? 1 : 0);
+		in_be32((void*)MPC5XXX_CS3_START),
+		in_be32((void*)MPC5XXX_CS3_STOP),
+		in_be32((void*)MPC5XXX_CS3_CFG),
+		in_be32((void*)MPC5XXX_ADDECR) & 0x00080000 ? 1 : 0);
 	printf ("\tCS4: start %08X\tstop %08X\tconfig %08X\ten %d\n",
-		*(volatile ulong*)MPC5XXX_CS4_START,
-		*(volatile ulong*)MPC5XXX_CS4_STOP,
-		*(volatile ulong*)MPC5XXX_CS4_CFG,
-		(*(volatile ulong*)MPC5XXX_ADDECR & 0x00100000) ? 1 : 0);
+		in_be32((void*)MPC5XXX_CS4_START),
+		in_be32((void*)MPC5XXX_CS4_STOP),
+		in_be32((void*)MPC5XXX_CS4_CFG),
+		in_be32((void*)MPC5XXX_ADDECR) & 0x00100000 ? 1 : 0);
 	printf ("\tCS5: start %08X\tstop %08X\tconfig %08X\ten %d\n",
-		*(volatile ulong*)MPC5XXX_CS5_START,
-		*(volatile ulong*)MPC5XXX_CS5_STOP,
-		*(volatile ulong*)MPC5XXX_CS5_CFG,
-		(*(volatile ulong*)MPC5XXX_ADDECR & 0x00200000) ? 1 : 0);
+		in_be32((void*)MPC5XXX_CS5_START),
+		in_be32((void*)MPC5XXX_CS5_STOP),
+		in_be32((void*)MPC5XXX_CS5_CFG),
+		in_be32((void*)MPC5XXX_ADDECR) & 0x00200000 ? 1 : 0);
 	printf ("\tCS6: start %08X\tstop %08X\tconfig %08X\ten %d\n",
-		*(volatile ulong*)MPC5XXX_CS6_START,
-		*(volatile ulong*)MPC5XXX_CS6_STOP,
-		*(volatile ulong*)MPC5XXX_CS6_CFG,
-		(*(volatile ulong*)MPC5XXX_ADDECR & 0x04000000) ? 1 : 0);
+		in_be32((void*)MPC5XXX_CS6_START),
+		in_be32((void*)MPC5XXX_CS6_STOP),
+		in_be32((void*)MPC5XXX_CS6_CFG),
+		in_be32((void*)MPC5XXX_ADDECR) & 0x04000000 ? 1 : 0);
 	printf ("\tCS7: start %08X\tstop %08X\tconfig %08X\ten %d\n",
-		*(volatile ulong*)MPC5XXX_CS7_START,
-		*(volatile ulong*)MPC5XXX_CS7_STOP,
-		*(volatile ulong*)MPC5XXX_CS7_CFG,
-		(*(volatile ulong*)MPC5XXX_ADDECR & 0x08000000) ? 1 : 0);
+		in_be32((void*)MPC5XXX_CS7_START),
+		in_be32((void*)MPC5XXX_CS7_STOP),
+		in_be32((void*)MPC5XXX_CS7_CFG),
+		in_be32((void*)MPC5XXX_ADDECR) & 0x08000000 ? 1 : 0);
 	printf ("\tBOOTCS: start %08X\tstop %08X\tconfig %08X\ten %d\n",
-		*(volatile ulong*)MPC5XXX_BOOTCS_START,
-		*(volatile ulong*)MPC5XXX_BOOTCS_STOP,
-		*(volatile ulong*)MPC5XXX_BOOTCS_CFG,
-		(*(volatile ulong*)MPC5XXX_ADDECR & 0x02000000) ? 1 : 0);
+		in_be32((void*)MPC5XXX_BOOTCS_START),
+		in_be32((void*)MPC5XXX_BOOTCS_STOP),
+		in_be32((void*)MPC5XXX_BOOTCS_CFG),
+		in_be32((void*)MPC5XXX_ADDECR) & 0x02000000 ? 1 : 0);
 	printf ("\tSDRAMCS0: %08X\n",
-		*(volatile ulong*)MPC5XXX_SDRAM_CS0CFG);
+		in_be32((void*)MPC5XXX_SDRAM_CS0CFG));
 	printf ("\tSDRAMCS1: %08X\n",
-		*(volatile ulong*)MPC5XXX_SDRAM_CS1CFG);
+		in_be32((void*)MPC5XXX_SDRAM_CS1CFG));
 }
-- 
2.8.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 4/4] PPC/MPC5200: enable a useful command by default
  2016-05-27  9:32 Some fixes for MPC5200 platforms Juergen Borleis
                   ` (2 preceding siblings ...)
  2016-05-27  9:32 ` [PATCH 3/4] PPC/MPC5XXX/reginfo: fix a bunch of compiler warnings Juergen Borleis
@ 2016-05-27  9:32 ` Juergen Borleis
  2016-05-30  5:08 ` Some fixes for MPC5200 platforms Sascha Hauer
  4 siblings, 0 replies; 6+ messages in thread
From: Juergen Borleis @ 2016-05-27  9:32 UTC (permalink / raw)
  To: barebox

Signed-off-by: Juergen Borleis <jbe@pengutronix.de>
---
 arch/ppc/configs/pcm030_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/ppc/configs/pcm030_defconfig b/arch/ppc/configs/pcm030_defconfig
index 61380ac..fd010c8 100644
--- a/arch/ppc/configs/pcm030_defconfig
+++ b/arch/ppc/configs/pcm030_defconfig
@@ -9,6 +9,7 @@ CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/ppc/boards/pcm030/env"
 CONFIG_LONGHELP=y
 CONFIG_CMD_IOMEM=y
 CONFIG_CMD_MEMINFO=y
+CONFIG_CMD_REGINFO=y
 CONFIG_CMD_BOOTM_SHOW_TYPE=y
 CONFIG_CMD_GO=y
 CONFIG_CMD_RESET=y
-- 
2.8.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Some fixes for MPC5200 platforms
  2016-05-27  9:32 Some fixes for MPC5200 platforms Juergen Borleis
                   ` (3 preceding siblings ...)
  2016-05-27  9:32 ` [PATCH 4/4] PPC/MPC5200: enable a useful command by default Juergen Borleis
@ 2016-05-30  5:08 ` Sascha Hauer
  4 siblings, 0 replies; 6+ messages in thread
From: Sascha Hauer @ 2016-05-30  5:08 UTC (permalink / raw)
  To: Juergen Borleis; +Cc: barebox

On Fri, May 27, 2016 at 11:32:47AM +0200, Juergen Borleis wrote:
> Barebox for MPC5200 (PCM030 board for example) is currently broken. Below
> some fixes and improvemnts to make it boot/work again.
> 
> Comments are welcome.

Applied, thanks

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-05-30  5:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-27  9:32 Some fixes for MPC5200 platforms Juergen Borleis
2016-05-27  9:32 ` [PATCH 1/4] PPC: fix size optimisation Juergen Borleis
2016-05-27  9:32 ` [PATCH 2/4] PPC: clean compiler warning Juergen Borleis
2016-05-27  9:32 ` [PATCH 3/4] PPC/MPC5XXX/reginfo: fix a bunch of compiler warnings Juergen Borleis
2016-05-27  9:32 ` [PATCH 4/4] PPC/MPC5200: enable a useful command by default Juergen Borleis
2016-05-30  5:08 ` Some fixes for MPC5200 platforms Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox