I have found a potential bug in the MCU config tool.
The IMX RT1060 has a feature where it has 2 gpio peripherals on one pin. The IOMUXC_GPR register is used for selecting which gpio peripheral to use. When using only one functional group this works correctly. But when multiple functional groups are used they can interfere with each other.
So during init first is one functional group initialized with:
IOMUXC_GPR->GPR27 = ((IOMUXC_GPR->GPR27 &
(~(IOMUXC_GPR_GPR27_GPIO_MUX2_GPIO_SEL_MASK)))
| IOMUXC_GPR_GPR27_GPIO_MUX2_GPIO_SEL(0xBF160C00U)
);
then the second functional group is initialized and it does:
IOMUXC_GPR->GPR27 = ((IOMUXC_GPR->GPR27 &
(~(IOMUXC_GPR_GPR27_GPIO_MUX2_GPIO_SEL_MASK)))
| IOMUXC_GPR_GPR27_GPIO_MUX2_GPIO_SEL(0x00U)
);
Which removes this configuration.
I would expect that the generated code would only touch the bits corresponding to the pins that are defined in this functional group and not all bits in the register.