drivers/remoteproc/imx_rproc.h

Source file repositories/reference/linux-study-clean/drivers/remoteproc/imx_rproc.h

File Facts

System
Linux kernel
Corpus path
drivers/remoteproc/imx_rproc.h
Extension
.h
Size
1182 bytes
Lines
49
Domain
Driver Families
Bucket
drivers/remoteproc
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct imx_rproc_att {
	u32 da;	/* device address (From Cortex M4 view)*/
	u32 sa;	/* system bus address */
	u32 size; /* size of reg range */
	int flags;
};

/* dcfg flags */
#define IMX_RPROC_NEED_SYSTEM_OFF	BIT(0)
#define IMX_RPROC_NEED_CLKS		BIT(1)

struct imx_rproc_plat_ops {
	int (*start)(struct rproc *rproc);
	int (*stop)(struct rproc *rproc);
	int (*detach)(struct rproc *rproc);
	int (*detect_mode)(struct rproc *rproc);
	int (*prepare)(struct rproc *rproc);
};

struct imx_rproc_dcfg {
	u32				src_reg;
	u32				src_mask;
	u32				src_start;
	u32				src_stop;
	u32				gpr_reg;
	u32				gpr_wait;
	const struct imx_rproc_att	*att;
	size_t				att_size;
	u32				flags;
	const struct imx_rproc_plat_ops	*ops;
	/* For System Manager(SM) based SoCs */
	u32				cpuid; /* ID of the remote core */
	u32				lmid;  /* ID of the Logcial Machine */
	/* reset_vector = elf_entry_addr & reset_vector_mask */
	u32				reset_vector_mask;
};

#endif /* _IMX_RPROC_H */

Annotation

Implementation Notes