Makefile 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. # Alias for backward compatibility
  2. CONFIG_VHA_APOLLO := $(CONFIG_VHA_FPGA)
  3. CONFIG_HW_AX3_MC := $(CONFIG_HW_MULTICORE)
  4. obj-$(CONFIG_VHA) += vha.o
  5. CONFIG_VHA_INFO := $(CONFIG_VHA)
  6. obj-$(CONFIG_VHA_INFO) += vha_info.o
  7. # Common files
  8. vha-y := vha_api.o vha_common.o
  9. vha-y += vha_dbg.o vha_pdump.o
  10. ifeq ($(CONFIG_HW_AX3_MC), y)
  11. subdir-ccflags-y += -I$(src)/multi
  12. vha-y += multi/vha_dev.o multi/vha_wm.o multi/vha_mmu.o multi/vha_mt19937.o
  13. else
  14. subdir-ccflags-y += -I$(src)/single
  15. vha-y += single/vha_dev.o single/vha_cnn.o single/vha_mmu.o
  16. vha-$(CONFIG_HW_AX2) += single/vha_dev_ax2.o
  17. vha-$(CONFIG_HW_AX3) += single/vha_dev_ax3.o
  18. endif
  19. PLAT := platform
  20. vha-$(CONFIG_VHA_PCI) += $(PLAT)/vha_plat_pci.o
  21. vha-$(CONFIG_VHA_DUMMY) += $(PLAT)/vha_plat_dummy.o
  22. vha-$(CONFIG_VHA_DUMMY_HW_SIM) += $(PLAT)/vha_plat_dummy.o
  23. vha-$(CONFIG_VHA_APOLLO) += $(PLAT)/vha_plat_apollo.o
  24. vha-$(CONFIG_VHA_ODIN) += $(PLAT)/vha_plat_odin.o
  25. vha-$(CONFIG_VHA_EMU) += $(PLAT)/vha_plat_emu.o
  26. vha-$(CONFIG_VHA_FROST) += $(PLAT)/vha_plat_frost.o
  27. vha-$(CONFIG_VHA_ORION) += $(PLAT)/vha_plat_orion.o
  28. vha-$(CONFIG_VHA_NEXEF) += $(PLAT)/vha_plat_nexef.o
  29. vha-$(CONFIG_VHA_DT_EXAMPLE) += $(PLAT)/vha_plat_dt_example.o $(PLAT)/vha_plat_dt.o
  30. vha-$(CONFIG_VHA_THEAD_LIGHT_FPGA_C910) += $(PLAT)/vha_plat_thead.o $(PLAT)/vha_plat_thead_light_fpga_c910.o
  31. vha-$(CONFIG_VHA_THEAD_LIGHT) += $(PLAT)/vha_plat_thead.o $(PLAT)/vha_plat_thead_light.o
  32. # System configuration
  33. # For AX2 set Mirage by default
  34. CONFIG_VHA_SYS_MIRAGE := $(CONFIG_HW_AX2)
  35. # For 3NX set to Aura by default.
  36. CONFIG_VHA_SYS_AURA := $(CONFIG_HW_AX3)
  37. # For 4NX(3NX-MC) set to Magna by default.
  38. CONFIG_VHA_SYS_MAGNA := $(CONFIG_HW_AX3_MC)
  39. ccflags-$(CONFIG_VHA_SYS_MIRAGE) += -DCFG_SYS_MIRAGE
  40. ccflags-$(CONFIG_VHA_SYS_AURA) += -DCFG_SYS_AURA
  41. ccflags-$(CONFIG_VHA_SYS_VAGUS) += -DCFG_SYS_VAGUS
  42. ccflags-$(CONFIG_VHA_SYS_MAGNA) += -DCFG_SYS_MAGNA
  43. ccflags-y += -I$(src)/$(PLAT)/
  44. subdir-ccflags-y += -I$(src)
  45. ifdef CONFIG_NEXEF_NNPU_INCLUDE
  46. subdir-ccflags-y += -I${CONFIG_NEXEF_NNPU_INCLUDE}
  47. endif
  48. ccflags-y += -DDEFAULT_SYMBOL_NAMESPACE=VHA_CORE
  49. ccflags-$(CONFIG_BUS_MASTERING) += -DFPGA_BUS_MASTERING
  50. ccflags-$(CONFIG_VHA_DUMMY) += -DCONFIG_VHA_DUMMY
  51. ccflags-$(CONFIG_VHA_DUMMY_HW_SIM) += -DCONFIG_VHA_DUMMY -DCONFIG_VHA_DUMMY_SIMULATE_HW_PROCESSING_TIME
  52. ccflags-$(CONFIG_VHA_APOLLO) += -DCONFIG_VHA_APOLLO
  53. ccflags-$(CONFIG_VHA_ORION) += -DCONFIG_VHA_ORION
  54. ccflags-$(CONFIG_VHA_ODIN) += -DCONFIG_VHA_ODIN
  55. ccflags-$(CONFIG_VHA_NEXEF) += -DCONFIG_VHA_NEXEF
  56. ccflags-$(CONFIG_ION) += -Idrivers/staging/android/ion
  57. ccflags-$(CONFIG_HW_AX2) += -DHW_AX2
  58. # Mirrored page tables enabled by default if not specified
  59. CONFIG_VHA_MMU_MIRRORED_CTX ?= y
  60. ccflags-$(CONFIG_VHA_MMU_MIRRORED_CTX) += -DVHA_MMU_MIRRORED_CTX_SUPPORT
  61. ccflags-$(CONFIG_HW_AX3) += -DHW_AX3
  62. # Default cores
  63. CONFIG_VHA_NCORES ?= 6
  64. ccflags-$(CONFIG_HW_AX3_MC) += -DCONFIG_HW_MULTICORE -DCONFIG_VHA_NCORES=$(CONFIG_VHA_NCORES)
  65. # Enhanced APM enabled by default if not specified
  66. CONFIG_VHA_ENHANCED_APM ?= y
  67. ccflags-$(CONFIG_VHA_ENHANCED_APM) += -DVHA_ENHANCED_APM
  68. # Default OSID = 0
  69. CONFIG_TARGET_OSID ?= 0
  70. # Magna does not use multiple OSes approach
  71. ifeq ($(CONFIG_HW_AX3), y)
  72. ifeq ($(CONFIG_HW_AX3_MC),)
  73. ccflags-y += -DOSID=$(CONFIG_TARGET_OSID)
  74. endif
  75. endif
  76. # Enable Safety critical features by default
  77. ifeq ($(CONFIG_HW_AX3_MC)$(CONFIG_VHA_SYS_VAGUS), y)
  78. CONFIG_VHA_SCF ?= y
  79. endif
  80. ifeq ($(CONFIG_HW_AX3_MC)$(CONFIG_VHA_SCF), yy)
  81. vha-y += multi/vha_sc_dbg.o
  82. endif
  83. ccflags-$(CONFIG_VHA_SCF) += -DVHA_SCF
  84. # enable support for *_EVENT_INJECT registers only for MC
  85. # and if kernel FUNCTION_ERROR_INJECTION is enabled
  86. ifeq ($(CONFIG_FUNCTION_ERROR_INJECTION), y)
  87. ifeq ($(CONFIG_HW_AX3), y)
  88. ccflags-y += -DVHA_EVENT_INJECT
  89. endif
  90. endif
  91. ifeq ($(CONFIG_FUNCTONAL_TEST_CONTROL), y)
  92. ccflags-y += -DVHA_FUNCT_CTRL
  93. endif
  94. ifeq ($(CONFIG_FORCE_IOREG_DEBUG), y)
  95. ccflags-y += -DVHA_FORCE_IO_DEBUG
  96. endif
  97. # Magna does not use multiple OSes approach
  98. ifeq ($(CONFIG_HW_AX3), y)
  99. ifeq ($(CONFIG_HW_AX3_MC),y)
  100. CONFIG_VHA_LO_PRI_SUBSEGS = n
  101. else
  102. CONFIG_VHA_LO_PRI_SUBSEGS ?= n
  103. endif
  104. else
  105. CONFIG_VHA_LO_PRI_SUBSEGS = n
  106. endif
  107. ccflags-$(CONFIG_VHA_LO_PRI_SUBSEGS) += -DVHA_USE_LO_PRI_SUB_SEGMENTS
  108. ifeq ($(CONFIG_VHA_LO_PRI_SUBSEGS), y)
  109. obj-$(CONFIG_VHA) += vha_monitor.o
  110. endif