Add support for variants

I have split the machine configuration in two:

-The module machine configuration include, for example ccimx53.inc
-The machine configuration (for example cimx53js.conf) which includes
the variant configuration.

This will allow for customers to create their own machine keeping the
module include file.

The variant can be configured in the local.conf file with a
MACHINE_VARIANT variable.

The variant names are made up of the interface initials as follows:

    w: wifi
    e: externel ethernel
    b: bluetooth
    1: 1-wire
    a: accelerometer
    g: GPU
    v: VPU
    128: 128MB RAM
    4k: 1024MB NAND (only for MX51 JTAG flash)

For details regarding the supported variants, each machine configuration
file contains a comment with a variants table.

https://jira.digi.com/browse/DEL-330

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
This commit is contained in:
Alex Gonzalez 2013-03-25 16:26:14 +01:00
parent 890e235ee6
commit c3c816ec52
18 changed files with 215 additions and 80 deletions

View File

@ -2,28 +2,7 @@
#@NAME: ConnectCore for MX28 JumpStart Kit. #@NAME: ConnectCore for MX28 JumpStart Kit.
#@DESCRIPTION: Machine configuration for Digi's ConnectCore for MX28 JSK. #@DESCRIPTION: Machine configuration for Digi's ConnectCore for MX28 JSK.
include conf/machine/include/mxs-digi-base.inc include conf/machine/include/ccardimx28.inc
SOC_FAMILY = "mxs"
UBOOT_ENTRYPOINT = "0x41008000"
UBOOT_LOADADDRESS = "0x41008000"
# Set UBOOT_CONFIG_VARIANT in local.conf accordingly, default is empty: 261MHz,360MHz,test,dbg
UBOOT_CONFIG_VARIANT ?= ""
UBOOT_MACHINE = '${MACHINE}${@base_conditional( "UBOOT_CONFIG_VARIANT", "", "_", "_${UBOOT_CONFIG_VARIANT}_", d )}config'
UBOOT_MAKE_TARGET = "u-boot-ivt.sb"
UBOOT_SUFFIX = "sb"
UBOOT_IMAGE = 'u-boot-${MACHINE}${@base_conditional( "UBOOT_CONFIG_VARIANT", "", "-", "-${UBOOT_CONFIG_VARIANT}-", d )}ivt-${PV}-${PR}.${UBOOT_SUFFIX}'
UBOOT_BINARY = "u-boot-ivt.${UBOOT_SUFFIX}"
UBOOT_SYMLINK = 'u-boot-${MACHINE}${@base_conditional( "UBOOT_CONFIG_VARIANT", "", "-", "-${UBOOT_CONFIG_VARIANT}-", d )}ivt.${UBOOT_SUFFIX}'
SERIAL_CONSOLE = "115200 ttyAM0" SERIAL_CONSOLE = "115200 ttyAM0"
# wpa_supplicant driver to use in '/etc/network/interfaces'
WPA_DRIVER = "nl80211"
# Firmware
MACHINE_FIRMWARE = "firmware-mxs-ar3k"
MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}"
MACHINE_FEATURES += "alsa touchscreen"

View File

@ -2,31 +2,7 @@
#@NAME: ConnectCore for MX51 JumpStart Kit. #@NAME: ConnectCore for MX51 JumpStart Kit.
#@DESCRIPTION: Machine configuration for Digi's ConnectCore for MX51 JSK #@DESCRIPTION: Machine configuration for Digi's ConnectCore for MX51 JSK
include conf/machine/include/imx-digi-base.inc include conf/machine/include/ccimx51.inc
SOC_FAMILY = "mx51:mx5"
MACHINE_FEATURES += "accel-graphics accel-video wifi"
UBOOT_ENTRYPOINT = "0x94000000"
UBOOT_LOADADDRESS = "0x94000000"
SERIAL_CONSOLE = "38400 ttymxc1" SERIAL_CONSOLE = "38400 ttymxc1"
# Firmware
MACHINE_FIRMWARE = "firmware-imx-vpu-imx51 firmware-imx-sdma-imx51"
MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-mma7455l \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-scc2-driver \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-sahara \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-mt9v111-camera \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-pmic-battery \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-redpine \"
module_autoload_mma7455l = "mma7455l"
module_autoload_scc2_driver = "scc2_driver"
module_autoload_sahara = "sahara"
module_autoload_mt9v111_camera = "mt9v111_camera"
module_autoload_pmic_battery = "pmic_battery"

View File

