KSDK1.2 License question ?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

KSDK1.2 License question ?

Jump to solution
3,142 Views
neilhancock
Contributor IV

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

  1. 2.2.             Exclusively in connection with your development and distribution of product containing a programmable processing unit (e.g. a microprocessor, microcontroller, sensor or digital signal processor) supplied directly or indirectly from Freescale (“Authorized System”) Freescale grants you a world-wide, personal, non-transferable, non-exclusive, non-sublicensable, license, under Freescale’s Intellectual Property Rights:

(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>&copy; 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.

  *

Labels (1)
1 Solution
870 Views
mnorman
NXP Employee
NXP Employee

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

                          URL: http://silver.arm.com

                          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

                          URL: http://silver.arm.com

                          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

                          URL: http://www.freertos.org

                          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

View solution in original post

5 Replies
870 Views
neilhancock
Contributor IV

I guess this has become a KSDK1.3 license question.

Further findings from different sources

On installing the KSDK1.3 on KSD300 license says

  1. Special Source Distribution Rights  Freescale also grants to you the additional right to

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

0 Kudos
871 Views
mnorman
NXP Employee
NXP Employee

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

                          URL: http://silver.arm.com

                          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

                          URL: http://silver.arm.com

                          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

                          URL: http://www.freertos.org

                          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

870 Views
neilhancock
Contributor IV

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.

0 Kudos
870 Views
mnorman
NXP Employee
NXP Employee

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.

870 Views
neilhancock
Contributor IV

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

0 Kudos