Commit Graph

692 Commits

Author SHA1 Message Date
Xiang Xiao
f618de9c97 Fix nxstyle warning
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-08 17:30:26 -03:00
Xiang Xiao
4c706771c3 sched/wdog: Replace all callback argument from uint32_t to wdparm_t
and alwasy cast the argument of wd_start to wdparm_t

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-08 17:30:26 -03:00
Johannes Schock
a32912040f Several nxstyle fixes. 2020-08-05 08:55:54 -03:00
Johannes Schock
c760db7fd0 Kinetis K28 USBHS USB-Host. 2020-08-05 08:55:54 -03:00
Johanne Schock
8792ade0fe Several USB improvements.
Kinetis: Reworked USB driver for setup out data phase.
Freedom K28: New config nshsdusb, with RNDIS support
PL2303: Try to avoid clone detection.
General: various nxstyle fixes
General: license changed
2020-07-24 13:24:53 -03:00
Xiang Xiao
7c54f51dc0 Fix nxstyle warning
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-07-19 19:35:21 -07:00
Xiang Xiao
e1ecb3e27c libc: Don't define localtime[_r] to macro when CONFIG_LIBC_LOCALTIME not define
since libc++ declare these function in ctime by:
using ::localtime[_r];

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ic0bb68b44c0cab838ab7cc34baee2aaa3ca8a9b5
2020-07-19 19:35:21 -07:00
Peter van der Perk
eca1011b1e Expose xxx_caninitialize() correctly so it's usable in latedev init when there are multiple net devices 2020-06-30 12:46:50 -06:00
David Sidrane
5cbebda133 kinetis:Ethernet fixed & better interrupt management
When any error was detected the buffers descriptors were
   blindly initialized. This caused the TX of the MAC to
   be in a bad state. The correct thing to do, we disable
   the MAC, init the bufffers and re-eanable the MAC.

   The interrupts were being throlled at the NVIC. This been
   cleaned up.
2020-06-21 14:16:26 -06:00
Peter van der Perk
6a19f03756 FlexCAN C89 Style initialization 2020-06-16 15:35:43 -03:00
Peter van der Perk
4eecf8561f FlexCAN interrupt fixes, old compiler fixes
SocketCAN old compiler fix
2020-06-16 15:35:43 -03:00
Peter van der Perk
b5c5948e1c NXStyle fixes 2020-06-15 08:07:19 -06:00
Peter van der Perk
5f73dc89be Kinetis: Added FlexCAN driver with SocketCAN support 2020-06-15 08:07:19 -06:00
Xiang Xiao
23668a4b9b build: Remove the empty variable assignment
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-24 08:24:13 -06:00
Gregory Nutt
a569006fd8 sched/: Make more naming consistent
Rename various functions per the quidelines of https://cwiki.apache.org/confluence/display/NUTTX/Naming+of+OS+Internal+Functions

    nxsem_setprotocol -> nxsem_set_protocol
    nxsem_getprotocol -> nxsem_get_protocol
    nxsem_getvalue -> nxsem_get_value
2020-05-17 14:01:00 -03:00
Xiang Xiao
517974787f Rename clock_systime[r|spec] to clock_systime_[ticks|timespec]
follow up the new naming convention:
https://cwiki.apache.org/confluence/display/NUTTX/Naming+of+OS+Internal+Functions
2020-05-10 14:35:50 -06:00
Gregory Nutt
673640b313 Run all .c and .h modified by this PR through nxstyle
The are remaining nxstyle complaints due to the use of mixed case identifiers in arch/arm/src/lc823450/lc823450_irq.c This, cannot be easily fixed since it depends on register definitions in header files that have implications to section other lc823450 files.
2020-05-01 16:55:33 -03:00
Gregory Nutt
b0dbdd7c10 arch/arm, board/arm: Rename all up_ramvec_* functions to arm_ramvec_*
Summary

The naming standard at https://cwiki.apache.org/confluence/display/NUTTX/Naming+FAQ requires that all MCU-private functions begin with the name of the architecture, not up_.

This PR addresses only these name changes for the ARM-private functions up_ramvec_initialize() and up_ramvec_attch().

Impact

There should be no impact of this change (other that one step toward more consistent naming).

Testing

stm32f4discovery:netnsh
2020-05-01 16:55:33 -03:00
Gregory Nutt
2aa85fd17e arch/arm, board/arm: Rename all up_* functions to arm_*
Summary

The naming standard at https://cwiki.apache.org/confluence/display/NUTTX/Naming+FAQ requires that all MCU-private functions begin with the name of the architecture, not up_.

This PR addresses only these name changes for the ARM-private functions prototyped in arm_internal.h

This change to the files only modifies the name of called functions.  nxstyle fixes were made for all core architecture files.  However, there are well over 5000 additional complaints from MCU drivers and board logic that are unrelated to to this change but were affected by the name change.  It is not humanly possible to fix all of these.   I ask that this change be treated like other cosmetic changes that we have done which do not require full nxstyle compliance.

Impact

There should be not impact of this change (other that one step toward more consistent naming).
Testing

stm32f4discovery:netnsh
2020-05-01 18:28:13 +01:00
Gregory Nutt
542b684f73 arch/arm: Rename all up_*.S files to arm_*.S
Summary

The naming standard at https://cwiki.apache.org/confluence/display/NUTTX/Naming+FAQ requires that all MCU-private files begin with the name of the architecture, not up_.

This PR addresses only these name changes for the up_*.S files.

The entire job required to be compatible with that Naming Convention will also require changing the naming of the up_() functions that are used only within arch/arm and board/arm.

Impact

There should be not impact of this change (other that one step toward more consistent naming).
Testing

