mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 13:11:31 +00:00
bootm: fix wrong conditions about images overlap
It doesn't need to consider start byte address.
If ramdisk size is 0x800000 and start address is 0x2700000, then it's
used until 0x02efffff, not 0x02f00000. But it's detected to overlapt RD
image, when kernel start address is 0x02f00000.
Because it's doing wrong calculation about rd_len.
This patch fixed wrong calculation address position when check
condition.
In addition, it needs to check one more condition about overlapping
entire area.
Fixes: commit fbde7589ce
("common: bootm: add checks to verify if ramdisk / fdtimage overlaps OS image")
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
This commit is contained in:
parent
274227500a
commit
ef4f4f1f5f
1 changed files with 5 additions and 3 deletions
|
@ -256,9 +256,11 @@ int bootm_find_images(int flag, int argc, char *const argv[], ulong start,
|
|||
|
||||
/* check if ramdisk overlaps OS image */
|
||||
if (images.rd_start && (((ulong)images.rd_start >= start &&
|
||||
(ulong)images.rd_start <= start + size) ||
|
||||
((ulong)images.rd_end >= start &&
|
||||
(ulong)images.rd_end <= start + size))) {
|
||||
(ulong)images.rd_start < start + size) ||
|
||||
((ulong)images.rd_end > start &&
|
||||
(ulong)images.rd_end <= start + size) ||
|
||||
((ulong)images.rd_start < start &&
|
||||
(ulong)images.rd_end >= start + size))) {
|
||||
printf("ERROR: RD image overlaps OS image (OS=0x%lx..0x%lx)\n",
|
||||
start, start + size);
|
||||
return 1;
|
||||
|
|
Loading…
Add table
Reference in a new issue