Re: git: bcd763b642ab - main - Move the arm64 DMAP creation to C
- In reply to: Kyle Evans : "Re: git: bcd763b642ab - main - Move the arm64 DMAP creation to C"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 09 Apr 2022 05:44:55 UTC
On Sat, Apr 9, 2022 at 12:43 AM Kyle Evans <kevans@freebsd.org> wrote: > > On Sat, Apr 9, 2022 at 12:31 AM Kyle Evans <kevans@freebsd.org> wrote: > > > > On Wed, Apr 6, 2022 at 8:24 AM Andrew Turner <andrew@freebsd.org> wrote: > > > > > > The branch main has been updated by andrew: > > > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=bcd763b642abb4b236902e84184c579225265fb7 > > > > > > commit bcd763b642abb4b236902e84184c579225265fb7 > > > Author: Andrew Turner <andrew@FreeBSD.org> > > > AuthorDate: 2022-03-15 17:05:48 +0000 > > > Commit: Andrew Turner <andrew@FreeBSD.org> > > > CommitDate: 2022-04-06 13:09:49 +0000 > > > > > > Move the arm64 DMAP creation to C > > > > > > To simplify the creation of the direct map (DMAP) region on arm64 move > > > it from the pre-C code into pmap. This simplifies the DMAP creation > > > as we can use the notmal index macros, and should reduce the number > > > of pages needed to hold the level 1 tables to just those needed. > > > > > > Reviewed by: alc, dch > > > Tested by: dch, kevans > > > Sponsored by: The FreeBSD Foundation > > > Differential Revision: https://reviews.freebsd.org/D34568 > > > > Our Ampere boxes were fine with this, but this seems to tickle > > something on this M1 mini that I have. Specifically, we end up dying > > while probing UEFI stuff, here: > > > > https://cgit.freebsd.org/src/tree/sys/dev/efidev/efirt.c#n183 > > > > efi_systbl_phys == 0x9e0979f30, efi_systbl == 0xffffa001e0979f30 > > Fatal data abort: > > ... > > sp: ffff000000fb79b0 > > lr: ffff000000157ae0 (efirt_modevents + 94) > > elr: ffff000000157ae8 (efirt_modevents + 9c) > > spsr: 604000c5 > > far: ffffa001e0979f30 > > esr: 96000007 > > panic: vm_fault failed: ffff000000157ae8 error 1 > > cpuid = 0 > > time = 1 > > KDB: stack backtrace: > > db_trace_self() at db_trace_self > > db_trace_self_wrapper() at db_trace_self_wrapper+0x30 > > vpanic() at vpanic+0x174 > > panic() at panic+0x44 > > data_abort() at data_abort+0x2f0 > > handle_el1h_sync() at handle_el1h_sync+0x10 > > --- exception, esr 0x96000007 > > efirt_modevents() at efirt_modevents+0x9c > > module_register_init() at module_register_init+0xc4 > > mi_startup() at mi_startup+0x284 > > virtdone() at virtdone+0x7c > > Er, maybe helpful: > > Physical memory chunk(s): > 0x8010a8000 - 0x803ecbfff, 46 MB ( 11812 pages) > 0x803f8c000 - 0x8053e7fff, 20 MB ( 5212 pages) > 0x805402000 - 0x808f99fff, 59 MB ( 15256 pages) > 0x808fb6000 - 0x80d5fffff, 70 MB ( 17994 pages) > 0x80dc73000 - 0x9e096ffff, 7468 MB (1912061 pages) > 0x9e0980000 - 0x9e0a33fff, 0 MB ( 180 pages) Excluded memory regions: 0x803ecc000 - 0x803f8bfff, 0 MB ( 192 pages) NoAlloc 0x8053e8000 - 0x805401fff, 0 MB ( 26 pages) NoAlloc 0x808f9a000 - 0x808fb5fff, 0 MB ( 28 pages) NoAlloc 0x80d600000 - 0x80dc72fff, 6 MB ( 1651 pages) NoAlloc 0x9d3800000 - 0x9d4d20fff, 21 MB ( 5409 pages) NoAlloc 0x9db93c000 - 0x9db93efff, 0 MB ( 3 pages) NoAlloc 0x9db940000 - 0x9db943fff, 0 MB ( 4 pages) NoAlloc 0x9e0970000 - 0x9e097ffff, 0 MB ( 16 pages) NoAlloc 0x9e3a5c000 - 0x9e3d21fff, 2 MB ( 710 pages) NoAlloc