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