Index: firmware/target/arm/usb-drv-pp502x.c =================================================================== --- firmware/target/arm/usb-drv-pp502x.c (Revision 17058) +++ firmware/target/arm/usb-drv-pp502x.c (Arbeitskopie) @@ -302,7 +302,7 @@ unsigned int reserved; } __attribute__ ((packed)); -static struct transfer_descriptor _td_array[NUM_ENDPOINTS*2] __attribute((aligned (32))); +static struct transfer_descriptor _td_array[NUM_ENDPOINTS*2] __attribute((aligned (32))) IBSS_ATTR; static struct transfer_descriptor* td_array; /* manual: 32.13.1 Endpoint Queue Head (dQH) */ @@ -318,7 +318,7 @@ unsigned int wait; /* for softwate use, indicates if the transfer is blocking */ } __attribute__((packed)); -static struct queue_head _qh_array[NUM_ENDPOINTS*2] __attribute((aligned (2048))); +static struct queue_head _qh_array[NUM_ENDPOINTS*2] __attribute((aligned (2048))) IBSS_ATTR; static struct queue_head* qh_array; static struct event_queue transfer_completion_queue[NUM_ENDPOINTS*2]; @@ -367,8 +367,8 @@ REG_PORTSC1 |= PORTSCX_PORT_FORCE_FULL_SPEED; #endif - td_array = (struct transfer_descriptor*)UNCACHED_ADDR(&_td_array); - qh_array = (struct queue_head*)UNCACHED_ADDR(&_qh_array); + td_array = (struct transfer_descriptor*) &_td_array; + qh_array = (struct queue_head*) &_qh_array; init_control_queue_heads(); memset(td_array, 0, sizeof _td_array);