diff --git a/configs/sam4e-ek/README.txt b/configs/sam4e-ek/README.txt index 922ae711e4d..a7c14ed37c5 100644 --- a/configs/sam4e-ek/README.txt +++ b/configs/sam4e-ek/README.txt @@ -398,12 +398,26 @@ Networking : Defaults should be okay for other options Application Configuration -> NSH Library CONFIG_NSH_TELNET=y : Enable NSH session via Telnet - CONFIG_NSH_IPADDR=0x0a000002 : Select an IP address + CONFIG_NSH_IPADDR=0x0a000002 : Select a fixed IP address CONFIG_NSH_DRIPADDR=0x0a000001 : IP address of gateway/host PC CONFIG_NSH_NETMASK=0xffffff00 : Netmask CONFIG_NSH_NOMAC=y : Need to make up a bogus MAC address : Defaults should be okay for other options + You can also enable enable the DHCPC client for networks that use + dynamically assigned address: + + Application Configuration -> Network Utilities + CONFIG_NETUTILS_DHCPC=y : Enables the DHCP client + + Networking Support + CONFIG_NET_UDP=y : Depends on broadcast UDP + + Application Configuration -> NSH Library + CONFIG_NET_BROADCAST=y + CONFIG_NSH_DHCPC=y : Tells NSH to use DHCPC, not + : the fixed addresses + Using the network with NSH -------------------------- @@ -485,8 +499,8 @@ Networking so that access to the NSH prompt is not delayed. This delay will be especially long if the board is not connected to - a network. - + a network because additional time will be required to fail with timeout + errors. SAM4E-EK-specific Configuration Options ======================================= @@ -688,23 +702,17 @@ Configurations 2. Unless stated otherwise, all configurations generate console output on UART0 (J3). - 3. Unless otherwise stated, the configurations are setup for - Linux (or any other POSIX environment like Cygwin under Windows): - - Build Setup: - CONFIG_HOST_LINUX=y : Linux or other POSIX environment - - 4. All of these configurations use the older, OABI, buildroot toolchain - (unless stated otherwise in the description of the configuration). That - toolchain selection can easily be reconfigured using 'make menuconfig'. - Here are the relevant current settings: + 3. All of these configurations are set up to build under Linux using the + EABI buildroot toolchain (unless stated otherwise in the description of + the configuration). That build selection can easily be reconfigured + using 'make menuconfig'. Here are the relevant current settings: Build Setup: CONFIG_HOST_LINUX=y : Linux or other pure POSIX invironment - : (including Cygwin) + System Type -> Toolchain: CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain - CONFIG_ARMV7M_OABI_TOOLCHAIN=y : Older, OABI toolchain + CONFIG_ARMV7M_OABI_TOOLCHAIN=n : EABI (Not OABI If you want to use the Atmel GCC toolchain, for example, here are the steps to do so: @@ -753,7 +761,39 @@ Configurations Applicaton Configuration: CONFIG_NSH_BUILTIN_APPS=y : Enable starting apps from NSH command line - 2. This configuration has been used for verifying the touchscreen on + 2. This configuration has the network enabled by default. This can be + easily disabled or reconfigured (See see the network related + configuration settings above in the section entitled "Networking"). + + NOTE: In boot-up sequence is very simple in this example; all + initialization is done sequential (vs. in parallel) and so you will + not see the NSH prompt until all initialization is complete. The + network bring-up in particular will add some delay before the NSH + prompt appears. In a real application, you would probably want to + do the network bringup on a separate thread so that access to the + NSH prompt is not delayed. + + This delay will be especially long if the board is not connected to + a network because additional time will be required to fail with + timeout errors. + + 3. This configuration supports a network with fixed IP address. You + may have to change these settings for your network: + + CONFIG_NSH_IPADDR=0x0a000002 : IP address: 10.0.0.2 + CONFIG_NSH_DRIPADDR=0x0a000001 : Gateway: 10.0.0.1 + CONFIG_NSH_NETMASK=0xffffff00 : Netmask: 255.255.255.0 + + You can also enable enable the DHCPC client for networks that use + dynamically assigned address: + + CONFIG_NETUTILS_DHCPC=y : Enables the DHCP client + CONFIG_NET_UDP=y : Depends on broadcast UDP + CONFIG_NET_BROADCAST=y + CONFIG_NSH_DHCPC=y : Tells NSH to use DHCPC, not + : the fixed addresses + + 4. This configuration has been used for verifying the touchscreen on on the SAM4E-EK LCD. With these modifications, you can include the touchscreen test program at apps/examples/touchscreen as an NSH built-in application. You can enable the touchscreen and test by modifying the @@ -797,7 +837,7 @@ Configurations CONFIG_DEBUG_VERBOSE=y : Enable verbose debug output CONFIG_DEBUG_INPUT=y : Enable debug output from input devices - 3. Enabling HSMCI support. The SAM3U-KE provides a an SD memory card + 4. Enabling HSMCI support. The SAM3U-KE provides a an SD memory card slot. Support for the SD slot can be enabled with the following settings: @@ -824,14 +864,7 @@ Configurations CONFIG_NSH_ARCHINIT=y : NSH board-initialization STATUS: - 2013-6-28: The touchscreen is functional. - 2013-6-29: Hmmm... but there appear to be conditions when the - touchscreen driver locks up. Looks like some issue with - managing the interrupts. - 2013-6-30: Those lock-ups appear to be due to poorly placed - debug output statements. If you do not enable debug output, - the touchscreen is rock-solid. - 2013-8-10: Added the comments above above enabling HSMCI memory - card support and verified that the configuration builds without - error. However, that configuration has not yet been tested (and - is may even be incomplete). + 2014-3-13: The basic NSH serial console is working. Network support + has been verified. HSMCI and touchscreen have not been tested (the + above notes came from the SAM3U-EK and have not been yet been tested + on the SAM4E-EK). diff --git a/configs/sam4e-ek/nsh/defconfig b/configs/sam4e-ek/nsh/defconfig index cdf401ff5d8..c08c1eb4613 100644 --- a/configs/sam4e-ek/nsh/defconfig +++ b/configs/sam4e-ek/nsh/defconfig @@ -12,6 +12,10 @@ CONFIG_HOST_LINUX=y # CONFIG_HOST_OSX is not set # CONFIG_HOST_WINDOWS is not set # CONFIG_HOST_OTHER is not set +# CONFIG_WINDOWS_NATIVE is not set +# CONFIG_WINDOWS_CYGWIN is not set +# CONFIG_WINDOWS_MSYS is not set +# CONFIG_WINDOWS_OTHER is not set # # Build Configuration @@ -105,15 +109,22 @@ CONFIG_ARCH_HAVE_MPU=y # # ARMV7M Configuration Options # +# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW is not set +# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set # CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set +# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW is not set +# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set # CONFIG_ARMV7M_OABI_TOOLCHAIN is not set # CONFIG_GPIO_IRQ is not set CONFIG_ARCH_HAVE_EXTNAND=y CONFIG_ARCH_HAVE_EXTNOR=y CONFIG_ARCH_HAVE_EXTSRAM0=y +# CONFIG_NET_MULTICAST is not set CONFIG_ARCH_HAVE_EXTSRAM1=y # @@ -167,6 +178,25 @@ CONFIG_ARCH_CHIP_SAM4E=y # # AT91SAM3/4 Peripheral Support # +# CONFIG_SAM34_ACC is not set +# CONFIG_SAM34_AES is not set +# CONFIG_SAM34_AFEC0 is not set +# CONFIG_SAM34_AFEC1 is not set +# CONFIG_SAM34_CAN0 is not set +# CONFIG_SAM34_CAN1 is not set +# CONFIG_SAM34_CHIPID is not set +# CONFIG_SAM34_CMCC is not set +# CONFIG_SAM34_DACC is not set +# CONFIG_SAM34_EIC is not set +# CONFIG_SAM34_DMAC is not set +CONFIG_SAM34_EMAC=y +# CONFIG_SAM34_HSMCI is not set +# CONFIG_SAM34_NAND is not set +# CONFIG_SAM34_PDCA is not set +# CONFIG_SAM34_PWM is not set +# CONFIG_SAM34_RTC is not set +# CONFIG_SAM34_RTT is not set +# CONFIG_SAM34_SMC is not set # CONFIG_SAM34_SPI0 is not set # CONFIG_SAM34_TC0 is not set # CONFIG_SAM34_TC1 is not set @@ -177,37 +207,19 @@ CONFIG_ARCH_CHIP_SAM4E=y # CONFIG_SAM34_TC6 is not set # CONFIG_SAM34_TC7 is not set # CONFIG_SAM34_TC8 is not set -# CONFIG_SAM34_PWM is not set # CONFIG_SAM34_TWIM0 is not set # CONFIG_SAM34_TWIS0 is not set # CONFIG_SAM34_TWIM1 is not set # CONFIG_SAM34_TWIS1 is not set CONFIG_SAM34_UART0=y # CONFIG_SAM34_UART1 is not set +# CONFIG_SAM34_UDP is not set # CONFIG_SAM34_USART0 is not set CONFIG_SAM34_USART1=y -# CONFIG_SAM34_AFEC0 is not set -# CONFIG_SAM34_AFEC1 is not set -# CONFIG_SAM34_DACC is not set -# CONFIG_SAM34_ACC is not set -# CONFIG_SAM34_AES is not set -# CONFIG_SAM34_EMAC is not set -# CONFIG_SAM34_CAN0 is not set -# CONFIG_SAM34_CAN1 is not set -# CONFIG_SAM34_SMC is not set -# CONFIG_SAM34_NAND is not set -# CONFIG_SAM34_PDCA is not set -# CONFIG_SAM34_DMAC is not set -# CONFIG_SAM34_UDP is not set -# CONFIG_SAM34_CHIPID is not set -# CONFIG_SAM34_RTC is not set -# CONFIG_SAM34_RTT is not set # CONFIG_SAM34_WDT is not set -# CONFIG_SAM34_EIC is not set -# CONFIG_SAM34_HSMCI is not set # -# External Memory Configuration +# AT91SAM3/4 External Memory Configuration # # CONFIG_SAM34_EXTNAND is not set # CONFIG_SAM34_EXTNOR is not set @@ -218,6 +230,27 @@ CONFIG_SAM34_USART1=y # AT91SAM3/4 GPIO Interrupt Configuration # +# +# AT91SAM3/4 EMAC device driver options +# +CONFIG_SAM34_EMAC_NRXBUFFERS=16 +CONFIG_SAM34_EMAC_NTXBUFFERS=8 +# CONFIG_SAM34_EMAC_PREALLOCATE is not set +# CONFIG_SAM34_EMAC_NBC is not set +CONFIG_SAM34_EMAC_PHYADDR=1 +# CONFIG_SAM34_EMAC_PHYINIT is not set +CONFIG_SAM34_EMAC_MII=y +# CONFIG_SAM34_EMAC_CLAUSE45 is not set +CONFIG_SAM34_EMAC_AUTONEG=y +CONFIG_SAM34_EMAC_PHYSR=30 +CONFIG_SAM34_EMAC_PHYSR_ALTCONFIG=y +CONFIG_SAM34_EMAC_PHYSR_ALTMODE=0x7 +CONFIG_SAM34_EMAC_PHYSR_10HD=0x1 +CONFIG_SAM34_EMAC_PHYSR_100HD=0x2 +CONFIG_SAM34_EMAC_PHYSR_10FD=0x5 +CONFIG_SAM34_EMAC_PHYSR_100FD=0x6 +CONFIG_SAM34_EMAC_ISETH0=y + # # Architecture Options # @@ -383,6 +416,34 @@ CONFIG_DEV_NULL=y # CONFIG_LCD is not set # CONFIG_MMCSD is not set # CONFIG_MTD is not set +CONFIG_NETDEVICES=y + +# +# General Ethernet MAC Driver Options +# +# CONFIG_NETDEV_MULTINIC is not set + +# +# External Ethernet MAC Device Support +# +# CONFIG_NET_DM90x0 is not set +# CONFIG_ENC28J60 is not set +# CONFIG_ENCX24J600 is not set +# CONFIG_NET_E1000 is not set +# CONFIG_NET_SLIP is not set +# CONFIG_NET_VNET is not set + +# +# External Ethernet PHY Device Support +# +# CONFIG_ETH0_PHY_NONE is not set +# CONFIG_ETH0_PHY_AM79C874 is not set +# CONFIG_ETH0_PHY_KS8721 is not set +CONFIG_ETH0_PHY_KSZ8051=y +# CONFIG_ETH0_PHY_KSZ90x1 is not set +# CONFIG_ETH0_PHY_DP83848C is not set +# CONFIG_ETH0_PHY_LAN8720 is not set +# CONFIG_ETH0_PHY_DM9161 is not set # CONFIG_PIPES is not set # CONFIG_PM is not set # CONFIG_POWER is not set @@ -464,9 +525,51 @@ CONFIG_USART1_2STOP=0 # # Networking Support # -# CONFIG_ARCH_HAVE_NET is not set -# CONFIG_ARCH_HAVE_PHY is not set -# CONFIG_NET is not set +CONFIG_ARCH_HAVE_NET=y +CONFIG_ARCH_HAVE_PHY=y +CONFIG_NET=y +# CONFIG_NET_NOINTS is not set +# CONFIG_NET_MULTIBUFFER is not set +# CONFIG_NET_PROMISCUOUS is not set +CONFIG_NSOCKET_DESCRIPTORS=8 +CONFIG_NET_NACTIVESOCKETS=16 +CONFIG_NET_SOCKOPTS=y +# CONFIG_NET_SOLINGER is not set +CONFIG_NET_BUFSIZE=562 +# CONFIG_NET_TCPURGDATA is not set + +# +# TCP/IP Networking +# +CONFIG_NET_TCP=y +CONFIG_NET_TCP_CONNS=16 +CONFIG_NET_MAX_LISTENPORTS=16 +CONFIG_NET_TCP_READAHEAD=y +CONFIG_NET_TCP_READAHEAD_BUFSIZE=536 +CONFIG_NET_NTCP_READAHEAD_BUFFERS=8 +# CONFIG_NET_TCP_WRITE_BUFFERS is not set +CONFIG_NET_TCP_RECVDELAY=0 +CONFIG_NET_TCPBACKLOG=y +# CONFIG_NET_TCP_SPLIT is not set +# CONFIG_NET_SENDFILE is not set + +# +# UDP Networking +# +CONFIG_NET_UDP=y +CONFIG_NET_UDP_CHECKSUMS=y +CONFIG_NET_UDP_CONNS=8 +CONFIG_NET_BROADCAST=y +# CONFIG_NET_RXAVAIL is not set +CONFIG_NET_ICMP=y +CONFIG_NET_ICMP_PING=y +# CONFIG_NET_PINGADDRCONF is not set +# CONFIG_NET_IGMP is not set +# CONFIG_NET_STATISTICS is not set +CONFIG_NET_RECEIVE_WINDOW=536 +CONFIG_NET_ARPTAB_SIZE=16 +# CONFIG_NET_ARP_IPIN is not set +# CONFIG_NET_ROUTE is not set # # File Systems @@ -485,6 +588,7 @@ CONFIG_FS_FAT=y # CONFIG_FAT_LFN is not set # CONFIG_FS_FATTIME is not set # CONFIG_FAT_DMAMEMORY is not set +# CONFIG_NFS is not set # CONFIG_FS_NXFFS is not set # CONFIG_FS_ROMFS is not set # CONFIG_FS_SMARTFS is not set @@ -598,6 +702,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # CONFIG_EXAMPLES_MM is not set # CONFIG_EXAMPLES_MODBUS is not set # CONFIG_EXAMPLES_MOUNT is not set +# CONFIG_EXAMPLES_NETTEST is not set # CONFIG_EXAMPLES_NRF24L01TERM is not set CONFIG_EXAMPLES_NSH=y # CONFIG_EXAMPLES_NULL is not set @@ -627,6 +732,7 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_UDP is not set +# CONFIG_EXAMPLES_DISCOVER is not set # CONFIG_EXAMPLES_UIP is not set # CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set @@ -651,15 +757,24 @@ CONFIG_EXAMPLES_NSH=y # Networking Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_DHCPC is not set # CONFIG_NETUTILS_DHCPD is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_FTPD is not set # CONFIG_NETUTILS_JSON is not set +CONFIG_NETUTILS_RESOLV=y +CONFIG_NET_RESOLV_ENTRIES=8 +CONFIG_NET_RESOLV_MAXRESPONSE=96 # CONFIG_NETUTILS_SMTP is not set -# CONFIG_NETUTILS_TFTPC is not set +CONFIG_NETUTILS_TELNETD=y +CONFIG_NETUTILS_TFTPC=y # CONFIG_NETUTILS_THTTPD is not set -# CONFIG_NETUTILS_UIPLIB is not set -# CONFIG_NETUTILS_WEBCLIENT is not set +CONFIG_NETUTILS_UIPLIB=y +CONFIG_NETUTILS_WEBCLIENT=y +CONFIG_NSH_WGET_USERAGENT="NuttX/6.xx.x (; http://www.nuttx.org/)" +# CONFIG_NETUTILS_WEBSERVER is not set +# CONFIG_NETUTILS_DISCOVER is not set +# CONFIG_NETUTILS_XMLRPC is not set # # FreeModBus @@ -705,6 +820,7 @@ CONFIG_NSH_BUILTIN_APPS=y # CONFIG_NSH_DISABLE_MOUNT is not set # CONFIG_NSH_DISABLE_MW is not set # CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PING is not set # CONFIG_NSH_DISABLE_PUT is not set # CONFIG_NSH_DISABLE_PWD is not set # CONFIG_NSH_DISABLE_RM is not set @@ -744,6 +860,20 @@ CONFIG_NSH_CONSOLE=y # # CONFIG_NSH_CONDEV is not set CONFIG_NSH_ARCHINIT=y +CONFIG_NSH_TELNET=y +CONFIG_NSH_TELNETD_PORT=23 +CONFIG_NSH_TELNETD_DAEMONPRIO=100 +CONFIG_NSH_TELNETD_DAEMONSTACKSIZE=2048 +CONFIG_NSH_TELNETD_CLIENTPRIO=100 +CONFIG_NSH_TELNETD_CLIENTSTACKSIZE=2048 +CONFIG_NSH_IOBUFFER_SIZE=512 +# CONFIG_NSH_TELNET_LOGIN is not set +CONFIG_NSH_IPADDR=0x0a000002 +CONFIG_NSH_DRIPADDR=0x0a000001 +CONFIG_NSH_NETMASK=0xffffff00 +# CONFIG_NSH_DNS is not set +CONFIG_NSH_NOMAC=y +CONFIG_NSH_MAX_ROUNDTRIP=20 # # NxWidgets/NxWM diff --git a/configs/sam4e-ek/src/sam4e-ek.h b/configs/sam4e-ek/src/sam4e-ek.h index e1fc2bfa184..f8782682966 100644 --- a/configs/sam4e-ek/src/sam4e-ek.h +++ b/configs/sam4e-ek/src/sam4e-ek.h @@ -193,6 +193,12 @@ #define SAM_TCS_IRQ SAM_IRQ_PA16 +/* Ethernet MAC. The PHY interrupt is available on pin PD28 */ + +#define GPIO_PHY_IRQ (GPIO_INPUT | GPIO_CFG_PULLUP | GPIO_INT_BOTHEDGES | \ + GPIO_PORT_PIOD | GPIO_PIN28) +#define SAM_PHY_IRQ SAM_IRQ_PD28 + /* LEDs * * D2 PA0 Blue Pulled high