This patch brings-in support for t7xx wwan device firmware flashing &
coredump collection using devlink.
Driver Registers with Devlink framework.
Implements devlink ops flash_update callback that programs modem firmware.
Creates region & snapshot required for device coredump log collection.
On early detection of wwan device in fastboot mode driver sets up CLDMA0 HW
tx/rx queues for raw data transfer then registers with devlink framework.
Upon receiving firmware image & partition details driver sends fastboot
commands for flashing the firmware.
In this flow the fastboot command & response gets exchanged between driver
and device. Once firmware flashing is success completion status is reported
to user space application.
Below is the devlink command usage for firmware flashing
$devlink dev flash pci/$BDF file ABC.img component ABC
Note: ABC.img is the firmware to be programmed to "ABC" partition.
In case of coredump collection when wwan device encounters an exception
it reboots & stays in fastboot mode for coredump collection by host driver.
On detecting exception state driver collects the core dump, creates the
devlink region & reports an event to user space application for dump
collection. The user space application invokes devlink region read command
for dump collection.
Below are the devlink commands used for coredump collection.
devlink region new pci/$BDF/mr_dump
devlink region read pci/$BDF/mr_dump snapshot $ID address $ADD length $LEN
devlink region del pci/$BDF/mr_dump snapshot $ID
Signed-off-by: M Chetan Kumar <email address hidden>
Signed-off-by: Devegowda Chandrashekar <email address hidden>
Signed-off-by: Mishra Soumya Prakash <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit 87dae9e70bf7be2bd8a3c561fe3ddf666eb8a7a4)
Signed-off-by: You-Sheng Yang (vicamo) <email address hidden>
PCI rescan module implements "rescan work queue". In firmware flashing
or coredump collection procedure WWAN device is programmed to boot in
fastboot mode and a work item is scheduled for removal & detection.
The WWAN device is reset using APCI call as part driver removal flow.
Work queue rescans pci bus at fixed interval for device detection,
later when device is detect work queue exits.
Signed-off-by: Haijun Liu <email address hidden>
Co-developed-by: Madhusmita Sahu <email address hidden>
Signed-off-by: Madhusmita Sahu <email address hidden>
Signed-off-by: Ricardo Martinez <email address hidden>
Signed-off-by: M Chetan Kumar <email address hidden>
Signed-off-by: Devegowda Chandrashekar <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit 140424d90165d83c75b23ead7c3573bb6dd74f50)
Signed-off-by: You-Sheng Yang (vicamo) <email address hidden>
To support cases such as FW update or Core dump, the t7xx device
is capable of signaling the host that a special port needs
to be created before the handshake phase.
This patch adds the infrastructure required to create the
early ports which also requires a different configuration of
CLDMA queues.
Signed-off-by: Haijun Liu <email address hidden>
Co-developed-by: Madhusmita Sahu <email address hidden>
Signed-off-by: Madhusmita Sahu <email address hidden>
Signed-off-by: Ricardo Martinez <email address hidden>
Signed-off-by: Devegowda Chandrashekar <email address hidden>
Signed-off-by: M Chetan Kumar <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit 007f26f0d68e28509d369fe0e71845e095bdd955)
Signed-off-by: You-Sheng Yang (vicamo) <email address hidden>
The t7xx device contains two Cross Layer DMA (CLDMA) interfaces to
communicate with AP and Modem processors respectively. So far only
MD-CLDMA was being used, this patch enables AP-CLDMA.
Rename small Application Processor (sAP) to AP.
Signed-off-by: Haijun Liu <email address hidden>
Co-developed-by: Madhusmita Sahu <email address hidden>
Signed-off-by: Madhusmita Sahu <email address hidden>
Signed-off-by: Moises Veleta <email address hidden>
Signed-off-by: Devegowda Chandrashekar <email address hidden>
Signed-off-by: M Chetan Kumar <email address hidden>
Reviewed-by: Ilpo Järvinen <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit d20ef656f9942950d67e29418512a6929682ad60)
Signed-off-by: You-Sheng Yang (vicamo) <email address hidden>
Intel IPU(Image Processing Unit) has its own (IO)MMU hardware,
The IPU driver allocates its own page table that is not mapped
via the DMA, and thus the Intel IOMMU driver blocks access giving
this error: DMAR: DRHD: handling fault status reg 3 DMAR:
[DMA Read] Request device [00:05.0] PASID ffffffff
fault addr 76406000 [fault reason 06] PTE Read access is not set
As IPU is not an external facing device which is not risky, so use
IOMMU passthrough mode for Intel IPUs.