[PATCH v4 01/10] coresight: syscfg: Initial coresight system configuration
Suzuki K Poulose
suzuki.poulose at arm.com
Thu Mar 4 10:48:22 GMT 2021
On 1/28/21 5:09 PM, Mike Leach wrote:
> Creates an system management API to allow complex configurations and
> features to be programmed into a CoreSight infrastructure.
>
> A feature is defined as a programming set for a device or class of
> devices.
>
> A configuration is a set of features across the system that are enabled
> for a trace session.
>
> The API will manage system wide configuration, and allow complex
> programmed features to be added to individual device instances, and
> provide for system wide configuration selection on trace capture
> operations.
>
> This patch creates the initial data object and the initial API for
> loading configurations and features.
>
> Signed-off-by: Mike Leach <mike.leach at linaro.org>
> +/**
> + * Representation of register value.
> + *
> + * Supports full 64 bit register value, or 32 bit value with optional mask
> + * value.
> + *
> + * @type: define register usage and interpretation.
> + * @offset: the address offset for register in the hardware device (per device specification).
> + * @hw_info: optional hardware device type specific information. (ETM / CTI specific etc)
> + * @val64: 64 bit value.
> + * @val32: 32 bit value.
> + * @mask32: 32 bit mask when using 32 bit value to access device register.
> + */
> +struct cscfg_regval_desc {
> + struct {
> + u32 type:8;
> + u32 offset:12;
> + u32 hw_info:12;
> + };
> + union {
> + u64 val64;
> + struct {
> + u32 val32;
Since this is also overloaded with param_idx for VAL_PARAM type, please
make this explicit by doing something like this, to avoid having
to explain things in the code, undocumented here.
union {
u32 val32;
u32 param_idx;
};
Cheers
Suzuki
More information about the linux-arm-kernel
mailing list