mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
cmd: bcb: extend BCB C API to allow read/write the fields
Currently BCB C API only allows to modify 'command' BCB field. Extend it so that we can also read and modify all the available BCB fields (command, status, recovery, stage). Co-developed-by: Cody Schuffelen <schuffelen@google.com> Signed-off-by: Cody Schuffelen <schuffelen@google.com> Signed-off-by: Dmitrii Merkurev <dimorinny@google.com> Cc: Eugeniu Rosca <erosca@de.adit-jv.com> Cc: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org> Cc: Simon Glass <sjg@chromium.org> Cc: Mattijs Korpershoek <mkorpershoek@baylibre.com> Cc: Sean Anderson <sean.anderson@seco.com> Cc: Cody Schuffelen <schuffelen@google.com> Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # on vim3 Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
This commit is contained in:
committed by
Tom Rini
parent
a654369b49
commit
dfeb4f0d79
@@ -8,15 +8,69 @@
|
||||
#ifndef __BCB_H__
|
||||
#define __BCB_H__
|
||||
|
||||
#include <part.h>
|
||||
|
||||
enum bcb_field {
|
||||
BCB_FIELD_COMMAND,
|
||||
BCB_FIELD_STATUS,
|
||||
BCB_FIELD_RECOVERY,
|
||||
BCB_FIELD_STAGE
|
||||
};
|
||||
|
||||
#if IS_ENABLED(CONFIG_CMD_BCB)
|
||||
int bcb_write_reboot_reason(const char *iface, int devnum, char *partp, const char *reasonp);
|
||||
|
||||
int bcb_find_partition_and_load(const char *iface,
|
||||
int devnum, char *partp);
|
||||
int bcb_load(struct blk_desc *block_description,
|
||||
struct disk_partition *disk_partition);
|
||||
int bcb_set(enum bcb_field field, const char *value);
|
||||
|
||||
/**
|
||||
* bcb_get() - get the field value.
|
||||
* @field: field to get
|
||||
* @value_out: buffer to copy bcb field value to
|
||||
* @value_size: buffer size to avoid overflow in case
|
||||
* value_out is smaller then the field value
|
||||
*/
|
||||
int bcb_get(enum bcb_field field, char *value_out, size_t value_size);
|
||||
|
||||
int bcb_store(void);
|
||||
void bcb_reset(void);
|
||||
|
||||
#else
|
||||
|
||||
#include <linux/errno.h>
|
||||
static inline int bcb_write_reboot_reason(const char *iface, int devnum,
|
||||
char *partp, const char *reasonp)
|
||||
|
||||
static inline int bcb_load(struct blk_desc *block_description,
|
||||
struct disk_partition *disk_partition)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static inline int bcb_find_partition_and_load(const char *iface,
|
||||
int devnum, char *partp)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static inline int bcb_set(enum bcb_field field, const char *value)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static inline int bcb_get(enum bcb_field field, char *value_out)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static inline int bcb_store(void)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static inline void bcb_reset(void)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __BCB_H__ */
|
||||
|
||||
Reference in New Issue
Block a user