
Hi Jean-Jacques,
On Mon, 5 Aug 2019 at 03:44, Jean-Jacques Hiblot jjhiblot@ti.com wrote:
This function will be used by the SPL to get the names of images to load from the FIT. This allows to load different images based on runtime HW detection.
Signed-off-by: Jean-Jacques Hiblot jjhiblot@ti.com
Changes in v4: New
drivers/board/board-uclass.c | 11 +++++++++++ include/board.h | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+)
diff --git a/drivers/board/board-uclass.c b/drivers/board/board-uclass.c index a516ba4962..4af991e176 100644 --- a/drivers/board/board-uclass.c +++ b/drivers/board/board-uclass.c @@ -23,6 +23,17 @@ int board_detect(struct udevice *dev) return ops->detect(dev); }
+const char *board_get_fit_loadable(struct udevice *dev, int index,
const char *type)
+{
struct board_ops *ops = board_get_ops(dev);
if (!ops->get_fit_loadable)
return NULL;
Please make the function return an int error code - here it should be -ENOSYS.
return ops->get_fit_loadable(dev, index, type);
+}
int board_get_bool(struct udevice *dev, int id, bool *val) { struct board_ops *ops = board_get_ops(dev); diff --git a/include/board.h b/include/board.h index 9dc78684f8..0f4f1aadeb 100644 --- a/include/board.h +++ b/include/board.h @@ -79,6 +79,24 @@ struct board_ops { * Return: 0 if OK, -ve on error. */ int (*get_str)(struct udevice *dev, int id, size_t size, char *val);
/**
* get_fit_loadable - Get the name of an image to load from FIT
* This function can be used to provide the image names based on runtime
* detection. A classic use-case would when DTBOs are used to describe
* additionnal daughter cards.
*
* @dev: The board instance to gather the data.
* @index: Index of the image. Starts at 0 and gets incremented
* after each call to this function.
You mean that the caller should do this? And then stop when it sees -ENOENT for that index?
* @type: The type of image. For example, "fdt" for DTBs
*
* return: The name of the node describing the image. NULL
* indicates that there no more image to get from this
* function.
*/
const char *(*get_fit_loadable)(struct udevice *dev, int index,
const char *type);
The return value should move to an argument so you can return an error.
-ENOENT - no loadable for this type for the given index
};
#define board_get_ops(dev) ((struct board_ops *)(dev)->driver->ops) @@ -137,3 +155,20 @@ int board_get_str(struct udevice *dev, int id, size_t size, char *val);
- Return: 0 if OK, -ve on error.
*/ int board_get(struct udevice **devp);
+/**
- board_get_fit_loadable - Get the name of an image to load from FIT
- This function can be used to provide the image names based on runtime
- detection. A classic use-case would when DTBOs are used to describe
- additionnal daughter cards.
- @dev: The board instance to gather the data.
- @index: Index of the image. Starts at 0 and gets incremented
after each call to this function.
- @type: The type of image. For example, "fdt" for DTBs
- return: The name of the node describing the image. NULL indicates
that there no more images to get from this function.
- */
+const char *board_get_fit_loadable(struct udevice *dev, int index,
const char *type);
-- 2.17.1
Regards, Simon