* [U-Boot] [PATCH 1/4] atmel_dataflash: remove use of get_timer_masked
@ 2011-04-18 9:20 Alessandro Rubini
2011-04-18 9:20 ` [U-Boot] [PATCH 2/4] ARM: don't relocate if we are already too high Alessandro Rubini
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Alessandro Rubini @ 2011-04-18 9:20 UTC (permalink / raw)
To: u-boot
Commit 5dca710a3d7703e41da0e9894f2d71f9e25bea6b removed
get_timer_masked for at91. The dataflash driver was still
using it and so stopped compiling. This blindly fixes
the compilation problem (I am not currently using dataflash).
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
---
drivers/spi/atmel_dataflash_spi.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/spi/atmel_dataflash_spi.c b/drivers/spi/atmel_dataflash_spi.c
index 4a5c4aa..d5215c0 100644
--- a/drivers/spi/atmel_dataflash_spi.c
+++ b/drivers/spi/atmel_dataflash_spi.c
@@ -158,12 +158,12 @@ unsigned int AT91F_SpiWrite(AT91PS_DataflashDesc pDesc)
}
/* arm simple, non interrupt dependent timer */
- reset_timer_masked();
+ reset_timer();
timeout = 0;
writel(AT91_SPI_TXTEN + AT91_SPI_RXTEN, AT91_BASE_SPI + AT91_SPI_PTCR);
while (!(readl(AT91_BASE_SPI + AT91_SPI_SR) & AT91_SPI_RXBUFF) &&
- ((timeout = get_timer_masked()) < CONFIG_SYS_SPI_WRITE_TOUT));
+ ((timeout = get_timer(0)) < CONFIG_SYS_SPI_WRITE_TOUT));
writel(AT91_SPI_TXTDIS + AT91_SPI_RXTDIS, AT91_BASE_SPI + AT91_SPI_PTCR);
pDesc->state = IDLE;
--
1.5.6.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 2/4] ARM: don't relocate if we are already too high
2011-04-18 9:20 [U-Boot] [PATCH 1/4] atmel_dataflash: remove use of get_timer_masked Alessandro Rubini
@ 2011-04-18 9:20 ` Alessandro Rubini
2011-04-18 9:21 ` [U-Boot] [PATCH 3/4] at91sam9261/g10: support relocation Alessandro Rubini
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Alessandro Rubini @ 2011-04-18 9:20 UTC (permalink / raw)
To: u-boot
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
---
arch/arm/lib/board.c | 23 ++++++++++++++++++++++-
1 files changed, 22 insertions(+), 1 deletions(-)
diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
index dc46e21..dab70b5 100644
--- a/arch/arm/lib/board.c
+++ b/arch/arm/lib/board.c
@@ -423,8 +423,29 @@ void board_init_f (ulong bootflag)
gd->relocaddr = addr;
gd->start_addr_sp = addr_sp;
gd->reloc_off = addr - _TEXT_BASE;
+
+ /*
+ * Destination is higher than current address, but may overlap
+ * our address range. If so, pass the source address as destination
+ * address so the asm will not relocate and only clear bss
+ */
+ if ((addr_sp - 256) < _bss_start_ofs+_TEXT_BASE) {
+ debug("Won't fit above us: disabling relocation\n");
+ if (gd->reloc_off < 0) {
+ printf("Can't relocate to lower ram, currently\n");
+ hang();
+ }
+ addr -= gd->reloc_off;
+ addr_sp -= gd->reloc_off;
+ gd->start_addr_sp = addr_sp;
+ id -= gd->reloc_off;
+ gd->reloc_off = 0;
+ }
+
+
debug ("relocation Offset is: %08lx\n", gd->reloc_off);
- memcpy (id, (void *)gd, sizeof (gd_t));
+ if (id != (void *)gd)
+ memcpy (id, (void *)gd, sizeof (gd_t));
relocate_code (addr_sp, id, addr);
--
1.5.6.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 3/4] at91sam9261/g10: support relocation
2011-04-18 9:20 [U-Boot] [PATCH 1/4] atmel_dataflash: remove use of get_timer_masked Alessandro Rubini
2011-04-18 9:20 ` [U-Boot] [PATCH 2/4] ARM: don't relocate if we are already too high Alessandro Rubini
@ 2011-04-18 9:21 ` Alessandro Rubini
2011-04-18 9:32 ` Andreas Bießmann
2011-04-18 9:21 ` [U-Boot] [PATCH 4/4] at91sam9261/g10: move config from Makefile to boards.cfg Alessandro Rubini
2011-04-18 10:41 ` [U-Boot] [PATCH 1/4] atmel_dataflash: remove use of get_timer_masked Reinhard Meyer
3 siblings, 1 reply; 6+ messages in thread
From: Alessandro Rubini @ 2011-04-18 9:21 UTC (permalink / raw)
To: u-boot
This adds support for relocation, but won't work for the default
settings whereas AT91Boot loads u-boot to the last meg and it then
tries to relocate slightly later, thus overwriting itself.
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
---
board/atmel/at91sam9261ek/at91sam9261ek.c | 3 +--
include/configs/at91sam9261ek.h | 4 ++++
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/board/atmel/at91sam9261ek/at91sam9261ek.c b/board/atmel/at91sam9261ek/at91sam9261ek.c
index de5cfae..ec1d2a3 100644
--- a/board/atmel/at91sam9261ek/at91sam9261ek.c
+++ b/board/atmel/at91sam9261ek/at91sam9261ek.c
@@ -273,8 +273,7 @@ int board_eth_init(bd_t *bis)
int dram_init(void)
{
- gd->bd->bi_dram[0].start = PHYS_SDRAM;
- gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
+ gd->ram_size = get_ram_size(PHYS_SDRAM, PHYS_SDRAM_SIZE);
return 0;
}
diff --git a/include/configs/at91sam9261ek.h b/include/configs/at91sam9261ek.h
index 401478b..71a4357 100644
--- a/include/configs/at91sam9261ek.h
+++ b/include/configs/at91sam9261ek.h
@@ -30,6 +30,7 @@
#define CONFIG_AT91_LEGACY
/* ARM asynchronous clock */
+#define CONFIG_AT91FAMILY
#define CONFIG_SYS_AT91_MAIN_CLOCK 18432000 /* 18.432 MHz crystal */
#define CONFIG_SYS_HZ 1000
@@ -110,6 +111,9 @@
#define CONFIG_NR_DRAM_BANKS 1
#define PHYS_SDRAM 0x20000000
#define PHYS_SDRAM_SIZE 0x04000000 /* 64 megs */
+#define CONFIG_SYS_SDRAM_BASE 0x20000000
+#define CONFIG_SYS_INIT_SP_ADDR 0x20100000 /* within RAM is ok */
+
/* DataFlash */
#define CONFIG_ATMEL_DATAFLASH_SPI
--
1.5.6.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 4/4] at91sam9261/g10: move config from Makefile to boards.cfg
2011-04-18 9:20 [U-Boot] [PATCH 1/4] atmel_dataflash: remove use of get_timer_masked Alessandro Rubini
2011-04-18 9:20 ` [U-Boot] [PATCH 2/4] ARM: don't relocate if we are already too high Alessandro Rubini
2011-04-18 9:21 ` [U-Boot] [PATCH 3/4] at91sam9261/g10: support relocation Alessandro Rubini
@ 2011-04-18 9:21 ` Alessandro Rubini
2011-04-18 10:41 ` [U-Boot] [PATCH 1/4] atmel_dataflash: remove use of get_timer_masked Reinhard Meyer
3 siblings, 0 replies; 6+ messages in thread
From: Alessandro Rubini @ 2011-04-18 9:21 UTC (permalink / raw)
To: u-boot
This moves config targets, but defines DATAFLASH_CS0 for "dataflash_cs0"
configs and DATAFLASH_CS3 for "dataflash_cs3" configs, whereas the
Makefile targets had it swapped.
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
---
Makefile | 22 ----------------------
boards.cfg | 8 ++++++++
2 files changed, 8 insertions(+), 22 deletions(-)
diff --git a/Makefile b/Makefile
index 584105c..93c33c7 100644
--- a/Makefile
+++ b/Makefile
@@ -803,28 +803,6 @@ at91sam9xeek_config : unconfig
fi;
@$(MKCONFIG) -n $@ -a at91sam9260ek arm arm926ejs at91sam9260ek atmel at91
-at91sam9261ek_nandflash_config \
-at91sam9261ek_dataflash_cs0_config \
-at91sam9261ek_dataflash_cs3_config \
-at91sam9261ek_config \
-at91sam9g10ek_nandflash_config \
-at91sam9g10ek_dataflash_cs0_config \
-at91sam9g10ek_dataflash_cs3_config \
-at91sam9g10ek_config : unconfig
- @mkdir -p $(obj)include
- @if [ "$(findstring 9g10,$@)" ] ; then \
- echo "#define CONFIG_AT91SAM9G10EK 1" >>$(obj)include/config.h ; \
- else \
- echo "#define CONFIG_AT91SAM9261EK 1" >>$(obj)include/config.h ; \
- fi;
- @if [ "$(findstring _nandflash,$@)" ] ; then \
- echo "#define CONFIG_SYS_USE_NANDFLASH 1" >>$(obj)include/config.h ; \
- elif [ "$(findstring dataflash_cs0,$@)" ] ; then \
- echo "#define CONFIG_SYS_USE_DATAFLASH_CS3 1" >>$(obj)include/config.h ; \
- else \
- echo "#define CONFIG_SYS_USE_DATAFLASH_CS0 1" >>$(obj)include/config.h ; \
- fi;
- @$(MKCONFIG) -n $@ -a at91sam9261ek arm arm926ejs at91sam9261ek atmel at91
at91sam9263ek_norflash_config \
at91sam9263ek_norflash_boot_config \
diff --git a/boards.cfg b/boards.cfg
index 9194610..80488b8 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -73,6 +73,14 @@ omap1510inn arm arm925t - ti
aspenite arm arm926ejs - Marvell armada100
afeb9260 arm arm926ejs - - at91
at91cap9adk arm arm926ejs - atmel at91
+at91sam9261ek arm arm926ejs - atmel at91 at91sam9261ek:AT91SAM9261EK,SYS_USE_DATAFLASH_CS0
+at91sam9261ek_dataflash_cs0 arm arm926ejs - atmel at91 at91sam9261ek:AT91SAM9261EK,SYS_USE_DATAFLASH_CS0
+at91sam9261ek_dataflash_cs3 arm arm926ejs - atmel at91 at91sam9261ek:AT91SAM9261EK,SYS_USE_DATAFLASH_CS3
+at91sam9261ek_nandflash arm arm926ejs - atmel at91 at91sam9261ek:AT91SAM9261EK,SYS_USE_NANDFLASH
+at91sam92g10ek arm arm926ejs - atmel at91 at91sam9261ek:AT91SAM9G10EK,SYS_USE_DATAFLASH_CS0
+at91sam92g10ek_dataflash_cs0 arm arm926ejs - atmel at91 at91sam9261ek:AT91SAM9G10EK,SYS_USE_DATAFLASH_CS0
+at91sam92g10ek_dataflash_cs3 arm arm926ejs - atmel at91 at91sam9261ek:AT91SAM9G10EK,SYS_USE_DATAFLASH_CS3
+at91sam92g10ek_nandflash arm arm926ejs - atmel at91 at91sam9261ek:AT91SAM9G10EK,SYS_USE_NANDFLASH
top9000eval_xe arm arm926ejs top9000 emk at91 top9000:EVAL9000
top9000su_xe arm arm926ejs top9000 emk at91 top9000:SU9000
meesc arm arm926ejs - esd at91
--
1.5.6.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 3/4] at91sam9261/g10: support relocation
2011-04-18 9:21 ` [U-Boot] [PATCH 3/4] at91sam9261/g10: support relocation Alessandro Rubini
@ 2011-04-18 9:32 ` Andreas Bießmann
0 siblings, 0 replies; 6+ messages in thread
From: Andreas Bießmann @ 2011-04-18 9:32 UTC (permalink / raw)
To: u-boot
Dear Alessandro Rubini,
Am 18.04.2011 11:21, schrieb Alessandro Rubini:
> This adds support for relocation, but won't work for the default
> settings whereas AT91Boot loads u-boot to the last meg and it then
> tries to relocate slightly later, thus overwriting itself.
>
> Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
> ---
> board/atmel/at91sam9261ek/at91sam9261ek.c | 3 +--
> include/configs/at91sam9261ek.h | 4 ++++
> 2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/board/atmel/at91sam9261ek/at91sam9261ek.c b/board/atmel/at91sam9261ek/at91sam9261ek.c
> index de5cfae..ec1d2a3 100644
> --- a/board/atmel/at91sam9261ek/at91sam9261ek.c
> +++ b/board/atmel/at91sam9261ek/at91sam9261ek.c
> @@ -273,8 +273,7 @@ int board_eth_init(bd_t *bis)
>
> int dram_init(void)
> {
> - gd->bd->bi_dram[0].start = PHYS_SDRAM;
> - gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
> + gd->ram_size = get_ram_size(PHYS_SDRAM, PHYS_SDRAM_SIZE);
please stop using this PHYS_SDRAM macros. They where replaced by
CONFIG_SYS_SDRAM_(BASE|SIZE).
> return 0;
> }
>
> diff --git a/include/configs/at91sam9261ek.h b/include/configs/at91sam9261ek.h
> index 401478b..71a4357 100644
> --- a/include/configs/at91sam9261ek.h
> +++ b/include/configs/at91sam9261ek.h
> @@ -30,6 +30,7 @@
> #define CONFIG_AT91_LEGACY
>
> /* ARM asynchronous clock */
> +#define CONFIG_AT91FAMILY
CONFIG_AT91FAMILY is defined in some asm/arch/hardware.h files. You will
get 'double definition' errors here. The best solution is currently to
include asm/hardware.h in board config right after the correct SoC
define. I have started a discussion on that problem yesterday evening ->
http://article.gmane.org/gmane.comp.boot-loaders.u-boot/97903
> #define CONFIG_SYS_AT91_MAIN_CLOCK 18432000 /* 18.432 MHz crystal */
I guess SLOW_CLOCK is missing here ...
> #define CONFIG_SYS_HZ 1000
>
> @@ -110,6 +111,9 @@
> #define CONFIG_NR_DRAM_BANKS 1
> #define PHYS_SDRAM 0x20000000
> #define PHYS_SDRAM_SIZE 0x04000000 /* 64 megs */
> +#define CONFIG_SYS_SDRAM_BASE 0x20000000
just replace the PHYS_SDRAM defines by CONFIG_SYS_SDRAM defines.
> +#define CONFIG_SYS_INIT_SP_ADDR 0x20100000 /* within RAM is ok */
> +
I recommend to use SRAM here, see top900(0) header for example.
>
> /* DataFlash */
> #define CONFIG_ATMEL_DATAFLASH_SPI
regards
Andreas Bie?mann
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 1/4] atmel_dataflash: remove use of get_timer_masked
2011-04-18 9:20 [U-Boot] [PATCH 1/4] atmel_dataflash: remove use of get_timer_masked Alessandro Rubini
` (2 preceding siblings ...)
2011-04-18 9:21 ` [U-Boot] [PATCH 4/4] at91sam9261/g10: move config from Makefile to boards.cfg Alessandro Rubini
@ 2011-04-18 10:41 ` Reinhard Meyer
3 siblings, 0 replies; 6+ messages in thread
From: Reinhard Meyer @ 2011-04-18 10:41 UTC (permalink / raw)
To: u-boot
Dear Alessandro Rubini:
> Commit 5dca710a3d7703e41da0e9894f2d71f9e25bea6b removed
> get_timer_masked for at91. The dataflash driver was still
> using it and so stopped compiling. This blindly fixes
> the compilation problem (I am not currently using dataflash).
>
> Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
> ---
> drivers/spi/atmel_dataflash_spi.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/spi/atmel_dataflash_spi.c b/drivers/spi/atmel_dataflash_spi.c
> index 4a5c4aa..d5215c0 100644
> --- a/drivers/spi/atmel_dataflash_spi.c
> +++ b/drivers/spi/atmel_dataflash_spi.c
> @@ -158,12 +158,12 @@ unsigned int AT91F_SpiWrite(AT91PS_DataflashDesc pDesc)
> }
>
> /* arm simple, non interrupt dependent timer */
> - reset_timer_masked();
> + reset_timer();
> timeout = 0;
>
> writel(AT91_SPI_TXTEN + AT91_SPI_RXTEN, AT91_BASE_SPI + AT91_SPI_PTCR);
> while (!(readl(AT91_BASE_SPI + AT91_SPI_SR) & AT91_SPI_RXBUFF) &&
> - ((timeout = get_timer_masked()) < CONFIG_SYS_SPI_WRITE_TOUT));
> + ((timeout = get_timer(0)) < CONFIG_SYS_SPI_WRITE_TOUT));
> writel(AT91_SPI_TXTDIS + AT91_SPI_RXTDIS, AT91_BASE_SPI + AT91_SPI_PTCR);
> pDesc->state = IDLE;
>
a) reset_timer(), and all *_masked() timer functions are depreciated and have been
removed from AT91 timer code
b) the problem has already been fixed in current u-boot-atmel/next
Best Regards,
Reinhard
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-04-18 10:41 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-18 9:20 [U-Boot] [PATCH 1/4] atmel_dataflash: remove use of get_timer_masked Alessandro Rubini
2011-04-18 9:20 ` [U-Boot] [PATCH 2/4] ARM: don't relocate if we are already too high Alessandro Rubini
2011-04-18 9:21 ` [U-Boot] [PATCH 3/4] at91sam9261/g10: support relocation Alessandro Rubini
2011-04-18 9:32 ` Andreas Bießmann
2011-04-18 9:21 ` [U-Boot] [PATCH 4/4] at91sam9261/g10: move config from Makefile to boards.cfg Alessandro Rubini
2011-04-18 10:41 ` [U-Boot] [PATCH 1/4] atmel_dataflash: remove use of get_timer_masked Reinhard Meyer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox