b26445cf7b
Why I did it FPGA driver crash was observed in Dell FPGA based platforms. How I did it Fixed FPGA crash How to verify it Load FPGA driver and check whether the kernel crashes.
195 lines
8.6 KiB
Makefile
Executable File
195 lines
8.6 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
|
|
export INSTALL_MOD_DIR:=extra
|
|
|
|
KVERSION ?= $(shell uname -r)
|
|
KERNEL_SRC := /lib/modules/$(KVERSION)
|
|
MOD_SRC_DIR:= $(shell pwd)
|
|
MODULE_DIRS:= s6000 z9100 s6100 z9264f s5212f s5224f s5232f s5248f z9332f z9432f s5296f n3248pxe n3248te
|
|
COMMON_DIR := common
|
|
|
|
%:
|
|
dh $@
|
|
|
|
override_dh_auto_build:
|
|
set -e; \
|
|
(for mod in $(MODULE_DIRS); do \
|
|
if [ $$mod = "s6100" ]; then \
|
|
cp $(COMMON_DIR)/dell_pmc.c $(MOD_SRC_DIR)/$${mod}/modules/dell_s6100_lpc.c; \
|
|
cp $(COMMON_DIR)/dell_ich.c $(MOD_SRC_DIR)/$${mod}/modules/dell_ich.c; \
|
|
cd $(MOD_SRC_DIR)/$${mod}; \
|
|
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
|
|
cd $(MOD_SRC_DIR); \
|
|
elif [ $$mod = "z9100" ]; then \
|
|
cp $(COMMON_DIR)/dell_pmc.c $(MOD_SRC_DIR)/$${mod}/modules/dell_mailbox.c; \
|
|
cp $(COMMON_DIR)/dell_ich.c $(MOD_SRC_DIR)/$${mod}/modules/dell_ich.c; \
|
|
cd $(MOD_SRC_DIR)/$${mod}; \
|
|
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
|
|
cd $(MOD_SRC_DIR); \
|
|
elif [ $$mod = "s6000" ]; then \
|
|
cd $(MOD_SRC_DIR)/$${mod}; \
|
|
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
|
|
cd $(MOD_SRC_DIR); \
|
|
elif [ $$mod = "z9264f" ]; then \
|
|
cp $(COMMON_DIR)/dell_fpga_ocores.c $(MOD_SRC_DIR)/$${mod}/modules/dell_z9264f_fpga_ocores.c; \
|
|
cp $(COMMON_DIR)/ipmihelper.py $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
cd $(MOD_SRC_DIR)/$${mod}; \
|
|
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
|
|
cd $(MOD_SRC_DIR); \
|
|
elif [ $$mod = "s5212f" ]; then \
|
|
cp $(COMMON_DIR)/dell_fpga_ocores.c $(MOD_SRC_DIR)/$${mod}/modules/dell_s5212f_fpga_ocores.c; \
|
|
cp $(COMMON_DIR)/ipmihelper.py $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
cd $(MOD_SRC_DIR)/$${mod}; \
|
|
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
|
|
cd $(MOD_SRC_DIR); \
|
|
elif [ $$mod = "s5224f" ]; then \
|
|
cp $(COMMON_DIR)/dell_fpga_ocores.c $(MOD_SRC_DIR)/$${mod}/modules/dell_s5224f_fpga_ocores.c; \
|
|
cp $(COMMON_DIR)/ipmihelper.py $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
cd $(MOD_SRC_DIR)/$${mod}; \
|
|
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
|
|
cd $(MOD_SRC_DIR); \
|
|
elif [ $$mod = "s5232f" ]; then \
|
|
cp $(COMMON_DIR)/dell_fpga_ocores.c $(MOD_SRC_DIR)/$${mod}/modules/dell_s5232f_fpga_ocores.c; \
|
|
cp $(COMMON_DIR)/ipmihelper.py $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
cd $(MOD_SRC_DIR)/$${mod}; \
|
|
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
|
|
cd $(MOD_SRC_DIR); \
|
|
elif [ $$mod = "s5248f" ]; then \
|
|
cp $(COMMON_DIR)/dell_fpga_ocores.c $(MOD_SRC_DIR)/$${mod}/modules/dell_s5248f_fpga_ocores.c; \
|
|
cp $(COMMON_DIR)/ipmihelper.py $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
cd $(MOD_SRC_DIR)/$${mod}; \
|
|
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
|
|
cd $(MOD_SRC_DIR); \
|
|
elif [ $$mod = "s5296f" ]; then \
|
|
cp $(COMMON_DIR)/dell_fpga_ocores.c $(MOD_SRC_DIR)/$${mod}/modules/dell_s5296f_fpga_ocores.c; \
|
|
cp $(COMMON_DIR)/ipmihelper.py $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
cd $(MOD_SRC_DIR)/$${mod}; \
|
|
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
|
|
cd $(MOD_SRC_DIR); \
|
|
elif [ $$mod = "n3248te" ]; then \
|
|
cd $(MOD_SRC_DIR)/$${mod}; \
|
|
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
|
|
cd $(MOD_SRC_DIR); \
|
|
elif [ $$mod = "z9332f" ]; then \
|
|
cp $(COMMON_DIR)/ipmihelper.py $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
cd $(MOD_SRC_DIR)/$${mod}; \
|
|
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
|
|
cd $(MOD_SRC_DIR); \
|
|
elif [ $$mod = "z9432f" ]; then \
|
|
cp $(COMMON_DIR)/dell_fpga_ocores.c $(MOD_SRC_DIR)/$${mod}/modules/dell_z9432f_fpga_ocores.c; \
|
|
cp $(COMMON_DIR)/ipmihelper.py $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
cd $(MOD_SRC_DIR)/$${mod}; \
|
|
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
|
|
cd $(MOD_SRC_DIR); \
|
|
elif [ $$mod = "n3248pxe" ]; then \
|
|
cd $(MOD_SRC_DIR)/$${mod}; \
|
|
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
|
|
cd $(MOD_SRC_DIR); \
|
|
fi; \
|
|
echo "making man page alias $$mod -> $$mod APIs";\
|
|
make -C $(KERNEL_SRC)/build M=$(MOD_SRC_DIR)/$${mod}/modules; \
|
|
done); \
|
|
set +e
|
|
|
|
override_dh_auto_install:
|
|
set -e; \
|
|
(for mod in $(MODULE_DIRS); do \
|
|
dh_installdirs -pplatform-modules-$${mod} \
|
|
$(KERNEL_SRC)/$(INSTALL_MOD_DIR); \
|
|
cp $(MOD_SRC_DIR)/$${mod}/modules/*.ko \
|
|
debian/platform-modules-$${mod}/$(KERNEL_SRC)/$(INSTALL_MOD_DIR); \
|
|
if [ $$mod = "s6000" ]; then \
|
|
dh_installdirs -pplatform-modules-$${mod} usr/local/bin ; \
|
|
cp -r $(MOD_SRC_DIR)/$${mod}/scripts/* debian/platform-modules-$${mod}/usr/local/bin; \
|
|
fi; \
|
|
done); \
|
|
set +e
|
|
|
|
override_dh_usrlocal:
|
|
|
|
override_dh_installmodules:
|
|
dh_installmodules --no-scripts;
|
|
|
|
override_dh_clean:
|
|
dh_clean
|
|
set -e; \
|
|
(for mod in $(MODULE_DIRS); do \
|
|
if [ $$mod = "s6100" ]; then \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/dell_s6100_lpc.c; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/dell_ich.c; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
|
|
elif [ $$mod = "z9100" ]; then \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/dell_mailbox.c; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/dell_ich.c; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
|
|
elif [ $$mod = "s6000" ]; then \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
|
|
elif [ $$mod = "z9264f" ]; then \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/dell_z9264f_fpga_ocores.c; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
|
|
elif [ $$mod = "s5212f" ]; then \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/dell_s5212f_fpga_ocores.c; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
|
|
elif [ $$mod = "s5224f" ]; then \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/dell_s5224f_fpga_ocores.c; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
|
|
elif [ $$mod = "s5232f" ]; then \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/dell_s5232f_fpga_ocores.c; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
|
|
elif [ $$mod = "s5248f" ]; then \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/dell_s5248f_fpga_ocores.c; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
|
|
elif [ $$mod = "s5296f" ]; then \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/dell_s5296f_fpga_ocores.c; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
|
|
elif [ $$mod = "z9332f" ]; then \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
|
|
elif [ $$mod = "z9432f" ]; then \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/dell_z9432f_fpga_ocores.c; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
|
|
elif [ $$mod = "n3248pxe" ]; then \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
|
|
elif [ $$mod = "n3248te" ]; then \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
|
|
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
|
|
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
|
|
fi; \
|
|
make -C $(KERNEL_SRC)/build M=$(MOD_SRC_DIR)/$${mod}/modules clean; \
|
|
done); \
|
|
set +e
|
|
|