stm32f4discovery:netnsh
2020-05-01 11:29:11 -03:00
Gregory Nutt
037c9ea0a4 arch/arm: Rename all up_*.h files to arm_*.h
Summary

The naming standard at https://cwiki.apache.org/confluence/display/NUTTX/Naming+FAQ requires that all MCU-private files begin with the name of the architecture, not up_.

This PR addresses only these name changes for the up_*.h files.  There are only three, but almost 1680 files that include them:

    up_arch.h
    up_internal.h
    up_vfork.h

The only change to the files is from including up_arch.h to arm_arch.h (for example).

The entire job required to be compatible with that Naming Convention will also require changing the naming of the up_() functions that are used only within arch/arm and board/arm.

Impact

There should be not impact of this change (other that one step toward more consistent naming).

Testing

stm32f4discovery:netnsh
2020-05-01 03:43:44 +01:00
Gregory Nutt
c6c712b2fc arch/arm: Rename all up_*.c files to arm_*.c 2020-05-01 02:11:01 +01:00
Gregory Nutt
84ccee4d34 Rename up_switchcontext to arm_switchcontext 2020-04-30 22:09:51 +01:00
Gregory Nutt
6398a64e26 Rename up_saveusercontext to arm_saveusercontext 2020-04-30 22:09:51 +01:00
Gregory Nutt
3a82a20c90 Rename up_copyarmstate to arm_copyarmstate 2020-04-30 22:09:51 +01:00
Gregory Nutt
3d2cd1493f Rename up_copyfullstate to arm_copyfullstate 2020-04-30 22:09:51 +01:00
Gregory Nutt
e2a65ceb5f Rename up_fullcontextrestore to arm_fullcontextrestore 2020-04-30 18:38:32 +01:00
Nathan Hartman
9b86305ad3 Fix copy/paste typo in various Kconfigs 2020-04-14 22:42:21 +01:00
John Rippetoe
acb16e087a Fixes build issues associated with ARMv7-m mpu support files.
- inline functions within mpu.h converted to macros or moved to up_mpu.c
- mpu.h and up_mpu.c are now conditionally included in build via CONFIG_ARM_MPU