@ -2,28 +2,7 @@
#@NAME: ConnectCore for MX53 JumpStart Kit. #@NAME: ConnectCore for MX53 JumpStart Kit.
#@DESCRIPTION: Machine configuration for Digi's ConnectCore for MX53 JSK. #@DESCRIPTION: Machine configuration for Digi's ConnectCore for MX53 JSK.
include conf/machine/include/imx-digi-base.inc # Contains the ConnectCore for MX53 module.
include conf/machine/include/ccimx53.inc
SOC_FAMILY = "mx53:mx5"
MACHINE_FEATURES += "accel-graphics accel-video wifi"
UBOOT_ENTRYPOINT = "0x70800000"
UBOOT_LOADADDRESS = "0x70800000"
SERIAL_CONSOLE = "115200 ttymxc0" SERIAL_CONSOLE = "115200 ttymxc0"
# Firmware
MACHINE_FIRMWARE = "firmware-imx-vpu-imx53 firmware-imx-sdma-imx53"
MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-mma7455l \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-scc2-driver \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-sahara \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-mt9v111-camera \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-redpine \"
module_autoload_mma7455l = "mma7455l"
module_autoload_scc2_driver = "scc2_driver"
module_autoload_sahara = "sahara"
module_autoload_mt9v111_camera = "mt9v111_camera"

View File

@ -0,0 +1,51 @@
#@TYPE: Machine
#@NAME: ConnectCore for MX28 module.
#@DESCRIPTION: Machine configuration for Digi's ConnectCore for MX28 module.
include conf/machine/include/mxs-digi-base.inc
SOC_FAMILY = "mxs"
UBOOT_ENTRYPOINT = "0x41008000"
UBOOT_LOADADDRESS = "0x41008000"
# Set UBOOT_CONFIG_VARIANT in local.conf accordingly, default is empty: 261MHz,360MHz,test,dbg
UBOOT_CONFIG_VARIANT ?= ""
UBOOT_MACHINE = '${MACHINE}${@base_conditional( "UBOOT_CONFIG_VARIANT", "", "_", "_${UBOOT_CONFIG_VARIANT}_", d )}config'
UBOOT_MAKE_TARGET = "u-boot-ivt.sb"
UBOOT_SUFFIX = "sb"
UBOOT_IMAGE = 'u-boot-${MACHINE}${@base_conditional( "UBOOT_CONFIG_VARIANT", "", "-", "-${UBOOT_CONFIG_VARIANT}-", d )}ivt-${PV}-${PR}.${UBOOT_SUFFIX}'
UBOOT_BINARY = "u-boot-ivt.${UBOOT_SUFFIX}"
UBOOT_SYMLINK = 'u-boot-${MACHINE}${@base_conditional( "UBOOT_CONFIG_VARIANT", "", "-", "-${UBOOT_CONFIG_VARIANT}-", d )}ivt.${UBOOT_SUFFIX}'
# wpa_supplicant driver to use in '/etc/network/interfaces'
WPA_DRIVER = "nl80211"
# Firmware
MACHINE_FIRMWARE = "firmware-mxs-ar3k"
MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}"
MACHINE_FEATURES += "alsa touchscreen"
# Supported variants
# Name WiFi Eth2 BT 1wire
# ---- --- --- --- -----
# web1 Y Y Y Y
# web Y Y Y N
# wb Y N Y N
# w Y N N N
# - N N N N
# e N Y N N
# Variant configuration
MACHINE_FEATURES_web1 += "wifi ext-eth bluetooth 1-wire"
MACHINE_FEATURES_web += "wifi ext-eth bluetooth"
MACHINE_FEATURES_wb += "wifi bluetooth"
MACHINE_FEATURES_w += "wifi"
MACHINE_FEATURES_e += "ext-eth"
# Variants for different CPU speed
#UBOOT_CONFIG_VARIANT = "261MHz"
#UBOOT_CONFIG_VARIANT = "360MHz"

View File

