ARM page 0 set for page fault

Krzysztof Halasa khc at pm.waw.pl
Sun Apr 22 14:38:50 EDT 2012


Hi,

I'm trying to port my old IXP4xx (Intel XScale ARM big-endian mostly)
patches to the current Barebox. Noticed the page #0 (virtual = physical
addresses 0 - 0x1FFF, or the first 4 KiB of RAM) is not present:

commit abcf935e
Author: Sascha Hauer <s.hauer at pengutronix.de>
Date:   Sun Aug 7 19:00:56 2011 +0200

    ARM mmu: use high vectors if possible

    Using high vectors allows us to map a faulting zero page to
    catch NULL pointer dereferences.

Unfortunately this causes "md" (memory dump) etc. to fail (also
executing Linux kernel fails since the tags are located at 0x100 -
should I relocate them?).

Should I do it differently, e.g. access RAM through an alias (IXP4xx has
RAM aliased all over the place, one could also use MMU tables for this)
so that the page fault only occurs on internal, not user-visible
accesses (= users should not be able to access the first virtual page,
even it they think the do)?
-- 
Krzysztof Halasa



More information about the barebox mailing list