An open source product micropython.org part of the Python project has no Freescale software in it supporting Freescale Kinetis Processors.
I'd like to make a contribution to this open source software for some specific Kinetis processors - but I'd like to check the KSDK 1.2 /KDS3 licensing conditions allows this.
Can anybody at Freescale tell me if it would or WOULD NOT be considered part of the license - or is a grey area with unknown risk,...
I’m proposing to develop a community product “middle ware” from Freescale derived KSDK 1.x as part of an “Authorized System” for a Freescale FRDM-K64F board to glue open source software “micropython.org” developed in a “software commons” (like github.com).
The “middle ware” derived from the Freescale Licensed Software granted to me as part of KSDK 1.x download would only be part of a larger "Authorized System" –meeting a license condition - and only distributed as part of that system . The small part specifically enabling the choice of Kinetis MK64F processor.
The “middleware” as part of a larger system would contain Freescale software license as stated in each file but would NOT require other software developers to acknowledge that or any other licenses should they choose to use the software.
The “middle ware” would be of value to potential Freescale customers who purchase FRDM-K64F or MK64FN family products.
The “middleware” would likely be further developed by a community of software developers – and where it would be freely available and maintained in a “software commons” (like github.com).
The proposed “middle ware” if developed would by its nature of being “Freescale KSDK1.2 HAL and drivers” only run and drive targeted Freescale MK64FN ARM processor.
The micropython.org is a project to supply a version of the Python on embedded ARM boards, and is developed and maintained by a community of software developers and organizations all using the open source GCC ARM tools (https://launchpad.net/gcc-arm-embedded Simplified BSD Licence, GNU GPL v2, GNU GPL v3, GNU LGPL v2.1, GNU LGPL v3, MIT / X / Expat Licence).
Python Programming Language is sponsored by Python Software Foundation (PSF) a non-profit legal entity that holds and protects the intellectual property rights behind Python, keeping it free and open for all to use. ( https://www.python.org/psf/summary/ )
Micropython was initially launched by a kickstarter project with the rewards supplying a practical implementation on an STC STM32F processor.
Micropython has since been ported to other processors including STC and Texas Instruments.
However Micropython has only been ported to one version of a Freescale processor the MK20DX using open source PJRC.com software implemented on a PRJC product called the Teensy3x.
The development of a version of the software to run on Freescale processors is only possible if using the added value of the community open source development known as micropython.
I personally propose to use the resulting enhanced middleware in a product containing a Freescale MK26FNxxx processor. This product is targeted at outdoor environmental monitoring of environments that contain endangered species (as identified in the US), and likely to be open source hardware. The micropython capability would greatly enhance the usefulness of the product to scientists and other developers working in this field.
My reading of the Freescale license granted me by downloading KSDK1.2 and KDS3 (and I’m not a lawyer) is it is allowed if
a) included in Middleware that may be further copied and reproduced as part of that “Authorized System” and not on a standalone basis, as defined by the KSDK1.2 license 2.2a & 2.2c below
b) contains the language in the software source code
c) the software is not defined as Third Party in the table at the end
KSDK 1.2 (Kinetis Software Development Kit) and KDS3 (Kinetis Design Studio V3.0) license language
(a) to use and reproduce the Licensed Software only as part of, or integrated within, Authorized Systems and not on a standalone basis;
…
(c) to copy, use and distribute as needed, solely in connection with an Authorized System, proprietary Freescale information associated with the Licensed Software for the purpose of developing, maintaining and supporting Authorized Systems with which the Licensed Software is integrated or associated.
Freescale license
Frdmk64f (project) with AdcLdd1.c board.c? fsl_debug_console.c
* Copyright (c) [xxxx]-2014, Freescale Semiconductor, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* o Redistributions of source code must retain the above copyright notice, this list
* of conditions and the following disclaimer.
*
* o Redistributions in binary form must reproduce the above copyright notice, this
* list of conditions and the following disclaimer in the documentation and/or
* other materials provided with the distribution.
*
Usb_class.c
* Freescale Semiconductor Inc.
* (c) Copyright 2004-2010 Freescale Semiconductor, Inc.
* ALL RIGHTS RESERVED.
*
Other Licenses in micropython software
A large number of files contain
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) [developer]
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
File eg adc.c interrupt.c
// Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
//
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
// Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//
// Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the
// distribution.
//
ST stm32f4xx_hal_adc.h stm32f4xx_hal_cortex.h stm32f7xx_hal_adc.h stm32f7xx_hal_cortex.h
* <h2><center>© COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
Solved! Go to Solution.
Hi, Neil,
KSDK v1.3 (latest at the time of this writing) includes several software components, all with individual licensing. The license attributed to each component is outlined in the Software Content Register (SCR) and pasted below. The intention for the peripheral drivers and as much of the software that runs directly on the Freescale hardware is to enable them with very permissive licenses. We chose the BSD 3-Clause license such that the HAL and peripheral drivers could be used by other projects, such as micropython. Note that the KSDK is used today as the lowest layer of the ARM mbed software platform support for Kinetis -- a very similar usage to what is being proposed here.
in summary, you can take any of the BSD licensed software in KSDK and use them in other projects as long as the license requirements (the 3 clauses) are meet. Easy enough!
-Michael
Release Name: Kinetis Version: 1.3.0
Software Development
Kit (SDK)
Package - Kinetis SDK
CMSIS DSP Library Description: A digital signal processing
library for Cortex-M cores from ARM
Version: 1.4.4 (CMSIS download 4.2)
Author: ARM
License: Open Source - BSD-3-Clause
Format: source code
Location:
KSDK_1.3.0/platform/CMSIS/DSP_lib
CMSIS Core header files Description: Industry-standard header files
distributed by ARM for Cortex-M cores
Version: 4.20
Author: ARM
License: Open Source - BSD-3-Clause
Format: source code
Location:
KSDK_1.3.0/platform/CMSIS/Include
USB Description: Freescale USB stack. This is
a version of the USB stack that has been
integrated with the Kinetis SDK.
Author: Freescale
License: Proprietary. See Freescale EULA
LA_OPT_FSL_OPEN_3RD_PARTY_IP, Appendix A,
MQX RTOS Code.
Format: source code
Location: KSDK_1.3.0/usb
mmCAU S/W Library Description: S/W library that works with the
memory-mapped cryptographic acceleration
unit present on some Kinetis SoCs
Version: 1.3
Author: Freescale
License: Open Source - BSD-3-Clause
Format: source code
Location:
KSDK_1.3.0/platform/drivers/src/mmcau
Flash / NVM Description: Software driver (SSD) for Flash
and EEPROM
Version: 3.4
Author: Freescale
License: Open Source - BSD-3-Clause
Format: source code
Location:
KSDK_1.3.0/platform/drivers/src/flash
Processor Expert (PEx) Description: Processor Expert (PEx) service
Support for KSDK pack with support for KSDK 1.3.0
Author: Freescale
License: Proprietary. See Freescale EULA
LA_OPT_TOOL
Format: binary
Location: KSDK_1.3.0/tools/eclipse_update
KSDK Peripheral Drivers Description: Peripheral drivers are designed
for the most common use cases identified for
the underlying hardware block.
Version: 1.3.0
Author: Freescale
License: Open Source - BSD-3-Clause
Format: source code
Location: KSDK_1.3.0/platform/drivers
KSDK H/W Abstraction Description: The HAL abstracts the H/W register
Layer (HAL) access into a set of stateless functional
primitives which provide the building blocks for
peripheral drivers or applications.
Version: 1.3.0
Author: Freescale
License: Open Source - BSD-3-Clause
Format: source code
Location: KSDK_1.3.0/platform/hal
lwIP TCP/IP Stack Description: A light-weight TCP/IP stack
Version: 1.4.1
Author: Swedish Institute of Computer Science
License: Open Source - BSD-3-Clause
Format: source code
URL: http://savannah.nongnu.org/projects/lwip/
Location: KSDK_1.3.0/middleware/tcpip/lwip
FatFs Description: FatFs is a generic FAT file system
module for small embedded systems.
Version: R0.09b
Author: Electronic Lives Mfg. by ChaN of Ageo city,
Japan (hobbyist)
License: Open Source - FatFs License
Approved Open Source License: Yes
Format: source code
URL: http://elm-chan.org/fsw/ff/00index_e.html
Location: KSDK_1.3.0/middleware/filesystem/fatfs
Package - FreeRTOS(tm) Description: A real-time operating system
FreeRTOS(tm) (RTOS) from Real Time Engineers, Ltd.
Version: 8.0.0
Author: Real Time Engineers, Ltd.
License: Modified GPLv2. See
KSDK_1.0.0/rtos/FreeRTOS/src/FreeRTOS_license.txt.
Format: source code
Location: KSDK_1.3.0/rtos/FreeRTOS
Freescale MQX(tm) kernel Description: A real-time operating system
(RTOS) licensed by Freescale from
ARC/Synopsys. This is a subset of
Freescale MQX that has been integrated with
the Kinetis SDK.
Version: 1.3.0
Author: Freescale
License: Proprietary. See
LA_OPT_FSL_OPEN_3RD_PARTY_IP,
Appendix A, MQX RTOS Code.
Format: source code
Location: KSDK_1.3.0/rtos/mqx
uC/OS-II(R) Description: A real-time operating system
(RTOS) from Micrium
Version: 2.92.10
Author: Micrium
License: Proprietary. See
LA_OPT_FSL_OPEN_3RD_PARTY_IP,
Appendix A, Micrium.
Format: source code
URL: http://micrium.com
Location: KSDK_1.3.0/rtos/uCOSII
uC/OS-III(R) Description: A real-time operating system
(RTOS) from Micrium
Version: 3.04.03
Author: Micrium
License: Proprietary. See
LA_OPT_FSL_OPEN_3RD_PARTY_IP,
Appendix A, Micrium.
Format: source code
URL: http://micrium.com
Location: KSDK_1.3.0/rtos/uCOSIII
ISC BIND Description: Reference implementation of
the Domain Name System (DNS) Internet
protocol.
Author: Internet Systems Consortium
License: Open Source - ISC
Format: source code
URL: https://www.isc.org/downloads/bind/
Location: KSDK_1.3.0/middleware/tcpip/rtcs/source/if
getopt Description: A C function used to parse
command-line options.
Version: n/a
Author: AT&T
License: Public Domain
Format: source code
URL: http://www.informatica.co.cr/unix-source-code/research/1985/1103.html
Location: KSDK_1.3.0/utilities/shell/src/shell.c
Freescale MQX(tm) Description: MFS is s FAT12/16/32 file system
MFS file system licensed by Freescale from
ARC/Synopsys. This is a subset of
Freescale MQX that has been integrated with
the Kinetis SDK.
Version: 1.0.0
Author: Freescale
License: Proprietary. See
LA_OPT_FSL_OPEN_3RD_PARTY_IP,
Appendix A, MQX RTOS Code.
Format: source code
Location: KSDK_1.3.0/middleware/filesystem/mfs
Freescale MQX(tm) Description: RTCS is real-time TCPIP stack
RTCS stack licensed by Freescale from
ARC/Synopsys. This is a subset of
Freescale MQX that has been integrated with
the Kinetis SDK.
Version: 1.0.0
Author: Freescale
License: Proprietary. See
LA_OPT_FSL_OPEN_3RD_PARTY_IP,
Appendix A, MQX RTOS Code.
Format: source code
Location: KSDK_1.3.0/middleware/tcpip/rtcs
I guess this has become a KSDK1.3 license question.
Further findings from different sources
On installing the KSDK1.3 on KSD300 license says
prepare derivative works of and to distribute Compilable Software, which is explicity marked with the
text "SOURCE DISTRIBUTION PERMISSIBLE as directed in EULA", in source form and only as part
of your own software programs that add substantial value to the Compilable Software. You may only
distribute the Compilable Software for execution on a Freescale Processor.
However this is not the same as the BSD 3 license language that is defined in some of the FTF presentations
While not legal language, marketing intention in these recent presentations
https://community.freescale.com/docs/DOC-104240 SDK Quick Start and Demo, 2015 Mar
Pg10 “Hardware Abstraction Layer Licensed under BSD 3-clause open-source license”
FTF-DES-F1147 - Mastering Kinetis SDK - Advanced. 2015 June
Slide 6(pg7) BSD-licensed set of peripheral drivers with easy-to-use C-language APIs
Hi, Neil,
KSDK v1.3 (latest at the time of this writing) includes several software components, all with individual licensing. The license attributed to each component is outlined in the Software Content Register (SCR) and pasted below. The intention for the peripheral drivers and as much of the software that runs directly on the Freescale hardware is to enable them with very permissive licenses. We chose the BSD 3-Clause license such that the HAL and peripheral drivers could be used by other projects, such as micropython. Note that the KSDK is used today as the lowest layer of the ARM mbed software platform support for Kinetis -- a very similar usage to what is being proposed here.
in summary, you can take any of the BSD licensed software in KSDK and use them in other projects as long as the license requirements (the 3 clauses) are meet. Easy enough!
-Michael
Release Name: Kinetis Version: 1.3.0
Software Development
Kit (SDK)
Package - Kinetis SDK
CMSIS DSP Library Description: A digital signal processing
library for Cortex-M cores from ARM
Version: 1.4.4 (CMSIS download 4.2)
Author: ARM
License: Open Source - BSD-3-Clause
Format: source code
Location:
KSDK_1.3.0/platform/CMSIS/DSP_lib
CMSIS Core header files Description: Industry-standard header files
distributed by ARM for Cortex-M cores
Version: 4.20
Author: ARM
License: Open Source - BSD-3-Clause
Format: source code
Location:
KSDK_1.3.0/platform/CMSIS/Include
USB Description: Freescale USB stack. This is
a version of the USB stack that has been
integrated with the Kinetis SDK.
Author: Freescale
License: Proprietary. See Freescale EULA
LA_OPT_FSL_OPEN_3RD_PARTY_IP, Appendix A,
MQX RTOS Code.
Format: source code
Location: KSDK_1.3.0/usb
mmCAU S/W Library Description: S/W library that works with the
memory-mapped cryptographic acceleration
unit present on some Kinetis SoCs
Version: 1.3
Author: Freescale
License: Open Source - BSD-3-Clause
Format: source code
Location:
KSDK_1.3.0/platform/drivers/src/mmcau
Flash / NVM Description: Software driver (SSD) for Flash
and EEPROM
Version: 3.4
Author: Freescale
License: Open Source - BSD-3-Clause
Format: source code
Location:
KSDK_1.3.0/platform/drivers/src/flash
Processor Expert (PEx) Description: Processor Expert (PEx) service
Support for KSDK pack with support for KSDK 1.3.0
Author: Freescale
License: Proprietary. See Freescale EULA
LA_OPT_TOOL
Format: binary
Location: KSDK_1.3.0/tools/eclipse_update
KSDK Peripheral Drivers Description: Peripheral drivers are designed
for the most common use cases identified for
the underlying hardware block.
Version: 1.3.0
Author: Freescale
License: Open Source - BSD-3-Clause
Format: source code
Location: KSDK_1.3.0/platform/drivers
KSDK H/W Abstraction Description: The HAL abstracts the H/W register
Layer (HAL) access into a set of stateless functional
primitives which provide the building blocks for
peripheral drivers or applications.
Version: 1.3.0
Author: Freescale
License: Open Source - BSD-3-Clause
Format: source code
Location: KSDK_1.3.0/platform/hal
lwIP TCP/IP Stack Description: A light-weight TCP/IP stack
Version: 1.4.1
Author: Swedish Institute of Computer Science
License: Open Source - BSD-3-Clause
Format: source code
URL: http://savannah.nongnu.org/projects/lwip/
Location: KSDK_1.3.0/middleware/tcpip/lwip
FatFs Description: FatFs is a generic FAT file system
module for small embedded systems.
Version: R0.09b
Author: Electronic Lives Mfg. by ChaN of Ageo city,
Japan (hobbyist)
License: Open Source - FatFs License
Approved Open Source License: Yes
Format: source code
URL: http://elm-chan.org/fsw/ff/00index_e.html
Location: KSDK_1.3.0/middleware/filesystem/fatfs
Package - FreeRTOS(tm) Description: A real-time operating system
FreeRTOS(tm) (RTOS) from Real Time Engineers, Ltd.
Version: 8.0.0
Author: Real Time Engineers, Ltd.
License: Modified GPLv2. See
KSDK_1.0.0/rtos/FreeRTOS/src/FreeRTOS_license.txt.
Format: source code
Location: KSDK_1.3.0/rtos/FreeRTOS
Freescale MQX(tm) kernel Description: A real-time operating system
(RTOS) licensed by Freescale from
ARC/Synopsys. This is a subset of
Freescale MQX that has been integrated with
the Kinetis SDK.
Version: 1.3.0
Author: Freescale
License: Proprietary. See
LA_OPT_FSL_OPEN_3RD_PARTY_IP,
Appendix A, MQX RTOS Code.
Format: source code
Location: KSDK_1.3.0/rtos/mqx
uC/OS-II(R) Description: A real-time operating system
(RTOS) from Micrium
Version: 2.92.10
Author: Micrium
License: Proprietary. See
LA_OPT_FSL_OPEN_3RD_PARTY_IP,
Appendix A, Micrium.
Format: source code
URL: http://micrium.com
Location: KSDK_1.3.0/rtos/uCOSII
uC/OS-III(R) Description: A real-time operating system
(RTOS) from Micrium
Version: 3.04.03
Author: Micrium
License: Proprietary. See
LA_OPT_FSL_OPEN_3RD_PARTY_IP,
Appendix A, Micrium.
Format: source code
URL: http://micrium.com
Location: KSDK_1.3.0/rtos/uCOSIII
ISC BIND Description: Reference implementation of
the Domain Name System (DNS) Internet
protocol.
Author: Internet Systems Consortium
License: Open Source - ISC
Format: source code
URL: https://www.isc.org/downloads/bind/
Location: KSDK_1.3.0/middleware/tcpip/rtcs/source/if
getopt Description: A C function used to parse
command-line options.
Version: n/a
Author: AT&T
License: Public Domain
Format: source code
URL: http://www.informatica.co.cr/unix-source-code/research/1985/1103.html
Location: KSDK_1.3.0/utilities/shell/src/shell.c
Freescale MQX(tm) Description: MFS is s FAT12/16/32 file system
MFS file system licensed by Freescale from
ARC/Synopsys. This is a subset of
Freescale MQX that has been integrated with
the Kinetis SDK.
Version: 1.0.0
Author: Freescale
License: Proprietary. See
LA_OPT_FSL_OPEN_3RD_PARTY_IP,
Appendix A, MQX RTOS Code.
Format: source code
Location: KSDK_1.3.0/middleware/filesystem/mfs
Freescale MQX(tm) Description: RTCS is real-time TCPIP stack
RTCS stack licensed by Freescale from
ARC/Synopsys. This is a subset of
Freescale MQX that has been integrated with
the Kinetis SDK.
Version: 1.0.0
Author: Freescale
License: Proprietary. See
LA_OPT_FSL_OPEN_3RD_PARTY_IP,
Appendix A, MQX RTOS Code.
Format: source code
Location: KSDK_1.3.0/middleware/tcpip/rtcs
Many thanks for the detail.
I realized it was complex - and clear when it was the MQX and uC/OS - but hadn't realized the implications for the USB stack.
It would helpful for system design if this summary was included with KDSK releases.
No problem. i just copied and pasted the license details from the Software Content Register that comes with Kinetis SDK today. See "SW-Content-Register-KSDK-1.3.0.txt" in the root KSDK_1.3.0 folder of your installation.
Oh well - I can't believe I didn't see that file.
So for USB Stack KSDKxx\usb which is identified as
USB Description: Freescale USB stack. This is a version of the USB stack that has been
integrated with the Kinetis SDK.
Author: Freescale
License: Proprietary. See Freescale EULA
LA_OPT_FSL_OPEN_3RD_PARTY_IP, Appendix A,
MQX RTOS Code.
Appendix A says
MQX RTOS Code | MQX RTOS source code may not be re-distributed by any FSL Licensee under any circumstance, even by a signed written amendment to this Agreement |