]> git.sur5r.net Git - u-boot/commitdiff
avr32: Get rid of the .flashprog section
authorHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
Tue, 29 Apr 2008 10:53:05 +0000 (12:53 +0200)
committerHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
Tue, 27 May 2008 13:27:29 +0000 (15:27 +0200)
The .flashprog section was only needed back when we were running
directly from flash, and it's even more useless on NGW100 since it
uses the CFI flash driver which never used this workaround in the
first place.

Remove it on STK1000 as well, and get rid of all the associated code and
annotations.

Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
board/atmel/atngw100/u-boot.lds
board/atmel/atstk1000/flash.c
board/atmel/atstk1000/u-boot.lds
cpu/at32ap/cpu.c
include/asm-avr32/sections.h

index 34e347aecd5e6b7abd2ace5dd293f840838d427a..3c878d8657a17c731c6b7222dec942c8148366db 100644 (file)
@@ -32,14 +32,6 @@ SECTIONS
                *(.text)
                *(.text.*)
        }
-
-       . = ALIGN(32);
-       __flashprog_start = .;
-       .flashprog : {
-               *(.flashprog)
-       }
-       . = ALIGN(32);
-       __flashprog_end = .;
        _etext = .;
 
        .rodata : {
index 40478258e7c1e1191bfca9be664bc48b3618ea4e..12537f3142ec4e1d655401c838fb5d8331cd9a52 100644 (file)
@@ -30,7 +30,7 @@ DECLARE_GLOBAL_DATA_PTR;
 
 flash_info_t flash_info[1];
 
-static void __flashprog flash_identify(uint16_t *flash, flash_info_t *info)
+static void flash_identify(uint16_t *flash, flash_info_t *info)
 {
        unsigned long flags;
 
@@ -76,7 +76,7 @@ void flash_print_info(flash_info_t *info)
               info->size >> 10, info->sector_count);
 }
 
-int __flashprog flash_erase(flash_info_t *info, int s_first, int s_last)
+int flash_erase(flash_info_t *info, int s_first, int s_last)
 {
        unsigned long flags;
        unsigned long start_time;
@@ -154,7 +154,7 @@ int __flashprog flash_erase(flash_info_t *info, int s_first, int s_last)
        return ERR_OK;
 }
 
-int __flashprog write_buff(flash_info_t *info, uchar *src,
+int write_buff(flash_info_t *info, uchar *src,
                           ulong addr, ulong count)
 {
        unsigned long flags;
index 247812e10366bceebdb88a7d932401c699896ba9..f63bc4ff27ad1d23d473c46cb85b9918c541b84d 100644 (file)
@@ -32,14 +32,6 @@ SECTIONS
                *(.text)
                *(.text.*)
        }
-
-       . = ALIGN(32);
-       __flashprog_start = .;
-       .flashprog : {
-               *(.flashprog)
-       }
-       . = ALIGN(32);
-       __flashprog_end = .;
        _etext = .;
 
        .rodata : {
index 4542e67973256fd1c979102d1dbfa7d5f6fdabce..a7a66cc1a0b028b2677f542a9521409c5005c238 100644 (file)
@@ -84,7 +84,6 @@ static void pm_init(void)
 int cpu_init(void)
 {
        extern void _evba(void);
-       char *p;
 
        /* in case of soft resets, disable watchdog */
        sm_writel(WDT_CTRL, SM_BF(KEY, 0x55));
@@ -104,11 +103,6 @@ int cpu_init(void)
        sysreg_write(EVBA, (unsigned long)&_evba);
        asm volatile("csrf      %0" : : "i"(SYSREG_EM_OFFSET));
 
-       /* Lock everything that mess with the flash in the icache */
-       for (p = __flashprog_start; p <= (__flashprog_end + CFG_ICACHE_LINESZ);
-            p += CFG_ICACHE_LINESZ)
-               asm volatile("cache %0, 0x02" : "=m"(*p) :: "memory");
-
        return 0;
 }
 
index 75373abde73be0c493451121f5c86d0a23fd7507..fe819b2db6ece7aaf0fad7d642dfeb414ed18722 100644 (file)
 /* References to section boundaries */
 
 extern char _text[], _etext[];
-extern char __flashprog_start[], __flashprog_end[];
 extern char _data[], __data_lma[], _edata[], __edata_lma[];
 extern char __got_start[], __got_lma[], __got_end[];
 extern char _end[];
 
-/*
- * Everything in .flashprog will be locked in the icache so it doesn't
- * get disturbed when executing flash commands.
- */
-#define __flashprog __attribute__((section(".flashprog"), __noinline__))
-
 #endif /* __ASM_AVR32_SECTIONS_H */