On 7/20/21 4:06 PM, Tom Rini wrote:
On Tue, Jul 20, 2021 at 04:46:23PM +0300, David Abdurachmanov wrote:
On Tue, Jul 20, 2021 at 1:06 AM Tom Rini <tr...@konsulko.com> wrote:

On Mon, Jul 19, 2021 at 11:52:09PM +0200, Heinrich Schuchardt wrote:


On 19.07.21 23:38, Heinrich Schuchardt wrote:
Booting Ubuntu Impish showed the following output:

      relocaddr   = 0x00000000fff60000

      Loading Ramdisk to fa118000, end fffff19d ...

The initrd is overwriting the U-Boot binary. Booting fails.

There is no need to copy the initrd from $ramdisk_addr_r.
Set init_high = ~0UL to use zero copy.

Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com>
---
Generally copying to another memory location than $ramdisk_addr_r provides
no benefit whatsoever.

But we still should find out why the initrd relocation fails so badly.
---
   include/configs/sifive-unmatched.h | 1 +
   1 file changed, 1 insertion(+)

diff --git a/include/configs/sifive-unmatched.h 
b/include/configs/sifive-unmatched.h
index d63a5f62fb..8dcfffedbe 100644
--- a/include/configs/sifive-unmatched.h
+++ b/include/configs/sifive-unmatched.h
@@ -67,6 +67,7 @@
     "scriptaddr=0x88100000\0" \
     "pxefile_addr_r=0x88200000\0" \
     "ramdisk_addr_r=0x88300000\0" \
+   "initrd_high=0xffffffffffffffff\0" \
     "kernel_comp_addr_r=0x90000000\0" \

Tom remarked that kernel_comp_addr_r is poorly chosen as it will overlap
with initrd if initrd exceeds 125 MiB. Current RISC-V Linux thinks
initrd should fit into the first 128 MiB of RAM but that is an
unnecessary restriction in Linux.

While I don't expect this to be a major issue we should definitely fix it.
When I originally picked the value I wasn't thinking about it and
initrd images were small.

Yeah, honestly, I think it should be a high priority thing to fix /
document.  Distro initrds tend to not be small and these overlaps end up
being a huge problem for end users.  A good and documented example of
where to put everything relative to start of DDR so that nothing should
overlap by default makes things so much easier for everyone.

There is no fits all solution. Boards come with different reserved
areas. I even ran into a problem were you simply could not fit the
intitrd where Linux was expecting it because there was so much reserved
memory in the low 128 MiB. So Linux' EFI stub needed patching.

Best regards

Heinrich

Reply via email to