diff --git a/tools/gencfg/processors/hal/stm32f4xx/config.fmpp b/tools/gencfg/processors/hal/stm32f4xx/config.fmpp
new file mode 100644
index 000000000..307a6f61c
--- /dev/null
+++ b/tools/gencfg/processors/hal/stm32f4xx/config.fmpp
@@ -0,0 +1,5 @@
+sourceRoot: templates
+outputRoot: output
+data: {
+ doc1: xml(../input/stm32f4xx_cfg.xml)
+}
diff --git a/tools/gencfg/schema/common/doc.xsd b/tools/gencfg/schema/common/doc.xsd
index 573beb618..b7395605b 100644
--- a/tools/gencfg/schema/common/doc.xsd
+++ b/tools/gencfg/schema/common/doc.xsd
@@ -1,42 +1,57 @@
-
- >Generic item with optional name and brief description
+ >Generic item with optional name and brief
+ description
-
-
+
+
+ Object name.
+
+
+
+
+
+
+
+
+
+ Object brief description, 72 chars max in a
+ single line.
+
+
+
+
+
+
+
+
+
- >Something that can have a detailed description attached
+ >Something that can have a detailed description
+ attached
-
-
+
+
+
+ Object documentation as text, does not
+ preserve formatting.
+
-
+
diff --git a/tools/gencfg/schema/hal/abstract_adc_cfg.xsd b/tools/gencfg/schema/hal/abstract_adc_cfg.xsd
new file mode 100644
index 000000000..4a2901c4e
--- /dev/null
+++ b/tools/gencfg/schema/hal/abstract_adc_cfg.xsd
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/gencfg/schema/hal/abstract_driver_cfg.xsd b/tools/gencfg/schema/hal/abstract_driver_cfg.xsd
new file mode 100644
index 000000000..a884cd090
--- /dev/null
+++ b/tools/gencfg/schema/hal/abstract_driver_cfg.xsd
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
diff --git a/tools/gencfg/schema/hal/stm32f4xx/Copy of stm32f4xx_adc_cfg.xsd b/tools/gencfg/schema/hal/stm32f4xx/Copy of stm32f4xx_adc_cfg.xsd
new file mode 100644
index 000000000..ff700b621
--- /dev/null
+++ b/tools/gencfg/schema/hal/stm32f4xx/Copy of stm32f4xx_adc_cfg.xsd
@@ -0,0 +1,219 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_adc_cfg.xsd b/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_adc_cfg.xsd
new file mode 100644
index 000000000..18cb6a03b
--- /dev/null
+++ b/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_adc_cfg.xsd
@@ -0,0 +1,437 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_cfg.xsd b/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_cfg.xsd
new file mode 100644
index 000000000..f846403f3
--- /dev/null
+++ b/tools/gencfg/schema/hal/stm32f4xx/stm32f4xx_cfg.xsd
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/gencfg/xml/stm32f4xx_cfg.xml b/tools/gencfg/xml/stm32f4xx_cfg.xml
new file mode 100644
index 000000000..65c9294e0
--- /dev/null
+++ b/tools/gencfg/xml/stm32f4xx_cfg.xml
@@ -0,0 +1,43 @@
+
+
+
+ Application HAL configurations.
+
+
+
+
+
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+ ADC_SAMPLE_3
+
+
+ ADC_CHANNEL_IN0
+
+
+
+
+