Changeset 912a1a90 in rtems


Ignore:
Timestamp:
Jul 31, 2016, 11:10:28 AM (3 years ago)
Author:
Pavel Pisa <pisa@…>
Branches:
master
Children:
db6a637
Parents:
3d3ad4dc
Message:

arm/raspberrypi: framebuffer driver checks for initialization and tries runtime init if required.

Code works but there is problem how to setup caching for the regions
(arm_cp15_set_translation_table_entries arguments).

If ARMV7_MMU_DATA_READ_WRITE_CACHED is used then CPU
accesses are noncoherent with VideoCore? and some
part of image update are not visible until pushed from
cache by other activities. If ARMV7_MMU_DATA_READ_WRITE
is used then access is extremely slow.

Signed-off-by: Pavel Pisa <pisa@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/arm/raspberrypi/console/fb.c

    r3d3ad4dc r912a1a90  
    320320  if ( _Atomic_Flag_test_and_set( &driver_mutex,
    321321         ATOMIC_ORDER_ACQUIRE ) != 0 ) {
    322     printk( "FB_CIRRUS could not lock driver_mutex\n" );
     322    printk( "RaspberryPi framebuffer could not lock driver_mutex\n" );
    323323    return RTEMS_UNSATISFIED;
     324  }
     325
     326  if ( fb_fix_info.smem_start == NULL ) {
     327    int res;
     328    res = rpi_fb_init();
     329    if ( (res < RPI_FB_INIT_OK) || (fb_fix_info.smem_start == NULL) ) {
     330      _Atomic_Flag_clear( &driver_mutex, ATOMIC_ORDER_RELEASE );
     331      printk( "RaspberryPi framebuffer initialization failed\n" );
     332      return RTEMS_UNSATISFIED;
     333    }
    324334  }
    325335
Note: See TracChangeset for help on using the changeset viewer.