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);
|
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
|
* Boot info
|
||||||
*/
|
*/
|
||||||
|
#define SCB_PLAT_METADATA_OFFSET (0x510000)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Hardware drivers support
|
* Hardware drivers support
|
||||||
|
|||||||
Reference in New Issue
Block a user