obj-$(CONFIG_CAMBRICON_MLU_GPU) += cambricon-drv.o
obj-$(CONFIG_CAMBRICON_MLU_GPU) += cambricon-gdrdrv.o
obj-$(CONFIG_CAMBRICON_MLU_GPU) += cambricon-peermem.o
obj-$(CONFIG_CAMBRICON_MLU_GPU) += cambricon-util_drv.o

cambricon-drv-objs := cap/mi_cap_ioctl.o cap/cndrv_cap.o \
ipcm/rpmsg/virtio_rpmsg_bus.o ipcm/rpmsg/cambr_ipc.o ipcm/rpmsg/rpmsg_char.o \
ipcm/rpmsg/rpmsg_core.o ipcm/cambr_ipcm.o ipcm/remoteproc/remoteproc_virtio.o  \
ipcm/remoteproc/remoteproc_sysfs.o ipcm/remoteproc/remoteproc_elf_loader.o ipcm/remoteproc/cambr_remoteproc.o \
ipcm/remoteproc/remoteproc_debugfs.o ipcm/remoteproc/remoteproc_core.o ipcm/virtio/virtio_ring.o ipcm/virtio/virtio.o \
commu/commu/rtequeue.o commu/commu/testqueue.o commu/commu/channel.o commu/commu/ctrlqueue.o \
commu/commu_init.o commu/commu_napi.o commu/commu_proc.o \
nor/cndrv_sfc.o nor/cndrv_nor.o \
i2c/cndrv_i2c.o i2c/dw_apb_i2c.o \
log/log_vuart.o \
gdma/ce_api/ce_gdma_api.o gdma/rpc/gdma_rpc.o gdma/host_api/gdma_drv.o \
gdma/host_api/gdma_debug.o gdma/host_api/gdma_desc.o gdma/host_api/gdma_hal.o \
gdma/host_api/gdma_sched.o gdma/host_api/gdma_api.o gdma/host_api/plat/mlu370/gdma_smmu.o \
gdma/host_api/plat/mlu370/gdma_c30s.o gdma/host_api/plat/mlu500/gdma_c50.o gdma/host_api/plat/pigeon/gdma_pigeon.o \
gdma/cndrv_gdma.o gdma/cndrv_gdma_proc.o \
cambricon-drv.mod.o \
core/cndrv_kthread.o core/cndrv_affinity.o core/cndrv_kwork.o \
core/cndrv_driver_capability.o core/cndrv_core.o core/cndrv_core_ctl.o core/cndrv_debug.o \
cambricon-drv.o \
mig/cndrv_qdev.o mig/cndrv_mig.o mig/cndrv_mig_ioctl.o \
noc/qos.o noc/qos_info.o \
mcu/cndrv_mcu_mlu290.o mcu/cndrv_mcu_mlu220.o mcu/cndrv_mcu_mlu580.o \
mcu/cndrv_mcu_mlu270.o mcu/cndrv_mcu_mlu590.o mcu/cndrv_mcu_main.o \
mcu/cndrv_mcu_mlu370.o mcu/cndrv_mcu_info.o \
domain/misc.o domain/plat_pci.o domain/life_cycle_control.o \
domain/cndrv_domain.o domain/test/cndrv_domain_test.o domain/live_migration.o \
domain/rpc_interface.o domain/dmlib/domain.o domain/dmlib/domain_resource_dictionary.o \
domain/dmlib/domain_host.o domain/resource/resource_cache.o domain/mim.o \
attr/cndrv_attr_mlu220.o attr/cndrv_attr_mlu270.o attr/cndrv_attr_mlu290.o \
attr/cndrv_attr_mlu370.o attr/cndrv_attr_ioctl.o attr/cndrv_attr_mlu580.o \
attr/cndrv_attr_mlu590.o attr/cndrv_attr.o \
lpm/cndrv_lpm.o \
monitor/cndrv_monitor_ioctl.o monitor/time/cndrv_perf.o monitor/time/cndrv_time.o \
monitor/cndrv_monitor.o monitor/camb_pmu_rpc.o monitor/cndev/cndev_server.o \
monitor/cndev/cndev_mlu580.o monitor/cndev/cndev_mlu270.o monitor/cndev/cndev_common.o \
monitor/cndev/cndev_mlu590.o monitor/cndev/cndev_mlu370.o monitor/cndev/cndev_mlu290.o \
monitor/cndev/cndev_mlu220.o monitor/cndev/cndev_device.o monitor/xid/cndrv_xid.o \
monitor/axi_monitor/cndrv_axi_monitor_mlu590.o monitor/axi_monitor/cndrv_axi_monitor.o \
monitor/axi_monitor/cndrv_axi_monitor_mlu290.o monitor/axi_monitor/cndrv_axi_monitor_mlu220.o \
monitor/axi_monitor/cndrv_axi_monitor_mlu580.o monitor/axi_monitor/cndrv_axi_monitor_mlu270.o \
monitor/axi_monitor/cndrv_axi_monitor_mlu200.o monitor/axi_monitor/cndrv_axi_monitor_mlu370.o \
monitor/cndrv_pmu_proc.o monitor/pmu_version/pmu_version.o monitor/pmu_version/pmu_version_core.o \
monitor/highrate/cndrv_mlu370_highrate.o monitor/highrate/cndrv_monitor_common.o monitor/highrate/cndrv_mlu500_highrate.o \
monitor/highrate/cndrv_mlu590_highrate.o monitor/highrate/cndrv_mlu580_highrate.o monitor/highrate/cndrv_monitor_highrate.o \
mm/hal/hal_llc/llc_270.o mm/hal/hal_llc/llc_370.o mm/hal/hal_llc/llc_common.o mm/hal/hal_llc/llc_590.o \
mm/hal/hal_llc/llc_220.o mm/hal/hal_llc/llc_290.o mm/hal/cn_mem_hal.o mm/hal/hal_smmu/smmu_5223.o \
mm/hal/hal_smmu/smmu_3226.o mm/hal/hal_smmu/smmu_590.o mm/hal/hal_smmu/smmu_370.o \
mm/hal/hal_smmu/smmu_290.o mm/hal/hal_smmu/smmu_common.o mm/hal/hal_smmu/smmu_270.o \
mm/hal/hal_smmu/smmu_220.o mm/mem_perf/mem_perf.o mm/mem_pgretire/camb_mm_pgretire.o \
mm/cndrv_mm_dev.o mm/mem_vmm/camb_linear_remap.o mm/mem_vmm/camb_iova_allocator.o \
mm/mem_vmm/camb_p2p_remap.o mm/mem_vmm/camb_vmm_internal.o mm/mem_vmm/camb_vmm.o \
mm/mem_rpc/camb_mm_rpc.o mm/cndrv_mm.o mm/fa_mem/cndrv_buddy_allocator.o \
mm/fa_mem/camb_mm_fa.o mm/fa_mem/cndrv_genpool_allocator.o mm/cndrv_udvm.o \
mm/delay_free/camb_mm_df.o mm/host_mem/cndrv_pinned_mm.o mm/mem_lib/camb_genalloc.o \
mm/mem_lib/camb_range_tree.o mm/mem_lib/camb_sg_split.o mm/mem_lib/camb_bitmap.o \
mm/mem_lib/camb_timestamp.o mm/mem_lib/camb_cache.o mm/mem_compat/camb_mm_compat.o \
mm/cndrv_mm_proc.o mm/mem_tools/camb_mm_tools.o mm/mem_tools/camb_mm_cp.o mm/cndrv_mm_ioctl.o \
mcc/ddr_mlu270.o mcc/ddr_mlu580.o mcc/cndrv_mcc_main.o mcc/hbm_mlu590.o mcc/module_param.o \
mcc/host_mcu_trans/hostmcu_tran_mlu290.o mcc/host_mcu_trans/host_mcu_trans.o mcc/ddr_retire_mlu370.o \
mcc/hbm_mlu290.o mcc/ddr_mlu370.o \
expmnt/exp_mgnt.o expmnt/report.o expmnt/exp_mgnt_ioctl.o expmnt/dump_reg.o \
sbts/task_topo/sbts_topo.o sbts/kprintf.o sbts/sbts.o sbts/dma_async.o \
sbts/ncs_task.o sbts/sbts_task.o sbts/unotify.o sbts/sbts_d2d.o \
sbts/queue.o sbts/sbts_ioctl.o sbts/dbg.o sbts/tcdp/tcdp_task.o sbts/core_dump.o \
sbts/jpu_async.o sbts/notifier.o sbts/idc/idc_main.o sbts/idc/idc_hwmode.o sbts/idc/idc_swmode.o \
sbts/idc/idc_common.o sbts/idc/idc_debug.o sbts/hostfunc.o sbts/p2pshm.o \
sbts/to_cndrv.o sbts/ncs.o sbts/sbts_sram.o \
device/cnhost_dev_sysfs.o device/cnhost_dev_permit.o device/cnhost_dev_managed.o device/cnhost_dev.o \
proc/cndrv_vf_proc.o proc/cndrv_proc.o \
binn/binn.o \
smlu/smlu_core.o smlu/smlu_cgroup.o smlu/smlu_ipu.o smlu/smlu_mem.o \
fw/crc32.o fw/serv_stat.o fw/cndrv_fw.o fw/virt_console.o \
fw/plat/c50_boot.o fw/plat/ce3226_boot.o fw/plat/pigeon_boot.o fw/plat/c30s_boot.o \
fw/plat/c20e_boot.o fw/plat/c20l_asic_boot.o fw/plat/c20_fpga_boot.o fw/cndrv_bringup.o \
plat/pcie/mlu370_pigeon/cndrv_pci.o plat/pcie/mlu370_pigeon/haikouichthys/plat_pigeon/fw_manager_pigeon.o \
plat/pcie/mlu370_pigeon/haikouichthys/plat_pigeon/cndrv_pci_pigeon.o \
plat/pcie/mlu370_pigeon/haikouichthys/plat_c30s/cndrv_pci_c30s_vf.o \
plat/pcie/mlu370_pigeon/haikouichthys/plat_c30s/cndrv_pci_c30s.o \
plat/pcie/mlu500/cndrv_pci.o \
plat/pcie/mlu500/helmtia/plat_c50/cndrv_pci_c50.o \
plat/pcie/mlu500/helmtia/plat_c50/cndrv_pci_c50_vf.o \
plat/pcie/mlu220_mlu270/cndrv_pci.o \
plat/pcie/mlu220_mlu270/hallucigenia/plat_c20l/cndrv_pci_c20l.o \
plat/pcie/mlu220_mlu270/hallucigenia/plat_c20l/cndrv_pci_c20l_vf.o \
plat/pcie/mlu220_mlu270/hallucigenia/plat_c20e/cndrv_pci_c20e.o \
plat/pcie/mlu290_ce3226/cndrv_pci.o \
plat/pcie/mlu290_ce3226/haikouichthys/plat_c20/cndrv_pci_c20_vf.o \
plat/pcie/mlu290_ce3226/haikouichthys/plat_c20/cndrv_pci_c20.o \
plat/pcie/mlu290_ce3226/hallucigenia/plat_ce3226/fw_manager_ce3226.o \
plat/pcie/mlu290_ce3226/hallucigenia/plat_ce3226/cndrv_pci_ce3226.o \
plat/cndrv_bus.o  plat/cndrv_bus_ioctl.o \
ctx/cndrv_ctx_ioctl.o

cambricon-gdrdrv-objs = gdrdrv/gdrdrv.o

cambricon-peermem-objs = mlu_peer_memory/mlu_peer_mem.o

cambricon-gdrdrv-objs = smlu/drv/proc.o smlu/drv/util.o smlu/drv/sample.o smlu/drv/trace.o smlu/drv/ipu.o

KDIR := /lib/modules/$(shell uname -r)/extra/
install:
	cp *.ko $(KDIR)
