• Lin Ma's avatar
    Enable mapping higher physical address · f984ce84
    Lin Ma authored
    Current ATF uses a direct physical-to-virtual mapping, that is, a physical
    address is mapped to the same address in the virtual space. For example,
    physical address 0x8000_0000 is mapped to 0x8000_0000 virtual. This
    approach works fine for FVP as all its physical addresses fall into 0 to
    4GB range. But for other platform where all I/O addresses are 48-bit long,
    If we follow the same direct mapping, we would need virtual address range
    from 0 to 0x8fff_ffff_ffff, which is about 144TB. This requires a
    significant amount of memory for MMU tables and it is not necessary to use
    that much virtual space in ATF.
    
    The patch is to enable mapping a physical address range to an arbitrary
    virtual address range (instead of flat mapping)
    Changed "base" to "base_va" and added "base_pa" in mmap_region_t and
    modified functions such as mmap_add_region and init_xlation_table etc.
    Fixes ARM-software/tf-issues#158
    f984ce84
xlat_tables.h 2.49 KB