Digilent Embedded Linux User Manual
Page 14

Using Zynq with Linux
www.digilentinc.com
page 14 of 23
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Section IV: Linux Kernel Configuration
The Linux kernel provides thousands of configurations to allow users to tailor kernel features based
on their specific needs. Kernel configuration can be very tedious, so we recommend you begin with
the default configuration as a baseline and start adding more features if you need them.
Configure the Linux Kernel
You can find the default configuration for your Digilent board at arch/arm/configs in the kernel
source under the name digilent_
for ZedBoard). You can import the default board configuration by running command:
$ make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- digilent_
The kernel configuration system has several different targets. You can show these configuration
targets by typing $make help under the root folder of kernel source. Example 16 demonstrates the
most common configuration targets.
Example 16.
Refer to kconfig.txt and kconfig-language.txt under the Documentation/kbuild folder
for more information concerning the kernel configuration subsystem.
Kernel Arguments
Some of the configurations can be passed to kernel at boot time, like the default serial port for early
printk, the root file system, etc. The default kernel booting arguments can be set in the kernel
configuration menu at Boot Options -> Default kernel command string
(CONFIG_CMDLINE). However, the bootargs property under node chosen in the device tree can
overwrite the default kernel booting arguments. (See Example 17.)
Example 17.
We abstracted the boot arguments in Example17 from the ZedBoard device tree. These boot
arguments show that the default console is set to ttyPS0 which is the UART0 of the Zynq PS system
and the root device is set to a ramdisk with read and write privileges, located at 0x800000 with a
size of 8M. Early Printk is allowed and the root file system (i.e. the initial ramdisk image) is ext4.
chosen {
bootargs = "console=ttyPS0,115200 root=/dev/ram rw initrd=0x800000,8M earlyprintk
rootfstype=ext4 rootwait devtmpfs.mount=1";
linux,stdout-path = "/axi@0/uart@E0001000";
};
Configuration targets:
config - Update current config utilising a line-oriented program
nconfig - Update current config utilising a ncurses menu based program
menuconfig - Update current config utilising a menu based program
xconfig
- Update current config utilising a QT based front-end
gconfig
- Update current config utilising a GTK based front-end
oldconfig - Update current config utilising a provided .config as base
defconfig - New config with default from ARCH supplied defconfig