* [U-Boot] [PATCH] image: check "bootm_low" and "bootm_size" if "initrd_high" is missing
@ 2015-12-17 8:19 Masahiro Yamada
2016-01-04 19:59 ` Tom Rini
2016-01-13 21:55 ` Tom Rini
0 siblings, 2 replies; 5+ messages in thread
From: Masahiro Yamada @ 2015-12-17 8:19 UTC (permalink / raw)
To: u-boot
To boot Linux, we should prevent Initramdisk and FDT from going too
high.
Currently, boot_relocate_fdt() checks "fdt_high" environment first,
and then falls back to getenv_bootm_mapsize() + getenv_bootm_low()
if "fdt_high" is missing.
On the other hand, boot_ramdisk_high() only checks "initrd_high" to
get the address limit for the Initramdisk. We also want to let this
case fall back to getenv_bootm_mapsize() + getenv_bootm_low().
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
common/image.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/common/image.c b/common/image.c
index c36927f..d63d9e0 100644
--- a/common/image.c
+++ b/common/image.c
@@ -1113,8 +1113,7 @@ int boot_ramdisk_high(struct lmb *lmb, ulong rd_data, ulong rd_len,
if (initrd_high == ~0)
initrd_copy_to_ram = 0;
} else {
- /* not set, no restrictions to load high */
- initrd_high = ~0;
+ initrd_high = getenv_bootm_mapsize() + getenv_bootm_low();
}
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH] image: check "bootm_low" and "bootm_size" if "initrd_high" is missing
2015-12-17 8:19 [U-Boot] [PATCH] image: check "bootm_low" and "bootm_size" if "initrd_high" is missing Masahiro Yamada
@ 2016-01-04 19:59 ` Tom Rini
2016-01-08 16:12 ` Masahiro Yamada
2016-01-13 21:55 ` Tom Rini
1 sibling, 1 reply; 5+ messages in thread
From: Tom Rini @ 2016-01-04 19:59 UTC (permalink / raw)
To: u-boot
On Thu, Dec 17, 2015 at 05:19:35PM +0900, Masahiro Yamada wrote:
> To boot Linux, we should prevent Initramdisk and FDT from going too
> high.
OK, why? I could be entirely wrong here but I had thought for some
reason that if the ramdisk was in "highmem" the kernel would relocate
contents (or if compressed, uncompress to a non-highmem location). The
FDT must be in lowmem as that tells the kernel where memory even is. Is
this not the case? Thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160104/ef991061/attachment.sig>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH] image: check "bootm_low" and "bootm_size" if "initrd_high" is missing
2016-01-04 19:59 ` Tom Rini
@ 2016-01-08 16:12 ` Masahiro Yamada
2016-01-13 13:11 ` Tom Rini
0 siblings, 1 reply; 5+ messages in thread
From: Masahiro Yamada @ 2016-01-08 16:12 UTC (permalink / raw)
To: u-boot
Hi Tom,
2016-01-05 4:59 GMT+09:00 Tom Rini <trini@konsulko.com>:
> On Thu, Dec 17, 2015 at 05:19:35PM +0900, Masahiro Yamada wrote:
>
>> To boot Linux, we should prevent Initramdisk and FDT from going too
>> high.
>
> OK, why? I could be entirely wrong here but I had thought for some
> reason that if the ramdisk was in "highmem" the kernel would relocate
> contents (or if compressed, uncompress to a non-highmem location). The
> FDT must be in lowmem as that tells the kernel where memory even is. Is
> this not the case? Thanks!
Just in case, I asked this in the kernel ML.
See this thread:
https://lkml.org/lkml/2016/1/8/169
Jon gave me the answer.
5. Load initramfs.
------------------
Existing boot loaders: OPTIONAL
New boot loaders: OPTIONAL
If an initramfs is in use then, as with the dtb, it must be placed in
a region of memory where the kernel decompressor will not overwrite it
while also with the region which will be covered by the kernel's
low-memory mapping.
A safe location is just above the device tree blob which itself will
be loaded just above the 128MiB boundary from the start of RAM as
recommended above.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH] image: check "bootm_low" and "bootm_size" if "initrd_high" is missing
2016-01-08 16:12 ` Masahiro Yamada
@ 2016-01-13 13:11 ` Tom Rini
0 siblings, 0 replies; 5+ messages in thread
From: Tom Rini @ 2016-01-13 13:11 UTC (permalink / raw)
To: u-boot
On Sat, Jan 09, 2016 at 01:12:33AM +0900, Masahiro Yamada wrote:
> Hi Tom,
>
>
> 2016-01-05 4:59 GMT+09:00 Tom Rini <trini@konsulko.com>:
> > On Thu, Dec 17, 2015 at 05:19:35PM +0900, Masahiro Yamada wrote:
> >
> >> To boot Linux, we should prevent Initramdisk and FDT from going too
> >> high.
> >
> > OK, why? I could be entirely wrong here but I had thought for some
> > reason that if the ramdisk was in "highmem" the kernel would relocate
> > contents (or if compressed, uncompress to a non-highmem location). The
> > FDT must be in lowmem as that tells the kernel where memory even is. Is
> > this not the case? Thanks!
>
>
> Just in case, I asked this in the kernel ML.
>
>
> See this thread:
> https://lkml.org/lkml/2016/1/8/169
>
>
> Jon gave me the answer.
>
>
>
> 5. Load initramfs.
> ------------------
>
> Existing boot loaders: OPTIONAL
> New boot loaders: OPTIONAL
>
> If an initramfs is in use then, as with the dtb, it must be placed in
> a region of memory where the kernel decompressor will not overwrite it
> while also with the region which will be covered by the kernel's
> low-memory mapping.
>
> A safe location is just above the device tree blob which itself will
> be loaded just above the 128MiB boundary from the start of RAM as
> recommended above.
Which explains why I picked the regions I picked for ti_armv7_common.h
that I did. So, OK, thanks! I'll apply this patch shortly.
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160113/71fa1483/attachment.sig>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH] image: check "bootm_low" and "bootm_size" if "initrd_high" is missing
2015-12-17 8:19 [U-Boot] [PATCH] image: check "bootm_low" and "bootm_size" if "initrd_high" is missing Masahiro Yamada
2016-01-04 19:59 ` Tom Rini
@ 2016-01-13 21:55 ` Tom Rini
1 sibling, 0 replies; 5+ messages in thread
From: Tom Rini @ 2016-01-13 21:55 UTC (permalink / raw)
To: u-boot
On Thu, Dec 17, 2015 at 05:19:35PM +0900, Masahiro Yamada wrote:
> To boot Linux, we should prevent Initramdisk and FDT from going too
> high.
>
> Currently, boot_relocate_fdt() checks "fdt_high" environment first,
> and then falls back to getenv_bootm_mapsize() + getenv_bootm_low()
> if "fdt_high" is missing.
>
> On the other hand, boot_ramdisk_high() only checks "initrd_high" to
> get the address limit for the Initramdisk. We also want to let this
> case fall back to getenv_bootm_mapsize() + getenv_bootm_low().
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160113/26cff3a3/attachment.sig>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-01-13 21:55 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-17 8:19 [U-Boot] [PATCH] image: check "bootm_low" and "bootm_size" if "initrd_high" is missing Masahiro Yamada
2016-01-04 19:59 ` Tom Rini
2016-01-08 16:12 ` Masahiro Yamada
2016-01-13 13:11 ` Tom Rini
2016-01-13 21:55 ` Tom Rini
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.