Active arm armv7 mx6 freescale mx6sabresd mx6qsabresd mx6sabresd:IMX_CONFIG=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg,MX6Q,DEFAULT_FDT_FILE="imx6q-sabresd.dtb",DDR_MB=1024,SYS_USE_SPINOR Fabio Estevam <fabio.estevam@freescale.com>qui donnent le Kconfig suivant :
if TARGET_MX6SABRESD config SYS_BOARD default "mx6sabresd" config SYS_VENDOR default "freescale" config SYS_SOC default "mx6" config SYS_CONFIG_NAME default "mx6sabresd" endifLe dernier champ (mainteneur) est transféré dans un fichier MAINTAINERS :
MX6SABRESD BOARD M: Fabio Estevam <fabio.estevam@freescale.com> S: Maintained F: board/freescale/mx6sabresd/ F: include/configs/mx6sabresd.h F: configs/mx6dlsabresd_defconfig F: configs/mx6qsabresd_defconfig F: configs/mx6sabresd_spl_defconfigLe fichier MAINTAINERS nous indique l’apparition d’un nouveau fichier de configuration dans le répertoire configs. C’est ce fichier qui sert de point d’entrée au nouveau système de build : une commande make _defconfig se base sur le fichier configs/_defconfig. Intéressons nous donc au fichier configs/mx6qsabresd_defconfig :
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sabresd/mx6q_4x_mt41j128.cfg,MX6Q,SYS_USE_SPINOR" CONFIG_ARM=y CONFIG_TARGET_MX6SABRESD=y CONFIG_DM=y CONFIG_DM_THERMAL=yOn y retrouve le champ Options de l’ancien fichier boards.cfg dans la variable CONFIG_SYS_EXTRA_OPTIONS. On définit également l’architecture CONFIG_ARM=Y, et la variable CONFIG_TARGET_MX6SABRESD=Y, faisant ainsi le lien avec le fichier Kconfig vu ci-dessus. Enfin la variable CONFIG_DM=y active le Driver Model d’U-Boot et CONFIG_DM_THERMAL active le support driver des devices thermal. En ce qui concerne Hera la ligne :
Active arm armv7 mx6 cio hera hera_quad hera:IMX_CONFIG=board/cio/imx/ddr/mx6q_4x_mt41j128.cfg,MX6Q,DEFAULT_FDT_FILE="imx6q-hera.dtb",DDR_MB=1024 -donne donc le Kconfig suivant :
if TARGET_MX6QHERA config SYS_BOARD default "hera" config SYS_VENDOR default "cio" config SYS_SOC default "mx6" config SYS_CONFIG_NAME default "hera_quad" endifLa ligne Hera ne contenait pas d’indication de mainteneur. Créons le à l’occasion de ce portage :
MX6HERA BOARD M: Christian Charreyre <christian.charreyre@ciose.fr> S: Maintained F: board/cio/hera/ F: include/configs/hera.h F: include/configs/hera_common.h F: configs/mx6qhera_defconfigPar analogie avec la SabreSD, on peut donc créer une 1ère version de fichier configs/mx6qhera_defconfig comme suit :
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/cio/imx/ddr/mx6q_4x_mt41j128.cfg,MX6Q,DEFAULT_FDT_FILE="imx6q-hera.dtb",DDR_MB=1024" CONFIG_ARM=y CONFIG_TARGET_MX6QHERA=y CONFIG_DM=y CONFIG_DM_THERMAL=yAprès avoir lancé la compilation par un make mx6qhera_defconfig, on constate au travers du fichier .config généré que l’on ne sélectionne pas correctement la carte Hera, mais que c’est l’architecture ARM par défaut qui est compilée :
… CONFIG_SYS_ARCH="arm" CONFIG_SYS_CPU="arm720t" CONFIG_SYS_VENDOR="armltd" CONFIG_SYS_BOARD="integrator" CONFIG_SYS_CONFIG_NAME="integratorap" …Ceci s’explique par un chaînage du répertoire board/cio manquant au niveau de l’arborescence des Kconfig. Patchons le fichier arch/arm/Kconfig pour effectuer le chaînage :
cch@cch-tosh:/media/yocto-1504/hera/uboot-imx/arch/arm$ git diff
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 0c82b17..737431b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -514,6 +514,10 @@ config TARGET_MX6QARM2
bool "Support mx6qarm2"
select CPU_V7
+config TARGET_MX6QHERA
+ bool "Support mx6qhera"
+ select CPU_V7
+
config TARGET_MX6QSABREAUTO
bool "Support mx6qsabreauto"
select CPU_V7
@@ -840,6 +844,7 @@ source "board/boundary/nitrogen6x/Kconfig"
source "board/broadcom/bcm28155_ap/Kconfig"
source "board/broadcom/bcmcygnus/Kconfig"
source "board/broadcom/bcmnsp/Kconfig"
+source "board/cio/hera/Kconfig"
source "board/cirrus/edb93xx/Kconfig"
source "board/compulab/cm_t335/Kconfig"
source "board/compulab/cm_fx6/Kconfig"
Relançons la compilation. Ce coup ci la carte Hera est bien sélectionnée comme le prouve l’extrait du fichier .config :
... CONFIG_SYS_ARCH="arm" CONFIG_SYS_CPU="armv7" CONFIG_SYS_SOC="mx6" CONFIG_SYS_VENDOR="cio" CONFIG_SYS_BOARD="hera" CONFIG_SYS_CONFIG_NAME="hera_quad" ...mais nous obtenons une erreur sur le nom du fichier de config :
In file included from ../include/common.h:18:0: include/config.h:8:31: fatal error: configs/hera_quad.h: No such file or directoryEn effet il y a une incohérence entre le fichier configs/hera.h et la valeur de SYS_CONFIG_NAME qui vaut hera_quad (héritage de la version v2014.04). Corrigeons cela en redéfinissant SYS_CONFIG_NAME à hera :
cch@cch-tosh:/media/yocto-1504/hera/uboot-imx/arch/arm$ git diff
diff --git a/board/cio/hera/Kconfig b/board/cio/hera/Kconfig
index 880c1a3..4fdebec 100644
--- a/board/cio/hera/Kconfig
+++ b/board/cio/hera/Kconfig
@@ -10,6 +10,6 @@ config SYS_SOC
default "mx6"
config SYS_CONFIG_NAME
- default "hera_quad"
+ default "hera"
endif
Recompilons. Cette fois ci tout est nominal. Il reste quelques erreurs à corriger mais ce sont des erreurs qui n’ont pas de lien avec l’adoption du nouveau système de build donc elles n’entrent pas dans le cadre de cet article.
Par ces quelques adaptations nous avons donc pris en compte le nouveau système de build de U-Boot. Cependant cette prise en compte n’est que partielle car il resterait maintenant à transférer toutes les options définies inconditionnellement dans include/configs/hera.h et include/configs/hera_common.h par des options définies conditionnellement par Kconfig.CIO Systèmes Embarqués – 1 Rue de la Presse, 42 000 Saint-Étienne – contact@ciose.fr – 04 77 93 34 32
CIO Systèmes Embarqués est le nom commercial de la SAS CIO Informatique Industrielle
CIO Informatique Industrielle © 1991-2020 v3.0