cache.c 843 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * Copyright (C) 2014 Samsung Electronics
  4. * Minkyu Kang <mk7.kang@samsung.com>
  5. * Robert Baldyga <r.baldyga@samsung.com>
  6. *
  7. * based on arch/arm/cpu/armv7/omap3/cache.S
  8. */
  9. #include <common.h>
  10. #ifndef CONFIG_SYS_DCACHE_OFF
  11. void enable_caches(void)
  12. {
  13. dcache_enable();
  14. }
  15. void disable_caches(void)
  16. {
  17. dcache_disable();
  18. }
  19. #endif
  20. #ifndef CONFIG_SYS_L2CACHE_OFF
  21. void v7_outer_cache_enable(void)
  22. {
  23. __asm(
  24. "push {r0, r1, r2, lr}\n\t"
  25. "mrc 15, 0, r3, cr1, cr0, 1\n\t"
  26. "orr r3, r3, #2\n\t"
  27. "mcr 15, 0, r3, cr1, cr0, 1\n\t"
  28. "pop {r1, r2, r3, pc}"
  29. );
  30. }
  31. void v7_outer_cache_disable(void)
  32. {
  33. __asm(
  34. "push {r0, r1, r2, lr}\n\t"
  35. "mrc 15, 0, r3, cr1, cr0, 1\n\t"
  36. "bic r3, r3, #2\n\t"
  37. "mcr 15, 0, r3, cr1, cr0, 1\n\t"
  38. "pop {r1, r2, r3, pc}"
  39. );
  40. }
  41. #endif