@ -0,0 +1,60 @@
#@TYPE: Machine
#@NAME: ConnectCore for MX51 module.
#@DESCRIPTION: Machine configuration for Digi's ConnectCore for MX51 module.
include conf/machine/include/imx-digi-base.inc
SOC_FAMILY = "mx51:mx5"
UBOOT_ENTRYPOINT = "0x94000000"
UBOOT_LOADADDRESS = "0x94000000"
# Firmware
MACHINE_FIRMWARE = "firmware-imx-vpu-imx51 firmware-imx-sdma-imx51"
MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-mma7455l \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-smsc911x \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-scc2-driver \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-sahara \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-mt9v111-camera \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-pmic-battery \"
module_autoload_mma7455l = "mma7455l"
module_autoload_smsc911x = "smsc911x"
module_autoload_scc2_driver = "scc2_driver"
module_autoload_sahara = "sahara"
module_autoload_mt9v111_camera = "mt9v111_camera"
module_autoload_pmic_battery = "pmic_battery"
# Supported variants
# Name WiFi Eth2 RAM Accel GPU VPU
# ---- --- --- --- ---- --- ---
# wagv Y N 256 Y Y Y
# weagv Y Y 512 Y Y Y
# w128agv Y N 128 Y Y Y
# eavg N Y 512 Y Y Y
# agv N N 256 Y Y Y
# w Y N 512 N N N
# 128 N N 128 N N N
# 128avg N N 128 Y Y Y
# 128a N N 128 Y N N
# w128a Y N 128 Y N N
MACHINE_FEATURES_wagv += "wifi accelerometer accel-video accel-graphics"
MACHINE_FEATURES_weagv += "wifi ext-eth accelerometer accel-video accel-graphics"
UBOOT_CONFIG_VARIANT_weagv = "ext_eth"
MACHINE_FEATURES_w128agv += "wifi accelerometer accel-video accel-graphics"
UBOOT_CONFIG_VARIANT_w128agv = "128sdram"
MACHINE_FEATURES_eavg += "ext-eth accelerometer accel-video accel-graphics"
MACHINE_FEATURES_agv += "accelerometer accel-video accel-graphics"
MACHINE_FEATURES_w += "wifi"
UBOOT_CONFIG_VARIANT_128 = "128sdram"
MACHINE_FEATURES_128avg += "accelerometer accel-video accel-graphics"
UBOOT_CONFIG_VARIANT_128avg = "128sdram"
MACHINE_FEATURES_128a += "accelerometer"
UBOOT_CONFIG_VARIANT_128a = "128sdram"
MACHINE_FEATURES_w128a += "wifi accelerometer"
UBOOT_CONFIG_VARIANT_w128a = "128sdram"

View File

@ -0,0 +1,57 @@
#@TYPE: Machine
#@NAME: ConnectCore for MX53 module.
#@DESCRIPTION: Machine configuration for Digi's ConnectCore for MX53 module.
include conf/machine/include/imx-digi-base.inc
SOC_FAMILY = "mx53:mx5"
UBOOT_ENTRYPOINT = "0x70800000"
UBOOT_LOADADDRESS = "0x70800000"
# Firmware
MACHINE_FIRMWARE = "firmware-imx-vpu-imx53 firmware-imx-sdma-imx53"
MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-mma7455l \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-smsc911x \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-scc2-driver \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-sahara \"
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-mt9v111-camera \"
module_autoload_mma7455l = "mma7455l"
module_autoload_smsc911x = "smsc911x"
module_autoload_scc2_driver = "scc2_driver"
module_autoload_sahara = "sahara"
module_autoload_mt9v111_camera = "mt9v111_camera"
# Supported variants
# Name WiFi Eth2 RAM NAND
# ---- --- --- --- ----
# we Y Y 512 512
# w Y N 512 512
# w128 Y N 128 128
# - N N 512 512
# e N Y 1024 512
# 4k N N 512 1024
# e N Y 512 1024
# 128 N N 128 128
# All variants support
MACHINE_FEATURES += "accel-video"
MACHINE_FEATURES += "accel-graphics"
MACHINE_FEATURES += "accelerometer"
# Variant configuration
MACHINE_FEATURES_we += "wifi ext-eth"
UBOOT_CONFIG_VARIANT_we = "ext_eth"
MACHINE_FEATURES_w += "wifi"
MACHINE_FEATURES_w128 += "wifi"
UBOOT_CONFIG_VARIANT_w128 = "128sdram"
MACHINE_FEATURES_e += "ext-ext"
UBOOT_CONFIG_VARIANT_e = "ext_eth"
UBOOT_CONFIG_VARIANT_4k = "4Kpage"
MACHINE_FEATURES_e += "ext-eth"
UBOOT_CONFIG_VARIANT_e = "ext_eth"
UBOOT_CONFIG_VARIANT_128 = "128sdram"

View File

