mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-27 23:20:26 +09:00
ram: stm32: fix strsep failed on read only memory
strsep will change data from original memory address, in case the memory is in non-sdram/sram place, will run into a bug(hang at SDRAM: ) just add a temporary array to store bank_name[] to fix this bug. Signed-off-by: dillon min <dillon.minfei@gmail.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
This commit is contained in:
parent
f132c4967e
commit
1f0305e0d0
@ -268,6 +268,7 @@ static int stm32_fmc_of_to_plat(struct udevice *dev)
|
|||||||
u32 swp_fmc;
|
u32 swp_fmc;
|
||||||
ofnode bank_node;
|
ofnode bank_node;
|
||||||
char *bank_name;
|
char *bank_name;
|
||||||
|
char _bank_name[128] = {0};
|
||||||
u8 bank = 0;
|
u8 bank = 0;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@ -300,6 +301,8 @@ static int stm32_fmc_of_to_plat(struct udevice *dev)
|
|||||||
dev_for_each_subnode(bank_node, dev) {
|
dev_for_each_subnode(bank_node, dev) {
|
||||||
/* extract the bank index from DT */
|
/* extract the bank index from DT */
|
||||||
bank_name = (char *)ofnode_get_name(bank_node);
|
bank_name = (char *)ofnode_get_name(bank_node);
|
||||||
|
strlcpy(_bank_name, bank_name, sizeof(_bank_name));
|
||||||
|
bank_name = (char *)_bank_name;
|
||||||
strsep(&bank_name, "@");
|
strsep(&bank_name, "@");
|
||||||
if (!bank_name) {
|
if (!bank_name) {
|
||||||
pr_err("missing sdram bank index");
|
pr_err("missing sdram bank index");
|
||||||
|
Loading…
Reference in New Issue
Block a user