• Ben Avison's avatar
    Set shareability bit in page tables for IO region on Pi 2 onwards · 66f82e9c
    Ben Avison authored
    RISCOS_MapInIO does relatively little processing on the L1PT flags that the
    HAL passes to it. However, when modules come along later and try to locate
    IO again, using OS_Memory 13, access permissions are specified using a
    variation on dynamic area flags. The kernel translates from these to L1PT
    flags, and one of the rules it applies is that the shareability bit is set
    if on a multiprocessor system. On Pi 2 and later, this means it doesn't find
    a match amongst the sections that were mapped in by the HAL, and in practice
    this means BCMVideo ends up causing 16MB of IO space to be mapped in twice.
    
    Fix this by passing the L1_S flag to RISCOS_MapInIO on Pi 2 and later. This
    effectively frees up an additional 16MB of logical address space for dynamic
    areas.
    66f82e9c
VersionNum 759 Bytes