Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: lk: Address memory aliasing issue #265

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Commits on Jul 21, 2020

  1. WIP: lk: Address memory aliasing issue

    By default most of the platforms map all the DRAM
    at boot time causing scenarios where same physical
    address initially mapped with cacheable attributes
    maybe allowed to get mapped with non-cacheable
    attributes via different VM range. This is discouraged
    in architectures like ARM and gets tedious to ensure
    the coherent view of DRAM with other masters.
    
    This change ensures following for qemu-arm platform:
    1) Add support of Arenas which might not be mapped
    in kernel space initially after platform is setup.
    2) All the malloc calls use the pages
    from the arenas which are already mapped to kernel
    space.
    3) vmm_alloc* APIs use the arenas which are not already
    mapped to any virtual address range.
    4) vmm_free_region for memory allocated via vmm_alloc*
    APIS using cacheable memory mappings will clean caches
    for reuse by the next vmm_alloc* API call that can map memory
    with different attributes.
    5) Memory for unmapped arena is initially allowed to be mapped
    and then unmapped later during platform initialization.
    
    This avoids remapping of the same physical memory to
    different virtual address ranges with different memory
    attributes. This effectively ensures that at any given
    memory from the vmm_arena can be owned by singal entity
    with a particular memory attributes.
    
    Caveats:
    1) paddr_to_kvaddr API will not work for Physical addresses
    allocated using vmm_alloc* APIs
    
    ToDo:
    1) Address the shortfalls of the current implementation
    2) Update other platforms to allow unmapped ram arenas if
    this implementation is ok to pursue.
    vishals4gh committed Jul 21, 2020
    Configuration menu
    Copy the full SHA
    9ce9222 View commit details
    Browse the repository at this point in the history