soc.c 919 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * (C) Copyright 2015
  3. * Kamil Lulko, <kamil.lulko@gmail.com>
  4. *
  5. * SPDX-License-Identifier: GPL-2.0+
  6. */
  7. #include <common.h>
  8. #include <asm/io.h>
  9. #include <asm/armv7m_mpu.h>
  10. #include <asm/arch/stm32.h>
  11. u32 get_cpu_rev(void)
  12. {
  13. return 0;
  14. }
  15. int arch_cpu_init(void)
  16. {
  17. struct mpu_region_config stm32_region_config[] = {
  18. { 0x00000000, REGION_0, XN_DIS, PRIV_RW_USR_RW,
  19. O_I_WB_RD_WR_ALLOC, REGION_4GB },
  20. { 0x00000000, REGION_1, XN_DIS, PRIV_RW_USR_RW,
  21. STRONG_ORDER, REGION_512MB },
  22. { 0x40000000, REGION_2, XN_EN, PRIV_RW_USR_RW,
  23. DEVICE_NON_SHARED, REGION_512MB },
  24. { 0xA0000000, REGION_3, XN_EN, PRIV_RW_USR_RW,
  25. DEVICE_NON_SHARED, REGION_512MB },
  26. { 0xE0000000, REGION_4, XN_EN, PRIV_RW_USR_RW,
  27. STRONG_ORDER, REGION_512MB },
  28. };
  29. disable_mpu();
  30. for (int i = 0; i < ARRAY_SIZE(stm32_region_config); i++)
  31. mpu_config(&stm32_region_config[i]);
  32. enable_mpu();
  33. return 0;
  34. }
  35. void s_init(void)
  36. {
  37. }