diff options
Diffstat (limited to 'board/sc520_spunk')
-rw-r--r-- | board/sc520_spunk/Makefile | 2 | ||||
-rw-r--r-- | board/sc520_spunk/flash.c | 30 | ||||
-rw-r--r-- | board/sc520_spunk/sc520_spunk_asm.S | 4 |
3 files changed, 9 insertions, 27 deletions
diff --git a/board/sc520_spunk/Makefile b/board/sc520_spunk/Makefile index bfb77e8..226c756 100644 --- a/board/sc520_spunk/Makefile +++ b/board/sc520_spunk/Makefile @@ -36,7 +36,7 @@ OBJS := $(addprefix $(obj),$(COBJS)) SOBJS := $(addprefix $(obj),$(SOBJS)) $(LIB): $(obj).depend $(OBJS) $(SOBJS) - $(AR) $(ARFLAGS) $@ $(OBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS) clean: rm -f $(SOBJS) $(OBJS) diff --git a/board/sc520_spunk/flash.c b/board/sc520_spunk/flash.c index 4942e59..0b4bf68 100644 --- a/board/sc520_spunk/flash.c +++ b/board/sc520_spunk/flash.c @@ -33,7 +33,6 @@ #define PROBE_BUFFER_SIZE 1024 static unsigned char buffer[PROBE_BUFFER_SIZE]; - #define SC520_MAX_FLASH_BANKS 1 #define SC520_FLASH_BANK0_BASE 0x38000000 /* BOOTCS */ #define SC520_FLASH_BANKSIZE 0x8000000 @@ -62,7 +61,6 @@ flash_info_t flash_info[SC520_MAX_FLASH_BANKS]; /*----------------------------------------------------------------------- */ - static u32 _probe_flash(u32 addr, u32 bw, int il) { u32 result=0; @@ -180,7 +178,6 @@ static u32 _probe_flash(u32 addr, u32 bw, int il) break; } - return result; } @@ -215,11 +212,9 @@ static int identify_flash(unsigned address, int width) enable_interrupts(); } - vendor = res >> 16; device = res & 0xffff; - return res; } @@ -385,7 +380,6 @@ void flash_print_info(flash_info_t *info) break; } - printf(" Size: %ld MB in %d Sectors\n", info->size >> 20, info->sector_count); @@ -399,13 +393,13 @@ void flash_print_info(flash_info_t *info) } printf ("\n"); - done: +done: + return; } /*----------------------------------------------------------------------- */ - static u32 _amd_erase_flash(u32 addr, u32 sector) { unsigned elapsed; @@ -467,7 +461,6 @@ static u32 _intel_erase_flash(u32 addr, u32 sector) *(volatile u16*)(addr + sector) = 0x0020; /* erase setup */ *(volatile u16*)(addr + sector) = 0x00D0; /* erase confirm */ - /* Wait at least 80us - let's wait 1 ms */ __udelay(1000); @@ -486,7 +479,6 @@ static u32 _intel_erase_flash(u32 addr, u32 sector) return 0; } - extern int _intel_erase_flash_end; asm ("_intel_erase_flash_end:\n" ".long 0\n"); @@ -548,7 +540,6 @@ int flash_erase(flash_info_t *info, int s_first, int s_last) printf ("\n"); } - /* Start erase on unprotected sectors */ for (sect = s_first; sect<=s_last; sect++) { @@ -566,7 +557,6 @@ int flash_erase(flash_info_t *info, int s_first, int s_last) enable_interrupts(); } - if (res) { printf("Erase timed out, sector %d\n", sect); return res; @@ -576,7 +566,6 @@ int flash_erase(flash_info_t *info, int s_first, int s_last) } } - return 0; } @@ -586,11 +575,11 @@ int flash_erase(flash_info_t *info, int s_first, int s_last) * 1 - write timeout * 2 - Flash not erased */ -static int _amd_write_word(unsigned start, unsigned dest, unsigned data) +static int _amd_write_word(unsigned start, unsigned dest, u16 data) { - volatile u16 *addr2 = (u16*)start; - volatile u16 *dest2 = (u16*)dest; - volatile u16 *data2 = (u16*)&data; + volatile u16 *addr2 = (volatile u16*)start; + volatile u16 *dest2 = (volatile u16*)dest; + volatile u16 *data2 = (volatile u16*)&data; int i; unsigned elapsed; @@ -601,7 +590,6 @@ static int _amd_write_word(unsigned start, unsigned dest, unsigned data) for (i = 0; i < 2; i++) { - addr2[0x5555] = 0x00AA; addr2[0x2aaa] = 0x0055; addr2[0x5555] = 0x00A0; @@ -630,7 +618,6 @@ extern int _amd_write_word_end; asm ("_amd_write_word_end:\n" ".long 0\n"); - static int _intel_write_word(unsigned start, unsigned dest, unsigned data) { int i; @@ -663,14 +650,12 @@ static int _intel_write_word(unsigned start, unsigned dest, unsigned data) return 0; - } extern int _intel_write_word_end; asm ("_intel_write_word_end:\n" ".long 0\n"); - /*----------------------------------------------------------------------- * Copy memory to flash, returns: * 0 - OK @@ -715,10 +700,8 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt) return 3; } - wp = (addr & ~3); /* get lower word aligned address */ - /* * handle unaligned start bytes */ @@ -805,5 +788,4 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt) } return rc; - } diff --git a/board/sc520_spunk/sc520_spunk_asm.S b/board/sc520_spunk/sc520_spunk_asm.S index 8b34103..0127076 100644 --- a/board/sc520_spunk/sc520_spunk_asm.S +++ b/board/sc520_spunk/sc520_spunk_asm.S @@ -73,8 +73,8 @@ done: movl $0xfffefc32,%edx jmp *%ebp /* return to caller */ -.globl __show_boot_progress -__show_boot_progress: +.globl show_boot_progress +show_boot_progress: movl $0xfffefc32,%edx xorw $0xffff, %ax movw %ax,(%edx) |