mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-15 15:53:02 +00:00
dfeb4f0d79
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>
76 lines
1.5 KiB
C
76 lines
1.5 KiB
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* Copyright (C) 2020 Eugeniu Rosca <rosca.eugeniu@gmail.com>
|
|
*
|
|
* Android Bootloader Control Block Header
|
|
*/
|
|
|
|
#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_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_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__ */
|