@ -14,3 +14,7 @@ IMAGE_CLASSES = "image_types_digi"
# Do not enable console on VT (see sysvinit-inittab recipe) # Do not enable console on VT (see sysvinit-inittab recipe)
USE_VT = "0" USE_VT = "0"
# Add the machine variant to the valid machine override
MACHINEOVERRIDES =. "${@['', '${MACHINE_VARIANT}:']['${MACHINE_VARIANT}' != '']}"
MACHINE_VARIANT ?= ""

View File

@ -24,4 +24,4 @@ IMAGE_FSTYPES ?= "sum.jffs2 tar.bz2 ubifs"
KERNEL_IMAGETYPE = "uImage" KERNEL_IMAGETYPE = "uImage"
MACHINE_FEATURES = "apm usbgadget usbhost vfat bluetooth wifi" MACHINE_FEATURES = "apm usbgadget usbhost vfat"

View File

@ -0,0 +1 @@
CONFIG_W1_MASTER_DS2482=y

View File

@ -0,0 +1 @@
CONFIG_CCARDIMX28_ENET1=y

View File

@ -269,7 +269,6 @@ CONFIG_CCMX28_CAN1=y
# Ethernet Options # Ethernet Options
# #
# CONFIG_CCARDIMX28_ENET0_LEDS is not set # CONFIG_CCARDIMX28_ENET0_LEDS is not set
CONFIG_CCARDIMX28_ENET1=y
# CONFIG_CCARDIMX28_ENET1_LEDS is not set # CONFIG_CCARDIMX28_ENET1_LEDS is not set
# #
@ -1058,7 +1057,6 @@ CONFIG_W1=y
# 1-wire Bus Masters # 1-wire Bus Masters
# #
# CONFIG_W1_MASTER_DS2490 is not set # CONFIG_W1_MASTER_DS2490 is not set
CONFIG_W1_MASTER_DS2482=y
# CONFIG_W1_MASTER_DS1WM is not set # CONFIG_W1_MASTER_DS1WM is not set
# CONFIG_W1_MASTER_GPIO is not set # CONFIG_W1_MASTER_GPIO is not set

View File

@ -20,8 +20,12 @@ LOCALVERSION_mxs = "mxs+${SRCREV_SHORT}"
LOCALVERSION_cpx2_mxs = "mxs+gateways+${SRCREV_SHORT}" LOCALVERSION_cpx2_mxs = "mxs+gateways+${SRCREV_SHORT}"
KERNEL_CFG_FRAGS ?= "" KERNEL_CFG_FRAGS ?= ""
KERNEL_CFG_FRAGS_append_mx5 = " file://config-accel-module.cfg file://config-sahara-module.cfg file://config-camera-module.cfg" KERNEL_CFG_FRAGS_append_mx5 = "file://config-sahara-module.cfg file://config-camera-module.cfg"
KERNEL_CFG_FRAGS_append_mx5 = " ${@base_contains('MACHINE_FEATURES', 'accelerometer', 'file://config-accel-module.cfg', '', d)}"
KERNEL_CFG_FRAGS_append_mx5 = " ${@base_contains('MACHINE_FEATURES', 'ext-eth', 'file://config-ext-eth-module.cfg', '', d)}"
KERNEL_CFG_FRAGS_append_ccimx51js = " file://config-battery-module.cfg" KERNEL_CFG_FRAGS_append_ccimx51js = " file://config-battery-module.cfg"
KERNEL_CFG_FRAGS_append_ccardimx28js = " ${@base_contains('MACHINE_FEATURES', '1-wire', 'file://config-1-wire.cfg', '', d)}"
KERNEL_CFG_FRAGS_append_ccardimx28js = " ${@base_contains('MACHINE_FEATURES', 'ext-eth', 'file://config-ext-eth.cfg', '', d)}"
KERNEL_CFG_FRAGS_append_ccardimx28js = " ${@base_contains('DISTRO_FEATURES', 'x11', 'file://config-fb.cfg file://config-touch.cfg', '', d)}" KERNEL_CFG_FRAGS_append_ccardimx28js = " ${@base_contains('DISTRO_FEATURES', 'x11', 'file://config-fb.cfg file://config-touch.cfg', '', d)}"
KERNEL_CFG_FRAGS_append_ccardimx28js = " ${@base_contains('MACHINE_FEATURES', 'alsa', 'file://config-sound.cfg', '', d)}" KERNEL_CFG_FRAGS_append_ccardimx28js = " ${@base_contains('MACHINE_FEATURES', 'alsa', 'file://config-sound.cfg', '', d)}"

