diff --git a/arch/arm/src/kinetis/kinetis_usbdev.c b/arch/arm/src/kinetis/kinetis_usbdev.c index 75fcdb2cc7..287f0f3abd 100644 --- a/arch/arm/src/kinetis/kinetis_usbdev.c +++ b/arch/arm/src/kinetis/kinetis_usbdev.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/src/kinetis/kinetis_usbdev.c * - * Copyright (C) 2011-2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2011-2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * References: @@ -65,8 +65,6 @@ #include #include "up_arch.h" -//#include "pic32mx.h" -//#include "pic32mx-usbotg.h" #include "kinetis.h" #include "kinetis_usbotg.h" #include "kinetis_sim.h" @@ -77,9 +75,8 @@ /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ -/* Configuration ************************************************************/ -//#define CONFIG_USBOTG +/* Configuration ************************************************************/ #ifndef CONFIG_USBDEV_EP0_MAXSIZE # define CONFIG_USBDEV_EP0_MAXSIZE 64 @@ -94,9 +91,6 @@ # undef CONFIG_KHCI_USBDEV_BDTDEBUG #endif -//#define CONFIG_KHCI_USBDEV_REGDEBUG -//#define CONFIG_KHCI_USBDEV_BDTDEBUG - /* Disable this logic because it is buggy. It works most of the time but * has some lurking issues that keep this higher performance solution from * being usable. @@ -110,8 +104,6 @@ /* Interrupts ***************************************************************/ /* Initial interrupt sets */ -//#define CONFIG_USB_SOFINTS - #ifdef CONFIG_USB_SOFINTS # define USB_SOF_INTERRUPT USB_INT_SOFTOK #else @@ -122,29 +114,31 @@ USB_ERRSTAT_CRC16 | USB_ERRSTAT_DFN8 | USB_ERRSTAT_BTOERR | \ USB_ERRSTAT_BTSERR) -#define NORMAL_INTERRUPTS (USB_INT_USBRST | USB_INT_ERROR | USB_SOF_INTERRUPT | \ +#define NORMAL_INTERRUPTS (USB_INT_USBRST | USB_INT_ERROR | USB_SOF_INTERRUPT | \ USB_INT_TOKDNE | USB_INT_SLEEP | USB_INT_STALL) /* Endpoints ****************************************************************/ -#define USB_STAT_ENDPT(n) ((n) << USB_STAT_ENDP_SHIFT) /* Endpoint n, n=0..15 */ +#define USB_STAT_ENDPT(n) ((n) << USB_STAT_ENDP_SHIFT) /* Endpoint n, n=0..15 */ -#define USB_STAT_ODD_ODD USB_STAT_ODD /* The last transaction was to the ODD BD bank */ -#define USB_STAT_ODD_EVEN 0 /* The last transaction was to the EVEN BD bank */ +#define USB_STAT_ODD_ODD USB_STAT_ODD /* The last transaction was to the ODD BD bank */ +#define USB_STAT_ODD_EVEN 0 /* The last transaction was to the EVEN BD bank */ -#define USB_STAT_TX_IN USB_STAT_TX /* Last transaction was a transmit transfer (TX) */ -#define USB_STAT_TX_OUT 0 /* Last transaction was a receive transfer (RX) */ +#define USB_STAT_TX_IN USB_STAT_TX /* Last transaction was a transmit transfer (TX) */ +#define USB_STAT_TX_OUT 0 /* Last transaction was a receive transfer (RX) */ -#define KHCI_NENDPOINTS (16) +#define KHCI_NENDPOINTS (16) #define EP0 (0) -#define KHCI_ENDP_BIT(ep) (1 << (ep)) -#define KHCI_ENDP_ALLSET 0xffff +#define KHCI_ENDP_BIT(ep) (1 << (ep)) +#define KHCI_ENDP_ALLSET 0xffff + +#define SIM_CLKDIV2_USBDIV(n) (uint32_t)(((n) & 0x07) << 1) /* BDT Table Indexing. The BDT is addressed in the hardware as follows: * * Bits 9-31: These come the BDT address bits written into the BDTP3, - * BDTP2, and BDTP1 registers + * BDTP2, and BDTP1 registers * Bits 5-8: The endpoint number * Bit 4: Direction: * 1 = Transmit: SETUP/OUT for host, IN for function @@ -170,32 +164,32 @@ /* Packet sizes. We use a fixed 64 max packet size for all endpoint types */ -#define KHCI_MAXPACKET_SHIFT (6) -#define KHCI_MAXPACKET_SIZE (1 << (KHCI_MAXPACKET_SHIFT)) +#define KHCI_MAXPACKET_SHIFT (6) +#define KHCI_MAXPACKET_SIZE (1 << (KHCI_MAXPACKET_SHIFT)) -#define KHCI_EP0MAXPACKET KHCI_MAXPACKET_SIZE +#define KHCI_EP0MAXPACKET KHCI_MAXPACKET_SIZE /* Endpoint register initialization parameters */ -#define KHCI_EP_CONTROL (USB_ENDPT_EPHSHK|USB_ENDPT_EPTXEN|USB_ENDPT_EPRXEN) -#define KHCI_EP_BULKIN (USB_ENDPT_EPTXEN|USB_ENDPT_EPCTLDIS|USB_ENDPT_EPHSHK) -#define KHCI_EP_BULKOUT (USB_ENDPT_EPRXEN|USB_ENDPT_EPCTLDIS|USB_ENDPT_EPHSHK) -#define KHCI_EP_INTIN (USB_ENDPT_EPTXEN|USB_ENDPT_EPCTLDIS|USB_ENDPT_EPHSHK) -#define KHCI_EP_INTOUT (USB_ENDPT_EPRXEN|USB_ENDPT_EPCTLDIS|USB_ENDPT_EPHSHK) -#define KHCI_EP_ISOCIN (USB_ENDPT_EPTXEN|USB_ENDPT_EPCTLDIS) -#define KHCI_EP_ISOCOUT (USB_ENDPT_EPRXEN|USB_ENDPT_EPCTLDIS) +#define KHCI_EP_CONTROL (USB_ENDPT_EPHSHK | USB_ENDPT_EPTXEN | USB_ENDPT_EPRXEN) +#define KHCI_EP_BULKIN (USB_ENDPT_EPTXEN | USB_ENDPT_EPCTLDIS | USB_ENDPT_EPHSHK) +#define KHCI_EP_BULKOUT (USB_ENDPT_EPRXEN | USB_ENDPT_EPCTLDIS | USB_ENDPT_EPHSHK) +#define KHCI_EP_INTIN (USB_ENDPT_EPTXEN | USB_ENDPT_EPCTLDIS | USB_ENDPT_EPHSHK) +#define KHCI_EP_INTOUT (USB_ENDPT_EPRXEN | USB_ENDPT_EPCTLDIS | USB_ENDPT_EPHSHK) +#define KHCI_EP_ISOCIN (USB_ENDPT_EPTXEN | USB_ENDPT_EPCTLDIS) +#define KHCI_EP_ISOCOUT (USB_ENDPT_EPRXEN | USB_ENDPT_EPCTLDIS) /* USB-related masks */ -#define REQRECIPIENT_MASK (USB_REQ_TYPE_MASK | USB_REQ_RECIPIENT_MASK) +#define REQRECIPIENT_MASK (USB_REQ_TYPE_MASK | USB_REQ_RECIPIENT_MASK) /* Request queue operations *************************************************/ -#define khci_rqempty(q) ((q)->head == NULL) -#define khci_rqhead(q) ((q)->head) -#define khci_rqtail(q) ((q)->tail) +#define khci_rqempty(q) ((q)->head == NULL) +#define khci_rqhead(q) ((q)->head) +#define khci_rqtail(q) ((q)->tail) -#define RESTART_DELAY (150 * CLOCKS_PER_SEC / 1000) +#define RESTART_DELAY (150 * CLOCKS_PER_SEC / 1000) /* USB trace ****************************************************************/ /* Trace error codes */ @@ -266,47 +260,45 @@ #define KHCI_TRACEINTID_SUSPENDED 0x0023 #define KHCI_TRACEINTID_WAITRESET 0x0024 - - #ifdef CONFIG_USBDEV_TRACE_STRINGS const struct trace_msg_t g_usb_trace_strings_intdecode[] = { - TRACE_STR(KHCI_TRACEINTID_CLEARFEATURE ), //0001 - TRACE_STR(KHCI_TRACEINTID_DEVGETSTATUS ), //0002 - TRACE_STR(KHCI_TRACEINTID_DISPATCH ), //0003 - TRACE_STR(KHCI_TRACEINTID_EP0IN ), //0004 - TRACE_STR(KHCI_TRACEINTID_EP0INDONE ), //0005 - TRACE_STR(KHCI_TRACEINTID_EP0OUTDONE ), //0006 - TRACE_STR(KHCI_TRACEINTID_EP0SETUPDONE ), //0007 - TRACE_STR(KHCI_TRACEINTID_EP0SETUPSETADDRESS ), //0008 - TRACE_STR(KHCI_TRACEINTID_EP0ADDRESSSET ), //0009 - TRACE_STR(KHCI_TRACEINTID_EPGETSTATUS ), //000a - TRACE_STR(KHCI_TRACEINTID_EPINDONE ), //000b - TRACE_STR(KHCI_TRACEINTID_EPINQEMPTY ), //000c - TRACE_STR(KHCI_TRACEINTID_EPOUTDONE ), //000d - TRACE_STR(KHCI_TRACEINTID_EPOUTQEMPTY ), //000e - TRACE_STR(KHCI_TRACEINTID_SOF ), //000f - TRACE_STR(KHCI_TRACEINTID_GETCONFIG ), //0010 - TRACE_STR(KHCI_TRACEINTID_GETSETDESC ), //0011 - TRACE_STR(KHCI_TRACEINTID_GETSETIF ), //0012 - TRACE_STR(KHCI_TRACEINTID_GETSTATUS ), //0013 - TRACE_STR(KHCI_TRACEINTID_IFGETSTATUS ), //0014 - TRACE_STR(KHCI_TRACEINTID_TRNC ), //0015 - TRACE_STR(KHCI_TRACEINTID_TRNCS ), //0016 - TRACE_STR(KHCI_TRACEINTID_INTERRUPT ), //0017 - TRACE_STR(KHCI_TRACEINTID_NOSTDREQ ), //0018 - TRACE_STR(KHCI_TRACEINTID_RESET ), //0019 - TRACE_STR(KHCI_TRACEINTID_SETCONFIG ), //001a - TRACE_STR(KHCI_TRACEINTID_SETFEATURE ), //001b - TRACE_STR(KHCI_TRACEINTID_IDLE ), //001c - TRACE_STR(KHCI_TRACEINTID_SYNCHFRAME ), //001d - TRACE_STR(KHCI_TRACEINTID_WKUP ), //001e - TRACE_STR(KHCI_TRACEINTID_T1MSEC ), //001f - TRACE_STR(KHCI_TRACEINTID_OTGID ), //0020 - TRACE_STR(KHCI_TRACEINTID_STALL ), //0021 - TRACE_STR(KHCI_TRACEINTID_UERR ), //0022 - TRACE_STR(KHCI_TRACEINTID_SUSPENDED ), //0023 - TRACE_STR(KHCI_TRACEINTID_WAITRESET ), //0024 + TRACE_STR(KHCI_TRACEINTID_CLEARFEATURE ), /* 0x0001 */ + TRACE_STR(KHCI_TRACEINTID_DEVGETSTATUS ), /* 0x0002 */ + TRACE_STR(KHCI_TRACEINTID_DISPATCH ), /* 0x0003 */ + TRACE_STR(KHCI_TRACEINTID_EP0IN ), /* 0x0004 */ + TRACE_STR(KHCI_TRACEINTID_EP0INDONE ), /* 0x0005 */ + TRACE_STR(KHCI_TRACEINTID_EP0OUTDONE ), /* 0x0006 */ + TRACE_STR(KHCI_TRACEINTID_EP0SETUPDONE ), /* 0x0007 */ + TRACE_STR(KHCI_TRACEINTID_EP0SETUPSETADDRESS ), /* 0x0008 */ + TRACE_STR(KHCI_TRACEINTID_EP0ADDRESSSET ), /* 0x0009 */ + TRACE_STR(KHCI_TRACEINTID_EPGETSTATUS ), /* 0x000a */ + TRACE_STR(KHCI_TRACEINTID_EPINDONE ), /* 0x000b */ + TRACE_STR(KHCI_TRACEINTID_EPINQEMPTY ), /* 0x000c */ + TRACE_STR(KHCI_TRACEINTID_EPOUTDONE ), /* 0x000d */ + TRACE_STR(KHCI_TRACEINTID_EPOUTQEMPTY ), /* 0x000e */ + TRACE_STR(KHCI_TRACEINTID_SOF ), /* 0x000f */ + TRACE_STR(KHCI_TRACEINTID_GETCONFIG ), /* 0x0010 */ + TRACE_STR(KHCI_TRACEINTID_GETSETDESC ), /* 0x0011 */ + TRACE_STR(KHCI_TRACEINTID_GETSETIF ), /* 0x0012 */ + TRACE_STR(KHCI_TRACEINTID_GETSTATUS ), /* 0x0013 */ + TRACE_STR(KHCI_TRACEINTID_IFGETSTATUS ), /* 0x0014 */ + TRACE_STR(KHCI_TRACEINTID_TRNC ), /* 0x0015 */ + TRACE_STR(KHCI_TRACEINTID_TRNCS ), /* 0x0016 */ + TRACE_STR(KHCI_TRACEINTID_INTERRUPT ), /* 0x0017 */ + TRACE_STR(KHCI_TRACEINTID_NOSTDREQ ), /* 0x0018 */ + TRACE_STR(KHCI_TRACEINTID_RESET ), /* 0x0019 */ + TRACE_STR(KHCI_TRACEINTID_SETCONFIG ), /* 0x001a */ + TRACE_STR(KHCI_TRACEINTID_SETFEATURE ), /* 0x001b */ + TRACE_STR(KHCI_TRACEINTID_IDLE ), /* 0x001c */ + TRACE_STR(KHCI_TRACEINTID_SYNCHFRAME ), /* 0x001d */ + TRACE_STR(KHCI_TRACEINTID_WKUP ), /* 0x001e */ + TRACE_STR(KHCI_TRACEINTID_T1MSEC ), /* 0x001f */ + TRACE_STR(KHCI_TRACEINTID_OTGID ), /* 0x0020 */ + TRACE_STR(KHCI_TRACEINTID_STALL ), /* 0x0021 */ + TRACE_STR(KHCI_TRACEINTID_UERR ), /* 0x0022 */ + TRACE_STR(KHCI_TRACEINTID_SUSPENDED ), /* 0x0023 */ + TRACE_STR(KHCI_TRACEINTID_WAITRESET ), /* 0x0024 */ TRACE_STR_END }; #endif @@ -314,32 +306,32 @@ const struct trace_msg_t g_usb_trace_strings_intdecode[] = #ifdef CONFIG_USBDEV_TRACE_STRINGS const struct trace_msg_t g_usb_trace_strings_deverror[] = { - TRACE_STR(KHCI_TRACEERR_ALLOCFAIL ), //0001 - TRACE_STR(KHCI_TRACEERR_BADCLEARFEATURE ), //0002 - TRACE_STR(KHCI_TRACEERR_BADDEVGETSTATUS ), //0003 - TRACE_STR(KHCI_TRACEERR_BADEPGETSTATUS ), //0004 - TRACE_STR(KHCI_TRACEERR_BADEPNO ), //0005 - TRACE_STR(KHCI_TRACEERR_BADEPTYPE ), //0006 - TRACE_STR(KHCI_TRACEERR_BADGETCONFIG ), //0007 - TRACE_STR(KHCI_TRACEERR_BADGETSETDESC ), //0008 - TRACE_STR(KHCI_TRACEERR_BADGETSTATUS ), //0009 - TRACE_STR(KHCI_TRACEERR_BADSETADDRESS ), //000a - TRACE_STR(KHCI_TRACEERR_BADSETCONFIG ), //000b - TRACE_STR(KHCI_TRACEERR_BADSETFEATURE ), //000c - TRACE_STR(KHCI_TRACEERR_BINDFAILED ), //000d - TRACE_STR(KHCI_TRACEERR_DISPATCHSTALL ), //000e - TRACE_STR(KHCI_TRACEERR_DRIVER ), //000f - TRACE_STR(KHCI_TRACEERR_DRIVERREGISTERED ), //0010 - TRACE_STR(KHCI_TRACEERR_EP0SETUPSTALLED ), //0011 - TRACE_STR(KHCI_TRACEERR_EPDISABLED ), //0012 - TRACE_STR(KHCI_TRACEERR_EPOUTNULLPACKET ), //0013 - TRACE_STR(KHCI_TRACEERR_EPRESERVE ), //0014 - TRACE_STR(KHCI_TRACEERR_INVALIDCTRLREQ ), //0015 - TRACE_STR(KHCI_TRACEERR_INVALIDPARMS ), //0016 - TRACE_STR(KHCI_TRACEERR_IRQREGISTRATION ), //0017 - TRACE_STR(KHCI_TRACEERR_NOTCONFIGURED ), //0018 - TRACE_STR(KHCI_TRACEERR_REQABORTED ), //0019 - TRACE_STR(KHCI_TRACEERR_INVALIDSTATE ), //001a + TRACE_STR(KHCI_TRACEERR_ALLOCFAIL ), /* 0x0001 */ + TRACE_STR(KHCI_TRACEERR_BADCLEARFEATURE ), /* 0x0002 */ + TRACE_STR(KHCI_TRACEERR_BADDEVGETSTATUS ), /* 0x0003 */ + TRACE_STR(KHCI_TRACEERR_BADEPGETSTATUS ), /* 0x0004 */ + TRACE_STR(KHCI_TRACEERR_BADEPNO ), /* 0x0005 */ + TRACE_STR(KHCI_TRACEERR_BADEPTYPE ), /* 0x0006 */ + TRACE_STR(KHCI_TRACEERR_BADGETCONFIG ), /* 0x0007 */ + TRACE_STR(KHCI_TRACEERR_BADGETSETDESC ), /* 0x0008 */ + TRACE_STR(KHCI_TRACEERR_BADGETSTATUS ), /* 0x0009 */ + TRACE_STR(KHCI_TRACEERR_BADSETADDRESS ), /* 0x000a */ + TRACE_STR(KHCI_TRACEERR_BADSETCONFIG ), /* 0x000b */ + TRACE_STR(KHCI_TRACEERR_BADSETFEATURE ), /* 0x000c */ + TRACE_STR(KHCI_TRACEERR_BINDFAILED ), /* 0x000d */ + TRACE_STR(KHCI_TRACEERR_DISPATCHSTALL ), /* 0x000e */ + TRACE_STR(KHCI_TRACEERR_DRIVER ), /* 0x000f */ + TRACE_STR(KHCI_TRACEERR_DRIVERREGISTERED ), /* 0x0010 */ + TRACE_STR(KHCI_TRACEERR_EP0SETUPSTALLED ), /* 0x0011 */ + TRACE_STR(KHCI_TRACEERR_EPDISABLED ), /* 0x0012 */ + TRACE_STR(KHCI_TRACEERR_EPOUTNULLPACKET ), /* 0x0013 */ + TRACE_STR(KHCI_TRACEERR_EPRESERVE ), /* 0x0014 */ + TRACE_STR(KHCI_TRACEERR_INVALIDCTRLREQ ), /* 0x0015 */ + TRACE_STR(KHCI_TRACEERR_INVALIDPARMS ), /* 0x0016 */ + TRACE_STR(KHCI_TRACEERR_IRQREGISTRATION ), /* 0x0017 */ + TRACE_STR(KHCI_TRACEERR_NOTCONFIGURED ), /* 0x0018 */ + TRACE_STR(KHCI_TRACEERR_REQABORTED ), /* 0x0019 */ + TRACE_STR(KHCI_TRACEERR_INVALIDSTATE ), /* 0x001a */ TRACE_STR_END }; #endif @@ -451,21 +443,21 @@ union wb_u struct khci_req_s { - struct usbdev_req_s req; /* Standard USB request */ + struct usbdev_req_s req; /* Standard USB request */ #ifdef CONFIG_USBDEV_NOWRITEAHEAD - uint16_t inflight[1]; /* The number of bytes "in-flight" */ + uint16_t inflight[1]; /* The number of bytes "in-flight" */ #else - uint16_t inflight[2]; /* The number of bytes "in-flight" */ + uint16_t inflight[2]; /* The number of bytes "in-flight" */ #endif - struct khci_req_s *flink; /* Supports a singly linked list */ + struct khci_req_s *flink; /* Supports a singly linked list */ }; /* This structure represents the 'head' of a singly linked list of requests */ struct khci_queue_s { - struct khci_req_s *head; /* Head of the request queue */ - struct khci_req_s *tail; /* Tail of the request queue */ + struct khci_req_s *head; /* Head of the request queue */ + struct khci_req_s *tail; /* Tail of the request queue */ }; /* This is the internal representation of an endpoint */ @@ -477,18 +469,18 @@ struct khci_ep_s * to struct khci_ep_s. */ - struct usbdev_ep_s ep; /* Standard endpoint structure */ + struct usbdev_ep_s ep; /* Standard endpoint structure */ /* KHCI-specific fields */ - struct khci_usbdev_s *dev; /* Reference to private driver data */ - struct khci_queue_s pend; /* List of pending (inactive) requests for this endpoint */ - struct khci_queue_s active; /* List of active requests for this endpoint */ - uint8_t stalled:1; /* true: Endpoint is stalled */ - uint8_t halted:1; /* true: Endpoint feature halted */ - uint8_t txnullpkt:1; /* Null packet needed at end of TX transfer */ - uint8_t txdata1:1; /* Data0/1 of next TX transfer */ - uint8_t rxdata1:1; /* Data0/1 of next RX transfer */ + struct khci_usbdev_s *dev; /* Reference to private driver data */ + struct khci_queue_s pend; /* List of pending (inactive) requests for this endpoint */ + struct khci_queue_s active; /* List of active requests for this endpoint */ + uint8_t stalled:1; /* true: Endpoint is stalled */ + uint8_t halted:1; /* true: Endpoint feature halted */ + uint8_t txnullpkt:1; /* Null packet needed at end of TX transfer */ + uint8_t txdata1:1; /* Data0/1 of next TX transfer */ + uint8_t rxdata1:1; /* Data0/1 of next RX transfer */ volatile struct usbotg_bdtentry_s *bdtin; /* BDT entry for the IN transaction */ volatile struct usbotg_bdtentry_s *bdtout; /* BDT entry for the OUT transaction */ }; @@ -508,21 +500,21 @@ struct khci_usbdev_s /* KHCI-specific fields */ - struct usb_ctrlreq_s ctrl; /* Last EP0 request */ - uint8_t devstate; /* Driver state (see enum khci_devstate_e) */ - uint8_t ctrlstate; /* Control EP state (see enum khci_ctrlstate_e) */ - uint8_t selfpowered:1; /* 1: Device is self powered */ - uint8_t rwakeup:1; /* 1: Device supports remote wakeup */ - uint8_t attached:1; /* Device is attached to the host */ - uint8_t ep0done:1; /* EP0 OUT already prepared */ - uint8_t rxbusy:1; /* EP0 OUT data transfer in progress */ - uint16_t epavail; /* Bitset of available endpoints */ - uint16_t epstalled; /* Bitset of stalled endpoints */ - WDOG_ID wdog; /* Supports the restart delay */ + struct usb_ctrlreq_s ctrl; /* Last EP0 request */ + uint8_t devstate; /* Driver state (see enum khci_devstate_e) */ + uint8_t ctrlstate; /* Control EP state (see enum khci_ctrlstate_e) */ + uint8_t selfpowered:1; /* 1: Device is self powered */ + uint8_t rwakeup:1; /* 1: Device supports remote wakeup */ + uint8_t attached:1; /* Device is attached to the host */ + uint8_t ep0done:1; /* EP0 OUT already prepared */ + uint8_t rxbusy:1; /* EP0 OUT data transfer in progress */ + uint16_t epavail; /* Bitset of available endpoints */ + uint16_t epstalled; /* Bitset of stalled endpoints */ + WDOG_ID wdog; /* Supports the restart delay */ /* The endpoint list */ - struct khci_ep_s eplist[KHCI_NENDPOINTS]; + struct khci_ep_s eplist[KHCI_NENDPOINTS]; }; /**************************************************************************** @@ -548,7 +540,7 @@ static struct khci_req_s *khci_remlast(struct khci_queue_s *queue); static void khci_addlast(struct khci_queue_s *queue, struct khci_req_s *req); static void khci_addfirst(struct khci_queue_s *queue, - struct khci_req_s *req); + struct khci_req_s *req); /* Request Helpers **********************************************************/ @@ -601,7 +593,7 @@ static inline struct khci_ep_s * khci_epreserve(struct khci_usbdev_s *priv, uint8_t epset); static inline void khci_epunreserve(struct khci_usbdev_s *priv, - struct khci_ep_s *privep); + struct khci_ep_s *privep); static inline bool khci_epreserved(struct khci_usbdev_s *priv, int epno); static void khci_ep0configure(struct khci_usbdev_s *priv); @@ -689,10 +681,6 @@ static const struct usbdev_ops_s g_devops = static volatile struct usbotg_bdtentry_s g_bdt[4*KHCI_NENDPOINTS] __attribute__ ((aligned(512))); -/**************************************************************************** - * Public Data - ****************************************************************************/ - /**************************************************************************** * Private Private Functions ****************************************************************************/ @@ -700,7 +688,8 @@ static volatile struct usbotg_bdtentry_s g_bdt[4*KHCI_NENDPOINTS] /**************************************************************************** * Register Operations ****************************************************************************/ -/**************************************************************************** + + /**************************************************************************** * Name: khci_getreg ****************************************************************************/ @@ -778,6 +767,7 @@ static void khci_putreg(uint32_t val, uint32_t addr) /**************************************************************************** * Request Helpers ****************************************************************************/ + /**************************************************************************** * Name: khci_remfirst ****************************************************************************/ @@ -867,6 +857,7 @@ static void khci_addfirst(struct khci_queue_s *queue, struct khci_req_s *req) { queue->tail = req; } + queue->head = req; } @@ -1781,6 +1772,7 @@ static void khci_cancelrequests(struct khci_ep_s *privep, int16_t result) /**************************************************************************** * Interrupt Level Processing ****************************************************************************/ + /**************************************************************************** * Name: khci_dispatchrequest ****************************************************************************/ @@ -1967,17 +1959,17 @@ static void khci_ep0rdcomplete(struct khci_usbdev_s *priv) static void khci_ep0setup(struct khci_usbdev_s *priv) { volatile struct usbotg_bdtentry_s *bdt; - struct khci_ep_s *ep0; - struct khci_ep_s *privep; - union wb_u value; - union wb_u index; - union wb_u len; - union wb_u response; - uint32_t regval; - bool dispatched = false; - uint8_t epno; - int nbytes = 0; /* Assume zero-length packet */ - int ret; + struct khci_ep_s *ep0; + struct khci_ep_s *privep; + union wb_u value; + union wb_u index; + union wb_u len; + union wb_u response; + uint32_t regval; + bool dispatched = false; + uint8_t epno; + int nbytes = 0; /* Assume zero-length packet */ + int ret; /* Cancel any pending requests. */ @@ -1989,9 +1981,9 @@ static void khci_ep0setup(struct khci_usbdev_s *priv) * beginning with DATA1. */ - ep0->stalled = false; - ep0->rxdata1 = 0; - ep0->txdata1 = 1; + ep0->stalled = false; + ep0->rxdata1 = 0; + ep0->txdata1 = 1; /* Initialize for the SETUP */ @@ -2760,9 +2752,7 @@ static int khci_interrupt(int irq, void *context) usbir = khci_getreg(KINETIS_USB0_ISTAT) & khci_getreg(KINETIS_USB0_INTEN); otgir = khci_getreg(KINETIS_USB0_OTGISTAT) & khci_getreg(KINETIS_USB0_OTGICR); -// ulldbg("Interrupt: ISTAT %04x\n", khci_getreg(KINETIS_USB0_ISTAT)); -// ulldbg("Interrupt: OTGISTAT %04x\n", khci_getreg(KINETIS_USB0_OTGISTAT)); -// ulldbg("Interrupt: ERRSTAT %04x\n", khci_getreg(KINETIS_USB0_ERRSTAT)); + usbtrace(TRACE_INTENTRY(KHCI_TRACEINTID_INTERRUPT), usbir | otgir); #ifdef CONFIG_USBOTG @@ -2995,7 +2985,6 @@ x */ interrupt_exit: - //up_clrpend_irq(KINETIS_IRQ_USBOTG); kinetis_clrpend(KINETIS_IRQ_USBOTG); usbtrace(TRACE_INTEXIT(KHCI_TRACEINTID_INTERRUPT), usbir | otgir); return OK; @@ -3227,6 +3216,7 @@ static void khci_ep0configure(struct khci_usbdev_s *priv) /**************************************************************************** * Endpoint operations ****************************************************************************/ + /**************************************************************************** * Name: khci_epconfigure ****************************************************************************/ @@ -3422,6 +3412,7 @@ static struct usbdev_req_s *khci_epallocreq(struct usbdev_ep_s *ep) return NULL; } #endif + usbtrace(TRACE_EPALLOCREQ, USB_EPNO(ep->eplog)); privreq = (struct khci_req_s *)kmm_malloc(sizeof(struct khci_req_s)); @@ -3450,6 +3441,7 @@ static void khci_epfreereq(struct usbdev_ep_s *ep, struct usbdev_req_s *req) return; } #endif + usbtrace(TRACE_EPFREEREQ, USB_EPNO(ep->eplog)); kmm_free(privreq); @@ -4026,11 +4018,9 @@ static void khci_attach(struct khci_usbdev_s *priv) /* Initialize registers to known states. */ - //khci_putreg(0, KINETIS_USB0_CTL); - #if 1 khci_putreg(0x1,KINETIS_USB0_CTL); - khci_putreg(0,KINETIS_USB0_USBCTRL); + khci_putreg(0,KINETIS_USB0_USBCTRL); #endif /* Enable interrupts at the USB controller */ @@ -4221,6 +4211,7 @@ static void khci_hwreset(struct khci_usbdev_s *priv) #define USB_FLASH_ACCESS #ifdef USB_FLASH_ACCESS /* Allow USBOTG-FS Controller to Read from FLASH */ + regval = getreg32(KINETIS_FMC_PFAPR); regval &= ~(FMC_PFAPR_M4AP_MASK); regval |= (FMC_PFAPR_RDONLY << FMC_PFAPR_M4AP_SHIFT); @@ -4231,13 +4222,15 @@ static void khci_hwreset(struct khci_usbdev_s *priv) memset((void *)g_bdt, 0, sizeof(g_bdt)); - /* Soft reset the USB Module*/ + /* Soft reset the USB Module */ + regval = khci_getreg(KINETIS_USB0_USBTRC0); regval |= USB_USBTRC0_USBRESET; khci_putreg(regval,KINETIS_USB0_USBTRC0); - //is this really necessary? - while (khci_getreg(KINETIS_USB0_USBTRC0) & USB_USBTRC0_USBRESET); + /* Is this really necessary? */ + + while (khci_getreg(KINETIS_USB0_USBTRC0) & USB_USBTRC0_USBRESET); /* Set the address of the buffer descriptor table (BDT) * @@ -4245,7 +4238,7 @@ static void khci_hwreset(struct khci_usbdev_s *priv) * BDTP2: Bit 0-7: Bits 16-23 of the BDT base address * BDTP3: Bit 0-7: Bits 24-31 of the BDT base address */ - + khci_putreg((uint8_t)((uint32_t)g_bdt >> 24), KINETIS_USB0_BDTPAGE3); khci_putreg((uint8_t)((uint32_t)g_bdt >> 16), KINETIS_USB0_BDTPAGE2); khci_putreg((uint8_t)(((uint32_t)g_bdt >> 8) & USB_BDTPAGE1_MASK), KINETIS_USB0_BDTPAGE1); @@ -4255,7 +4248,6 @@ static void khci_hwreset(struct khci_usbdev_s *priv) ulldbg("BDTPAGE2 %hhx\n",khci_getreg(KINETIS_USB0_BDTPAGE2)); ulldbg("BDTPAGE1 %hhx\n",khci_getreg(KINETIS_USB0_BDTPAGE1)); - /* Clear any pending interrupts */ khci_putreg(0xFF, KINETIS_USB0_ERRSTAT); @@ -4263,7 +4255,6 @@ static void khci_hwreset(struct khci_usbdev_s *priv) khci_putreg(0xFF,KINETIS_USB0_OTGISTAT); #if 1 - /* Assert reset request to all of the Ping Pong buffer pointers. This * will reset all Even/Odd buffer pointers to the EVEN BD banks. */ @@ -4276,11 +4267,11 @@ static void khci_hwreset(struct khci_usbdev_s *priv) regval &= ~USB_CTL_ODDRST; khci_putreg(regval, KINETIS_USB0_CTL); - #endif #if 1 - /*Undocumented bit*/ + /* Undocumented bit */ + regval = khci_getreg(KINETIS_USB0_USBTRC0); regval |= 0x40; khci_putreg(regval,KINETIS_USB0_USBTRC0); @@ -4385,6 +4376,7 @@ static void khci_hwshutdown(struct khci_usbdev_s *priv) /**************************************************************************** * Public Functions ****************************************************************************/ + /**************************************************************************** * Name: up_usbinitialize * @@ -4399,40 +4391,42 @@ static void khci_hwshutdown(struct khci_usbdev_s *priv) * ****************************************************************************/ -#define SIM_CLKDIV2_USBDIV(n) (uint32_t)(((n) & 0x07) << 1) - void up_usbinitialize(void) { + struct khci_usbdev_s *priv = &g_usbdev; uint32_t regval; + /* For now there is only one USB controller, but we will always refer to * it using a pointer to make any future ports to multiple USB controllers * easier. */ #if 1 - //1: Select clock source + /* 1: Select clock source */ + regval = getreg32(KINETIS_SIM_SOPT2); regval |= SIM_SOPT2_PLLFLLSEL | SIM_SOPT2_USBSRC; putreg32(regval, KINETIS_SIM_SOPT2); regval = getreg32(KINETIS_SIM_CLKDIV2); #if defined(CONFIG_TEENSY_3X_OVERCLOCK) - regval = SIM_CLKDIV2_USBDIV(1); //(USBFRAC + 0)/(USBDIV + 1) = (1 + 0)/(1 + 1) = 1/2 for 96Mhz clock + /* (USBFRAC + 0)/(USBDIV + 1) = (1 + 0)/(1 + 1) = 1/2 for 96Mhz clock */ + + regval = SIM_CLKDIV2_USBDIV(1); #else - //72Mhz + /* 72Mhz */ + regval = SIM_CLKDIV2_USBDIV(2) | SIM_CLKDIV2_USBFRAC; #endif putreg32(regval, KINETIS_SIM_CLKDIV2); - - //2: Gate USB clock + + /* 2: Gate USB clock */ + regval = getreg32(KINETIS_SIM_SCGC4); regval |= SIM_SCGC4_USBOTG; putreg32(regval, KINETIS_SIM_SCGC4); - + #endif - - struct khci_usbdev_s *priv = &g_usbdev; - usbtrace(TRACE_DEVINIT, 0); /* Initialize the driver state structure */ @@ -4459,10 +4453,11 @@ void up_usbinitialize(void) (uint16_t)KINETIS_IRQ_USBOTG); up_usbuninitialize(); } -#ifdef CONFIG_ARCH_IRQPRIO - /* Set the interrupt priority */ - up_prioritize_irq(KINETIS_IRQ_USBOTG, 112); +#ifdef CONFIG_ARCH_IRQPRIO + /* Set the interrupt priority */ + + up_prioritize_irq(KINETIS_IRQ_USBOTG, 112); #endif } @@ -4569,6 +4564,7 @@ int usbdev_register(struct usbdevclass_driver_s *driver) DEBUGASSERT(priv->devstate == DEVSTATE_DETACHED); khci_reset(priv); } + return ret; } diff --git a/arch/arm/src/kinetis/kinetis_usbotg.h b/arch/arm/src/kinetis/kinetis_usbotg.h index 22a474a824..de53d51293 100644 --- a/arch/arm/src/kinetis/kinetis_usbotg.h +++ b/arch/arm/src/kinetis/kinetis_usbotg.h @@ -1,7 +1,7 @@ /******************************************************************************************** * arch/arm/src/kinetis/kinetis_usbotg.h * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -363,10 +363,6 @@ struct usbotg_bdtentry_s }; #endif -/******************************************************************************************** - * Public Data - ********************************************************************************************/ - /******************************************************************************************** * Public Functions ********************************************************************************************/ diff --git a/configs/teensy-3.x/src/k20_appinit.c b/configs/teensy-3.x/src/k20_appinit.c index 8512a35d33..c4d9e3fd44 100644 --- a/configs/teensy-3.x/src/k20_appinit.c +++ b/configs/teensy-3.x/src/k20_appinit.c @@ -78,7 +78,9 @@ int board_app_initialize(uintptr_t arg) /* Teensy is powered from usb and (bug?) only boots from being programmed, * so if usb is compiled in signal the controller driver that we're attached now. */ + khci_usbattach(); #endif + return OK; } diff --git a/configs/teensy-3.x/src/k20_usbdev.c b/configs/teensy-3.x/src/k20_usbdev.c index a2b3c20ddf..d8b801193a 100644 --- a/configs/teensy-3.x/src/k20_usbdev.c +++ b/configs/teensy-3.x/src/k20_usbdev.c @@ -1,7 +1,7 @@ /************************************************************************************ * configs/teensy-3.x/src/k20_usbdev.c * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -56,13 +56,10 @@ /************************************************************************************ * Pre-processor Definitions ************************************************************************************/ + #define khci_getreg(addr) getreg8(addr) #define khci_putreg(val,addr) putreg8(val,addr) -#define SIM_CLKDIV2_USBDIV(n) (uint32_t)(((n) & 0x07) << 1) - -/************************************************************************************ - * Private Functions - ************************************************************************************/ +#define SIM_CLKDIV2_USBDIV(n) (uint32_t)(((n) & 0x07) << 1) /************************************************************************************ * Public Functions @@ -78,9 +75,6 @@ void kinetis_usbinitialize(void) { - uint32_t regval; - -// khci_usbattach(); } /************************************************************************************ @@ -99,16 +93,28 @@ int kinetis_usbpullup(FAR struct usbdev_s *dev, bool enable) { usbtrace(TRACE_DEVPULLUP, (uint16_t)enable); uint32_t regval; -if (enable) -khci_putreg(USB_CONTROL_DPPULLUPNONOTG, KINETIS_USB0_CONTROL); -else -khci_putreg(0,KINETIS_USB0_CONTROL); + + if (enable) + { + khci_putreg(USB_CONTROL_DPPULLUPNONOTG, KINETIS_USB0_CONTROL); + } + else + { + khci_putreg(0,KINETIS_USB0_CONTROL); + } + #if 0 regval = khci_getreg(KINETIS_USB0_OTGCTL); - if (enable) - regval |= (1<<2); - else - regval &= ~(1<<2); + + if (enable) + { + regval |= (1 << 2); + } + else + { + regval &= ~(1 << 2); + } + khci_putreg(regval,KINETIS_USB0_OTGCTL); #endif diff --git a/configs/teensy-3.x/usbnsh/.config b/configs/teensy-3.x/usbnsh/.config deleted file mode 100644 index 0f0f54c88e..0000000000 --- a/configs/teensy-3.x/usbnsh/.config +++ /dev/null @@ -1,989 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Nuttx/ Configuration -# - -# -# Build Setup -# -CONFIG_EXPERIMENTAL=y -# CONFIG_DEFAULT_SMALL is not set -CONFIG_HOST_LINUX=y -# CONFIG_HOST_OSX is not set -# CONFIG_HOST_WINDOWS is not set -# CONFIG_HOST_OTHER is not set - -# -# Build Configuration -# -CONFIG_APPS_DIR="../apps" -CONFIG_BUILD_FLAT=y -# CONFIG_BUILD_2PASS is not set - -# -# Binary Output Formats -# -# CONFIG_RRLOAD_BINARY is not set -CONFIG_INTELHEX_BINARY=y -# CONFIG_MOTOROLA_SREC is not set -CONFIG_RAW_BINARY=y -# CONFIG_UBOOT_UIMAGE is not set - -# -# Customize Header Files -# -# CONFIG_ARCH_STDINT_H is not set -# CONFIG_ARCH_STDBOOL_H is not set -# CONFIG_ARCH_MATH_H is not set -# CONFIG_ARCH_FLOAT_H is not set -# CONFIG_ARCH_STDARG_H is not set -# CONFIG_ARCH_DEBUG_H is not set - -# -# Debug Options -# -CONFIG_DEBUG=y -# CONFIG_ARCH_HAVE_HEAPCHECK is not set -# CONFIG_DEBUG_VERBOSE is not set - -# -# Subsystem Debug Options -# -# CONFIG_DEBUG_BINFMT is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_DEBUG_GRAPHICS is not set -# CONFIG_DEBUG_LIB is not set -# CONFIG_DEBUG_MM is not set -# CONFIG_DEBUG_SCHED is not set - -# -# OS Function Debug Options -# -# CONFIG_DEBUG_IRQ is not set - -# -# Driver Debug Options -# -# CONFIG_DEBUG_LEDS is not set -# CONFIG_DEBUG_ANALOG is not set -# CONFIG_DEBUG_GPIO is not set -# CONFIG_DEBUG_SPI is not set -# CONFIG_DEBUG_USB is not set -CONFIG_ARCH_HAVE_STACKCHECK=y -# CONFIG_STACK_COLORATION is not set -CONFIG_DEBUG_SYMBOLS=y -CONFIG_ARCH_HAVE_CUSTOMOPT=y -# CONFIG_DEBUG_NOOPT is not set -# CONFIG_DEBUG_CUSTOMOPT is not set -CONFIG_DEBUG_FULLOPT=y - -# -# System Type -# -CONFIG_ARCH_ARM=y -# CONFIG_ARCH_AVR is not set -# CONFIG_ARCH_HC is not set -# CONFIG_ARCH_MIPS is not set -# CONFIG_ARCH_RGMP is not set -# CONFIG_ARCH_SH is not set -# CONFIG_ARCH_SIM is not set -# CONFIG_ARCH_X86 is not set -# CONFIG_ARCH_Z16 is not set -# CONFIG_ARCH_Z80 is not set -CONFIG_ARCH="arm" - -# -# ARM Options -# -# CONFIG_ARCH_CHIP_A1X is not set -# CONFIG_ARCH_CHIP_C5471 is not set -# CONFIG_ARCH_CHIP_CALYPSO is not set -# CONFIG_ARCH_CHIP_DM320 is not set -# CONFIG_ARCH_CHIP_EFM32 is not set -# CONFIG_ARCH_CHIP_IMX1 is not set -# CONFIG_ARCH_CHIP_IMX6 is not set -CONFIG_ARCH_CHIP_KINETIS=y -# CONFIG_ARCH_CHIP_KL is not set -# CONFIG_ARCH_CHIP_LM is not set -# CONFIG_ARCH_CHIP_TIVA is not set -# CONFIG_ARCH_CHIP_LPC11XX is not set -# CONFIG_ARCH_CHIP_LPC17XX is not set -# CONFIG_ARCH_CHIP_LPC214X is not set -# CONFIG_ARCH_CHIP_LPC2378 is not set -# CONFIG_ARCH_CHIP_LPC31XX is not set -# CONFIG_ARCH_CHIP_LPC43XX is not set -# CONFIG_ARCH_CHIP_NUC1XX is not set -# CONFIG_ARCH_CHIP_SAMA5 is not set -# CONFIG_ARCH_CHIP_SAMD is not set -# CONFIG_ARCH_CHIP_SAML is not set -# CONFIG_ARCH_CHIP_SAM34 is not set -# CONFIG_ARCH_CHIP_SAMV7 is not set -# CONFIG_ARCH_CHIP_STM32 is not set -# CONFIG_ARCH_CHIP_STM32F7 is not set -# CONFIG_ARCH_CHIP_STM32L4 is not set -# CONFIG_ARCH_CHIP_STR71X is not set -# CONFIG_ARCH_CHIP_TMS570 is not set -# CONFIG_ARCH_CHIP_MOXART is not set -# CONFIG_ARCH_ARM7TDMI is not set -# CONFIG_ARCH_ARM926EJS is not set -# CONFIG_ARCH_ARM920T is not set -# CONFIG_ARCH_CORTEXM0 is not set -# CONFIG_ARCH_CORTEXM3 is not set -CONFIG_ARCH_CORTEXM4=y -# CONFIG_ARCH_CORTEXM7 is not set -# CONFIG_ARCH_CORTEXA5 is not set -# CONFIG_ARCH_CORTEXA8 is not set -# CONFIG_ARCH_CORTEXA9 is not set -# CONFIG_ARCH_CORTEXR4 is not set -# CONFIG_ARCH_CORTEXR4F is not set -# CONFIG_ARCH_CORTEXR5 is not set -# CONFIG_ARCH_CORTEX5F is not set -# CONFIG_ARCH_CORTEXR7 is not set -# CONFIG_ARCH_CORTEXR7F is not set -CONFIG_ARCH_FAMILY="armv7-m" -CONFIG_ARCH_CHIP="kinetis" -# CONFIG_ARMV7M_USEBASEPRI is not set -CONFIG_ARCH_HAVE_FPU=y -# CONFIG_ARCH_HAVE_DPFPU is not set -# CONFIG_ARCH_FPU is not set -# CONFIG_ARCH_HAVE_TRUSTZONE is not set -CONFIG_ARM_HAVE_MPU_UNIFIED=y -# CONFIG_ARM_MPU is not set -# CONFIG_DEBUG_HARDFAULT is not set - -# -# ARMV7M Configuration Options -# -# CONFIG_ARMV7M_HAVE_ICACHE is not set -# CONFIG_ARMV7M_HAVE_DCACHE is not set -# CONFIG_ARMV7M_HAVE_ITCM is not set -# CONFIG_ARMV7M_HAVE_DTCM is not set -# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set -# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set -# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set -CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y -# CONFIG_ARMV7M_HAVE_STACKCHECK is not set -# CONFIG_ARMV7M_ITMSYSLOG is not set - -# -# Kinetis Configuration Options -# -# CONFIG_ARCH_CHIP_MK20DN32VLH5 is not set -# CONFIG_ARCH_CHIP_MK20DX32VLH5 is not set -# CONFIG_ARCH_CHIP_MK20DN64VLH5 is not set -# CONFIG_ARCH_CHIP_MK20DX64VLH5 is not set -# CONFIG_ARCH_CHIP_MK20DN128VLH5 is not set -# CONFIG_ARCH_CHIP_MK20DX128VLH5 is not set -# CONFIG_ARCH_CHIP_MK20DX64VLH7 is not set -# CONFIG_ARCH_CHIP_MK20DX128VLH7 is not set -CONFIG_ARCH_CHIP_MK20DX256VLH7=y -# CONFIG_ARCH_CHIP_MK40N512VLQ100 is not set -# CONFIG_ARCH_CHIP_MK40N512VMD100 is not set -# CONFIG_ARCH_CHIP_MK40X128VLQ100 is not set -# CONFIG_ARCH_CHIP_MK40X128VMD100 is not set -# CONFIG_ARCH_CHIP_MK40X256VLQ100 is not set -# CONFIG_ARCH_CHIP_MK40X256VMD100 is not set -# CONFIG_ARCH_CHIP_MK60N256VLQ100 is not set -# CONFIG_ARCH_CHIP_MK60N256VMD100 is not set -# CONFIG_ARCH_CHIP_MK60N512VLL100 is not set -# CONFIG_ARCH_CHIP_MK60N512VLQ100 is not set -# CONFIG_ARCH_CHIP_MK60N512VMD100 is not set -# CONFIG_ARCH_CHIP_MK60X256VLQ100 is not set -# CONFIG_ARCH_CHIP_MK60X256VMD100 is not set -CONFIG_ARCH_FAMILY_K20=y -# CONFIG_ARCH_FAMILY_K40 is not set -# CONFIG_ARCH_FAMILY_K60 is not set - -# -# Kinetis Peripheral Support -# -# CONFIG_KINETIS_TRACE is not set -# CONFIG_KINETIS_FLEXBUS is not set -CONFIG_KINETIS_UART0=y -# CONFIG_KINETIS_UART1 is not set -# CONFIG_KINETIS_UART2 is not set -# CONFIG_KINETIS_UART3 is not set -# CONFIG_KINETIS_UART4 is not set -# CONFIG_KINETIS_UART5 is not set -# CONFIG_KINETIS_FLEXCAN0 is not set -# CONFIG_KINETIS_FLEXCAN1 is not set -# CONFIG_KINETIS_SPI0 is not set -# CONFIG_KINETIS_SPI1 is not set -# CONFIG_KINETIS_SPI2 is not set -# CONFIG_KINETIS_I2C0 is not set -# CONFIG_KINETIS_I2C1 is not set -# CONFIG_KINETIS_I2S is not set -# CONFIG_KINETIS_DAC0 is not set -# CONFIG_KINETIS_DAC1 is not set -# CONFIG_KINETIS_ADC0 is not set -# CONFIG_KINETIS_ADC1 is not set -# CONFIG_KINETIS_CMP is not set -# CONFIG_KINETIS_VREF is not set -# CONFIG_KINETIS_SDHC is not set -# CONFIG_KINETIS_FTM0 is not set -# CONFIG_KINETIS_FTM1 is not set -# CONFIG_KINETIS_FTM2 is not set -# CONFIG_KINETIS_LPTIMER is not set -# CONFIG_KINETIS_RTC is not set -# CONFIG_KINETIS_EWM is not set -# CONFIG_KINETIS_CMT is not set -CONFIG_KINETIS_USBOTG=y -# CONFIG_KINETIS_USBDCD is not set -# CONFIG_KINETIS_LLWU is not set -# CONFIG_KINETIS_TSI is not set -# CONFIG_KINETIS_FTFL is not set -# CONFIG_KINETIS_DMA is not set -# CONFIG_KINETIS_CRC is not set -# CONFIG_KINETIS_PDB is not set -# CONFIG_KINETIS_PIT is not set - -# -# Kinetis GPIO Interrupt Configuration -# -# CONFIG_GPIO_IRQ is not set - -# -# Kinetis UART Configuration -# -CONFIG_KINETIS_UARTFIFOS=y - -# -# Architecture Options -# -# CONFIG_ARCH_NOINTC is not set -# CONFIG_ARCH_VECNOTIRQ is not set -# CONFIG_ARCH_DMA is not set -CONFIG_ARCH_HAVE_IRQPRIO=y -# CONFIG_ARCH_L2CACHE is not set -# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set -# CONFIG_ARCH_HAVE_ADDRENV is not set -# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set -# CONFIG_ARCH_HAVE_MULTICPU is not set -CONFIG_ARCH_HAVE_VFORK=y -# CONFIG_ARCH_HAVE_MMU is not set -CONFIG_ARCH_HAVE_MPU=y -# CONFIG_ARCH_NAND_HWECC is not set -# CONFIG_ARCH_HAVE_EXTCLK is not set -# CONFIG_ARCH_HAVE_POWEROFF is not set -CONFIG_ARCH_HAVE_RESET=y -# CONFIG_ARCH_USE_MPU is not set -# CONFIG_ARCH_IRQPRIO is not set -CONFIG_ARCH_STACKDUMP=y -# CONFIG_ARCH_USBDUMP is not set -# CONFIG_ENDIAN_BIG is not set -# CONFIG_ARCH_IDLE_CUSTOM is not set -CONFIG_ARCH_HAVE_RAMFUNCS=y -CONFIG_ARCH_RAMFUNCS=y -CONFIG_ARCH_HAVE_RAMVECTORS=y -# CONFIG_ARCH_RAMVECTORS is not set - -# -# Board Settings -# -CONFIG_BOARD_LOOPSPERMSEC=6024 -# CONFIG_ARCH_CALIBRATION is not set - -# -# Interrupt options -# -CONFIG_ARCH_HAVE_INTERRUPTSTACK=y -CONFIG_ARCH_INTERRUPTSTACK=0 -CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y -# CONFIG_ARCH_HIPRI_INTERRUPT is not set - -# -# Boot options -# -# CONFIG_BOOT_RUNFROMEXTSRAM is not set -CONFIG_BOOT_RUNFROMFLASH=y -# CONFIG_BOOT_RUNFROMISRAM is not set -# CONFIG_BOOT_RUNFROMSDRAM is not set -# CONFIG_BOOT_COPYTORAM is not set - -# -# Boot Memory Configuration -# -CONFIG_RAM_START=0x1fff8000 -CONFIG_RAM_SIZE=65536 -# CONFIG_ARCH_HAVE_SDRAM is not set - -# -# Board Selection -# -CONFIG_ARCH_BOARD_TEENSY_3X=y -# CONFIG_ARCH_BOARD_CUSTOM is not set -CONFIG_ARCH_BOARD="teensy-3.x" - -# -# Common Board Options -# -CONFIG_ARCH_HAVE_LEDS=y -CONFIG_ARCH_LEDS=y -CONFIG_NSH_MMCSDMINOR=0 - -# -# Board-Specific Options -# -# CONFIG_TEENSY_3X_OVERCLOCK is not set -CONFIG_LIB_BOARDCTL=y -# CONFIG_BOARDCTL_RESET is not set -# CONFIG_BOARDCTL_UNIQUEID is not set -CONFIG_BOARDCTL_USBDEVCTRL=y -# CONFIG_BOARDCTL_TSCTEST is not set -# CONFIG_BOARDCTL_ADCTEST is not set -# CONFIG_BOARDCTL_PWMTEST is not set -# CONFIG_BOARDCTL_GRAPHICS is not set -# CONFIG_BOARDCTL_IOCTL is not set - -# -# RTOS Features -# -CONFIG_DISABLE_OS_API=y -# CONFIG_DISABLE_POSIX_TIMERS is not set -# CONFIG_DISABLE_PTHREAD is not set -# CONFIG_DISABLE_SIGNALS is not set -# CONFIG_DISABLE_MQUEUE is not set -# CONFIG_DISABLE_ENVIRON is not set - -# -# Clocks and Timers -# -CONFIG_USEC_PER_TICK=10000 -# CONFIG_SYSTEM_TIME64 is not set -# CONFIG_CLOCK_MONOTONIC is not set -# CONFIG_JULIAN_TIME is not set -CONFIG_START_YEAR=2011 -CONFIG_START_MONTH=12 -CONFIG_START_DAY=6 -CONFIG_MAX_WDOGPARMS=2 -CONFIG_PREALLOC_WDOGS=16 -CONFIG_WDOG_INTRESERVE=4 -CONFIG_PREALLOC_TIMERS=4 - -# -# Tasks and Scheduling -# -# CONFIG_SPINLOCK is not set -# CONFIG_INIT_NONE is not set -CONFIG_INIT_ENTRYPOINT=y -# CONFIG_INIT_FILEPATH is not set -CONFIG_USER_ENTRYPOINT="nsh_main" -CONFIG_RR_INTERVAL=200 -# CONFIG_SCHED_SPORADIC is not set -CONFIG_TASK_NAME_SIZE=0 -CONFIG_MAX_TASKS=16 -# CONFIG_SCHED_HAVE_PARENT is not set -CONFIG_SCHED_WAITPID=y - -# -# Pthread Options -# -# CONFIG_MUTEX_TYPES is not set -CONFIG_NPTHREAD_KEYS=4 - -# -# Performance Monitoring -# -# CONFIG_SCHED_CPULOAD is not set -# CONFIG_SCHED_INSTRUMENTATION is not set - -# -# Files and I/O -# -CONFIG_DEV_CONSOLE=y -# CONFIG_FDCLONE_DISABLE is not set -# CONFIG_FDCLONE_STDIO is not set -CONFIG_SDCLONE_DISABLE=y -CONFIG_NFILE_DESCRIPTORS=8 -CONFIG_NFILE_STREAMS=8 -CONFIG_NAME_MAX=32 -# CONFIG_PRIORITY_INHERITANCE is not set - -# -# RTOS hooks -# -# CONFIG_BOARD_INITIALIZE is not set -# CONFIG_SCHED_STARTHOOK is not set -# CONFIG_SCHED_ATEXIT is not set -# CONFIG_SCHED_ONEXIT is not set - -# -# Signal Numbers -# -CONFIG_SIG_SIGUSR1=1 -CONFIG_SIG_SIGUSR2=2 -CONFIG_SIG_SIGALARM=3 -CONFIG_SIG_SIGCONDTIMEDOUT=16 - -# -# POSIX Message Queue Options -# -CONFIG_PREALLOC_MQ_MSGS=4 -CONFIG_MQ_MAXMSGSIZE=32 -# CONFIG_MODULE is not set - -# -# Work queue support -# -# CONFIG_SCHED_WORKQUEUE is not set -# CONFIG_SCHED_HPWORK is not set -# CONFIG_SCHED_LPWORK is not set - -# -# Stack and heap information -# -CONFIG_IDLETHREAD_STACKSIZE=1024 -CONFIG_USERMAIN_STACKSIZE=2048 -CONFIG_PTHREAD_STACK_MIN=256 -CONFIG_PTHREAD_STACK_DEFAULT=2048 -# CONFIG_LIB_SYSCALL is not set - -# -# Device Drivers -# -CONFIG_DISABLE_POLL=y -CONFIG_DEV_NULL=y -# CONFIG_DEV_ZERO is not set -# CONFIG_DEV_LOOP is not set - -# -# Buffering -# -# CONFIG_DRVR_WRITEBUFFER is not set -# CONFIG_DRVR_READAHEAD is not set -# CONFIG_RAMDISK is not set -# CONFIG_CAN is not set -# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set -# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set -# CONFIG_PWM is not set -# CONFIG_ARCH_HAVE_I2CRESET is not set -# CONFIG_I2C is not set -CONFIG_SPI=y -# CONFIG_SPI_SLAVE is not set -CONFIG_SPI_EXCHANGE=y -# CONFIG_SPI_CMDDATA is not set -# CONFIG_SPI_CALLBACK is not set -# CONFIG_SPI_BITBANG is not set -# CONFIG_SPI_HWFEATURES is not set -# CONFIG_SPI_CRCGENERATION is not set -# CONFIG_I2S is not set - -# -# Timer Driver Support -# -# CONFIG_TIMER is not set -# CONFIG_RTC is not set -# CONFIG_WATCHDOG is not set -# CONFIG_ANALOG is not set -# CONFIG_AUDIO_DEVICES is not set -# CONFIG_VIDEO_DEVICES is not set -# CONFIG_BCH is not set -# CONFIG_INPUT is not set -# CONFIG_IOEXPANDER is not set -# CONFIG_LCD is not set - -# -# LED Support -# -# CONFIG_USERLED is not set -# CONFIG_RGBLED is not set -# CONFIG_PCA9635PW is not set -# CONFIG_MMCSD is not set -# CONFIG_MODEM is not set -# CONFIG_MTD is not set -# CONFIG_EEPROM is not set -# CONFIG_PIPES is not set -# CONFIG_PM is not set -# CONFIG_POWER is not set -# CONFIG_SENSORS is not set -# CONFIG_SERCOMM_CONSOLE is not set -CONFIG_SERIAL=y -# CONFIG_DEV_LOWCONSOLE is not set -CONFIG_SERIAL_REMOVABLE=y -# CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set - -# -# USART Configuration -# -CONFIG_MCU_SERIAL=y -CONFIG_STANDARD_SERIAL=y -# CONFIG_SERIAL_IFLOWCONTROL is not set -# CONFIG_SERIAL_OFLOWCONTROL is not set -# CONFIG_SERIAL_DMA is not set -# CONFIG_SERIAL_TIOCSERGSTRUCT is not set -# CONFIG_ARCH_HAVE_SERIAL_TERMIOS is not set -CONFIG_UART0_SERIAL_CONSOLE=y -# CONFIG_OTHER_SERIAL_CONSOLE is not set -# CONFIG_NO_SERIAL_CONSOLE is not set - -# -# UART0 Configuration -# -CONFIG_UART0_RXBUFSIZE=256 -CONFIG_UART0_TXBUFSIZE=256 -CONFIG_UART0_BAUD=115200 -CONFIG_UART0_BITS=8 -CONFIG_UART0_PARITY=0 -CONFIG_UART0_2STOP=0 -# CONFIG_UART0_IFLOWCONTROL is not set -# CONFIG_UART0_OFLOWCONTROL is not set -# CONFIG_UART0_DMA is not set -CONFIG_USBDEV=y - -# -# USB Device Controller Driver Options -# -# CONFIG_USBDEV_ISOCHRONOUS is not set -CONFIG_USBDEV_DUALSPEED=y -CONFIG_USBDEV_SELFPOWERED=y -# CONFIG_USBDEV_BUSPOWERED is not set -CONFIG_USBDEV_MAXPOWER=100 -# CONFIG_USBDEV_DMA is not set -# CONFIG_ARCH_USBDEV_STALLQUEUE is not set -CONFIG_USBDEV_TRACE=y -CONFIG_USBDEV_TRACE_NRECORDS=128 -CONFIG_USBDEV_TRACE_INITIALIDSET=y - -# -# USB Device Class Driver Options -# -# CONFIG_USBDEV_COMPOSITE is not set -# CONFIG_PL2303 is not set -CONFIG_CDCACM=y -# CONFIG_CDCACM_CONSOLE is not set -# CONFIG_CDCACM_IFLOWCONTROL is not set -CONFIG_CDCACM_EP0MAXPACKET=64 -CONFIG_CDCACM_EPINTIN=1 -CONFIG_CDCACM_EPINTIN_FSSIZE=64 -CONFIG_CDCACM_EPINTIN_HSSIZE=64 -CONFIG_CDCACM_EPBULKOUT=3 -CONFIG_CDCACM_EPBULKOUT_FSSIZE=64 -CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 -CONFIG_CDCACM_EPBULKIN=2 -CONFIG_CDCACM_EPBULKIN_FSSIZE=64 -CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NRDREQS=4 -CONFIG_CDCACM_NWRREQS=4 -CONFIG_CDCACM_BULKIN_REQLEN=768 -CONFIG_CDCACM_RXBUFSIZE=513 -CONFIG_CDCACM_TXBUFSIZE=769 -CONFIG_CDCACM_VENDORID=0x0525 -CONFIG_CDCACM_PRODUCTID=0xa4a7 -CONFIG_CDCACM_VENDORSTR="NuttX" -CONFIG_CDCACM_PRODUCTSTR="CDC/ACM Serial" -# CONFIG_USBMSC is not set -# CONFIG_USBHOST is not set -# CONFIG_DRIVERS_WIRELESS is not set - -# -# System Logging Device Options -# - -# -# System Logging -# -# CONFIG_RAMLOG is not set -# CONFIG_SYSLOG_CONSOLE is not set - -# -# Networking Support -# -# CONFIG_ARCH_HAVE_NET is not set -# CONFIG_ARCH_HAVE_PHY is not set -# CONFIG_NET is not set - -# -# Crypto API -# -# CONFIG_CRYPTO is not set - -# -# File Systems -# - -# -# File system configuration -# -# CONFIG_DISABLE_MOUNTPOINT is not set -# CONFIG_FS_AUTOMOUNTER is not set -# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set -# CONFIG_FS_READABLE is not set -# CONFIG_FS_WRITABLE is not set -# CONFIG_FS_NAMED_SEMAPHORES is not set -CONFIG_FS_MQUEUE_MPATH="/var/mqueue" -# CONFIG_FS_RAMMAP is not set -# CONFIG_FS_FAT is not set -# CONFIG_FS_NXFFS is not set -# CONFIG_FS_ROMFS is not set -# CONFIG_FS_TMPFS is not set -# CONFIG_FS_SMARTFS is not set -# CONFIG_FS_BINFS is not set -# CONFIG_FS_PROCFS is not set -# CONFIG_FS_UNIONFS is not set - -# -# System Logging -# -# CONFIG_SYSLOG is not set -# CONFIG_SYSLOG_TIMESTAMP is not set - -# -# Graphics Support -# -# CONFIG_NX is not set - -# -# Memory Management -# -# CONFIG_MM_SMALL is not set -CONFIG_MM_REGIONS=1 -# CONFIG_ARCH_HAVE_HEAP2 is not set -# CONFIG_GRAN is not set - -# -# Audio Support -# -# CONFIG_AUDIO is not set - -# -# Wireless Support -# -# CONFIG_WIRELESS is not set - -# -# Binary Loader -# -# CONFIG_BINFMT_DISABLE is not set -# CONFIG_BINFMT_EXEPATH is not set -# CONFIG_NXFLAT is not set -# CONFIG_ELF is not set -CONFIG_BUILTIN=y -# CONFIG_PIC is not set -# CONFIG_SYMTAB_ORDEREDBYNAME is not set - -# -# Library Routines -# - -# -# Standard C Library Options -# -CONFIG_STDIO_BUFFER_SIZE=64 -CONFIG_STDIO_LINEBUFFER=y -CONFIG_NUNGET_CHARS=2 -CONFIG_LIB_HOMEDIR="/" -# CONFIG_LIBM is not set -# CONFIG_NOPRINTF_FIELDWIDTH is not set -# CONFIG_LIBC_FLOATINGPOINT is not set -CONFIG_LIBC_LONG_LONG=y -# CONFIG_LIBC_IOCTL_VARIADIC is not set -CONFIG_LIB_RAND_ORDER=1 -# CONFIG_EOL_IS_CR is not set -# CONFIG_EOL_IS_LF is not set -# CONFIG_EOL_IS_BOTH_CRLF is not set -CONFIG_EOL_IS_EITHER_CRLF=y -# CONFIG_LIBC_EXECFUNCS is not set -CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 -CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 -# CONFIG_LIBC_STRERROR is not set -# CONFIG_LIBC_PERROR_STDOUT is not set -CONFIG_ARCH_LOWPUTC=y -# CONFIG_LIBC_LOCALTIME is not set -# CONFIG_TIME_EXTENDED is not set -CONFIG_LIB_SENDFILE_BUFSIZE=512 -# CONFIG_ARCH_ROMGETC is not set -# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set -CONFIG_ARCH_HAVE_TLS=y -# CONFIG_TLS is not set -# CONFIG_LIBC_NETDB is not set - -# -# Non-standard Library Support -# -# CONFIG_LIB_KBDCODEC is not set -# CONFIG_LIB_SLCDCODEC is not set - -# -# Basic CXX Support -# -# CONFIG_C99_BOOL8 is not set -# CONFIG_HAVE_CXX is not set - -# -# Application Configuration -# - -# -# Built-In Applications -# -CONFIG_BUILTIN_PROXY_STACKSIZE=1024 - -# -# CAN Utilities -# - -# -# Examples -# -# CONFIG_EXAMPLES_CHAT is not set -# CONFIG_EXAMPLES_CONFIGDATA is not set -# CONFIG_EXAMPLES_CPUHOG is not set -# CONFIG_EXAMPLES_DHCPD is not set -# CONFIG_EXAMPLES_ELF is not set -# CONFIG_EXAMPLES_FTPC is not set -# CONFIG_EXAMPLES_FTPD is not set -# CONFIG_EXAMPLES_HELLO is not set -# CONFIG_EXAMPLES_JSON is not set -# CONFIG_EXAMPLES_HIDKBD is not set -# CONFIG_EXAMPLES_KEYPADTEST is not set -# CONFIG_EXAMPLES_IGMP is not set -# CONFIG_EXAMPLES_MEDIA is not set -# CONFIG_EXAMPLES_MM is not set -# CONFIG_EXAMPLES_MODBUS is not set -# CONFIG_EXAMPLES_MOUNT is not set -# CONFIG_EXAMPLES_NRF24L01TERM is not set -CONFIG_EXAMPLES_NSH=y -# CONFIG_EXAMPLES_NULL is not set -# CONFIG_EXAMPLES_NX is not set -# CONFIG_EXAMPLES_NXTERM is not set -# CONFIG_EXAMPLES_NXFFS is not set -# CONFIG_EXAMPLES_NXHELLO is not set -# CONFIG_EXAMPLES_NXIMAGE is not set -# CONFIG_EXAMPLES_NXLINES is not set -# CONFIG_EXAMPLES_NXTEXT is not set -# CONFIG_EXAMPLES_OSTEST is not set -# CONFIG_EXAMPLES_PCA9635 is not set -# CONFIG_EXAMPLES_PIPE is not set -# CONFIG_EXAMPLES_PPPD is not set -# CONFIG_EXAMPLES_POSIXSPAWN is not set -# CONFIG_EXAMPLES_RGBLED is not set -# CONFIG_EXAMPLES_RGMP is not set -# CONFIG_EXAMPLES_SENDMAIL is not set -# CONFIG_EXAMPLES_SERIALBLASTER is not set -# CONFIG_EXAMPLES_SERIALRX is not set -# CONFIG_EXAMPLES_SERLOOP is not set -# CONFIG_EXAMPLES_SLCD is not set -# CONFIG_EXAMPLES_SMART_TEST is not set -# CONFIG_EXAMPLES_SMART is not set -# CONFIG_EXAMPLES_SMP is not set -# CONFIG_EXAMPLES_TCPECHO is not set -# CONFIG_EXAMPLES_TELNETD is not set -# CONFIG_EXAMPLES_TIFF is not set -# CONFIG_EXAMPLES_TOUCHSCREEN is not set -# CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set -# CONFIG_EXAMPLES_USBTERM is not set -# CONFIG_EXAMPLES_WATCHDOG is not set - -# -# File System Utilities -# -# CONFIG_FSUTILS_INIFILE is not set - -# -# GPS Utilities -# -# CONFIG_GPSUTILS_MINMEA_LIB is not set - -# -# Graphics Support -# -# CONFIG_TIFF is not set -# CONFIG_GRAPHICS_TRAVELER is not set - -# -# Interpreters -# -# CONFIG_INTERPRETERS_FICL is not set -# CONFIG_INTERPRETERS_PCODE is not set -# CONFIG_INTERPRETERS_MICROPYTHON is not set - -# -# FreeModBus -# -# CONFIG_MODBUS is not set - -# -# Network Utilities -# -# CONFIG_NETUTILS_CODECS is not set -# CONFIG_NETUTILS_FTPC is not set -# CONFIG_NETUTILS_JSON is not set -# CONFIG_NETUTILS_SMTP is not set - -# -# NSH Library -# -CONFIG_NSH_LIBRARY=y -# CONFIG_NSH_MOTD is not set - -# -# Command Line Configuration -# -CONFIG_NSH_READLINE=y -# CONFIG_NSH_CLE is not set -CONFIG_NSH_LINELEN=64 -# CONFIG_NSH_DISABLE_SEMICOLON is not set -# CONFIG_NSH_CMDPARMS is not set -CONFIG_NSH_MAXARGUMENTS=6 -# CONFIG_NSH_ARGCAT is not set -CONFIG_NSH_NESTDEPTH=3 -# CONFIG_NSH_DISABLEBG is not set -CONFIG_NSH_BUILTIN_APPS=y - -# -# Disable Individual commands -# -# CONFIG_NSH_DISABLE_ADDROUTE is not set -# CONFIG_NSH_DISABLE_BASENAME is not set -# CONFIG_NSH_DISABLE_CAT is not set -# CONFIG_NSH_DISABLE_CD is not set -# CONFIG_NSH_DISABLE_CP is not set -# CONFIG_NSH_DISABLE_CMP is not set -CONFIG_NSH_DISABLE_DATE=y -# CONFIG_NSH_DISABLE_DD is not set -# CONFIG_NSH_DISABLE_DF is not set -# CONFIG_NSH_DISABLE_DELROUTE is not set -# CONFIG_NSH_DISABLE_DIRNAME is not set -# CONFIG_NSH_DISABLE_ECHO is not set -# CONFIG_NSH_DISABLE_EXEC is not set -# CONFIG_NSH_DISABLE_EXIT is not set -# CONFIG_NSH_DISABLE_FREE is not set -# CONFIG_NSH_DISABLE_GET is not set -# CONFIG_NSH_DISABLE_HELP is not set -# CONFIG_NSH_DISABLE_HEXDUMP is not set -# CONFIG_NSH_DISABLE_IFCONFIG is not set -CONFIG_NSH_DISABLE_IFUPDOWN=y -# CONFIG_NSH_DISABLE_KILL is not set -# CONFIG_NSH_DISABLE_LOSETUP is not set -CONFIG_NSH_DISABLE_LOSMART=y -# CONFIG_NSH_DISABLE_LS is not set -# CONFIG_NSH_DISABLE_MB is not set -# CONFIG_NSH_DISABLE_MKDIR is not set -# CONFIG_NSH_DISABLE_MKFIFO is not set -# CONFIG_NSH_DISABLE_MKRD is not set -# CONFIG_NSH_DISABLE_MH is not set -# CONFIG_NSH_DISABLE_MOUNT is not set -# CONFIG_NSH_DISABLE_MV is not set -# CONFIG_NSH_DISABLE_MW is not set -# CONFIG_NSH_DISABLE_PS is not set -# CONFIG_NSH_DISABLE_PUT is not set -# CONFIG_NSH_DISABLE_PWD is not set -# CONFIG_NSH_DISABLE_RM is not set -# CONFIG_NSH_DISABLE_RMDIR is not set -# CONFIG_NSH_DISABLE_SET is not set -# CONFIG_NSH_DISABLE_SH is not set -# CONFIG_NSH_DISABLE_SLEEP is not set -# CONFIG_NSH_DISABLE_TIME is not set -# CONFIG_NSH_DISABLE_TEST is not set -# CONFIG_NSH_DISABLE_UMOUNT is not set -# CONFIG_NSH_DISABLE_UNAME is not set -# CONFIG_NSH_DISABLE_UNSET is not set -# CONFIG_NSH_DISABLE_USLEEP is not set -# CONFIG_NSH_DISABLE_WGET is not set -# CONFIG_NSH_DISABLE_XD is not set - -# -# Configure Command Options -# -# CONFIG_NSH_CMDOPT_DF_H is not set -CONFIG_NSH_CODECS_BUFSIZE=128 -# CONFIG_NSH_CMDOPT_HEXDUMP is not set -CONFIG_NSH_FILEIOSIZE=512 - -# -# Scripting Support -# -# CONFIG_NSH_DISABLESCRIPT is not set -# CONFIG_NSH_DISABLE_ITEF is not set -# CONFIG_NSH_DISABLE_LOOPS is not set - -# -# Console Configuration -# -CONFIG_NSH_CONSOLE=y -CONFIG_NSH_USBCONSOLE=y -CONFIG_NSH_USBCONDEV="/dev/ttyACM0" -CONFIG_USBDEV_MINOR=0 - -# -# USB Device Trace Support -# -# CONFIG_NSH_USBDEV_TRACE is not set -CONFIG_NSH_ARCHINIT=y -# CONFIG_NSH_LOGIN is not set -# CONFIG_NSH_CONSOLE_LOGIN is not set - -# -# NxWidgets/NxWM -# - -# -# Platform-specific Support -# -# CONFIG_PLATFORM_CONFIGDATA is not set - -# -# System Libraries and NSH Add-Ons -# -# CONFIG_SYSTEM_FREE is not set -# CONFIG_SYSTEM_CLE is not set -# CONFIG_SYSTEM_CUTERM is not set -# CONFIG_SYSTEM_INSTALL is not set -# CONFIG_SYSTEM_HEX2BIN is not set -CONFIG_SYSTEM_HEXED=y -CONFIG_SYSTEM_HEXED_STACKSIZE=2048 -CONFIG_SYSTEM_HEXED_PRIORITY=100 -CONFIG_SYSTEM_RAMTEST=y -CONFIG_READLINE_HAVE_EXTMATCH=y -CONFIG_SYSTEM_READLINE=y -CONFIG_READLINE_ECHO=y -CONFIG_READLINE_TABCOMPLETION=y -CONFIG_READLINE_MAX_BUILTINS=64 -CONFIG_READLINE_MAX_EXTCMDS=64 -CONFIG_READLINE_CMD_HISTORY=y -CONFIG_READLINE_CMD_HISTORY_LINELEN=80 -CONFIG_READLINE_CMD_HISTORY_LEN=16 -# CONFIG_SYSTEM_SDCARD is not set -# CONFIG_SYSTEM_SUDOKU is not set -# CONFIG_SYSTEM_VI is not set -CONFIG_SYSTEM_CDCACM=y -CONFIG_SYSTEM_CDCACM_DEVMINOR=0 -# CONFIG_SYSTEM_CDCACM_TRACEINIT is not set -# CONFIG_SYSTEM_CDCACM_TRACECLASS is not set -# CONFIG_SYSTEM_CDCACM_TRACETRANSFERS is not set -# CONFIG_SYSTEM_CDCACM_TRACECONTROLLER is not set -# CONFIG_SYSTEM_CDCACM_TRACEINTERRUPTS is not set -# CONFIG_SYSTEM_UBLOXMODEM is not set -CONFIG_SYSTEM_USBMONITOR=y -CONFIG_SYSTEM_USBMONITOR_STACKSIZE=2048 -CONFIG_SYSTEM_USBMONITOR_PRIORITY=50 -CONFIG_SYSTEM_USBMONITOR_INTERVAL=2 -CONFIG_SYSTEM_USBMONITOR_TRACEINIT=y -CONFIG_SYSTEM_USBMONITOR_TRACECLASS=y -CONFIG_SYSTEM_USBMONITOR_TRACETRANSFERS=y -CONFIG_SYSTEM_USBMONITOR_TRACECONTROLLER=y -CONFIG_SYSTEM_USBMONITOR_TRACEINTERRUPTS=y -# CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/teensy-3.x/usbnsh/Make.defs b/configs/teensy-3.x/usbnsh/Make.defs index 597d2e8cf3..e750c7b570 100644 --- a/configs/teensy-3.x/usbnsh/Make.defs +++ b/configs/teensy-3.x/usbnsh/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # configs/teensy-3.1/nsh/Make.defs # -# Copyright (C) 2015 Gregory Nutt. All rights reserved. +# Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -114,4 +114,3 @@ HOSTCC = gcc HOSTINCLUDES = -I. HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe HOSTLDFLAGS = - diff --git a/configs/teensy-3.x/usbnsh/defconfig b/configs/teensy-3.x/usbnsh/defconfig index 0f0f54c88e..1e750e8e6f 100644 --- a/configs/teensy-3.x/usbnsh/defconfig +++ b/configs/teensy-3.x/usbnsh/defconfig @@ -16,7 +16,7 @@ CONFIG_HOST_LINUX=y # # Build Configuration # -CONFIG_APPS_DIR="../apps" +# CONFIG_APPS_DIR="../apps" CONFIG_BUILD_FLAT=y # CONFIG_BUILD_2PASS is not set @@ -42,36 +42,11 @@ CONFIG_RAW_BINARY=y # # Debug Options # -CONFIG_DEBUG=y +# CONFIG_DEBUG is not set # CONFIG_ARCH_HAVE_HEAPCHECK is not set -# CONFIG_DEBUG_VERBOSE is not set - -# -# Subsystem Debug Options -# -# CONFIG_DEBUG_BINFMT is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_DEBUG_GRAPHICS is not set -# CONFIG_DEBUG_LIB is not set -# CONFIG_DEBUG_MM is not set -# CONFIG_DEBUG_SCHED is not set - -# -# OS Function Debug Options -# -# CONFIG_DEBUG_IRQ is not set - -# -# Driver Debug Options -# -# CONFIG_DEBUG_LEDS is not set -# CONFIG_DEBUG_ANALOG is not set -# CONFIG_DEBUG_GPIO is not set -# CONFIG_DEBUG_SPI is not set -# CONFIG_DEBUG_USB is not set CONFIG_ARCH_HAVE_STACKCHECK=y # CONFIG_STACK_COLORATION is not set -CONFIG_DEBUG_SYMBOLS=y +# CONFIG_DEBUG_SYMBOLS is not set CONFIG_ARCH_HAVE_CUSTOMOPT=y # CONFIG_DEBUG_NOOPT is not set # CONFIG_DEBUG_CUSTOMOPT is not set @@ -142,6 +117,8 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="kinetis" +# CONFIG_ARM_TOOLCHAIN_IAR is not set +CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set @@ -149,7 +126,6 @@ CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set -# CONFIG_DEBUG_HARDFAULT is not set # # ARMV7M Configuration Options @@ -158,6 +134,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -480,7 +457,12 @@ CONFIG_SPI_EXCHANGE=y # CONFIG_BCH is not set # CONFIG_INPUT is not set # CONFIG_IOEXPANDER is not set + +# +# LCD Driver Support +# # CONFIG_LCD is not set +# CONFIG_SLCD is not set # # LED Support @@ -501,38 +483,33 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set - -# -# USART Configuration -# +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set # CONFIG_SERIAL_DMA is not set -# CONFIG_SERIAL_TIOCSERGSTRUCT is not set # CONFIG_ARCH_HAVE_SERIAL_TERMIOS is not set CONFIG_UART0_SERIAL_CONSOLE=y # CONFIG_OTHER_SERIAL_CONSOLE is not set @@ -755,10 +732,10 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # CONFIG_EXAMPLES_FTPC is not set # CONFIG_EXAMPLES_FTPD is not set # CONFIG_EXAMPLES_HELLO is not set -# CONFIG_EXAMPLES_JSON is not set # CONFIG_EXAMPLES_HIDKBD is not set -# CONFIG_EXAMPLES_KEYPADTEST is not set # CONFIG_EXAMPLES_IGMP is not set +# CONFIG_EXAMPLES_JSON is not set +# CONFIG_EXAMPLES_KEYPADTEST is not set # CONFIG_EXAMPLES_MEDIA is not set # CONFIG_EXAMPLES_MM is not set # CONFIG_EXAMPLES_MODBUS is not set @@ -767,17 +744,17 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 CONFIG_EXAMPLES_NSH=y # CONFIG_EXAMPLES_NULL is not set # CONFIG_EXAMPLES_NX is not set -# CONFIG_EXAMPLES_NXTERM is not set # CONFIG_EXAMPLES_NXFFS is not set # CONFIG_EXAMPLES_NXHELLO is not set # CONFIG_EXAMPLES_NXIMAGE is not set # CONFIG_EXAMPLES_NXLINES is not set +# CONFIG_EXAMPLES_NXTERM is not set # CONFIG_EXAMPLES_NXTEXT is not set # CONFIG_EXAMPLES_OSTEST is not set # CONFIG_EXAMPLES_PCA9635 is not set # CONFIG_EXAMPLES_PIPE is not set -# CONFIG_EXAMPLES_PPPD is not set # CONFIG_EXAMPLES_POSIXSPAWN is not set +# CONFIG_EXAMPLES_PPPD is not set # CONFIG_EXAMPLES_RGBLED is not set # CONFIG_EXAMPLES_RGMP is not set # CONFIG_EXAMPLES_SENDMAIL is not set @@ -785,17 +762,17 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_EXAMPLES_SERIALRX is not set # CONFIG_EXAMPLES_SERLOOP is not set # CONFIG_EXAMPLES_SLCD is not set -# CONFIG_EXAMPLES_SMART_TEST is not set # CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMART_TEST is not set # CONFIG_EXAMPLES_SMP is not set # CONFIG_EXAMPLES_TCPECHO is not set # CONFIG_EXAMPLES_TELNETD is not set # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set -# CONFIG_EXAMPLES_WEBSERVER is not set # CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set +# CONFIG_EXAMPLES_WEBSERVER is not set # # File System Utilities @@ -817,8 +794,8 @@ CONFIG_EXAMPLES_NSH=y # Interpreters # # CONFIG_INTERPRETERS_FICL is not set -# CONFIG_INTERPRETERS_PCODE is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set +# CONFIG_INTERPRETERS_PCODE is not set # # FreeModBus @@ -829,6 +806,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set @@ -948,14 +926,21 @@ CONFIG_NSH_ARCHINIT=y # # System Libraries and NSH Add-Ons # -# CONFIG_SYSTEM_FREE is not set +CONFIG_SYSTEM_CDCACM=y +CONFIG_SYSTEM_CDCACM_DEVMINOR=0 +# CONFIG_SYSTEM_CDCACM_TRACEINIT is not set +# CONFIG_SYSTEM_CDCACM_TRACECLASS is not set +# CONFIG_SYSTEM_CDCACM_TRACETRANSFERS is not set +# CONFIG_SYSTEM_CDCACM_TRACECONTROLLER is not set +# CONFIG_SYSTEM_CDCACM_TRACEINTERRUPTS is not set # CONFIG_SYSTEM_CLE is not set # CONFIG_SYSTEM_CUTERM is not set -# CONFIG_SYSTEM_INSTALL is not set +# CONFIG_SYSTEM_FREE is not set # CONFIG_SYSTEM_HEX2BIN is not set CONFIG_SYSTEM_HEXED=y CONFIG_SYSTEM_HEXED_STACKSIZE=2048 CONFIG_SYSTEM_HEXED_PRIORITY=100 +# CONFIG_SYSTEM_INSTALL is not set CONFIG_SYSTEM_RAMTEST=y CONFIG_READLINE_HAVE_EXTMATCH=y CONFIG_SYSTEM_READLINE=y @@ -966,16 +951,7 @@ CONFIG_READLINE_MAX_EXTCMDS=64 CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_CMD_HISTORY_LINELEN=80 CONFIG_READLINE_CMD_HISTORY_LEN=16 -# CONFIG_SYSTEM_SDCARD is not set # CONFIG_SYSTEM_SUDOKU is not set -# CONFIG_SYSTEM_VI is not set -CONFIG_SYSTEM_CDCACM=y -CONFIG_SYSTEM_CDCACM_DEVMINOR=0 -# CONFIG_SYSTEM_CDCACM_TRACEINIT is not set -# CONFIG_SYSTEM_CDCACM_TRACECLASS is not set -# CONFIG_SYSTEM_CDCACM_TRACETRANSFERS is not set -# CONFIG_SYSTEM_CDCACM_TRACECONTROLLER is not set -# CONFIG_SYSTEM_CDCACM_TRACEINTERRUPTS is not set # CONFIG_SYSTEM_UBLOXMODEM is not set CONFIG_SYSTEM_USBMONITOR=y CONFIG_SYSTEM_USBMONITOR_STACKSIZE=2048 @@ -986,4 +962,5 @@ CONFIG_SYSTEM_USBMONITOR_TRACECLASS=y CONFIG_SYSTEM_USBMONITOR_TRACETRANSFERS=y CONFIG_SYSTEM_USBMONITOR_TRACECONTROLLER=y CONFIG_SYSTEM_USBMONITOR_TRACEINTERRUPTS=y +# CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/teensy-3.x/usbnsh/setenv.sh b/configs/teensy-3.x/usbnsh/setenv.sh index e96a2ff345..dedab5191e 100755 --- a/configs/teensy-3.x/usbnsh/setenv.sh +++ b/configs/teensy-3.x/usbnsh/setenv.sh @@ -1,7 +1,7 @@ #!/bin/bash # configs/teensy-3.1/nsh/setenv.sh # -# Copyright (C) 2015 Gregory Nutt. All rights reserved. +# Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -62,13 +62,9 @@ fi # You can this free toolchain here https://launchpad.net/gcc-arm-embedded export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin" -# These are the Cygwin paths to the locations where I installed the Atollic -# toolchain under windows. You will also have to edit this if you install -# the Atollic toolchain in any other location. /usr/bin is added before -# the Atollic bin path because there is are binaries named gcc.exe and g++.exe -# at those locations as well. -#export TOOLCHAIN_BIN="/usr/bin:/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for ARM Pro 2.3.0/ARMTools/bin" -#export TOOLCHAIN_BIN="/usr/bin:/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for STMicroelectronics STM32 Lite 2.3.0/ARMTools/bin" +# This is the path to the location where I installed the devkitARM toolchain +# You can get this free toolchain from http://devkitpro.org/ or http://sourceforge.net/projects/devkitpro/ +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/devkitARM/bin" # This is the Cygwin path to the location where I build the buildroot # toolchain.