public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3] mx31ads: Use the new relocation scheme
@ 2011-06-02 19:26 Fabio Estevam
  0 siblings, 0 replies; 8+ messages in thread
From: Fabio Estevam @ 2011-06-02 19:26 UTC (permalink / raw)
  To: u-boot

This fixes the MX31ADS build by using the new relocation scheme.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
Changes since v2:
- Use PHYS_SDRAM_1 in get_ram_size
- Remove local config.mk

Changes since v1:

- Fixed lines over 80 characters.

Build tested only.

Do not have the hardware handy to test.
 board/freescale/mx31ads/config.mk  |    1 -
 board/freescale/mx31ads/mx31ads.c  |   19 ++++++++++++---
 board/freescale/mx31ads/u-boot.lds |   42 ++++++++++++++++++++++++++++-------
 include/configs/mx31ads.h          |   11 +++++++++
 4 files changed, 59 insertions(+), 14 deletions(-)
 delete mode 100644 board/freescale/mx31ads/config.mk

diff --git a/board/freescale/mx31ads/config.mk b/board/freescale/mx31ads/config.mk
deleted file mode 100644
index 0131edf..0000000
--- a/board/freescale/mx31ads/config.mk
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_SYS_TEXT_BASE = 0x87f00000
diff --git a/board/freescale/mx31ads/mx31ads.c b/board/freescale/mx31ads/mx31ads.c
index a298e05..9bf9c18 100644
--- a/board/freescale/mx31ads/mx31ads.c
+++ b/board/freescale/mx31ads/mx31ads.c
@@ -28,15 +28,21 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-int dram_init (void)
+int dram_init(void)
+{
+	/* dram_init must store complete ramsize in gd->ram_size */
+	gd->ram_size = get_ram_size((volatile void *)PHYS_SDRAM_1,
+				PHYS_SDRAM_1_SIZE);
+	return 0;
+}
+
+void dram_init_banksize(void)
 {
 	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
 	gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
-
-	return 0;
 }
 
-int board_init (void)
+int board_early_init_f(void)
 {
 	int i;
 
@@ -94,6 +100,11 @@ int board_init (void)
 	readb(CS4_BASE + 8);
 	readb(CS4_BASE + 7);
 
+	return 0;
+}
+
+int board_init(void)
+{
 	gd->bd->bi_arch_number = MACH_TYPE_MX31ADS;	/* board id for linux */
 	gd->bd->bi_boot_params = 0x80000100;	/* adress of boot parameters */
 
diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds
index b081b21..79eb7ac 100644
--- a/board/freescale/mx31ads/u-boot.lds
+++ b/board/freescale/mx31ads/u-boot.lds
@@ -48,23 +48,47 @@ SECTIONS
 
 	  *(.text)
 	}
-
 	. = ALIGN(4);
-	.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
+	.rodata : { *(.rodata) }
 
 	. = ALIGN(4);
-	.data : { *(.data) }
+	.data : {
+		*(.data)
+	}
 
 	. = ALIGN(4);
-	.got : { *(.got) }
-
-	. = .;
 	__u_boot_cmd_start = .;
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
-	__bss_start = .;
-	.bss : { *(.bss) . = ALIGN(4); }
-	__bss_end__ = .;
+
+	.rel.dyn : {
+		__rel_dyn_start = .;
+		*(.rel*)
+		__rel_dyn_end = .;
+	}
+
+	.dynsym : {
+		__dynsym_start = .;
+		*(.dynsym)
+	}
+
+	_end = .;
+
+	.bss __rel_dyn_start (OVERLAY) : {
+		__bss_start = .;
+		*(.bss)
+		 . = ALIGN(4);
+		__bss_end__ = .;
+	}
+
+	/DISCARD/ : { *(.bss*) }
+	/DISCARD/ : { *(.dynstr*) }
+	/DISCARD/ : { *(.dynsym*) }
+	/DISCARD/ : { *(.dynamic*) }
+	/DISCARD/ : { *(.hash*) }
+	/DISCARD/ : { *(.plt*) }
+	/DISCARD/ : { *(.interp*) }
+	/DISCARD/ : { *(.gnu*) }
 }
diff --git a/include/configs/mx31ads.h b/include/configs/mx31ads.h
index 5ea59b4..f8be3e9 100644
--- a/include/configs/mx31ads.h
+++ b/include/configs/mx31ads.h
@@ -33,6 +33,8 @@
 #define CONFIG_DISPLAY_CPUINFO
 #define CONFIG_DISPLAY_BOARDINFO
 
