Changeset f9f758e in mainline


Ignore:
Timestamp:
2013-08-05T22:09:36Z (11 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e13ba75
Parents:
8abcf4e
Message:

armv7: Use write-through caches.

Works correctly and still offers significant improvement

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • boot/arch/arm32/src/mm.c

    r8abcf4e rf9f758e  
    136136{
    137137        pte->descriptor_type = PTE_DESCRIPTOR_SECTION;
    138         pte->bufferable = 1;
    139         pte->cacheable = section_cacheable(frame);
    140138        pte->xn = 0;
    141139        pte->domain = 0;
    142140        pte->should_be_zero_1 = 0;
    143141        pte->access_permission_0 = PTE_AP_USER_NO_KERNEL_RW;
     142#ifdef PROCESSOR_ARCH_armv7_a
     143        //TODO: Use write-back write-allocate caches
     144        pte->tex = section_cacheable(frame) ? 6 : 0;
     145        pte->bufferable = section_cacheable(frame) ? 0 : 0;
     146        pte->cacheable = section_cacheable(frame) ? 1 : 0;
     147#else
     148        pte->bufferable = 1;
     149        pte->cacheable = section_cacheable(frame);
    144150        pte->tex = 0;
     151#endif
    145152        pte->access_permission_1 = 0;
    146153        pte->shareable = 0;
  • kernel/arch/arm32/include/arch/mm/page_armv6.h

    r8abcf4e rf9f758e  
    236236        if (flags & PAGE_CACHEABLE) {
    237237                /*
    238                  * Write-back, write-allocate memory, see ch. B3.8.2
     238                 * Write-through, no write-allocate memory, see ch. B3.8.2
    239239                 * (p. B3-1358) of ARM Architecture reference manual.
    240240                 */
    241                 p->tex = 1;
     241                //TODO: Use writeback, write-allocate caches
     242                p->tex = 6;
    242243                p->cacheable = 1;
    243                 p->bufferable = 1;
     244                p->bufferable = 0;
    244245        } else {
    245246                /*
Note: See TracChangeset for help on using the changeset viewer.