Chips affected by these changes
- imxrt
- kinetis
- lpc17xx
- lpc43xx
- lpc54xx
- sam34
- stm32
- stm32f7
- stm32h7
- stm32l4
- tiva
- xmc4
2020-04-11 13:53:20 +08:00
Nakamura, Yuuichi
e264484c16 Remove type casting to wdentry_t (arch/) 2020-04-07 06:23:15 -06:00
Gregory Nutt
81b286d375 Fix some long single line comments.
This commit fixes some long single line comments.  This effort was primarily intended to verify the change to tools/nxstyle of PR #743 further.  This took the files changed with 1501d284c3 and ran them through nxstyle again.  The files in the commit previously passed the old nxstyle test with no complaints.  The current nxstyle, on the other hand, reported 49 long single line comments.  Each of those were verified and the file was updated.  The nxstyle change appears completely reliable.
2020-04-06 22:04:38 +01:00
Gregory Nutt
e19246fe94 Correct the naming of some new functions.
Serval private functions were added with a name ending with _uninterruptible.  That is not correct.  These new functions should be named _noncancelable.
2020-04-05 12:32:04 -03:00
Gregory Nutt
1501d284c3 Check return from nxsem_wait_uninterruptible()
Resolution of Issue 619 will require multiple steps, this part of the first step in that resolution:  Every call to nxsem_wait_uninterruptible() must handle the return value from nxsem_wait_uninterruptible properly.  This commit is for all SDIO card drivers under arch/.
2020-04-04 20:00:04 +01:00
Gregory Nutt
a6e69a82ad SDIO: Make interface field names conform to standard.
The SDIO interface structure includes fields with names like recvR1 and others.  These cause "Mixed case identifier" errors from nxstyle in all places they are uses.
This change performs a mass substition of recvR with recv_r to correct this coding standard violation.
2020-04-04 18:15:25 +01:00
Gregory Nutt
fc467021cf Check return from nxsem_wait_initialize()
Resolution of Issue 619 will require multiple steps, this part of the first step in that resolution:  Every call to nxsem_wait_uninterruptible() must handle the return value from nxsem_wait_uninterruptible properly.  This commit is for all I2C drivers under arch/.
2020-04-02 00:46:06 +01:00
Nathan Hartman
a5e643b0cd Fix typos in comments and documentation. 2020-03-16 20:01:11 -06:00
Petro Karashchenko
3fa6baec98 spi: change spi_send() interface to support of 32-bit word transfer
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2020-03-09 08:03:35 -06:00
Johanne Schock
757c37fbc9 fixed long line warnings from nxstyle 2020-03-08 08:52:46 -06:00
Johanne Schock
ac1f5d673a Fixed formatting and comments in board.h and kinetis_k28memorymap.h
Fixed clock calculation in board.h
2020-03-08 08:52:46 -06:00
Johanne Schock
050e45bfe7 Changes for Freedom K28 USB device support 2020-03-07 13:07:37 -06:00
Juha Niskanen
f3490e42c3 Fix typos in comments 2020-03-03 09:11:57 -06:00
johannes-nivus
a7d783d463 NXP Freedom K28F Board SD-Card support (#423)
* Adds SDHC support for NXP Freedom-K28F
2020-03-03 09:06:17 -06:00
Xiang Xiao
cde88cabcc Run codespell -w with the latest dictonary again
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-02-23 22:27:46 +01:00
Xiang Xiao
bd4e8e19d3 Run codespell -w against all files
and fix the wrong correction
2020-02-22 14:45:07 -06:00
Gregory Nutt
fdf673c5c7 arch/arm/src/kinetis/kinetis_serial.c: Correct build test failure.
Correct error:  'TTS0_DEV' undeclared
2020-02-19 10:31:04 +01:00
Juha Niskanen
15b78abccf Fix typos in comments 2020-02-14 08:50:45 -06:00
Xiang Xiao
6d69439f58 Call xxx_timer_initialize from clock subsystem
Call xxx_timer_initialize from clock subsystem to make timer ready for use as soon as possiblei and revert the workaround:

commit 0863e771a9
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Apr 26 07:24:57 2019 -0600

    Revert "sched/clock/clock_initialize.c:  clock_inittime() needs to be done with CONFIG_SCHED_TICKLESS and clock_initialize should skip clock_inittime() for external RTC case since the RTC isn't ready yet."

    This reverts commit 2bc709d4b9.

    Commit 2bc709d4b9 was intended to handle the case where up_timer_gettime may not start from zero case.  However, this change has the side-effect of breaking every implementation of tickless mode:  After this change the tickless timer structures are used before they are initialized in clock_inittime().  Initialization happens later when up_initialize is called() when arm_timer_initialize().

    Since the tickless mode timer is very special, one solution might be to

    1. Rename xxx_timer_initialize to up_timer_initialize
    2  Move up_timer_initialize to include/nuttx/arch.h
    3.  Call it from clock subsystem instead up_initialize

    Basically, this change make timer initialization almost same as rtc initialization(up_rtc_initialize).

    For now, however, we just need to revert the change.
2020-02-08 07:40:06 -06:00
Peter van der Perk
513475c11c Kinetis renamed TJA1100 to TJA110X registers 2020-02-07 10:04:48 +01:00
Alan Carvalho de Assis
af68c22a2e arch/arm/src/kinetis/kinetis_spi.c: Clear the MDIS bit before trying to
disable TX or RX.
2020-02-04 20:45:00 +00:00
Xiang Xiao
5c80b94820 Replace #include <semaphore.h> to #include <nuttx/semaphore.h>
Since the kernel side should call nxsem_xxx instead and remove the unused inclusion
2020-02-01 08:27:30 -06:00
Xiang Xiao
80277d1630
Refine the preprocessor conditional guard style (#190) 2020-01-31 19:07:39 +01:00
Xiang Xiao
68951e8d72 Remove exra whitespace from files (#189)
* Remove multiple newlines at the end of files
* Remove the whitespace from the end of lines
2020-01-31 09:24:49 -06:00
Juha Niskanen
a762c06ed9 Fix typos and some incorrect comments
Author: Alan Carvalho de Assis <acassis@gmail.com>

    Run nxstyle against .c and .h files and fix it

Author: Juha Niskanen <juha.niskanen@haltian.com>

    Fix typos and some incorrect comments
2020-01-20 09:32:36 -03:00
Xiang Xiao
6a3c2aded6 Fix wait loop and void cast (#24)
* Simplify EINTR/ECANCEL error handling

1. Add semaphore uninterruptible wait function
2 .Replace semaphore wait loop with a single uninterruptible wait
3. Replace all sem_xxx to nxsem_xxx

* Unify the void cast usage

1. Remove void cast for function because many place ignore the returned value witout cast
2. Replace void cast for variable with UNUSED macro
2020-01-02 10:54:43 -06:00
Xiang Xiao
87cf5c58ae Correct some problems with network timed events when there are multiple network devices in the configuration.
Squashed commit of the following:

Author: Gregory Nutt <gnutt@nuttx.org>

    Ran nxstyle against many of the affected files.  But this job was too big for today.  Many of the network drivers under arch are highly non-compiant and generate many, many faults from nxstyle.  Those will have to be visited again another day.

Author: Xiang Xiao <xiaoxiang@xiaomi.com>

    This effects all network drivers as well as timing related portions of net/: devif_poll_tcp_timer shouldn't be skipped in the multiple card case.  devif_timer will be called multiple time in one period if the multiple card exist, the elapsed time calculated for the first callback is right, but the flowing callback in the same period is wrong(very short) because the global variable g_polltimer is used in the calculation.  So let's pass the delay time to devif_timer and remove g_polltimer.
2019-12-24 10:37:30 -06:00
Nathan Hartman
9655730ef8 Fix various typos and spelling errors. 2019-12-12 07:41:51 -06:00
David Sidrane
43a3a0f400 Merged in david_s5/nuttx/master_k66_ethernet (pull request #1064)
NXP k66 Ethernet

* Kinetis:Add TJA1100 Phy

* Kinetis:enet.c formated with nxstyle

* net:mii Cleanup TJA1100 Support

      Formating and adding mask and shifts

* net:Kconfig Cleanup formatting

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-10-30 18:29:54 +00:00
Nathan Hartman
46aaec7ba0 Fix minor typos in docs and comments. 2019-09-29 12:52:20 -06:00
Juha Niskanen
c3d24571fb Fix some typos. Mostly inital->initial. 2019-09-27 06:32:32 -06:00
Juha Niskanen
e8b5dd4528 Fix use of undefined pp-token #errror, other typos. 2019-09-19 18:19:18 -06:00
Juha Niskanen
ebc6f51641 Fix some typos 2019-09-17 10:46:23 -06:00
Gregory Nutt
e2949d0dcf boards/arm/stm32/axoloti, omnibusf4, and stm32f4discovery: If CONFIG_SCHED_CRITMONITOR is selected, then make sure that ITM and DWT resources are enabled before accessing ITM and DWT registers. By default, these registers are disabled. Suggested by Juha Niskanen. 2019-09-13 07:22:00 -06:00
Nathan Hartman
366053e464 Fix typos, 1 in a #define, others in comments. This changes one definition: _MQ_TIMEDRECIEVE is changed to _MQ_TIMEDRECEIVE. It appears this symbol is not used anywhere. 2019-09-11 08:56:56 -06:00
Augusto Fraga Giachero
68bbc8438c drivers/timers/pwm.c: Move the pwm/pwm.c driver to timers/pwm.c, The drivers/pwm contained only one .c file (pwm.c), so to avoid the proliferation of sub-directories inside drivers/ is better to move the pwm.c driver to drivers/timers. The pwm.h header was moved to include/nuttx/timers to keep consistency, so all files referencing it need to be updated. 2019-09-02 07:57:10 -06:00
Nathan Hartman
be5a40c656 Fix typos in comments. 2019-08-21 09:32:59 -06:00
Beat Küng
ef233507db Merged in bkueng/nuttx/serial_single-wire_pullup (pull request #994)
serial single-wire: add possibility to specify pull-up instead of open drain

Approved-by: David Sidrane <david.sidrane@nscdg.com>
Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-08-15 21:58:52 +00:00
David S. Alessio
ced0dc1e16 arch/arm/src/armv7-m: Add ARMv7-M setjmp/longjump functions. 2019-08-06 15:59:19 -06:00
David Sidrane
1881a7216e Merged in david_s5/nuttx/master_kinetis_i2c_fix_txfer (pull request #965)
kinetis:i2c transfer ensure correct result returned

kinetis_i2c_transfer released the mutex then fetched
   the state, this resulted in returning the correct
   results.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-08-05 20:31:34 +00:00
Petro Karashchenko
90bed3383e arch/arm/src/am335x/hardware: Add register description files for DCAN and LCD. 2019-07-06 06:57:05 -06:00
Beat Küng
9878997f72 Merged in bkueng/nuttx/uart_invert_ioctl_kinetis (pull request #937)
kinetis: add uart signal inversion support

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-07-05 14:24:52 +00:00
Gregory Nutt
a26e229834 arch/arm/src/kinetis/hardware/kinetis_k20k40k60mpu.h: Fix idempotency definitions and some additional typos. 2019-05-24 17:41:38 -06:00
Gregory Nutt
2899e529b8 Rename arch/arm/src/kinetis/chip to arch/arm/src/kinetis/hardware. 2019-05-24 17:10:46 -06:00
Gregory Nutt
abf6965c24 Squashed commit of the following:
libs/:  Remove references to CONFIG_DISABLE_SIGNALS.  Signals can no longer be disabled.
    syscall/:  Remove references to CONFIG_DISABLE_SIGNALS.  Signals can no longer be disabled.
    wireless/:  Remove references to CONFIG_DISABLE_SIGNALS.  Signals can no longer be disabled.
    Documentation/:  Remove references to CONFIG_DISABLE_SIGNALS.  Signals can no longer be disabled.
    include/:  Remove references to CONFIG_DISABLE_SIGNALS.  Signals can no longer be disabled.
    drivers/:  Remove references to CONFIG_DISABLE_SIGNALS.  Signals can no longer be disabled.
    sched/:  Remove references to CONFIG_DISABLE_SIGNALS.  Signals can no longer be disabled.
    configs:  Remove references to CONFIG_DISABLE_SIGNALS.  Signals can no longer be disabled.
    arch/xtensa:  Remove references to CONFIG_DISABLE_SIGNALS.  Signals can no longer be disabled.
    arch/z80:  Remove references to CONFIG_DISABLE_SIGNALS.  Signals can no longer be disabled.
    arch/x86:  Remove references to CONFIG_DISABLE_SIGNALS.  Signals can no longer be disabled.
    arch/renesas and arch/risc-v:  Remove references to CONFIG_DISABLE_SIGNALS.  Signals can no longer be disabled.
    arch/or1k:  Remove all references to CONFIG_DISABLE_SIGNALS.  Signals are always enabled.
    arch/misoc:  Remove all references to CONFIG_DISABLE_SIGNALS.  Signals are always enabled.
    arch/mips:  Remove all references to CONFIG_DISABLE_SIGNALS.  Signals are always enabled.
    arch/avr:  Remove all references to CONFIG_DISABLE_SIGNALS.  Signals are always enabled.
    arch/arm:  Remove all references to CONFIG_DISABLE_SIGNALS.  Signals are always enabled.
2019-04-29 14:52:05 -06:00
Gregory Nutt
c7f042ba14 arch/arm/src: Remove dependency on CONFIG_ARCH_FPU for inclusion of nvic.h in all other *_start.c files. 2019-04-25 07:17:10 -06:00
Gregory Nutt
b290160b3b Rename sched_process_timer to nxsched_process_timer. That is the appropriate name for an internal sched/ function (still many named incorrectly). 2019-03-20 19:27:40 -06:00
Xiang Xiao
64252a298f arch/: Unify the cache interface for all architectures 2019-03-19 10:37:13 -06:00
Gregory Nutt
dc8c814ca3 Squashed commit of the following:
Fixed coding standard error in several files.  Use of while( is incorrect; a space is required between while and (.  Also ran tools/nxstyle and fix thoses complaints as well in most files.

    Changes to comply with coding standard.  Mostly focused on files with missing space after keyword in if(, switch(, and for(.  Offending files also got changes to comply with tools nxstyle.  If there were logs of nxstyle complaints, the file also got a taste of tools/indent.sh.  Still need to fix occurrences of while( with missing space.  There are a lot of them.
2019-02-27 08:41:08 -06:00
Gregory Nutt
a2e62f557d Squashed commit of the following:
sched/init/nx_bringup.c:  Fix a naming collision.
    sched/init:  Rename os_start() to nx_start()
    sched/init:  Rename os_smp* to nx_smp*
    sched/init:  Rename os_bringup to nx_bringup
    sched/init:  rename all internal static functions to begin with nx_ vs os_
2019-02-04 16:20:35 -06:00
Gregory Nutt
4b9abfa3c2 Every file that uses serial IOCTLs (TIOC*) must explicity include nuttx/fs/ioctl.h. This was included previously via sneak path in the now deleted arch/serial.h. 2019-01-27 13:41:44 -06:00
Xiang Xiao
818d8dda1e Remove empty seria.h and all references 2019-01-26 15:08:14 -06:00
Gregory Nutt
df64811269 up_initialize(): As noted by Roland Takacs in Bitbucket issue 141, there is a compilation error for STM32 if CONFIG_NET and CONFIG_NETDEV_LATEINIT are selected. That was due in part to commit 19e16cb which extended up_netinitialize() with a !defined(CONFIG_NETDEV_LATEINIT) guard but did not add the guard to concrete implementations. I say "in part" because I don't think that the original intent of commit 19e16cb was to enable an alternative initialization of MCU internal Ethernet support but rather to enable support of external Ethernet devices that may have dependencies on, for example, SPI. However, this is still a proper fix to avoid the compilation error that can occur with this combination of configuration options. 2019-01-25 07:21:03 -06:00
Gregory Nutt
a7f75b4ee8 Revert "arch/: Fix an error found in build testing. The protoype of mpu_log2regionfloor() changed; an additional parameter was added. However, none of the calls to mpu_log2regionfloor() were updated to pass the new, additional parameter."
Commit 8b63d02309 was reverted.  This related commit must now also be reverted to avoid compilation errors.

This reverts commit e8270defc9.
2019-01-08 15:21:29 -06:00
Gregory Nutt
6fad6607bf arch/arm/src: Masayuki Ishikawa's change to go_os_start() should be applied to all MCU-specific start-up functions that support go_os_start(). 2018-12-25 08:14:55 -06:00
Dave Marples
d0cda60442 In the current implementation we only use very high priority interrupts (levels 0, 0x10 and 0x20 in CORTEX-M speak) but that means there are loads of lower priority ones that are effectively unused. I have *not* changed the semantics of these levels but have 'shifted' them to be based around the midpoint of the available interrupts (0x80) rather than at the top end....that allows for interrupts to be defined above (or, indeed, below) them as needed by the application. This should have no functional effect on existing code but adds in a clean capability to define higher priority interrupts. 2018-12-03 17:41:59 -06:00
Gregory Nutt
09f4dee6bc All network drivers! Change pre-processor logic that selects the high priority work queue or gives preferential treatment to the high priority work. All network logic must run on the low priority work queue! Or suffer the consequences. 2018-11-21 07:57:26 -06:00
Gregory Nutt
7a45fc6f1c arch/arm/src/max326xx: Add framework for MAX326XX standard DMA support. 2018-11-20 08:09:03 -06:00
Gregory Nutt
6d93658ff8 Add new configuratin CONFIG_NET_MCASTGROUP. This option is selected automatically if either CONFIG_NET_IGMP or CONFIG_NET_MLD are selected. Most conditional logic based on CONFIG_NET_IGMP replaced with conditioning on CONFIG_NET_MCASTGROUP. 2018-10-31 15:03:51 -06:00
Gregory Nutt
c6c9064464 EFM32, Kinetis, BCM2708: Juha Niskanen's fix of commit 4a32325e3c also applies to BCM2708, EFM32, and Kinetis. 2018-10-10 06:45:03 -06:00
Gregory Nutt
510b0f7e07 arch/arm/src: Correct all ARMv7-M architectures. Interrupts were not be disabled correctly on power up. Writing zero to the NVIC SET-ENABLE registers has no effect. In order to disable interrupts, it is necessary to write all ones to the NVIC CLEAR-ENABLE register. Noted by David Sidrane. 2018-09-21 21:32:50 -06:00
Gregory Nutt
6632ac721e arch/arm/src/kinetis: Remove all attempts to reprioritize interrupts. 2018-09-21 13:18:29 -06:00
Gregory Nutt
9546481054 Fix some typographical errors. 2018-09-14 06:55:45 -06:00
David Sidrane
4a1b8e5825 Merged in david_s5/nuttx/master_kinetis_i2c_reset_hf (pull request #718)
kinetis:i2c On faild reset re-init i2c and clocking

If a reset fails, we still must reinitializes the
  i2c block so that subsequent transfers will not
  cause a hardfault due to the clock being off.
  If that transfer fails it can try to reset
  again.

Approved-by: GregoryN <gnutt@nuttx.org>
2018-09-11 22:14:37 +00:00
Gregory Nutt
f8bfbd58c5 arch/arm/src/armv7-m/up_trigger_irq.c: Add logic to trigger ARMv7-M interrupts and exceptions. 2018-08-25 10:23:21 -06:00
Gregory Nutt
9bc951a335 Rename devif_loopback_out to devi_loopback 2018-08-25 08:33:21 -06:00
David Sidrane
aa409f46ab Merged in david_s5/nuttx/master_kinetis_i2c_fix (pull request #711)
kinetis:i2c ensure timeout on bus error

The code had a dead wait on I2C_S_BUSY. Noise on the
   bus would cause the driver to hang.

   Add timeout on invalid states of I2C_S_BUSY to allow
   the upper layers do deal with restart or abort.

Approved-by: GregoryN <gnutt@nuttx.org>
2018-08-25 12:48:29 +00:00
Gregory Nutt
e8270defc9 arch/: Fix an error found in build testing. The protoype of mpu_log2regionfloor() changed; an additional parameter was added. However, none of the calls to mpu_log2regionfloor() were updated to pass the new, additional parameter. 2018-08-24 16:40:37 -06:00
Xiang Xiao
0074afa0ac net/netdev: add devif_loopback_out() to check the loopback case where a packet is being sent to itself. Modify the net driver to call this function in this case. This function will simply re-inject the packet back into the network and the network driver will not put anything on the wire. 2018-08-24 09:21:33 -06:00
Xiang Xiao
e1202d2ed3 Replace all ASSERT with DEBUGASSERT to save the code space 2018-08-24 06:58:30 -06:00
Gregory Nutt
672c6a5405 arch/arm/src/kinetis: Remove annoying typedefs. Discouraged but not prohibited by coding standard 2018-08-10 09:22:27 -06:00
Gregory Nutt
0bc84d74b6 configs/freedom-k66f/nsh/defconfig: Disable DMA in this configuration. 2018-08-10 08:10:35 -06:00
David Sidrane
9ef481ce4b Squashed commit of the following:
Author: Gregory Nutt <gnutt@nuttx.org>
    arch/arm/src/kinetis:  Cosmetic changes from review of coding standard.

Author: David Sidrane <david_s5@nscdg.com>
    Merged in david_s5/nuttx/master_kinetis (pull request #710)

    kinetis:Add DMA and use it as RX FIFOs on Serial

    * Add initial implementation of the DMA

    * Add across Kxx family support [WIP]

    * Incorporate the DMA into the serial

        Add polling to serial

        do DMA initialisation at UART startup and fix DMA mux setting.

        Fix circular DMA handling in the serial driver.

    * Adapt defconfig to enable UART1,4 RXDMA

    * [WIP] - refactor this with new CONFIG DMA settings

    * kinetis/Kconfig:Bring inline with upstream stucture

          1. Use the Serial console configuration from drivers/serial/Kconfig
            and friends.
          2. Prefix arch specific featurs as such
             UARTx_RXDMA->KINETIS_UARTx_RXDMA

    * Kinetis:Serial formatting and clean up

    * kinetis:DMA Formating and Cleanup

    * kinetis:serial Use cleaner DMA API

    * kinetis:Make.defs fix duplicate/errant kinetis_dma.o

    * kinetis:serial Fix warning/error on only one uart using DMA

          The driver can support no DMA on any UART, DMA on some
          UARTs or DMA on all UARTs.

          In the case of no DMA we disable the DMA based variables
          and logic. In the case of all DMA we disable the non
          DMA variables and logic, and in the mixed case both
          DMA and non DMA variable and logic are enabled.

    * kinetis:dma config fix formatting

    * kinetis:chip/dma fix formatting

    * kinetis:DMA config assume Unknown

           Assume KINETIS_DMA_VERSION_UKN for all SoC not versioned
           This is as the code was in nuttx prior to this commit

    * kinetis:DMAMUX contain versioning- use HAS pattern define Unknown

          The pattern for chip versioning is to define 'HAS' constants.
          Define KINETIS_DMAMUX_HAS_MONOTONIC_CHCFG to contain the
          version numbers to the include soc header and use that define
          in the chip headers.

          Define the KINETIS_DMAMUX_VERSION_UKN for the default as prior
          this commit addressing was by default monotonic for CHCFG

    * freedom-k66f:Disable Serial RXDMA

          The application has to add calling of the kinetis
          serial dma poll as it is application specific.

    Approved-by: GregoryN <gnutt@nuttx.org>
2018-08-10 08:03:50 -06:00
David Sidrane
2e23ffe9d2 Squashed commit of the following:
* kinetis:PIT add Liftime and Chaining

    * kinetis:flexcan fix dup line and ordering

    * kinetis:kinetis_lowput.c LPUART data format with parity fix

          The 9-bit data mode is typically used with parity to allow
          eight bits of data plus the parity

    * kinetis:pindma fix warning

    * kinetis:lowputc  LPUART_BAUD_INIT has to be defined

           build fails with test case enable LPUART0 and make
           UART1 console

           if HAVE_LPUART_DEVICE is defined then LPUART_BAUD_INIT
           has to be defined even if the lpuart is not the console

    * kinetis:lpserial fix warning
2018-08-09 09:08:39 -06:00
Gregory Nutt
10069067c1 include/nuttx/i2c/i2c_master.h: Rename I2C_M_NORESTART to I2C_M_NOSTART since it may be used in other contexts than a repeated start. Add comments to clarilfy setup for repeated start. 2018-08-03 08:51:55 -06:00
Gregory Nutt
1c31036e94 Remove spurious blank line from last PR. 2018-07-23 13:43:07 -06:00
David Sidrane
82fc9986bf Merged in david_s5/nuttx/master_kinetis_sdhc_dma (pull request #692)
kinetis:sdhc fix SDIO driver so that DMA works

There were 2 problems. The first was that the interrupt did
   test DINT and raise a completion events. But since DINT is
   just an indication of DMA completion, TC is a valid way to
   determine that the transfer is complete.

   The second problem is that Software Reset For DAT Line
   SDHC_SYSCTL[RSTD] clears the bits 24-0 in SDHC_PROTO
   this looses the wide bus setting DTW

Approved-by: GregoryN <gnutt@nuttx.org>
2018-07-23 19:41:23 +00:00
David Sidrane
e9cd6089c9 Merged in david_s5/nuttx/master_kinetis_usbhang (pull request #688)
kinetis:USB0 fix interrupt storm on error

The ERROR bit of USBx_ISTAT needed to be cleared once an
   error occured.

Approved-by: GregoryN <gnutt@nuttx.org>
2018-07-19 20:13:47 +00:00
Alan Carvalho de Assis
283b73edc5 Fix lots of typos in C comments and Kconfig help text 2018-07-08 18:24:45 -06:00
Gregory Nutt
22cd0d47fa This commit attempts remove some long standard confusion in naming and some actual problems that result from the naming confusion. The basic problem is the standard MTU does not include the size of the Ethernet header. For clarity, I changed the naming of most things called MTU to PKTSIZE. For example, CONFIG_NET_ETH_MTU is now CONFIG_NET_ETH_PKTSIZE.
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.
2018-07-04 14:10:40 -06:00
Gregory Nutt
cb374e6e62 arch/: Clean up some naming and spacing. 2018-06-20 15:38:06 -06:00
Gregory Nutt
8bd9cfe038 Squashed commit of the following:
arch/arm:  Remove support for CONFIG_ARMV7M_CMNVECTOR.  It is now the only vector support available.  Also remove CONFIG_HAVE_CMNVECTOR.  That no longer signifies anything."
    arch/arm/src/stm32:  This commit removes support for the dedicated vector handling from the STM32 architecture support. Only common vectors are now supported.
2018-06-20 12:30:37 -06:00
Gregory Nutt
9a51854223 arch/arm/src/lc823450: This commit removes support for the dedicated vector handling from the LC823450 architecture support. Only common vectors are now supported. 2018-06-20 10:04:38 -06:00
Gregory Nutt
ade6751345 arch/arm/src/tiva: This commit removes support for the dedicated vector handling from the Tiva/LM architecture support. Only common vectors are now supported. 2018-06-20 09:18:42 -06:00
Gregory Nutt
b38618d0c6 Squashed commit of the following:
arch/arm/src/lpc17xx:  This commit removes support for the dedicated vector handling from the LPC17xx architectures. Only common vectors are now supported.
    arch/arm/src/kinetis:  This commit removes support for the dedicated vector handling from the Kinetis architectures. Only common vectors are now supported.
2018-06-20 08:18:32 -06:00
Gregory Nutt
8fdbb1e0a4 Elimate use of the non-standard type systime_t and replace it the equivalent, standard type clock_t
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.
2018-06-16 12:16:13 -06:00
Juha Niskanen
e0aa6ed48c arch/arm/src: Change ASSERT macros to DEBUGASSERT. 2018-06-06 06:34:14 -06:00
David Sidrane
b2edfac2dd kinetis:kinetis_lowputc Fixed parity settings.
Kinetis UART must be placed in 9 bit mode (M=1) with when 8 bit
  data with parity is required. If left in 8 bit mode (M=0) with
  parity then D7 of the TX/RX register becomes parity bit. Hence
  what is called 9-bit or 8-bit Mode Select is a misnomer.
  8 bit mode when parity is enabled is realy 7 bit with parity.
2018-05-30 07:00:55 -06:00
Gregory Nutt
f9819e1f5f arch/arm/src/kinetis: Fix bad spacing in last commit. 2018-05-30 07:00:33 -06:00
David Sidrane
46999f9474 kinetis:kinetis_lowputc fix BRFA calculation effecting baudrate
Previous BRFA was not cleared and or-ed into new BRFA, hence
  buadrate was wrong.  Where Baud Rate Fractional Divisor (BRFD)
  UART baud rate = clock / (16 * (SBR + BRFD))
2018-05-30 06:58:21 -06:00
Gregory Nutt
ea8d78c9c5 arch/arm/src/imxrt: Add framework for eDMA support. Initial port is a rip off from the SAMA5Dx and is little more than the framework for the DMA support. 2018-05-16 14:28:22 -06:00
Gregory Nutt
aec56484ab arch/arm/src/kinetis + SDHC configs: Make Kinetis SDHC pullups work the same as the STM32 SDIO pullups 2018-05-12 17:12:58 -06:00
Gregory Nutt
bd455c9e46 arch/arm/src: All ARM architctures now support CONFIG_ARCH_IDLE_CUSTOM 2018-05-07 10:13:20 -06:00
Gregory Nutt
b5a4d6d9ef configs/freedom-k28f: With these changes to the configuration, the NSH configuration is now functional on the k28f board. Also fixes corrects the active logic level for the RGB LED. arch/arm/src/kinetis/chip: Fixes an error in vector configuration. 2018-05-05 09:33:48 -06:00
Gregory Nutt
7534a3d554 arch/arm/src/kinetis: Grrr.. fix a backward conditional test in last commit. 2018-05-04 17:46:14 -06:00
Gregory Nutt
399b4ba69d arch/arm/src/kinetis: Eliminate a warning when no UARTs are enabled. 2018-05-04 17:40:33 -06:00
Gregory Nutt
e047145363 arch/arm/src/kinetis: Fix some bit numbering errors in K28F USB HS header file. 2018-05-04 15:02:09 -06:00
Ramtin Amin
544d2a079f arch/arm/src/kinetis: Add USB HS header file. 2018-05-04 14:36:50 -06:00
Gregory Nutt
8c81b97148 Squashed commit of the following:
configs/freedom-k28f:  Add button and LED support.
    arch/arm/src/kinetis:  Fix a couple of additional compile problems.
    arch/arm/src/kinetis/chip and configs/freedom-k28f:  Add things needed for a successful build.  Still need board LED definitions.
2018-05-04 12:04:08 -06:00
Gregory Nutt
3755b0b6ef arch/arm/src/kinetis: Add pin multiplexing definitions for the K28F. 2018-05-04 10:19:00 -06:00
Gregory Nutt
21120057e8 Squashed commit of the following:
arch/arm/src/kinetis:  The K28F Kinetis MPU is almost the same as the K66F MPU.
     arch/arm/src/kinetis:  The K28F Kinetis FMC is the same as the K66F FMC.
2018-05-04 08:01:21 -06:00
Gregory Nutt
655d1dcf24 arch/arm/src/kinetis: Update LPUART register definitions for the K28F. 2018-05-03 15:14:58 -06:00
Gregory Nutt
c5a92c883a arch/arm/src/kinetis: Add PMC register definitions for the K28F. 2018-05-03 13:38:28 -06:00
Gregory Nutt
0f2b8b0ca2 arch/arm/src/kinetis: Add SIM register definitions for the K28F. 2018-05-03 12:31:54 -06:00
Gregory Nutt
3c7fa88fd4 arch/arm/src/kinetis: Adds MCG register definitions for the K28F. 2018-05-03 08:21:50 -06:00
Gregory Nutt
d2def725d9 This commits adds initial support for the Kinetis Freedom-K28F board. Not you ready for prime time.
Squashed commit of the following:

    arch/arm/src/kinetis:  A fixes from first (unsuccessful) attempt to build the Freedom-K28F configuration.
    configs/freedom-k28f:  Add basic board support for Freedom-K28F.  Initial commit is basically just the Teensy-3.x brought up to date and with name changes.
2018-05-02 13:14:32 -06:00
Gregory Nutt
b5411d96e6 arch/arm/src/kinetis: Correct K28F document number referenced in header file 2018-05-01 13:25:55 -06:00
Gregory Nutt
56358db441 arch/arm/src/kinetis: Add support for LPUART2-4. 2018-05-01 12:14:19 -06:00
Gregory Nutt
7927d1ff09 arch/arm/src/include/kinetis and src/kinetis: Beginning of a port to the K28F."
Squashed commit of the following:

    arch/arm/src/kinetis:  Add K28F memory map.
    arch/arm/src/include/kinetis and src/kinetis:  Add basic chip features and interrupt-related definitions for the K28F
2018-05-01 11:24:18 -06:00
Gregory Nutt
ea0bad7a59 arch/arm/src/kinetis: Eliminate a new warning introduced in last USB dev change. 2018-04-30 10:22:15 -06:00
David Sidrane
7e756e413d Merged in david_s5/nuttx/master_kinetis_usb_fixes (pull request #634)
kinetis usb device fixes

* kinetis:usb device use correct CONFIG OTG control

* kinetis:usb device fix interrupt storm when cable is disconnected

      The DM, DP state were incorrect because the pulldowns were not
      enabled.

      Also the pending asynchronous resume interrupt needed to be
      re-armed after the suspend is in effect. This is now done in
      the isr.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-04-28 11:27:48 +00:00
Gregory Nutt
9c1efc7ab9 drivers/serial/Kconfig: Kconfig is too big, divide into Kconfig, Kconfig-uart, Kconfig-usart, Kconfig-sci, Kconfig-16550. More than one MCU supports LPUARTs. Add Kconfig-lpuart and remove MCU-specific LPUART definitions. Affects Kinetis and STM32L4. 2018-03-14 10:33:27 -06:00
Gregory Nutt
b54ffe858a Standardization of some function headers. 2018-03-13 09:52:27 -06:00
Gregory Nutt
1e59d9dd14 armv7-a, armv7-r, armv7-m: Add atomic read-add-write and read-subtract-write functions. 2018-02-04 12:22:03 -06:00
Gregory Nutt
7cf88d7dbd Make sure that labeling is used consistently in all function headers. 2018-02-01 10:00:02 -06:00
Stewart
be81893b55 arm/src/kinetis: Correct some Ethernet PHY register bit tests for the KSZ8081 PHY. 2018-02-01 07:24:36 -06:00
Gregory Nutt
da50646bcf sched/wdog: wd_start() is an internal OS function and should not set the errno value. Reviewed and updated every call to wd_start() to verify if return value is used and if so if the errno value is accessed. 2018-01-31 10:09:14 -06:00
Gregory Nutt
a8b6be4aaf The existence of the network driver ioctl() method should depend on CONFIG_NETDEV_IOCTL rather than CONFIG_NETDEV_PHY_IOCTL. The former enables the method, the later enables a subset of possible driver IOCTLs. This change should be basically a no-operation. The affected ioctl methods only support those subset of driver IOCTLs selected by CONFIG_NETDEV_PHY_IOCTL and the network logic will tolerate a nul ioctl method. 2018-01-22 08:17:45 -06:00
Gregory Nutt
0e6e05bf11 arch/arm/src/kinetis: Fix some compile warnings that I introduced with a possibly overzealous recent change. 2017-12-17 16:26:03 -06:00
Juha Niskanen
d101fad026 Merged in juniskane/nuttx_stm32l4/stm32_rtc_small_patches_pr (pull request #511)
Stm32 rtc small patches

* RTC: canceling an alarm marks it as inactive

* STM32L4, STM32F4, STM32F7 RTC: fix reading alarm value that is more than 24h in future

* STM32F0 RTC: fix backup register count in stm32_rtcc.h

    All other STM32: SHIFTR_SUBFS_MASK was correct in STM32F0 only

* STM32L1: use correct EXTI line definitions

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-10-17 16:45:48 +00:00
Gregory Nutt
ecf6dda2c5 Correct recurring typo: semaphore not semapore 2017-10-09 09:57:56 -06:00
Gregory Nutt
700f1a8e8c Eliminate some warnings found in build testing. 2017-10-08 16:27:17 -06:00