[En-Nut-Discussion] MCD_ST_LIBERTY and ST_GUIDANCE_ONLY question

Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Fri May 10 13:47:17 CEST 2013


Hello,

when Harald noticed that the STM32 code contained a lot of ST files with the
MCD_ST_LIBERTY and ST_GUIDANCE_ONLY licence, a lot of configuration items in
the .nut file got a requirement for acceptances of both licenses for a good
reason.

In the meantime, a lot changed and files with MCD_ST_LIBERTY and
ST_GUIDANCE_ONLY are used for
1. for the basic headers, defining the device
2. for system initialization
3. for some F1 devices
4. for the ST CDC USB implemenations.

To keep in sync with the vendor, I think (1.) will not change
(2.) could be rewritten.
(3.) will go away with some more work on the devices
(4.) I like to pull from the tree, as libopencm3 has much easier to use USB
implementaion and a free license

So I would like to remove the MCD_ST_LIBERTY and ST_GUIDANCE_ONLY from many
configuration places. I would only keep it where we list a ST licended
C-File in the configuration item, e,g, arch/cm3/stm32f4.nut STM32F4 PLL
Configuration. On items where we compile our code I would
like to remove the requirement, e.g. at following configuration item:

    -- STM32 GPIO Interface Version 2 on L1/F2/F4
    --
    {
        name = "nutarch_cm3_stm32_gpio",
        brief = "STM32F2 GPIO",
        description = "Generic port I/O API.",
        requires = { "LICENSE_MCD_ST_LIBERTY", "LICENSE_ST_GUIDANCE_ONLY", "HW_GPIO_STM32V2" },
        provides = { "HW_GPIO_V2" },
        sources = { "cm3/dev/stm/stm32_gpio.c"}

cm3/dev/stm/stm32_gpio.c is written from scratch, also with
knowledge of the ST files. And it inevitable includes the ST licensed basic
headers. But is that enough for the "LICENSE_MCD_ST_LIBERTY" and
"LICENSE_ST_GUIDANCE_ONLY" requirement?

The most hampering configuration corner case is arch/cm3.nut:
   --
    -- CortexM3 SysTick Timer
    --
    {
        name = "nutarch_cm3_ostimer",
        brief = "System Timer (CortexM3)",
        requires = { "LICENSE_MCD_ST_LIBERTY", "LICENSE_ST_GUIDANCE_ONLY", "HW_MCU_CM3" },
        provides = { "NUT_OSTIMER_DEV" },
        sources = { "cm3/cmsis/ostimer_cortex.c" },
    },
which requires MCD_ST_LIBERTY and ST_GUIDANCE_ONLY acceptance on all M3/4
architectures, even when not ST. cm3/cmsis/ostimer_cortex.c is also written
by us, only including the ST basic header when MCU_STM32 is defined. Anyone
disaggrees with we remove MCD_ST_LIBERTY and ST_GUIDANCE_ONLY acceptance
requirement at least for that case?

Bye
-- 
Uwe Bonnes                bon at elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------


More information about the En-Nut-Discussion mailing list