remaining changes after half-failing commit

git-svn-id: https://svn.openpcd.org:2342/trunk@36 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
This commit is contained in:
(no author) 2006-07-24 18:53:34 +00:00
parent caf5000333
commit 500fb4be8a
5 changed files with 57 additions and 15 deletions

View File

@ -65,6 +65,22 @@ EP3 interrupt
3.1 dumb interface
struct usb_pcd_out_hdr {
u_int8_t cmd; /* command */
u_int8_t flags;
u_int8_t reg; /* register */
u_int8_t res;
u_int16_t len;
u_int8_t data[0];
} __attribute__ ((packed));
#define USB_PCD_CMD_WRITE_REG 0x01
#define USB_PCD_CMD_WRITE_FIFO 0x02
#define USB_PCD_CMD_WRITE_VFIFO 0x03
#define USB_PCD_CMD_READ_REG 0x11
#define USB_PCD_CMD_READ_FIFO 0x12
#define USB_PCD_CMD_WRITE_VFIFO 0x13
TBD
3.2 Intelligent interface
@ -102,7 +118,7 @@ is used to search for a free buffer using which the UDC RX DMA can be refilled.
4.1.1 Performing SPI Register Read
[ UDC has configured RX dma for reception of usb packets ]
[ UDC has configured RX FIFO for reception of usb packets ]
- UDC issues interrupt that USB endpoint receive has completed (FIFO)
- UDC driver defragments multiple packets into one transfer [optional]
- UDC driver submits another buffer for DMA reception

27
openpcd/firmware/TODO Normal file
View File

@ -0,0 +1,27 @@
SPI:
- use PDC DMA for SPI transfers
- use real SPI clock divisor (4.8MHz) rather than current 320kHz clock
RC632:
- Fix locking between 'atomic' ops like set/clear bit and RC632 IRQ
- Implement VFIFO handling
USB:
- don't busy-wait for EP2/EP3 transfers but rather use TX completion IRQ
- Implement VFIFO handling
- Add DFU descriptor to host
DFU:
- implement DFU protocol for memory and flash
- add capability to copy and execute DFU from RAM
Generic:
-
Later, for PICCsim:
- Implement SSC code for sampling subcarrier
- Implement SSC code for generating subcarrier
- Implement Manchester coding
Way Later, for librfid:
- Implement parts (or all of) 14443 in firmware as alternative configuration

View File

@ -1,14 +0,0 @@
#ifndef _TYPES_H
#define _TYPES_H
typedef unsigned char u_int8_t;
typedef unsigned short u_int16_t;
typedef unsigned int u_int32_t;
typedef unsigned long long u_int64_t;
typedef signed char int8_t;
typedef signed short int16_t;
typedef signed int int32_t;
typedef signed long long int64_t;
#endif

View File

@ -0,0 +1,11 @@
#define EFCS_CMD_WRITE_PAGE 0x01
#define EFCS_CMD_SET_LOCK_BIT 0x02
#define EFCS_CMD_WRITE_PAGE_LOCK 0x03
#define EFCS_CMD_CLEAR_LOCK 0x04
#define EFCS_CMD_ERASE_ALL 0x08
#define EFCS_CMD_SET_NVM_BIT 0x0b
#define EFCS_CMD_CLEAR_NVM_BIT 0x0d
#define EFCS_CMD_SET_SECURITY_BIT 0x0f

View File

@ -285,5 +285,7 @@ int main(int argc, char **argv)
}
}
sleep(1);
exit(0);
}