View File

@ -41,5 +41,7 @@ RDEPENDS_${PN} = "\
${VIRTUAL-RUNTIME_ntp-client} \ ${VIRTUAL-RUNTIME_ntp-client} \
${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}"
RDEPENDS_${PN}_append_mx5 = " ${@base_contains('MACHINE_FEATURES', 'ext-eth', 'kernel-module-smsc911x', '', d)}"
RRECOMMENDS_${PN} = "\ RRECOMMENDS_${PN} = "\
${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}"

View File

@ -16,11 +16,16 @@ inherit packagegroup
MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "" MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
WIRELESS_MODULE ?= ""
WIRELESS_MODULE_append_mx5 = "${@base_contains('MACHINE_FEATURES', 'wifi', 'kernel-module-redpine', '', d)}"
WIRELESS_MODULE_append_mxs = "${@base_contains('MACHINE_FEATURES', 'wifi', 'kernel-module-atheros', '', d)}"
RDEPENDS_${PN} = "\ RDEPENDS_${PN} = "\
wpa-supplicant \ wpa-supplicant \
wireless-tools \ wireless-tools \
crda \ crda \
iw \ iw \
${WIRELESS_MODULE} \
${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}"
RDEPENDS_${PN}_append_ccimx51js = "kernel-module-redpine" RDEPENDS_${PN}_append_ccimx51js = "kernel-module-redpine"

View File

@ -20,7 +20,7 @@ pkg_postinst_${PN} () {
cat << EOF > $D${sysconfdir}/network/interfaces cat << EOF > $D${sysconfdir}/network/interfaces
EOF EOF
cat $D/boot/config* | /bin/grep CONFIG_BLK_DEV_LOOP=y cat $D/boot/config* | /bin/grep CONFIG_BLK_DEV_LOOP=
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
cat << EOF >> $D${sysconfdir}/network/interfaces cat << EOF >> $D${sysconfdir}/network/interfaces
# The loopback interface # The loopback interface
@ -29,7 +29,7 @@ iface lo inet loopback
EOF EOF
fi fi
cat $D/boot/config* | /bin/grep CONFIG_FEC=y cat $D/boot/config* | /bin/grep CONFIG_FEC=
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
# Primary wired interface # Primary wired interface
cat << EOF >> $D${sysconfdir}/network/interfaces cat << EOF >> $D${sysconfdir}/network/interfaces
@ -45,8 +45,24 @@ iface eth0 inet static
EOF EOF
fi fi
# Secondary wired interface # Secondary wired interface on MXC platforms
cat $D/boot/config* | /bin/grep CONFIG_SMSC911X=y cat $D/boot/config* | /bin/grep CONFIG_SMSC911X=
if [ $? -eq 0 ]; then
cat << EOF >> $D${sysconfdir}/network/interfaces
auto eth1
# Use for dhcp
# iface eth1 inet dhcp
iface eth1 inet static
address 192.168.44.30
netmask 255.255.255.0
network 192.168.44.0
gateway 192.168.44.1
EOF
fi
# Secondary wired interface on MXS platforms
cat $D/boot/config* | /bin/grep CONFIG_CCARDIMX28_ENET1=
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
cat << EOF >> $D${sysconfdir}/network/interfaces cat << EOF >> $D${sysconfdir}/network/interfaces
auto eth1 auto eth1
@ -62,7 +78,7 @@ EOF
fi fi
# Wireless interface # Wireless interface
cat $D/boot/config* | /bin/grep CONFIG_WIRELESS=y cat $D/boot/config* | /bin/grep CONFIG_WIRELESS=
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
cat << EOF >> $D${sysconfdir}/network/interfaces cat << EOF >> $D${sysconfdir}/network/interfaces
auto wlan0 auto wlan0

View File

@ -28,7 +28,7 @@ RDEPENDS_${PN}_append_mxs = "\
" "
RDEPENDS_${PN}_append_mx5 = "\ RDEPENDS_${PN}_append_mx5 = "\
del-examples-accelerometer \ ${@base_contains("MACHINE_FEATURES", "accelerometer", "del-examples-accelerometer", "", d)} \
${@base_contains("MACHINE_FEATURES", "accel-graphics", "del-examples-opengles", "", d)} \ ${@base_contains("MACHINE_FEATURES", "accel-graphics", "del-examples-opengles", "", d)} \
del-examples-sahara \ del-examples-sahara \
del-examples-v4l2 \ del-examples-v4l2 \