Commit Graph

12868 Commits

Author SHA1 Message Date
Matias N
459ad29799 nrf52: extend systimer support; support WFI/WFE again
This commit exends systimer options for nRF52 arch. It is possible
to use ARM SysTick either for tickless or non-tickless mode. Also,
it is possible to use the RTC peripheral for tickless mode. This
also re-enables support for WFI/WFE sleep if RTC is used, since
this counter continues to run in this mode (in contrast to SysTick).
2020-09-10 12:10:20 +02:00
Matias N
dcd49c3882 nrf52_rtc: add missing getcounter() 2020-09-10 12:10:20 +02:00
Masayuki Ishikawa
22651fa22b arch: cxd56xx: Introduce cxd56_testset.c
Summary:
- I noticed that ldrex/strex on cxd56xx have an issue
- The issue is still under investigation
- This commit introduces a custom testset to avoid the issue

Impact:
- Affects cxd56xx in SMP mode if it is enabled

Testing:
- Tested with spresense:wifi_smp

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-09-10 08:52:22 +02:00
Ouss4
06ca12e6b9 arch/: Trivial typos, mostly "their is" to "there is" 2020-09-09 14:09:43 -04:00
Nathan Hartman
8f6b2f6948 tiva: tiva_adclib.c: Fix nxstyle warnings
arch/arm/src/tiva/common/tiva_adclib.c:

    * Fix nxstyle warnings. No functional changes.
2020-09-09 08:35:19 -07:00
barbiani
20c5c57cf6 Update tiva_timerlow32.c
Missing callback argument field.
2020-09-09 08:34:26 -07:00
David Sidrane
9106c4ec2b stm32h7:DMA Do not disqualify DMA capability based on cache alignment 2020-09-09 14:09:52 +02:00
David Sidrane
2d9e0f6a76 stm32f7:DMA Do not disqualify DMA capability based on cache alignment 2020-09-09 14:09:52 +02:00
Masayuki Ishikawa
ce93fe76e5 arm: cxd56xx: Fix nvic settings for SMP
Summary:
- I noticed that ostest sometimes stops with DEBUGASSERT
- Finally I found a bug that cpu1 can not disable interrupt
- This commit initializes nvic to fix this bug

Impact:
- Only affects cxd56 in SMP mode

Testing:
- spresense:smp and spresense:wifi_smp with DEBUG_ASSERTIONS=y

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-09-09 08:31:30 +02:00
Nathan Hartman
835d394856 tiva: tiva_timerlow32.c: Fix nxstyle warnings
arch/arm/src/tiva/common/tiva_timerlow32.c:

    * Fix nxstyle warnings. No functional changes.
2020-09-08 23:38:09 +08:00
Xiang Xiao
f99719e260 Move note driver from drivers/syslog to drivers/note
it's better to put the note transport layer into a common folder

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-09-07 11:54:10 +08:00
Johannes Schock
9e69b87aa3 Added KDEFINE (__KERNEL__) to EXTRAFLAGS for libboard. 2020-09-05 21:25:31 +08:00
David Sidrane
719246eddc stm32h7:i2c driver fixed iterrupt storm
Driver was getting into a state that it would keep
   generating interrups and not service them.
2020-09-05 16:41:01 +08:00
Nathan Hartman
e67f72b02d stm32: lowputc: Ensure USART is disabled before configuring
arch/arm/src/stm32/stm32_lowputc.c:

    * stm32_lowsetup(): Ensure the USART is disabled before attempting
      to configure it because some register bits cannot be modified
      otherwise. This solves an issue that was encountered when a
      serial bootloader did not perform a full teardown/cleanup before
      launching NuttX.
2020-09-04 17:39:19 -07:00
Masayuki Ishikawa
08c4376606 arch, include, sched : Refactor ARCH_GLOBAL_IRQDISABLE related code
Summary:
- ARCH_GLOBAL_IRQDISABLE was initially introduced for LC823450 SMP
- At that time, i.MX6 (quad Cortex-A9) did not use this config
- However, this option is now used for all CPUs which support SMP
- So it's good timing for refactoring the code

Impact:
- Should have no impact because the logic is the same for SMP

Testing:
- Tested with board: spresense:smp, spresense:wifi_smp
- Tested with qemu: esp32-core:smp, maix-bit:smp, sabre-6quad:smp
- Build only: lc823450-xgevk:rndis, sam4cmp-db:nsh

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-09-03 10:20:20 +08:00
Johannes Schock
a5a3e54be0 Kinetis USBHSHOST: Changed Async Await to linked list, restored two accidently deleted lines. 2020-09-01 20:49:03 +01:00
Johannes Schock
e521c224c1 Kinetis USBHSHOST improvement.
Avoid race conditions during freeing of queue head structures by using Async Advance Doorbell.
2020-09-01 20:49:03 +01:00
raiden00pl
a52f6529a0 arch/arm/src/nrf52/nrf52_irq.c: fix compilation warning 2020-09-01 12:02:20 -03:00
raiden00pl
94d81611f4 arch/arm/src/nrf52/nrf52_i2c.c: fix typo 2020-09-01 12:02:20 -03:00
raiden00pl
0438ed22d0 arch/nrf52: add UID support 2020-09-01 12:02:20 -03:00
raiden00pl
2a4d7de278 arch/nrf52: add ARM system reset support 2020-09-01 12:02:20 -03:00
Masayuki Ishikawa
7e94997eeb arch: cxd56xx: Use spinlock API in cxd56_uart.c
Summary:
- This commit improves cxd56_uart performance in SMP mode.

Impact:
- This commit affects SMP mode only.

Testing:
- Tested with spresense:smp

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-09-01 11:55:14 +02:00
Gregory Nutt
55a9172bc2 Fix Cygwin build with Windows native toolchain
PR #1450 broke the Cygwin build.  Refer to Issue #1672.

The use of of logic like:

    EXTRA_LIBPATHS += -L "${dir ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcc.a}}"

fails when the Toolchain $(CC) is a native Windows toolchain.  That is because the returned path is a Windows-style patch which cannot be handled by the make 'dir' command.  Commit 4910d43ab0 reorganized a lot of definitions and replaced the correct code with the use of the limit make 'dir' command.  The original code used the Bash dirname command which does not suffer from this limitation; it can handle both POSIX and Windows paths.

This was verified using the stm32f4discover:nsh toolchain with the Windows native ARM Embedded toolchain.  That toolchain returns:

    arm-none-eabi-gcc --print-file-name=libgcc.a
    c:/program files (x86)/gnu tools arm embedded/9 2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/libgcc.a
2020-09-01 10:20:28 +08:00
Matias N
da88467d6e nrf52_gpiote: add support for TASK mode 2020-08-31 19:39:15 +02:00
raiden00pl
3241ebf811 arch/nrf52: remove redundant chip definitions from Kconfig 2020-08-31 11:49:49 -03:00
raiden00pl
45f3aa4ca9 arch/nrf52: replace all chip-specific conditions with chip-features conditions in all hardware definitions. This gives us a more modular code. 2020-08-31 11:49:49 -03:00
Matias N
3176f2c3f0 nrf52_clockconfig: support HFCLK via XTAL and LFCLK 2020-08-31 08:01:37 +02:00
Brennan Ashton
58e43adf08 nxstyle: Fix existing long line to match code style
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
2020-08-30 19:16:30 -03:00
Brennan Ashton
4cb193d530 Docs: Update links to old website and wiki
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
2020-08-30 19:16:30 -03:00
Matias N
ae6ae113eb style fixes 2020-08-29 09:03:49 +02:00
Matias N
4ad36ffbbf nrf52_radio/gpiote: convert license header to Apache (Mateusz and Greg are authors) 2020-08-29 09:03:49 +02:00
Matias N
13695ca1e1 nrf52_rtc.c: fix checkint function 2020-08-29 09:03:49 +02:00
Matias N
31057ec81b nrf52_gpiote.h: fix incorrect naming of definition 2020-08-29 09:03:49 +02:00
Matias N
84cdde1a86 nrf52_radio.h: condition various definitions depending on specific chip 2020-08-29 09:03:49 +02:00
Matias N
4084b3396b nrf52_clock.h: fix duplicate definition 2020-08-29 09:03:49 +02:00
Nathan Hartman
cb27b77d6c stm32 - Fix two wrong comments in memory map
Comments only. No functional changes. See STM32G474 Reference Manual
(RM0440 Rev 4), section 3.4.1, Table 11, "Option byte organization."

arch/arm/src/stm32/hardware/stm32g47xxx_memorymap.h:

    * STM32_OPTION_BASE: The comment incorrectly said the range was
      0x1fff7800-0x1fff780f for a total of 16 Option Bytes. Corrected
      this to 0x1fff7800-0x1fff782f, as the device has 48 Option Bytes
      for this option block.

    * STM32_OPTION_BASE2: The comment incorrectly said the range was
      0x1ffff800-0x1ffff80f for a total of 16 Option Bytes. Corrected
      this to 0x1ffff800-0x1ffff82f, as the device has 48 Option Bytes
      for this option block.
2020-08-28 14:45:06 -07:00
leomarradke
8a2c480a48 arch: samd5e5:
- Add MTD progmem support.
- NVM USER PAGE IOCTLs support.

boards: metro-m4  Add support for:

- SmartFS inicialization.
- AT24 EEPROM.
- GPIO dev support.
- BQ27426 gauge inicialization.

drives: power
- Add BQ27426 fuel gauge support.

Testing:
- Build check only.

Signed-off-by: Leomar Mateus Radke  <leomar@falker.com.br>
2020-08-27 11:46:50 -03:00
Masayuki Ishikawa
c770dc9134 arch: cxd56xx: Use spinlock API in cxd56_rtc.c
Summary:
- This commit improves cxd56_rtc performance in SMP mode.

Impact:
- This commit affects SMP mode only.

Testing:
- Tested with spresense:smp

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-08-26 11:21:50 +02:00
Martina Rivizzigno
dcdd7264c8 fix style 2020-08-26 02:13:38 -07:00
Martina Rivizzigno
648ebc9ea9 stm32f7 can: fix support for RTR 2020-08-26 02:13:38 -07:00
Matias N
46dd4d8d91 nrf52_ppi: pass event and task register addresses as uin32_t directly 2020-08-25 07:22:24 +02:00
Matias N
de40f628bc nrf52_ppi: minor naming fixes in comments/include guards 2020-08-25 07:22:24 +02:00
Matias N
b198690c06 nrf52_ppi: fix file path in license header 2020-08-25 07:22:24 +02:00
Matias N
2168e60df6 nrf52_ppi.c: fix incorrect implementation of group channel enable 2020-08-25 07:22:24 +02:00
Matias N
c51e383e08 nrf52: add PPI peripheral support 2020-08-25 07:22:24 +02:00
Matias N
0b6cca920b nrf52_rtc: unify irq and evt enums 2020-08-25 07:17:23 +02:00
Matias N
f5f07da7e7 nxstyle fixes 2020-08-25 07:17:23 +02:00
Matias N
fa6bb5411d nrf52 RTC: add event handling support 2020-08-25 07:17:23 +02:00
Masayuki Ishikawa
52286f6dec arch: cxd56xx: Introduce CONFIG_CXD56_SPI_DMATHRESHOLD
Summary:
- This commit improves SPI performance.
- For small data, it does not use DMA.

Impact:
- All use cases which use SPI with DMA

Testing:
- Tested with spresense:wifi and spresense:example_lcd

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-08-24 12:37:38 +02:00
Johannes Schock
9bf9bb2db6 Changed comments. Proposed structure. 2020-08-23 08:23:54 -06:00
Johannes Schock
01715e4566 arm_xxxxstack.c: small style fixes, changed calculation of stack start for checkstack. 2020-08-23 08:23:54 -06:00
Johannes Schock
87614e2efd arm_createstack.c: Save tcb->adj_stack_size without tls overhead. 2020-08-23 08:23:54 -06:00
Xiang Xiao
ae356001cf Change all files come from Xiaomi/Pinecone to Apache License 2.0
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-22 17:37:21 -06:00
Masayuki Ishikawa
3543950766 arch: cxd56xx: Use spinlock API in cxd56_serial.c
Summary:
- This commit improves cxd56_serial performance in SMP mode.

Impact:
- This commit affects SMP mode only.

Testing:
- Tested with spresense:smp

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-08-21 12:06:46 +02:00
Masayuki Ishikawa
0d971d4673 arch: cxd56xx: Fix IRQ control in cxd56_dmac.c
Summary:
- This commit fixes IRQ control for the following use case
- The gs2200m Wi-Fi driver requests SPI-DMA to receive a packet.
- cxd56_dma.c enables IRQ for the SPI-DMA and start transfer.
- Then LCD driver requests SPI-DMA to display an image.
- These SPI-DMAs use different DMA channels but share the DMA controller.
- Also, they share the same IRQ.
- When the first SPI-DMA finishes the transfer, it disables the IRQ.
- And if the second SPI-DMA finishes the transfer just after the IRQ disabled.
- The second SPI-DMA will be in a deadlock condition.
- To resolve this issue, do not control IRQ during DMA transfer.
- Instead, up_enable_irq() is called in up_dma_initialize()

Impact:
- All use cases which use DMA

Testing:
- Tested with spresense:wifi with LCD

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-08-21 10:38:47 +02:00
leomarradke
f5912b5cba arch: samd5e5 : Oneshot, freerun and tickless available support. All support runs on Timer/Counter (TC).
Some fixes in external interrupt controller (EIC) and clockconfig.

Testing:
- Build check only.

Signed-off-by: Leomar Mateus Radke  <leomar@falker.com.br>
2020-08-18 12:42:44 -03:00
leomarradke
171cc38ac2 arch: samd5e5 : Add watchdog timer drivers.
boards: metro-m4  Add support for starting the watchdog timer on the metro-m4.

Testing:
- Build check only

Signed-off-by: Leomar Mateus Radke  <leomar@falker.com.br>
2020-08-18 12:42:44 -03:00
David Sidrane
07ce0deda0 Fix Added options for I-Cache & D-Cache broken on c101076704
The Kconfig names were not updated to reflect FLASH. This
   killed performance on F4 and F2.
2020-08-17 23:32:07 +01:00
Masayuki Ishikawa
2fbb896a4b arch: cxd56xx: Add SMP support to cxd56_farapi.c
Summary:
- This commit adds SMP support to cxd56_farapi.c
- nxplayer now works in SMP mode

Impact:
- Spresense in SMP mode only

Testing:
- Add the following configs to spresense:wifi
- +CONFIG_SCHED_INSTRUMENTATION=yy
- +CONFIG_SCHED_INSTRUMENTATION_BUFFER=y
- +CONFIG_SMP=y
- +CONFIG_SMP_NCPUS=2
- +CONFIG_SPINLOCK_IRQ=y
- Run nxplayer and play an WAV file on uSD card
- NOTE: http streaming playback would cause deadlocks

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-08-16 00:03:18 +01:00
Gregory Nutt
2af62314d7 Fix build breakage from PR #1565
Fixes:

    ##[error]net/tun.c:837:13: error: conflicting types for 'tun_poll_expiry'
      837 | static void tun_poll_expiry(FAR void *arg)
          |             ^~~~~~~~~~~~~~~
    net/tun.c:196:13: note: previous declaration of 'tun_poll_expiry' was here
      196 | static void tun_poll_expiry(wdparm_t arg);
          |             ^~~~~~~~~~~~~~~

And

    ##[error]net/tun.c:881:57: error: passing argument 4 of 'wd_start' makes integer from pointer without a cast [-Werror=int-conversion]
      881 |   wd_start(&priv->txpoll, TUN_WDDELAY, tun_poll_expiry, priv);
          |                                                         ^~~~
          |                                                         |
          |                                                         struct tun_device_s *
    In file included from /github/workspace/sources/nuttx/include/nuttx/sched.h:41,
                     from /github/workspace/sources/nuttx/include/sched.h:34,
                     from /github/workspace/sources/nuttx/include/nuttx/arch.h:81,
                     from net/tun.c:60:
    /github/workspace/sources/nuttx/include/nuttx/wdog.h:134:42: note: expected 'wdparm_t' {aka 'long unsigned int'} but argument is of type 'struct tun_device_s *'
      134 |              wdentry_t wdentry, wdparm_t arg);
          |                                 ~~~~~~~~~^~~

And

    chip/cxd56_rtc.c: In function 'up_rtc_initialize':
    ##[error]chip/cxd56_rtc.c:358:3: error: too many arguments to function 'cxd56_rtc_initialize'
      358 |   cxd56_rtc_initialize(1, NULL);
          |   ^~~~~~~~~~~~~~~~~~~~
    chip/cxd56_rtc.c:253:13: note: declared here
      253 | static void cxd56_rtc_initialize(wdparm_t arg)
          |             ^~~~~~~~~~~~~~~~~~~~
2020-08-14 14:12:51 -03:00
Xiang Xiao
acca9fcc3b sched/wdog: Remove MAX_WDOGPARMS and related stuff
since the variable arguments are error prone and seldom used.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-14 08:19:50 -06:00
leomarradke
35e0d74f3e arch: samd5e5 : Add USB host support.
Fixes in USB device and i2c.

boards: metro-m4  Add support for:

- vfat auto-mounted on a flash drive;
- i2c inicialization;
- usb-dev cdc;
- sam_usbhost_vbusdrive needs your VBUS implementation.

Testing:
- Build check only.

Signed-off-by: Leomar Mateus Radke  <leomar@falker.com.br>
2020-08-13 14:02:58 -03:00
leomarradke
4e8e21a92a Style fixes 2020-08-13 14:02:58 -03:00
leomarradke
af85c7801a arch: samd5e5 : Add watchdog timer drivers.
boards: metro-m4  Add support for starting the watchdog timer on the metro-m4.

Testing:
- Build check only

Signed-off-by: Leomar Mateus Radke  <leomar@falker.com.br>
2020-08-13 14:02:58 -03:00
Fotis Panagiotopoulos
c101076704 Added options for I-Cache & D-Cache, in STM32F2 & STM32F4. 2020-08-13 07:29:05 +02:00
David Sidrane
151a9253f4 s32k1xx:flexcan Remove unused variable 2020-08-12 21:38:06 +01:00
David Sidrane
ee60a26c7f kinetis:flexcan Remove unused variable 2020-08-12 18:51:48 +01:00
David Sidrane
553dc4a0c9 kinetis: kinetis.h missing-semi 2020-08-12 18:51:48 +01:00
Fotis Panagiotopoulos
c046e56b3b Added STM32_HAVE_OVERDRIVE option, and made core over-drive to be enabled only when system frequency is > 168MHz. 2020-08-12 05:05:59 -07:00
Xiang Xiao
a0ce81d659 sched/wdog: Don't dynamically allocate wdog_s
to save the preserved space(1KB) and also avoid the heap overhead

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I694073f68e1bd63960cedeea1ddec441437be025
2020-08-11 12:28:55 -06:00
raiden00pl
7879fba9f4 nxstyle fixes 2020-08-11 09:23:51 +01:00
raiden00pl
451a255146 arch/arm/src/stm32f7: IO compensation cell is enabled after clocking to SYSCFG is enabled 2020-08-11 09:23:51 +01:00
raiden00pl
3d91fed868 arch/arm/src/stm32f0l0g: remove reference to IO compensation which is not present in STM32 F0/L0/G0 2020-08-11 09:23:51 +01:00
David Sidrane
a10e9615ca stm32f7:serial TXDMA ISR was looping on TX Empty
Interrups were blocked 1*n/baud Seconds. The former comment indicates
   there was an asumption that the TXE would be set at DMA completion.
   In reality this is not true. There can be 1 char in the TX Shift
   register and one in the TX holding register, when DMA completes.
   Waiting on TXE is not needed at all. The DMA will resume on the
   DMA req when the TX holding register is written to the TX Shift
   register.
2020-08-11 00:20:38 -05:00
Fotis Panagiotopoulos
d4c770c20d STM32 IO compensation cell is enabled after clocking to SYSCFG is enabled. 2020-08-10 16:47:57 +01:00
leomarradke
ca62cb6b76 Style fixes 2020-08-08 17:33:24 -03:00
leomarradke
e7073df8d6 arch: samd5e5 : Add watchdog timer drivers.
boards: metro-m4  Add support for starting the watchdog timer on the metro-m4.

Testing:
- Build check only

Signed-off-by: Leomar Mateus Radke  <leomar@falker.com.br>
2020-08-08 17:33:24 -03:00
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
Masayuki Ishikawa
fead8d2034 arch: cxd56xx: Fix cxd56_rtc.c when compiled with CONFIG_RTC_HIRES=y
Summary:
- This commit fixes compile errors

Impact:
- This commit affects cxd56_rtc.c only

Testing:
- spresense:wifi with CONFIG_RTC_HIRES=y

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-08-07 09:30:52 +01:00
Masayuki Ishikawa
b483d0d4eb arch: imxrt: Fix ethernet configuration in Kconfig
Summary:
- Fix typo in Kconfig so that we can configure IMXRT_ENET_NRXBUFFERS.

Impact:
- imxrt family with ethernet configuration

Testing:
- imxrt1060-evk:netnsh

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-08-06 22:18:23 -07:00
raiden00pl
ab6ddb8f99 arch/arm/src/stm32/stm32_adc.c: fix ADC setup logic
Increase the initialization counter after initialization is complete, otherwise the logic in adc_reset() will not execute correctly
2020-08-06 16:38:20 +01:00
David Sidrane
deeac10134 stm32l4:serial fix coding standard violation 2020-08-06 01:03:34 -05:00
David Sidrane
68b11c9fed stm32h7:serial fix coding standard violation 2020-08-06 01:03:34 -05:00
David Sidrane
acb90ea449 stm32f7:serial fix coding standard violation 2020-08-06 01:03:34 -05:00
David Sidrane
7ef4f53dff stm32f0l0g0:serial_v2 fix coding standard violation 2020-08-06 01:03:34 -05:00
David Sidrane
ed51cbee18 stm32f0l0g0:serial_v1 fix coding standard violation 2020-08-06 01:03:34 -05:00
David Sidrane
579fbe2e52 stm32l4 serial:Add SINGLEWIRE PUSHPULL option 2020-08-06 01:03:34 -05:00
David Sidrane
48c81522f9 stm32h7 serial:Add SINGLEWIRE PUSHPULL option 2020-08-06 01:03:34 -05:00
David Sidrane
d61f14dd3c stm32f7 serial:Add SINGLEWIRE PUSHPULL option 2020-08-06 01:03:34 -05:00
David Sidrane
156024671e stm32f0l0g0 serial:Add SINGLEWIRE PUSHPULL option 2020-08-06 01:03:34 -05:00
David Sidrane
749dbce431 stm32 serial:Add SINGLEWIRE PUSHPULL option 2020-08-06 01:03:34 -05: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
Gregory Nutt
d09f6aaa72 Correct more improper use of malloc(), zalloc(), and free()
malloc() and free() should never be used within the OS. This will work in the FLAT build because there is only a single heap, but will cause problems in PROTECTED and KERNEL build modes where there are separate heaps for user and kernel memory.

