zephyrproject-rtos / zephyr

Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
https://docs.zephyrproject.org
Apache License 2.0
10.08k stars 6.19k forks source link

Port Zephyr to Cypress PSoC 6 MCU's #4326

Closed raveslave closed 4 years ago

raveslave commented 6 years ago

Based on ARM M4 & M0+
http://www.cypress.com/products/32-bit-arm-cortex-m4-psoc-6

Since their IDE "PSoC Creator" is Windows only, having an alternative tool-chain would be much appreciated by the community.

raveslave commented 6 years ago

Seems Cypress made an effort and now supports an alternative tool-chain that would make this more doable without the previous psoc creator dependency to configure the IC & peripherals.

http://www.cypress.com/products/modustoolbox-integrated-design-environment-ide

pfalcon commented 5 years ago

There's ongoing work on adding PSoC6 support happening in the branch https://github.com/nazrchorn/zephyr/tree/add_psoc6 .

pfalcon commented 5 years ago

Also the PR: https://github.com/zephyrproject-rtos/zephyr/pull/8408

raveslave commented 5 years ago

Great to see work being done on this! Thanks Cypress!

Historically in PSoC Creator, there has been quite good maintenance on the driver libraries (PDL's and also the Verilog modules) with updates (based on bug-reports) coming every now & then.

I saw that there is now a hot-copy here https://github.com/cypress/pdl which is great. @galak is there a plan to use github as the source from now on as the source for patches and new PDL releases? if yes, what's the best/smoothest way to integrate these back into Zephyrs driver-tree?

carlescufi commented 5 years ago

@galak Can we close this now that this is merged?

raveslave commented 5 years ago

I've checked this out and right now there is only a hard-coded UART supported.
Would be great with the full peripheral-set of the PSoC 6 as well as offering a more flexible pin-configuration.

carlescufi commented 5 years ago

@raveslave thanks for chiming in. @nazrchorn @OlegKapshii do you have plans to improve and extend the port?

OlegKapshii commented 5 years ago

Yes. We will extend it.

raveslave commented 5 years ago

Any plans on when?

pfalcon commented 5 years ago

@raveslave : All the time ;-). You can search pull requests for "psoc6" for the current work in progress. E.g. right now you can help with reviewing and testing https://github.com/zephyrproject-rtos/zephyr/pull/10601. (And without help with testing, it's all going to be very-very slow.)

Oh, and btw, I wouldn't close this ticket, given the community interest. (I.e. this ticket can be subscribed to by interested parties, and updates can be given here once in a while).

raveslave commented 5 years ago

We'd be happy to do testing, but we need more things in place first

@galak can you please look into this and re-open this issue.

pfalcon commented 5 years ago

@raveslave: As you can see, the current thing which needs testing is IPM communication between the cores.

Reopening based on the community request, reassigning to me. I'll try to post updates to this, and we can open at least until 1.14 release I guess.

raveslave commented 5 years ago

@pfalcon @OlegKapshii what's the current status & plans here?

PingiliV commented 5 years ago

Hello, Iam new to zephyr and psoc6. Is there any document or link where i can check the supported features/ Drivers for psoc6 particularly. Also, specific way to check issues related to Psoc6? Thanks in advance for your effort ! BR Vinay

OlegKapshii commented 5 years ago

Hello, All available documentation is in boards/arm/cy8ckit_062_wifi_bt_m0 (m4) doc folders. There are also some links to Cypress PSoC6 resources. At the moment, there is a basic PSoC6 support added (cy8ckit_062_wifi_bt board), a device tree created, a sample project can be compiled and loaded into a PSoC6 board (hello_world e.g.). There are two UART ports in the device tree: one for CM0 core, one - for CM4. There are also two PRs, which are waiting for merging into master (Psoc6 add ipm #10601 and Psoc6 add protection #11777), that should add some more complex features support for PSoC6 in Zephyr.

galak commented 4 years ago

Basic support for PSOC6 is in zephyr. Additional driver support would need to be provided by community members that have an interest.