diff options
author | Matthias Welwarsky <matthias.welwarsky@sysgo.com> | 2016-09-22 21:29:42 +0200 |
---|---|---|
committer | Matthias Welwarsky <matthias.welwarsky@sysgo.com> | 2017-02-10 14:18:34 +0100 |
commit | b69750fd0ded4ee19861673106761627d88734e4 (patch) | |
tree | 41cb4edcf8dc0ee6973f79f767d75f788ebc0171 /src/target/armv8.h | |
parent | ef263a45a272366836da10b7c42c916d43527f86 (diff) | |
download | riscv-openocd-b69750fd0ded4ee19861673106761627d88734e4.zip riscv-openocd-b69750fd0ded4ee19861673106761627d88734e4.tar.gz riscv-openocd-b69750fd0ded4ee19861673106761627d88734e4.tar.bz2 |
aarch64: armv8 cache functions update
Update cache identification to match functionality present in
armv7a_cache.c
Change-Id: I2dc4bee80f5a22b8728334d40331c183d1406f27
Signed-off-by: Matthias Welwarsky <matthias.welwarsky@sysgo.com>
Diffstat (limited to 'src/target/armv8.h')
-rw-r--r-- | src/target/armv8.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/target/armv8.h b/src/target/armv8.h index fa3674b..2862ebd 100644 --- a/src/target/armv8.h +++ b/src/target/armv8.h @@ -97,12 +97,22 @@ struct armv8_cachesize { uint32_t way_shift; }; -struct armv8_cache_common { - int ctype; +/* information about one architecture cache at any level */ +struct armv8_arch_cache { + int ctype; /* cache type, CLIDR encoding */ struct armv8_cachesize d_u_size; /* data cache */ struct armv8_cachesize i_size; /* instruction cache */ +}; + +struct armv8_cache_common { + int info; + int loc; + uint32_t iminline; + uint32_t dminline; + struct armv8_arch_cache arch[6]; /* cache info, L1 - L7 */ int i_cache_enabled; int d_u_cache_enabled; + /* l2 external unified cache if some */ void *l2_cache; int (*flush_all_data_cache)(struct target *target); @@ -249,7 +259,8 @@ target_to_armv8(struct target *target) #define PAGE_SIZE_4KB_TRBBASE_MASK 0xFFFFFFFFF000 int armv8_arch_state(struct target *target); -int armv8_identify_cache(struct target *target); +int armv8_read_mpidr(struct armv8_common *armv8); +int armv8_identify_cache(struct armv8_common *armv8); int armv8_init_arch_info(struct target *target, struct armv8_common *armv8); int armv8_mmu_translate_va_pa(struct target *target, target_addr_t va, target_addr_t *val, int meminfo); |