Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 218720
b: refs/heads/master
c: 6331718
h: refs/heads/master
v: v3
  • Loading branch information
Akira Takeuchi authored and David Howells committed Oct 27, 2010
1 parent 34226c9 commit f5523bc
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8be062892365b09f41d64cda7fa63d306e95e0c9
refs/heads/master: 633171861a3120af011bb1ee8dd40069951dfeac
49 changes: 48 additions & 1 deletion trunk/arch/mn10300/boot/compressed/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

#include <linux/linkage.h>
#include <asm/cpu-regs.h>
#include <asm/cache.h>

.globl startup_32
startup_32:
Expand All @@ -37,8 +38,15 @@ startup_32:
mov (a0),d0
btst CHCTR_ICBUSY|CHCTR_DCBUSY,d0 # wait till not busy
lne
mov CHCTR_ICEN|CHCTR_DCEN|CHCTR_DCWTMD,d0 # writethru dcache

#ifdef CONFIG_MN10300_CACHE_ENABLED
#ifdef CONFIG_MN10300_CACHE_WBACK
mov CHCTR_ICEN|CHCTR_DCEN|CHCTR_DCWTMD_WRBACK,d0
#else
mov CHCTR_ICEN|CHCTR_DCEN|CHCTR_DCWTMD_WRTHROUGH,d0
#endif /* WBACK */
movhu d0,(a0) # enable
#endif /* !ENABLED */

# clear the BSS area
mov __bss_start,a0
Expand All @@ -54,6 +62,9 @@ bssclear_end:

# decompress the kernel
call decompress_kernel[],0
#ifdef CONFIG_MN10300_CACHE_WBACK
call mn10300_dcache_flush_inv[],0
#endif

# disable caches again
mov CHCTR,a0
Expand All @@ -69,10 +80,46 @@ bssclear_end:
mov (4,a0),d1
mov (8,a0),d2

# jump to the kernel proper entry point
mov a3,sp
mov CONFIG_KERNEL_TEXT_ADDRESS,a0
jmp (a0)


###############################################################################
#
# Cache flush routines
#
###############################################################################
#ifdef CONFIG_MN10300_CACHE_WBACK
mn10300_dcache_flush_inv:
movhu (CHCTR),d0
btst CHCTR_DCEN,d0
beq mn10300_dcache_flush_inv_end

mov L1_CACHE_NENTRIES,d1
clr a1

mn10300_dcache_flush_inv_loop:
mov (DCACHE_PURGE_WAY0(0),a1),d0 # unconditional purge
mov (DCACHE_PURGE_WAY1(0),a1),d0 # unconditional purge
mov (DCACHE_PURGE_WAY2(0),a1),d0 # unconditional purge
mov (DCACHE_PURGE_WAY3(0),a1),d0 # unconditional purge

add L1_CACHE_BYTES,a1
add -1,d1
bne mn10300_dcache_flush_inv_loop

mn10300_dcache_flush_inv_end:
ret [],0
#endif /* CONFIG_MN10300_CACHE_WBACK */


###############################################################################
#
# Data areas
#
###############################################################################
.data
.align 4
param_save_area:
Expand Down

0 comments on commit f5523bc

Please sign in to comment.