Open duynguyenxa opened 2 days ago
Linker scripts and toolchains: Our plan is to try to support GCC RX toolchain as a Zephyr Variant External toolchain, and GCC RX build on Zephyr SDK
@stephanosio
@nashif , @KhiemNguyenT , @stephanosio , @nordicjm , Please help to share your opinion about above proposal. Especially topic relate to GCC RX toolchain and license for using rx-driver-package as hal layer
@gmarull for possible comment on HAL. Note that all binary blobs must be stripped for that repo to be included in zephyr
Our plan is to try to support GCC RX toolchain as a Zephyr Variant External toolchain
If it is more or less a vanilla GCC, a separate toolchain variant should not be necessary -- ZEPHYR_TOOLCHAIN_VARIANT=cross-compile
can be used.
and GCC RX build on Zephyr SDK
Is the upstream (i.e. binutils and GCC) RX architecture support well maintained? If so, adding it to the Zephyr SDK should be fairly easy.
If the upstream RX architecture support is incomplete and/or outdated compared to the Renesas GNU toolchain fork, it will likely take a lot of work to get it integrated into the Zephyr SDK -- we had a very hard time integrating Microblaze, another proprietary architecture like RX, into the SDK because the upstream binutils and GCC were buggy and missing many patches.
License looks fishy:
License
These software:
can be used for any users.
can be re-distributed by any users. (excluding r_emwin_rx)
can be integrated with specified open source code.
Amazon FreeRTOS has been now allowed, Renesas would accept other open source.
use condition is basically [MIT License](https://github.com/renesas/rx-driver-package/blob/master/LICENSE), and details are shown in [PDF file in FIT Modules directory](https://github.com/renesas/rx-driver-package/tree/master/doc/license).
are generated by SmartConfigurator as well, the generated code (each FIT Modules and Code Generator parts) license is same as previous link.
It's definitely not MIT.
Also, it looks like HAL is bloated with unnecessary stuff: see e.g. https://github.com/renesas/rx-driver-package/tree/master/source/r_bsp/r_bsp_vx.xx/r_bsp/board. HAL repos should be restricted to driver enablement code.
Also, it looks like HAL is bloated with unnecessary stuff: see e.g. https://github.com/renesas/rx-driver-package/tree/master/source/r_bsp/r_bsp_vx.xx/r_bsp/board. HAL repos should be restricted to driver enablement code.
@gmarull the HAL code will be taken from that repo, then commit into hal_renesas. So we will only reuse the driver enablement code.
is there qemu support for this architecture? How are we going to verify it works in CI?
is there qemu support for this architecture? How are we going to verify it works in CI?
@nashif , According to qemu document, it has support for R5F562N8 MCU which is using RXv1 Core, I'll add an action on this support to add qemu target for RX.
Refs: https://www.qemu.org/docs/master/system/target-rx.html
License looks fishy:
License These software: can be used for any users. can be re-distributed by any users. (excluding r_emwin_rx) can be integrated with specified open source code. Amazon FreeRTOS has been now allowed, Renesas would accept other open source. use condition is basically [MIT License](https://github.com/renesas/rx-driver-package/blob/master/LICENSE), and details are shown in [PDF file in FIT Modules directory](https://github.com/renesas/rx-driver-package/tree/master/doc/license). are generated by SmartConfigurator as well, the generated code (each FIT Modules and Code Generator parts) license is same as previous link.
It's definitely not MIT.
In the license PDF file, there is mention for Open Source Software usage exception. If the condition is like below, would it be allowed to use in Zephyr hal repository. https://github.com/renesas/rx-driver-package/blob/master/doc/license/L-292(Rev1_2)_rx_mcus_rdp_sla_en.pdf
Article 3 (PROHIBITIONS)
License looks fishy:
License These software: can be used for any users. can be re-distributed by any users. (excluding r_emwin_rx) can be integrated with specified open source code. Amazon FreeRTOS has been now allowed, Renesas would accept other open source. use condition is basically [MIT License](https://github.com/renesas/rx-driver-package/blob/master/LICENSE), and details are shown in [PDF file in FIT Modules directory](https://github.com/renesas/rx-driver-package/tree/master/doc/license). are generated by SmartConfigurator as well, the generated code (each FIT Modules and Code Generator parts) license is same as previous link.
It's definitely not MIT.
In the license PDF file, there is mention for Open Source Software usage exception. If the condition is like below, would it be allowed to use in Zephyr hal repository. https://github.com/renesas/rx-driver-package/blob/master/doc/license/L-292(Rev1_2)_rx_mcus_rdp_sla_en.pdf
Article 3 (PROHIBITIONS)
- Except for the rights expressly granted herein, Licensee shall not (i) remove, obliterate or modify any copyright, trademark or other proprietary notice or mark appearing on the Licensed Software by REL and/or its licensors; (ii) use, copy or modify all or any portion of the Licensed Software; (iii) distribute or sublicense the Licensed Software, in whole or in part, to any third parties; (iv) use the Licensed Software with any Open Source Software; or (v) use the Licensed Software for any purpose other than in accordance with the terms and conditions of this Agreement. Notwithstanding (iv) above, Licensee may use the Licensed Software only with (a) Amazon FreeRTOS provided by Amazon Web Services, Inc, (b) wolfSSL provided by wolfSSL Inc. (with respect to (b), restricted to open source software provided under GNU General Public License), (c) Zephyr RTOS provided by Linux Foundation, (d) Azure RTOS provided by Microsoft Corporation or (e) mbed TLS provided by Arm Ltd. Amazon FreeRTOS, wolfSSL, Zephyr RTOS, Azure RTOS and mbed TLS shall be collectively referred to as “Permitted Open Source Software”.
- In the event of using Permitted Open Source Software, Licensee shall (i) comply with respective terms and conditions of Permitted Open Source Software and (ii) agree that (a) REL does not have any responsibility and obligation with respect to Permitted Open Source Software and (b) Licensee shall continue to be bound by the terms and conditions set forth herein for use of Developed Copies even in cases Developed Copies are used in conjunction with Permitted Open Source Software. Licensee shall take all necessary measures to avoid the application of the terms and conditions of Permitted Open Source Software to the Licensed Software.
- The provisions of this Article 3 shall survive any termination of this Agreement for the life of the relevant rights.
I'm not a lawyer, but, if you release something on the pure terms of MIT, you can't legally enforce such extra terms; otherwise you're violating MIT itself. So to me, you are just incorporating MIT conditions as one of the points on your "main" license, but there's no MIT.
Background: Renesas RX core is a proprietary architecture from Renesas, currently it's not supported on upstream Zephyr yet. We are proposing to add support for the Renesas RX architecture to Zephyr OS. This support will enable developers to run Zephyr on RX-based microcontrollers.
For first basic support of the architecture the propose the below features
As it's the first time to support a new architecture on Zephyr, all recommendation are highly appreciated. Esp. there's a challenge to add GCC RX toolchain support, which may need some modification in Linker script of Zephyr build system. Discord discussion at: https://discord.com/channels/720317445772017664/1277491466167386196
References Reference of RX architecture Renesas RX Family Overview Zephyr Architecture porting guide