Pull request for mtd/progmem refactoring.
* mtd/progmem: change up_progmem_npages to up_progmem_neraseblocks
page is a unit for read/write operation.
eraseblock is a unit for erase operation.
up_progmem_npages is a little bit confusing because it returns number of
erase blocks in flash memory. This patch changes up_progmem_npages to
up_progmem_neraseblocks. There is no logical change.
Signed-off-by: EunBong Song <eunb.song@samsung.com>
* mtd/progmem: up_progmem_erasesize.
Change argument name to be more readable.
Signed-off-by: EunBong Song <eunb.song@samsung.com>
* mtd/progmem: up_progmem_eraseblock
Change up_progmem_erasepage to up_progmem_eraseblock.
eraseblock is more readable name than erasepage.
Signed-off-by: EunBong Song <eunb.song@samsung.com>
* mtd/progmem: change up_progmem_eraseblock's return value.
up_progmem_eraseblock erase a block. so it's better to return the erase block
size than page size.
Signed-off-by: EunBong Song <eunb.song@samsung.com>
* arm/cortex-r : fix wrong cp15_flash_dcache.
change mcrne to mcr for unconditional dcache.
Signed-off-by: sungduk.cho <sungduk.cho@samsung.com>
Approved-by: GregoryN <gnutt@nuttx.org>
many locations: Change occurences of open() followed by file_detach() to file_open(). Change most non-controversion calls to open() to nx_open().
fs/inode/fs_fileopen.c: Flesh out file_open() with some interim, placeholder logic.
fs/inode/fs_fileopen.c: Add a framework for a file_open() implementation (no real logic in place yet).
fs/vfs/fs_open.c: Add nx_open() which is the same as open() except that it does not create a cancellation point nor does it modify the errno variable.
sched/wqueue/kwork_notifier.c: Redesign some data structures. struct works_s must appear at the beginning of the notifier entry structure. That is because it contains the work queue indices. This solves a harfault issue.
net/tcp/tcp_netpoll.c: tcp_iob_work() needs to free the allocated argument when it is finished.
net/tcp/tcp_send_buffered.c: Extend psock_tcp_cansend() so that it also requires that at least on IOB is also avaialble.
mm/iob: iob_navail() was returning the number of free IOB chain queue entries, not the number of free IOBs. Completely misnamed.
net/tcp/tcp_netpoll.c: Add logic to receive notifications when IOBs are freed (Needs CONFIG_NET_TCP_WRITE_BUFFERS and CONFIG_IOB_NOTIFIER). At present, does nothing because the logic in in psock_tcp_cansend() does not check for the availability of IOBs. That will change.
Squashed commit of the following:
Fix up some final compile isses.
net/netdev: Convert the network down notification logic to use the new wqueue-based notification factility.
net/udp: Convert the UDP readahead notification logic to use the new wqueue-based notification factility.
net/tcp: Convert the TCP readahead notification logic to use the new wqueue-based notification factility.
mm/iob: Convert the IOB notification logic to use the new wqueue-based notification factility.
sched/wqueue: Signals are not good IPCs to support the target poll functionality for several reasons including the amount of data that can be passed with a signal and in the fact that in protected and kernel modes, user threads executing signal handlers in protected, kernel memory is problematic. Instead, convert the same logic to perform the notifications via function callback on the high priority work queue.
Squashed commit of the following:
mm/iob: The IOB available notifier is now just a wrapper around the common signal notifier.
sched/signal: Add a generic signal notification facility.
sched/signal/sig_evthread.c: More trivial naming changes.
sched/signal: Rename nxsig_notification() to nxsig_evthread() to make forthcoming naming additions more consistent.
Squashed commit of the following:
Add procfs support to show stopped tasks. Add nxsig_action() to solve a chicken and egg problem: We needed to use sigaction to set default actions, but sigaction() would refuse to set actions if the default actions could not be caught or ignored.
sched/signal: Add configuration option to selectively enabled/disable default signal actions for SIGSTOP/SIGSTP/SIGCONT and SIGKILL/SIGINT. Fix some compilation issues.
sched/sched: Okay.. I figured out a way to handle state changes that may occur while they were stopped. If a task/thread was already blocked when SIGSTOP/SIGSTP was received, it will restart in the running state. I will appear that to the task/thread that the blocked condition was interrupt by a signal and returns the EINTR error.
sched/group and sched/sched: Finish framework for continue/resume logic.
sched/signal: Roughing out basic structure to support task suspend/resume
drivers/timers/arch_timer.c: implement timer arch API on top of timer driver interface
drivers/timers/arch_alarm.c: Implement alarm arch API on top of oneshot driver interface
drivers/timers/arch_rtc.c: Implement RTC arch API on top of RTC driver interface
include/nuttx/timers/rtc.h: Extend struct rtc_time by adding tm_nsec if RTC supporst hiresolution time.
drivers/serial/Kconfig: It is no longer necessary to restrict Ctrl-C handling to the FLAT build
sched/signal: Add a new configuration option to select signal default actions, separate handling of signal default actions from both task startup logic and from the serial TTY Ctrl-C logic. Add a signal set in the group structure to keep track of what signals have been set to the default action. In dispatching signals in PROTECTED or KERNEL mode, use this signal set to determine if the default signal handler is attached and dispatch the signal in kernel mode for the default actions.
driver/ioexpander: Add gpio_pin_unregister function to GPIO driver
driver/ioexpander: Add pinset struct to GPIO driver for interrupt pins larger than 64
driver/ioexpander: Initialize pintype/inttype when registering ioexpander device
driver/ioexpander: Add SETPINTYPE ioctl command to the GPIO driver
drivers/serial/uart_16550.c: Support 16550 auto hardware flow control
drivers/serial/uart_16550.c: Add configuration option CONFIG_16550_SUPRESS_INITIAL_CONFIG. This is identical to the standard configuration in arch/Kconfig CONFIG_SUPPRESS_UART_CONFIG, but with scope of only the 16550 driver.
drivers/serial/uart_16550.c: Add a configuration, analogous to the STM32 configuration option, to suppress the NuttX standard re-ordering for /dev/ttySN for special case of the 16550 UART.
config/serial: UART 16550: Add CONFIG_SERIAL_UART_ARCH_MMIO option so the a memory mapped device doesn't need to provide uart_getreg() and uart_putreg() implementations.
u16550_txempty() should check UART_LSR_TEMT to avoid some data left in the transmit FIFO
drivers/serial: Add Ctrl-C/Ctrl-X support. This is an initial working implementation that still requires that several details be resolved.
sched/task/task_start.c: Add default signal action to SIGKILL.
sched/wqueue: Modify high priority work queue to support multiple threads.
sched/wqueue and libs/libc/wqueue: workqueues don't need set global data to zero since .bss is cleared automatically. Removing this unnecessary initialization also avoids the loss the work items queued before initialization.
include/nuttx/arch.h: Add prototype for an architecture-specific up_trigger_irq function
arch/, include/nuttx, sched/sched: Add the garbage collection hook so each architecture can do custom memory cleanup if necesary.
arch/Kconfig: Add configureation CONFIG_ARCH_GNU_NO_WEAKFUNCTIONS to suppress use of weak functions. Some gnu derived toolchains do not support weak symbols
configs/olimex-stm32-p407: Various changes as necessary to get the new kelf configuration working.
configs/olimex-stm32-p407: Add kernel ELF (kelf) configuration.
Squashed commit of the following:
net/netlink: Mark netlink support as EXPERIMENTAL.
net/netlink/netlink_sockif.c: Add netlink_getpeername to the socket interface.
net: Add getpeeername() support for netlink sockets.
include/netpacket/netlink.h: Add a few more definitions and structures used at the NetLink interface. Still missing many.
net/netlink: Add basic framework for Netlink socket support.
include/: Add basic Netlink definitions.
This update is required to be serialized to the instruction stream meaning that after this update completes, it takes effect immediately and no exceptions of lower priority than the new boosted priority can pre-empt execution. Because of this erratum, the priority boosting does not take place immediately, allowing the instruction after the MSR to be interrupted by an exception of lower priority than the new boosted priority. This effect is only limited to the next instruction. Subsequent instructions are guaranteed to see the new boosted priority.
This was raised in Bitbucket issue 113 from Vadzim Dambrouski.
include/sys: Remove unused SYS_nnetsocket from syscall.h
Because SYS_nnetsocket is not implemented so far, it should be
removed so that SYS_prctl can work correctly.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Approved-by: GregoryN <gnutt@nuttx.org>
configs/stm32f4discovery/src: Add board support to MAX7219 as numeric display controller
drivers/leds/max7219.c: Add support to MAX7219 to control 7-segment displays
Master
* drivers/sensors: added drivers for kx224, bh1749nuc and bh1790glc
They are reliant on the cxd56_scu.
* drivers/sensors: Added drivers for kx224, bh1749nuc and bh1790glc
They are reliant on the cxd56_scu.
* drivers/sensors: Added drivers for kx224, bh1749nuc and bh1790glc
They are reliant on the cxd56_scu.
* drivers/sensors: Added drivers for kx224, bh1749nuc and bh1790glc
They are reliant on the cxd56_scu.
* drivers/sensors: Added drivers for kx224, bh1749nuc and bh1790glc
They are reliant on the cxd56_scu.
* drivers/sensors: Added drivers for kx224, bh1749nuc and bh1790glc
They are reliant on the cxd56_scu.
* bh1790glc.h created online with Bitbucket
* bh1790glc.h deleted online with Bitbucket
* drivers/sensors: Added drivers for kx224, bh1749nuc and bh1790glc
They are reliant on the cxd56_scu.
* drivers/sensors: Added drivers for kx224, bh1749nuc and bh1790glc
They are reliant on the cxd56_scu.
* README.txt: minor typo fix
* Minor typo fix
Approved-by: GregoryN <gnutt@nuttx.org>
Master
* libdsp: initial commit
* libdsp: cosmetics
* stm32f334-disco/buckboost: use a PID controller from libdsp
* stm32_adc.h: fix typo
* stm32_dac.c: set OUTEN bit for DAC1CH2 and DAC2CH1
* stm32_hrtim: cosmetic changes
* power/motor: direction parameter is now int8 + add overload fault
* libdsp: all floats with f-sufix
libdsp: add precision option for library
libdsp: add debug option for library and assertions in functions
libdsp: add current samples correction for SVM3
libds: add some motor control specific functions
libdsp: add basic speed observer
libdsp: fix phase shift in SMO observer
libdsp: add more logic to FOC
config/sim/dsptest: add dsptest configuration
* libdsp/lib_motor.c: remove unused comparation
* libdsp/lib_observer.c: update some comments
Approved-by: GregoryN <gnutt@nuttx.org>
net/utils: return from net_breaklock() was being clobbered.
net/: Replace all calls to iob_alloc() with calls to net_ioballoc() which will release the network lock, if necessary.
net/utils, tcp, include/net: Separate out the special IOB allocation logic and place it in its own function. Prototype is available in a public header file where it can also be used by network drivers.
net/utils: net_timedwait() now uses new net_breaklock() and net_restorelock().
This makes the user interface a little hostile. People thing of an MTU of 1500 bytes, but the corresponding packet is really 1514 bytes (including the 14 byte Ethernet header). A more friendly solution would configure the MTU (as before), but then derive the packet buffer size by adding the MAC header length. Instead, we define the packet buffer size then derive the MTU.
The MTU is not common currency in networking. On the wire, the only real issue is the MSS which is derived from MTU by subtracting the IP header and TCP header sizes (for the case of TCP). Now it is derived for the PKTSIZE by subtracting the IP header, the TCP header, and the MAC header sizes. So we should be all good and without the recurring 14 byte error in MTU's and MSS's.
Squashed commit of the following:
Trivial update to fix some spacing issues.
net/: Rename several macros containing _MTU to _PKTSIZE.
net/: Rename CONFIG_NET_SLIP_MTU to CONFIG_NET_SLIP_PKTSIZE and similarly for CONFIG_NET_TUN_MTU. These are not the MTU which does not include the size of the link layer header. These are the full size of the packet buffer memory (minus any GUARD bytes).
net/: Rename CONFIG_NET_6LOWPAN_MTU to CONFIG_NET_6LOWPAN_PKTSIZE and similarly for CONFIG_NET_TUN_MTU. These are not the MTU which does not include the size of the link layer header. These are the full size of the packet buffer memory (minus any GUARD bytes).
net/: Rename CONFIG_NET_ETH_MTU to CONFIG_NET_ETH_PKTSIZE. This is not the MTU which does not include the size of the link layer header. This is the full size of the packet buffer memory (minus any GUARD bytes).
net/: Rename the file d_mtu in the network driver structure to d_pktsize. That value saved there is not the MTU. The packetsize is the memory large enough to hold the maximum packet PLUS the size of the link layer header. The MTU does not include the link layer header.
Squashed commit of the following:
drivers/usbhost/usbhost_max3421e.c: Add USB tracing support. Fix compilation errors when assertions and debug is enabled.
drivers/usbhost/usbhost_max3421e.c: Fixes to get a clean compilation.
drivers/usbhost/usbhost_max3421e.c: Drivers is basically code complete.
drivers/usbhost/usbhost_max3421e.c: Missed a little bit of logic in the last commit.
drivers/usbhost/usbhost_max3421e.c: Completes implementatin of control transfers.
drivers/usbhost/usbhost_max3421e.c: Implements low-level part of packet receive.
drivers/usbhost/usbhost_max3421e.c: Reorder some functions add a little more transfer-related logic.
drivers/usbhost/usbhost_max3421e.c: Completes basic logic path for sending normal packets.
drivers/usbhost/usbhost_max3421e.c: Correct handling of SNDFIFO double buffering.
drivers/usbhost/usbhost_max3421e.c: Not necessary to set the ACKSTAT bit in host mode. Clean up some comments.
drivers/usbhost/usbhost_max3421e.c: Mostly cosmetic cleanup
drivers/usbhost/usbhost_max3421e.c: Revise some previous logic. Looks like the MAX3421E can handle 16 channels in host mode. A little bit of work on packet transfer logic.
Copy paste error fix
drivers/usbhost/usbhost_max3421e.c: Add some channel allocation logic.
drivers/usbhost/usbhost_max3421e.c: Add some initialization logic.
drivers/usbhost/usbhost_max3421e.c: Add logic to determine if a full or low speed device has been connected.
drivers/usbhost/usbhost_max3421e.c: Add interrupt handling and bus reset logic.
drivers/usbhost/usbhost_max3421e.c: Add framework for an MAX3421E host driver. Initial commit is just the STM32 OTGFS host driver with a few new SPI-related functions.
Fix a few typo/compilation problems.
net/: Remove all CONFIG_NET_xxx_TCP_RECVWNDO configuration variables. They were used only to initialize the d_recwndo of the network device structure which no longer exists.
net/: Remove the device TCP receive window field (d_recvwndo) from the device structure. That value is no longer retained, but is calculated dynamically.
Remove some dangling references to CONFIG_NET_TCP_RWND_CONTROL.
net/tcp: Take read-ahead throttling into account when calculating the TCP receive window size.
net/tcp: tcp_get_recvwindow() now returns the receive window size directly (vs. indirectly via the device structure).
net/tcp: Remove CONFIG_NET_TCP_RWND_CONTROL. TCP window algorithm is now trigged only by CONFIG_NET_TCP_READAHEAD.
net/netdev: Add implementation of if_nametoindex() and if indextoname().
net/pkt: Raw AF_PACKET sockets now depend on CONFIG_NETDEV_IFINDEX.
net/procfs: Tweak to handle traversal of interfaces if CONFIG_NETDEV_IFINDEX is not defined.
net/netdev.h: Update netdev_findbyaddr() to use the assigned device index.
Trivial typo fix
net/netdev: Add support for assigned an interface index to a device when it is regisgtered.
sched/clock: Move the implementation of clock() from libs/libc/time to sched/clock. This is necessary because it calls the (now) internal OS function clock_systimer. clock() is now accessed only via a system call in certain configuratins.
libs/libc/wqueue: Replace calls to clock_systimer() with calls to the equivalent clock().
Squashed commit of the following:
sched: Rename all use of system_t to clock_t.
syscall: Rename all use of system_t to clock_t.
net: Rename all use of system_t to clock_t.
libs: Rename all use of system_t to clock_t.
fs: Rename all use of system_t to clock_t.
drivers: Rename all use of system_t to clock_t.
arch: Rename all use of system_t to clock_t.
include: Remove definition of systime_t; rename all use of system_t to clock_t.
Squashed commit of the following:
Author: Gregory Nutt <gnutt@nuttx.org>
include/nuttx/wireless/ieee80211: Cosmetic, coding standard changes from review of last merge.
drivers/wireless/ieee80211: Cosmetic, coding standard changes from review of last merge.
configs/photon: Cosmetic, coding standard changes from review of last merge.
arch/arm/src/stm32: SDIO changes from last review: Fix a few long lines and other coding standard issues; Make additions for SDIO card support dependent on a configuration option.
Author: hhuysqt <hyq9606@126.com>
Return IEEE 802.11 MAC address just as ethernet does
Modifyed bcmf_board_setup_oob_irq declaration
Modified OOB ISR function types
Add some logic according to WICED SDK
Bug fixed: data_offset counts in 4-bytes
Add BCM43438 logic for future developement
Add tips on using telnet
Use SDIO in-band interrupt instead of OOB interrupt, because Photon seems to unconnect the OOB interrupt line...
add SDIO in-band interrupt logic
Squashed commit of the following:
arch/arm/src/stm32: Add Kconfig options needed by the HCI UART. Various fixes to finally get a clean error free compile with no unexpected warnings.
arch/arm/src/stm32: In HCI UART, use spin_lock_irqsave() instead of enter_critical_section() whenever possible.
arch/arm/src/stm32: In HCI UART, fix up naming of configurations so that they are unique. Still needs Kconfig settings. Modify logic so that there can be multiple HCI UARTs, some supporting DMA and some not.
arch/arm/src/stm32: Integrate watermarks and software Rx flow control into the HCI UART driver.
arch/arm/src/stm32: Eliminate some HCI UART UART configuration options. Per the HCI UART spec, the link will b 8 data bits, no parity, 1 stop bit... Always.
arch/arm/src/stm32: Trivial cleanup
arch/arm/src/stm32: Fixes most initial compilation issues STM32 HCI UART driver. Still need to set up USART configuration parmeters for HCI UART
arch/arm/src/stm32: Completes first cut at STM32 HCI UART driver.
arch/arm/src/stm32: Completes most of read logic for HCI UART. Still needs to be able to block if no read data is available. Still missing write and flush logic.
drivers/wireless: Remove txenable from HCI UART methods. arch/arm/src/stm32: Reorganize some structures in HCI UART.
arch/arm/src/stm32: Still messaging the HCI uart driver.
arch/arm/src/stm32: Some trivial renaming.
arch/arm/src/stm32: A little more HCI-UART logic.
arch/arm/src/stm32: Initial setup to support HCI-UART. Little more than the serial driver with some name changes and a few things removed.
Squashed merge of the following:
Author: Gregory Nutt <gnutt@nuttx.org>
drivers/sensors: Fix some minor typos in last commit that cause some compile problems.
drivers/sensors/: Clean up some coding standard isses in LM330 and ADXL372 drivers.
drivers/sensors/README.txt: Clean up some long lines and odd line breaks.
include/nuttx/sensors: Completes coding style review of adxl372.h, cluster_driver.h, and lsm330.h.
Author: Bob Feretich <bob.feretich@rafresearch.com>
Add LSM330 SPI and ADXL372 drivers along with the cluster driver infrastructure.
Squashed commit of the following:
Author: Gregory Nutt <gnutt@nuttx.org>
Some cosmetic changes from coding style review.
Author: Juha Niskanen <juha.niskanen@haltian.com>
drivers/1wire: add 1-wire subsystem and ds28e17 driver
Squashed commit of the following:
Author: Gregory Nutt <gnutt@nuttx.org>
Fix a few remaining refereces to cc3000.
Author: Alan Carvalho de Assis <acassis@gmail.com>
drivers/wireless/cc3000: emove the driver to support CC3000 because it doesn't use the USRSOCKET
Author: Alan Carvalho de Assis <acassis@gmail.com>
configs: Remove board support to CC3000 from all relevant configurations.
Author: Gregory Nutt <gnutt@nuttx.org>
configs/spark: Removes Spark board configuration. Still available in the Obsoleted repository. This is preparation for removal of CC3000 support by Alan Carvalho de Assis. If there is no CC3000 support, then there is no purpose in supporting the Spark either.
Change all Sony related copyright to conform with our company's internal rules.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Approved-by: Gregory Nutt <gnutt@nuttx.org>
wireless/bluetooth: This completes the basic logic path that gets frames from the Bluetooth stack and into the network layer.
wireless/bluetooth: Fleshes out some of the network packet receive logic.
wireless/bluetooth: Replace buffer allocated with primitive allocator from ieee 802.15.4.
wireless/ieee802154: Fix a few typos.
wireless/bluetooth: More renaming in preparation for some real work.
wireless/bluetooth: Some trivial renaming; update comments
Squashed commit of the following:
wireless/bluetooth: Some small changes that gets to a clean compile by just eliminating some incorrect implementations (still with a lot of warnings. The logic is still incomplete but now not so lethal.
wireless/bluetooth: Restructuring: Connection interfaces should internal to wireless/bluetooth. include/nuttx/wireless/bt_conn.h removed and merged with wireless/bluetooth/bt_conn.h. Several fix to get closer to bt_netdev.c compiling. Need to design some not interfaces and use some existing interfaces to send and receiv packets.
wireless/bluetooth: Some organization with some network device compile errors fixed. Still not even close to compiling.
net/bluetooth: Fix numerous compile issues; Still open design issues with regard to the interface with the Bluetooth stack.
wireless/bluetooth: Create bt_netdev.c with a crude copy of mac802154_netdev.c. Does not not even compile yet.
include/nuttx/net: Add bluetooth.h. Content is not yet correct.
net/netpackets: Add bluetooth.h. Update net/bluetooth to use new socket address definition.
net/bluetooth: Some fixes for initial build.
net/bluetooth: Add initial support for Bluetooth sockets. The initial cut is just the a clone of the IEEE 802.15.4 socket support with name changes.
net/ieee802154: Fix some typos noted when cloning to create net/bluetooth.
Squashed commit of the following:
drivers/bluetooth: Re-architect Bluetooth UART driver to follow upper/lower half model. Completely untested.
drivers/bluetooth: Grr.. Another band-aid commit to stay in sync with master. Why is this so difficult
drivers/bluetooth: Band-aid commit to stay in sync with master. Lost it somehow.
drivers/wireless/bluetooth: A few changes, mostly thought experiments.
drivers/wireless/bluetooth: UART-based Bluetooth driver ported from the Intel/Zephyr arduino101_firmware_source-v1.tar package. This initial commit is the original files in the NuttX build environment with changes to conform with the coding standard. It should not even build.
NOTE: This selection is marked EXPERIMENTAL. It is incomplete and, hence, untested. It still lacks any low-level Bluetooth drivers and is missing the network interface driver.
Squashed commit of the following:
wireless/bluetooth: Fixe last of compile issues. Now compiles without errors or warnings.
wireless/blutooth: Add macros BT_GETUINT16() and BT_PUTUINT16(). Fix more compile errors. Only one file now generates compile errors.
wireless/bluetooth: Add macros BT_LE162HOST() and BT_HOST2LE16().
wireless/bluetooth: Add bt_queue.c; begin fixing comple errors. Many more compile problems yet to resolve.
Kconfig edited online with Bitbucket
wireless/bluetooth: Struggling to remove nano_fifo logic: Replace buffer management with IOB allocate... this changes some logic and might have some side effects. Use messages queues instead of nano-fifos to inter-task communications. nano-fifos still used in 'frag' logic... whatever that is.
wireless/bluetooth: Fix numerous typos introduced by an ill conceived search-and-replace.
wireless/bluetooth: Add message queue support to manage interthread buffer transfers.
wireless/bluetooth: Replace fibers with kernel threads.
wireless/bluetooth: Fix a few initial compile errors. Just the tip of the iceberg.
wireless/bluetooth: Complete leveage of the bluetooth stack including public header files.
wireless/bluetooth: Complete leverage of all Bluetooth source files. Still missing header files that defines the driver interface. Also missing the network driver implementation.
wireless/bluetooth: Fix some naming of static global variables.
wireless/bluetooth: Adds three more files ported from the Intel/Zephyr arduino101_firmware_source-v1.tar package (plus two original files).
wireless/bluetooth: Adds five more files ported from the Intel/Zephyr arduino101_firmware_source-v1.tar package.
wireless/bluetooth: Adds three more files ported from the Intel/Zephyr arduino101_firmware_source-v1.tar package.
wireless/bluetooth: First few files ported from the Intel/Zephyr arduino101_firmware_source-v1.tar package.
mac802154: Adds ackreq flag to TX descriptor for use by radio driver.
The radio layer is responsible for a full "transaction". Because of
differences in radio capabilites, the radio must be responsible for
the handling of acks and retransmissions. This commit simply passes
the ackreq meta-data flag along to the radio.
Approved-by: Gregory Nutt <gnutt@nuttx.org>
Squashed commit of the following:
fs/cromfs: Now depends on EXPERIMENTAL because it is not yet verified.
fs/cromfs: This commit brings the CROMFS file system to code complete. Still completely untested. Next steps: Need a tool to generate CROMFS file system images and a test case under apps/
fs/cromfs: Add logic to traverse the in-memory file system nodes.
fs/cromfs: Add initial support for an in-memory, compressed, read-only file system.
net/tcp: Add logic to send probes when SO_KEEPALIVE is enabled.
net/tcp: TCP socket should not have to be connected to configure KeepAlive.
net/: Add a separate configuration to enable/disable KEEPALIVE socket options.
net/tcp: Arguments to TCP keep-alive timing functions probably should be struct timeval as are the times for other time-related socket options.
net/tcp: Fix a backward conditional
net/tcp: Add some more checks and debug output to TCP-protocol socket options.
net/tcp: Cosmetic changes to some alignment.
net/: Adds socket options needed to manage TCP-keepalive and TCP state machine logic to detect if that the remote peer is alive. Still missing the timer poll logic to send the keep-alive probes and the state machine logic to respond to probes.
drivers/lcd/ft80x: ACTIVE host command appears to be formatted differently than other host commands; Fix ROM CHIPID. Appears to be big-ending, BCD.
drivers/lcd/ft80x: Fix some compile issues when debug features are enabled.
Feature pca9540bdp i2cmultiplexer
* Implement common i2c multiplexer abstraction to be reused by i2c multiplexer devices. Provide common interface with transfer and reset calls to set up virtual i2c busses.
* Remove i2cmux_lower_half.c and headers, will be implemented by each mux driver
* Implement PCA9540BDP I2C multiplexer lower half which uses the common i2c mux abstraction
* Remove application interface and implement common i2c functions
* Remove application interface from pca driver and implement common i2c functions directly in the pca driver
* Use i2cerr
Approved-by: Gregory Nutt <gnutt@nuttx.org>
cc1101: Changes from review of last PR.
remove gpio
remove cc1101 frame len
remove FLAGS_RXONLY flags
add cc1101 function
remove some waring
add cc1101 poll function
add cc1101 register
add cc1101 isr read data
add cc1101 spi deviceId
add cc1101 init2
add wait cc1101 chip ready
raw init cc1101
drivers/lcd and include/nuttx/lcd: Add FT80x support for writing to graphics memory. Also add some definitions needed by apps/examples/ft80x for bitmap manipulation.
drivers/lcd: Review/update FT80x initializatin logic
drivers/lcd: Rename ft80x_base.c to just ft80x.c. Add logic to notify FT80X clients of events via signals.
drivers/lcd: Trivial updates to naming. Add some new definitions.
Squashed commit of the following:
drivers/lcd: Finishes off basic FT80X. Still missing some niceties.
drivers/lcd: Rethink FT80X display list interface.
drivers/lcd: More FT800x display list logic. Still not complete.
drivers/lcd: Add some basic FT80x initialization logic.
drivers/lcd: Add ft80x display list IOCTL framework. Still missing low level display list operations.
drivers/lcd: FT80x driver cannot be a standard LCD driver but must, instead, be a custom character driver.
drivers/lcd: Add FT800 co-processor commands and display list helpers.
drivers/lcd: Add SPI interface and framework for the initialization and the basic LCD driver.
drivers/lcd: Add beginnings of some FT80x implementation.
drivers/lcd: Add definitions for the FTDI FT801 part
include/nuttx/lcd/ft800.h: Add initial FT800 interface definition.
drivers/lcd: Add ft800 header file.
Added support for LIS3DH accelerometer sensor.
* Added support for LIS3DH accelerometer sensor.
* Fix line length
* Fix more line lengthts
Approved-by: Gregory Nutt <gnutt@nuttx.org>
sched/: Convert legitimate uses of task_create() to nxtask_create(). Review handling of returned values from all uses of kthread_create() (as well as nxtask_create()).
graphics/: Review return values for all calls to kthread_start() because it no longer returns an errno.
drivers/: threads started by drivers should be kernel threads, not user tasks. Review return values for all calls to kthread_start() because it no longer returns an errno.
configs/: threads started by board bringup logic should be kernel threads, not user tasksi (part 2 of 2).
sched/task: Add nxtask_create(). Kthread_create() and nxtask_create() are internal OS functions and should not modify the errno variable. configs/: threads started by board bringup logic should be kernel threads, not user tasks.
The previous implementation of clearing global IRQ in sched_addreadytorun()
and sched_removereadytorun() was done too early. As a result, nxsem_post()
would have a chance to enter the critical section even nxsem_wait() is
still not in blocked state. This patch moves clearing global IRQ controls
from sched_addreadytorun() and sched_removereadytorun() to sched_resumescheduler()
to ensure that nxsem_post() can enter the critical section correctly.
For this change, sched_resumescheduler.c is always necessary for SMP configuration.
In addition, by this change, task_exit() had to be modified so that it calls
sched_resumescheduler() because it calls sched_removescheduler() inside the
function, otherwise it will cause a deadlock.
However, I encountered another DEBUGASSERT() in sched_cpu_select() during
HTTP streaming aging test on lc823450-xgevk. Actually sched_cpu_select()
accesses the g_assignedtasks which might be changed by another CPU. Similarly,
other tasklists might be modified simultaneously if both CPUs are executing
scheduling logic. To avoid this, I introduced tasklist protetion APIs.
With these changes, SMP kernel stability has been much improved.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
sched/sched: Correct some build issues introduced by last set of changes.
sched/sched: Add new internal OS function nxsched_setaffinity() that is identical to sched_isetaffinity() except that it does not modify the errno value. All usage of sched_setaffinity() within the OS is replaced with nxsched_setaffinity().
sched/sched: Internal functions sched_reprioritize() and sched_setpriority() no longer movidify the errno value. Also renamed to nxsched_reprioritize() and sched_setpriority().
sched/sched: Add new internal OS function nxsched_getscheduler() that is identical to sched_getscheduler() except that it does not modify the errno value. All usage of sched_getscheduler() within the OS is replaced with nxsched_getscheduler().
sched/sched: Add new internal OS function nxsched_setparam() that is identical to sched_setparam() except that it does not modify the errno value. All usage of sched_setparam() within the OS is replaced with nxsched_setparam().
sched/sched: Add new internal OS function nxsched_getparam() that is identical to sched_getparam() except that it does not modify the errno value (actually, the previous value erroneously neglected to set the errno value to begin with, but this fixes both issues). All usage of sched_getparam() within the OS is replaced with nxsched_getparam().
Squashed commit of the following:
net/udp: Address most of the issues with UDP write buffering. There is a remaining issue with handling one network going down in a multi-network environment. None of this has been test but it is certainly ready for test. Hence, the feature is marked EXPERIMENTAL.
net/udp: Some baby steps toward a corrected write buffering design.
net/udp: Remove pesky write buffer macros.
Eliminate trailing space at the end of lines.
net/udp: A little more UDP write buffering logic. Still at least on big gaping hole in the design.
net/udp: Undefined CONFIG_NET_SENDTO_TIMEOUT.
net/udp: Crude, naive port of the TCP write buffering logic into UDP. This commit is certainly non-functional and is simply a starting point for the implementatin of UDP write buffering.
net/udp: Rename udp/udp_psock_sendto.c udp/udp_psock_sendto_unbuffered.c.
Squashed commit of the following:
configs: Each board now initializes the touchscreen controller as a normal part of its board bring-up. board_tsc_setup() is gone; the touchscreen controller is now treated like any other on-board device.
Remove all support for BOARDIOC_TSCTEST_SETUP
Move prototype for board_tsc_setup() from include/nuttx/board.h to individual board header files.
These APIs are used in sched_note.c to protect instumentation data.
The deffrence between these APIs to exsiting spin_lock() and spin_unlock()
is that they do not perform insturumentation to avoid recursive call
when SCHED_INSTRUMENTATION_SPINLOCKS=y.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
fs: Add truncate() support for userfs
fs/unionfs: Add truncate() support to the unionfs
fs/tmpfs: Add ftruncate() support to tmpfs
syscall/: Add system call support for ftruncate()
net/route: Adding ftruncate() support eliminates an issue in file-based routing table management.
fs: Add basic framework to support truncate() and ftruncate(). The infrastructure is complete. Now, however, the actual implementation of ftruncate() will have to be done for each file system.
SMP: Introduce spin_lock_irqsave() and spin_unlock_irqrestore()
These APIs are simplified version of enter_critical_section() and
leave_critical_section() to protect data (e.g. registers) in SMP mode.
By using these APIs inside drivers, performace will be improved.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Approved-by: Gregory Nutt <gnutt@nuttx.org>
Pass header-payload offset to application for use when the MAC layer is in promiscuous mode
* mac802154_device: When in promiscuous mode, the char driver sends the entire frame, including the MAC header. This change adds an offset field indicating the header-payload boundary. It is set to 0 when not in promiscuous mode as the header is not passed to the application
* mac802154: Adds support for getting promiscuous mode state
Approved-by: Gregory Nutt <gnutt@nuttx.org>
This conversion is unfortunate in the sense that Unix local domain sockets are relatively lightweight. LocalHost UDP sockets are much heavier weight since they rely on the full UDP stack. If anyone is up for a complete redesign, then using some shared memory and a POSIX message queue would be lightweight again.
This commit also fixes several bugs that were not testable before the inode tree deadlock. I cannot say that the logic is 100% stable but it does not have basic functionality.
Squashed commit of the following:
fs/userfs: Order locking so that access to the shared I/O buffer is also locked.
fs/userfs: Converts to use LocalHost UDP loopback for IPC.
ieee802154: Simplifies notify() and rxframe() calls to a single notify() call. dataind's and all other "notifs" are now "primitives" which aligns with standard terminology
* mac802154: Adds missing breaks from case statement
* sixlowpan: Fixes bad logic where ACK is not requested if address is not a broadcast
* ieee802154: Simplification of "notifs" and "datainds" to generic primitives passed via a single notify call to the layer above the MAC
* Directories.mk should reference CONFIG_WIRELESS instead of CONFIG_DRIVERS_WIRELESS
* xbee_netdev: Network must be locked when calling sixlowpan_input
* sixlowpan: Reassembly buffer can't be freed if provided by radio driver
* sixlowpan: Don't free IOB if there is an error processing it as the MAC will try to pass it along to another receiver
* ieee802154: Adds basic logging to ieee802154_primitive.c
* Minor fixes after rebase
* xbee: Adds AT query timeout to retry if XBee doesn't respond to request
* same70-xplained: Adds Xbee support. Makes mikroBus slot Kconfig 'choice'
* mac802154: Removes unused function declaration
* drivers/mrf24j40: Fixes compilation error using . operator rather than -> operator
* mac802154_device: Changes a few mac802154_primtive_free's to ieee802154_primitive_free() and changes notif to primitive in a couple places.
* mac802154: Adds promiscous mode logic to bypass parsing of incoming frames. MAC char device also checks for promiscous mode and passes whole frames including header and FCS to the application if promiscous mode is enabled.
* sixlowpan: Fixes logic to correctly check if packet is large enough to include header. This would cause packets to be considered too small when they are sufficiently sized.
* sixlowpan: Fixes forwarding logic to use forwarding device rather than received device to look up destination link layer address
* net/ipforward: Fixes typo that caused build error when IP forwarding was enabled with CONFIG_NET_ICMPv6_NEIGHBOR enabled as well.
* configs/same70-xplained: Simple spelling fix
Approved-by: Gregory Nutt <gnutt@nuttx.org>
Fix GPIO operation of STMPE811 driver.
Fixed issues:
1. STMPE811_GPIO_DIR was defined for register name
and later was redefined to be the pin direction mask
for `stmpe811_gpioconfig`
I decided to change register name to be STMPE811_GPIO_DIR_REG,
and keep pin direction mask STMPE811_GPIO_DIR, so that any
external code that already use this driver will be unchanged.
2. The STMPE811 register GPIO_DIR uses bit value 1 for output
and 0 for input, but `stmpe811_gpioconfig` set the opposite.
3. The call to `stmpe811_gpiowrite` from inside of `stmpe811_gpioconfig`
leaded to deadlock.
Approved-by: Gregory Nutt <gnutt@nuttx.org>
fs/userfs: This completes coding of the UserFS client and of the UserFS feature in general. This feature is being merged to main now because I believe it is innocuous. It is, however, untesed. The next step will be to develop a test case to verify the feature.
fs/userfs: Completes the request logic for the UserFS client. Still need the logic that receives the responses.
fs/userfs: Completes coding for most of the server side of the user filesystem logic.
fs/userfs: Big design changes, simplications. Use Unix domain local sockets instead of message queues. Easier to transfer big data in local sockets than message queues. Remove character drvier 'factory' it is not necessary.
fs/userfs: Minor reparitioning; volume private info does not need to be held on the OS client side.
libc/userfs: Add some of the server side logic.
fs/userfs: Add some UserFS initialization logic.
fs/userfs: Add frame work for the UserFS proxy. Remove all references to a block driver. There is no block dricer... what was I thinking?
fs/userfs: Add some initialization of the character driver, 'factory' device.
fs/userfs: Rename from fusefs to userfs to that we don't stomp on someone else's cool name.
Add a header file describing the fusefs interface.
fs/mount: Implements procfs /proc/fs/blocks and /proc/fs/usage files, replacing the NSH df command.
fs/mount: Implements procfs /proc/fs/mount file, replacing the NSH mount command when there are not arguments.
fs/: Move prototype of foreach_mountpoint out of include/nuttx/fs/fs.h to fs/mount/mount.h. Add framework for the mount procfs (initial commit is just a close of the net/route table procfs.
Squashed commit of the following:
net/icmpv6: IPPROT_ICMP6 socket logic now builds without error.
net/icmpv6: Add support for read-ahead and poll(). Initial commit is just cloned from ICMP with the appropriate name changes.
configs/: All defconfig filess that include CONFIG_NET_ICMPv6_SOCKET=y need to select CONFIG_SYSTEM_PING6=y and deselect CONFIG_DISABLE_POLL.
Update NSH documention to show that ping6 is now a built in command.
net/icmpv6: Add icmpv6_sendto.c and icmpv6_recvfrom.c. Initial versions are just clones from icmp/ with appropriate name changes.
net/icmpv6: Clone some ICMP socket logic as the beginning of support for ICMPv6 socket support.
Rename CONFIG_NET_ICMPv6_PING to CONFIG_NET_ICMPv6_SOCKET. Move prototype for icmpv6_ping from include/nuttx/net/icmpv6 to net/icmpv6/icmpv6.h
Squashed commit of the following:
net/icmp: Finishes off icmp_recvfrom().
net/icmp: Add readahead support for IPPROTO_ICMP sockets.
net/icmp: Add poll() support for IPPROTO_ICMP sockets.
net/icmp: Add a connection structure for IPPROTO_ICMP sockets.
net/icmp: Implements sendto for the IPPROTO_ICMP socket.
net/icmp: Move icmp_sendto() and icmp_recvfrom() to separate files. They are likely to be complex (when they are implemented).
net/icmp: Hook IPPROTO_ICMP sockets into network. Fix some naming collisions. Still missing basic ICMP send/receive logic.
configs: apps/system/ping current need poll() enabled.
configs: All defconfig files that use to enable low-level support must now enabled CONFIG_SYSTEM_PING.
net/icmp: Adds basic build framework to support IPPROTO_ICMP sockets.
STM32L1, STM32L4 RTC: add periodic interrupts, update L1 RTC implementation
* STM32L4 RTC: add support experimental CONFIG_RTC_PERIODIC
* STM32 RTC: separate STM32L1 RTC into a separate file
STM32L1 RTC is very close to F4 or L4 versions, with two alarms
and periodic wakeup support so backported L4 peripheral to L1.
* RTC: add periodic alarms to upper and lower halves
Approved-by: Gregory Nutt <gnutt@nuttx.org>
The same interrupt handler is entered with the device structure parameter in all situations,
multiple or single PCA. One should still be careful if multiple PCA devices share the same IRQ.
This commit adds a driver for this chip. Right now it measures bus voltage and current, and does not use the internal calibrated current reading, nor the available power measurement.
Change all calls to mq_receive() and mq_timedreceive() in the OS to calls to nxmq_receive() and nxmq_timedreceive(), making appropriate changes for differences in return values.
sched/mqueue: Add nxmq_receive() and mxmq_timedreceive() which are functionally equivalent to the standard mq_receive and mq_timedreceive() except that (1) they do not create cancellation points, and (2) the do not modify the application's errno variable.
Change all calls to mq_send() and mq_timedsend() in the OS to calls to nxmq_send() and nxmq_timedsend(), making appropriate changes for differences in return values.
sched/mqueue: Add internal function nxmq_send() and nxmq_timedsend() that are equivalent to mq_send() and mq_timedsend() except that they do not create cancellation points and do to not modify the errno variable.
Replace all calls to sigprocmask() in the OS proper with calls to nxsig_procmask().
sched/signal: Add internal OS interface nxsig_procmask(). This internal interface is equivalent to the standard sigprocmask() used by applications except that it does not modify the errno value. Also fixes a problem in that the original sigprocmask() was not setting the errno.
Replace all calls to sigqueue() in the OS proper with calls to nxsig_queue() to avoid accessing the errno variable.
sched/signal: Add nxsig_queue() which is functionally equivalent to sigqueue() except that it does not modify the errno variable.
Replace all usage kill() in the OS proper with nxsig_kill().
sched/signal: Add nxsig_kill() which is functionally equivalent to kill() except that it does not modify the errno variable.
Squashed commit of the following:
Change all calls to usleep() in the OS proper to calls to nxsig_usleep()
sched/signal: Add a new OS internal function nxsig_usleep() that is functionally equivalent to usleep() but does not cause a cancellaption point and does not modify the errno variable.
sched/signal: Add a new OS internal function nxsig_sleep() that is functionally equivalent to sleep() but does not cause a cancellaption point.
sigtimedwait() -> nxsig_timedwait()
sigwaitinfo() -> nxsig_waitinfo()
nanosleep() -> nxsig_nanosleep()
The internal OS versions differ from the standard application interfaces in that:
- They do not create cancellation points, and
- they do not modify the application's errno variable
Squashed commit of the following:
sched/signal: Replace all usage of sigwaitinfo(), sigtimedwait(), and nanosleep() with the OS internal counterparts nxsig_waitinfo(), nxsig_timedwait(), and nxsig_nanosleep().
sched/signal: Add nxsig_nanosleep(). This is an internal OS version of nanosleep(). It differs in that it does not set the errno varaiable and does not create a cancellation point.
sched/signal: Add nxsig_timedwait() and nxsig_waitinfo(). These are internal OS versions of sigtimedwait() and sigwaitinfo(). They differ in that they do not set the errno varaiable and they do not create cancellation points.
This is analogous to similar renaming that was done previously for semaphores.
Squashed commit of the following:
sched/signal: Fix a few compile warnings introduced by naming changes.
sched/signal: Rename all private, internal signl functions to use the nxsig_ prefix.
sched/signal: Rename sig_removependingsignal, sig_unmaskpendingsignal, and sig_mqnotempty to nxsig_remove_pendingsignal, nxsig_unmask_pendingsignal, and nxsig_mqnotempty to make it clear that these are OS internal interfaces.
sched/signal: Rename sig_findaction and sig_lowest to nxsig_find_action and nxsig_lowest to make it clear that these are OS internal interfaces.
sched/signal: Rename sig_allocatepingsigaction and sig_deliver to nxsig_alloc_pendingsigaction and nxsig_deliver to make it clear that these are OS internal interfaces.
sched/signal: Rename sig_cleanup, sig_release, sig_releasependingaction, and sig_releasependingsignal to nxsig_cleanup, nxsig_release, nxsig_release_pendingaction, and nxsig_release_pendingsignal to make it clear that these are OS internal interfaces.
sched/signal: Rename sig_tcbdispatch and sig_dispatch to nxsig_tcbdispatch and nxsig_dispatch to make it clear that these are OS internal interfaces.
sched/signal: Rename sig_releaseaction and sig_pendingset to nxsig_release_action and nxsig_pendingset to make it clear that these are OS internal interfaces.
sched/signal: Rename sig_initialize and sig_allocateactionblock to nxsig_initialize and nxsig_alloc_actionblock to make it clear that these are OS internal interfaces.
This commit backs out most of commit b4747286b1. That change was added because sem_wait() would sometimes cause cancellation points inappropriated. But with these recent changes, nxsem_wait() is used instead and it is not a cancellation point.
In the OS, all calls to sem_wait() changed to nxsem_wait(). nxsem_wait() does not return errors via errno so each place where nxsem_wait() is now called must not examine the errno variable.
In all OS functions (not libraries), change sem_wait() to nxsem_wait(). This will prevent the OS from creating bogus cancellation points and from modifying the per-task errno variable.
sched/semaphore: Add the function nxsem_wait(). This is a new internal OS interface. It is functionally equivalent to sem_wait() except that (1) it is not a cancellation point, and (2) it does not set the per-thread errno value on return.
sched/semaphore: Add nxsem_post() which is identical to sem_post() except that it never modifies the errno variable. Changed all references to sem_post in the OS to nxsem_post().
sched/semaphore: Add nxsem_destroy() which is identical to sem_destroy() except that it never modifies the errno variable. Changed all references to sem_destroy() in the OS to nxsem_destroy().
libc/semaphore and sched/semaphore: Add nxsem_getprotocol() and nxsem_setprotocola which are identical to sem_getprotocol() and set_setprotocol() except that they never modifies the errno variable. Changed all references to sem_setprotocol in the OS to nxsem_setprotocol(). sem_getprotocol() was not used in the OS
libc/semaphore: Add nxsem_getvalue() which is identical to sem_getvalue() except that it never modifies the errno variable. Changed all references to sem_getvalue in the OS to nxsem_getvalue().
sched/semaphore: Rename all internal private functions from sem_xyz to nxsem_xyz. The sem_ prefix is (will be) reserved only for the application semaphore interfaces.
libc/semaphore: Add nxsem_init() which is identical to sem_init() except that it never modifies the errno variable. Changed all references to sem_init in the OS to nxsem_init().
sched/semaphore: Rename sem_tickwait() to nxsem_tickwait() so that it is clear this is an internal OS function.
sched/semaphoate: Rename sem_reset() to nxsem_reset() so that it is clear this is an internal OS function.
binfmt: Fix some compilation issues introduced in previous changes. Verfied with the STM32F4-Discovery ELF configuration.
binfmt: schedule_unload() is an internal OS function and must not alter the errno variable.
binfmt: unload_module() is an internal OS function and must not alter the errno variable.
binfmt: load_module() is an internal OS function and must not alter the errno variable.
binfmt: exec_module() is an internal OS function and must not alter the errno variable.
psock_close() and net_close() are internal OS functions and should not set the errno variable.
psock_ioctl() and netdev_ioctl() are internal OS functions and should not set the errno variable.
net_dupsd() and net_dupsd2() are internal OS functions and should not set the errno variable.
net/ and fs/: net_vfcntl(), file_fcntl(), file_dup(), and file_dup2() are all internal OS interfaces and should not modify the errno value.
net/: psock_recvfrom() is an internal interface and should not set the errno nor should it be a cancellation point.
net/: psock_accept() is not a cancellation point.
net/: psock_getsockopt() and psock_socket*9 are an internal interfaces and should not set the errno.
net/: psock_getsockopt() is an internal interface and should not set the errno.
net/: psock_listen() is an internal interface and should not set the errno.
net/: psock_connect(( is an internal interface and should not set the errno nor should it be a cancellation point.
net/: psock_bind() is an internal interface and should not set the errno.
net/: psock_accept() is an internal interface and should not set the errno.
There are two issues with it however:
1. Reading from file system on a per packet basis could be slow. I think it probably should have a small, in-memory cache of most frequently used routes for good problem.
2. Currently the delroute logic is disabled due to a problem with the design. NuttX does not currently support truncate(). Therefore, it is not possible to delete entries from the routing table file.
In this current implementation, that leaves the last entry intact at the end of the file. An alternative design might include a tag on each record to indicate if the record is valid or not. That would work but would add complexity to the other routing table functions.
The existing implementation is available for testing purposes only if CONFIG_EXPERIMENTAL=y.
Squashed commit of the following:
net/route: The current delroute design depends on file truncation. However, NuttX does not currently support truncate. Alternative, more complex designs are possible but not implemented. At present the file routing table are otherwise functional but the delroute logic is disabled via CONFIG_EXPERIMENTAL. Enable it only if you plan to fix it.
net/route: Fix some issues with locking routing table files.
net/route: Add partial implementation of delroute for the case where the routing table is in a file.
net/route: Add support for seeking to positions in the routing table.
net/route: Add net_addroute_ipv4/6() using a file-based routing table.
net/route: Add net_foreach_ipv4/4() using a file-based routing table.
net/route: Initial build, configuration, and fs utilies to support routing tables in a file.
From: Sakari Kapanen <sakari.kapanen@optofidelity.com>
Date: Sun, 24 Sep 2017 13:19:25 +0300
Subject: [PATCH] ICMPv6: fix router advertisement
Fixes several errors preventing icmpv6_radvertise.c from being compiled. Fixes conversions to network byte order (namely vlifetime, plifetime, mtu).
IPv6 source address is set to link-local IP address instead of the address in the netdev structure. This is in compliance to RFC 4861. RA didn't work on Linux before this change.
Finally, router prefix and prefix length are derived from the IPv6 address and netmask in the netdev structure. This seems to make more sense than using a predefined, separate prefix from the config.
Networking: Add implementation of logic for SIOCGIFCONF and SIOCGLIFCOF IOCTL commnds.
Networking: Add definitions and stuctures to support SIOCGIFCONF and SIOCGLIFCONF IOCTL commands.
drivers/wireless: Adds XBee S2C (802.15.4 firmware) support. XBee driver emulates mac802154 interface
* drivers/wireless/xbee: Adds xbee_netdev. Very similar to mac802154_netdev
* configs/same70-xplained: Starts adding support for XBee radio
* drivers/wireless/ieee802154/xbee: More structuring of XBee driver
* drivers/wireless/ieee802154/xbee: More Xbee work. Starts adding support on Clicker2
* drivers/wireless/ieee802154/xbee: More XBee MAC code
* configs/clicker2-stm32: More work to add XBee radio support
* drivers/wireless/ieee802154/xbee: Most of driver is now structured. No build errors
* configs/clicker2-stm32: Adjustments to XBee click module support
* drivers/xbee: Changes md_ prefix to xd_ prefix for xbeenet_driver_s fields
* drivers/xbee: XBee network device now passes MAC events via IOCTL
* drivers/xbee: Support querying device for parameters, setting parameters, and structures association/startpan logic
* configs/clicker2-stm32: Fixes Xbee lower half ATTN poll logic
* drivers/xbee: Removes dependce on CONFIG_IEEE802154_NETDEV
* drivers/xbee: Supports MAC RESET.request primitive
* drivers/xbee: Exposes generic AT query to the rest of driver
* drivers/xbee: Sets local values when writing setting change to Xbee device
* drivers/xbee: Finish association logic
* drivers/xbee: Adds xbee_get_mhrlen( ) allocating enough space for API frame header to frame
* drivers/xbee: Finishes transmit/receive logic
* drivers/xbee: Fixes xbee_netdev to match logic in mac802154_netdev.c
* drivers/xbee: Rearranges logic to prevent a loop condition where recursion could potentially occur to the point of deadlocking the system
Approved-by: Gregory Nutt <gnutt@nuttx.org>
Merged in merlin17/nuttx/mac802154-sock (pull request #479)
wireless/ieee802154: Adds support for receiving MAC events via IOCTL through socket interface. Other small fixes and cleanup
* ioctl: Cleans up MAC802154IOC values
* wireless/ieee802154: Cleans up MAC802154IOC_NOTIFY_REGISTER logic in character driver
* wireless/ieee802154/mac802154_netdev: Adds support for MAC event notification via IOCTL
* wireless/ieee802154/mac802154: Changes reset logic. No longer reset extended address.
* wireless/ieee802154: Cleans up MAC802154IOC logic
Moves MAC802154IOC from ieee802154_ioctl.h and renames ieee802154_ioctl.h to ieee802154_device.h since it only contains types relevant to the MAC char device now.
* wireless/ieee802154/mac802154_device: Cleans up IOCTL logic for recent changes.
* drivers/wireless/ieee802154/mrf24j40: Adds missing break in case statement
* wireless/ieee802154/mac802154_netdev: Starts adding support for passing MAC events via IOCTL
* wireless/ieee802154/mac802154: Fixes issue with receiver enable logic
* wireless/ieee802154/mac802154: Fixes issue where extended address is cleared and not rewritten after radio reset
* configs/clicker2-stm32/mrf24j40-mac: Enables RAMLOG and wireless driver logging
* wireless/ieee802154/mac802154: Fixes poll logic meant to automatically choose address mode based on short address range.
Approved-by: Gregory Nutt <gnutt@nuttx.org>
drivers/video/fb.c: Framebuffer driver is code complete but as of yet untested.
drivers/video/fb.c: Add framebuffer character device. This is basically only the framework for the driver; a lot of logic is still missing.
STM32L4: ADC, Kconfig small changes
* STM32L4 ADC: port analog watchdog ioctls from the Motorola MDK
* STM32L4: Kconfig: add some L486 and L496 chips, remove duplicates
Approved-by: Gregory Nutt <gnutt@nuttx.org>
commit 5b7b6e6e616c475c782e9883ada9f4a3b7cb4e2c
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Aug 20 11:13:17 2017 -0600
IEEE 802.15.4 network device: Make same changes as per loopback device so that it will build with PF_IEEE802154 but without 6LoWPAN.
commit d656a98cf8eab2f20e884224b52cd47ec35df4cc
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Aug 20 10:31:28 2017 -0600
PF_IEEE802154: More fixes to device registration and to IEEE 802.15.4 loopback driver for PF_IEEE802154 without 6LoWPAN.
commit 866bb9cbb0c5af79734bbd434c07fa2560b6608f
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Aug 20 09:58:13 2017 -0600
Network: Reorganize some Kconfig selections.
commit 230b4cb48008cba5fccdafa22340df1d43584829
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Aug 20 09:19:53 2017 -0600
Changes to conditional compilation so that PF_IEEE802154 can build without 6LoWPAN
commit d96cbd6520d40590a740f695c4cd72208ce872da
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Aug 20 09:17:02 2017 -0600
configs/sim/pf_ieee802154: Disable 6LoWPAN, IPv6, TCP, and UDP. Now things do not build
commit 2a3ab1652a2c95bcfc8be8380fc7cbdcb6472938
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Aug 19 08:44:31 2017 -0600
PF_IEEE802154: Finish some missing bind() logic. Add configs/sim configuration for testing.
commit 59be4b846a6e3bfe82087a888e3fdac9c3c414e5
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Aug 18 19:30:04 2017 -0600
PF_IEEE802154: More renaming to decouple 6LoPAN from radios in general.
commit 69fabb1aea76e54381bdc13de28a3f1441fb42f4
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Aug 18 19:21:11 2017 -0600
PF_IEEE802154: Missed a few renamings.
commit ff0af1bb25567720934cc1c2a721ccd92cc35f89
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Aug 18 17:46:58 2017 -0600
PF_IEEE802154: A few bugfixes
commit 01c7c84afd00cf907d280d30cfaf0fb2cf90e02e
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Aug 18 17:01:31 2017 -0600
PF_IEEE802154: A few bugfixes
commit dcef4056d1c1488c93151135f3b7106977faa903
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Aug 18 16:31:05 2017 -0600
PF_IEEE802154: Bring in framework for sendto/recvfrom. Currently just a crude port of functions from net/pkt and do not provide the implemenation needed.
commit 68c5b7b6dd3ab7eb2d0c19890abb38e6561b140e
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Aug 18 15:18:31 2017 -0600
Trivial fix to typo in comment
commit fd0af534c089569ccdbd59f13b85453de0a653ad
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Aug 18 15:07:20 2017 -0600
PF_IEEE802154: Add device lookup logic; Rename some things that used to be used only by 6LoWPAN but now must be shared with PF_IEEE802154 and need more generic naming.
commit 4fc80a1659f1c699b050775cefc7f6b631b46114
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Aug 18 13:49:54 2017 -0600
PF_IEEE802154: Add driver poll logic.
commit d83f71992df8764faa93f9425f1a7602a758f730
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Aug 18 13:28:59 2017 -0600
PF_IEEE802154: Add frame input function.
commit 77561b8c4d5d7be1f8d8eb62cf1a07229afe2048
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Aug 18 12:46:29 2017 -0600
PF_IEEE802154: Socket type should be SOCK_DGRAM. Hook in socket interface.
commit c0f90350282e9905d7f26a1b30f04cc6d6794648
Merge: 8b518abfd0 169c55e546
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Aug 18 09:36:32 2017 -0600
Merge remote-tracking branch 'origin/master' into pf_ieee802154
commit 8b518abfd07d492f5148f2c5fdf65604de9822da
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Aug 18 09:35:39 2017 -0600
PF_IEEE802154: Add initialization and connection management logic.
commit 98b62620b3cb420041d8ad14204f9410a8aace8c
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Aug 18 07:52:51 2017 -0600
PF_IEEE802154: Add basic build support and socket interface framework.
When a build does not want to use wide or multibyte char
CONFIG_LIBC_WCHAR is not set. Therefore we should to only
export the wc/mb functions when defined.
Regardless of the stat of CONFIG_LIBC_WCHAR the non mb/wc
definitions such as mbstate_t, wint_t, wctype_t need to be
exported.
commit f97da3a546f9d6e1b858cfc45538a06b62396034
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 30 19:09:46 2017 -0600
Network: Condition out some types that depend on definitions that are only available with 6LoWPAN is enabled.
commit 312e9dc1195527100e12bf6be8b629f5b29be1f6
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 30 18:57:23 2017 -0600
6LoWPAN: Fix case where source and destination IP address were backward. Fix some compile issues when star topology support is enabled.
commit 3b0e71c5807194fbb006d0560bb2c98133055ba3
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 30 16:01:48 2017 -0600
6LoWPAN PktRadio: Finishes up all logic; Lots of misc changes from build testing.
commit cc118f8cb335e1c48354fd7112e20be57de50b68
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 30 12:41:18 2017 -0600
6LoWPAN: Remove explicate type struct ieee802154_frame_meta_s from derive interface methods. Replace with a opaque void * type so that other radio meta data structures may use the interfaces. Add a new radion interface to get properties of the radio. Spirit: Finish packet I/O interface with the network.
commit 1aa0a63e8341ca5f9f88c294f96d1740459146d4
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 30 07:57:15 2017 -0600
6LoWPAN: Replace metadata input parameter type from struct ieee802154_data_ind_s to void*. This permits radios with different MAC metadata to interact with 6LoWPAN. Includes many changes to handle variable length radio addresses. No longer just short and exteneded; any length.
commit 46266ace61ae6246123873935436d864c7de31e0
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 29 17:50:42 2017 -0600
Spirit: Fix typos in SPI debug code.
commit 27c6b235f6a2d3b2f08da4920b224a40e9991f59
Merge: 7029dffd02 7f53e08917
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 29 13:43:02 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 7029dffd02156bcbfa84262671c2ca766a117191
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 29 12:02:13 2017 -0600
6LoWPAN PktRadio: Add missing MetaData-related prototypes and initialization logic. Perform a major renaming to make room in the 6LoWPAN name space for packet radios.
commit e2012f7c1df14155c0bfd45d7f1cb3f71b259f48
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 29 10:16:23 2017 -0600
6LoWPAN PktRadio: Some initial changes to support raw packet radios without IEEE 802.15.4 with 6LoWPAN.
commit c6dbf9178539b7da75e492ffd1d1f93c9c326299
Merge: da782d6cdf 5889ce65f5
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 29 07:30:08 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit da782d6cdff5980d71aaa2da5f9c28ab3438d085
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 29 07:26:48 2017 -0600
Spirit: Completes port of the spirit radio library to NuttX.
commit 63f3595c47dca13952d28b518c7f0a8d6ae9037a
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 28 17:42:51 2017 -0600
Spirit: Bring in a couple ore more radio interface functions.
commit 692a27da396b7683749790923d8fa085091764f1
Merge: 27c0a6ec08 38f79543dc
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 28 15:49:37 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 27c0a6ec0813187f125922c81189a70cf04d83d4
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 28 15:47:27 2017 -0600
Spirit: Bring in a couple ore more radio interface functions.
commit 96657af2831487724723a60084831619257fd953
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 28 14:20:14 2017 -0600
Spirit: Bring in more radio interface functions.
commit 640d55399b54a019be68825668fca1446abd082f
Merge: 3fcf84a9a2 47791442a0
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 28 12:01:43 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 3fcf84a9a2673e1e1466ce5b114d7b73c257e515
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 28 12:00:31 2017 -0600
Spirit: Brings in the last of the PktCommon interfaces.
commit d26ebd901ba4ba84910e99b4e728b98c30fa4c0b
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 28 09:54:52 2017 -0600
Spirit: Add a few more PktCommon interfaces.
commit b5cb8041d50233a4abb8fb4d1dcef5428ae2c2b2
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 28 09:33:31 2017 -0600
libc/termios: Remember block comments before empty file sections.
commit 0fcab2c1c8c74442d40bd5e8c6af50a34f8a5821
Author: Sebastien Lorquet <sebastien@lorquet.fr>
Date: Fri Jul 28 09:31:00 2017 -0600
tcdrain implementation based on a new term ioctl
commit 797d4adf7d41068c671f0217d369b797b269de1a
Author: Stefan Kolb <Stefan.Kolb@avat.de>
Date: Fri Jul 28 09:19:04 2017 -0600
We discovered a problem with the samv7 mcan driver which results, under some circumstances, in a very high CPU load.
The problem occurs, and is easily reproducible, if the device is connected to a CAN network with a wrongly configured CAN speed (baud rate). In our tests we set the CAN speed of the device to 1000000 and the speed of the other CAN nodes to 500000. The device is restarted and sends a CANopen “bootup message” to the CAN network. This results in huge amount of errors messages on the CAN bus, probably because of the CAN feature for acknowledging error messages. The error messages can’t be read by the device because of the misconfigured CAN speed, instead the CAN chip reports lots of errors, which are reported to the application which uses the CAN driver (CONFIG_CAN_ERRORS is enabled).
The CAN errors are reported from the CAN chip via interrupts and thus the interrupt load is very high in this scenario. To fix the problem the driver now disables each RX error interrupt after it is occurred. The RX error interrupts are turned back on if at least one CAN message is received successfully.
commit e298f48e96d9e34017dcab8e4d87032862ae9322
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 28 09:06:26 2017 -0600
Spirit: Bring in PktStack interfaces.
commit 4a0f00a7058312dcf6ac392689b9f69112f613ec
Merge: 855cf97130 b458934ac4
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jul 27 18:05:02 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 855cf9713052a851a1daeb3842db2edd6ff6f658
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jul 27 18:03:56 2017 -0600
Spirit Network Driver: Add some hooks that will eventually support address filtering.
commit 3b3fb24ea86cf8233b034871d5c550f47ab852e6
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jul 27 17:13:21 2017 -0600
Spirit: Add a PktStack header file.
commit 705e8fff6a21264ab751fb34c107cb109430ac89
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jul 27 15:00:03 2017 -0600
Spirit: Bring in last of timer interfaces.
commit f8984b2f82e165f5bba132d6b099222d1beb1fbd
Merge: cb79778a30 f287cc25d6
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jul 27 11:57:01 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit cb79778a3044ae97a1cc615dfa24099144f04bd0
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jul 27 11:46:31 2017 -0600
Spirit: Bring in last of QI interfaces.
commit 0245b330a33aa73531b82ae261b1312be9922e0f
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jul 27 10:14:34 2017 -0600
Spirit: Add general interfaces.
commit 121845a8f229ec2c88e5721da5512135f6624ee5
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jul 27 09:41:23 2017 -0600
Spirit: Bring in last of GPIO interfaces.
commit 279bfcc92bcd0cfa48c0ed7862fa2b75fbee99b8
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Wed Jul 26 17:09:19 2017 -0600
Spirit: Add some missing configuration options: Add register -level debug options.
commit 4be89324a5908e35afc70373c279f4d05f62b48f
Merge: 66e87f9bb3 598386ef90
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Wed Jul 26 15:36:20 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 66e87f9bb3ef75fddf25400bc08475c5e6ad4c30
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Wed Jul 26 15:19:56 2017 -0600
Spirit: Brings in last of PktBasic logic.
commit 8b4c89d6a103003fa04363e2c2ae7b9ee390bf49
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Wed Jul 26 11:55:50 2017 -0600
Spirit: Bring in AES and MBUS logic.
commit d00022d39ab0ce839de29386949481e5c24feff3
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Wed Jul 26 09:22:03 2017 -0600
Spirit: Bring in remainder of calibration interfaces.
commit 40b4b2f902e04293f8940551a97a9a24a48988dd
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Wed Jul 26 08:44:32 2017 -0600
Spirit: Bring in DirectRF interfaces.
commit 7c109608e1a2989f3edbc2fd939a2d225fff382a
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Wed Jul 26 07:46:19 2017 -0600
Spirit: Add CSMA support.
commit 0f88896595d162c4ac6138e7b1af2fc35c865b3d
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Tue Jul 25 18:57:43 2017 -0600
Spirit: Add some initial TX logic to network driver.
commit 4dc7058dfcdcf40980578680b7e1a4206dea4ea2
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Tue Jul 25 17:02:11 2017 -0600
Spirit: Completes ports of spirit_management.* files
commit c904eef51d929e041b87d0c8aff6fa3c2f895341
Merge: 91e985a877 c9ff8cbab9
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Tue Jul 25 15:15:04 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 91e985a87729017a66d19276c4d47681064f95ea
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Tue Jul 25 15:13:54 2017 -0600
Spirit: Add a few more functions that will soon be needed for packet transmission.
commit b5981d29983907c2194fbc26af4b72ad532bee78
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Tue Jul 25 13:30:07 2017 -0600
Spirit: Finish off some initialization issues; Started some interrupt handling logic.
commit c21073e0bc2870b3d9ba40bdfdfd5151ce4f5890
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Tue Jul 25 09:35:52 2017 -0600
Spirit: Completes very basic radio initialization for network driver
commit 1b544334361c54f46bcf0ba313c125932e8dafc6
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Tue Jul 25 07:58:30 2017 -0600
Spirit: Add more radio initialization logic... getting closer.
commit 45d1047db60843c57d394ec910c63e7c127671e0
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 19:15:33 2017 -0600
Spirit: add some CSMA initialization logic
commit bcf55c71336d48947fe19bb09a799169852301c2
Merge: 89e9d426e9 2fc0fbcf7e
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 16:47:11 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 89e9d426e91c056e659fccf5e5c4392618f8f777
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 16:44:19 2017 -0600
Update some comments
commit 9c5d8a5833350006ed389e898b11c8c8a20e5f4f
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 16:15:54 2017 -0600
Spirit: Rename drivers/wireless/spirit/src to lib. Move Spirit network driver out of IEEE802.15.4 into drivers/wireless/spirit/drivers
commit cabc0ec9e6eb558dcb715ab17264383aa0105e7a
Merge: 87b616414a 6bd744c4b3
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 15:38:40 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 87b616414a79c01a71acea78f8258e05325c1996
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 15:37:27 2017 -0600
Spirit radio driver is mutating into a standalone network driver.
commit 507798233868a661ae8adad3e3aa117075a7a146
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 13:32:08 2017 -0600
Spirit: More radio initialization logic
commit 33af25704ce9ca83d576300d153cfe31cc6d2576
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 12:19:14 2017 -0600
Spirit: Beginning of radio initialization logic
commit 97b20014c016e55952a8f9d8f4ae29e2cc555b23
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 24 09:42:06 2017 -0600
Spirit: More initialization logic.
commit 295d8e27824c0417fccea2344b30bb5c93ffbabe
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 23 15:39:53 2017 -0600
Spirit: Add header file containing enumeration of commands.
commit 8a2d9dd8eb9cc70cbcdd1b913fc9022b9c9ec8da
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 23 11:33:50 2017 -0600
Spirit: Add GPIO initialization logic
commit 8b6d80c44f92024c45a6ba63ba1af3fdafe94dc3
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 23 10:07:25 2017 -0600
Spirit: Add interrupt control logic.
commit 423f846fe5c914f92a4bfea4d9d1fa33de1c77a5
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 19:06:52 2017 -0600
Spirit: Yet a little more radio initialization logic.
commit 5895b979823e51ddde5ad52e6de66a8ad662e883
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 15:36:05 2017 -0600
Spirit: A little more radio initialization logic.
commit 86311ab30aad386203c181c792847dd1d37f9a02
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 13:02:32 2017 -0600
Spirit: A miniscule amount of radio initialization logic.
commit ad55e89d5ee12ea1eeea95fcd38ff3da0db4416a
Merge: 90a7666655 f4e46b0da7
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 10:56:30 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 90a766665534b05da0157dbc383cb06a98c86a79
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 10:52:52 2017 -0600
Spirit1: A few fixes for a clean build of initial configuration (not much there yet)
commit bbbf04c223230a52a7705a2161128265cfbaa480
Merge: 623d54a7f7 2319ea53a9
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 09:53:57 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 623d54a7f719e9032099f88f38203efee4b80722
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 09:43:52 2017 -0600
b-l475e-iot01a: Add a configuration for testing sprit radio.
commit d309d73d9f4665f9d870eb03531f450043d9389d
Merge: 52c3ddfae6 d88dc9b2e5
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 09:02:06 2017 -0600
Merge remote-tracking branch 'origin/master' into spirit
commit 52c3ddfae6802e111c2b5cf1207baf21a61dd00b
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 22 08:33:04 2017 -0600
Spirit: Add register definition header file.
commit 8d842ab5e8f9ca653b42f9ee88dc279f06b4fa98
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 21 17:27:03 2017 -0600
b-l475e-iot01a: Add initial, unverified support for the SPSRGF/Spirit1 module.
commit 73d902a1048616fb9c2dd2147cabcd8ee78e19ac
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 21 15:49:43 2017 -0600
Spirit: Fixes to get skeleton IEEE 802.15.4 driver build.
commit ebc5a8387bb94f0cc3827533795f3e4a33207e67
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 21 15:16:29 2017 -0600
Spirit1: Add framework for IEEE 802.15.4 driver. Does not yet build.
commit 52e195a7ae14ddb18bdd56258f4877381d2501ca
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 21 14:02:42 2017 -0600
Spirit: A little more SPI logic.
commit 90048d0c5b8a5af4d81a15d99535c84ed38d8ae9
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 21 11:19:06 2017 -0600
Spirit: Build directories setup. Some initial files added, mostly just to verify build.
commit 8273a381ac1f6bb081b292b5e73226185e9e634c
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 21 08:34:04 2017 -0600
USB composite: Remove references to CDC/ACM and USB MSC from composite logic. They are no longer coupled.
commit 69fcf3e849
Author: Alan Carvalho de Assis <acassis@gmail.com>
Date: Sun Jul 16 08:39:33 2017 -0600
Fix spark/stm32_composite.c: board_composite_connect cannot be static
commit 28eb253401
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 16 08:36:01 2017 -0600
Composite: Final review for coding style before merge
commit e6af1b9994
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 16 07:41:38 2017 -0600
Composite: Simplify some intiialization of data structures.
commit 771c367411
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 16 07:15:08 2017 -0600
Cosmetic changes to alignment.
commit 5d67ddda4e
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sun Jul 16 07:00:48 2017 -0600
USBMSC: Add missing logic to saved device description.
commit 0729151d29
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 15 17:11:41 2017 -0600
Trivial, costmetic
commit 74b916ff84
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 15 14:50:29 2017 -0600
Composite: Private functions need to be marked static. Move static functions out of 'Public Functions' to 'Private Functions' where they belong. Disable composite configuration 1 in all STM32 F1 configurations.
commit cfaa4ece13
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 15 13:20:34 2017 -0600
Add some comments.
commit 8143563be6
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 15 12:33:10 2017 -0600
Spark: Need to condition out MSC logic in composite setup if there is no MSC in the composite.
commit 69d3a91ef1
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 15 11:03:33 2017 -0600
Composite: Remove all dependencies on CONFIG_SYSTEM_COMPOSITE_* configuration settings. Nothing in the OS can depend on external application settings.
commit 55a4388bbd
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 15 09:59:31 2017 -0600
All composite configurations now also support a dual CDC/ACM configuration.
commit 428f2147af
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 15 09:24:32 2017 -0600
Composite: Move board_msc* interfaces from apps/system/composite to the board specific OS logic where they belong.
commit f1cc168a5c
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 15 08:56:33 2017 -0600
Refresh all composite configurations.
commit 246afcaa10
Merge: 919877191d02c6672868
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 15 08:22:26 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit 919877191d
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jul 15 08:20:02 2017 -0600
Composite setup: Remove useless board_cdc* wrapper.
commit 82129cf8c6
Merge: f2cb8b252a6537e4ea20
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 14 16:23:57 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit f2cb8b252a
Author: Alan Carvalho de Assis <acassis@gmail.com>
Date: Fri Jul 14 10:19:35 2017 -0600
Composite: Fix for another cloned typo.
commit 676cfd526a
Author: Alan Carvalho de Assis <acassis@gmail.com>
Date: Fri Jul 14 09:11:37 2017 -0600
Composite: Fix some typos
commit 1ea0368c18
Author: Alan Carvalho de Assis <acassis@gmail.com>
Date: Fri Jul 14 09:10:18 2017 -0600
Composite: ./stm3210e-eval/src/stm32_composite.c
commit e485caced9
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 14 09:08:17 2017 -0600
Composite: I don't think the original code should have forced minor=0.
commit 6443c29621
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 14 07:15:38 2017 -0600
Composite: Flesh out support for all of other configurations that support composite.
commit 23cbc28b05
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 14 06:59:45 2017 -0600
Detangle use of board_xyzclassobject() and board_xyzuninitialize()
commit 1674cb8c8e
Merge: 6bc881a1925033a6def7
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jul 13 13:57:40 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit 6bc881a192
Merge: fe3af4941d85b8d16d8c
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Tue Jul 11 12:24:07 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit fe3af4941d
Merge: 0f9ad16e181bc0eea143
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jul 10 11:07:36 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit 0f9ad16e18
Merge: a4cd90d4efaa2e9c15a5
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jul 7 20:26:53 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit a4cd90d4ef
Merge: 8a4be7175e31f832d8c5
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Wed Jul 5 11:12:52 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit 8a4be7175e
Merge: 18a32ed2caae1771454a
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jun 30 16:14:04 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit 18a32ed2ca
Merge: aaa81ce4976d8df90b79
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jun 29 10:18:16 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit aaa81ce497
Merge: 4eb548226b8cb4636bb1
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jun 26 11:56:11 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit 4eb548226b
Merge: 2327f5a1b4dc8eec0b61
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jun 19 17:27:00 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit 2327f5a1b4
Merge: 49cd279fc699bf0b522b
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jun 16 17:30:03 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit 49cd279fc6
Merge: bb6a13f30a46f86982ee
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Wed Jun 14 09:17:49 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit bb6a13f30a
Merge: 918480047aac93d4bda9
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Mon Jun 5 17:40:06 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit 918480047a
Merge: e4d262436c4526cd665e
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Sat Jun 3 08:52:31 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit e4d262436c
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jun 2 07:19:27 2017 -0600
SAMV71-Xult Composite: Now can switch between two different composite configurations dynamically.
commit 815257743d
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Jun 2 07:11:57 2017 -0600
usbdev composite and SAMV7-Xult: Move board-specific USB composite configuration out of boardctl.c and into board-specific logic where it belongs. Add a configuration option to the boardctl() calls to support multiple composite device configurations dynamically.
commit ac13619dc5
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jun 1 17:03:58 2017 -0600
Cosmetic
commit 9dd41bdd2f
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jun 1 17:02:43 2017 -0600
Composite: More compile-related fixes
commit fc1438c95d
Merge: 049ccbfcbeff2b54a5e0
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jun 1 16:35:41 2017 -0600
Merge remote-tracking branch 'origin/master' into composite
commit 049ccbfcbe
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jun 1 16:35:16 2017 -0600
Composite: Add some structure definitions missed in first application of the patch.
commit ef33329e3a
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jun 1 16:14:46 2017 -0600
Add a warning
commit 89f77cd91a
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jun 1 16:11:27 2017 -0600
Fix some incomplete name changes
commit 0bb7af549a
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jun 1 15:09:50 2017 -0600
It is unnecessary to pack a structure that consists only of uint8_t data fields.
commit bd9b548914
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu Jun 1 15:05:41 2017 -0600
Remove COMPILE_TIME_ASSERTION
commit 7e6f481581
Author: Frank Benkert <Frank.Benkert@avat.de>
Date: Thu Jun 1 14:58:04 2017 -0600
Part II of the same big commit
commit dcc9b07715
Author: Frank Benkert <Frank.Benkert@avat.de>
Date: Thu Jun 1 14:08:22 2017 -0600
[[This is part 1 or several commits]]
We developed a huge Changeset over a year ago to make USB Composite configuration dynamical and be able to instanciate the CDCACM multiple times inside this device. We use this feature to switch between one in normal and up to three CDCACMs in maintenance boot.
The control path starts in “boardctl.c” where the configuration for the device is constructed. There are still a few issues which I’ll ask you to have a look at before this beast can be merged.
1. To be able to construct the data dynamically I have changed some USB-Structs to be packed. Maybe there are additional structs to change (just for completeness – not for current functionality).
2. I’ve added the Macro “COMPILE_TIME_ASSERTION” two times (in usbmsc_desc.c and in cdcacm_desc.c) to stay private. Maybe you’ll find a better place. It’s used to check the size of the structs against the assumptions.
3. I’ve changed the interface for some USB-Functions to receive also the dynamic configuration. Maybe this can be done more elegant.
4. The original NuttX (without the patch) seems to have problems with a Composite device holding a CDCACM and an MSC. The “USB SET CONFIGURATION” request does not to work at all. This makes the test fail under Windows and under Linux. Applying this patch doesn’t change anything – because it only changes the configuration – not the behavior. Maybe you’ll have a look at this problem before applying the patch.