Dies ist eine alte Version des Dokuments!
The cb20
machine provides a platform for our Controller Board with Colibri Module hardware using a real time kernel.
Note that the cb20
machine requires the meta-ost-toradex
layer that is part of meta-ost.
Follow the Setup and Building guide to set up the build environment and change the machine definition in local.conf
MACHINE = "cb20"
Prebuilt images can be obtained from our Linux Images page.
The cb20 board incorporates an FPGA which is connected through the EIM bus instead of two SRAM modules. We use flink to access the FPGA. The weim
node was changed to reflect this hardware change. The relevant part is listed here:
&weim { status = "okay"; fsl,weim-cs-gpr = <&gpr>; /* weim memory map: 32MB on CS0, CS1, CS2 and CS3 */ ranges = <0 0 0x08000000 0x02000000 1 0 0x0a000000 0x02000000 2 0 0x0c000000 0x02000000 3 0 0x0e000000 0x02000000>; sram@0,0 { status = "disabled"; }; /* FPGA on CS0 */ fpga@0,0 { compatible = "ntb,flink_eim_driver"; reg = <0 0 0x00080000>; #address-cells = <1>; #size-cells = <1>; bank-width = <2>; fsl,weim-cs-timing = <0x07710081 0x00000100 0x04000000 0x00000000 0x04000040 0x00000000>; }; };
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
).
Our device tree has the following changes:
The current device tree for the iMX6 on the CB20 board can be found on https://github.com/ntb-ch/linux/tree/cb20.
Use the Toradex Easy Installer for our images.
To be done