⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbs_upd985xx.cdl

📁 NEC的USB接口驱动
💻 CDL
字号:
# ====================================================================##      usbs_upd985xx.cdl##      USB device driver for the NEC uPD985xx family of processors.## ====================================================================#####ECOSGPLCOPYRIGHTBEGIN###### -------------------------------------------## This file is part of eCos, the Embedded Configurable Operating System.## Copyright (C) 2002 Bart Veer## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.#### eCos is free software; you can redistribute it and/or modify it under## the terms of the GNU General Public License as published by the Free## Software Foundation; either version 2 or (at your option) any later version.#### eCos is distributed in the hope that it will be useful, but WITHOUT ANY## WARRANTY; without even the implied warranty of MERCHANTABILITY or## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License## for more details.#### You should have received a copy of the GNU General Public License along## with eCos; if not, write to the Free Software Foundation, Inc.,## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.#### As a special exception, if other files instantiate templates or use macros## or inline functions from this file, or you compile this file and link it## with other works to produce a work based on this file, this file does not## by itself cause the resulting work to be covered by the GNU General Public## License. However the source code for this file must still be made available## in accordance with section (3) of the GNU General Public License.#### This exception does not invalidate any other reasons why a work based on## this file might be covered by the GNU General Public License.#### Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.## at http://sources.redhat.com/ecos/ecos-license/## -------------------------------------------#####ECOSGPLCOPYRIGHTEND##### ====================================================================######DESCRIPTIONBEGIN###### Author(s):      bartv# Original data:  bartv# Contributors:# Date:           2001-05-22######DESCRIPTIONEND##### ====================================================================cdl_package CYGPKG_DEVS_USB_UPD985XX {    display     "NEC uPD985xx USB Device Driver"    include_dir "cyg/io/usb"    parent      CYGPKG_USB    implements  CYGHWR_IO_USB_SLAVE    doc         ref/devs-usb-nec-upd985xx.html        # Make sure that we are running on the right hardware.    requires CYGPKG_HAL_MIPS    requires CYGPKG_HAL_MIPS_UPD985XX        description "        The NEC uPD985xx family of processors implements an        on-chip USB device controller, facilitating the use of this        processor in USB peripherals. This package provides a        suitable eCos device driver."    cdl_component CYGFUN_DEVS_USB_UPD985XX_EP0 {        display       "Support the control endpoint 0"        default_value CYGINT_IO_USB_SLAVE_CLIENTS        requires      CYGPKG_IO_USB CYGPKG_IO_USB_SLAVE        compile       usbs_upd985xx.c        compile       -library=libextras.a usbs_upd985xx_data.cxx        description "            Enable support for endpoint 0. If this support is disabled            then the entire USB port is unusable."            cdl_option CYGVAR_DEVS_USB_UPD985XX_EP0_DEVTAB_ENTRY {            display       "Provide a devtab entry for endpoint 0"            default_value CYGGLO_IO_USB_SLAVE_PROVIDE_DEVTAB_ENTRIES            requires      CYGPKG_IO            description "               If endpoint 0 will only be accessed via the low-level               USB-specific calls then there is no need for an entry               in the device table, saving some memory. If the               application intends to access the endpoint by means               of open and ioctl calls then a devtab entry is needed.            "        }	cdl_option CYGNUM_DEVS_USB_UPD985XX_EP0_PKTSIZE {	    display	  "Size of endpoint 0 control packets"	    flavor        data	    default_value 8	    legal_values  { 8 16 32 64 }	    description "                Control messages on endpoint 0 are split into packets of                8, 16, 32 or 64 bytes - these are the values permitted by the                USB specification. The same packet size is used for both                receives and transmits. This value must also be used for the                max_packet_size field of the device descriptor in the                application's USB enumeration data.                According to section 5.5.5 of the USB specification, if a new                control message is received before the previous transaction                has completed then the previous transaction must be aborted.                If that transaction involved transferring data to the host                then there is a problem: that data may still be queued for                transmission and the NEC USB device appears to provide no way                of aborting that transmit. The problem is unlikely to arise                with normal usage, but may be detected by compliance                testsuites. Increasing the packet size to its maximum value                of 64 reduces the probability of failure.            "	}		cdl_option CYGNUM_DEVS_USB_UPD985XX_EP0_TXBUFSIZE {	    display       "Size of statically-allocated endpoint 0 transmit buffer"	    flavor        data	    default_value 256	    requires      { CYGNUM_DEVS_USB_UPD985XX_EP0_TXBUFSIZE >= CYGNUM_DEVS_USB_UPD985XX_EP0_PKTSIZE }	    description "	        The implementation of the support for endpoint 0 uses	        a single static buffer to hold the response to the	        current control message. Typically this buffer can be	        fairly small since replies to control messages tend to	        be small: typically some tens of bytes for the enumeration	        data, perhaps a bit more for unicode-encoded string	        descriptors. However if some application-specific protocol	        depends on larger control messages then this buffer	        size may need to be increased.	    "	}	cdl_option CYGNUM_DEVS_USB_UPD985XX_EP0_RXBUFSIZE {	    display       "Size of statically-allocated endpoint 0 transmit buffer"	    flavor        data	    default_value 64	    requires      { CYGNUM_DEVS_USB_UPD985XX_EP0_RXBUFSIZE >= CYGNUM_DEVS_USB_UPD985XX_EP0_PKTSIZE }	    description "	        The implementation of the support for endpoint 0 uses	        a single static buffer to hold incoming control messages.	        Typically this buffer can be small: standard control messages	        involve an initial eight-byte header, sometimes followed by	        a small amount of additional data. However if some	        application-specific protocol depends on larger control	        messages then this buffer size may need to be increased.	    "	}    }        cdl_component CYGPKG_DEVS_USB_UPD985XX_EP3 {        display       "Support endpoint 3, used for slave->host IN bulk transfers"        implements    CYGHWR_IO_USB_SLAVE_IN_ENDPOINTS        requires      CYGFUN_DEVS_USB_UPD985XX_EP0        default_value 0        description "            In the uPD985xx USB implementation endpoint 3 can only be            used for slave->host IN bulk transfers. If the intended application            only involves host->slave transfers then this endpoint is	    not relevant.	    By default this endpoint is disabled: according to NEC erratum	    U3 there may be problems when doing transfers of 192 bytes or	    greater. Instead the interrupt endpoint 5 is used, with	    software emulation of the bulk protocol. If the application	    involves only transfers of less than 192 bytes then endpoint	    3 can be enabled.	"        cdl_option CYGVAR_DEVS_USB_UPD985XX_EP3_DEVTAB_ENTRY {            display       "Provide a devtab entry for endpoint 3"            default_value CYGGLO_IO_USB_SLAVE_PROVIDE_DEVTAB_ENTRIES            requires      CYGPKG_IO             description "                If endpoint 3 will only be accessed via the low-level                USB-specific calls then there is no need for an entry                in the device table, saving some memory. If the                application intends to access the endpoint by means                of open and read calls then a devtab entry is needed.            "        }    }    cdl_component CYGPKG_DEVS_USB_UPD985XX_EP4 {        display       "Support endpoint 4, used for slave->host OUT bulk transfers"        implements    CYGHWR_IO_USB_SLAVE_OUT_ENDPOINTS        requires      CYGFUN_DEVS_USB_UPD985XX_EP0        default_value CYGFUN_DEVS_USB_UPD985XX_EP0        description "            In the uPD985xx USB implementation endpoint 4 can only be            used for host->slave OUT bulk transfers. If the intended application            only involves slave->host transfers then the support for            endpoint 4 can be disabled. Note that this does not affect            control messages which always go via endpoint 0."                cdl_option CYGVAR_DEVS_USB_UPD985XX_EP4_DEVTAB_ENTRY {            display       "Provide a devtab entry for endpoint 4"            default_value CYGGLO_IO_USB_SLAVE_PROVIDE_DEVTAB_ENTRIES            requires      CYGPKG_IO            description "                If endpoint 4 will only be accessed via the low-level                USB-specific calls then there is no need for an entry                in the device table, saving some memory. If the                application intends to access the endpoint by means                of open and write calls then a devtab entry is needed."        }    }    cdl_component CYGPKG_DEVS_USB_UPD985XX_EP5 {        display       "Support endpoint 5, used for slave->host IN transfers"        implements    CYGHWR_IO_USB_SLAVE_IN_ENDPOINTS        requires      CYGFUN_DEVS_USB_UPD985XX_EP0        default_value CYGFUN_DEVS_USB_UPD985XX_EP0        description "            In the uPD985xx USB implementation endpoint 5 can only be            used for slave->host communication. This endpoint is	    intended primarily for interrupt transfers, but can be	    used for bulk transfers given a small amount of additional	    software support."	cdl_option CYGIMP_DEVS_USB_UPD985XX_EP5_BULK {	    display       "Implement bulk transfers rather than interrupt transfers"	    default_value 1	    description "	        Endpoint 5 is normally used for interrupt transfers, which	        are limited to 64 bytes. However with a little bit of software	        support it is possible to implement bulk transfers instead.	        With some revisions of the silicon this provides a workaround	        for problems with endpoint 3 - NEC erratum U3 should be consulted	        for additional information."	}                cdl_option CYGVAR_DEVS_USB_UPD985XX_EP5_DEVTAB_ENTRY {            display       "Provide a devtab entry for endpoint 5"            default_value CYGGLO_IO_USB_SLAVE_PROVIDE_DEVTAB_ENTRIES            requires      CYGPKG_IO            description "                If endpoint 5 will only be accessed via the low-level                USB-specific calls then there is no need for an entry                in the device table, saving some memory. If the                application intends to access the endpoint by means                of open and write calls then a devtab entry is needed.            "        }    }    cdl_option CYGDAT_DEVS_USB_UPD985XX_DEVTAB_BASENAME {        display       "Base name for devtab entries"        flavor        data        active_if     { CYGVAR_DEVS_USB_UPD985XX_EP0_DEVTAB_ENTRY ||                        CYGVAR_DEVS_USB_UPD985XX_EP3_DEVTAB_ENTRY ||                        CYGVAR_DEVS_USB_UPD985XX_EP4_DEVTAB_ENTRY        }        default_value { "\"/dev/usbs\"" }        description "            If the uPD985xx USB device driver package provides devtab            entries for any of the endpoints then this option gives            control over the names of these entries. By default the            endpoints will be called \"/dev/usbs0c\", \"/dev/usbs3w\"            and \"/dev/usbs4r\" (assuming all three endpoints are            enabled. The common part \"/dev/usbs\" is determined            by this configuration option. It may be necessary to            change this if there are multiple USB slave-side            devices on the target hardware to prevent a name clash.        "    }        cdl_option CYGIMP_DEVS_USB_UPD985XX_IBUS_WRITE_LIMIT {	display       "Work around potential hardware problem with IBUS writes"	default_value 1	description "	    With some revisions of the silicon there may be problems if	    a device driver performs multiple writes to the IBUS in	    quick succession. By default this driver avoids such problems,	    at the cost of some cpu cycles and a small amount of extra code.	    NEC erratum S1 should be consulted for more details."    }    cdl_option CYGIMP_DEVS_USB_UPD985XX_SERIALIZE_TRANSMITS {	display       "Work around potential hardware problem with concurrent transmits"	default_value 1	description "	    With some revisions of the silicon there may be problems if	    the device driver is asked to perform concurrent slave->host	    transmissions on different endpoints, for example sending            a reply to a control message while there is a bulk transfer	    in progress. This option enables a workaround for the	    problem by ensuring that only one transmit operation is in	    progress at any one time. NEC errata U3 and U4 should be	    consulted for more details."    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -