Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Feb 2020 07:49:53 -0600
From:      Kyle Evans <kevans@freebsd.org>
To:        Ralf Wenk <iz-rpi03@hs-karlsruhe.de>
Cc:        Mark Millard <marklmi@yahoo.com>, freebsd-arm <freebsd-arm@freebsd.org>,  Oleksandr Tymoshenko <gonzo@freebsd.org>, Andrew Turner <andrew@freebsd.org>, Emmanuel Vadot <manu@freebsd.org>
Subject:   Re: A investigative hack that makes (for example) head -r356529 boot and operate normally an RPi4B (finally!): protect all armstub8-gic.bin's loaded content from replacement by the kernel
Message-ID:  <CACNAnaHVYeuoK=4f7XzokpAVjcqd6ovD58-0LdP_vPGjiXQgdw@mail.gmail.com>
In-Reply-To: <E1j2EmR-000Mwm-ID@iz-wera-new.HS-Karlsruhe.DE>
References:  <7E7605DC-021D-448A-8459-8EC26BA9836D.ref@yahoo.com> <7E7605DC-021D-448A-8459-8EC26BA9836D@yahoo.com> <E1j2EmR-000Mwm-ID@iz-wera-new.HS-Karlsruhe.DE>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Feb 13, 2020 at 7:43 AM Ralf Wenk <iz-rpi03@hs-karlsruhe.de> wrote:
>
> On 2020-02-12 at 18:00 -0800 Mark Millard wrote via freebsd-arm:
> > [...]
> >
> > # svnlite diff /usr/src/sys/dev/fdt/fdt_common.c
> > Index: /usr/src/sys/dev/fdt/fdt_common.c
> > ===================================================================
> > --- /usr/src/sys/dev/fdt/fdt_common.c (revision 357529)
> > +++ /usr/src/sys/dev/fdt/fdt_common.c (working copy)
> > @@ -485,7 +485,18 @@
> >
> >       tuples = res_len / tuple_size;
> >       reservep = (pcell_t *)&reserve;
> > +#ifdef __aarch64__
> > +     //HACK!!!
> > +     // Reserve the first few pages, for example to
> > +     // preserve armstub8-gic.bin or armstub.bin
> > +     // content.
> > +     mr[0].mr_start= 0;
> > +     mr[0].mr_size= 2*4096;
> > +     tuples++;
> > +     for (i = 1; i < tuples; i++) {
> > +#else
> >       for (i = 0; i < tuples; i++) {
> > +#endif
> >
> >               rv = fdt_data_to_res(reservep, addr_cells, size_cells,
> >                       (u_long *)&mr[i].mr_start, (u_long *)&mr[i].mr_size);
> > @@ -512,6 +523,11 @@
> >
> >       root = OF_finddevice("/reserved-memory");
> >       if (root == -1) {
> > +             // Fail over to checking for and handling memreserve,
> > +             // such as for a RPi4B.
> > +             if (0 == fdt_get_reserved_regions(reserved,mreserved))
> > +                     return (0);
> > +
> >               return (ENXIO);
> >       }
> >
>
> I can confirm that with your patch(es) my RPi3 does not freeze any more
> when loading mac_ntpd.ko. The patches are applied against r357853M.
>

Have you tested the RPi3 with just this second hunk of patch to
fallover to memreserve, or is the first hunk definitely required as
well?

Thanks,

Kyle Evans



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACNAnaHVYeuoK=4f7XzokpAVjcqd6ovD58-0LdP_vPGjiXQgdw>