[RFC 1/8] drivers: add generic remoteproc framework
From: Grant Likely <hidden>
Date: 2011-06-27 22:25:27
Also in:
linux-omap, lkml
On Mon, Jun 27, 2011 at 09:52:30PM +0000, Grosen, Mark wrote:
quoted
From: Grant Likely Sent: Monday, June 27, 2011 1:50 PMGrant, thanks for the feedback. I'll try to answer one of your questions below and leave the rest for Ohad. Markquoted
quoted
+Every remoteproc implementation must provide these handlers: + +struct rproc_ops { + int (*start)(struct rproc *rproc, u64 bootaddr); + int (*stop)(struct rproc *rproc); +}; + +The ->start() handler takes a rproc handle and an optional bootaddrargument,quoted
+and should power on the device and boot it (using the bootaddrargumentquoted
+if the hardware requires one).Naive question: Why is bootaddr an argument? Wouldn't rproc drivers keep track of the boot address in their driver private data?Our AMPs (remote processors) have a variety of boot mechanisms that vary across the different SoCs (yes, TI likes HW diversity). In some cases, the boot address is more like an entry point and that comes from the firmware, so it is not a static attribute of a driver. Correct me if I misunderstood your question.
More to the point, I would expect the boot_address to be a property of the rproc instance because it represents the configuration of the remote processor. It seems odd that the caller of ->start would know better than the rproc driver about the entry point of the processor. g.