logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

bcm_vk.h (3007B)


  1. /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2. /*
  3. * Copyright 2018-2020 Broadcom.
  4. */
  5. #ifndef __UAPI_LINUX_MISC_BCM_VK_H
  6. #define __UAPI_LINUX_MISC_BCM_VK_H
  7. #include <linux/ioctl.h>
  8. #include <linux/types.h>
  9. #define BCM_VK_MAX_FILENAME 64
  10. struct vk_image {
  11. __u32 type; /* Type of image */
  12. #define VK_IMAGE_TYPE_BOOT1 1 /* 1st stage (load to SRAM) */
  13. #define VK_IMAGE_TYPE_BOOT2 2 /* 2nd stage (load to DDR) */
  14. __u8 filename[BCM_VK_MAX_FILENAME]; /* Filename of image */
  15. };
  16. struct vk_reset {
  17. __u32 arg1;
  18. __u32 arg2;
  19. };
  20. #define VK_MAGIC 0x5e
  21. /* Load image to Valkyrie */
  22. #define VK_IOCTL_LOAD_IMAGE _IOW(VK_MAGIC, 0x2, struct vk_image)
  23. /* Send Reset to Valkyrie */
  24. #define VK_IOCTL_RESET _IOW(VK_MAGIC, 0x4, struct vk_reset)
  25. /*
  26. * Firmware Status accessed directly via BAR space
  27. */
  28. #define VK_BAR_FWSTS 0x41c
  29. #define VK_BAR_COP_FWSTS 0x428
  30. /* VK_FWSTS definitions */
  31. #define VK_FWSTS_RELOCATION_ENTRY (1UL << 0)
  32. #define VK_FWSTS_RELOCATION_EXIT (1UL << 1)
  33. #define VK_FWSTS_INIT_START (1UL << 2)
  34. #define VK_FWSTS_ARCH_INIT_DONE (1UL << 3)
  35. #define VK_FWSTS_PRE_KNL1_INIT_DONE (1UL << 4)
  36. #define VK_FWSTS_PRE_KNL2_INIT_DONE (1UL << 5)
  37. #define VK_FWSTS_POST_KNL_INIT_DONE (1UL << 6)
  38. #define VK_FWSTS_INIT_DONE (1UL << 7)
  39. #define VK_FWSTS_APP_INIT_START (1UL << 8)
  40. #define VK_FWSTS_APP_INIT_DONE (1UL << 9)
  41. #define VK_FWSTS_MASK 0xffffffff
  42. #define VK_FWSTS_READY (VK_FWSTS_INIT_START | \
  43. VK_FWSTS_ARCH_INIT_DONE | \
  44. VK_FWSTS_PRE_KNL1_INIT_DONE | \
  45. VK_FWSTS_PRE_KNL2_INIT_DONE | \
  46. VK_FWSTS_POST_KNL_INIT_DONE | \
  47. VK_FWSTS_INIT_DONE | \
  48. VK_FWSTS_APP_INIT_START | \
  49. VK_FWSTS_APP_INIT_DONE)
  50. /* Deinit */
  51. #define VK_FWSTS_APP_DEINIT_START (1UL << 23)
  52. #define VK_FWSTS_APP_DEINIT_DONE (1UL << 24)
  53. #define VK_FWSTS_DRV_DEINIT_START (1UL << 25)
  54. #define VK_FWSTS_DRV_DEINIT_DONE (1UL << 26)
  55. #define VK_FWSTS_RESET_DONE (1UL << 27)
  56. #define VK_FWSTS_DEINIT_TRIGGERED (VK_FWSTS_APP_DEINIT_START | \
  57. VK_FWSTS_APP_DEINIT_DONE | \
  58. VK_FWSTS_DRV_DEINIT_START | \
  59. VK_FWSTS_DRV_DEINIT_DONE)
  60. /* Last nibble for reboot reason */
  61. #define VK_FWSTS_RESET_REASON_SHIFT 28
  62. #define VK_FWSTS_RESET_REASON_MASK (0xf << VK_FWSTS_RESET_REASON_SHIFT)
  63. #define VK_FWSTS_RESET_SYS_PWRUP (0x0 << VK_FWSTS_RESET_REASON_SHIFT)
  64. #define VK_FWSTS_RESET_MBOX_DB (0x1 << VK_FWSTS_RESET_REASON_SHIFT)
  65. #define VK_FWSTS_RESET_M7_WDOG (0x2 << VK_FWSTS_RESET_REASON_SHIFT)
  66. #define VK_FWSTS_RESET_TEMP (0x3 << VK_FWSTS_RESET_REASON_SHIFT)
  67. #define VK_FWSTS_RESET_PCI_FLR (0x4 << VK_FWSTS_RESET_REASON_SHIFT)
  68. #define VK_FWSTS_RESET_PCI_HOT (0x5 << VK_FWSTS_RESET_REASON_SHIFT)
  69. #define VK_FWSTS_RESET_PCI_WARM (0x6 << VK_FWSTS_RESET_REASON_SHIFT)
  70. #define VK_FWSTS_RESET_PCI_COLD (0x7 << VK_FWSTS_RESET_REASON_SHIFT)
  71. #define VK_FWSTS_RESET_L1 (0x8 << VK_FWSTS_RESET_REASON_SHIFT)
  72. #define VK_FWSTS_RESET_L0 (0x9 << VK_FWSTS_RESET_REASON_SHIFT)
  73. #define VK_FWSTS_RESET_UNKNOWN (0xf << VK_FWSTS_RESET_REASON_SHIFT)
  74. #endif /* __UAPI_LINUX_MISC_BCM_VK_H */