+#define CONFIG_SYS_TEXT_BASE		0x87f00000
+
 /*
  * Disabled for now due to build problems under Debian and a significant increase
  * in the final file size: 144260 vs. 109536 Bytes.
@@ -160,6 +162,15 @@
 #define CONFIG_NR_DRAM_BANKS	1
 #define PHYS_SDRAM_1		CSD0_BASE
 #define PHYS_SDRAM_1_SIZE	(128 * 1024 * 1024)
+#define CONFIG_BOARD_EARLY_INIT_F
+
+#define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM_1
+#define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
+#define CONFIG_SYS_INIT_RAM_SIZE	IRAM_SIZE
+#define CONFIG_SYS_GBL_DATA_OFFSET	(CONFIG_SYS_INIT_RAM_SIZE - \
+						GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_SP_ADDR	(CONFIG_SYS_INIT_RAM_ADDR + \
+						CONFIG_SYS_GBL_DATA_OFFSET)
 
 /*-----------------------------------------------------------------------
  * FLASH and environment organization
-- 
1.6.0.4

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

* [U-Boot] [PATCH v3] mx31ads: Use the new relocation scheme
@ 2011-06-04 22:18 Felix Radensky
  2011-06-04 23:24 ` Fabio Estevam
  0 siblings, 1 reply; 8+ messages in thread
From: Felix Radensky @ 2011-06-04 22:18 UTC (permalink / raw)
  To: u-boot


Hi Fabio,


On 01/-10/-28163 09:59 PM,  wrote:
> Signed-off-by: Fabio Estevam fabio.estevam at freescale.com
> ---
> Changes since v2:
> - Use PHYS_SDRAM_1 in get_ram_size
> - Remove local config.mk
>
> Changes since v1:
>
> - Fixed lines over 80 characters.
>
> Build tested only.
>
> Do not have the hardware handy to test.
>

I've tested your patch on mx31ads. Unfortunately it bricks the board.
There are no messages on console. The latest u-boot version that
works on this board is 2010.09. I've compiled u-boot using ELDK-4.2.

If you have any ideas, I'm ready to test your patches.

Felix.

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

* [U-Boot] [PATCH v3] mx31ads: Use the new relocation scheme
  2011-06-04 22:18 [U-Boot] [PATCH v3] mx31ads: Use the new relocation scheme Felix Radensky
@ 2011-06-04 23:24 ` Fabio Estevam
  2011-06-05  7:28   ` Felix Radensky
  0 siblings, 1 reply; 8+ messages in thread
From: Fabio Estevam @ 2011-06-04 23:24 UTC (permalink / raw)
  To: u-boot

Hi Felix,

On Sat, Jun 4, 2011 at 7:18 PM, Felix Radensky <felix@embedded-sol.com> wrote:
...
> I've tested your patch on mx31ads. Unfortunately it bricks the board.
> There are no messages on console. The latest u-boot version that
> works on this board is 2010.09. I've compiled u-boot using ELDK-4.2.

Thanks for testing it.

> If you have any ideas, I'm ready to test your patches.

Could you please try to use change to CONFIG_SYS_TEXT_BASE = 0xa0000000

in board/freescale/mx31ads/config.mk ?

Thanks,

Fabio Estevam

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

* [U-Boot] [PATCH v3] mx31ads: Use the new relocation scheme
  2011-06-04 23:24 ` Fabio Estevam
@ 2011-06-05  7:28   ` Felix Radensky
  2011-06-05 14:47     ` Fabio Estevam
  2011-06-12 21:58     ` Fabio Estevam
  0 siblings, 2 replies; 8+ messages in thread
From: Felix Radensky @ 2011-06-05  7:28 UTC (permalink / raw)
  To: u-boot

Hi Fabio,

On 06/05/2011 02:24 AM, Fabio Estevam wrote:
> Hi Felix,
>
> On Sat, Jun 4, 2011 at 7:18 PM, Felix Radensky<felix@embedded-sol.com>  wrote:
> ...
>> I've tested your patch on mx31ads. Unfortunately it bricks the board.
>> There are no messages on console. The latest u-boot version that
>> works on this board is 2010.09. I've compiled u-boot using ELDK-4.2.
> Thanks for testing it.
>
>> If you have any ideas, I'm ready to test your patches.
> Could you please try to use change to CONFIG_SYS_TEXT_BASE = 0xa0000000
>
> in board/freescale/mx31ads/config.mk ?
>
> Thanks,
>
> Fabio Estevam

Setting CONFIG_SYS_TEXT_BASE to 0xa0000000 in mx31ads.h
fixes the problem.

You can add

Tested-by: Felix Radensky felix at embedded-sol.com

Unrelated to your patch, u-boot prints

CPU:   Freescale i.MX31 rev 2.0 unknown at 531 MHz.Reset cause: WDOG

Do you think "unknown" can be replaced by something more meaningful ?

Also, environment settings are completely broken, environment address
clashes with u-boot address. I'll submit a patch to fix that after 
your patch
goes in.

Thanks for your efforts to keep this board support alive.

Felix.

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

* [U-Boot] [PATCH v3] mx31ads: Use the new relocation scheme
  2011-06-05  7:28   ` Felix Radensky
@ 2011-06-05 14:47     ` Fabio Estevam
  2011-06-12 21:58     ` Fabio Estevam
  1 sibling, 0 replies; 8+ messages in thread
From: Fabio Estevam @ 2011-06-05 14:47 UTC (permalink / raw)
  To: u-boot

Hi Felix,

On Sun, Jun 5, 2011 at 4:28 AM, Felix Radensky <felix@embedded-sol.com> wrote:
...
> Setting CONFIG_SYS_TEXT_BASE to 0xa0000000 in mx31ads.h
> fixes the problem.

Excellent!

> You can add
>
> Tested-by: Felix Radensky felix at embedded-sol.com

Ok, I will send v4 of this patch tomorrow and will add your Tested-by line then.

> Unrelated to your patch, u-boot prints
>
> CPU: ? Freescale i.MX31 rev 2.0 unknown at 531 MHz.Reset cause: WDOG
>
> Do you think "unknown" can be replaced by something more meaningful ?

Yes, I agree. This is common MX31 code and I will take a look at fixing it.

> Also, environment settings are completely broken, environment address
> clashes with u-boot address. I'll submit a patch to fix that after your
> patch
> goes in.

Sounds like a good plan.

> Thanks for your efforts to keep this board support alive.

and thankyou for testing it :-)

Regards,

Fabio Estevam

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

* [U-Boot] [PATCH v3] mx31ads: Use the new relocation scheme
  2011-06-05  7:28   ` Felix Radensky
  2011-06-05 14:47     ` Fabio Estevam
@ 2011-06-12 21:58     ` Fabio Estevam
  2011-06-12 22:31       ` Fabio Estevam
  1 sibling, 1 reply; 8+ messages in thread
From: Fabio Estevam @ 2011-06-12 21:58 UTC (permalink / raw)
  To: u-boot

Hi Felix,

On Sun, Jun 5, 2011 at 4:28 AM, Felix Radensky <felix@embedded-sol.com> wrote:
...
> Unrelated to your patch, u-boot prints
>
> CPU: ? Freescale i.MX31 rev 2.0 unknown at 531 MHz.Reset cause: WDOG
>
> Do you think "unknown" can be replaced by something more meaningful ?

I don't see the "unknown" string on my MX31PDK board.

Can you try the patch below and let me know if it gets rid of it?

diff --git a/arch/arm/cpu/arm1136/mx31/generic.c b/arch/arm/cpu/arm1136/mx31/gen
index 4ebf38d..f0cfa8a 100644
--- a/arch/arm/cpu/arm1136/mx31/generic.c
+++ b/arch/arm/cpu/arm1136/mx31/generic.c
@@ -129,8 +129,9 @@ u32 get_cpu_rev(void)
        for (i = 0; i < ARRAY_SIZE(mx31_cpu_type); i++)
                if (srev == mx31_cpu_type[i].srev)
                        return mx31_cpu_type[i].v;
+       srev|= 0x8000;

-       return srev | 0x8000;
+       return srev;
 }

Regards,

Fabio Estevam

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

* [U-Boot] [PATCH v3] mx31ads: Use the new relocation scheme
  2011-06-12 21:58     ` Fabio Estevam
@ 2011-06-12 22:31       ` Fabio Estevam
  2011-06-13  4:34         ` Felix Radensky
  0 siblings, 1 reply; 8+ messages in thread
From: Fabio Estevam @ 2011-06-12 22:31 UTC (permalink / raw)
  To: u-boot

On Sun, Jun 12, 2011 at 6:58 PM, Fabio Estevam <festevam@gmail.com> wrote:
> Hi Felix,
>
> On Sun, Jun 5, 2011 at 4:28 AM, Felix Radensky <felix@embedded-sol.com> wrote:
> ...
>> Unrelated to your patch, u-boot prints
>>
>> CPU: ? Freescale i.MX31 rev 2.0 unknown at 531 MHz.Reset cause: WDOG
>>
>> Do you think "unknown" can be replaced by something more meaningful ?
>
> I don't see the "unknown" string on my MX31PDK board.
>
> Can you try the patch below and let me know if it gets rid of it?
>
> diff --git a/arch/arm/cpu/arm1136/mx31/generic.c b/arch/arm/cpu/arm1136/mx31/gen
> index 4ebf38d..f0cfa8a 100644
> --- a/arch/arm/cpu/arm1136/mx31/generic.c
> +++ b/arch/arm/cpu/arm1136/mx31/generic.c
> @@ -129,8 +129,9 @@ u32 get_cpu_rev(void)
> ? ? ? ?for (i = 0; i < ARRAY_SIZE(mx31_cpu_type); i++)
> ? ? ? ? ? ? ? ?if (srev == mx31_cpu_type[i].srev)
> ? ? ? ? ? ? ? ? ? ? ? ?return mx31_cpu_type[i].v;
> + ? ? ? srev|= 0x8000;
>
> - ? ? ? return srev | 0x8000;
> + ? ? ? return srev;
> ?}

Please ignore my last message. I think you could try:

diff --git a/arch/arm/cpu/arm1136/mx31/generic.c b/arch/arm/cpu/arm1136/mx31/gen
index 4ebf38d..36ceb02 100644
--- a/arch/arm/cpu/arm1136/mx31/generic.c
+++ b/arch/arm/cpu/arm1136/mx31/generic.c
@@ -159,6 +159,7 @@ static char *get_reset_cause(void)
 int print_cpuinfo (void)
 {
        u32 srev = get_cpu_rev();
+       printf ("srev = %08x\n", srev);

        printf("CPU:   Freescale i.MX31 rev %d.%d%s at %d MHz.",
                        (srev & 0xF0) >> 4, (srev & 0x0F),

Then please let us know what srev prints on the console.

Regards,

Fabio Estevam

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

* [U-Boot] [PATCH v3] mx31ads: Use the new relocation scheme
  2011-06-12 22:31       ` Fabio Estevam
@ 2011-06-13  4:34         ` Felix Radensky
  0 siblings, 0 replies; 8+ messages in thread
From: Felix Radensky @ 2011-06-13  4:34 UTC (permalink / raw)
  To: u-boot

Hi Fabio,

On 06/13/2011 01:31 AM, Fabio Estevam wrote:
>
> Please ignore my last message. I think you could try:
>
> diff --git a/arch/arm/cpu/arm1136/mx31/generic.c b/arch/arm/cpu/arm1136/mx31/gen
> index 4ebf38d..36ceb02 100644
> --- a/arch/arm/cpu/arm1136/mx31/generic.c
> +++ b/arch/arm/cpu/arm1136/mx31/generic.c
> @@ -159,6 +159,7 @@ static char *get_reset_cause(void)
>   int print_cpuinfo (void)
>   {
>          u32 srev = get_cpu_rev();
> +       printf ("srev = %08x\n", srev);
>
>          printf("CPU:   Freescale i.MX31 rev %d.%d%s at %d MHz.",
>                          (srev&  0xF0)>>  4, (srev&  0x0F),
>
> Then please let us know what srev prints on the console.
>

I get

srev = 00008020

Felix.

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

end of thread, other threads:[~2011-06-13  4:34 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-04 22:18 [U-Boot] [PATCH v3] mx31ads: Use the new relocation scheme Felix Radensky
2011-06-04 23:24 ` Fabio Estevam
2011-06-05  7:28   ` Felix Radensky
2011-06-05 14:47     ` Fabio Estevam
2011-06-12 21:58     ` Fabio Estevam
2011-06-12 22:31       ` Fabio Estevam
2011-06-13  4:34         ` Felix Radensky
  -- strict thread matches above, loose matches on Subject: below --
2011-06-02 19:26 Fabio Estevam

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