ccflags-y := -I$(KBUILD_EXTMOD)/drivers/bdmf/framework
ccflags-y += -I$(KBUILD_EXTMOD)/drivers/bdmf/system
ccflags-y += -I$(KBUILD_EXTMOD)/drivers/bdmf/system/linux
ccflags-y += -I$(KBUILD_EXTMOD)/drivers/bdmf/system/linux/cm
ccflags-y += -I$(KBUILD_EXTMOD)/drivers/bdmf/shell
ccflags-y += -I$(KBUILD_EXTMOD)/drivers/rdp_subsystem
ccflags-y += -I$(KBUILD_EXTMOD)/drivers/rdp_subsystem/BCM3390
ccflags-y += -I$(KBUILD_EXTMOD)/drivers/rdd
ccflags-y += -I$(KBUILD_EXTMOD)/projects/CM3390/drivers/rdd
ccflags-y += -I$(KBUILD_EXTMOD)/drivers/rdpa_gpl/include
ccflags-y += -I$(KBUILD_EXTMOD)/drivers/rdpa
ccflags-$(CONFIG_BCM_DHD_RUNNER) += -I$(KBUILD_EXTMOD)/drivers/rdpa/BCM3390
ccflags-y += -I$(KBUILD_EXTMOD)/firmware/dhd_offload
ccflags-$(CONFIG_BCM_NIO) += -I$(KBUILD_EXTMOD)/firmware/brm_offload
ccflags-y += -I$(srctree)/drivers/bcm_media_gw/fpm
ccflags-y += --include rdpa_api.h

ccflags-y += -D__KERNEL__
ccflags-y += -D__ARMEL__
ccflags-y += -DCM3390
ccflags-y += -DCONFIG_BCM3390
ccflags-y += -DUS_DYNAMIC_DISPATCH
ccflags-y += -DDS_SRAM_TX_QUEUES
ccflags-y += -DUS_SRAM_TX_QUEUES
ccflags-y += -DIP_CLASS
ccflags-y += -DRUNNER_CPU_DQM
ccflags-y += -DUSE_SOC_BASE_ADDR
ccflags-y += -D_BYTE_ORDER_LITTLE_ENDIAN_
ccflags-y += -DFIRMWARE_LITTLE_ENDIAN
ccflags-y += -DBDMF_DRIVER_GPL_LAYER
ccflags-y += -DRDD_IC_NOT_SUPPORTED
ccflags-y += -DBDMF_SHELL -DUSE_BDMF_SHELL -DBDMF_DEBUG -DBDMF_INTERNAL
ccflags-$(CONFIG_BCM_DHD_RUNNER) += -DCONFIG_DHD_RUNNER

ccflags-y += -Werror -Wfatal-errors
ccflags-y += -Wno-vla -Wno-unused-variable -Wno-implicit-fallthrough

obj-m += bdmf.o
bdmf-y +=  drivers/bdmf/framework/bdmf_init.o
bdmf-y +=  drivers/bdmf/system/linux/bdmf_chrdev.o
bdmf-y +=  drivers/bdmf/system/linux/bdmf_system_common.o
bdmf-y +=  drivers/bdmf/system/linux/cm/bdmf_system.o
bdmf-y +=  drivers/bdmf/framework/bdmf_attr.o
bdmf-y +=  drivers/bdmf/framework/bdmf_memarea.o
bdmf-y +=  drivers/bdmf/framework/bdmf_utils.o
bdmf-y +=  drivers/bdmf/framework/bdmf_type.o
bdmf-y +=  drivers/bdmf/framework/bdmf_object.o
bdmf-y +=  drivers/bdmf/framework/bdmf_trace.o
bdmf-y +=  drivers/bdmf/system/bdmf_session.o
bdmf-y +=  drivers/bdmf/system/bdmf_errno.o
bdmf-y +=  drivers/bdmf/framework/bdmf_mon.o
bdmf-y +=  drivers/bdmf/shell/bdmf_shell.o
bdmf-y +=  drivers/bdmf/framework/bdmf_fini.o

obj-m += rdpa_helper_gpl.o
rdpa_helper_gpl-y := projects/CM3390/drivers/rdpa/rdpa_gpl_cpu_helper.o


obj-m += rdpa_gpl.o
rdpa_gpl-y := drivers/rdpa_gpl/rdpa_gpl_cpu.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_dscp_to_pbit.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_egress_tm.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_handwritten.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_filter.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_ip_class.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_iptv.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_pbit_to_gem.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_pbit_to_queue.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_policer.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_port.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_system.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_tc_to_queue.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_tcont.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_gem.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_llid.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_ingress_class.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_bridge.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_vlan.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_vlan_action.o
rdpa_gpl-$(CONFIG_BCM_DHD_RUNNER) += drivers/rdpa_gpl/rdpa_gpl_dhd_helper.o
rdpa_gpl-y += drivers/rdpa_gpl/rdpa_gpl_wlan_mcast.o
rdpa_gpl-$(CONFIG_BCM_NIO) += drivers/rdpa_gpl/rdpa_gpl_brm_helper.o

# RDPA_CM
obj-m += rdpa_cm.o
rdpa_cm-y := drivers/rdpa/rdpa_cm.o

