Mainline Linux refers to the Linux sources provided by kernel.org
. This page gives a brief overview over the differences between the Xilinx and kernel.org Linux sources and how to run Mainline Linux on Zynq platforms. The mainline sources can be downloaded form kernel.org in various different formats.
Table of Contents
Xilinx vs kernel.org
Drivers & Features
The Xilinx Linux tree is based on the mainlne sources. While development in mainline may be ahead of what is available in the Xilinx tree, Xilinx-specific features may only be available in the Xilinx tree. An overview of Xilinx-specific Linux features and drivers and their availability in mainline can be found here
. Another way to get an idea of supported features in mainline Linux is to take a look at the Zynq dts file
The device trees in mainline use a hierarchichal approach. The common part of Zynq is described in zynq-7000.dtsi
. This file is included by board-level dts files (e.g. zynq-zc706.dts
), which describe the board-specific parameters. Supporting a new Zynq platform should be as easy as adding a new board-level dts file.
There is no Zynq-specific defconfig available in mainline. Instead the multi_v7_defconfig
is used. This config is the default configuration for the ARM multi-platform kernel
and gives a working base line for Zynq platforms.
Build Mainline Linux
This is just a really short quick start guide. All general instructions for building a Linux kernel
apply, this is not special by any means.
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
$ cd linux
$ make multi_v7_defconfig
$ make UIMAGE_LOADADDR=0x8000 uImage modules dtbs