Commit Graph

49 Commits (0f2fa7883cf75bec70d3ade0ec8d3e00b8151a7c)

Author SHA1 Message Date
Kaspar Schleiser 0e6b957b76 cpu: k60: remove dangling symlink 6 years ago
Joakim Nohlgård 5203ad2643 k60: Use kinetis_common ldscript, rectify CPU_MODEL to full part number 6 years ago
Joakim Nohlgård a107a416cf kinetis: Refactor UART driver 6 years ago
Joakim Nohlgård 4a9cb807c6 k60: Remove (broken) support for first revision K60 hardware
The CPU has multiple issues and several parts of the platform code
does not even compile cleanly for this CPU in the current state.

This removes support for parts MK60DN256ZVLL10, MK60DN512ZVLL10
(note the Z) CPUs with this part number were used in Mulle v0.60 which
only has been used in some in-house projects at Eistec and LTU.
6 years ago
Martine Lenders 8e54448aea Merge pull request #6867 from gebart/DipSwitch-pr/remove_system_core_clock_update
cpu: remove superfluous SystemCoreClockUpdate
6 years ago
DipSwitch a322200582 cpu: remove superfluous SystemCoreClockUpdate 6 years ago
Alexandre Abadie 89c5507239 Merge pull request #6788 from gebart/pr/kinetis-lptimer-latch-macro
kinetis: Remove LPTIMER_CNR_NEEDS_LATCHING
6 years ago
Francisco Acosta ffd67cacea Merge pull request #6789 from gebart/pr/cpu-model-redundant
kinetis: Remove duplicate CPU_MODEL CFLAGS definition
6 years ago
Joakim Nohlgård 7f8cde177b kinetis: Remove LPTIMER_CNR_NEEDS_LATCHING
The macro is no longer used after the timer driver was refactored
6 years ago
Joakim Nohlgård 339a4da9dc Makefiles: move to new directory /makefiles 6 years ago
Joakim Nohlgård d578f9bfdc kinetis: Remove duplicate CPU_MODEL CFLAGS definition
These are already provided by cortexm_common
6 years ago
Joakim Nohlgård d73e6872ba kinetis: Refactor interrupt vector definition
... to match the vector definition in other Cortex-M platforms
6 years ago
Hauke Petersen 37d4f44379 cpus: mv vendor headers to include/vendor/. 6 years ago
Hauke Petersen 4bfce892d3 drivers/periph&cpu: add and use common periph_init() 6 years ago
Oleg Hahm 3c6678b037 *: fix mismatching endifs for header guards 6 years ago
Oleg Hahm 7ee7801c10 *: remove trailing underscores from header guards 6 years ago
Hauke Petersen 2c5a9a5cbf cpu/kinetis: unified PM implementation 6 years ago
Kaspar Schleiser 662bec002a cpu: k60: add periph/pm support 6 years ago
Kaspar Schleiser 0194091673 remove obsolete lpm code 6 years ago
Kaspar Schleiser 560a509036 make: remove trailing slash from BINDIR variable 7 years ago
Kaspar Schleiser d1198b489d cpu: k60: rename vector.c -> vectors.c, add to SRC_NOLTO 7 years ago
Kaspar Schleiser c3f7186d4e unify usage of inline assembly 7 years ago
Kaspar Schleiser 6881f65f46 cpu: cortexm*: move cpu_conf.h stuff from cpu.h into cpu_conf_common.h 7 years ago
Hauke Petersen d80a661486 Merge pull request #4761 from haukepetersen/opt_cpuid
drivers/cpuid: fixed and unified CPUID driver implementations
7 years ago
Hauke Petersen 940097336a cpu: cleanup and unification of CPUID implementations
- moved definition of CPUID_LEN to periph_cpu.h
- fixed some doxygen
- simplyfied some implementations
7 years ago
Joakim Nohlgård 570d188a26 cpu/k60: Add __attribute__((used)) to interrupt vector 7 years ago
Joakim Nohlgård 76bddaf213 Merge pull request #3283 from gebart/pr/kinetis-errata-e4218
k60: Add workaround for errata e4218
8 years ago
Joakim Nohlgård 142c28094e kinetis_common: Refactor GPIO implementation
This is a rewrite of the Kinetis GPIO driver which follows the
refactored API in [1]. Pins are specified using the GPIO_PIN(PORT_x, y)
macro, e.g. GPIO_PIN(PORT_E, 25) for the PTE25 pin.

The interrupt pin handling is now implemented as a linked list, this
is more memory efficient, but with a minor variation in interrupt
latency depending on in what order the pins were initialized at
runtime.

Because the linked list entries are taken from a shared pool, there is
also the possibility of running out of available configuration slots,
define the preprocessor macro GPIO_INT_POOL_SIZE in periph_conf.h if
you need more than 16 pins configured for interrupts in the same
application.

[1]: https://github.com/RIOT-OS/RIOT/pull/3095
8 years ago
Joakim Gebart c404bd97ad k60: Add workaround for errata e4218
e4218: SIM/FLEXBUS: SIM_SCGC7[FLEXBUS] bit should be cleared when the
FlexBus is not being used.

Errata type: Errata

Description:

The SIM_SCGC7[FLEXBUS] bit is set by default. This means that the
FlexBus will be enabled and come up in global chip select mode. With
some code sequence and register value combinations the core could
attempt to prefetch from the FlexBus even though it might not actually
use the value it prefetched. In the case where the FlexBus is
unconfigured, this can result in a hung bus cycle on the FlexBus.

Workaround:

 - If the FlexBus is not being used, disabled the clock to the FlexBus
   during chip initialization by clearing the SIM_SCGC7[FLEXBUS] bit.
 - If the FlexBus will be used, then enable at least one chip select as
   early in the chip initialization process as possible.