obj-m += rdpa.o
rdpa-y = drivers/rdpa/rdpa_module.o
rdpa-y += drivers/rdpa/misc_shell.o
rdpa-y += drivers/rdpa/rdpa_common.o
rdpa-y += drivers/rdpa/rdpa_bridge.o
rdpa-y += drivers/rdpa/rdpa_cpu.o
#rdpa-y += drivers/rdpa/rdpa_dscp_to_pbit.o
rdpa-y += drivers/rdpa/rdpa_egress_tm.o
rdpa-y += drivers/rdpa/rdpa_filter.o
#rdpa-y += drivers/rdpa/rdpa_gem.o
rdpa-y += drivers/rdpa/rdpa_ingress_class.o
rdpa-y += drivers/rdpa/rdpa_ip_class.o
rdpa-y += drivers/rdpa/rdpa_iptv.o
rdpa-y += drivers/rdpa/rdpa_pbit_to_queue.o
rdpa-y += drivers/rdpa/rdpa_policer.o
rdpa-y += drivers/rdpa/rdpa_port.o
rdpa-y += drivers/rdpa/rdpa_qos_mapper.o
rdpa-y += drivers/rdpa/rdpa_pbit_to_gem.o
rdpa-y += drivers/rdpa/rdpa_rdd_map.o
rdpa-y += drivers/rdpa/rdpa_system.o
rdpa-y += drivers/rdpa/BCM3390/rdpa_system_hw_cfg.o
rdpa-y += drivers/rdpa/rdpa_tc_to_queue.o
#rdpa-y += drivers/rdpa/rdpa_tcont.o
rdpa-y += drivers/rdpa/rdpa_types.o
rdpa-y += drivers/rdpa/rdpa_vlan.o
rdpa-y += drivers/rdpa/rdpa_vlan_action.o
rdpa-$(CONFIG_BCM_DHD_RUNNER) += drivers/rdpa/rdpa_dhd_helper.o
rdpa-y += drivers/rdpa/rdpa_wlan_mcast.o
rdpa-$(CONFIG_BCM_NIO) += drivers/rdpa/rdpa_brm_helper.o

#rdp-subsystem
rdpa-y += drivers/rdp_subsystem/BCM3390/data_path_init.o
rdpa-y += drivers/rdp_subsystem/BCM3390/drv_bbh_shell.o
rdpa-y += drivers/rdp_subsystem/BCM3390/drv_bpm_shell.o
rdpa-y += drivers/rdp_subsystem/BCM3390/drv_ih_shell.o
rdpa-y += drivers/rdp_subsystem/BCM3390/drv_sbpm_shell.o
rdpa-y += drivers/rdp_subsystem/BCM3390/rdp_bbh_arrays.o
rdpa-y += drivers/rdp_subsystem/BCM3390/rdp_dma_arrays.o
rdpa-y += drivers/rdp_subsystem/BCM3390/rdp_drv_bbh.o
rdpa-y += drivers/rdp_subsystem/BCM3390/rdp_drv_bpm.o
rdpa-y += drivers/rdp_subsystem/BCM3390/rdp_drv_ih.o
rdpa-y += drivers/rdp_subsystem/BCM3390/rdp_drv_sbpm.o
rdpa-y += drivers/rdp_subsystem/BCM3390/rdp_runner_arrays.o
rdpa-y += drivers/rdp_subsystem/BCM3390/rdp_drv_unimac.o

#RDD
rdpa-y += drivers/rdd/rdd_common.o
rdpa-y += drivers/rdd/rdd_cpu.o
rdpa-y += drivers/rdd/rdd_crc.o
rdpa-y += drivers/rdd/rdd_fc.o
rdpa-y += drivers/rdd/rdd_ic.o
rdpa-y += drivers/rdd/rdd_ingress_filters.o
rdpa-y += drivers/rdd/rdd_init.o
rdpa-y += drivers/rdd/rdd_iptv_filter.o
rdpa-y += drivers/rdd/rdd_l4_filters.o
rdpa-y += drivers/rdd/rdd_lookup_engine.o
rdpa-y += drivers/rdd/rdd_multicast_processing.o
rdpa-y += drivers/rdd/rdd_natc_lkp.o
rdpa-y += drivers/rdd/rdd_rx_dispatch.o
rdpa-y += drivers/rdd/rdd_tm.o
rdpa-y += drivers/rdd/rdd_shell.o
rdpa-y += drivers/rdd/rdd_map_xlations.o
rdpa-y += drivers/rdd/rdd_tunnels_parsing.o
rdpa-y += projects/CM3390/drivers/rdd/rdd_proj_init.o
rdpa-y += projects/CM3390/drivers/rdd/rdd_runner_reg_dump.o
rdpa-y += projects/CM3390/drivers/rdd/rdd_runner_reg_dump_addrs.o
rdpa-y += projects/CM3390/firmware_bin/predict_runner_fw_a.o
rdpa-y += projects/CM3390/firmware_bin/predict_runner_fw_b.o
rdpa-y += projects/CM3390/firmware_bin/predict_runner_fw_c.o
rdpa-y += projects/CM3390/firmware_bin/predict_runner_fw_d.o
rdpa-y += projects/CM3390/firmware_bin/runner_fw_a.o
rdpa-y += projects/CM3390/firmware_bin/runner_fw_b.o
rdpa-y += projects/CM3390/firmware_bin/runner_fw_c.o
rdpa-y += projects/CM3390/firmware_bin/runner_fw_d.o

rdpa-$(CONFIG_BCM_DHD_RUNNER) += firmware/dhd_offload/rdd_dhd_helper.o
rdpa-$(CONFIG_BCM_DHD_RUNNER) += firmware/dhd_offload/rdd_dhd_helper_shell.o
rdpa-y += firmware/dhd_offload/rdd_wlan_mcast.o

rdpa-y += drivers/rdpa/rdpa_module_fini.o
rdpa-$(CONFIG_BCM_NIO) += firmware/brm_offload/rdd_brm_helper.o
rdpa-$(CONFIG_BCM_NIO) += firmware/brm_offload/rdd_brm_helper_shell.o
