infineon CYW5557x Vanilla Kernel Bring Reference User Manual
- June 7, 2024
- infineon
Table of Contents
infineon CYW5557x Vanilla Kernel Bring Reference
Infineon Vanilla Kernel v6.6.15 Bring up Reference
Guide to Build, flash and configure the platform with v6.6.15 Vanilla Kernel
for CYW5557x support
About this document
Scope and purpose
This document serves as a Guide to bring up with the Infineon’s 802.11ax
capable CYW5557x Chipset.
Intended audience
This document is primarily intended for those using Infineon Wi-Fi solutions
with the Vanilla Kernel. It is recommended that the reader have prior
experience with Linux kernel wireless networking.
Building v6.6.15 Vanilla Kernel with BRCMFMAC
Test Environment
Our verification is tested by INTEL NUC10 platform with Fedora FC38 and use
releasing to patch on Fedora source tree v6.6.15 kernel.
- Hardware equipment: INTEL NUC x86_64
- Software tool: Fedora fc38 with installing v6.6.15 kernel
Prepare INTEL NUC environment
- Download and setup the fc38(Fedora-Workstation-Live-x86_64-38-1.6.iso) from https://ftp.riken.jp/Linux/fedora/releases/38/Workstation/x86_64/iso/ Also refer to official document to install on desktop.
- URL: https://docs.fedoraproject.org/en-US/fedora-server/installation/
Update the kernel to our supported version. Download the fedora releasing kernel and checkout to specific version v6.6.15(sha id: 9670bf06)
- $ git clone https://gitlab.com/cki-project/kernel-ark.git
- $ git checkout fedora-6.6
-
or
- $ git checkout 9670bf06
Default all questions based on the contents of your existing .config file and ask about new config symbols
- $ make oldconfig
Build kernel image and modules
- $ make bzImage
- $ make modules
Install module and kernel
- $ make modules_install
- $ make install
Compilation FMAC on NUC x86_64
Download source tree from Fedora kernel and check the to v6.1 serious
version. Our usage based on the latest version is v6.6.15. (sha id: 9670bf06)
In the Linux root folder, untar/apply to release patches with the below bash commands
- $ tar zxvf <release patches package>.tar.gz
-
apply script
- for i in
/*.patch; do patch –p1 < $i; done
Load the platform default configurations.
- $ make defconfig
Enable/Disable/Load module as below configuration by command “make menuconfig” or by editing the “.config” file.
- CONFIG_CFG80211=m
- CONFIG_BCMDHD=n
- CONFIG_BRCMUTIL=m
- CONFIG_BRCMFMAC=m
- CONFIG_BRCMFMAC_SDIO=y
- CONFIG_BRCMFMAC_PROTO_BCDC=y
- CONFIG_BRCMFMAC_PCIE=y
- CONFIG_BRCMFMAC_PROTO_MSGBUF=y
- CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=n
- CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=n
- CONFIG_ASYMMETRIC_KEY_TYPE=y
- CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
- CONFIG_X509_CERTIFICATE_PARSER=y
- CONFIG_PKCS7_MESSAGE_PARSER=y
- CONFIG_MMC_BUS_CLOCK_GATE=y
Enable the below configuration when debug
- CONFIG_BRCMDBG=y
- CONFIG_BRCM_TRACING=y
Build kernel modules.
NOTE : To speed up compilation on multiprocessor systems, and get some
improvement on single processor ones, use “-j n”, where n is the number of
processors * 1.5. You can use the “nproc” cmd to see how many processors you
have.
- $ make modules
Building v6.6.15 Vanilla Kernel with BRCMFMAC
Copy generated modules to the loading folder
Create a new folder for built modules
- $ mkdir
Copy the generated mouldes to created directory
- $ cp drivers/mmc/core/mmc_core.ko
- $ cp drivers/mmc/core/mmc_block.ko
- $ cp drivers/mmc/host/sdhci.ko
- $ cp drivers/mmc/host/sdhci-pci.ko
- $ cp drivers/mmc/host/cqhci.ko
- $ cp drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
- $ cp drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac-cyw.ko
- $ cp drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.ko
- $ cp net/wireless/cfg80211.ko
Bring up BRCMFMAC Host Driver & Firmware
Load the FMAC module and write the Firmware
Copy Firmware (FW), CLM Blob (climb) and NVRAM files to the expected path
in the filesystem
- $ cp -a <FW/CLM BLOB/NVRAM files> /lib/firmware/cypress/<cyfmac55572-*>
Stop Network Manager Service, before inserting the FMAC module
- $ systemctl stop NetworkManager
Delete the Network Manager and Wpa_supplicant daemon, before inserting the FMAC module.
- $ killall NetworkManager
- $ killall wpa_supplicant
Remove inactive modules that may be brought up by the system after booting.
- $ rmmod iwlmvm
- $ rmmod iwlwifi
- $ rmmod mac80211
- $ rmmod btsdio
- $ killall bluetoothd
- $ rmmod btusb
- $ rmmod bnep
- $ rmmod btbcm
- $ rmmod btintel
- $ rmmod btrtl
- $ rmmod bluetooth
- $ rmmod bcmdhd
- $ rmmod dhd
- $ rmmod brcmfmac-cyw
- $ rmmod brcmfmac
- $ rmmod brcmutil
- $ rmmod sdhci-pci
- $ rmmod sdhci
- $ rmmod cqhci
- $ rmmod mmc_block
- $ rmmod mmc_core
- $ rmmod cfg80211
- $ rmmod compat
- $ rmmod rfkill
Note: After the v6.2 kernel, brcmfmac kernel module will recognize the vendor and bring up extra one vendor kernel module depending on brcmfmac.ko. As the example on CYW5557x, system will automatically bring up “brcmfmac- cyw.ko” after inserting brcmfmac. Therefore, users need to remove “brcmfmac- cyw” module or brcmfmac will remove failed.
Bring up BRCMFMAC Host Driver & Firmware
Insert FMAC and related kernel modules
- $ cd
- $ modprobe rfkill
- $ insmod ./mmc_core.ko
- $ insmod ./mmc_block.ko
- $ insmod ./cqhci.ko
- $ insmod ./sdhci.ko
- $ insmod ./sdhci-pci.ko
- $ insmod ./cfg80211.ko
- $ insmod ./brcmutil.ko
- $ insmod ./brcmfmac.ko
Revision history
Document version | Date of release | Description of changes |
---|---|---|
1.0.0 | 2023-12-21 | Initial Revision |
1.1.0 | 2024-04-17 | Modify for supporting v6.6.15 kernel |
E dition 2023-12-15
Published by
Infineon Technologies AG
81726 München, Germany
© 2024 Infineon Technologies AG. All Rights Reserved.
Do you have a question about this document?
Email: security.chipcard.ics@infineon.com
Document reference
ifx1
IMPORTANT NOTICE
- The information given in this document shall in no event be regarded as a guarantee of conditions or characteristics (“Beschaffenheitsgarantie”) .
- For any examples, hints or any typical values stated herein and/or any information regarding the application of the product, Infineon Technologies hereby disclaims any warranties and liabilities of any kind, including without limitation warranties of non-infringement of intellectual property rights of any third party.
- In addition, any information given in this document is subject to the customer’s compliance with its obligations stated in this document and any applicable legal requirements, norms and standards concerning the customer’s products and any use of the product of Infineon Technologies in the customer’s applications.
- The data contained in this document is exclusively intended for technically trained staff. It is the responsibility of the customer’s technical departments to evaluate the suitability of the product for the intended application and the completeness of the product information given in this document concerning such application.
For further information on the product, technology, delivery terms and conditions and prices please contact your nearest Infineon Technologies office (www.infineon.com).
WARNINGS
Due to technical requirements, products may contain dangerous substances. For
information on the types in question please contact your nearest Infineon
Technologies office.
Except as otherwise explicitly approved by Infineon Technologies in a written document signed by authorized representatives of Infineon Technologies, Infineon Technologies’ products may not be used in any applications where a failure of the product or any consequences of the use thereof can reasonably be expected to result in personal injury.
Quick Start Guide
www.infineon.com
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>