1 /*
2  * Copyright (c) 2015 Travis Geiselbrecht
3  *
4  * Use of this source code is governed by a MIT-style
5  * license that can be found in the LICENSE file or at
6  * https://opensource.org/licenses/MIT
7  */
8 #include <lk/trace.h>
9 #include <lk/debug.h>
10 #include <stdint.h>
11 #include <arch.h>
12 #include <arch/ops.h>
13 #include <arch/microblaze.h>
14 
15 #define LOCAL_TRACE 0
16 
arch_early_init(void)17 void arch_early_init(void) {
18     LTRACE;
19 
20     /* enable i/d cache */
21     uint32_t val = mb_read_msr();
22     val |= (1 << (31 - 26)) | (1 << (31 - 24));
23     mb_write_msr(val);
24 }
25 
arch_init(void)26 void arch_init(void) {
27     LTRACE;
28 }
29 
arch_idle(void)30 void arch_idle(void) {
31     asm volatile("sleep");
32 }
33 
arch_chain_load(void * entry,ulong arg0,ulong arg1,ulong arg2,ulong arg3)34 void arch_chain_load(void *entry, ulong arg0, ulong arg1, ulong arg2, ulong arg3) {
35     PANIC_UNIMPLEMENTED;
36 }
37 
38 /* unimplemented cache operations */
arch_disable_cache(uint flags)39 void arch_disable_cache(uint flags) { PANIC_UNIMPLEMENTED; }
arch_enable_cache(uint flags)40 void arch_enable_cache(uint flags) { PANIC_UNIMPLEMENTED; }
41 
arch_clean_cache_range(addr_t start,size_t len)42 void arch_clean_cache_range(addr_t start, size_t len) { PANIC_UNIMPLEMENTED; }
arch_clean_invalidate_cache_range(addr_t start,size_t len)43 void arch_clean_invalidate_cache_range(addr_t start, size_t len) { PANIC_UNIMPLEMENTED; }
arch_invalidate_cache_range(addr_t start,size_t len)44 void arch_invalidate_cache_range(addr_t start, size_t len) { PANIC_UNIMPLEMENTED; }
arch_sync_cache_range(addr_t start,size_t len)45 void arch_sync_cache_range(addr_t start, size_t len) { PANIC_UNIMPLEMENTED; }
46