Commit Graph

42 Commits

Author SHA1 Message Date
Gregory Nutt
8edbf04a0d /arch/arm/src/imxrt/imxrt_edma.c: Correct arguments to arch_clean_dcache() and arch_invalidate_dcache(). 2018-05-24 09:41:46 -06:00
Gregory Nutt
c9be3dd387 arch/arm/src/imxrt/imxrt_edma.c: Fix some issues with adding a new TCD to the end of a scatter/gather chain: Was not correctly writing back the new tail pointer; Need to flush the previous TCD in the chain whose fields were modify to link to the new TCD. 2018-05-23 20:29:20 -06:00
Gregory Nutt
618d264e1d arch/arm/src/imxrt: There is a separate interrupt vector for DMA channel error interrupts. 2018-05-23 06:52:41 -06:00
Gregory Nutt
db0cdfc407 Squashed commit of the following:
arch/arm/src/imxrt:  May eDMA channel linking a configuration option.  Add support to select the DMA channel priority and pre-emption controls.
    arch/arm/src/imxrt:  Update some HowTo comments in the eDMA header file.
    arch/arm/src/imxrt:  Fix a logic error in parmater passing.  Caller does not know actual channel number when setting up linked channel, only the channel handler.
2018-05-22 15:28:28 -06:00
Gregory Nutt
890656f043 Squashed commit of the following:
arch/arm/src/imxrt:  Fixes for clean eDMA driver build with Scatter/Gather enabled.
    arch/arm/src/imxrt:  Fixes for clean eDMA driver build with Scatter/Gather disabled.
    arch/arm/src/imxrt:  Add flags to DMA configuration to control transfer setup.  Remove some user interfaces that are inconsistent with modular design.
    arch/arm/src/imxrt:  Update DMA channel interrupt handler.
    arch/arm/src/imxrt:  Add implementation of eDMA imxrt_dmach_start().
    arch/arm/src/imxrt:  Add implementation of eDMA imxrt_dmach_setup().
    arch/arm/src/imxrt:  Add eDMA imxrt_tcd_chanlink().
    arch/arm/src/imxrt:  Add eDMA imxrt_dmach_getcount; free allocated TCDs automatically when the DMA completes or is aborted.
2018-05-22 11:39:37 -06:00
Gregory Nutt
1cf676344e Squashed commit of the following:
arch/arm/src/imxrt:  Add structures to support list of TCDs for Scatter/Gather DMA.
    arch/arm/src/imxrt:  Add eDMA imxrt_dmach_initconfig().
    arch/arm/src/imxrt:  Add eDMA imxrt_tcd_instantiate().
    arch/arm/src/imxrt:  Replacing some of the logic cloned from SAMv7 XDMAC with eDMA logic from NXP sample code.  I am thinking that the eDMA is too complex to force into the same pattern as for other MCUs.
    arch/arms/src/imxrt/imxrt_edma.c:  Add support for in-memory TCDs.
    arch/arm/src/imxrt/chip:  Add an in-memory representation of the TCD in imxrt_edma.h
