mirror of
https://github.com/apache/nuttx.git
synced 2026-06-04 14:53:47 +08:00
Get SAMA5D configurations ready for USB hub testing
This commit is contained in:
@@ -111,6 +111,17 @@ config SAMA5D3XPLAINED_AT25_NXFFS
|
|||||||
|
|
||||||
endchoice # AT25 serial FLASH configuration
|
endchoice # AT25 serial FLASH configuration
|
||||||
|
|
||||||
|
config SAMA5D3XPLAINED_USBHOST_STACKSIZE
|
||||||
|
int "USB host waiter stack size"
|
||||||
|
default 1536 if USBHOST_HUB
|
||||||
|
default 1024 if !USBHOST_HUB
|
||||||
|
depends on USBHOST
|
||||||
|
|
||||||
|
config SAMA5D3XPLAINED_USBHOST_PRIO
|
||||||
|
int "USB host waiter task priority"
|
||||||
|
default 100
|
||||||
|
depends on USBHOST
|
||||||
|
|
||||||
config SAMA5D3XPLAINED_CHANNEL
|
config SAMA5D3XPLAINED_CHANNEL
|
||||||
int "PWM channel number"
|
int "PWM channel number"
|
||||||
default 0 if SAMA5_PWM_CHAN0
|
default 0 if SAMA5_PWM_CHAN0
|
||||||
|
|||||||
@@ -738,7 +738,7 @@ Serial Console
|
|||||||
5 PE14 (available)
|
5 PE14 (available)
|
||||||
6 GND
|
6 GND
|
||||||
|
|
||||||
By default the DBUG is used as the NuttX serial console in all
|
By default the DBUG port is used as the NuttX serial console in all
|
||||||
configurations (unless otherwise noted). The DBGU is available at
|
configurations (unless otherwise noted). The DBGU is available at
|
||||||
logic levels at pins RXD and TXD of the DEBUG connector (J23). GND
|
logic levels at pins RXD and TXD of the DEBUG connector (J23). GND
|
||||||
is available at J23 and +3.3V is available from J14
|
is available at J23 and +3.3V is available from J14
|
||||||
@@ -1397,11 +1397,13 @@ USB High-Speed Host
|
|||||||
CONFIG_USBHOST_MSC=y : Enable the mass storage class driver
|
CONFIG_USBHOST_MSC=y : Enable the mass storage class driver
|
||||||
CONFIG_USBHOST_HIDKBD=y : Enable the HID keyboard class driver
|
CONFIG_USBHOST_HIDKBD=y : Enable the HID keyboard class driver
|
||||||
|
|
||||||
Library Routines
|
RTOS Features -> Work Queue Support
|
||||||
CONFIG_SCHED_WORKQUEUE=y : Worker thread support is required
|
CONFIG_SCHED_WORKQUEUE=y : High priority worker thread support is required
|
||||||
|
CONFIG_SCHED_HPWORK=y :
|
||||||
|
|
||||||
Application Configuration -> NSH Library
|
Application Configuration -> NSH Library
|
||||||
CONFIG_NSH_ARCHINIT=y : NSH board-initialization
|
CONFIG_NSH_ARCHINIT=y : NSH board-initialization
|
||||||
|
file1: CONFIG_USBHOST_ISOC_DISABLE=y
|
||||||
|
|
||||||
NOTE: When OHCI is selected, the SAMA5 will operate at 384MHz instead of
|
NOTE: When OHCI is selected, the SAMA5 will operate at 384MHz instead of
|
||||||
396MHz. This is so that the PLL generates a frequency which is a multiple
|
396MHz. This is so that the PLL generates a frequency which is a multiple
|
||||||
@@ -1422,7 +1424,7 @@ USB High-Speed Host
|
|||||||
System Type -> USB High Speed Host driver options
|
System Type -> USB High Speed Host driver options
|
||||||
CONFIG_SAMA5_EHCI=y : High-speed EHCI support
|
CONFIG_SAMA5_EHCI=y : High-speed EHCI support
|
||||||
CONFIG_SAMA5_OHCI=y : Low/full-speed OHCI support
|
CONFIG_SAMA5_OHCI=y : Low/full-speed OHCI support
|
||||||
: Defaults for values probably OK for both
|
: Defaults for values probably OK for both
|
||||||
Device Drivers
|
Device Drivers
|
||||||
CONFIG_USBHOST=y : Enable USB host support
|
CONFIG_USBHOST=y : Enable USB host support
|
||||||
CONFIG_USBHOST_INT_DISABLE=y : Interrupt endpoints not needed
|
CONFIG_USBHOST_INT_DISABLE=y : Interrupt endpoints not needed
|
||||||
@@ -1433,11 +1435,45 @@ USB High-Speed Host
|
|||||||
CONFIG_USBHOST_MSC=y : Enable the mass storage class driver
|
CONFIG_USBHOST_MSC=y : Enable the mass storage class driver
|
||||||
CONFIG_USBHOST_HIDKBD=y : Enable the HID keyboard class driver
|
CONFIG_USBHOST_HIDKBD=y : Enable the HID keyboard class driver
|
||||||
|
|
||||||
Library Routines
|
RTOS Features -> Work Queue Support
|
||||||
CONFIG_SCHED_WORKQUEUE=y : Worker thread support is required
|
CONFIG_SCHED_WORKQUEUE=y : High priority worker thread support is required
|
||||||
|
CONFIG_SCHED_HPWORK=y :
|
||||||
|
|
||||||
Application Configuration -> NSH Library
|
Application Configuration -> NSH Library
|
||||||
CONFIG_NSH_ARCHINIT=y : NSH board-initialization
|
CONFIG_NSH_ARCHINIT=y : NSH board-initialization
|
||||||
|
|
||||||
|
USB Hub Support
|
||||||
|
----------------
|
||||||
|
|
||||||
|
USB hub support can be included by adding the following changes to the configuration (in addition to those listed above):
|
||||||
|
|
||||||
|
Drivers -> USB Host Driver Support
|
||||||
|
CONFIG_USBHOST_HUB=y : Enable the hub class
|
||||||
|
CONFIG_USBHOST_ASYNCH=y : Asynchonous I/O supported needed for hubs
|
||||||
|
|
||||||
|
System Type -> USB High Speed Host driver options
|
||||||
|
CONFIG_SAMA5_OHCI_NEDS=12 : You will probably want more pipes
|
||||||
|
CONFIG_SAMA5_OHCI_NTDS=18
|
||||||
|
CONFIG_SAMA5_OHCI_TDBUFFERS=12
|
||||||
|
CONFIG_SAMA5_OHCI_TDBUFSIZE=128
|
||||||
|
|
||||||
|
Board Selection ->
|
||||||
|
CONFIG_SAMA5D3XPLAINED_USBHOST_STACKSIZE=2048 (bigger than it needs to be)
|
||||||
|
|
||||||
|
RTOS Features -> Work Queue Support
|
||||||
|
CONFIG_SCHED_LPWORK=y : Low priority queue support is needed
|
||||||
|
CONFIG_SCHED_LPNTHREADS=1
|
||||||
|
CONFIG_SCHED_LPWORKSTACKSIZE=1024
|
||||||
|
|
||||||
|
NOTES:
|
||||||
|
|
||||||
|
1. It is necessary to perform work on the low-priority work queue
|
||||||
|
(vs. the high priority work queue) because deferred hub-related
|
||||||
|
work requires some delays and waiting that is not appropriate on
|
||||||
|
the high priority work queue.
|
||||||
|
|
||||||
|
2. Stack usage make increase when USB hub support is enabled because
|
||||||
|
the nesting depth of certain USB host class logic can increase.
|
||||||
|
|
||||||
Mass Storage Device Usage
|
Mass Storage Device Usage
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|||||||
@@ -63,12 +63,12 @@
|
|||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifndef CONFIG_USBHOST_DEFPRIO
|
#ifndef CONFIG_SAMA5D3XPLAINED_USBHOST_PRIO
|
||||||
# define CONFIG_USBHOST_DEFPRIO 50
|
# define CONFIG_SAMA5D3XPLAINED_USBHOST_PRIO 50
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_USBHOST_STACKSIZE
|
#ifndef CONFIG_SAMA5D3XPLAINED_USBHOST_STACKSIZE
|
||||||
# define CONFIG_USBHOST_STACKSIZE 1024
|
# define CONFIG_SAMA5D3XPLAINED_USBHOST_STACKSIZE 1024
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_USBDEV
|
#ifdef HAVE_USBDEV
|
||||||
@@ -257,8 +257,10 @@ void weak_function sam_usbinitialize(void)
|
|||||||
#ifdef CONFIG_SAMA5_UHPHS_RHPORT1
|
#ifdef CONFIG_SAMA5_UHPHS_RHPORT1
|
||||||
/* Configure Port A to support the USB OHCI/EHCI function */
|
/* Configure Port A to support the USB OHCI/EHCI function */
|
||||||
|
|
||||||
|
#ifdef PIO_USBA_VBUS_ENABLE /* SAMA5D3-Xplained has no port A VBUS enable */
|
||||||
sam_configpio(PIO_USBA_VBUS_ENABLE); /* VBUS enable, initially OFF */
|
sam_configpio(PIO_USBA_VBUS_ENABLE); /* VBUS enable, initially OFF */
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SAMA5_UHPHS_RHPORT2
|
#ifdef CONFIG_SAMA5_UHPHS_RHPORT2
|
||||||
/* Configure Port B to support the USB OHCI/EHCI function */
|
/* Configure Port B to support the USB OHCI/EHCI function */
|
||||||
@@ -298,10 +300,20 @@ int sam_usbhost_initialize(void)
|
|||||||
|
|
||||||
/* First, register all of the class drivers needed to support the drivers
|
/* First, register all of the class drivers needed to support the drivers
|
||||||
* that we care about
|
* that we care about
|
||||||
*
|
|
||||||
* Register theUSB host Mass Storage Class:
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_USBHOST_HUB
|
||||||
|
/* Initialize USB hub class support */
|
||||||
|
|
||||||
|
ret = usbhost_hub_initialize();
|
||||||
|
if (ret < 0)
|
||||||
|
{
|
||||||
|
udbg("ERROR: usbhost_hub_initialize failed: %d\n", ret);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Register theUSB host Mass Storage Class */
|
||||||
|
|
||||||
ret = usbhost_storageinit();
|
ret = usbhost_storageinit();
|
||||||
if (ret != OK)
|
if (ret != OK)
|
||||||
{
|
{
|
||||||
@@ -330,7 +342,8 @@ int sam_usbhost_initialize(void)
|
|||||||
|
|
||||||
/* Start a thread to handle device connection. */
|
/* Start a thread to handle device connection. */
|
||||||
|
|
||||||
pid = task_create("OHCI Monitor", CONFIG_USBHOST_DEFPRIO, CONFIG_USBHOST_STACKSIZE,
|
pid = task_create("OHCI Monitor", CONFIG_SAMA5D3XPLAINED_USBHOST_PRIO,
|
||||||
|
CONFIG_SAMA5D3XPLAINED_USBHOST_STACKSIZE,
|
||||||
(main_t)ohci_waiter, (FAR char * const *)NULL);
|
(main_t)ohci_waiter, (FAR char * const *)NULL);
|
||||||
if (pid < 0)
|
if (pid < 0)
|
||||||
{
|
{
|
||||||
@@ -351,7 +364,8 @@ int sam_usbhost_initialize(void)
|
|||||||
|
|
||||||
/* Start a thread to handle device connection. */
|
/* Start a thread to handle device connection. */
|
||||||
|
|
||||||
pid = task_create("EHCI Monitor", CONFIG_USBHOST_DEFPRIO, CONFIG_USBHOST_STACKSIZE,
|
pid = task_create("EHCI Monitor", CONFIG_SAMA5D3XPLAINED_USBHOST_PRIO,
|
||||||
|
CONFIG_SAMA5D3XPLAINED_USBHOST_STACKSIZE,
|
||||||
(main_t)ehci_waiter, (FAR char * const *)NULL);
|
(main_t)ehci_waiter, (FAR char * const *)NULL);
|
||||||
if (pid < 0)
|
if (pid < 0)
|
||||||
{
|
{
|
||||||
@@ -393,9 +407,15 @@ void sam_usbhost_vbusdrive(int rhport, bool enable)
|
|||||||
switch (rhport)
|
switch (rhport)
|
||||||
{
|
{
|
||||||
case SAM_RHPORT1:
|
case SAM_RHPORT1:
|
||||||
#ifndef CONFIG_SAMA5_UHPHS_RHPORT1
|
#if !defined(CONFIG_SAMA5_UHPHS_RHPORT1)
|
||||||
udbg("ERROR: RHPort1 is not available in this configuration\n");
|
udbg("ERROR: RHPort1 is not available in this configuration\n");
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
#elif !defined(PIO_USBA_VBUS_ENABLE)
|
||||||
|
/* SAMA5D3-Xplained has no port A VBUS enable */
|
||||||
|
|
||||||
|
udbg("ERROR: RHPort1 has no VBUS enable\n");
|
||||||
|
return;
|
||||||
#else
|
#else
|
||||||
pinset = PIO_USBA_VBUS_ENABLE;
|
pinset = PIO_USBA_VBUS_ENABLE;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -178,6 +178,17 @@ config SAMA5D3xEK_AT24_NXFFS
|
|||||||
|
|
||||||
endchoice # AT24 serial EPPROM configuration
|
endchoice # AT24 serial EPPROM configuration
|
||||||
|
|
||||||
|
config SAMA5D3xEK_USBHOST_STACKSIZE
|
||||||
|
int "USB host waiter stack size"
|
||||||
|
default 1536 if USBHOST_HUB
|
||||||
|
default 1024 if !USBHOST_HUB
|
||||||
|
depends on USBHOST
|
||||||
|
|
||||||
|
config SAMA5D3xEK_USBHOST_PRIO
|
||||||
|
int "USB host waiter task priority"
|
||||||
|
default 100
|
||||||
|
depends on USBHOST
|
||||||
|
|
||||||
config SAMA5D3xEK_TSD_DEVMINOR
|
config SAMA5D3xEK_TSD_DEVMINOR
|
||||||
int "Touchscreen device minor"
|
int "Touchscreen device minor"
|
||||||
default 0
|
default 0
|
||||||
|
|||||||
@@ -1572,8 +1572,9 @@ USB High-Speed Host
|
|||||||
CONFIG_USBHOST_MSC=y : Enable the mass storage class driver
|
CONFIG_USBHOST_MSC=y : Enable the mass storage class driver
|
||||||
CONFIG_USBHOST_HIDKBD=y : Enable the HID keyboard class driver
|
CONFIG_USBHOST_HIDKBD=y : Enable the HID keyboard class driver
|
||||||
|
|
||||||
Library Routines
|
RTOS Features -> Work Queue Support
|
||||||
CONFIG_SCHED_WORKQUEUE=y : Worker thread support is required
|
CONFIG_SCHED_WORKQUEUE=y : High priority worker thread support is required
|
||||||
|
CONFIG_SCHED_HPWORK=y :
|
||||||
|
|
||||||
Application Configuration -> NSH Library
|
Application Configuration -> NSH Library
|
||||||
CONFIG_NSH_ARCHINIT=y : NSH board-initialization
|
CONFIG_NSH_ARCHINIT=y : NSH board-initialization
|
||||||
@@ -1603,12 +1604,46 @@ USB High-Speed Host
|
|||||||
CONFIG_USBHOST_MSC=y : Enable the mass storage class driver
|
CONFIG_USBHOST_MSC=y : Enable the mass storage class driver
|
||||||
CONFIG_USBHOST_HIDKBD=y : Enable the HID keyboard class driver
|
CONFIG_USBHOST_HIDKBD=y : Enable the HID keyboard class driver
|
||||||
|
|
||||||
Library Routines
|
RTOS Features -> Work Queue Support
|
||||||
CONFIG_SCHED_WORKQUEUE=y : Worker thread support is required
|
CONFIG_SCHED_WORKQUEUE=y : High priority worker thread support is required
|
||||||
|
CONFIG_SCHED_HPWORK=y :
|
||||||
|
|
||||||
Application Configuration -> NSH Library
|
Application Configuration -> NSH Library
|
||||||
CONFIG_NSH_ARCHINIT=y : NSH board-initialization
|
CONFIG_NSH_ARCHINIT=y : NSH board-initialization
|
||||||
|
|
||||||
|
USB Hub Support
|
||||||
|
----------------
|
||||||
|
|
||||||
|
USB hub support can be included by adding the following changes to the configuration (in addition to those listed above):
|
||||||
|
|
||||||
|
Drivers -> USB Host Driver Support
|
||||||
|
CONFIG_USBHOST_HUB=y : Enable the hub class
|
||||||
|
CONFIG_USBHOST_ASYNCH=y : Asynchonous I/O supported needed for hubs
|
||||||
|
|
||||||
|
System Type -> USB High Speed Host driver options
|
||||||
|
CONFIG_SAMA5_OHCI_NEDS=12 : You will probably want more pipes
|
||||||
|
CONFIG_SAMA5_OHCI_NTDS=18
|
||||||
|
CONFIG_SAMA5_OHCI_TDBUFFERS=12
|
||||||
|
CONFIG_SAMA5_OHCI_TDBUFSIZE=128
|
||||||
|
|
||||||
|
Board Selection ->
|
||||||
|
CONFIG_SAMA5D3XEK_USBHOST_STACKSIZE=2048 (bigger than it needs to be)
|
||||||
|
|
||||||
|
RTOS Features -> Work Queue Support
|
||||||
|
CONFIG_SCHED_LPWORK=y : Low priority queue support is needed
|
||||||
|
CONFIG_SCHED_LPNTHREADS=1
|
||||||
|
CONFIG_SCHED_LPWORKSTACKSIZE=1024
|
||||||
|
|
||||||
|
NOTES:
|
||||||
|
|
||||||
|
1. It is necessary to perform work on the low-priority work queue
|
||||||
|
(vs. the high priority work queue) because deferred hub-related
|
||||||
|
work requires some delays and waiting that is not appropriate on
|
||||||
|
the high priority work queue.
|
||||||
|
|
||||||
|
2. Stack usage make increase when USB hub support is enabled because
|
||||||
|
the nesting depth of certain USB host class logic can increase.
|
||||||
|
|
||||||
Mass Storage Device Usage
|
Mass Storage Device Usage
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -63,12 +63,12 @@
|
|||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifndef CONFIG_USBHOST_DEFPRIO
|
#ifndef CONFIG_SAMA5D3xEK_USBHOST_PRIO
|
||||||
# define CONFIG_USBHOST_DEFPRIO 50
|
# define CONFIG_SAMA5D3xEK_USBHOST_PRIO 50
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_USBHOST_STACKSIZE
|
#ifndef CONFIG_SAMA5D3xEK_USBHOST_STACKSIZE
|
||||||
# define CONFIG_USBHOST_STACKSIZE 1024
|
# define CONFIG_SAMA5D3xEK_USBHOST_STACKSIZE 1024
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_USBDEV
|
#ifdef HAVE_USBDEV
|
||||||
@@ -340,7 +340,8 @@ int sam_usbhost_initialize(void)
|
|||||||
|
|
||||||
/* Start a thread to handle device connection. */
|
/* Start a thread to handle device connection. */
|
||||||
|
|
||||||
pid = task_create("OHCI Monitor", CONFIG_USBHOST_DEFPRIO, CONFIG_USBHOST_STACKSIZE,
|
pid = task_create("OHCI Monitor", CONFIG_SAMA5D3xEK_USBHOST_PRIO,
|
||||||
|
CONFIG_SAMA5D3xEK_USBHOST_STACKSIZE,
|
||||||
(main_t)ohci_waiter, (FAR char * const *)NULL);
|
(main_t)ohci_waiter, (FAR char * const *)NULL);
|
||||||
if (pid < 0)
|
if (pid < 0)
|
||||||
{
|
{
|
||||||
@@ -361,7 +362,8 @@ int sam_usbhost_initialize(void)
|
|||||||
|
|
||||||
/* Start a thread to handle device connection. */
|
/* Start a thread to handle device connection. */
|
||||||
|
|
||||||
pid = task_create("EHCI Monitor", CONFIG_USBHOST_DEFPRIO, CONFIG_USBHOST_STACKSIZE,
|
pid = task_create("EHCI Monitor", CONFIG_SAMA5D3xEK_USBHOST_PRIO,
|
||||||
|
CONFIG_SAMA5D3xEK_USBHOST_STACKSIZE,
|
||||||
(main_t)ehci_waiter, (FAR char * const *)NULL);
|
(main_t)ehci_waiter, (FAR char * const *)NULL);
|
||||||
if (pid < 0)
|
if (pid < 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -321,6 +321,17 @@ config SAMA5D4EK_ROMFS_MOUNT_MOUNTPOINT
|
|||||||
|
|
||||||
endif # SAMA5D4EK_ROMFS_MOUNT
|
endif # SAMA5D4EK_ROMFS_MOUNT
|
||||||
|
|
||||||
|
config SAMA5D4EK_USBHOST_STACKSIZE
|
||||||
|
int "USB host waiter stack size"
|
||||||
|
default 1536 if USBHOST_HUB
|
||||||
|
default 1024 if !USBHOST_HUB
|
||||||
|
depends on USBHOST
|
||||||
|
|
||||||
|
config SAMA5D4EK_USBHOST_PRIO
|
||||||
|
int "USB host waiter task priority"
|
||||||
|
default 100
|
||||||
|
depends on USBHOST
|
||||||
|
|
||||||
if INPUT_MXT
|
if INPUT_MXT
|
||||||
|
|
||||||
config SAMA5D4EK_MXT_I2CFREQUENCY
|
config SAMA5D4EK_MXT_I2CFREQUENCY
|
||||||
|
|||||||
@@ -1951,8 +1951,9 @@ USB High-Speed Host
|
|||||||
CONFIG_USBHOST_MSC=y : Enable the mass storage class driver
|
CONFIG_USBHOST_MSC=y : Enable the mass storage class driver
|
||||||
CONFIG_USBHOST_HIDKBD=y : Enable the HID keyboard class driver
|
CONFIG_USBHOST_HIDKBD=y : Enable the HID keyboard class driver
|
||||||
|
|
||||||
Library Routines
|
RTOS Features -> Work Queue Support
|
||||||
CONFIG_SCHED_WORKQUEUE=y : Worker thread support is required
|
CONFIG_SCHED_WORKQUEUE=y : High priority worker thread support is required
|
||||||
|
CONFIG_SCHED_HPWORK=y :
|
||||||
|
|
||||||
Application Configuration -> NSH Library
|
Application Configuration -> NSH Library
|
||||||
CONFIG_NSH_ARCHINIT=y : NSH board-initialization
|
CONFIG_NSH_ARCHINIT=y : NSH board-initialization
|
||||||
@@ -1985,12 +1986,46 @@ USB High-Speed Host
|
|||||||
CONFIG_USBHOST_MSC=y : Enable the mass storage class driver
|
CONFIG_USBHOST_MSC=y : Enable the mass storage class driver
|
||||||
CONFIG_USBHOST_HIDKBD=y : Enable the HID keyboard class driver
|
CONFIG_USBHOST_HIDKBD=y : Enable the HID keyboard class driver
|
||||||
|
|
||||||
Library Routines
|
RTOS Features -> Work Queue Support
|
||||||
CONFIG_SCHED_WORKQUEUE=y : Worker thread support is required
|
CONFIG_SCHED_WORKQUEUE=y : High priority worker thread support is required
|
||||||
|
CONFIG_SCHED_HPWORK=y :
|
||||||
|
|
||||||
Application Configuration -> NSH Library
|
Application Configuration -> NSH Library
|
||||||
CONFIG_NSH_ARCHINIT=y : NSH board-initialization
|
CONFIG_NSH_ARCHINIT=y : NSH board-initialization
|
||||||
|
|
||||||
|
USB Hub Support
|
||||||
|
----------------
|
||||||
|
|
||||||
|
USB hub support can be included by adding the following changes to the configuration (in addition to those listed above):
|
||||||
|
|
||||||
|
Drivers -> USB Host Driver Support
|
||||||
|
CONFIG_USBHOST_HUB=y : Enable the hub class
|
||||||
|
CONFIG_USBHOST_ASYNCH=y : Asynchonous I/O supported needed for hubs
|
||||||
|
|
||||||
|
System Type -> USB High Speed Host driver options
|
||||||
|
CONFIG_SAMA5_OHCI_NEDS=12 : You will probably want more pipes
|
||||||
|
CONFIG_SAMA5_OHCI_NTDS=18
|
||||||
|
CONFIG_SAMA5_OHCI_TDBUFFERS=12
|
||||||
|
CONFIG_SAMA5_OHCI_TDBUFSIZE=128
|
||||||
|
|
||||||
|
Board Selection ->
|
||||||
|
CONFIG_SAMA5D4EK_USBHOST_STACKSIZE=2048 (bigger than it needs to be)
|
||||||
|
|
||||||
|
RTOS Features -> Work Queue Support
|
||||||
|
CONFIG_SCHED_LPWORK=y : Low priority queue support is needed
|
||||||
|
CONFIG_SCHED_LPNTHREADS=1
|
||||||
|
CONFIG_SCHED_LPWORKSTACKSIZE=1024
|
||||||
|
|
||||||
|
NOTES:
|
||||||
|
|
||||||
|
1. It is necessary to perform work on the low-priority work queue
|
||||||
|
(vs. the high priority work queue) because deferred hub-related
|
||||||
|
work requires some delays and waiting that is not appropriate on
|
||||||
|
the high priority work queue.
|
||||||
|
|
||||||
|
2. Stack usage make increase when USB hub support is enabled because
|
||||||
|
the nesting depth of certain USB host class logic can increase.
|
||||||
|
|
||||||
Mass Storage Device Usage
|
Mass Storage Device Usage
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -63,12 +63,12 @@
|
|||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifndef CONFIG_USBHOST_DEFPRIO
|
#ifndef CONFIG_SAMA5D4EK_USBHOST_PRIO
|
||||||
# define CONFIG_USBHOST_DEFPRIO 50
|
# define CONFIG_SAMA5D4EK_USBHOST_PRIO 50
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_USBHOST_STACKSIZE
|
#ifndef CONFIG_SAMA5D4EK_USBHOST_STACKSIZE
|
||||||
# define CONFIG_USBHOST_STACKSIZE 1024
|
# define CONFIG_SAMA5D4EK_USBHOST_STACKSIZE 1024
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_USBDEV
|
#ifdef HAVE_USBDEV
|
||||||
@@ -341,7 +341,8 @@ int sam_usbhost_initialize(void)
|
|||||||
|
|
||||||
/* Start a thread to handle device connection. */
|
/* Start a thread to handle device connection. */
|
||||||
|
|
||||||
pid = task_create("OHCI Monitor", CONFIG_USBHOST_DEFPRIO, CONFIG_USBHOST_STACKSIZE,
|
pid = task_create("OHCI Monitor", CONFIG_SAMA5D4EK_USBHOST_PRIO,
|
||||||
|
CONFIG_SAMA5D4EK_USBHOST_STACKSIZE,
|
||||||
(main_t)ohci_waiter, (FAR char * const *)NULL);
|
(main_t)ohci_waiter, (FAR char * const *)NULL);
|
||||||
if (pid < 0)
|
if (pid < 0)
|
||||||
{
|
{
|
||||||
@@ -362,7 +363,8 @@ int sam_usbhost_initialize(void)
|
|||||||
|
|
||||||
/* Start a thread to handle device connection. */
|
/* Start a thread to handle device connection. */
|
||||||
|
|
||||||
pid = task_create("EHCI Monitor", CONFIG_USBHOST_DEFPRIO, CONFIG_USBHOST_STACKSIZE,
|
pid = task_create("EHCI Monitor", CONFIG_SAMA5D4EK_USBHOST_PRIO,
|
||||||
|
CONFIG_SAMA5D4EK_USBHOST_STACKSIZE,
|
||||||
(main_t)ehci_waiter, (FAR char * const *)NULL);
|
(main_t)ehci_waiter, (FAR char * const *)NULL);
|
||||||
if (pid < 0)
|
if (pid < 0)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user