sw_apps: openamp matrix multiply application is modified

This patch changes linker script to keep everything into DDR
except vectors. It removes frequent call to enable interrupt
and removed disable interrupt in between. It also fixes the
order of text carve out entry.

Signed-off-by: Kinjal Pravinbhai Patel <patelki@xilinx.com>
Acked-for-series: Anirudha Sarangi   <anirudh@xilinx.com>
This commit is contained in:
Kinjal Pravinbhai Patel 2015-08-26 17:01:52 +05:30 committed by Nava kishore Manne
parent 77c1e57aee
commit e7d500deb7
5 changed files with 6 additions and 12 deletions

View file

@ -49,8 +49,6 @@ int zynqMP_r5_gic_initialize() {
#ifndef USE_FREERTOS
u32 Status;
Xil_ExceptionDisable();
XScuGic_Config *IntcConfig; /* The configuration parameters of the interrupt controller */
/*

View file

@ -294,7 +294,7 @@ _SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );
. += _HEAP_SIZE;
_heap_end = .;
HeapLimit = .;
} > ps8_ocm_ram_1_S_AXI_BASEADDR
} > ps8_ddr_S_AXI_BASEADDR
.stack (NOLOAD) : {
. = ALIGN(16);
@ -322,7 +322,7 @@ _SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );
. += _UNDEF_STACK_SIZE;
. = ALIGN(16);
__undef_stack = .;
} > ps8_ocm_ram_1_S_AXI_BASEADDR
} > ps8_ddr_S_AXI_BASEADDR
_end = .;
}

View file

@ -278,7 +278,7 @@ _binary_firmware2_end = 0;
*(COMMON)
. = ALIGN(4);
__bss_end__ = .;
} > ps8_ocm_ram_1_S_AXI_BASEADDR
} > ps8_ddr_S_AXI_BASEADDR
_SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 );
@ -322,7 +322,7 @@ _SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );
. += _UNDEF_STACK_SIZE;
. = ALIGN(16);
__undef_stack = .;
} > ps8_ocm_ram_1_S_AXI_BASEADDR
} > ps8_ddr_S_AXI_BASEADDR
_end = .;
}

View file

@ -187,14 +187,13 @@ void communication_task(){
#else
env_create_sync_lock(&OpenAMPInstPtr.lock,LOCKED);
#endif
env_enable_interrupt(VRING1_IPI_INTR_VECT, 0, 0);
while (1) {
#ifdef USE_FREERTOS
QueueSetMemberHandle_t xActivatedMember;
env_enable_interrupt(VRING1_IPI_INTR_VECT, 0, 0);
xActivatedMember = xQueueSelectFromSet( comm_queueset, portMAX_DELAY);
if( xActivatedMember == OpenAMPInstPtr.lock ) {
env_acquire_sync_lock(OpenAMPInstPtr.lock);
env_disable_interrupt(VRING1_IPI_INTR_VECT);
process_communication(OpenAMPInstPtr);
}
if (xActivatedMember == OpenAMPInstPtr.send_queue) {
@ -202,9 +201,7 @@ void communication_task(){
rpmsg_send(app_rp_chnl, send_data.data, send_data.length);
}
#else
env_enable_interrupt(VRING1_IPI_INTR_VECT, 0, 0);
env_acquire_sync_lock(OpenAMPInstPtr.lock);
env_disable_interrupt(VRING1_IPI_INTR_VECT);
process_communication(OpenAMPInstPtr);
matrix_mul();
if(pq_qlength(OpenAMPInstPtr.send_queue) > 0) {

View file

@ -44,9 +44,8 @@ struct remote_resource_table {
unsigned int reserved[2];
unsigned int offset[NO_RESOURCE_ENTRIES];
/* text carve out entry */
struct fw_rsc_carveout ddr_cout;
struct fw_rsc_carveout ocm_1_cout;
struct fw_rsc_carveout ddr_cout;
/* rpmsg vdev entry */
struct fw_rsc_vdev rpmsg_vdev;
struct fw_rsc_vdev_vring rpmsg_vring0;