2018-05-21 11:46:16 -06:00
Gregory Nutt
cce5d017b4 arch/arm/src/imxrt: Fix some eDMA interrupt controls. 2018-05-20 12:21:36 -06:00
Gregory Nutt
20f1597fa5 arch/arm/src/imxrt: IOMUXC logic now uses peripheral clock helpers (I think it was enabling the wrong clocks anyway). Minor updates to eDMA logic. 2018-05-20 12:02:50 -06:00
Gregory Nutt
9c9c0eb4d5 arch/arm/src/imxrt: Add eDMA interrupt decode logic. 2018-05-20 10:59:36 -06:00
Gregory Nutt
87df439909 arch/arm/src/imxrt: Add eDMA initialization logic. 2018-05-20 10:34:27 -06:00
Gregory Nutt
0f6aeb7cff arch/arm/src/imxrt: Centralilze and standardize control of peripheral clocking. Add logic to initialize the DMAMUX. 2018-05-20 10:03:45 -06:00
Gregory Nutt
fe364ba1f4 arch/arm/src/imxrt: A little more eDMA logic. Slow progress. 2018-05-17 14:23:58 -06:00
Gregory Nutt
1acc765156 arch/arm/src/imxrt: A little more DMA-related logic. Still no significant logic in place. 2018-05-17 09:48:45 -06:00
Gregory Nutt
f91c3666a1 arch/arm/src/imxrt: A little more DMA logic. Still far from complete. 2018-05-16 16:20:30 -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
9bb4a80838 arch/arm/src/imxrt/chip: Remove un-necessary TCD structure. 2018-05-16 12:35:10 -06:00
Gregory Nutt
3b355d52f2 arch/arm/src/imxrt/chip: Add more eDMA register definitions. Still missing TCD definitions. 2018-05-16 12:01:05 -06:00
Gregory Nutt
8f0b87a2d9 arch/arm/src/imxrt/chip: Add more eDMA register definitions. Still missing bit-field definitions. 2018-05-16 09:49:48 -06:00
Jake Choy
4638e3f4c7 rch/arm/src/imxrt/chip: Add Ethernet pin properties. 2018-05-16 07:50:24 -06:00
Gregory Nutt
79ab957982 arch/arm/src/imxrt/chip: Add DMA MUX register definition header file. 2018-05-16 07:25:37 -06:00
Gregory Nutt
2b2f3bf263 arch/arm/src/imxrt/chip: Add DMA channel assignments. 2018-05-15 14:44:33 -06:00
Jake Choy
034ab467e6 arch/arm/src/imxrt: Corrects some IOMUX controls. 2018-05-15 10:16:57 -06:00
Gregory Nutt
c82724d462 arch/arm/src/imxrt: Add missing support for the Cortex-M7 caches; configs/imxrt1050-evk: Enable I- and D-Caches in the nsh configuration. Calibrate the delay loop. Add support for the on-board LED. 2018-05-15 10:05:16 -06:00
Gregory Nutt
c681519720 arch/arm/src/imxrt/imxrt_serial.c: Fix some interrupt instabilities; must be in a critical section when modifying serial interrupts. configs/imxrt1050-evk/nsh/defconfig: Use the BASEPRI register to enable/disable interrupts; enable the PROCFS file system. 2018-05-15 07:50:19 -06:00
Gregory Nutt
2fa738e08c arch/arm/src/imxrt: Various fixes from attempt at initial bringup. 2018-05-14 16:07:34 -06:00
Gregory Nutt
3a34b29f76 arch/arm/src/imxrt/chip: Add pin multiplexing header files. 2018-05-14 13:29:53 -06:00
Gregory Nutt
ce7dcfcd12 arch/arms/src/imrxt: Correct a few logic mistakes in the i.MX RT serial driver. 2018-05-11 07:52:48 -06:00
Michael Jung
29af41a85f libc/unistd: Initial, minimal implementation of sysconf(). Only sufficient to support the functionality of less standard getdtabilesize(). 2018-05-10 14:08:34 -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
Jake Choy
4261249fb6 arch/arm/src/imxrt: Add GPIO5 IRQ support. 2018-05-02 09:19:42 -06:00
Jake Choy
6e1d43dd11 arch/arm/src/imxrt: This commit fixes more issues with the i.MX RT GPIO IRQ.
imxrt_gpioirq.c
    - Add check for interrupt mask register before dispatching ISR. The GPIO_ISR bits are set independent of the GPIO_IMR bits.
  imxrt_irq.c
    - fixed a range check for extint in function imxrt_irqinfo().
2018-05-01 14:25:47 -06:00
Jake
e54f221ed0 arch/arm/src/imxrt: Fix some syntax errors in the GPIO IRQ logic. 2018-04-30 14:58:09 -06:00
Jake
5e7fe7b881 arch/arm/src/imxrt: Add IOMUX implemention for GPIO5. 2018-04-27 08:42:02 -06:00
Ivan Ucherdzhiev
c881ea6d5b arch/arm/src/imxrt: IMXRT LPUART Clock enable fix. 2018-04-27 06:46:09 -06:00
Gregory Nutt
27828d0128 arch/arm/src/imxrt: Fix masks used in GPIO pin configurations. Noted by jakearcx. 2018-04-26 08:18:56 -06:00
Gregory Nutt
f3a8e01557 arch/arm/src/imxrt/chip: Add some missing definitions for GPIO5 2018-04-25 15:12:08 -06:00
Gregory Nutt
17cc0b9bfe arch/arm/src/imxrt: Minor reparitioning to account for the fact that the GPIO5 base address is not contiguous with the GPIO1-4 base addresses. 2018-04-25 14:54:14 -06:00
Gregory Nutt
83ccdd0105 arch/arm/src/imxrt: Fix typo introduced in last commit. Noted by jakearcx@gmail.com. 2018-04-20 06:49:45 -06:00
Gregory Nutt
021b4954d7 arch/arm/src/imxrt: Add power management hooks 2018-04-17 09:17:44 -06:00
Ivan Ucherdzhiev
26214f7fb5 arch/arm/src/imxrt: Corrects error in serial interrupts and baud setup. Now the baseic IMXRT1050-EVK port is ready. The console is working. 2018-04-17 07:15:15 -06:00
Gregory Nutt
d59c97208c arch/arm/src/imxrt: Fix problem with with CPU hanging during boot in the clockconfig function. configs/imxrt1050-evk/scripts: Update linker script so that the NXP boot header will be included in the build. 2018-04-16 09:30:04 -06:00
Ivan Ucherdzhiev
cf8c25df64 This commit brings in basic support fo the i.MX RT 1050 'crossover' SoC. The basic support is complete and compiles without error, but is still untested.
This port was the joing effort of Janne Rosberg, Ivan Ucherdzhiev, and myself.  I give credit to Ivan for the kill because he is the one to held on to the end.

