platform.h 1.6 KB

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