URL
https://opencores.org/ocsvn/gecko3/gecko3/trunk
Subversion Repositories gecko3
Compare Revisions
- This comparison shows the changes necessary to convert path
/gecko3/trunk/GECKO3COM/gecko3com-fw
- from Rev 17 to Rev 18
- ↔ Reverse comparison
Rev 17 → Rev 18
/firmware/src/gecko3com_main.c
848,6 → 848,13
} |
} /* end of IN Transfer clause */ |
|
/* if(!(EP2468STAT & bmEP2EMPTY) && flLOCAL == GECKO3COM_REMOTE) { */ |
/* flGPIF &= ~bmGPIF_PENDING_DATA; */ |
/* OUTPKTEND = USB_TMC_EP_OUT; */ |
/* gpif_trigger_write(); */ |
/* EP2FIFOCFG |= bmAUTOOUT; */ |
/* } */ |
|
/* if the LED flag is set to off, disable the external LED */ |
if(flLED == LEDS_OFF) { |
set_led_ext(LEDS_OFF); |
/firmware/src/gecko3com_gpif.c
92,10 → 92,14
|
clear_fifo_gpif_irq(); |
|
/* check if there is data available for an OUT transfer */ |
//if((flGPIF & bmGPIF_PENDING_DATA) == bmGPIF_PENDING_DATA) { |
if(!(EP2468STAT & bmEP2EMPTY)) { |
//EA = 0; /* disable all interrupts */ |
|
/* check if there is data available for an OUT transfer */ |
if((flGPIF & bmGPIF_PENDING_DATA) == bmGPIF_PENDING_DATA) { |
//if(!(EP2468STAT & bmEP2EMPTY)) { |
flGPIF &= ~bmGPIF_PENDING_DATA; |
GPIFABORT = 0xFF; |
SYNCDELAY; |
gpif_trigger_write(); |
} |
else { |
102,7 → 106,8
INPKTEND = USB_TMC_EP_IN; |
gpif_trigger_read(); |
} |
|
//EA = 1; /* global interrupt enable */ |
|
ISR_DEBUG_PORT &= ~bmGPIF_DONE; |
} |
|
118,16 → 123,16
clear_fifo_gpif_irq(); |
|
/* check if there is a active IN transfer */ |
/*if((GPIFIDLECTL & bmBIT3) == bmBIT3) { |
if((GPIFIDLECTL & bmBIT3) == bmBIT3) { |
flGPIF |= bmGPIF_PENDING_DATA; |
} |
else*/ { |
EA = 0; /* disable all interrupts */ |
else { |
//EA = 0; /* disable all interrupts */ |
GPIFABORT = 0xFF; |
SYNCDELAY; |
EA = 1; /* global interrupt enable */ |
|
|
gpif_trigger_write(); |
//EA = 1; /* global interrupt enable */ |
} |
|
ISR_DEBUG_PORT &= ~bmFIFO_PF; |
150,9 → 155,6
/*FIXME only here for testing */ |
//EP6AUTOINLENH = (20) >> 8; SYNCDELAY; /* this is the length for high speed */ |
//EP6AUTOINLENL = (20) & 0xff; SYNCDELAY; |
|
//REVCTL = 0; /* set it back to 0 */ |
//SYNCDELAY; |
|
/* enable autoout and autoin feature of the endpoints */ |
EP2FIFOCFG |= bmAUTOOUT; |
161,15 → 163,16
SYNCDELAY; |
|
/* set endpoint 2 fifo (out) programmable flag to "higher or equal 3" |
* we use the programmable flag as interrupt source to detect if data for the FPGA |
* is available and as GPIF flag to stop the flowstate, for this the flag has to change |
* one cycle before the FIFO is completly empty, else we transfer one word too much */ |
* we use the programmable flag as interrupt source to detect if data for the |
* FPGA is available and as GPIF flag to stop the flowstate, for this the |
* flag has to change one cycle before the FIFO is completly empty, else we |
* transfer one word too much */ |
EP2FIFOPFH = bmDECIS; |
EP2FIFOPFL = 3; |
EP2FIFOPFL = 1; |
SYNCDELAY; |
|
EP2GPIFFLGSEL = bmFLAG_PROGRAMMABLE; |
// EP2GPIFFLGSEL = bmFLAG_EMPTY; |
//EP2GPIFFLGSEL = bmFLAG_PROGRAMMABLE; |
EP2GPIFFLGSEL = bmFLAG_EMPTY; |
SYNCDELAY; |
EP6GPIFFLGSEL = bmFLAG_FULL; |
SYNCDELAY; |
212,7 → 215,6
to signal the firmware that the GPIF is done */ |
hook_fgv(FGV_GPIFWF,(unsigned short) isr_gpif_done); |
hook_fgv(FGV_EP2PF,(unsigned short) isr_endpoint_out_data); |
hook_fgv(FGV_EP2PF,(unsigned short) isr_endpoint_out_data); |
|
EP2FIFOIE = bmFIFO_PF; |
GPIFIE = bmGPIFWF; |
283,9 → 285,6
flGPIF = 0; /* unset all internal GPIF flags */ |
|
|
REVCTL = bmDYN_OUT | bmENH_PKT; /* restore the setting */ |
SYNCDELAY; |
|
#ifdef GECKO3MAIN |
//EP2FIFOCFG &= ~bmOEP; |
EP2FIFOCFG &= ~bmAUTOOUT; /* disable AutoOUT feature */ |
298,5 → 297,5
EA = 1; /* global interrupt enable */ |
|
|
print_info("gpif deactivated\n"); |
//print_info("gpif deactivated\n"); |
} |
/firmware/gpif-design/gecko3main_fifo_transfer.gpf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/firmware/gpif-design/gecko3main_gpif.c
24,8 → 24,8
// CTL 0 = RDYU CMOS |
// CTL 1 = WRU CMOS |
// CTL 2 = RDYU CMOS |
// CTL 3 = intern CMOS |
// CTL 4 = unused CMOS |
// CTL 3 = X2U_ex CMOS |
// CTL 4 = U2X_th CMOS |
// CTL 5 = unused CMOS |
|
// GPIF Rdy Inputs |
60,9 → 60,9
// RDYU 0 0 0 0 0 0 0 0 |
// WRU 0 0 0 0 0 0 0 0 |
// RDYU 0 1 1 1 1 1 1 0 |
// intern 0 0 0 0 0 0 0 0 |
// X2U_ex 0 0 0 0 0 0 0 0 |
// U2X_th 0 0 0 0 0 0 0 0 |
// unused 0 0 0 0 0 0 0 0 |
// unused 0 0 0 0 0 0 0 0 |
// |
// END DO NOT EDIT |
// DO NOT EDIT ... |
87,9 → 87,9
// RDYU 0 0 0 0 0 0 0 0 |
// WRU 0 1 1 1 1 1 1 0 |
// RDYU 0 0 0 1 1 1 1 0 |
// intern 0 0 0 0 0 0 0 0 |
// X2U_ex 0 0 0 0 0 0 0 0 |
// U2X_th 0 0 0 0 0 0 0 0 |
// unused 0 0 0 0 0 0 0 0 |
// unused 0 0 0 0 0 0 0 0 |
// |
// END DO NOT EDIT |
// DO NOT EDIT ... |
114,9 → 114,9
// RDYU 0 0 0 0 0 0 0 0 |
// WRU 0 0 0 0 0 0 0 0 |
// RDYU 0 0 1 1 1 0 0 0 |
// intern 0 1 1 1 1 0 0 0 |
// X2U_ex 0 1 1 1 1 0 0 0 |
// U2X_th 0 0 0 0 0 0 0 0 |
// unused 0 0 0 0 0 0 0 0 |
// unused 0 0 0 0 0 0 0 0 |
// |
// END DO NOT EDIT |
// DO NOT EDIT ... |
128,22 → 128,22
// |
// AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val |
// DataMode NO Data NO Data NO Data Activate Activate Activate NO Data |
// NextData SameData SameData SameData SameData SameData NextData SameData |
// NextData SameData SameData SameData SameData NextData NextData SameData |
// Int Trig No Int No Int No Int No Int No Int Trig Int No Int |
// IF/Wait IF Wait 1 IF IF IF IF IF |
// Term A WRX WRX RDYX FIFOFlag RDYX WRX |
// LFunc AND AND AND AND AND AND |
// Term B WRX WRX RDYX FIFOFlag RDYX WRX |
// Branch1 ThenIdle Then 2 Then 4 Then 4 ThenIdle ThenIdle |
// Branch0 Else 1 Else 3 Else 3 Else 5 ElseIdle ElseIdle |
// Re-Exec No No No Yes No No |
// IF/Wait IF Wait 1 IF Wait 1 IF IF IF |
// Term A WRX WRX FIFOFlag RDYX WRX |
// LFunc AND AND AND AND AND |
// Term B WRX WRX FIFOFlag RDYX WRX |
// Branch1 ThenIdle Then 2 Then 5 Then 5 ThenIdle |
// Branch0 Else 1 Else 3 Else 4 ElseIdle ElseIdle |
// Re-Exec No No Yes No No |
// Sngl/CRC Default Default Default Default Default Default Default |
// RDYU 0 0 0 0 0 0 0 0 |
// WRU 0 1 1 1 1 0 0 0 |
// RDYU 0 0 0 0 0 0 0 0 |
// intern 0 0 0 0 0 0 0 0 |
// X2U_ex 0 0 0 0 0 0 0 0 |
// U2X_th 0 0 0 0 0 0 0 0 |
// unused 0 0 0 0 0 0 0 0 |
// unused 0 0 0 0 0 0 0 0 |
// |
// END DO NOT EDIT |
|
174,10 → 174,10
/* Output*/ 0x00, 0x08, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, |
/* LFun */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, |
// Wave 3 |
/* LenBr */ 0x39, 0x01, 0x13, 0x23, 0xA5, 0x3F, 0x3F, 0x07, |
/* Opcode*/ 0x01, 0x00, 0x01, 0x03, 0x03, 0x17, 0x01, 0x00, |
/* LenBr */ 0x39, 0x01, 0x13, 0x01, 0xAC, 0x2F, 0x3F, 0x07, |
/* Opcode*/ 0x01, 0x00, 0x01, 0x02, 0x07, 0x17, 0x01, 0x00, |
/* Output*/ 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, |
/* LFun */ 0x00, 0x00, 0x00, 0x09, 0x36, 0x09, 0x00, 0x3F, |
/* LFun */ 0x00, 0x00, 0x00, 0x00, 0x36, 0x09, 0x00, 0x3F, |
}; |
// END DO NOT EDIT |
|
187,7 → 187,7
/* Wave 0 FlowStates */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
/* Wave 1 FlowStates */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
/* Wave 2 FlowStates */ 0x83,0x36,0x04,0x00,0x03,0x23,0x03,0x02,0x00, |
/* Wave 3 FlowStates */ 0x84,0x09,0x02,0x02,0x02,0x23,0x03,0x02,0x00, |
/* Wave 3 FlowStates */ 0x84,0x09,0x02,0x02,0x04,0x23,0x03,0x02,0x00, |
}; |
// END DO NOT EDIT |
|
/gecko3com.iic
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream