arch/arm/src/stm32h7: initial support for protected build mode. Not functional yet. It compiles without errors and passes initialization but after entering the user app strange things happen.
Approved-by: Gregory Nutt <gnutt@nuttx.org>
Add three patches about STM32 intherupts and network loopback files
* Add the missing macro STM32_IRQ_NIRQS used by ./arch/arm/src/stm32f7/stm32_irq.c
Signed-off-by: Kejun ZHOU <zhoukejun@outlook.com>
* The struct in_addr doesn't have the member sin_addr.
Signed-off-by: Kejun ZHOU <zhoukejun@outlook.com>
* The function lib_lo_ipv6match() is for IPv6.
Correct the function it calls from lib_lo_ipv4matchto() to lib_lo_ipv6match().
Also add CONFIG_NET_IPv6 for configuration.
Signed-off-by: Kejun ZHOU <zhoukejun@outlook.com>
Initial OTG support for STM32H7 and some minor improvements
arch/arm/src/stm32h7/stm32h7x3xx_rcc.c: add support for HSI48 clock
configs/nucleo-f207zg: add support for USB and initialize CDCACM if configured
configs/nucleo-h743zi: add support for USB and initialize CDCACM if configured
drivers/usbdev/Kconfig: fix type for USBDEV_TRACE_INITIALIDSET
configs/teensy-3.x/usbnsh/defconfig: update config according to change in USBDEV_TRACE_INITIALIDSET
Approved-by: Gregory Nutt <gnutt@nuttx.org>
libs/libc/pthread/pthread_spinlock.c: Resolve several TODO issues by accessing up_testset() via the boardctl() interface rather than attempting to call it directly.
configs/boardctl.c, include/sys/boardctl.h: Add access to architecture-specific up_testset() via boardctl().
arch/Kconfig's, sched/Kconfig, and include/nuttx/spinlock.h: Spinlocks are not available unless the architecture supports the up_testset() operation.
Author: Gregory Nutt <gnutt@nuttx.org>
arch/arm/src/imxrt/: Fix complaints from tools/nxstyle in new LCD files.
Use tools/lowhex to convert hexadecimal constants to lower case.
Use tools/rmcr to review white space at the end of lines.
Author: Johannes <nivus.entwicklung@gmail.com>
arch/arm/src/imxrt and configs/imxrt1050-evk: Adds framebuffer support for thje i.MXRT 1050. Includdd DCD initialization for SDRAM to provide space for the framebufer. External code I used/ported is from NXP and is BSD 3-clause license.
Initial DMA support for STM32H7
arch/arm/src/stm32h7: SPI DMA mode
arch/arm/src/stm32h7/chip/stm32h7x3xx_memorymap.h: add base addresses for D1, D2 and D3 domain; use 2 bytes to specify memory region
arch/arm/src/stm32h7/stm32h7x3xx_rcc.c: add D1 domain core prescaler configuration
Approved-by: Gregory Nutt <gnutt@nuttx.org>
Improvements for H7 towards the DMA support
arch/arm/include/stm32h7/stm32h7x3xx_irq.h: fix typos and rename DMA1/2 irq names to match those from other STM32
arch/arm/src/stm32h7/chip/stm32_bdma.h: add auxiliary definitions
arch/arm/src/stm32h7/chip/stm32_dma.h: cosmetic changes
arch/arm/src/stm32h7/chip/stm32_dmamux.h: add auxliary definitions and fix some typos
arch/arm/src/stm32h7/chip/stm32_mdma.h: add auxliary definitions and fix some typos
arch/arm/src/stm32h7/chip/stm32h7x3xx_dmamux.h: add DMAMAP definitions for MDMA, DMA1, DMA2 and BDMA
arch/arm/src/stm32h7/chip/stm32h7x3xx_memorymap.h: fix AHB1 base adresses and add some address blocks
arch/arm/src/stm32h7/chip/stm32h7x3xx_rcc.h: fix some definitions to match other STM32 ports
arch/arm/src/stm32h7/stm32_allocateheap.c: use SRAM from D2 domain (SRAM123) for now
arch/arm/src/stm32h7/stm32h7x3xx_rcc.c: enable clock for MDMA and BDMA
Approved-by: Gregory Nutt <gnutt@nuttx.org>
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.
Master
arch/arm/src/stm32f0l0: SPI support for F0
arch/arm/src/stm32f0l0/Kconfig: L0 parts should select STM32F0L0_STM32L0
arch/arm/src/stm32f0l0/hardware: unify names for ADC/DAC/DMA/CAN
drivers/wireless/lpwan/sx127x/sx127x.c: return immediately when ISR0 is called but sx127x is not initialized
configs/nucleo-f091rc: support for sx127x
configs/nucleo-l073rz: cosmetics
configs/b-l072z-lrwan1/include/board.h: use HSI as default clock source and fix typo in SPI1 pins
Approved-by: GregoryN <gnutt@nuttx.org>
configs/launchxl-cc1312r1: Correct DIOs used to provide the UART0 serial console.
Status: Board boots to NSH prompt now. But I am not getting serial input. Things are probably not very stable in general.
arch/arm/src/tiva/cc13xx/cc13xx_prcm.c: Fix reverse bit modification: Set the bit to enabled clocking, clear the bit to dissable clocking.
arch/arm/src/tiva/cc13xx/cc13xx_enablepwr.c: Use correct index for determining if this the SERIAL or PERIPH power domain.
Squashed commit of the following:
configs/: The few configurations that formerly set CONFIG_NFILE_DESCRIPTORS=0 should not default, rather they should set the number of descriptors to 3.
fs/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
tools/: Tools updates for changes to usage of CONFIG_NFILE_DESCRIPTORS.
syscall/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
libs/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
include/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
drivers/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
Documentation/: Remove all references to CONFIG_NFILE_DESCRIPTORS == 0
binfmt/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
arch/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
net/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
sched/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
sched/Kconfig: CONFIG_NFILE_DESCRIPTORS may no longer to set to a value less than 3
configs/: Remove all settings for CONFIG_NFILE_DESCRIPTORS < 3
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_
Squashed commit of the following:
Trivial, cosmetic
sched/, arch/, and include: Rename task_vforkstart() as nxtask_vforkstart()
sched/, arch/, and include: Rename task_vforkabort() as nxtask_vforkabort()
sched/, arch/, and include: Rename task_vforksetup() as nxtask_vfork_setup()
sched/: Rename notify_cancellation() as nxnotify_cancellation()
sched/: Rename task_recover() to nxtask_recover()
sched/task, sched/pthread/, Documentation/: Rename task_argsetup() and task_terminate() to nxtask_argsetup() and nxtask_terminate(), respectively.
sched/task: Rename task_schedsetup() to nxtask_schedsetup()
sched/ (plus some binfmt/, include/, and arch/): Rename task_start() and task_starthook() to nxtask_start() and nxtask_starthook().
arch/ and sched/: Rename task_exit() and task_exithook() to nxtask_exit() and nxtask_exithook(), respectively.
sched/task: Rename all internal, static, functions to begin with the nx prefix.
arch/arm/src/samv7/sam_emac.c: Fixes rxdesc index logic to handle Buffer Not Available (BNA) condition.
If a SOF is found, but no EOF, don't move past the frame. Instead, keep the index at the SOF buffer until the rest of the data is written.
This fixes a receiver lockup condition where the peripheral and this driver get out of sync with there head pointers. In this case the driver has moved past buffers it owns, without clearing ownership, which results in the peripheral and driver in a deadlock with each other.
Approved-by: GregoryN <gnutt@nuttx.org>
2./arch/arm/src/samv7/sam_qspi.c compiling error when set CONFIG_SAMV7_QSPI_DLYBCT
3. fix compiling error when set CONFIG_BOARDCTL_IOCTL/CONFIG_BOARDCTL_UNIQUEID
Improvements in STM32 ADC, PWM and TIM
arch/arm/src/stm32/chip/stm32_adc_v2.h: missing T1TRGO2 for JEXTSEL
arch/arm/src/stm32/stm32_adc: configure injected channels external trigger when ADC enabled
arch/arm/src/stm32/stm32_adc: update injected conversion queue of context after configuration
arch/arm/src/stm32/stm32_adc: fix sample time configuration for channels. The array index for channels was missing
arch/arm/src/stm32/stm32_adc: support for offset configuration
arch/arm/src/stm32/stm32_pwm: fix TRGO/TRGO2 configuration
arch/arm/src/stm32/stm32_pwm: support for advanced timers channel 5 and 6
Approved-by: GregoryN <gnutt@nuttx.org>
Improvements for STM32 PWM
arch/arm/src/stm32/stm32_pwm: fix polarity and IDLE state configuration for advanced timer PWM
include/dsp.h: raise error if math.h not present
Approved-by: GregoryN <gnutt@nuttx.org>
arch/arm/src/tiva/hardware: Add CC13xx SMPH and AUX SMPH header files. Still need DDI0 OSC header file for CC13x0 compilation.
arch/arm/src/tiva/cc13xx: A few changes toward getting the launchxl-cc1310/nsh configuration to build
Squashed commit of the following:
confgs/launchxl-cc1310: Add board support for the LaunchXL-CC1310. This is a work in progress and does not yet build error free.
arch/arm/src/tiva/cc13xx: cc13x0_trim.c now compiles; Make xxx_rom.h header files conform a little more closely to the NuttX coding style.
arch/arm/src/tiva/cc13xx: CC13x2 (V1 and V2) rom.c files now build with no errors or warnings. Still have to work through the CC13x0 version.
arch/arm/src/tiva/hardware: Add CC13x0/CC13x2_CC26x2 AON BATMON register definition header file.
arch/arm/src/tiva/cc13xx: A little more progress converting TI DriverLib ROM code to NuttX coding style. Lots of possibilities for breakage here!
arch/arm/src/tiva/cc13xx: Remove functions from cc13x._rom.c that are defined from ROM access in cc13x._rom.h; Add prototypes in cc13x._rom.h for functions in cc13x._rom.c that are not defined in cc13x._rom.h.
arch/arm/src/tiva/cc13xx: Remove some dangling whitespace at the end of lines.
arch/arm/src/tiva/cc13xx: Second (and final) round of name changes to get ROM function-like defines consistent with NuttX coding standard
arch/arm/src/tiva/cc13xx: Fix a few errors in last big name conversion.
arch/arm/src/tiva/cc13xx: First round of name changes to get ROM function-like defines consistent with NuttX coding standard
arch/arm/src/tiva/cc13xx: Remove ROM_ prefix from function-like defines.
arch/arm/src/tiva/hardware: Completes the CC13x2 AUX SYSIF header file.
arch/arm/src/tiva/hardware: Progress on the CC13x2 AUX SYSIF header file. Almost complete.
arch/arm/src/tiva/hardware: Port needs aux_sysif.h header file.
arch/arm/src/tiva/cc13xx/cc13x0_rom.h: Fix a typo
arch/arm/src/tiva/cc13xx: More changes to TI DriverLib ROM header files for NuttX coding standard.
arch/arm/src/tiva/cc13xx: Convert some (but not all) TI DriverLib ROM function names to NuttX coding standard. More to be done.
arm/src/tiva/cc13xx: ROM header files: missed a couple of conversions of sructure field names to lower case (vs CamelCase).
arm/src/tiva/cc13xx: ROM header files: type'ed names must be lower case per coding standard (not upper case); structure field names must be lower case per coding standard (not CamelCase).
arch/arm/src/tiva/cc13xx: Trim logic needs to include matching ROM DriverLib interface header file.
arch/arm/src/tiva/cc13xx: Add ROM DriverLib header files. Do not yet fully conform to the NuttX coding style.
arch/arm/src/tiva/cc13xx: Trim code now kind of looks like NuttX code. But does not yet compile.
arch/arm/src/tiva/cc13xx: The first few, feeble steps toward getting the overall trim files compatible with the requirements of the NuttX coding standard.
arch/arm/src/tiva/cc13xx: Replace last of TI hardware access macros with NuttX hardware access macros.
arch/arm/src/tiva/cc13xx: Change TI HWREGB to NuttX getreg8 or putreg8 in trim logic.
arch/arm/src/tiva/cc13xx: Change TI HWREGBITW to NuttX getreg32/putreg32 sequence in trim logic.
arch/arm/src/tiva/hardware/cc13x2_cc26x2/cc13x2_cc26x2_ddi0_osc.h: Completes the DDIO OSC header file.
cc13x2_cc26x2/cc13x2_cc26x2_ddi0_osc.h: Updated, but still not finished.
arch/arm/src/tiva/hardware/cc13x2_cc26x2/cc13x2_cc26x2_ddi0_osc.h: Add DDI0 OSC header file. Still a work in progress. Does not yet conform to the NuttX coding standard.
Change _M and _S to _MASK and _SHIFT.
Some minor improvements.
Clean up typos in some comments.
Run all new files against tools/indent.sh
arch/arm/src/tiva/cc13xx: Bring in trim files from SDK. Convert to C-style comments, lowercase hex contants. Remove Windows-style line endings.
I still observe data abort crash if I compile the code with optimization enabled.
The next steps are to investigate the optimization issue and add Watchdog module. Currently, NSH does not run for a long time ;)
arch/arm/src/am335x/am335x_irq.c: Correct interrupt processing routine
configs/beaglebone-black/nsh/defconfig: Enable debug compilation options. Otherwise data abort crash is observed
arch/arm/src/am335x/am335x_lowputc.c and arch/arm/src/am335x/chip/am335x_uart.h: UART-related cosmetic changes
arch/arm/src/am335x/am335x_timerisr.c: Make sure that Timer 1 interrupts are disabled before any access to peripheral registers
stm32f0l0: SPI and GPIO EXTI support
arch/arm/src/stm32f0l0: add support for GPIO EXTI
configs/nucleo-l073rz: support for nrf24l01
configs/b-l072z-lrwan1/include/board.h: add note about onboard Murata CMWX1ZZABZ-09 module and definitions for available peripherals
Approved-by: GregoryN <gnutt@nuttx.org>
Masayuki Ishikawa reports that this commit breaks ALL PROTECTED mode builds.
It violates the basic requirements of the use of the MPU in protected mode. Those basic requirements are:
1. The MPU region must be aligned to the base address of the memory region being mapped (it may NEVER extend before the memory region). That is, the following MUST always be zero:
(base & ((1 << l2size) - 1))
2. The MPU region must never extend beyond the end of the memory region. That is, the following must be true:
size >= (1 << l2size)
This reverts commit 8b63d02309.