Squashed commit of the following:

  Author: Gregory Nutt <gnutt@nuttx.org>
    configs/imxrt1050-evk/scripts:  Add section to linker script to handle the case where RAMFUNCs are enabled.  RAMFUNCs appear to be enabled in the default configuration ... they probably should not be enabled.

  Author: Ivan Ucherdzhiev <ivanucherdjiev@gmail.com>
    arch/arm/src/imxrt:  imxrt_lowputc.c is finished. Now everything needed for the initial port is done and ready for testing.
    arch/arm/src/imxrt:  Add logic to imxrt_lowputc.c.  Still incomplete.

  Author: Ivan Ucherdzhiev <ivanucherdjiev@gmail.com>
    arch/arm/src/imxrt:  Add serial support.  configs/imxrt1050-evk:  Add linker script.

  Author: Gregory Nutt <gnutt@nuttx.org>
    arch/arm/src/imxrt:  Add initial cut at imxrt_allocateheap.c

  Author: Ivan Ucherdzhiev <ivanucherdjiev@gmail.com>
    arm/arm/src/imxrt:  Completes all definitions for PADMUX, CTLMUX, and IOMUX_INPUT and mapping tables on imxrt_gpio.c and imxr_iomuxc.c.
    arch/arm/src/imxrt/chip:  Add definitions for IMXRT_PADCTL and IMXRT_PADMUX registers.  Only the IMXRT_INPUT definitions in this commit.
    arch/arm/src/imxrt/chip:  Add more IOMUXC register definitions.

  Author: Gregory Nutt <gnutt@nuttx.org>
    configs/imxrt1050-evk:  Add STRIP definition to Make.defs.
    arch/arm/src/imxrt:  Bring in i.MX6 memory configuration settings.
    arch/arm/src/imxrt:  Remove call to non-existent imxrt_gpioinit() from imxrt_start.c.
    arch/arm/src/imxrt:  Bring in incomplete imxrt_iomuxc.c file from i.mx6.
    arch/arm/src/imxrt:  Add first cut at GPIO interrupt logic.
    arch/arm/include:  Add definitions to support a second level of GPIO pin interrupts.

  Author: Janne Rosberg <janne.rosberg@offcode.fi>
    arch/arm/src/imxrt:  Add imxrt_wdog.c/.h

  Author: Gregory Nutt <gnutt@nuttx.org>
    arch/arm/src/imxrt:  Port SAMv7 interrupt logic to imxrt_irq.c.
    arch/arm/src/imxrt:  More clarification of the start-up memory map.
    arch/arm/src/imxrt:  Some mostly cosmetic clean-up to the imxrt_start.c file that was so rudely taken from the SAMv7.
    arch/arm/src/imxrt:  Add imxrt_start.c.  Initial commit is the the SAMv7 startup logic with name changes.

  Author: Ivan Ucherdzhiev <ivanucherdjiev@gmail.com>
    arch/arm/src/imxrt:  Adds a few IOMUXC register definitions.

  Author: Janne Rosberg <janne.rosberg@offcode.fi>
    arch/arm/src/imxrt:  Add imxrt_clockconfig.c/.h
    configs/imxrt1050-evk:  Add clock configuration definitions to board.h
    arch/arm/src/imxrt:  Fix CCM register name; Fix doubly defined in LPUART bit field.
    arch/arm/src/imxrt:  Add analog defines to CCM register definition header file.

  Author: Gregory Nutt <gnutt@nuttx.org>
    arch/arm/src/imxrt:  Bring in GPIO C files from i.MX6.  Things are in disarray now because that GPIO logic depends on IOMUXC logic which is not yet in place.
    arch/arm/src/imxrt:  Add a few more GPIO definitions to make the header file compatible with i.MX6
    arch/arm/src/imxrt/chip:  Add GPIO register definition file.

  Author: Janne Rosberg <janne.rosberg@offcode.fi>
    arch/arm/src/imxrt:  Add DCDC register definitions.
    arch/arm/srch/imxrt: Add CCM register bit definitions

  Author: Gregory Nutt <gnutt@nuttx.org>
    Purely cosmetic
    arch/arm/src/imxrt:  Add system reset controller register definition header file.
    Embarassingly trivial change left in compiler.
    arch/arm/src/imxrt:  Finishes i.MX RT1050 LPUART register definition header file.
    arch/arm/src/imxrt:  Beginning of an i.MX RT1050 LPUART register definition header file.
    Some trivial things

  Author: Janne Rosberg <janne.rosberg@offcode.fi>
    arch/arm/src/imxrt:  Add imxrt_wdog.h
    arch/arm/src/imxrt:  Add initial imxrt_ccm.h

  Author: Gregory Nutt <gnutt@nuttx.org>
    Trivial update to README.
    arch/arm/src/imxrt:  The i.MX Rt implements 4 bits of interrupt priority, not two.  Thanks, Janne.
    arch/arm/src/imxrt:  Fix some initial compile issues.  Still a long way from complete, but there is a buildable environment now for the imxrt1050-evk.
    configs/imxrt1050-evk:  Add an initial NSH configuration for testing.
    configs/Kconfig:  Hook the i.MX RT 1050 board configuration into the NuttX configuration system.
    configs/imxrt_evk:  Add the framework for i.MX RT 1050 board support.
    arch/arm/src/imxrt:  Bring in a few more files from LPC54xxx.
    arch/arm/src/imxrt:  Bring in imxrt_clrpend() from the LPC54xxx.
    arch/arm/src/imxrt:  Bring in Cortex-M7 SysTick setup from the SAMv7.
    arch/arm/src/imxrt:  Add a few easy files.
    arch/arm/src/imxrt/chip:  Add memory map header files.
    arch/arm/src/imxrt:  A few basic files to start the port to the i.MX RT 1050.
2018-04-12 09:31:09 -06:00