FWU: developerbox: read boot index from NOR flash
The FWU Multi Bank Update feature allows the platform to boot the firmware images from one of the partitions(banks). On the Developerbox, SCP-firmware running on the SCB(Cortex-M3) passes the value of the boot index on the NOR flash. Add a function to read the boot index value from the NOR flash. Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
This commit is contained in:
committed by
Tom Rini
parent
e3f2493d61
commit
fd50ae3f26
@@ -35,3 +35,34 @@ void set_dfu_alt_info(char *interface, char *devstr)
|
||||
|
||||
env_set("dfu_alt_info", buf);
|
||||
}
|
||||
|
||||
/**
|
||||
* fwu_plat_get_bootidx() - Get the value of the boot index
|
||||
* @boot_idx: Boot index value
|
||||
*
|
||||
* Get the value of the bank(partition) from which the platform
|
||||
* has booted. This value is passed to U-Boot from the earlier
|
||||
* stage bootloader which loads and boots all the relevant
|
||||
* firmware images
|
||||
*/
|
||||
void fwu_plat_get_bootidx(uint *boot_idx)
|
||||
{
|
||||
int ret;
|
||||
u32 buf;
|
||||
size_t readlen;
|
||||
struct mtd_info *mtd;
|
||||
|
||||
*boot_idx = 0;
|
||||
|
||||
mtd_probe_devices();
|
||||
mtd = get_mtd_device_nm("nor1");
|
||||
if (IS_ERR_OR_NULL(mtd))
|
||||
return;
|
||||
|
||||
ret = mtd_read(mtd, SCB_PLAT_METADATA_OFFSET, sizeof(buf),
|
||||
&readlen, (u_char *)&buf);
|
||||
if (ret < 0)
|
||||
return;
|
||||
|
||||
*boot_idx = buf;
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
/*
|
||||
* Boot info
|
||||
*/
|
||||
#define SCB_PLAT_METADATA_OFFSET (0x510000)
|
||||
|
||||
/*
|
||||
* Hardware drivers support
|
||||
|
||||
Reference in New Issue
Block a user