8 years ago
Johann Fischer e95afc80fb kinetis_common: use cortexm_common ldscript
kinetis.ld includes cortexm_common ldscript, the fields for the
isr vectors and fcfield remain in kinetis.ld.
8 years ago
Joakim Gebart 96528ea266 cpu/k60: remove leftover files from old syscall implementation 8 years ago
Joakim Nohlgård 98c465008b all: Update @gebart family name, email 8 years ago
Kaspar Schleiser d239f3c4fd cpu: k60: remove obsolete hwtimer support 8 years ago
Joakim Gebart ff05007a6e boards/mulle: cleanup
Remove old syscalls implementation from before cortexm_common unification and sys/newlib introduction.
8 years ago
Hauke Petersen 75472eddf4 cpu: remove transceiver defines from cpu_conf files 8 years ago
Joakim Gebart ed81e35e4c cpu/kinetis_common: refactor ldscripts
- Merged the two kinetis_common ldscripts into a single script.
 - Updated cpus to use the new script
 - Updated K60 to merge sram_l and sram_u into one segment
8 years ago
Hauke Petersen 8db0a57a81 cpu/k60: optimization of startup code 8 years ago
Joakim Gebart 6e12503937 mulle: remove device map 8 years ago
Johann F 14542765a5 cpu/k60: use cortex common makefile and newlib module 8 years ago
Peter Kietzmann 6dc0e789e1 Merge pull request #3101 from gebart/pr/warning-fixes
Various warning fixes
8 years ago
Hauke Petersen d4d34a782e cpu/k60: adapted to centralized cpu conf 8 years ago
Joakim Gebart 12cfb8deef k60: fix unused-parameter warnings 8 years ago
haukepetersen 0d5c8546f3 cpu: adapted Makefiles to unified cortexm module 8 years ago
Hauke Petersen 9943f51080 global: renamed cpu-conf.h into cpu_conf.h 8 years ago
Oleg Hahm d0790ad034 Merge pull request #2993 from gebart/pr/kinetis-bitband-reg
kinetis: remove ambiguous BITBAND_REG macro
8 years ago
Joakim Gebart af3263b0a2 k60: Use BITBAND_REG32
- Use BITBAND_REG32 instead of BITBAND_REG for improved code readability.
 - Remove BITBAND_PERIPH* from cpu-conf.h
 - Remove BITBAND_REG from MK60D10.h, MK60DZ10.h
8 years ago
Joakim Gebart 82d1432e07 k60: Add BITBAND_REG8,16,32 macros to MK60DZ10.h
For specifying the register access width. Copied from MK60D10.h.
8 years ago
Lucas Jenss 426170b064 Improve naming of thread stacksize/priority constants
As discussed in #2725, this commit renames a number of stacksize constants to
better convey their intended usage. In addition, constants for thread priority
are given a `THREAD_` prefix. Changes are:

* KERNEL_CONF_STACKSIZE_PRINTF renamed to THREAD_EXTRA_STACKSIZE_PRINTF
* KERNEL_CONF_STACKSIZE_DEFAULT renamed to THREAD_STACKSIZE_DEFAULT
* KERNEL_CONF_STACKSIZE_IDLE renamed to THREAD_STACKSIZE_IDLE
* KERNEL_CONF_STACKSIZE_MAIN renamed to THREAD_STACKSIZE_MAIN
* Move thread stacksizes from kernel.h to thread.h, since the prefix changed
* PRIORITY_MIN renamed to THREAD_PRIORITY_MIN
* PRIORITY_IDLE renamed to THREAD_PRIORITY_IDLE
* PRIORITY_MAIN renamed to THREAD_PRIORITY_MAIN
* Move thread priorities from kernel.h to thread.h since the prefix has changed
* MINIMUM_STACK_SIZE renamed to THREAD_STACKSIZE_MINIMUM for consistency
8 years ago
Joakim Gebart de486ff79f k60: Initial commit of K60 CPU.
Tested on the following Freescale Kinetis K60 CPUs:

 - MK60DN512VLL10

The port should with a high probability also support the following variations of the above CPUs (untested):

 - MK60DN256VLL10

And possibly also:

 - MK60DX256VLL10
 - MK60DX512VLL10
 - MK60DN512VLQ10
 - MK60DN256VLQ10
 - MK60DX256VLQ10
 - MK60DN512VMC10
 - MK60DN256VMC10
 - MK60DX256VMC10
 - MK60DN512VMD10
 - MK60DX256VMD10
 - MK60DN256VMD10

Currently not working on the following CPUs (Missing PIT channel
chaining necessary for kinetis_common/periph/timer implementation):

 - MK60DN256ZVLL10
 - MK60DN512ZVLL10
 - MK60DX256ZVLL10
 - MK60DX512ZVLL10
 - MK60DN512ZVLQ10
 - MK60DN256ZVLQ10
 - MK60DX256ZVLQ10
 - MK60DN512ZVMC10
 - MK60DN256ZVMC10
 - MK60DX256ZVMC10
 - MK60DN512ZVMD10
 - MK60DX256ZVMD10
 - MK60DN256ZVMD10

Regarding header files from Freescale:

   dist/tools/licenses: Add Freescale CMSIS PAL license pattern

Redistribution is OK according to:

https://community.freescale.com/message/477976?et=watches.email.thread#477976

Archive copy in case the above link disappears:

https://web.archive.org/web/20150328073057/https://community.freescale.com/message/477976?et=watches.email.thread

Applies to:
 - MK60DZ10.h (K60 variant)
8 years ago