pnv_nest_pervasive.h 959 B

1234567891011121314151617181920212223242526272829303132
  1. /*
  2. * QEMU PowerPC nest pervasive common chiplet model
  3. *
  4. * Copyright (c) 2023, IBM Corporation.
  5. *
  6. * SPDX-License-Identifier: GPL-2.0-or-later
  7. */
  8. #ifndef PPC_PNV_NEST_CHIPLET_PERVASIVE_H
  9. #define PPC_PNV_NEST_CHIPLET_PERVASIVE_H
  10. #define TYPE_PNV_NEST_CHIPLET_PERVASIVE "pnv-nest-chiplet-pervasive"
  11. #define PNV_NEST_CHIPLET_PERVASIVE(obj) OBJECT_CHECK(PnvNestChipletPervasive, (obj), TYPE_PNV_NEST_CHIPLET_PERVASIVE)
  12. typedef struct PnvPervasiveCtrlRegs {
  13. #define PNV_CPLT_CTRL_SIZE 6
  14. uint64_t cplt_ctrl[PNV_CPLT_CTRL_SIZE];
  15. uint64_t cplt_cfg0;
  16. uint64_t cplt_cfg1;
  17. uint64_t cplt_stat0;
  18. uint64_t cplt_mask0;
  19. uint64_t ctrl_protect_mode;
  20. uint64_t ctrl_atomic_lock;
  21. } PnvPervasiveCtrlRegs;
  22. typedef struct PnvNestChipletPervasive {
  23. DeviceState parent;
  24. MemoryRegion xscom_ctrl_regs_mr;
  25. PnvPervasiveCtrlRegs control_regs;
  26. } PnvNestChipletPervasive;
  27. #endif /*PPC_PNV_NEST_CHIPLET_PERVASIVE_H */