======= CB20 ======
The ''cb20'' machine provides a platform for our [[embedded_systems:imx6:cb|Controller Board with Colibri Module]] hardware using a real time kernel.
===== Building Images =====
Note that the ''cb20'' machine requires the ''meta-ost-toradex'' layer that is part of [[meta-ost]].
Follow the [[software:linux:yocto:setup|Setup and Building]] guide to set up the build environment. Fetch board and processor specific repositories:
* meta-freescale, github.com/Freescale/meta-freescale.git, branch dunfell
* meta-freescale-3rdparty, github.com/Freescale/meta-freescale-3rdparty.git, branch dunfell
* meta-toradex-bsp-common, git.toradex.com/meta-toradex-bsp-common.git, branch dunfell-5.x.y
* meta-toradex-nxp, git.toradex.com/meta-toradex-nxp.git, branch dunfell-5.x.y
Next, add the layers to ''bblayers.conf''
BBLAYERS ?= " \
/home/ubuntu/yocto/poky/meta \
/home/ubuntu/yocto/poky/meta-poky \
/home/ubuntu/yocto/poky/meta-yocto-bsp \
\
/home/ubuntu/yocto/meta-openembedded/meta-oe \
/home/ubuntu/yocto/meta-ost/meta-ost \
/home/ubuntu/yocto/meta-ost/meta-ost-toradex \
/home/ubuntu/yocto/meta-toradex-nxp \
/home/ubuntu/yocto/meta-toradex-bsp-common \
/home/ubuntu/yocto/meta-freescale \
/home/ubuntu/yocto/meta-freescale-3rdparty \
"
and change the machine definition in ''local.conf''
MACHINE = "cb20"
Prebuilt images can be obtained from our Linux Images page.
==== EIM Driver and Device Tree ====
The cb20 board incorporates an FPGA which is connected through the EIM bus instead of two SRAM modules. We use [[https://flink-project.ch/|flink]] to access the FPGA. The relevant part can be found unter the ''weim'' node in [[https://gitlab.ost.ch/tech/inf/public/yocto/meta-ost/-/blob/main/meta-ost-toradex/recipes-kernel/linux/linux-toradex/git/arch/arm/boot/dts/imx6dl-colibri-cb20.dts|imx6dl-colibri-cb20.dts]]:
The //ranges// property determines the memory areas for 3 chip selects. The size of each region is 32 MB. CS0 starts at 0x08000000 and is used for the FPGA. Only 512 KB are used for the FPGA because the address width is 16 bit. The kernel module maps the amount of memory which is in the //reg// property of the //fpga// node.
The property ''fsl,weim-cs-timing'' sets 6 configuration registers of the EIM bus (EIM_CS0GCR1, EIM_CS0GCR2, EIM_CS0RCR1, EIM_CS0RCR2, EIM_CS0WCR1 and EIM_CS0WCR2).
The //compatible// string determines which driver is loaded, in our case it's the //flink_eim.ko// kernel module (''ntb,flink_eim_driver'').
Another change in our device tree is on ''iomux'': some gpios are removed due to conflicts with flexcan and eim.
===== Getting Images =====
Prebuilt images can be obtained from our [[software:linux:images:start|Linux Images]] page. Extract it and flash it onto a SD card or USB stick (see next chapter).
===== Installing Images =====
Use the [[..:toradex:toradex-easy-installer | Toradex Easy Installer]] to load new images.
Updating the bootloader / recovery mode
* https://developer.toradex.com/knowledge-base/flashing-linux-on-imx6-modules
* https://developer.toradex.com/knowledge-base/imx-recovery-mode#3-colibri-imx6
===== Accessing the Board =====
The login shell can be accessed through UART-A.
* On the Colibri Evaluation board: use a null modem cable. The communication settings are: 115200 8N1.
* On our [[embedded_systems:imx6:cb|Controller Board (cb20)]]: you need a special USB/TTL-Serial-UART converter cable. The connector on the board is a 6-pin SIL connector, e.g. [[http://ch.farnell.com/ftdi/ttl-232r-3v3/kabel-usb-ttl-pegel-seriell-umsetzung/dp/1329311]].
==== User ====
| user | ost |
| pw | ost |
The ''root'' user is also available over ssh in development images (such as ''ost-devel'' image).
==== IP-Address ====
| IP | ? |
==== Using WLAN ====
See [[software:linux:toradex:wifi|WiFi on iMX6]] for further information.
===== Developing for the Board =====
See [[software:linux:yocto:sdks|SDKs]] and specifically [[software:linux:yocto:sdk|SDK]].