platform.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /**
  2. ******************************************************************************
  3. * @file platform.h
  4. * @author StarFive Technology
  5. * @version V1.0
  6. * @date 07/20/2020
  7. * @brief
  8. ******************************************************************************
  9. * @copy
  10. *
  11. * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  12. * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  13. * TIME. AS A RESULT, STARFIVE SHALL NOT BE HELD LIABLE FOR ANY
  14. * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
  15. * FROM THE CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  16. * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  17. *
  18. * COPYRIGHT 2020 Shanghai StarFive Technology Co., Ltd.
  19. */
  20. #ifndef PLATFORM_H_
  21. #define PLATFORM_H_
  22. #ifdef __ASSEMBLER__
  23. #define _AC(X,Y) X
  24. #define _AT(T,X) X
  25. #else
  26. #define _AC(X,Y) (X##Y)
  27. #define _AT(T,X) ((T)(X))
  28. #endif /* !__ASSEMBLER__*/
  29. /****************************************************************************
  30. * Platform definitions
  31. *****************************************************************************/
  32. // CPU info
  33. #define NUM_CORES 2
  34. #define MAX_HART_ID 1
  35. // The hart that non-SMP tests should run on
  36. #ifndef NONSMP_HART
  37. #define NONSMP_HART 0
  38. #endif
  39. // Memory map
  40. #define CLINT_CTRL_ADDR _AC(0x2000000,UL)
  41. #define CLINT_CTRL_SIZE _AC(0x10000,UL)
  42. #define CLINT_CTRL_MTIME _AC(0x200BFF8,UL)
  43. #define CLINT_CTRL_HART0_MTIMECMP _AC(0x2004000,UL)
  44. #define CLINT_CTRL_HART1_MTIMECMP _AC(0x2004008,UL)
  45. #endif