2018-08-07 02:14:37 -05:00
|
|
|
include $(PLATFORM_PATH)/sai-modules.mk
|
2016-12-14 13:59:24 -06:00
|
|
|
include $(PLATFORM_PATH)/sai.mk
|
2023-09-08 17:59:14 -05:00
|
|
|
# TODO: re-enable once the following have been updated for bookworm:
|
|
|
|
# * Nokia
|
|
|
|
# * Juniper
|
|
|
|
# * Ragile
|
|
|
|
# * Ufispace
|
|
|
|
#include $(PLATFORM_PATH)/platform-modules-nokia.mk
|
2023-10-26 12:01:55 -05:00
|
|
|
include $(PLATFORM_PATH)/platform-modules-dell.mk
|
2021-11-02 18:33:12 -05:00
|
|
|
include $(PLATFORM_PATH)/platform-modules-arista.mk
|
2021-08-27 01:13:37 -05:00
|
|
|
#include $(PLATFORM_PATH)/platform-modules-ingrasys.mk
|
2023-10-31 14:08:58 -05:00
|
|
|
include $(PLATFORM_PATH)/platform-modules-accton.mk
|
2022-09-15 23:34:52 -05:00
|
|
|
include $(PLATFORM_PATH)/platform-modules-alphanetworks.mk
|
2021-08-27 01:13:37 -05:00
|
|
|
#include $(PLATFORM_PATH)/platform-modules-inventec.mk
|
[PR:16737, PR:16739] platform-modules: pddf, broadcom/cel: adapt for kernel 6.1 and bookworm (#16954)
* sonic-platform-modules-cel: broadcom: adapt for kernel 6.1 and bookworm
The i2c_driver->remove API declaration has been updated to return void instead
of int, as part of cleanup patches in 6.1. More details can be referred from
here: [1]. Update the remove API definition in the modules accordingly and
cleanup variables that go unused from the remove API.
Update python build commands for bookworm. The packaging based on calling
setup.py is deprecated and using build module/pip utility is the recommended
method for python packaging/installation. Further details can be referred to
from here: [2], [3]. The build module is picky about the package information file,
which needs to be either setup.py or pyproject.toml.
Additionally, fix formatting inconsistencies in debian/changelog reported by
`dh_installchangelogs` during the build.
Tested the changes by compiling the changes as below:
make sonic-slave-bash NOBUSTER=1 NOBULLSEYE=1
sudo dpkg -i target/debs/bookworm/linux-headers-6.1.0-11-2-*.deb
cd platform/broadcom/sonic-platform-modules-cel
KVERSION=6.1.0-11-2-amd64 dpkg-buildpackage
Also verified the python scripts under the sonic-platform-modules-cel with
pyflakes to ensure no new errors are flagged (with exception of unused modules).
References:
[1] - https://github.com/torvalds/linux/commit/ed5c2f5f
[2] - https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.htm
[3] - 0b20a4863 (Update Python build commands for Bookworm, 2023-09-07)
Signed-off-by: Ramasamy Chandramouli <rachandr@celestica.com>
* platform/pddf: i2c: adapt for kernel 6.1 and bookworm
* Fixup i2c_driver->remove API due to changes in the function
prototype (ref: [1]).
* Cleanup `MODULE_SUPPORTED_DEVICE` macros that were cleaned up in
the upstream (ref: [2]).
* Sanitize python packaging and installation using the `build` module
instead of calling the setup.py directly (ref: [3]. [4]).
Tested the changes by compiling pddf module as below:
make sonic-slave-bash NOBUSTER=1 NOBULLSEYE=1
sudo dpkg -i target/debs/bookworm/linux-headers-6.1.0-11-2-*.deb
cd platform/pddf/i2c
KVERSION=6.1.0-11-2-amd64 dpkg-buildpackage
References:
[1] - https://github.com/torvalds/linux/commit/ed5c2f5f
[2] - https://github.com/torvalds/linux/commit/6417f031
[2] - https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.htm
[3] - 0b20a4863 (Update Python build commands for Bookworm, 2023-09-07)
Signed-off-by: Ramasamy Chandramouli <rachandr@celestica.com>
* platform/broadcom: include platform-modules-cel in builds
With pddf modules patched for 6.1, platform-modules-cel can be compiled
and included in the final image.
Testing by building sonic-broadcom.bin/sonic-broadcom-dnx.bin.
Signed-off-by: Ramasamy Chandramouli <rachandr@celestica.com>
* pddf/i2c: revert correct rootdir for pip install
The pip install directory has been set to test-pkg1/ for testing the build and
incorrectly retained as is. Revert this to the correct path $(PACKAGE_PRE_NAME).
Signed-off-by: Ramasamy Chandramouli <rachandr@celestica.com>
* platform/broadcom: include pddf/modules-cel in the base package
Without this change, the modules were built but not packaged in the final .bin.
The final sonic-broadcom.bin has been tested for bootup on Celestica's
Silverstone platform.
admin@sonic:~$ uname -a
Linux sonic 6.1.0-11-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.38-4 (2023-08-08) x86_64 GNU/Linux
admin@sonic:~$ show platform summary
Platform: x86_64-cel_silverstone-r0
HwSKU: Silverstone
ASIC: broadcom
ASIC Count: 1
Serial Number: R4009B2F062504LK200024
Model Number: N/A
Hardware Revision: N/A
admin@sonic:~$ show version | head
SONiC Software Version: SONiC.g0aad6c67c-rachandr
SONiC OS Version: 12
Distribution: Debian 12.2
Kernel: 6.1.0-11-2-amd64
Build commit: 0aad6c67c
Build date: Thu Oct 26 07:13:47 UTC 2023
Built by: rachandr@AZUHPS14
Platform: x86_64-cel_silverstone-r0
Signed-off-by: Ramasamy Chandramouli <rachandr@celestica.com>
---------
Signed-off-by: Ramasamy Chandramouli <rachandr@celestica.com>
2023-09-08 17:59:48 -05:00
|
|
|
include $(PLATFORM_PATH)/platform-modules-cel.mk
|
2021-08-27 01:13:37 -05:00
|
|
|
#include $(PLATFORM_PATH)/platform-modules-delta.mk
|
2022-08-23 12:10:08 -05:00
|
|
|
include $(PLATFORM_PATH)/platform-modules-quanta.mk
|
2021-08-27 01:13:37 -05:00
|
|
|
##include $(PLATFORM_PATH)/platform-modules-mitac.mk
|
2023-09-08 17:59:14 -05:00
|
|
|
#include $(PLATFORM_PATH)/platform-modules-juniper.mk
|
2021-08-27 01:13:37 -05:00
|
|
|
#include $(PLATFORM_PATH)/platform-modules-brcm-xlr-gts.mk
|
|
|
|
#include $(PLATFORM_PATH)/platform-modules-ruijie.mk
|
2023-09-08 17:59:14 -05:00
|
|
|
#include $(PLATFORM_PATH)/platform-modules-ragile.mk
|
2022-12-18 02:16:53 -06:00
|
|
|
#include $(PLATFORM_PATH)/platform-modules-tencent.mk
|
2023-09-08 17:59:14 -05:00
|
|
|
#include $(PLATFORM_PATH)/platform-modules-ufispace.mk
|
2016-12-14 13:59:24 -06:00
|
|
|
include $(PLATFORM_PATH)/docker-syncd-brcm.mk
|
2017-03-24 20:36:56 -05:00
|
|
|
include $(PLATFORM_PATH)/docker-syncd-brcm-rpc.mk
|
2018-11-14 03:15:31 -06:00
|
|
|
include $(PLATFORM_PATH)/docker-saiserver-brcm.mk
|
2021-07-24 18:24:43 -05:00
|
|
|
ifeq ($(INCLUDE_PDE), y)
|
|
|
|
include $(PLATFORM_PATH)/docker-pde.mk
|
|
|
|
include $(PLATFORM_PATH)/sonic-pde-tests.mk
|
|
|
|
endif
|
2017-02-01 00:06:12 -06:00
|
|
|
include $(PLATFORM_PATH)/one-image.mk
|
2017-08-27 22:13:38 -05:00
|
|
|
include $(PLATFORM_PATH)/raw-image.mk
|
2017-02-05 17:59:59 -06:00
|
|
|
include $(PLATFORM_PATH)/one-aboot.mk
|
2017-03-28 13:32:58 -05:00
|
|
|
include $(PLATFORM_PATH)/libsaithrift-dev.mk
|
2021-06-22 13:12:22 -05:00
|
|
|
include $(PLATFORM_PATH)/docker-syncd-brcm-dnx.mk
|
|
|
|
include $(PLATFORM_PATH)/docker-syncd-brcm-dnx-rpc.mk
|
2023-10-25 02:39:03 -05:00
|
|
|
ifeq ($(INCLUDE_GBSYNCD), y)
|
[gearbox] Add gbsyncd container for Credo gearbox chips (#8144)
This change is to add a gbsyncd container to accommodate the syncd process and the SAI libraries for the Credo gearbox chips.
How I did it
This container works similar to the existing Broadcom syncd container. Its main difference is that the SAI-related dynamic libraries are replaced by the ones for Credo gearbox chips, and the container only reacts to SAI events for the gearbox chips. The SAI libraries will be provided by the package libsai-credo_1.0_amd64.deb.
For the image build, the added container will be built and included in the Broadcom platform image, after $(LIBSAI_CREDO)_URL = is replaced to the correct value. For now, as $(LIBSAI_CREDO)_URL is empty, the container build is skipped in the image build.
After the container is included in the image, in the runtime, the container will begin with checking the existence of /usr/share/sonic/hwsku/gearbox_config.json; if that file is not provided, the container will exit by itself. Therefore, for platforms unrelated to the Credo chips, as long as they are not providing the file, they will not be affected by this change.
2021-08-04 18:05:53 -05:00
|
|
|
include $(PLATFORM_PATH)/../components/docker-gbsyncd-credo.mk
|
2022-07-17 21:57:27 -05:00
|
|
|
include $(PLATFORM_PATH)/../components/docker-gbsyncd-broncos.mk
|
2023-10-25 02:39:03 -05:00
|
|
|
endif
|
2016-12-05 13:12:19 -06:00
|
|
|
|
2016-12-25 02:44:06 -06:00
|
|
|
BCMCMD = bcmcmd
|
2019-03-08 04:22:00 -06:00
|
|
|
$(BCMCMD)_URL = "https://sonicstorage.blob.core.windows.net/packages/20190307/bcmcmd?sv=2015-04-05&sr=b&sig=sUdbU7oVbh5exbXXHVL5TDFBTWDDBASHeJ8Cp0B0TIc%3D&se=2038-05-06T22%3A34%3A19Z&sp=r"
|
2016-12-05 13:12:19 -06:00
|
|
|
|
2016-12-25 02:44:06 -06:00
|
|
|
DSSERVE = dsserve
|
2019-03-08 04:22:00 -06:00
|
|
|
$(DSSERVE)_URL = "https://sonicstorage.blob.core.windows.net/packages/20190307/dsserve?sv=2015-04-05&sr=b&sig=lk7BH3DtW%2F5ehc0Rkqfga%2BUCABI0UzQmDamBsZH9K6w%3D&se=2038-05-06T22%3A34%3A45Z&sp=r"
|
2016-12-25 02:44:06 -06:00
|
|
|
|
|
|
|
SONIC_ONLINE_FILES += $(BCMCMD) $(DSSERVE)
|
2016-12-05 13:12:19 -06:00
|
|
|
|
2017-03-03 10:43:22 -06:00
|
|
|
SONIC_ALL += $(SONIC_ONE_IMAGE) $(SONIC_ONE_ABOOT_IMAGE) \
|
2017-08-01 15:51:10 -05:00
|
|
|
$(DOCKER_FPM)
|
2016-12-05 13:12:19 -06:00
|
|
|
|
2020-07-03 00:03:50 -05:00
|
|
|
# Inject brcm sai into syncd
|
2022-06-23 17:34:51 -05:00
|
|
|
$(SYNCD)_DEPENDS += $(BRCM_XGS_SAI) $(BRCM_XGS_SAI_DEV)
|
|
|
|
$(SYNCD)_UNINSTALLS += $(BRCM_XGS_SAI_DEV) $(BRCM_XGS_SAI)
|
[build]: wait for conflicts package to be uninstalled (#5039)
when parallel build is enabled, both docker-fpm-frr and docker-syncd-brcm
is built at the same time, docker-fpm-frr requires swss which requires to
install libsaivs-dev. docker-syncd-brcm requires syncd package which requires
to install libsaibcm-dev.
since libsaivs-dev and libsaibcm-dev install the sai header in the same
location, these two packages cannot be installed at the same time. Therefore,
we need to serialize the build between these two packages. Simply uninstall
the conflict package is not enough to solve this issue. The correct solution
is to have one package wait for another package to be uninstalled.
For example, if syncd is built first, then it will install libsaibcm-dev.
Meanwhile, if the swss build job starts and tries to install libsaivs-dev,
it will first try to query if libsaibcm-dev is installed or not. if it is
installed, then it will wait until libsaibcm-dev is uninstalled. After syncd
job is finished, it will uninstall libsaibcm-dev and swss build job will be
unblocked.
To solve this issue, _UNINSTALLS is introduced to uninstall a package that
is no longer needed and to allow blocked job to continue.
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-07-27 12:46:20 -05:00
|
|
|
|
2019-07-06 16:55:31 -05:00
|
|
|
ifeq ($(ENABLE_SYNCD_RPC),y)
|
2020-07-03 00:03:50 -05:00
|
|
|
$(SYNCD)_DEPENDS += $(LIBSAITHRIFT_DEV)
|
2019-07-06 16:55:31 -05:00
|
|
|
endif
|