plic.h 868 B

12345678910111213141516171819202122232425262728293031
  1. // See LICENSE for license details.
  2. #ifndef PLIC_H
  3. #define PLIC_H
  4. #include <sifive/const.h>
  5. // 32 bits per source
  6. #define PLIC_PRIORITY_OFFSET _AC(0x0000,UL)
  7. #define PLIC_PRIORITY_SHIFT_PER_SOURCE 2
  8. // 1 bit per source (1 address)
  9. #define PLIC_PENDING_OFFSET _AC(0x1000,UL)
  10. #define PLIC_PENDING_SHIFT_PER_SOURCE 0
  11. //0x80 per target
  12. #define PLIC_ENABLE_OFFSET _AC(0x2000,UL)
  13. #define PLIC_ENABLE_SHIFT_PER_TARGET 7
  14. #define PLIC_THRESHOLD_OFFSET _AC(0x200000,UL)
  15. #define PLIC_CLAIM_OFFSET _AC(0x200004,UL)
  16. #define PLIC_THRESHOLD_SHIFT_PER_TARGET 12
  17. #define PLIC_CLAIM_SHIFT_PER_TARGET 12
  18. #define PLIC_MAX_SOURCE 1023
  19. #define PLIC_SOURCE_MASK 0x3FF
  20. #define PLIC_MAX_TARGET 15871
  21. #define PLIC_TARGET_MASK 0x3FFF
  22. #endif /* PLIC_H */