Typically kmm_malloc(), kmm_zalloc(), and kmm_free() should be called within the kernel in those build modes to use the kernel heap.

Memory is never free.  Possible memory leak:

    ./boards/arm/cxd56xx/common/src/cxd56_crashdump.c:  pdump = malloc(sizeof(fullcontext_t));

Memory allocated with malloc(), but freed with kmm_free():

    ./drivers/usbhost/usbhost_composite.c:  cfgbuffer = (FAR uint8_t *)malloc(CUSTOM_CONFIG_BUFSIZE);

Memory is never freed in these cases.  It is allocated in the driver initialization logic, but there is no corresponding uninitialization logic; memory is not freed on error conditions:

    ./arch/arm/src/lc823450/lc823450_i2s.c:  priv = (struct lc823450_i2s_s *)zalloc(sizeof(struct lc823450_i2s_s));
    ./arch/arm/src/sam34/sam_spi.c:  spics = (struct sam_spics_s *)zalloc(sizeof(struct sam_spics_s));
    ./arch/arm/src/sama5/sam_spi.c:  spics = (struct sam_spics_s *)zalloc(sizeof(struct sam_spics_s));
    ./arch/arm/src/samv7/sam_spi.c:  spics = (struct sam_spics_s *)zalloc(sizeof(struct sam_spics_s));

Memory is allocated with zalloc() but freed on error conditions with kmm_free():

    ./arch/arm/src/sama5/sam_ssc.c:  priv = (struct sam_ssc_s *)zalloc(sizeof(struct sam_ssc_s));
    ./arch/arm/src/samv7/sam_ssc.c:  priv = (struct sam_ssc_s *)zalloc(sizeof(struct sam_ssc_s));
    ./arch/arm/src/stm32/stm32_i2s.c:  priv = (struct stm32_i2s_s *)zalloc(sizeof(struct stm32_i2s_s));

Memory is never freed:

    ./drivers/spi/spi_bitbang.c:  priv = (FAR struct spi_bitbang_s *)zalloc(sizeof(struct spi_bitbang_s));
2020-08-04 20:41:43 +01:00
Gregory Nutt
2dae970ec6 Fix cases where memory is allocated using malloc()
arch/arm/src/cxd56xx/cxd56_gnss.c, arch/arm/src/xmc4/xmc4_spi.c,
 crypto/blake2s.c, drivers/lcd/pcf8574_lcd_backpack.c, drivers/lcd/st7032.c

User space memory should not be used within the OS and, when it is absolutely necessary to use user-space memory, it should be allocated using kumm_malloc().
2020-08-04 20:40:57 +01:00
Masayuki Ishikawa
16cd363cb0 arch: lc823450: Replace license header with Apache License 2.0
Summary:
- This commit replaces license header under lc823450

Impact:
- No impact

Testing:
- Build check only

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-08-03 21:03:41 +01:00
Masayuki Ishikawa
4ea94c67b1 arch: lc823450: Fix style violations
Summary:
- Fix style violations under lc823450

Impact:
- Some APIs were changed but all files are included

Testing:
- Build check only

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-07-30 20:53:02 -05:00
Masayuki Ishikawa
336bd8c3a2 arch: lc823450: Fix style violations
Summary:
- Fix style violations under lc823450
- NOTE: still some files need to be fixed

Impact:
- Some register naming were changed but all files are included

Testing:
- Build check only

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-07-30 00:07:31 -05:00
Masayuki Ishikawa
22a9b497b1 arch: lc823450: Fix style violations in lc823450_syscontrol.h
Summary:
- Fix style violations in lc823450_syscontrol.h

Impact:
- This commit affects register naming in syscontrol.
- So some files such as lc823450_start.c lc823450_mux.c were also changed.

Testing:
- Build check only

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-07-30 00:07:31 -05:00