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@yahoo.com> <E1j2EmR-000Mwm-ID@iz-wera-new.HS-Karlsruhe.DE>
index | next in thread | previous in thread | raw e-mail
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
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACNAnaHVYeuoK=4f7XzokpAVjcqd6ovD58-0LdP_vPGjiXQgdw>
