#@TYPE: Machine
#@Name: Compulab cm-x270
#@DESCRIPTION: Machine configuration for Compulab cm-x270 computer module
#OLDEST_KERNEL = "2.6.16"
TARGET_ARCH = "arm"
GUI_MACHINE_CLASS ?= "bigscreen"

PREFERRED_PROVIDER_virtual/kernel = "linux"
PREFERRED_VERSION_linux ?= "2.6.23"

PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5te iwmmxt"

require conf/machine/include/tune-xscale.inc

# Console serial port. 
# If you have a W module, add the following line to your local.conf:
# the following line to your local.conf:
CMX270_CONSOLE_SERIAL_PORT ?= "ttyS0"
# the following is for the cm-x270 L module
#CMX270_CONSOLE_SERIAL_PORT ?= "ttyS1"

# NAND flash eraseblock size
# most of the older cm-x270 modules are populated with NAND flash
# that have 128KiB eraseblocks.  Recently, a user encounted
# a device that has 16KiB eraseblocks.  The following define
# can be overridden in local.conf if you have one of these devices.
CMX270_NAND_ERASEBLOCK_SIZE ?= "0x20000"


# used by sysvinit_2 package, so rebuild this
# package if you change the SERIAL_CONSOLE setting
# the following is the port for the cm-x270 L module
# I think the W module would use ttyS0, but has
# not been tested.  This can be overwritten in 
# local.conf
SERIAL_CONSOLE ?= "38400 ${CMX270_CONSOLE_SERIAL_PORT}"

# used by opie-collections.inc
ROOT_FLASH_SIZE ?= "32"

# for NAND flash.
EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=${CMX270_NAND_ERASEBLOCK_SIZE} --pad --no-cleanmarkers;\
	sumtool -i ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
	-o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs-summary.jffs2 \
	-e ${CMX270_NAND_ERASEBLOCK_SIZE} -p; \
	cd ${DEPLOY_DIR_IMAGE}; \
	rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.rootfs-summary.jffs2; \
	ln -s ${IMAGE_NAME}.rootfs-summary.jffs2 ${IMAGE_LINK_NAME}.rootfs-summary.jffs2 \
	"

MACHINE_FEATURES = "kernel26 pcmcia usbhost usbgadget pcmcia alsa iwmmxt"

# to program the compulab NAND flash, the following scheme is suggested.  Create
# a small rootfs that can fit in NOR flash using the following config:
#   - Angstrom distro
#   - uclibc (set ANGSTROM_MODE = "uclibc" in local.conf)
#   - angstrom-minimal-image-with-mtd-utils bitbake target
#   - put the following in your local.conf
#     - IMAGE_FSTYPES = "jffs2 tar cpio.gz"
# now, when you build the image, a cpio.gz will be generated
# that can be used as an initramfs.  You can boot into this image and then
# program the main rootfs jffs2 image in NAND flash using mtd-utils
# you can select booting the initramfs, or the main nand rootfs by using
# the "ramdisk on", or "ramdisk off" commands in the bootloader
#


