• Anshuman Khandual's avatar
    coresight: tmc: Make etr buffer mode user configurable from sysfs · 2373699a
    Anshuman Khandual authored
    Currently TMC-ETR automatically selects the buffer mode from all available
    methods in the following sequentially fallback manner - also in that order.
    
    1. FLAT mode with or without IOMMU
    2. TMC-ETR-SG (scatter gather) mode when available
    3. CATU mode when available
    
    But this order might not be ideal for all situations. For example if there
    is a CATU connected to ETR, it may be better to use TMC-ETR scatter gather
    method, rather than CATU. But hard coding such order changes will prevent
    us from testing or using a particular mode. This change provides following
    new sysfs tunables for the user to control TMC-ETR buffer mode explicitly,
    if required. This adds following new sysfs files for buffer mode selection
    purpose explicitly in the user space.
    
    /sys/bus/coresight/devices/tmc_etr<N>/buf_modes_available
    /sys/bus/coresight/devices/tmc_etr<N>/buf_mode_preferred
    
    $ cat buf_modes_available
    auto flat tmc-sg catu	------------------> Supported TMC-ETR buffer modes
    
    $ echo catu > buf_mode_preferred   -------> Explicit buffer mode request
    
    But explicit user request has to be within supported ETR buffer modes only.
    These sysfs interface files are exclussive to ETR, and hence these are not
    available for other TMC devices such as ETB or ETF etc.
    
    A new auto' mode (i.e ETR_MODE_AUTO) has been added to help fallback to the
    existing default behaviour, when user provided preferred buffer mode fails.
    ETR_MODE_FLAT and ETR_MODE_AUTO are always available as preferred modes.
    
    Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
    Cc: Mike Leach <mike.leach@linaro.org>
    Cc: James Clark <james.clark@arm.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: coresight@lists.linaro.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: default avatarAnshuman Khandual <anshuman.khandual@arm.com>
    [Fixup year in sysfs ABI documentation]
    Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
    Link: https://lore.kernel.org/r/20230818082112.554638-1-anshuman.khandual@arm.com
    2373699a
coresight-tmc-core.c 15 KB