Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Kinetis K60 CPUs and Eistec Mulle IoT board #2282

Merged
merged 2 commits into from
Apr 9, 2015

Conversation

jnohlgard
Copy link
Member

This PR adds support for the Freescale Kinetis K60 CPUs and basic functionality of the Eistec Mulle IoT board.

This requires the kinetis_common framework in #2265 - merged

Depends on: #2605, #2321 - temporarily disabled functionality depending on these until they are merged

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 (with some minor changes to ldscripts):

  • 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

@jnohlgard jnohlgard added State: WIP State: The PR is still work-in-progress and its code is not in its final presentable form yet State: waiting for other PR State: The PR requires another PR to be merged first Platform: ARM Platform: This PR/issue effects ARM-based platforms Type: enhancement The issue suggests enhanceable parts / The PR enhances parts of the codebase / documentation Type: new feature The issue requests / The PR implemements a new feature for RIOT Discussion: RFC The issue/PR is used as a discussion starting point about the item of the issue/PR and removed Type: enhancement The issue suggests enhanceable parts / The PR enhances parts of the codebase / documentation labels Jan 12, 2015
@OlegHahm
Copy link
Member

Oh wow! Great! ☀️

@jnohlgard
Copy link
Member Author

@jfischer-phytec-iot I assigned you, I figured we can review each others' Kinetis code. (I am already assigned to #2265 )

@jnohlgard jnohlgard removed the State: waiting for other PR State: The PR requires another PR to be merged first label Feb 5, 2015
@thomaseichinger
Copy link
Member

As #2265 got merged, is this PR ready for review?

@jnohlgard
Copy link
Member Author

It needs some more work still. I will ping back when it is ready, do you have time to do the review, @thomaseichinger ?
I get the feeling that @jfischer-phytec-iot is busy working on preparing the Phywave KWxx platforms.

@thomaseichinger
Copy link
Member

I can do eyes only review for sure, regarding testing functionality I will have to let to you from a lack of hardware.

@jfischer-no
Copy link
Contributor

I will unfortunately have no time before Saturday . The Embedded World is soon 😅
But in between I will look at a few lines..

@jnohlgard jnohlgard added the State: waiting for other PR State: The PR requires another PR to be merged first label Feb 7, 2015
@jnohlgard
Copy link
Member Author

Updated code, ready for review, though waiting for #2393 in order to get the kinetis_common linker script included by the K60 linker scripts

@jnohlgard jnohlgard removed the State: WIP State: The PR is still work-in-progress and its code is not in its final presentable form yet label Feb 9, 2015
@jnohlgard jnohlgard force-pushed the pr/k60-initial branch 2 times, most recently from 14a3263 to 00d3bd9 Compare February 9, 2015 20:02
@jnohlgard jnohlgard removed the State: waiting for other PR State: The PR requires another PR to be merged first label Feb 14, 2015
ifeq ($(OS),Linux)
PORT := /dev/ttyUSB0
else ifeq ($(OS),Darwin)
PORT := $(shell ls -1 /dev/tty.SLAB_USBtoUART* | head -n 1)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the Mulle board has a FTDI chip this will be /dev/tty.usbserial*.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your help with OSX specifics.

@jnohlgard
Copy link
Member Author

Rebased and addressed all static-tests fails, except for the NEEDS SQUASHING part.

@LudwigKnuepfer
Copy link
Member

I would suggest to match the CMSIS Peripheral Access Layer for MK60DZ10 string and possibly also the version, because the license header itself is too generic.

@jnohlgard
Copy link
Member Author

@LudwigOrtmann I made a new attempt at a license pattern. This one is very specific and will only match the MK60DZ10 header.

@LudwigKnuepfer
Copy link
Member

I approve =)

@jfischer-no
Copy link
Contributor

@gebart Why you can not use MK60DZ10 with the MK60D10 header (possibly with adjustments) ?

@jnohlgard
Copy link
Member Author

@jfischer-phytec-iot because Freescale switched a bunch of modules when they upgraded the silicon. (e.g. RNGA/RNGB, MCG acts differently, LLWU is different, PIT is missing the chaining functionality in 1.x etc. etc.)

It will be alot of pain for no gain other than getting rid of the extra license pattern, since we already have permission to use the header.

See http://cache.freescale.com/files/32bit/doc/app_note/AN4445.pdf

@jfischer-no
Copy link
Contributor

@gebart 😟 ok, I have looked at it with vimdiff, terrible...

@jnohlgard
Copy link
Member Author

Travis finally decided to come through after a week of trying to build this. Everything is green now except for the NEEDS SQUASHING part.

@LudwigKnuepfer
Copy link
Member

I guess nobody has hardware to test this except you @gebart ?

@LudwigKnuepfer
Copy link
Member

I guess the "Request for Comments" can be removed?

@LudwigKnuepfer
Copy link
Member

Doxygen looks fine.

@jnohlgard jnohlgard removed the Discussion: RFC The issue/PR is used as a discussion starting point about the item of the issue/PR label Mar 28, 2015
@jnohlgard
Copy link
Member Author

@LudwigOrtmann yeah, I guess so.

Contact me (or info@eistec.se) if you are interested in these devices.

@LudwigKnuepfer
Copy link
Member

Then please go ahead and squash (and remove the label).

Joakim Gebart added 2 commits March 28, 2015 08:30
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)
Initially supports only Mulles with serial number > 220 (due to missing
MK60DN256ZVLL10 support in k60).

See also: https://github.com/RIOT-OS/RIOT/wiki/Board%3A-Mulle

Signed-off-by: Joakim Gebart <joakim.gebart@eistec.se>
@jnohlgard jnohlgard removed the CI: needs squashing Commits in this PR need to be squashed; If set, CI systems will mark this PR as unmergable label Mar 28, 2015
@jnohlgard
Copy link
Member Author

Rebased and squashed, waiting for Travis

@LudwigKnuepfer
Copy link
Member

@OlegHahm
Copy link
Member

OlegHahm commented Apr 9, 2015

All lights are green.

OlegHahm added a commit that referenced this pull request Apr 9, 2015
Add support for Kinetis K60 CPUs and Eistec Mulle IoT board
@OlegHahm OlegHahm merged commit c1ecccf into RIOT-OS:master Apr 9, 2015
@OlegHahm OlegHahm modified the milestone: Release 2015.06 Apr 29, 2015
@jnohlgard jnohlgard deleted the pr/k60-initial branch May 10, 2015 08:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Platform: ARM Platform: This PR/issue effects ARM-based platforms Type: new feature The issue requests / The PR implemements a new feature for RIOT
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants