| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- .. SPDX-License-Identifier: GPL-2.0
- ====================
- iosm devlink support
- ====================
- This document describes the devlink features implemented by the ``iosm``
- device driver.
- Parameters
- ==========
- The ``iosm`` driver implements the following driver-specific parameters.
- .. list-table:: Driver-specific parameters implemented
- :widths: 5 5 5 85
- * - Name
- - Type
- - Mode
- - Description
- * - ``erase_full_flash``
- - u8
- - runtime
- - erase_full_flash parameter is used to check if full erase is required for
- the device during firmware flashing.
- If set, Full nand erase command will be sent to the device. By default,
- only conditional erase support is enabled.
- Flash Update
- ============
- The ``iosm`` driver implements support for flash update using the
- ``devlink-flash`` interface.
- It supports updating the device flash using a combined flash image which contains
- the Bootloader images and other modem software images.
- The driver uses DEVLINK_SUPPORT_FLASH_UPDATE_COMPONENT to identify type of
- firmware image that need to be flashed as requested by user space application.
- Supported firmware image types.
- .. list-table:: Firmware Image types
- :widths: 15 85
- * - Name
- - Description
- * - ``PSI RAM``
- - Primary Signed Image
- * - ``EBL``
- - External Bootloader
- * - ``FLS``
- - Modem Software Image
- PSI RAM and EBL are the RAM images which are injected to the device when the
- device is in BOOT ROM stage. Once this is successful, the actual modem firmware
- image is flashed to the device. The modem software image contains multiple files
- each having one secure bin file and at least one Loadmap/Region file. For flashing
- these files, appropriate commands are sent to the modem device along with the
- data required for flashing. The data like region count and address of each region
- has to be passed to the driver using the devlink param command.
- If the device has to be fully erased before firmware flashing, user application
- need to set the erase_full_flash parameter using devlink param command.
- By default, conditional erase feature is supported.
- Flash Commands:
- ===============
- 1) When modem is in Boot ROM stage, user can use below command to inject PSI RAM
- image using devlink flash command.
- $ devlink dev flash pci/0000:02:00.0 file <PSI_RAM_File_name>
- 2) If user want to do a full erase, below command need to be issued to set the
- erase full flash param (To be set only if full erase required).
- $ devlink dev param set pci/0000:02:00.0 name erase_full_flash value true cmode runtime
- 3) Inject EBL after the modem is in PSI stage.
- $ devlink dev flash pci/0000:02:00.0 file <EBL_File_name>
- 4) Once EBL is injected successfully, then the actual firmware flashing takes
- place. Below is the sequence of commands used for each of the firmware images.
- a) Flash secure bin file.
- $ devlink dev flash pci/0000:02:00.0 file <Secure_bin_file_name>
- b) Flashing the Loadmap/Region file
- $ devlink dev flash pci/0000:02:00.0 file <Load_map_file_name>
- Regions
- =======
- The ``iosm`` driver supports dumping the coredump logs.
- In case a firmware encounters an exception, a snapshot will be taken by the
- driver. Following regions are accessed for device internal data.
- .. list-table:: Regions implemented
- :widths: 15 85
- * - Name
- - Description
- * - ``report.json``
- - The summary of exception details logged as part of this region.
- * - ``coredump.fcd``
- - This region contains the details related to the exception occurred in the
- device (RAM dump).
- * - ``cdd.log``
- - This region contains the logs related to the modem CDD driver.
- * - ``eeprom.bin``
- - This region contains the eeprom logs.
- * - ``bootcore_trace.bin``
- - This region contains the current instance of bootloader logs.
- * - ``bootcore_prev_trace.bin``
- - This region contains the previous instance of bootloader logs.
- Region commands
- ===============
- $ devlink region show
- $ devlink region new pci/0000:02:00.0/report.json
- $ devlink region dump pci/0000:02:00.0/report.json snapshot 0
- $ devlink region del pci/0000:02:00.0/report.json snapshot 0
- $ devlink region new pci/0000:02:00.0/coredump.fcd
- $ devlink region dump pci/0000:02:00.0/coredump.fcd snapshot 1
- $ devlink region del pci/0000:02:00.0/coredump.fcd snapshot 1
- $ devlink region new pci/0000:02:00.0/cdd.log
- $ devlink region dump pci/0000:02:00.0/cdd.log snapshot 2
- $ devlink region del pci/0000:02:00.0/cdd.log snapshot 2
- $ devlink region new pci/0000:02:00.0/eeprom.bin
- $ devlink region dump pci/0000:02:00.0/eeprom.bin snapshot 3
- $ devlink region del pci/0000:02:00.0/eeprom.bin snapshot 3
- $ devlink region new pci/0000:02:00.0/bootcore_trace.bin
- $ devlink region dump pci/0000:02:00.0/bootcore_trace.bin snapshot 4
- $ devlink region del pci/0000:02:00.0/bootcore_trace.bin snapshot 4
- $ devlink region new pci/0000:02:00.0/bootcore_prev_trace.bin
- $ devlink region dump pci/0000:02:00.0/bootcore_prev_trace.bin snapshot 5
- $ devlink region del pci/0000:02:00.0/bootcore_prev_trace.bin snapshot 5
|