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.
#@DESCRIPTION: Machine configuration for Digi's ConnectCore for MX28 JSK.
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}'
include conf/machine/include/ccardimx28.inc
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.
#@DESCRIPTION: Machine configuration for Digi's ConnectCore for MX51 JSK
include conf/machine/include/imx-digi-base.inc
SOC_FAMILY = "mx51:mx5"
MACHINE_FEATURES += "accel-graphics accel-video wifi"
UBOOT_ENTRYPOINT = "0x94000000"
UBOOT_LOADADDRESS = "0x94000000"
include conf/machine/include/ccimx51.inc
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.
#@DESCRIPTION: Machine configuration for Digi's ConnectCore for MX53 JSK.
include conf/machine/include/imx-digi-base.inc
SOC_FAMILY = "mx53:mx5"
MACHINE_FEATURES += "accel-graphics accel-video wifi"
UBOOT_ENTRYPOINT = "0x70800000"
UBOOT_LOADADDRESS = "0x70800000"
# Contains the ConnectCore for MX53 module.
include conf/machine/include/ccimx53.inc
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)
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"
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
#
# CONFIG_CCARDIMX28_ENET0_LEDS is not set
CONFIG_CCARDIMX28_ENET1=y
# CONFIG_CCARDIMX28_ENET1_LEDS is not set
#
@ -1058,7 +1057,6 @@ CONFIG_W1=y
# 1-wire Bus Masters
#
# CONFIG_W1_MASTER_DS2490 is not set
CONFIG_W1_MASTER_DS2482=y
# CONFIG_W1_MASTER_DS1WM 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}"
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_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('MACHINE_FEATURES', 'alsa', 'file://config-sound.cfg', '', d)}"

View File

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

View File

@ -16,11 +16,16 @@ inherit packagegroup
MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
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} = "\
wpa-supplicant \
wireless-tools \
crda \
iw \
${WIRELESS_MODULE} \
${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}"
RDEPENDS_${PN}_append_ccimx51js = "kernel-module-redpine"

View File

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

View File

@ -28,7 +28,7 @@ RDEPENDS_${PN}_append_mxs = "\
"
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)} \
del-examples-sahara \
del-examples-v4l2 \