Compare commits

..

6 Commits

Author SHA1 Message Date
Peter Korsgaard
1264adda0e Update for 2012.11.1
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-01-03 21:43:39 +01:00
Mikhail Boiko
d4700be53e dosfstools: fix download link
Signed-off-by: Mikhail Boiko <mikhailboiko85@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-12-31 16:56:10 +01:00
Frank Hunleth
8d73aa4e51 qt: fix qconfig configure parameter
The Qt configure option for specifying a custom qconfig.h
file changed from -config to -qconfig. This makes the
corresponding change in qt.mk.

Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-12-31 16:54:59 +01:00
Chris Zankel
b95825e626 xtensa: add -mlongcalls to CFLAGS for xtensa
The longcalls option allows calls across a greater range of addresses.

This option may degrade both code size and performance, but
the linker can generally optimize away the unnecessary overhead
when a call ends up within range

Signed-off-by: Chris Zankel <chris@zankel.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-12-31 16:52:38 +01:00
Peter Korsgaard
4e3dd2f881 toolchain/gcc: also disable largefile for pass 1/2 if needed
Fixes issue with !BR2_LARGEFILE builds on Ubuntu 12.04 and GCC 4.6+

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-12-31 00:02:03 +01:00
Richard Braun
54d318a27f arch: fix BR2_ARCH for generic target variant
Signed-off-by: Richard Braun <rbraun@sceen.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-12-31 00:01:52 +01:00
847 changed files with 7622 additions and 14687 deletions

104
CHANGES
View File

@@ -1,107 +1,3 @@
2013.02-rc1, Released February 10th, 2013
Toolchain: Crosstool-ng 1.17.0, default to GCC 4.6.3, target
libraries install fixed. Add Linaro ARM
2012.11/2012.12/2013.01, AArch64 12.11/12.12/13.01. Sourcery
CodeBench MIPS 2012.03/09. Infrastructure to warn about
missing 32bit support for binary toolchains. Toolchain wrapper
is now relocatable. Add GDB 7.5.1 / Remove 6.8 / 7.0 /
7.1. Deprecate uClibc 0.9.31.
Architecture: Xtensa fixes, add missing powerpc variants, arm
1136jf-s rev1, add A5/A15, neon support toggle, OABI
deprecated. Sparc: drop old unused variants
Bootloaders: At91bootstap: fix upstream URL, Barebox: add
2012.12/2013.01/2013.02, remove 2012.08/09/10, lzop fixes,
environment image support, U-Boot: add 2013.01.01
Linux: fix appended dtb handling for v3.8+ kernels, support
multiple device trees
Defconfigs: calao USB-A9260, snowball, QEMU PPC440 on ML507
board, QEMU ARM Exynos4210, Kernel version in QEMU defconfigs
updated, at91rm9200df: misc fixes. Lock kernel headers to
match kernel.
Infrastructure: Git download fixes. Toolchain make target
renamed from 'cross' to 'toolchain'. Eclipse integration
support. Option to set root password, post image scripts,
config scripts handling.
Updated/fixed packages: alsa-lib, argp-standalone, argus,
arptables, atk, audiofile, axel, beecrypt, bind, bison,
bluez_utils, boost, cairo, can-utils, bmon, boa, busybox,
cairo, ccache, cdrkit, cifs-utils, cjson, cmake, collectd,
connman, coreutils, cpanminus, cups, dbus, dhcp, dialog,
diffutils, directfb, distcc, divine, dnsmasq, docker,
dosfstools, dstat, e2fsprogs, ebtables, ed, empty, ethtool,
expedite, fbset, fbv, ffmpeg, flex, fltk, fluxbox, freetype,
gadget-test, gawk, gdb, genext2fs, gettext, giblib,
glib-networking, gmp, gmpc, gnupg, gnutls, gpsd,
gst-plugins-{bad,base,good}, gstreamer, gzip, haserl, hdparm,
heirloom-mailx, hiawanta, hostapd, icu, imagemagick, imlib2,
inadyn, infozip, iproute2, ipset, iptables, iw, jpeg, jquery,
jquery-sparklines, jqeury-validation, kismet, kmod, lame,
libao, libcap, libcurl, libdvdnav, libdvdread, libecore,
libedbus, libedje, libeet, libefreet, libeina, libeio,
liberation, libelementary, libembryo, libethumb, libev,
libevas, libffi, libfribidi, libfuse, libgcrypt, libglib2,
libgpg-error, libgtk2, libhid, libidn, libmicrohttpd, libmpd,
libnl, libnspr, libnss, libogg, libpcap, libplayer, libpng,
libroxml, librsvg, libseccomp, libsigc, libsndfile, libungif,
libupnp, liburcu, libusb-compat, libvncserver, libvorbis,
libxml2, libxslt, lighttpd, links, linux-firmware,
linux-fusion, ltp-testsuite, ltrace,
lttng-{babel,libust,modules,tools}, lvm2, lua, luajit, lzop,
matchbox-{desktop,lib}, mdadm, metacity, midori, minicom, mpd,
mpfr, mplayer, mtd, mysql_client, ncurses, neon, netatalk,
networkmanager, nspr, ntfs-3g, nuttcp, ofone, olsr, openssl,
openvpn, opkg, oprofile, opus, opus-tools, orc, ortp, pango,
pciutils, pcmanfm, pcre, pcsc-lite, perl, php, pixman,
pkgconf, polarssl, pptp-linux, proxychains, pulseaudio,
python, python3, qemu, qextserialport, qt, quagga, radvd,
readline, rng-tools, rt-tests, rubix, ruby, sam-ba, samba,
sane-backends, sconeserver, scons, screen, sdl, sdl_gfx,
sdl_mixer, sdl_ttf, sdparm, sed, ser2net, smartmontools,
speex, sqlite, squid, sshfs, strace, sudo, sylpheed, tn5250,
taglib, tar, torsmo, transmission, tslib, uboot-tools, ulogd,
usb_modeswitch, util-linux, valgrind, vim, vsftpd, wavpack,
webkit, wipe, wireless_tools, wpa_supplicant, xapp_xinit,
xapp_xinput-calibrator, xapp_xman, xapp_xmh, xlib_libX11,
xlib_libXdmcp, xlib_libXft, xlib_libpthread-stubs,
xlib_xtrans, xproto_xcmiscproto, xproto_xextproto,
xserver_xorg-server, xstroke, xvkbd, xz
New packages: b43-firmware, b43-fwcutter, bustle,
cache-calibrator, cegui06, celt051, classpath, curlftpfs,
dvb-apps, dvbsnoop, elfutils, enlightenment, firmware-imx,
flashbench, gd, gesftpserver, gst-fsl-plugins, httping, iftop,
imx-lib, jamvm, jpeg-turbo, keyutils, libatasmart, libcofi,
libebml, libevas-generic-loaders, libfslcodec, libfslparser,
libfslvpuwrap, libgsasl, libiscsi, libmatroska, libmcrypt,
libmhash, libqwt, libseccomp, libsha1, linenoise, mcrypt,
media-ctl, ncdu, neard, neardal, nettle, perf, polkit,
proxychains, python-bottle, python-pyparsing, rpi-firmware,
rpi-userland, sg3_utils, slirp, snowball-hdmiservice, spice,
spice-protocol, tcllib, tvheadend, udisks, usbredir
ux500-firmware, vde2, xcb-utils-keysyms, yavta,
zd1211-firmware
Removed packages: customize, xdriver_xf86-input-{acecad,aiptek},
xdriver_xf86-video-{apm,chips,i740,rendition,s3,s3virge,sisusb},
xdriver_xf86-video-sun{cg14,cg3,cg6,ffb,leo,tcx},
xdriver_xf86-video-{tsend,xgi,xgixp}
Deprecated packages: xstroke
Issues resolved (http://bugs.uclibc.org):
#4237: building shared openssl w/-Os fails due to gcc bug
#5690: python3 does not obey to BR2_PACKAGE_PYTHON3_PYC_ONLY=y
#5602: python3 should install a "python" symbolic link
#5846: Extra slash added to last slash in URL
2012.11.1, Released January 3rd, 2013:
Toolchain: Fixed non-largefile builds on recent Ubuntu

View File

@@ -14,12 +14,6 @@ config BR2_HOSTARCH
string
option env="HOSTARCH"
# Hidden boolean selected by pre-built packages for x86, when they
# need to run on x86-64 machines (example: pre-built external
# toolchains, binary tools like SAM-BA, etc.).
config BR2_HOSTARCH_NEEDS_IA32_LIBS
bool
source "arch/Config.in"
menu "Build options"
@@ -95,18 +89,6 @@ config BR2_TAR_OPTIONS
endmenu
config BR2_DEFCONFIG_FROM_ENV
string
option env="BR2_DEFCONFIG"
config BR2_DEFCONFIG
string "Location to save buildroot config"
default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
default "$(CONFIG_DIR)/defconfig"
help
When running 'make savedefconfig', the defconfig file will be saved
in this location.
config BR2_DL_DIR
string "Download dir"
default "$(TOPDIR)/dl"

View File

@@ -29,57 +29,23 @@ config BR2_LEGACY
comment "Legacy detected: check the content of the menu below"
depends on BR2_LEGACY
menu "Legacy config options"
if BR2_LEGACY
comment "Your old configuration uses legacy options that no "
comment "longer exist in buildroot. "
comment "Please look at the options which have been selected "
comment "and read their help text. "
comment "As long as these options stay selected, the build "
comment "will fail. "
endif
# This option should get a new name with every buildroot release, so it defaults
# to y again for people who upgrade.
menuconfig BR2_LEGACY_CHECK_2012_11
bool "Check for legacy config options"
default y
help
Select this option to see the config options that are present in your
current .config but are no longer supported by buildroot. If any of
the options in this menu is selected, they should be replaced with
something else. As long as they stay selected, the build will fail.
Just de-select this option to automatically remove all the legacy
configuration.
if BR2_LEGACY_CHECK_2012_11
#
# Legacy options since 2012.11
#
config BR2_PACKAGE_CUSTOMIZE
bool "customize package has been removed"
select BR2_LEGACY
help
The 'customize' special package has been removed. Instead,
we recommend to create either your own packages, or use a
post-build script to customize your root filesystem. See
Buildroot's documentation for more details.
config BR2_PACKAGE_XSERVER_xorg
bool "X.org modular server"
select BR2_LEGACY
select BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
help
The option has been renamed
BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR.
config BR2_PACKAGE_XSERVER_tinyx
bool "KDrive / TinyX server"
select BR2_LEGACY
select BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE
help
The option has been renamed
BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE.
config BR2_PACKAGE_PTHREAD_STUBS
bool "pthread-stubs option has been renamed"
select BR2_LEGACY
select BR2_PACKAGE_XLIB_LIBPTHREAD_STUBS
help
For consistency reason, the pthread-stubs package has been
renamed to xlib_libpthread-stubs.
#
# Legacy options since 2012.08
# Legacy options from 2012.08
#
config BR2_PACKAGE_GETTEXT_STATIC
@@ -104,4 +70,4 @@ config BR2_PACKAGE_INPUT_TOOLS_EVTEST
help
The evtest program from input-tools is now a separate package.
endmenu
endif

View File

@@ -24,7 +24,7 @@
#--------------------------------------------------------------
# Set and export the version string
export BR2_VERSION:=2013.02-rc1
export BR2_VERSION:=2012.11.1
# Check for minimal make version (note: this check will break at make 10.x)
MIN_MAKE_VERSION=3.81
@@ -56,7 +56,7 @@ DATE:=$(shell date +%Y%m%d)
export BR2_VERSION_FULL:=$(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlocalversion)
noconfig_targets:=menuconfig nconfig gconfig xconfig config oldconfig randconfig \
%_defconfig allyesconfig allnoconfig silentoldconfig release \
defconfig %_defconfig savedefconfig allyesconfig allnoconfig silentoldconfig release \
randpackageconfig allyespackageconfig allnopackageconfig \
source-check print-version
@@ -91,11 +91,9 @@ EXTRAMAKEARGS = O=$(O)
NEED_WRAPPER=y
endif
BUILDROOT_CONFIG=$(CONFIG_DIR)/.config
# Pull in the user's configuration file
ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
-include $(BUILDROOT_CONFIG)
-include $(CONFIG_DIR)/.config
endif
# To put more focus on warnings, be less verbose as default
@@ -284,15 +282,6 @@ HOSTCC := $(CCACHE) $(HOSTCC)
HOSTCXX := $(CCACHE) $(HOSTCXX)
endif
# Scripts in support/ or post-build scripts may need to reference
# these locations, so export them so it is easier to use
export BUILDROOT_CONFIG
export TARGET_DIR
export STAGING_DIR
export HOST_DIR
export BINARIES_DIR
export BASE_DIR
#############################################################
#
# You should probably leave this stuff alone unless you know
@@ -333,7 +322,6 @@ include package/*/*.mk
include boot/common.mk
include linux/linux.mk
include system/system.mk
TARGETS+=target-finalize
@@ -347,14 +335,9 @@ TARGETS+=target-generatelocales
endif
endif
ifeq ($(BR2_ECLIPSE_REGISTER),y)
TARGETS+=toolchain-eclipse-register
endif
include system/system.mk
include fs/common.mk
TARGETS+=target-post-image
TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS) $(BASE_TARGETS))
TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
@@ -389,16 +372,14 @@ dirs: $(TOOLCHAIN_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
$(BASE_TARGETS): dirs $(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake
$(BUILD_DIR)/buildroot-config/auto.conf: $(BUILDROOT_CONFIG)
$(BUILD_DIR)/buildroot-config/auto.conf: $(CONFIG_DIR)/.config
$(MAKE) $(EXTRAMAKEARGS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTCXX="$(HOSTCXX_NOCCACHE)" silentoldconfig
prepare: $(BUILD_DIR)/buildroot-config/auto.conf
toolchain: prepare dirs dependencies $(BASE_TARGETS)
world: prepare dirs dependencies $(BASE_TARGETS) $(TARGETS_ALL)
world: toolchain $(TARGETS_ALL)
.PHONY: all world toolchain dirs clean distclean source outputmakefile \
.PHONY: all world dirs clean distclean source outputmakefile \
legal-info legal-info-prepare legal-info-clean \
$(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \
$(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) $(TARGETS_LEGAL_INFO) \
@@ -503,14 +484,6 @@ endif
echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \
) > $(TARGET_DIR)/etc/os-release
@for dir in $(call qstrip,$(BR2_ROOTFS_OVERLAY)); do \
$(call MESSAGE,"Copying overlay $${dir}"); \
rsync -a \
--exclude .empty --exclude .svn --exclude .git \
--exclude .hg --exclude '*~' \
$${dir}/ $(TARGET_DIR); \
done
ifneq ($(BR2_ROOTFS_POST_BUILD_SCRIPT),"")
@$(call MESSAGE,"Executing post-build script\(s\)")
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_BUILD_SCRIPT)), \
@@ -558,16 +531,6 @@ target-generatelocales: host-localedef
done
endif
target-post-image:
ifneq ($(BR2_ROOTFS_POST_IMAGE_SCRIPT),"")
@$(call MESSAGE,"Executing post-image script\(s\)")
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \
$(s) $(BINARIES_DIR)$(sep))
endif
toolchain-eclipse-register:
./support/scripts/eclipse-register-toolchain `readlink -f $(O)` $(notdir $(TARGET_CROSS)) $(BR2_ARCH)
source: dirs $(TARGETS_SOURCE) $(HOST_SOURCE)
external-deps:
@@ -583,7 +546,7 @@ legal-info-prepare: $(LEGAL_INFO_DIR)
@$(call legal-manifest,buildroot,$(BR2_VERSION_FULL),GPLv2+,COPYING,not saved)
@$(call legal-warning,the Buildroot source code has not been saved)
@$(call legal-warning,the toolchain has not been saved)
@cp $(BUILDROOT_CONFIG) $(LEGAL_INFO_DIR)/buildroot.config
@cp $(CONFIG_DIR)/.config $(LEGAL_INFO_DIR)/buildroot.config
legal-info: dirs legal-info-clean legal-info-prepare $(REDIST_SOURCES_DIR) \
$(TARGETS_LEGAL_INFO)
@@ -602,8 +565,6 @@ else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
all: menuconfig
endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
# configuration
# ---------------------------------------------------------------------------
@@ -614,16 +575,11 @@ $(BUILD_DIR)/buildroot-config/%onf:
mkdir -p $(@D)/lxdialog
$(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" obj=$(@D) -C $(CONFIG) -f Makefile.br $(@F)
DEFCONFIG = $(call qstrip,$(BR2_DEFCONFIG))
# We don't want to fully expand BR2_DEFCONFIG here, so Kconfig will
# recognize that if it's still at its default $(CONFIG_DIR)/defconfig
COMMON_CONFIG_ENV = \
BR2_DEFCONFIG='$(call qstrip,$(value BR2_DEFCONFIG))' \
KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \
BUILDROOT_CONFIG=$(BUILDROOT_CONFIG)
BUILDROOT_CONFIG=$(CONFIG_DIR)/.config
xconfig: $(BUILD_DIR)/buildroot-config/qconf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
@@ -663,7 +619,7 @@ allnoconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
randpackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
@grep -v BR2_PACKAGE_ $(BUILDROOT_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@grep -v BR2_PACKAGE_ $(CONFIG_DIR)/.config > $(CONFIG_DIR)/.config.nopkg
@grep '^config BR2_PACKAGE_' Config.in.legacy | \
while read config pkg; do \
echo "# $$pkg is not set" >> $(CONFIG_DIR)/.config.nopkg; done
@@ -674,7 +630,7 @@ randpackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
@grep -v BR2_PACKAGE_ $(BUILDROOT_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@grep -v BR2_PACKAGE_ $(CONFIG_DIR)/.config > $(CONFIG_DIR)/.config.nopkg
@grep '^config BR2_PACKAGE_' Config.in.legacy | \
while read config pkg; do \
echo "# $$pkg is not set" >> $(CONFIG_DIR)/.config.nopkg; done
@@ -685,7 +641,7 @@ allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
@grep -v BR2_PACKAGE_ $(BUILDROOT_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@grep -v BR2_PACKAGE_ $(CONFIG_DIR)/.config > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
$< --allnoconfig $(CONFIG_CONFIG_IN)
@@ -697,7 +653,7 @@ silentoldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(BR2_DEFCONFIG),=$(BR2_DEFCONFIG)) $(CONFIG_CONFIG_IN)
%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(TOPDIR)/configs/%_defconfig outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
@@ -705,15 +661,13 @@ defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
@$(COMMON_CONFIG_ENV) $< \
--savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \
$(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --savedefconfig=$(CONFIG_DIR)/defconfig $(CONFIG_CONFIG_IN)
# check if download URLs are outdated
source-check:
$(MAKE) DL_MODE=SOURCE_CHECK $(EXTRAMAKEARGS) source
.PHONY: defconfig savedefconfig
endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
#############################################################
#
@@ -741,7 +695,9 @@ endif
ifeq ($(O),output)
rm -rf $(O)
endif
rm -rf $(BUILDROOT_CONFIG) $(CONFIG_DIR)/.config.old $(CONFIG_DIR)/.auto.deps
rm -rf $(CONFIG_DIR)/.config $(CONFIG_DIR)/.config.old $(CONFIG_DIR)/.auto.deps
cross: $(BASE_TARGETS)
help:
@echo 'Cleaning:'
@@ -750,7 +706,6 @@ help:
@echo
@echo 'Build:'
@echo ' all - make world'
@echo ' toolchain - build toolchain'
@echo ' <package>-rebuild - force recompile <package>'
@echo ' <package>-reconfigure - force reconfigure <package>'
@echo

View File

@@ -1,11 +1,3 @@
# arm cpu features
config BR2_ARM_CPU_HAS_NEON
bool
# for some cores, NEON support is optional
config BR2_ARM_CPU_MAYBE_HAS_NEON
bool
choice
prompt "Target Architecture Variant"
depends on BR2_arm || BR2_armeb
@@ -31,26 +23,16 @@ config BR2_arm926t
bool "arm926t"
config BR2_arm10t
bool "arm10t"
config BR2_arm1136jf_s_r0
bool "arm1136jf_s rev0"
config BR2_arm1136jf_s_r1
bool "arm1136jf_s rev1"
config BR2_arm1136jf_s
bool "arm1136jf_s"
config BR2_arm1176jz_s
bool "arm1176jz-s"
config BR2_arm1176jzf_s
bool "arm1176jzf-s"
config BR2_cortex_a5
bool "cortex-A5"
select BR2_ARM_CPU_MAYBE_HAS_NEON
config BR2_cortex_a8
bool "cortex-A8"
select BR2_ARM_CPU_HAS_NEON
config BR2_cortex_a9
bool "cortex-A9"
select BR2_ARM_CPU_MAYBE_HAS_NEON
config BR2_cortex_a15
bool "cortex-A15"
select BR2_ARM_CPU_HAS_NEON
config BR2_sa110
bool "sa110"
config BR2_sa1100
@@ -61,14 +43,9 @@ config BR2_iwmmxt
bool "iwmmxt"
endchoice
config BR2_arm1136jf_s
bool
default BR2_arm1136jf_s_r0 || BR2_arm1136jf_s_r1
choice
prompt "Target ABI"
depends on BR2_arm || BR2_armeb
depends on BR2_DEPRECATED
default BR2_ARM_EABI
help
Application Binary Interface to use
@@ -76,26 +53,13 @@ choice
Note:
Using OABI is discouraged.
config BR2_ARM_EABI_CHOICE
config BR2_ARM_EABI
bool "EABI"
config BR2_ARM_OABI
bool "OABI"
depends on !BR2_GCC_VERSION_4_7_X
endchoice
config BR2_ARM_EABI
def_bool y
depends on !BR2_ARM_OABI
config BR2_ARM_ENABLE_NEON
bool "Enable NEON SIMD extension support"
depends on BR2_ARM_CPU_MAYBE_HAS_NEON
select BR2_ARM_CPU_HAS_NEON
help
For some CPU cores, the NEON SIMD extension is optional.
Select this option if you are certain your particular
implementation has NEON support and you want to use it.
config BR2_ARCH
default "arm" if BR2_arm
default "armeb" if BR2_armeb
@@ -119,10 +83,8 @@ config BR2_GCC_TARGET_TUNE
default "arm1136jf-s" if BR2_arm1136jf_s
default "arm1176jz-s" if BR2_arm1176jz_s
default "arm1176jzf-s" if BR2_arm1176jzf_s
default "cortex-a5" if BR2_cortex_a5
default "cortex-a8" if BR2_cortex_a8
default "cortex-a9" if BR2_cortex_a9
default "cortex-a15" if BR2_cortex_a15
default "strongarm110" if BR2_sa110
default "strongarm1100" if BR2_sa1100
default "xscale" if BR2_xscale
@@ -137,14 +99,11 @@ config BR2_GCC_TARGET_ARCH
default "armv4t" if BR2_arm922t
default "armv5te" if BR2_arm926t
default "armv5t" if BR2_arm10t
default "armv6j" if BR2_arm1136jf_s_r0
default "armv6k" if BR2_arm1136jf_s_r1
default "armv6j" if BR2_arm1136jf_s
default "armv6zk" if BR2_arm1176jz_s
default "armv6zk" if BR2_arm1176jzf_s
default "armv7-a" if BR2_cortex_a5
default "armv7-a" if BR2_cortex_a8
default "armv7-a" if BR2_cortex_a9
default "armv7-a" if BR2_cortex_a15
default "armv4" if BR2_sa110
default "armv4" if BR2_sa1100
default "armv5te" if BR2_xscale

View File

@@ -18,14 +18,6 @@ config BR2_powerpc_440
bool "440"
config BR2_powerpc_440fp
bool "440 with FPU"
config BR2_powerpc_464
bool "464"
config BR2_powerpc_464fp
bool "464 with FPU"
config BR2_powerpc_476
bool "476"
config BR2_powerpc_476fp
bool "476 with FPU"
config BR2_powerpc_505
bool "505"
config BR2_powerpc_601
@@ -52,6 +44,8 @@ config BR2_powerpc_7450
bool "7450"
config BR2_powerpc_750
bool "750"
config BR2_powerpc_801
bool "801"
config BR2_powerpc_821
bool "821"
config BR2_powerpc_823
@@ -101,10 +95,6 @@ config BR2_GCC_TARGET_TUNE
default "405fp" if BR2_powerpc_405fp
default "440" if BR2_powerpc_440
default "440fp" if BR2_powerpc_440fp
default "464" if BR2_powerpc_464
default "464fp" if BR2_powerpc_464fp
default "476" if BR2_powerpc_476
default "476fp" if BR2_powerpc_476fp
default "505" if BR2_powerpc_505
default "601" if BR2_powerpc_601
default "602" if BR2_powerpc_602
@@ -118,6 +108,7 @@ config BR2_GCC_TARGET_TUNE
default "7400" if BR2_powerpc_7400
default "7450" if BR2_powerpc_7450
default "750" if BR2_powerpc_750
default "801" if BR2_powerpc_801
default "821" if BR2_powerpc_821
default "823" if BR2_powerpc_823
default "860" if BR2_powerpc_860

View File

@@ -1,10 +1,14 @@
choice
prompt "Target Architecture Variant"
depends on BR2_sparc
default BR2_sparc_v8
default BR2_sparc_v7
help
Specific CPU variant to use
config BR2_sparc_v7
bool "v7"
config BR2_sparc_cypress
bool "cypress"
config BR2_sparc_v8
bool "v8"
config BR2_sparc_sparchfleon
@@ -15,6 +19,22 @@ config BR2_sparc_sparcsfleon
bool "sfleon"
config BR2_sparc_sparcsfleonv8
bool "sfleonv8"
config BR2_sparc_supersparc
bool "supersparc"
config BR2_sparc_sparclite
bool "sparclite"
config BR2_sparc_f930
bool "f930"
config BR2_sparc_f934
bool "f934"
config BR2_sparc_hypersparc
bool "hypersparc"
config BR2_sparc_sparclite86x
bool "sparclite86x"
config BR2_sparc_sparclet
bool "sparclet"
config BR2_sparc_tsc701
bool "tsc701"
endchoice
config BR2_ARCH
@@ -24,7 +44,17 @@ config BR2_ENDIAN
default "BIG"
config BR2_GCC_TARGET_TUNE
default "v7" if BR2_sparc_v7
default "cypress" if BR2_sparc_cypress
default "v8" if BR2_sparc_v8
default "supersparc" if BR2_sparc_supersparc
default "hypersparc" if BR2_sparc_hypersparc
default "sparclite" if BR2_sparc_sparclite
default "f930" if BR2_sparc_f930
default "f934" if BR2_sparc_f934
default "sparclite86x" if BR2_sparc_sparclite86x
default "sparclet" if BR2_sparc_sparclet
default "tsc701" if BR2_sparc_tsc701
default "v9" if BR2_sparc_v9
default "v9" if BR2_sparc_v9a
default "v9" if BR2_sparc_v9b

View File

@@ -1,45 +0,0 @@
From 3d1a9b44b9dcd2c0f5d54c09596c96c0524d8340 Mon Sep 17 00:00:00 2001
From: Gregory Hermant <gregory.hermant@calao-systems.com>
Date: Tue, 13 Nov 2012 11:47:41 +0100
Subject: [PATCH] trace-debug[stm]: Fix for BT/WLAN instability
Pins under mop500_ske_pins array are used for different
functionalities in snowball. Ex: GPIO161 pin configured
for keypad here must stay configured as GPIO alternate
function for operating PMU_EN pin of BT/WLAN chip in snowball.
So forbid configuring these pins, for snowball
Signed-off-by: Rajanikanth H.V <rajanikanth.hv@stericsson.com>
Signed-off-by: Gregory Hermant <gregory.hermant@calao-systems.com>
---
arch/arm/mach-ux500/board-mop500-stm.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-ux500/board-mop500-stm.c b/arch/arm/mach-ux500/board-mop500-stm.c
index 1bef2a0..532fb9e 100644
--- a/arch/arm/mach-ux500/board-mop500-stm.c
+++ b/arch/arm/mach-ux500/board-mop500-stm.c
@@ -121,7 +121,9 @@ static int stm_ste_disable_ape_on_mipi60(void)
if (retval)
STM_ERR("Failed to disable MIPI60\n");
else {
- retval = nmk_config_pins(ARRAY_AND_SIZE(mop500_ske_pins));
+ if (!machine_is_snowball())
+ retval = nmk_config_pins(
+ ARRAY_AND_SIZE(mop500_ske_pins));
if (retval)
STM_ERR("Failed to enable SKE gpio\n");
}
@@ -314,7 +316,8 @@ static int stm_ste_connection(enum stm_connection_type con_type)
/* Enable altC3 on GPIO70-74 (STMMOD) and GPIO75-76 (UARTMOD) */
prcmu_enable_stm_mod_uart();
/* Enable APE on MIPI60 */
- retval = nmk_config_pins_sleep(ARRAY_AND_SIZE(mop500_ske_pins));
+ if (!machine_is_snowball())
+ retval = nmk_config_pins_sleep(ARRAY_AND_SIZE(mop500_ske_pins));
if (retval)
STM_ERR("Failed to disable SKE GPIO\n");
else {
--
1.7.9.5

View File

@@ -1,603 +0,0 @@
From 43e8c90f13806405bde8eaaf3a956d0ddc806f64 Mon Sep 17 00:00:00 2001
From: Gregory Hermant <gregory.hermant@calao-systems.com>
Date: Tue, 2 Oct 2012 09:19:15 +0200
Subject: [PATCH] Add support for the USB-A9260
Signed-off-by: Gregory Hermant <gregory.hermant@calao-systems.com>
---
board/usb_a9260/nandflash/Makefile | 122 ++++++++++++++
board/usb_a9260/nandflash/usb-a9260.h | 109 ++++++++++++
board/usb_a9260/usb_a9260.c | 298 +++++++++++++++++++++++++++++++++
crt0_gnu.S | 7 +
include/part.h | 6 +-
5 files changed, 541 insertions(+), 1 deletion(-)
create mode 100644 board/usb_a9260/nandflash/Makefile
create mode 100644 board/usb_a9260/nandflash/usb-a9260.h
create mode 100644 board/usb_a9260/usb_a9260.c
diff --git a/board/usb_a9260/nandflash/Makefile b/board/usb_a9260/nandflash/Makefile
new file mode 100644
index 0000000..02f4b50
--- /dev/null
+++ b/board/usb_a9260/nandflash/Makefile
@@ -0,0 +1,122 @@
+# TODO: set this appropriately for your local toolchain
+ifndef ERASE_FCT
+ERASE_FCT=rm -f
+endif
+ifndef CROSS_COMPILE
+CROSS_COMPILE=arm-elf-
+endif
+
+TOOLCHAIN=gcc
+
+BOOTSTRAP_PATH=../../..
+
+# NandFlashBoot Configuration for USB-A9260
+
+# Target name (case sensitive!!!)
+TARGET=AT91SAM9260
+# Board name (case sensitive!!!)
+BOARD=usb_a9260
+# Link Address and Top_of_Memory
+LINK_ADDR=0x200000
+TOP_OF_MEMORY=0x301000
+# Name of current directory
+PROJECT=nandflash
+
+ifndef BOOT_NAME
+BOOT_NAME=$(PROJECT)_$(BOARD)
+endif
+
+INCL=./$(BOOTSTRAP_PATH)/board/$(BOARD)/$(PROJECT)
+
+ifeq ($(TOOLCHAIN), gcc)
+
+AS=$(CROSS_COMPILE)gcc
+CC=$(CROSS_COMPILE)gcc
+LD=$(CROSS_COMPILE)gcc
+NM= $(CROSS_COMPILE)nm
+SIZE=$(CROSS_COMPILE)size
+OBJCOPY=$(CROSS_COMPILE)objcopy
+OBJDUMP=$(CROSS_COMPILE)objdump
+CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL)
+ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
+
+# Linker flags.
+# -Wl,...: tell GCC to pass this to linker.
+# -Map: create map file
+# --cref: add cross reference to map file
+LDFLAGS+=-nostartfiles -nostdlib -Wl,-Map=$(BOOT_NAME).map,--cref
+LDFLAGS+=-T $(BOOTSTRAP_PATH)/elf32-littlearm.lds -Ttext $(LINK_ADDR)
+OBJS=crt0_gnu.o
+
+endif
+
+OBJS+=\
+ $(BOARD).o \
+ main.o \
+ gpio.o \
+ pmc.o \
+ debug.o \
+ sdramc.o \
+ nandflash.o \
+ _udivsi3.o \
+ _umodsi3.o \
+ div0.o \
+ udiv.o \
+ string.o
+
+
+rebuild: clean all
+
+all: $(BOOT_NAME)
+
+ifeq ($(TOOLCHAIN), gcc)
+$(BOOT_NAME): $(OBJS)
+ $(LD) $(LDFLAGS) -n -o $(BOOT_NAME).elf $(OBJS)
+ $(OBJCOPY) --strip-debug --strip-unneeded $(BOOT_NAME).elf -O binary $(BOOT_NAME).bin
+endif
+
+
+$(BOARD).o: $(BOOTSTRAP_PATH)/board/$(BOARD)/$(BOARD).c
+ $(CC) -c $(CCFLAGS) $(BOOTSTRAP_PATH)/board/$(BOARD)/$(BOARD).c -o $(BOARD).o
+
+main.o: $(BOOTSTRAP_PATH)/main.c
+ $(CC) -c $(CCFLAGS) $(BOOTSTRAP_PATH)/main.c -o main.o
+
+gpio.o: $(BOOTSTRAP_PATH)/driver/gpio.c
+ $(CC) -c $(CCFLAGS) $(BOOTSTRAP_PATH)/driver/gpio.c -o gpio.o
+
+pmc.o: $(BOOTSTRAP_PATH)/driver/pmc.c
+ $(CC) -c $(CCFLAGS) $(BOOTSTRAP_PATH)/driver/pmc.c -o pmc.o
+
+debug.o: $(BOOTSTRAP_PATH)/driver/debug.c
+ $(CC) -c $(CCFLAGS) $(BOOTSTRAP_PATH)/driver/debug.c -o debug.o
+
+sdramc.o: $(BOOTSTRAP_PATH)/driver/sdramc.c
+ $(CC) -c $(CCFLAGS) $(BOOTSTRAP_PATH)/driver/sdramc.c -o sdramc.o
+
+dataflash.o: $(BOOTSTRAP_PATH)/driver/dataflash.c
+ $(CC) -c $(CCFLAGS) $(BOOTSTRAP_PATH)/driver/dataflash.c -o dataflash.o
+
+nandflash.o: $(BOOTSTRAP_PATH)/driver/nandflash.c
+ $(CC) -c $(CCFLAGS) $(BOOTSTRAP_PATH)/driver/nandflash.c -o nandflash.o
+
+crt0_gnu.o: $(BOOTSTRAP_PATH)/crt0_gnu.S
+ $(AS) $(ASFLAGS) $(BOOTSTRAP_PATH)/crt0_gnu.S -o crt0_gnu.o
+
+div0.o: $(BOOTSTRAP_PATH)/lib/div0.c
+ $(CC) -c $(CCFLAGS) $(BOOTSTRAP_PATH)/lib/div0.c -o div0.o
+
+string.o: $(BOOTSTRAP_PATH)/lib/string.c
+ $(CC) -c $(CCFLAGS) $(BOOTSTRAP_PATH)/lib/string.c -o string.o
+
+udiv.o: $(BOOTSTRAP_PATH)/lib/udiv.c
+ $(CC) -c $(CCFLAGS) $(BOOTSTRAP_PATH)/lib/udiv.c -o udiv.o
+
+_udivsi3.o: $(BOOTSTRAP_PATH)/lib/_udivsi3.S
+ $(AS) $(ASFLAGS) $(BOOTSTRAP_PATH)/lib/_udivsi3.S -o _udivsi3.o
+
+_umodsi3.o: $(BOOTSTRAP_PATH)/lib/_umodsi3.S
+ $(AS) $(ASFLAGS) $(BOOTSTRAP_PATH)/lib/_umodsi3.S -o _umodsi3.o
+
+clean:
+ $(ERASE_FCT) *.o *.bin *.elf *.map
diff --git a/board/usb_a9260/nandflash/usb-a9260.h b/board/usb_a9260/nandflash/usb-a9260.h
new file mode 100644
index 0000000..2aaf759
--- /dev/null
+++ b/board/usb_a9260/nandflash/usb-a9260.h
@@ -0,0 +1,109 @@
+/* ----------------------------------------------------------------------------
+ * ATMEL Microcontroller Software Support - ROUSSET -
+ * ----------------------------------------------------------------------------
+ * Copyright (c) 2006, Atmel Corporation
+
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaimer below.
+ *
+ * Atmel's name may not be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ----------------------------------------------------------------------------
+ * File Name : usb-a9260.h
+ * Object :
+ * Creation : GH Oct 1th 2012
+ *-----------------------------------------------------------------------------
+ */
+#ifndef _USB_A9260_H
+#define _USB_A9260_H
+
+/* ******************************************************************* */
+/* PMC Settings */
+/* */
+/* The main oscillator is enabled as soon as possible in the c_startup */
+/* and MCK is switched on the main oscillator. */
+/* PLL initialization is done later in the hw_init() function */
+/* ******************************************************************* */
+#define MASTER_CLOCK (180000000/2)
+#define PLL_LOCK_TIMEOUT 1000000
+
+#define PLLA_SETTINGS 0x20593F06
+#define PLLB_SETTINGS 0x10483F0E
+
+/* Switch MCK on PLLA output PCK = PLLA = 2 * MCK */
+#define MCKR_SETTINGS (AT91C_PMC_PRES_CLK | AT91C_PMC_MDIV_2)
+#define MCKR_CSS_SETTINGS (AT91C_PMC_CSS_PLLA_CLK | MCKR_SETTINGS)
+
+/* ******************************************************************* */
+/* NandFlash Settings */
+/* */
+/* ******************************************************************* */
+#define AT91C_SMARTMEDIA_BASE 0x40000000
+
+#define AT91_SMART_MEDIA_ALE (1 << 21) /* our ALE is AD21 */
+#define AT91_SMART_MEDIA_CLE (1 << 22) /* our CLE is AD22 */
+
+#define NAND_DISABLE_CE() do { *(volatile unsigned int *)AT91C_PIOC_SODR = AT91C_PIO_PC14;} while(0)
+#define NAND_ENABLE_CE() do { *(volatile unsigned int *)AT91C_PIOC_CODR = AT91C_PIO_PC14;} while(0)
+
+#define NAND_WAIT_READY() while (!(*(volatile unsigned int *)AT91C_PIOC_PDSR & AT91C_PIO_PC13))
+
+
+/* ******************************************************************** */
+/* SMC Chip Select 3 Timings for NandFlash for MASTER_CLOCK = 90000000.*/
+/* Please refer to SMC section in AT91SAM datasheet to learn how */
+/* to generate these values. */
+/* ******************************************************************** */
+#define AT91C_SM_NWE_SETUP (1 << 0)
+#define AT91C_SM_NCS_WR_SETUP (0 << 8)
+#define AT91C_SM_NRD_SETUP (1 << 16)
+#define AT91C_SM_NCS_RD_SETUP (0 << 24)
+
+#define AT91C_SM_NWE_PULSE (3 << 0)
+#define AT91C_SM_NCS_WR_PULSE (3 << 8)
+#define AT91C_SM_NRD_PULSE (3 << 16)
+#define AT91C_SM_NCS_RD_PULSE (3 << 24)
+
+#define AT91C_SM_NWE_CYCLE (5 << 0)
+#define AT91C_SM_NRD_CYCLE (5 << 16)
+#define AT91C_SM_TDF (2 << 16)
+
+/* ******************************************************************* */
+/* BootStrap Settings */
+/* */
+/* ******************************************************************* */
+#define IMG_ADDRESS 0x20000 /* Image Address in NandFlash */
+#define IMG_SIZE 0x40000 /* Image Size in NandFlash */
+
+#define MACH_TYPE 0x6AD /* USB-A9260 */
+#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+
+/* ******************************************************************* */
+/* Application Settings */
+/* ******************************************************************* */
+#undef CFG_DEBUG
+#undef CFG_DATAFLASH
+
+#define CFG_NANDFLASH
+#undef NANDFLASH_SMALL_BLOCKS /* NANDFLASH_LARGE_BLOCKS used instead */
+
+#define CFG_HW_INIT
+#define CFG_SDRAM
+
+#endif /* _USB_A9260_H */
diff --git a/board/usb_a9260/usb_a9260.c b/board/usb_a9260/usb_a9260.c
new file mode 100644
index 0000000..de30f0b
--- /dev/null
+++ b/board/usb_a9260/usb_a9260.c
@@ -0,0 +1,298 @@
+/* ----------------------------------------------------------------------------
+ * ATMEL Microcontroller Software Support - ROUSSET -
+ * ----------------------------------------------------------------------------
+ * Copyright (c) 2006, Atmel Corporation
+
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaiimer below.
+ *
+ * Atmel's name may not be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ----------------------------------------------------------------------------
+ * File Name : usb_a9260.c
+ * Object :
+ * Creation : GH Oct 1th 2012
+ *-----------------------------------------------------------------------------
+ */
+#include "../../include/part.h"
+#include "../../include/gpio.h"
+#include "../../include/pmc.h"
+#include "../../include/debug.h"
+#include "../../include/sdramc.h"
+#include "../../include/main.h"
+#ifdef CFG_NANDFLASH
+#include "../../include/nandflash.h"
+#endif
+#ifdef CFG_DATAFLASH
+#include "../../include/dataflash.h"
+#endif
+
+static inline unsigned int get_cp15(void)
+{
+ unsigned int value;
+ __asm__("mrc p15, 0, %0, c1, c0, 0" : "=r" (value));
+ return value;
+}
+
+static inline void set_cp15(unsigned int value)
+{
+ __asm__("mcr p15, 0, %0, c1, c0, 0" : : "r" (value));
+}
+
+#ifdef CFG_HW_INIT
+/*----------------------------------------------------------------------------*/
+/* \fn hw_init */
+/* \brief This function performs very low level HW initialization */
+/* This function is invoked as soon as possible during the c_startup */
+/* The bss segment must be initialized */
+/*----------------------------------------------------------------------------*/
+void hw_init(void)
+{
+ unsigned int cp15;
+
+ /* Configure PIOs */
+ const struct pio_desc hw_pio[] = {
+#ifdef CFG_DEBUG
+ {"RXD", AT91C_PIN_PB(14), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"TXD", AT91C_PIN_PB(15), 0, PIO_DEFAULT, PIO_PERIPH_A},
+#endif
+ {(char *) 0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A},
+ };
+
+ /* Disable watchdog */
+ writel(AT91C_WDTC_WDDIS, AT91C_BASE_WDTC + WDTC_WDMR);
+
+ /* At this stage the main oscillator is supposed to be enabled
+ * PCK = MCK = MOSC */
+
+ /* Configure PLLA = MOSC * (PLL_MULA + 1) / PLL_DIVA */
+ pmc_cfg_plla(PLLA_SETTINGS, PLL_LOCK_TIMEOUT);
+
+ /* PCK = PLLA = 2 * MCK */
+ pmc_cfg_mck(MCKR_SETTINGS, PLL_LOCK_TIMEOUT);
+ /* Switch MCK on PLLA output */
+ pmc_cfg_mck(MCKR_CSS_SETTINGS, PLL_LOCK_TIMEOUT);
+
+ /* Configure PLLB */
+ pmc_cfg_pllb(PLLB_SETTINGS, PLL_LOCK_TIMEOUT);
+
+ /* Configure CP15 */
+ cp15 = get_cp15();
+ cp15 |= I_CACHE;
+ set_cp15(cp15);
+
+ /* Configure the PIO controller */
+ pio_setup(hw_pio);
+
+ /* Configure the EBI Slave Slot Cycle to 64 */
+ writel( (readl((AT91C_BASE_MATRIX + MATRIX_SCFG3)) & ~0xFF) | 0x40, (AT91C_BASE_MATRIX + MATRIX_SCFG3));
+
+#ifdef CFG_DEBUG
+ /* Enable Debug messages on the DBGU */
+ dbg_init(BAUDRATE(MASTER_CLOCK, 115200));
+
+ dbg_print("Start AT91Bootstrap...\n\r");
+#endif /* CFG_DEBUG */
+
+#ifdef CFG_SDRAM
+ /* Initialize the matrix */
+ writel(readl(AT91C_BASE_CCFG + CCFG_EBICSA) | AT91C_EBI_CS1A_SDRAMC, AT91C_BASE_CCFG + CCFG_EBICSA);
+
+ /* Configure SDRAM Controller */
+ sdram_init( AT91C_SDRAMC_NC_9 |
+ AT91C_SDRAMC_NR_13 |
+ AT91C_SDRAMC_CAS_2 |
+ AT91C_SDRAMC_NB_4_BANKS |
+ AT91C_SDRAMC_DBW_32_BITS |
+ AT91C_SDRAMC_TWR_2 |
+ AT91C_SDRAMC_TRC_7 |
+ AT91C_SDRAMC_TRP_2 |
+ AT91C_SDRAMC_TRCD_2 |
+ AT91C_SDRAMC_TRAS_5 |
+ AT91C_SDRAMC_TXSR_8, /* Control Register */
+ (MASTER_CLOCK * 7)/1000000, /* Refresh Timer Register */
+ AT91C_SDRAMC_MD_SDRAM); /* SDRAM (no low power) */
+
+
+#endif /* CFG_SDRAM */
+}
+#endif /* CFG_HW_INIT */
+
+#ifdef CFG_SDRAM
+/*------------------------------------------------------------------------------*/
+/* \fn sdramc_hw_init */
+/* \brief This function performs SDRAMC HW initialization */
+/*------------------------------------------------------------------------------*/
+void sdramc_hw_init(void)
+{
+ /* Configure PIOs */
+/* const struct pio_desc sdramc_pio[] = {
+ {"D16", AT91C_PIN_PC(16), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D17", AT91C_PIN_PC(17), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D18", AT91C_PIN_PC(18), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D19", AT91C_PIN_PC(19), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D20", AT91C_PIN_PC(20), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D21", AT91C_PIN_PC(21), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D22", AT91C_PIN_PC(22), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D23", AT91C_PIN_PC(23), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D24", AT91C_PIN_PC(24), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D25", AT91C_PIN_PC(25), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D26", AT91C_PIN_PC(26), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D27", AT91C_PIN_PC(27), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D28", AT91C_PIN_PC(28), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D29", AT91C_PIN_PC(29), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D30", AT91C_PIN_PC(30), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"D31", AT91C_PIN_PC(31), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {(char *) 0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A},
+ };
+*/
+ /* Configure the SDRAMC PIO controller to output PCK0 */
+/* pio_setup(sdramc_pio); */
+
+ writel(0xFFFF0000, AT91C_BASE_PIOC + PIO_ASR(0));
+ writel(0xFFFF0000, AT91C_BASE_PIOC + PIO_PDR(0));
+
+}
+#endif /* CFG_SDRAM */
+
+#ifdef CFG_DATAFLASH
+
+/*------------------------------------------------------------------------------*/
+/* \fn df_recovery */
+/* \brief This function erases DataFlash Page 0 if USR PB is pressed */
+/* during boot sequence */
+/*------------------------------------------------------------------------------*/
+void df_recovery(AT91PS_DF pDf)
+{
+#if (AT91C_SPI_PCS_DATAFLASH == AT91C_SPI_PCS0_DATAFLASH)
+ /* Configure PIOs */
+ const struct pio_desc usrpb_pio[] = {
+ {"USRPB", AT91C_PIN_PB(10), 0, PIO_PULLUP, PIO_INPUT},
+ {(char *) 0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A},
+ };
+
+ /* Configure the PIO controller */
+ writel((1 << AT91C_ID_PIOB), PMC_PCER + AT91C_BASE_PMC);
+ pio_setup(usrpb_pio);
+
+ /* If USR PB is pressed during Boot sequence */
+ /* Erase DataFlash Page 0*/
+ if ( !pio_get_value(AT91C_PIN_PB(10)) )
+ df_page_erase(pDf, 0);
+#endif
+}
+
+/*------------------------------------------------------------------------------*/
+/* \fn df_hw_init */
+/* \brief This function performs DataFlash HW initialization */
+/*------------------------------------------------------------------------------*/
+void df_hw_init(void)
+{
+ /* Configure PIOs */
+ const struct pio_desc df_pio[] = {
+ {"MISO", AT91C_PIN_PA(0), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"MOSI", AT91C_PIN_PA(1), 0, PIO_DEFAULT, PIO_PERIPH_A},
+ {"SPCK", AT91C_PIN_PA(2), 0, PIO_DEFAULT, PIO_PERIPH_A},
+#if (AT91C_SPI_PCS_DATAFLASH == AT91C_SPI_PCS0_DATAFLASH)
+ {"NPCS0", AT91C_PIN_PA(3), 0, PIO_DEFAULT, PIO_PERIPH_A},
+#endif
+ {(char *) 0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A},
+ };
+
+ /* Configure the PIO controller */
+ pio_setup(df_pio);
+}
+#endif /* CFG_DATAFLASH */
+
+
+
+#ifdef CFG_NANDFLASH
+/*------------------------------------------------------------------------------*/
+/* \fn nand_recovery */
+/* \brief This function erases NandFlash Block 0 if USR PB is pressed */
+/* during boot sequence */
+/*------------------------------------------------------------------------------*/
+static void nand_recovery(void)
+{
+ /* Configure PIOs */
+ const struct pio_desc usrpb_pio[] = {
+ {"USRPB", AT91C_PIN_PB(10), 0, PIO_PULLUP, PIO_INPUT},
+ {(char *) 0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A},
+ };
+
+ /* Configure the PIO controller */
+ writel((1 << AT91C_ID_PIOB), PMC_PCER + AT91C_BASE_PMC);
+ pio_setup(usrpb_pio);
+
+ /* If USR PB is pressed during Boot sequence */
+ /* Erase NandFlash block 0*/
+ if (!pio_get_value(AT91C_PIN_PB(10)) )
+ AT91F_NandEraseBlock0();
+}
+
+/*------------------------------------------------------------------------------*/
+/* \fn nandflash_hw_init */
+/* \brief NandFlash HW init */
+/*------------------------------------------------------------------------------*/
+void nandflash_hw_init(void)
+{
+ /* Configure PIOs */
+ const struct pio_desc nand_pio[] = {
+ {"RDY_BSY", AT91C_PIN_PC(13), 0, PIO_PULLUP, PIO_INPUT},
+ {"NANDCS", AT91C_PIN_PC(14), 0, PIO_PULLUP, PIO_OUTPUT},
+ {(char *) 0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A},
+ };
+
+ /* Setup Smart Media, first enable the address range of CS3 in HMATRIX user interface */
+ writel(readl(AT91C_BASE_CCFG + CCFG_EBICSA) | AT91C_EBI_CS3A_SM, AT91C_BASE_CCFG + CCFG_EBICSA);
+
+ /* Configure SMC CS3 */
+ writel((AT91C_SM_NWE_SETUP | AT91C_SM_NCS_WR_SETUP | AT91C_SM_NRD_SETUP | AT91C_SM_NCS_RD_SETUP), AT91C_BASE_SMC + SMC_SETUP3);
+ writel((AT91C_SM_NWE_PULSE | AT91C_SM_NCS_WR_PULSE | AT91C_SM_NRD_PULSE | AT91C_SM_NCS_RD_PULSE), AT91C_BASE_SMC + SMC_PULSE3);
+ writel((AT91C_SM_NWE_CYCLE | AT91C_SM_NRD_CYCLE) , AT91C_BASE_SMC + SMC_CYCLE3);
+ writel((AT91C_SMC_READMODE | AT91C_SMC_WRITEMODE | AT91C_SMC_NWAITM_NWAIT_DISABLE |
+ AT91C_SMC_DBW_WIDTH_SIXTEEN_BITS | AT91C_SM_TDF) , AT91C_BASE_SMC + SMC_CTRL3);
+
+ /* Configure the PIO controller */
+ writel((1 << AT91C_ID_PIOC), PMC_PCER + AT91C_BASE_PMC);
+ pio_setup(nand_pio);
+
+ nand_recovery();
+}
+
+/*------------------------------------------------------------------------------*/
+/* \fn nandflash_cfg_16bits_dbw_init */
+/* \brief Configure SMC in 16 bits mode */
+/*------------------------------------------------------------------------------*/
+void nandflash_cfg_16bits_dbw_init(void)
+{
+ writel(readl(AT91C_BASE_SMC + SMC_CTRL3) | AT91C_SMC_DBW_WIDTH_SIXTEEN_BITS, AT91C_BASE_SMC + SMC_CTRL3);
+}
+
+/*------------------------------------------------------------------------------*/
+/* \fn nandflash_cfg_8bits_dbw_init */
+/* \brief Configure SMC in 8 bits mode */
+/*------------------------------------------------------------------------------*/
+void nandflash_cfg_8bits_dbw_init(void)
+{
+ writel((readl(AT91C_BASE_SMC + SMC_CTRL3) & ~(AT91C_SMC_DBW)) | AT91C_SMC_DBW_WIDTH_EIGTH_BITS, AT91C_BASE_SMC + SMC_CTRL3);
+}
+
+
+#endif /* #ifdef CFG_NANDFLASH */
diff --git a/crt0_gnu.S b/crt0_gnu.S
index 042b617..002feef 100644
--- a/crt0_gnu.S
+++ b/crt0_gnu.S
@@ -106,6 +106,13 @@ _relocate_to_sram:
#endif /* CFG_NORFLASH */
_setup_clocks:
+/* Test if main osc is bypassed */
+ ldr r0,=AT91C_PMC_MOR
+ ldr r1, [r0]
+ ldr r2,=AT91C_CKGR_OSCBYPASS
+ ands r1, r1, r2
+ bne _init_data /* branch if OSCBYPASS=1 */
+
/* Test if main oscillator is enabled */
ldr r0,=AT91C_PMC_SR
ldr r1, [r0]
diff --git a/include/part.h b/include/part.h
index ba5985a..212789f 100644
--- a/include/part.h
+++ b/include/part.h
@@ -35,7 +35,11 @@
#ifdef AT91SAM9260
#include "AT91SAM9260_inc.h"
-#include "at91sam9260ek.h"
+ #ifdef at91sam9260ek
+ #include "at91sam9260ek.h"
+ #elif usb_a9260
+ #include "usb-a9260.h"
+ #endif
#endif
#ifdef AT91SAM9XE
--
1.7.9.5

View File

@@ -1,97 +0,0 @@
CONFIG_EXPERIMENTAL=y
# CONFIG_LOCALVERSION_AUTO is not set
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_ARCH_AT91=y
CONFIG_ARCH_AT91SAM9260=y
CONFIG_MACH_USB_A9260=y
CONFIG_AT91_SLOW_CLOCK=y
# CONFIG_ARM_THUMB is not set
CONFIG_AEABI=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="mem=64M console=ttyS0,115200"
CONFIG_FPE_NWFPE=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set
# CONFIG_IPV6 is not set
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_DATAFLASH=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_ATMEL=y
CONFIG_MTD_UBI=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_MULTI_LUN=y
CONFIG_NETDEVICES=y
CONFIG_MII=y
CONFIG_MACB=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_EVBUG=y
# CONFIG_KEYBOARD_ATKBD is not set
CONFIG_KEYBOARD_GPIO=y
# CONFIG_INPUT_MOUSE is not set
# CONFIG_SERIO is not set
CONFIG_SERIAL_ATMEL=y
CONFIG_SERIAL_ATMEL_CONSOLE=y
CONFIG_HW_RANDOM=y
CONFIG_SPI=y
CONFIG_SPI_ATMEL=y
# CONFIG_HWMON is not set
# CONFIG_USB_HID is not set
CONFIG_USB=y
CONFIG_USB_MON=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_USB_GADGET=y
CONFIG_USB_ETH=m
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_EXT2_FS=y
CONFIG_FUSE_FS=m
CONFIG_VFAT_FS=y
CONFIG_TMPFS=y
CONFIG_JFFS2_FS=y
CONFIG_UBIFS_FS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_USER=y
CONFIG_DEBUG_LL=y

View File

@@ -1,10 +0,0 @@
Run the emulation with:
qemu-system-arm -M nuri -kernel output/images/zImage -append "console=ttySAC1,115200" -smp 2 -serial null -serial stdio
The login prompt will appear in the terminal that started Qemu. The
graphical window is the framebuffer.
Startup time is slow because of the SMP CPU emulation so be patient.
Tested with QEMU 1.3.0

View File

@@ -1,4 +1,3 @@
CONFIG_ARCH_VERSATILE=y
CONFIG_EXPERIMENTAL=y
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SYSVIPC=y
@@ -16,6 +15,7 @@ CONFIG_LEDS_CPU=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="root=1f03 mem=32M"
CONFIG_VFP=y
CONFIG_PM=y
CONFIG_NET=y
CONFIG_PACKET=y
@@ -34,12 +34,11 @@ CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_ARM_INTEGRATOR=y
CONFIG_BLK_DEV_RAM=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_SYM53C8XX_2=y
CONFIG_EEPROM_LEGACY=m
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_SMC91X=y
@@ -70,6 +69,7 @@ CONFIG_MMC=y
CONFIG_MMC_ARMMMCI=m
CONFIG_EXT2_FS=y
CONFIG_VFAT_FS=m
CONFIG_TMPFS=y
CONFIG_JFFS2_FS=y
CONFIG_CRAMFS=y
CONFIG_MINIX_FS=y

View File

@@ -5,4 +5,4 @@ Run the emulation with:
The login prompt will appear in the terminal that started Qemu. The
graphical window is the framebuffer.
Tested with QEMU 1.3.0
Tested with QEMU 1.2.0

View File

@@ -5,4 +5,4 @@ Run the emulation with:
The login prompt will appear in the terminal that started Qemu. The
graphical window is the framebuffer.
Tested with QEMU 1.3.0
Tested with QEMU 1.2.0

View File

@@ -4,4 +4,4 @@ Run the emulation with:
The login prompt will appear in the terminal that started Qemu.
Tested with QEMU 1.3.0
Tested with QEMU 1.2.0

View File

@@ -4,4 +4,4 @@ Run the emulation with:
The login prompt will appear in the terminal that started Qemu.
Tested with QEMU 1.3.0
Tested with QEMU 1.2.0

View File

@@ -6,4 +6,4 @@ The login prompt will appear in the terminal that started Qemu. The
graphical window is the framebuffer. No keyboard support has been
enabled.
Tested with QEMU 1.3.0
Tested with QEMU 1.2.0

View File

@@ -8,4 +8,4 @@ enabled.
This configuration is known to be flaky.
Tested with QEMU 1.3.0
Tested with QEMU 1.2.0

View File

@@ -6,4 +6,4 @@ The login prompt will appear in the terminal that started Qemu. The
graphical window is the framebuffer. No keyboard support has been
enabled.
Tested with QEMU 1.3.0
Tested with QEMU 1.2.0

View File

@@ -5,4 +5,4 @@ Run the emulation with:
The login prompt will appear in the terminal that started Qemu. The
graphical window is the framebuffer.
Tested with QEMU 1.3.0
Tested with QEMU 1.2.0

View File

@@ -4,4 +4,4 @@ Run the emulation with:
The login prompt will appear in the terminal that started Qemu.
Tested with QEMU 1.3.0
Tested with QEMU 1.2.0

View File

@@ -1,8 +0,0 @@
Run the emulation with:
cp output/images/virtex440-ml507.dtb ppc.dtb
qemu-system-ppc -M virtex-ml507 -kernel output/images/vmlinux -m 256 -nographic -append "console=ttyS0"
The login prompt will appear in the terminal that started Qemu.
Tested with QEMU 1.3.0

View File

@@ -5,4 +5,4 @@ Run the emulation with:
The login prompt will appear in the terminal that started Qemu.
The graphical window is the framebuffer.
Tested with QEMU 1.3.0
Tested with QEMU 1.2.0

View File

@@ -5,4 +5,4 @@ Run the emulation with:
The login prompt will appear in the terminal that started Qemu.
The graphical window is the framebuffer.
Tested with QEMU 1.3.0
Tested with QEMU 1.2.0

View File

@@ -4,4 +4,4 @@ Run the emulation with:
The login prompt will appear in the graphical window.
Tested with QEMU 1.3.0
Tested with QEMU 1.2.0

View File

@@ -4,4 +4,4 @@ Run the emulation with:
The login prompt will appear in the graphical window.
Tested with QEMU 1.3.0
Tested with QEMU 1.2.0

View File

@@ -4,7 +4,7 @@
#
#############################################################
AT91BOOTSTRAP_VERSION = 1.16
AT91BOOTSTRAP_SITE = http://www.atmel.com/Images
AT91BOOTSTRAP_SITE = http://www.atmel.com/dyn/resources/prod_documents/
AT91BOOTSTRAP_SOURCE = AT91Bootstrap$(AT91BOOTSTRAP_VERSION).zip
AT91BOOTSTRAP_BOARD = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_BOARD))

View File

@@ -8,22 +8,22 @@ config BR2_TARGET_BAREBOX
if BR2_TARGET_BAREBOX
choice
prompt "version"
default BR2_TARGET_BAREBOX_2013_02
default BR2_TARGET_BAREBOX_2012_11
help
Select the specific Barebox version you want to use
config BR2_TARGET_BAREBOX_2012_08
bool "2012.08"
config BR2_TARGET_BAREBOX_2012_09
bool "2012.09"
config BR2_TARGET_BAREBOX_2012_10
bool "2012.10"
config BR2_TARGET_BAREBOX_2012_11
bool "2012.11"
config BR2_TARGET_BAREBOX_2012_12
bool "2012.12.1"
config BR2_TARGET_BAREBOX_2013_01
bool "2013.01.0"
config BR2_TARGET_BAREBOX_2013_02
bool "2013.02.0"
config BR2_TARGET_BAREBOX_CUSTOM_TARBALL
bool "Custom tarball"
@@ -41,10 +41,10 @@ endif
config BR2_TARGET_BAREBOX_VERSION
string
default "2012.08.0" if BR2_TARGET_BAREBOX_2012_08
default "2012.09.0" if BR2_TARGET_BAREBOX_2012_09
default "2012.10.0" if BR2_TARGET_BAREBOX_2012_10
default "2012.11.0" if BR2_TARGET_BAREBOX_2012_11
default "2012.12.1" if BR2_TARGET_BAREBOX_2012_12
default "2013.01.0" if BR2_TARGET_BAREBOX_2013_01
default "2013.02.0" if BR2_TARGET_BAREBOX_2013_02
default "custom" if BR2_TARGET_BAREBOX_CUSTOM_TARBALL
default $BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION if BR2_TARGET_BAREBOX_CUSTOM_GIT
@@ -99,23 +99,4 @@ config BR2_TARGET_BAREBOX_BAREBOXENV
help
Install bareboxenv tool in target.
config BR2_TARGET_BAREBOX_CUSTOM_ENV
bool "Generate an environment image"
help
Generate a custom environment image. This environment will
contain the variables and scripts to be used at boot by
barebox.
config BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH
string "Environment path"
depends on BR2_TARGET_BAREBOX_CUSTOM_ENV
help
Path to the directory containing the custom barebox
environment. Depending on your setup, it will probably be
based on either the content of the defaultenv or
defaultenv-2 directories in the barebox source code, plus
the additions needed. The output will be an image in the
barebox devfs format, stored in the images directory, with
the same name as the directory name given here.
endif

View File

@@ -9,7 +9,7 @@ BAREBOX_VERSION = $(call qstrip,$(BR2_TARGET_BAREBOX_VERSION))
ifeq ($(BAREBOX_VERSION),custom)
# Handle custom Barebox tarballs as specified by the configuration
BAREBOX_TARBALL = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION))
BAREBOX_SITE = $(patsubst %/,%,$(dir $(BAREBOX_TARBALL)))
BAREBOX_SITE = $(dir $(BAREBOX_TARBALL))
BAREBOX_SOURCE = $(notdir $(BAREBOX_TARBALL))
else ifeq ($(BR2_TARGET_BAREBOX_CUSTOM_GIT),y)
BAREBOX_SITE = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL))
@@ -20,7 +20,6 @@ BAREBOX_SOURCE = barebox-$(BAREBOX_VERSION).tar.bz2
BAREBOX_SITE = http://www.barebox.org/download/
endif
BAREBOX_DEPENDENCIES = host-lzop
BAREBOX_LICENSE = GPLv2 with exceptions
BAREBOX_LICENSE_FILES = COPYING
@@ -57,7 +56,7 @@ endif
define BAREBOX_CONFIGURE_CMDS
cp $(BAREBOX_SOURCE_CONFIG) $(@D)/arch/$(BAREBOX_ARCH)/configs/buildroot_defconfig
$(TARGET_MAKE_ENV) $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D) buildroot_defconfig
$(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D) buildroot_defconfig
endef
ifeq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)
@@ -67,31 +66,13 @@ define BAREBOX_BUILD_BAREBOXENV_CMDS
endef
endif
ifeq ($(BR2_TARGET_BAREBOX_CUSTOM_ENV),y)
BAREBOX_ENV_NAME = $(notdir $(call qstrip, $(BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH)))
define BAREBOX_BUILD_CUSTOM_ENV
$(@D)/scripts/bareboxenv -s \
$(call qstrip, $(BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH)) \
$(@D)/$(BAREBOX_ENV_NAME)
endef
define BAREBOX_INSTALL_CUSTOM_ENV
cp $(@D)/$(BAREBOX_ENV_NAME) $(BINARIES_DIR)
endef
endif
define BAREBOX_BUILD_CMDS
$(BAREBOX_BUILD_BAREBOXENV_CMDS)
$(TARGET_MAKE_ENV) $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D)
$(BAREBOX_BUILD_CUSTOM_ENV)
$(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D)
endef
define BAREBOX_INSTALL_IMAGES_CMDS
if test -h $(@D)/barebox-flash-image ; then \
cp -L $(@D)/barebox-flash-image $(BINARIES_DIR)/barebox.bin ; \
else \
cp $(@D)/barebox.bin $(BINARIES_DIR);\
fi
$(BAREBOX_INSTALL_CUSTOM_ENV)
cp $(@D)/barebox.bin $(BINARIES_DIR)
endef
ifeq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)
@@ -111,12 +92,12 @@ endif
endif
barebox-menuconfig barebox-xconfig barebox-gconfig barebox-nconfig: barebox-configure
$(TARGET_MAKE_ENV) $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR) \
$(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR) \
$(subst barebox-,,$@)
rm -f $(BAREBOX_DIR)/.stamp_{built,target_installed,images_installed}
barebox-savedefconfig: barebox-configure
$(TARGET_MAKE_ENV) $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR) \
$(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR) \
$(subst barebox-,,$@)
ifeq ($(BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG),y)

View File

@@ -6,7 +6,7 @@
ifeq ($(BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL),y)
MXS_BOOTLETS_TARBALL = $(call qstrip,$(BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL_URL))
MXS_BOOTLETS_SITE = $(patsubst %/,%,$(dir $(MXS_BOOTLETS_TARBALL)))
MXS_BOOTLETS_SITE = $(dir $(MXS_BOOTLETS_TARBALL))
MXS_BOOTLETS_SOURCE = $(notdir $(MXS_BOOTLETS_TARBALL))
else ifeq ($(BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT),y)
MXS_BOOTLETS_SITE = $(BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT_URL)

View File

@@ -14,13 +14,10 @@ config BR2_TARGET_UBOOT_BOARDNAME
choice
prompt "U-Boot Version"
default BR2_TARGET_UBOOT_2013_01
default BR2_TARGET_UBOOT_2012_10
help
Select the specific U-Boot version you want to use
config BR2_TARGET_UBOOT_2013_01
bool "2013.01.01"
config BR2_TARGET_UBOOT_2012_10
bool "2012.10"
@@ -58,7 +55,6 @@ endif
config BR2_TARGET_UBOOT_VERSION
string
default "2013.01.01" if BR2_TARGET_UBOOT_2013_01
default "2012.10" if BR2_TARGET_UBOOT_2012_10
default "2012.07" if BR2_TARGET_UBOOT_2012_07
default "2012.04.01" if BR2_TARGET_UBOOT_2012_04

View File

@@ -14,7 +14,7 @@ UBOOT_INSTALL_IMAGES = YES
ifeq ($(UBOOT_VERSION),custom)
# Handle custom U-Boot tarballs as specified by the configuration
UBOOT_TARBALL = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION))
UBOOT_SITE = $(patsubst %/,%,$(dir $(UBOOT_TARBALL)))
UBOOT_SITE = $(dir $(UBOOT_TARBALL))
UBOOT_SOURCE = $(notdir $(UBOOT_TARBALL))
else ifeq ($(BR2_TARGET_UBOOT_CUSTOM_GIT),y)
UBOOT_SITE = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_GIT_REPO_URL))

View File

@@ -14,11 +14,6 @@ BR2_TOOLCHAIN_BUILDROOT_INET_RPC=y
BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
# Lock down headers to avoid breaking with new defaults
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="3.1.1"
# System
BR2_TARGET_GENERIC_HOSTNAME="apf9328"
BR2_TARGET_GENERIC_ISSUE="Welcome to Armadeus development platform !"

View File

@@ -1,6 +1,5 @@
# Architecture
BR2_arm=y
BR2_arm920t=y
# Filesystem
BR2_TARGET_ROOTFS_JFFS2=y
@@ -10,11 +9,6 @@ BR2_TARGET_ROOTFS_JFFS2_EBSIZE=0x2100
BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER=y
BR2_TARGET_ROOTFS_JFFS2_LE=y
# Lock down headers to avoid breaking with new defaults
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="2.6.38.8"
BR2_DEFAULT_KERNEL_HEADERS="2.6.38.8"
# Bootloader
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="at91rm9200ek"
@@ -23,7 +17,7 @@ BR2_TARGET_UBOOT_2010_06=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="2.6.38.8"
BR2_LINUX_KERNEL_PATCH="http://maxim.org.za/AT91RM9200/2.6/2.6.38-at91.patch.gz"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="2.6.33"
BR2_LINUX_KERNEL_PATCH="http://maxim.org.za/AT91RM9200/2.6/2.6.33-at91.patch.gz"
BR2_LINUX_KERNEL_USE_DEFCONFIG=y
BR2_LINUX_KERNEL_DEFCONFIG="at91rm9200ek"

View File

@@ -2,10 +2,6 @@
BR2_arm=y
BR2_arm926t=y
# Lock down headers to avoid breaking with new defaults
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="3.1.6"
# Host utilities
#
BR2_PACKAGE_HOST_SAM_BA=y

View File

@@ -8,9 +8,6 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyO0"
# BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
BR2_TARGET_ROOTFS_EXT2=y
# BR2_TARGET_ROOTFS_TAR is not set
# Lock down headers to avoid breaking with new defaults
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="3.2.9"
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="am335x_evm"
BR2_TARGET_UBOOT_2012_10=y

View File

@@ -1,24 +0,0 @@
BR2_arm=y
BR2_cortex_a9=y
BR2_GCC_VERSION_4_7_X=y
# BR2_SOFT_FLOAT is not set
BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_VFP_FLOAT=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA2"
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_SNOWBALL_HDMISERVICE=y
BR2_PACKAGE_LIBNL=y
BR2_PACKAGE_SNOWBALL_INIT=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_TARGET_ROOTFS_TAR_GZIP=y
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="snowball"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL="git://igloocommunity.org/git/kernel/igloo-kernel.git"
BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION="stable-linux-ux500-3.4"
BR2_LINUX_KERNEL_PATCH="board/calao/snowball/"
BR2_LINUX_KERNEL_DEFCONFIG="u8500"
BR2_LINUX_KERNEL_INSTALL_TARGET=y

View File

@@ -1,15 +0,0 @@
BR2_arm=y
BR2_arm926t=y
BR2_PACKAGE_MTD=y
BR2_PACKAGE_HOST_SAM_BA=y
BR2_TARGET_ROOTFS_UBIFS=y
BR2_TARGET_AT91BOOTSTRAP=y
BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR="board/calao/usb-a9260"
BR2_TARGET_AT91BOOTSTRAP_BOARD="usb_a9260"
BR2_TARGET_AT91BOOTSTRAP_NANDFLASH=y
BR2_TARGET_BAREBOX=y
BR2_TARGET_BAREBOX_BOARD_DEFCONFIG="usb_a9260"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/calao/usb-a9260/linux-3.7.4.config"
BR2_LINUX_KERNEL_ZIMAGE=y

View File

@@ -11,10 +11,6 @@ BR2_ARM_EABI=y
# that will compile a kernel with ethernet working correctly
BR2_GCC_VERSION_4_3_X=y
# Lock down headers to avoid breaking with new defaults
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="2.6.34.7"
BR2_DEFAULT_KERNEL_HEADERS="2.6.34.7"
#
# Host utilities

View File

@@ -11,10 +11,6 @@ BR2_ARM_EABI=y
# that will compile a kernel with ethernet working correctly
BR2_GCC_VERSION_4_3_X=y
# Lock down headers to avoid breaking with new defaults
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="2.6.34.7"
BR2_DEFAULT_KERNEL_HEADERS="2.6.34.7"
#
# Host utilities

View File

@@ -5,14 +5,10 @@ BR2_arm920t=y
# Filesystem
BR2_TARGET_ROOTFS_TAR=y
# Lock down headers to avoid breaking with new defaults
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="2.6.38.8"
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="2.6.38.8"
BR2_LINUX_KERNEL_PATCH="http://maxim.org.za/AT91RM9200/2.6/2.6.38-at91.patch.gz"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="2.6.33"
BR2_LINUX_KERNEL_PATCH="http://maxim.org.za/AT91RM9200/2.6/2.6.33-at91.patch.gz"
BR2_LINUX_KERNEL_USE_DEFCONFIG=y
BR2_LINUX_KERNEL_DEFCONFIG="kb9202"

View File

@@ -15,11 +15,6 @@ BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER=y
BR2_TARGET_ROOTFS_JFFS2_LE=y
BR2_TARGET_ROOTFS_TAR=y
# Lock down headers to avoid breaking with new defaults
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="3.0.4"
# Bootloader
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="mini2440"

View File

@@ -11,10 +11,6 @@ BR2_ARM_EABI=y
# that will compile a kernel with ethernet working correctly
BR2_GCC_VERSION_4_3_X=y
# Lock down headers to avoid breaking with new defaults
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="2.6.34.7"
BR2_DEFAULT_KERNEL_HEADERS="2.6.34.7"
#
# Host utilities

View File

@@ -1,25 +0,0 @@
# Architecture
BR2_arm=y
BR2_cortex_a9=y
BR2_ARM_ENABLE_NEON=y
BR2_VFP_FLOAT=y
# BR2_SOFT_FLOAT is not set
# System
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
BR2_TARGET_GENERIC_GETTY=y
BR2_TARGET_GENERIC_GETTY_PORT="ttySAC1"
# Filesystem
# BR2_TARGET_ROOTFS_TAR is not set
BR2_TARGET_ROOTFS_INITRAMFS=y
# Lock to 3.7 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_7=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_DEFCONFIG="exynos4"
BR2_LINUX_KERNEL_ZIMAGE=y

View File

@@ -10,13 +10,13 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
BR2_TARGET_ROOTFS_EXT2=y
# BR2_TARGET_ROOTFS_TAR is not set
# Lock to 3.7 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_7=y
# Lock to 3.6 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_6=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/arm-versatile/linux-3.7.config"
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/arm-versatile/linux-3.6.config"
BR2_LINUX_KERNEL_ZIMAGE=y

View File

@@ -1,25 +1,22 @@
# Architecture
BR2_arm=y
BR2_cortex_a9=y
BR2_ARM_ENABLE_NEON=y
BR2_VFP_FLOAT=y
# BR2_SOFT_FLOAT is not set
# System
# system
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
BR2_TARGET_GENERIC_GETTY=y
BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
# Filesystem
# filesystem
BR2_TARGET_ROOTFS_EXT2=y
# BR2_TARGET_ROOTFS_TAR is not set
# Lock to 3.7 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_7=y
# Lock to 3.6 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_6=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
BR2_LINUX_KERNEL_DEFCONFIG="vexpress"
BR2_LINUX_KERNEL_ZIMAGE=y

View File

@@ -19,9 +19,9 @@ BR2_TARGET_ROOTFS_INITRAMFS=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazebe-mmu/linux-3.7.config"
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazebe-mmu/linux-3.6.config"
BR2_LINUX_KERNEL_LINUX_BIN=y
BR2_LINUX_KERNEL_USE_CUSTOM_DTS=y
BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/qemu/microblazebe-mmu/system.dts"

View File

@@ -19,9 +19,9 @@ BR2_TARGET_ROOTFS_INITRAMFS=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazeel-mmu/linux-3.7.config"
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazeel-mmu/linux-3.6.config"
BR2_LINUX_KERNEL_LINUX_BIN=y
BR2_LINUX_KERNEL_USE_CUSTOM_DTS=y
BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/qemu/microblazeel-mmu/system.dts"

View File

@@ -10,15 +10,15 @@ BR2_PREFER_STATIC_LIB=y
BR2_TARGET_ROOTFS_EXT2=y
# BR2_TARGET_ROOTFS_TAR is not set
# Lock to 3.7 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_7=y
# Lock to 3.6 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_6=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64-malta/linux-3.7.config"
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64-malta/linux-3.6.config"
BR2_LINUX_KERNEL_VMLINUX=y
# Serial port config

View File

@@ -6,15 +6,15 @@ BR2_mips_32r2=y
BR2_TARGET_ROOTFS_EXT2=y
# BR2_TARGET_ROOTFS_TAR is not set
# Lock to 3.7 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_7=y
# Lock to 3.6 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_6=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips-malta/linux-3.7.config"
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips-malta/linux-3.6.config"
BR2_LINUX_KERNEL_VMLINUX=y
# Serial port config

View File

@@ -6,15 +6,15 @@ BR2_mips_32r2=y
BR2_TARGET_ROOTFS_EXT2=y
# BR2_TARGET_ROOTFS_TAR is not set
# Lock to 3.7 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_7=y
# Lock to 3.6 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_6=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mipsel-malta/linux-3.7.config"
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mipsel-malta/linux-3.6.config"
BR2_LINUX_KERNEL_VMLINUX=y
# Serial port config

View File

@@ -6,15 +6,15 @@ BR2_powerpc_750=y
BR2_TARGET_ROOTFS_EXT2=y
# BR2_TARGET_ROOTFS_TAR is not set
# Lock to 3.7 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_7=y
# Lock to 3.6 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_6=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/powerpc-g3beige/linux-3.7.config"
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/powerpc-g3beige/linux-3.6.config"
BR2_LINUX_KERNEL_VMLINUX=y
# Serial port config

View File

@@ -6,13 +6,13 @@ BR2_powerpc_8548=y
# BR2_TARGET_ROOTFS_TAR is not set
BR2_TARGET_ROOTFS_INITRAMFS=y
# Lock to 3.7 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_7=y
# Lock to 3.6 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_6=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
BR2_LINUX_KERNEL_DEFCONFIG="mpc85xx"
BR2_LINUX_KERNEL_VMLINUX=y

View File

@@ -1,22 +0,0 @@
# Architecture
BR2_powerpc=y
BR2_powerpc_440=y
# Filesystem
# BR2_TARGET_ROOTFS_TAR is not set
BR2_TARGET_ROOTFS_INITRAMFS=y
# Lock to 3.7 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_7=y
# Use soft float
BR2_SOFT_FLOAT=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_DEFCONFIG="44x/virtex5"
BR2_LINUX_KERNEL_VMLINUX=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="virtex440-ml507"

View File

@@ -20,7 +20,7 @@ BR2_EXTRA_GCC_CONFIG_OPTIONS="--with-multilib-list=m4,m4-nofpu"
# Linux kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.2.38"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.2.33"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sh4-r2d/linux-3.2.config"
BR2_LINUX_KERNEL_ZIMAGE=y

View File

@@ -1,17 +1,17 @@
# Architecture
BR2_sparc=y
BR2_sparc_v8=y
BR2_sparc_supersparc=y
# filesystem
BR2_TARGET_ROOTFS_EXT2=y
# BR2_TARGET_ROOTFS_TAR is not set
# Lock to 3.7 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_7=y
# Lock to 3.6 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_6=y
# Linux kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
BR2_LINUX_KERNEL_DEFCONFIG="sparc32"
BR2_LINUX_KERNEL_ZIMAGE=y

View File

@@ -9,12 +9,12 @@ BR2_TARGET_GENERIC_GETTY_PORT="tty1"
BR2_TARGET_ROOTFS_EXT2=y
# BR2_TARGET_ROOTFS_TAR is not set
# Lock to 3.7 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_7=y
# Lock to 3.6 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_6=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux-3.7.config"
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux-3.6.config"

View File

@@ -10,12 +10,12 @@ BR2_TARGET_GENERIC_GETTY_PORT="tty1"
BR2_TARGET_ROOTFS_EXT2=y
# BR2_TARGET_ROOTFS_TAR is not set
# Lock to 3.7 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_7=y
# Lock to 3.6 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_3_6=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.7.6"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86/linux-3.7.config"
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86/linux-3.6.config"

View File

@@ -10,11 +10,6 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
BR2_TARGET_ROOTFS_JFFS2=y
BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K=y
# Lock down headers to avoid breaking with new defaults
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="3.5.4"
# bootloader
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="sheevaplug"

View File

@@ -6,22 +6,22 @@
<p>
The latest stable release is <b>2012.11.1</b>, which can be downloaded
The latest stable release is <b>2012.11</b>, which can be downloaded
here:<p>
<a href="/downloads/buildroot-2012.11.1.tar.gz">buildroot-2012.11.1.tar.gz</a>
<a href="/downloads/buildroot-2012.11.tar.gz">buildroot-2012.11.tar.gz</a>
or
<a href="/downloads/buildroot-2012.11.1.tar.bz2">buildroot-2012.11.1.tar.bz2</a>.
<a href="/downloads/buildroot-2012.11.tar.bz2">buildroot-2012.11.tar.bz2</a>.
<!--
<p>
The latest release candidate is <b>2013.02-rc1</b>, which can be
The latest release candidate is <b>2012.11-rc2</b>, which can be
downloaded here:<p>
<a href="/downloads/buildroot-2013.02-rc1.tar.gz">buildroot-2013.02-rc1.tar.gz</a>
<a href="/downloads/buildroot-2012.11-rc2.tar.gz">buildroot-2012.11-rc2.tar.gz</a>
or
<a href="/downloads/buildroot-2013.02-rc1.tar.bz2">buildroot-2013.02-rc1.tar.bz2</a>.
<a href="/downloads/buildroot-2012.11-rc2.tar.bz2">buildroot-2012.11-rc2.tar.bz2</a>.
<p>
-->
This and earlier releases can always be downloaded from
<a href="/downloads/">http://buildroot.net/downloads/</a>.

View File

@@ -168,7 +168,6 @@ coding style].
The +.mk+ file
~~~~~~~~~~~~~~
[[adding-packages-mk]]
Finally, here's the hardest part. Create a file named +libfoo.mk+. It
describes how the package should be downloaded, configured, built,

View File

@@ -25,103 +25,58 @@ system is based on hand-written Makefiles or shell scripts.
09: LIBFOO_LICENSE = GPLv3+
10: LIBFOO_LICENSE_FILES = COPYING
11: LIBFOO_INSTALL_STAGING = YES
12: LIBFOO_CONFIG_SCRIPTS = libfoo-config
13: LIBFOO_DEPENDENCIES = host-libaaa libbbb
14:
15: define LIBFOO_BUILD_CMDS
16: $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all
17: endef
18:
19: define LIBFOO_INSTALL_STAGING_CMDS
20: $(INSTALL) -D -m 0755 $(@D)/libfoo.a $(STAGING_DIR)/usr/lib/libfoo.a
21: $(INSTALL) -D -m 0644 $(@D)/foo.h $(STAGING_DIR)/usr/include/foo.h
22: $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(STAGING_DIR)/usr/lib
23: endef
24:
25: define LIBFOO_INSTALL_TARGET_CMDS
26: $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(TARGET_DIR)/usr/lib
27: $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/foo.d
28: endef
29:
30: define LIBFOO_DEVICES
31: /dev/foo c 666 0 0 42 0 - - -
32: endef
33:
34: define LIBFOO_PERMISSIONS
35: /bin/foo f 4755 0 0 - - - - -
36: endef
37:
38: $(eval $(generic-package))
12: LIBFOO_DEPENDENCIES = host-libaaa libbbb
13:
14: define LIBFOO_BUILD_CMDS
15: $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all
16: endef
17:
18: define LIBFOO_INSTALL_STAGING_CMDS
19: $(INSTALL) -D -m 0755 $(@D)/libfoo.a $(STAGING_DIR)/usr/lib/libfoo.a
20: $(INSTALL) -D -m 0644 $(@D)/foo.h $(STAGING_DIR)/usr/include/foo.h
21: $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(STAGING_DIR)/usr/lib
22: endef
23:
24: define LIBFOO_INSTALL_TARGET_CMDS
25: $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(TARGET_DIR)/usr/lib
26: $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/foo.d
27: endef
28:
29: define LIBFOO_DEVICES
30: /dev/foo c 666 0 0 42 0 - - -
31: endef
32:
33: define LIBFOO_PERMISSIONS
34: /bin/foo f 4755 0 0 - - - - -
35: endef
36:
37: $(eval $(generic-package))
--------------------------------
The Makefile begins on line 6 to 10 with metadata information: the
The Makefile begins on line 6 to 8 with metadata information: the
version of the package (+LIBFOO_VERSION+), the name of the
tarball containing the package (+LIBFOO_SOURCE+) the
Internet location at which the tarball can be downloaded from
(+LIBFOO_SITE+), the license (+LIBFOO_LICENSE+) and file with the
license text (+LIBFOO_LICENSE_FILES+). All variables must start with
the same prefix, +LIBFOO_+ in this case. This prefix is always the
uppercased version of the package name (see below to understand where
the package name is defined).
tarball containing the package (+LIBFOO_SOURCE+) and the
Internet location at which the tarball can be downloaded
(+LIBFOO_SITE+). All variables must start with the same prefix,
+LIBFOO_+ in this case. This prefix is always the uppercased
version of the package name (see below to understand where the package
name is defined).
On line 11, we specify that this package wants to install something to
On line 9, we specify that this package wants to install something to
the staging space. This is often needed for libraries, since they must
install header files and other development files in the staging space.
This will ensure that the commands listed in the
+LIBFOO_INSTALL_STAGING_CMDS+ variable will be executed.
On line 12, we specify that there is some fixing to be done to some
of the 'libfoo-config' files that were installed during
+LIBFOO_INSTALL_STAGING_CMDS+ phase.
These *-config files are executable shell script files that are
located in '$(STAGING_DIR)/usr/bin' directory and are executed
by other 3rd party packages to find out the location and the linking
flags of this particular package.
The problem is that all these *-config files by default give wrong,
host system linking flags that are unsuitable for cross-compiling.
For example: '-I/usr/include' instead of '-I$(STAGING_DIR)/usr/include'
or: '-L/usr/lib' instead of '-L$(STAGING_DIR)/usr/lib'
So some sed magic is done to these scripts to make them give correct
flags.
The argument to be given to +LIBFOO_CONFIG_SCRIPTS+ is the file name(s)
of the shell script(s) needing fixing. All these names are relative to
'$(STAGING_DIR)/usr/bin' and if needed multiple names can be given.
In addition, the scripts listed in +LIBFOO_CONFIG_SCRIPTS+ are removed
from +$(TARGET_DIR)/usr/bin+, since they are not needed on the target.
Example 1:
Package divine installs shell script '$(STAGING_DIR)/usr/bin/divine-config'.
So it's fixup would be:
DIVINE_CONFIG_SCRIPTS = divine-config
Example 2:
Package imagemagick installs the following scripts:
'$(STAGING_DIR)/usr/bin/{Magick,Magick++,MagickCore,MagickWand,Wand}-config'
So it's fixup would be:
IMAGEMAGICK_CONFIG_SCRIPTS = \
Magick-config Magick++-config \
MagickCore-config MagickWand-config Wand-config
On line 13, we specify the list of dependencies this package relies
On line 10, we specify the list of dependencies this package relies
on. These dependencies are listed in terms of lower-case package names,
which can be packages for the target (without the +host-+
prefix) or packages for the host (with the +host-+) prefix).
Buildroot will ensure that all these packages are built and installed
'before' the current package starts its configuration.
The rest of the Makefile, lines 14..27, defines what should be done
at the different steps of the package configuration, compilation and
installation.
The rest of the Makefile defines what should be done at the different
steps of the package configuration, compilation and installation.
+LIBFOO_BUILD_CMDS+ tells what steps should be performed to
build the package. +LIBFOO_INSTALL_STAGING_CMDS+ tells what
steps should be performed to install the package in the staging space.
@@ -132,13 +87,7 @@ All these steps rely on the +$(@D)+ variable, which
contains the directory where the source code of the package has been
extracted.
On line 29..31, we define a device-node file used by this package
(+LIBFOO_DEVICES+).
On line 33..35, we define the permissions to set to specific files
installed by this package (+LIBFOO_PERMISSIONS+).
Finally, on line 37, we call the +generic-package+ function, which
Finally, on line 35, we call the +generic-package+ which
generates, according to the variables defined previously, all the
Makefile code necessary to make your package working.
@@ -199,17 +148,14 @@ information is (assuming the package name is +libfoo+) :
+packagename-$(LIBFOO_VERSION).tar.gz+. +
Example: +LIBFOO_SOURCE = foobar-$(LIBFOO_VERSION).tar.bz2+
* +LIBFOO_PATCH+ may contain a space-separated list of patch file
names, that will be downloaded from the same location as the tarball
indicated in +LIBFOO_SOURCE+, and then applied to the package source
code. If +HOST_LIBFOO_PATCH+ is not specified, it defaults to
+LIBFOO_PATCH+. Note that patches that are included in Buildroot
itself use a different mechanism: all files of the form
+<packagename>-*.patch+ present in the package directory inside
* +LIBFOO_PATCH+ may contain the name of a patch, that will be
downloaded from the same location as the tarball indicated in
+LIBFOO_SOURCE+. If +HOST_LIBFOO_PATCH+ is not specified, it
defaults to +LIBFOO_PATCH+. Note that patches that are included
in Buildroot itself use a different mechanism: all files of the
form +<packagename>-*.patch+ present in the package directory inside
Buildroot will be applied to the package after extraction (see
xref:patch-policy[patching a package]). Finally, patches listed in
the +LIBFOO_PATCH+ variable are applied _before_ the patches stored
in the Buildroot package directory.
xref:patch-policy[patching a package]).
* +LIBFOO_SITE+ provides the location of the package, which can be a
URL or a local filesystem path. HTTP, FTP and SCP are supported URL
@@ -288,13 +234,6 @@ information is (assuming the package name is +libfoo+) :
variables are executed to install the package into the target
directory.
* +LIBFOO_CONFIG_SCRIPTS+ lists the names of the files in
'$(STAGING_DIR)/usr/bin' that need some special fixing to make them
cross-compiling friendly. Multiple file names separated by space can
be given and all are relative to '$(STAGING_DIR)/usr/bin'. The files
listed in +LIBFOO_CONFIG_SCRIPTS+ are also removed from
+$(TARGET_DIR)/usr/bin+ since they are not needed on the target.
* +LIBFOO_DEVICES+ lists the device files to be created by Buildroot
when using the static device table. The syntax to use is the
makedevs one. You can find some documentation for this syntax in the

View File

@@ -5,6 +5,8 @@ Advanced usage
include::using-buildroot-toolchain.txt[]
include::external-toolchain.txt[]
include::ccache-support.txt[]
include::download-location.txt[]

View File

@@ -0,0 +1,38 @@
// -*- mode:doc -*- ;
[[board-support]]
Creating your own board support
-------------------------------
Creating your own board support in Buildroot allows users of a
particular hardware platform to easily build a system that is known to
work.
To do so, you need to create a normal Buildroot configuration that
builds a basic system for the hardware: toolchain, kernel, bootloader,
filesystem and a simple Busybox-only userspace. No specific package
should be selected: the configuration should be as minimal as
possible, and should only build a working basic Busybox system for the
target platform. You can of course use more complicated configurations
for your internal projects, but the Buildroot project will only
integrate basic board configurations. This is because package
selections are highly application-specific.
Once you have a known working configuration, run +make
savedefconfig+. This will generate a minimal +defconfig+ file at the
root of the Buildroot source tree. Move this file into the +configs/+
directory, and rename it +BOARDNAME_defconfig+.
It is recommended to use upstream versions of the Linux kernel and
bootloaders where possible, and also to use default kernel and bootloader
configurations if possible. If the defaults are incorrect for
your board, or no default exists, we encourage you to send fixes to the
corresponding upstream projects.
However, in the mean time, you may want to store kernel or bootloader
configuration or patches specific to your target platform. To do so,
create a directory +board/MANUFACTURER+ and a subdirectory
+board/MANUFACTURER/BOARDNAME+ (after replacing, of course,
MANUFACTURER and BOARDNAME with the appropriate values, in lower case
letters). You can then store your patches and configurations in these
directories, and reference them from the main Buildroot configuration.

View File

@@ -1,428 +0,0 @@
// -*- mode:doc -*- ;
[[configure]]
Details on Buildroot configuration
----------------------------------
All the configuration options in +make *config+ have a help text
providing details about the option. However, a number of topics
require additional details that cannot easily be covered in the help
text and are there covered in the following sections.
Cross-compilation toolchain
~~~~~~~~~~~~~~~~~~~~~~~~~~~
A compilation toolchain is the set of tools that allows you to compile
code for your system. It consists of a compiler (in our case, +gcc+),
binary utils like assembler and linker (in our case, +binutils+) and a
C standard library (for example
http://www.gnu.org/software/libc/libc.html[GNU Libc],
http://www.uclibc.org/[uClibc]).
The system installed on your development station certainly already has
a compilation toolchain that you can use to compile an application
that runs on your system. If you're using a PC, your compilation
toolchain runs on an x86 processor and generates code for an x86
processor. Under most Linux systems, the compilation toolchain uses
the GNU libc (glibc) as the C standard library. This compilation
toolchain is called the "host compilation toolchain". The machine on
which it is running, and on which you're working, is called the "host
system" footnote:[This terminology differs from what is used by GNU
configure, where the host is the machine on which the application will
run (which is usually the same as target)].
The compilation toolchain is provided by your distribution, and
Buildroot has nothing to do with it (other than using it to build a
cross-compilation toolchain and other tools that are run on the
development host).
As said above, the compilation toolchain that comes with your system
runs on and generates code for the processor in your host system. As
your embedded system has a different processor, you need a
cross-compilation toolchain - a compilation toolchain that runs on
your _host system_ but generates code for your _target system_ (and
target processor). For example, if your host system uses x86 and your
target system uses ARM, the regular compilation toolchain on your host
runs on x86 and generates code for x86, while the cross-compilation
toolchain runs on x86 and generates code for ARM.
Buildroot provides different solutions to build, or use existing
cross-compilation toolchains:
* The *internal toolchain backend*, called +Buildroot toolchain+ in
the configuration interface.
* The *external toolchain backend*, called +External toolchain+ in
the configuration interface.
* The *Crosstool-NG toolchain backend*, called +Crosstool-NG
toolchain+ in the configuration interface.
The choice between these three solutions is done using the +Toolchain
Type+ option in the +Toolchain+ menu. Once one solution has been
chosen, a number of configuration options appear, they are detailed in
the following sections.
Internal toolchain backend
^^^^^^^^^^^^^^^^^^^^^^^^^^
The _internal toolchain backend_ is the backend where Buildroot builds
by itself a cross-compilation toolchain, before building the userspace
applications and libraries for your target embedded system.
This backend is the historical backend of Buildroot, and is limited to
the usage of the http://www.uclibc.org[uClibc C library] (i.e, the
_glibc_ and _eglibc_ C libraries are not supported by this backend,
see the _External toolchain backend_ and _Crosstool-NG toolchain
backend_ for solutions to use either _glibc_ or _eglibc_).
Once you have selected this backend, a number of options appear. The
most important ones allow to:
* Change the version of the Linux kernel headers used to build the
toolchain. This item deserves a few explanations. In the process of
building a cross-compilation toolchain, the C library is being
built. This library provides the interface between userspace
applications and the Linux kernel. In order to know how to "talk"
to the Linux kernel, the C library needs to have access to the
_Linux kernel headers_ (i.e, the +.h+ files from the kernel), which
define the interface between userspace and the kernel (system
calls, data structures, etc.). Since this interface is backward
compatible, the version of the Linux kernel headers used to build
your toolchain do not need to match _exactly_ the version of the
Linux kernel you intend to run on your embedded system. They only
need to have a version equal or older to the version of the Linux
kernel you intend to run. If you use kernel headers that are more
recent than the Linux kernel you run on your embedded system, then
the C library might be using interfaces that are not provided by
your Linux kernel.
* Change the version and the configuration of the uClibc C
library. The default options are usually fine. However, if you
really need to specifically customize the configuration of your
uClibc C library, you can pass a specific configuration file
here. Or alternatively, you can run the +make uclibc-menuconfig+
command to get access to uClibc's configuration interface. Note
that all packages in Buildroot are tested against the default
uClibc configuration bundled in Buildroot: if you deviate from this
configuration by removing features from uClibc, some packages may
no longer build.
* Change the version of the GCC compiler and binutils.
* Select a number of toolchain options: whether the toolchain should
have largefile support (i.e support for files larger than 2 GB on
32 bits systems), IPv6 support, RPC support (used mainly for NFS),
wide-char support, locale support (for internationalization), C++
support, thread support. Depending on which options you choose, the
number of userspace applications and libraries visible in Buildroot
menus will change: many applications and libraries require certain
toolchain options to be enabled. Most packages show a comment when
a certain toolchain option is required to be able to enable those
packages.
It is worth noting that whenever one of those options is modified,
then the entire toolchain and system must be rebuilt. See
xref:full-rebuild[].
Advantages of this backend:
* Well integrated with Buildroot
* Fast, only builds what's necessary
Drawbacks of this backend:
* Rebuilding the toolchain is needed when doing +make clean+, which
takes time. If you're trying to reduce your build time, consider
using the _External toolchain backend_.
* Limited to the _uClibc_ C library.
External toolchain backend
^^^^^^^^^^^^^^^^^^^^^^^^^^
The _external toolchain backend_ allows to use existing pre-built
cross-compilation toolchains. Buildroot knows about a number of
well-known cross-compilation toolchains (from
http://www.linaro.org[Linaro] for ARM,
http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/[Sourcery
CodeBench] for ARM, x86, x86-64, PowerPC, MIPS and SuperH,
https://blackfin.uclinux.org/gf/project/toolchain[Blackfin toolchains
from ADI], http://git.xilinx.com/[Xilinx toolchains for Microblaze],
etc.) and is capable of downloading them automatically, or it can be
pointed to a custom toolchain, either available for download or
installed locally.
Then, you have three solutions to use an external toolchain:
* Use a predefined external toolchain profile, and let Buildroot
download, extract and install the toolchain. Buildroot already knows
about a few CodeSourcery, Linaro, Blackfin and Xilinx toolchains.
Just select the toolchain profile in +Toolchain+ from the
available ones. This is definitely the easiest solution.
* Use a predefined external toolchain profile, but instead of having
Buildroot download and extract the toolchain, you can tell Buildroot
where your toolchain is already installed on your system. Just
select the toolchain profile in +Toolchain+ through the available
ones, unselect +Download toolchain automatically+, and fill the
+Toolchain path+ text entry with the path to your cross-compiling
toolchain.
* Use a completely custom external toolchain. This is particularly
useful for toolchains generated using crosstool-NG. To do this,
select the +Custom toolchain+ solution in the +Toolchain+ list. You
need to fill the +Toolchain path+, +Toolchain prefix+ and +External
toolchain C library+ options. Then, you have to tell Buildroot what
your external toolchain supports. If your external toolchain uses
the 'glibc' library, you only have to tell whether your toolchain
supports C\+\+ or not and whether it has built-in RPC support. If
your external toolchain uses the 'uClibc'
library, then you have to tell Buildroot if it supports largefile,
IPv6, RPC, wide-char, locale, program invocation, threads and
C++. At the beginning of the execution, Buildroot will tell you if
the selected options do not match the toolchain configuration.
Our external toolchain support has been tested with toolchains from
CodeSourcery and Linaro, toolchains generated by
http://crosstool-ng.org[crosstool-NG], and toolchains generated by
Buildroot itself. In general, all toolchains that support the
'sysroot' feature should work. If not, do not hesitate to contact the
developers.
We do not support toolchains from the
http://www.denx.de/wiki/DULG/ELDK[ELDK] of Denx, for two reasons:
* The ELDK does not contain a pure toolchain (i.e just the compiler,
binutils, the C and C++ libraries), but a toolchain that comes with
a very large set of pre-compiled libraries and programs. Therefore,
Buildroot cannot import the 'sysroot' of the toolchain, as it would
contain hundreds of megabytes of pre-compiled libraries that are
normally built by Buildroot.
* The ELDK toolchains have a completely non-standard custom mechanism
to handle multiple library variants. Instead of using the standard
GCC 'multilib' mechanism, the ARM ELDK uses different symbolic links
to the compiler to differentiate between library variants (for ARM
soft-float and ARM VFP), and the PowerPC ELDK compiler uses a
+CROSS_COMPILE+ environment variable. This non-standard behaviour
makes it difficult to support ELDK in Buildroot.
We also do not support using the distribution toolchain (i.e the
gcc/binutils/C library installed by your distribution) as the
toolchain to build software for the target. This is because your
distribution toolchain is not a "pure" toolchain (i.e only with the
C/C++ library), so we cannot import it properly into the Buildroot
build environment. So even if you are building a system for a x86 or
x86_64 target, you have to generate a cross-compilation toolchain with
Buildroot or crosstool-NG.
If you want to generate a custom toolchain for your project, that can
be used as an external toolchain in Buildroot, our recommandation is
definitely to build it with http://crosstool-ng.org[crosstool-NG]. We
recommend to build the toolchain separately from Buildroot, and then
_import_ it in Buildroot using the external toolchain backend.
Advantages of this backend:
* Allows to use well-known and well-tested cross-compilation
toolchains.
* Avoids the build time of the cross-compilation toolchain, which is
often very significant in the overall build time of an embedded
Linux system.
* Not limited to uClibc: glibc and eglibc toolchains are supported.
Drawbacks of this backend:
* If your pre-built external toolchain has a bug, may be hard to get a
fix from the toolchain vendor, unless you build your external
toolchain by yourself using Crosstool-NG.
Crosstool-NG toolchain backend
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The _Crosstool-NG toolchain backend_ integrates the
http://crosstool-ng.org[Crosstool-NG] project with
Buildroot. Crosstool-NG is a highly-configurable, versatile and
well-maintained tool to build cross-compilation toolchains.
If you select the +Crosstool-NG toolchain+ option in +Toolchain Type+,
then you will be offered to:
* Choose which C library you want to use. Crosstool-NG supports the
three most important C libraries used in Linux systems: glibc,
eglibc and uClibc
* Choose a custom Crosstool-NG configuration file. Buildroot has its
own default configuration file (one per C library choice), but you
can provide your own. Another option is to run +make
ctng-menuconfig+ to get access to the Crosstool-NG configuration
interface. However, note that all Buildroot packages have only been
tested with the default Crosstool-NG configurations.
* Choose a number of toolchain options (rather limited if glibc or
eglibc are used, or numerous if uClibc is used)
When you will start the Buildroot build process, Buildroot will
download and install the Crosstool-NG tool, build and install its
required dependencies, and then run Crosstool-NG with the provided
configuration.
Advantages of this backend:
* Not limited to uClibc: glibc and eglibc are supported.
* Vast possibilities of toolchain configuration.
Drawbacks of this backend:
* Crosstool-NG is not perfectly integrated with Buildroot. For
example, Crosstool-NG has its own download infrastructure, not
integrated with the one in Buildroot (for example a Buildroot +make
source+ will not download all the source code tarballs needed by
Crosstool-NG).
* The toolchain is completely rebuilt from scratch if you do a +make
clean+.
/dev management
~~~~~~~~~~~~~~~
On a Linux system, the +/dev+ directory contains special files, called
_device files_, that allow userspace applications to access the
hardware devices managed by the Linux kernel. Without these _device
files_, your userspace applications would not be able to use the
hardware devices, even if they are properly recognized by the Linux
kernel.
Under +System configuration+, +/dev management+, Buildroot offers four
different solutions to handle the +/dev+ directory :
* The first solution is *Static using device table*. This is the old
classical way of handling device files in Linux. With this method,
the device files are persistently stored in the root filesystem
(i.e they persist accross reboots), and there is nothing that will
automatically create and remove those device files when hardware
devices are added or removed from the system. Buildroot therefore
creates a standard set of device files using a _device table_, the
default one being stored in +system/device_table_dev.txt+ in the
Buildroot source code. This file is processed when Buildroot
generates the final root filesystem image, and the _device files_
are therefore not visible in the +output/target+ directory. The
+BR2_ROOTFS_STATIC_DEVICE_TABLE+ option allows to change the
default device table used by Buildroot, or to add an additional
device table, so that additional _device files_ are created by
Buildroot during the build. So, if you use this method, and a
_device file_ is missing in your system, you can for example create
a +board/<yourcompany>/<yourproject>/device_table_dev.txt+ file
that contains the description of your additional _device files_,
and then you can set +BR2_ROOTFS_STATIC_DEVICE_TABLE+ to
+system/device_table_dev.txt
board/<yourcompany>/<yourproject>/device_table_dev.txt+. For more
details about the format of the device table file, see
xref:makedev-syntax[].
* The second solution is *Dynamic using devtmpfs only*. _devtmpfs_ is
a virtual filesystem inside the Linux kernel that has been
introduced in kernel 2.6.32 (if you use an older kernel, it is not
possible to use this option). When mounted in +/dev+, this virtual
filesystem will automatically make _device files_ appear and
disappear as hardware devices are added and removed from the
system. This filesystem is not persistent accross reboots: it is
filled dynamically by the kernel. Using _devtmpfs_ requires the
following kernel configuration options to be enabled:
+CONFIG_DEVTMPFS+ and +CONFIG_DEVTMPFS_MOUNT+. When Buildroot is in
charge of building the Linux kernel for your embedded device, it
makes sure that those two options are enabled. However, if you
build your Linux kernel outside of Buildroot, then it is your
responsability to enable those two options (if you fail to do so,
your Buildroot system will not boot).
* The third solution is *Dynamic using mdev*. This method also relies
on the _devtmpfs_ virtual filesystem detailed above (so the
requirement to have +CONFIG_DEVTMPFS+ and +CONFIG_DEVTMPFS_MOUNT+
enabled in the kernel configuration still apply), but adds the
+mdev+ userspace utility on top of it. +mdev+ is a program part of
Busybox that the kernel will call every time a device is added or
removed. Thanks to the +/etc/mdev.conf+ configuration file, +mdev+
can be configured to for example, set specific permissions or
ownership on a device file, call a script or application whenever a
device appears or disappear, etc. Basically, it allows _userspace_
to react on device addition and removal events. +mdev+ can for
example be used to automatically load kernel modules when devices
appear on the system. +mdev+ is also important if you have devices
that require a firmware, as it will be responsible for pushing the
firmware contents to the kernel. +mdev+ is a lightweight
implementation (with fewer features) of +udev+. For more details
about +mdev+ and the syntax of its configuration file, see
http://git.busybox.net/busybox/tree/docs/mdev.txt.
* The fourth solution is *Dynamic using udev*. This method also
relies on the _devtmpfs_ virtual filesystem detailed above, but
adds the +udev+ userspace daemon on top of it. +udev+ is a daemon
that runs in the background, and gets called by the kernel when a
device gets added or removed from the system. It is a more
heavyweight solution than +mdev+, but provides higher flexibility
and is sometimes mandatory for some system components (systemd for
example). +udev+ is the mechanism used in most desktop Linux
distributions. For more details about +udev+, see
http://en.wikipedia.org/wiki/Udev.
The Buildroot developers recommandation is to start with the *Dynamic
using devtmpfs only* solution, until you have the need for userspace
to be notified when devices are added/removed, or if firmwares are
needed, in which case *Dynamic using mdev* is usually a good solution.
init system
~~~~~~~~~~~
The _init_ program is the first userspace program started by the
kernel (it carries the PID number 1), and is responsible for starting
the userspace services and programs (for example: web server,
graphical applications, other network servers, etc.).
Buildroot allows to use three different types of init systems, which
can be chosen from +System configuration+, +Init system+:
* The first solution is *Busybox*. Amongst many programs, Busybox has
an implementation of a basic +init+ program, which is sufficient
for most embedded systems. Enabling the +BR2_INIT_BUSYBOX+ will
ensure Busybox will build and install its +init+ program. This is
the default solution in Buildroot. The Busybox +init+ program will
read the +/etc/inittab+ file at boot to know what to do. The syntax
of this file can be found in
http://git.busybox.net/busybox/tree/examples/inittab (note that
Busybox +inittab+ syntax is special: do not use a random +inittab+
documentation from the Internet to learn about Busybox
+inittab+). The default +inittab+ in Buildroot is stored in
+system/skeleton/etc/inittab+. Apart from mounting a few important
filesystems, the main job the default inittab does is to start the
+/etc/init.d/rcS+ shell script, and start a +getty+ program (which
provides a login prompt).
* The second solution is *systemV*. This solution uses the old
traditional _sysvinit_ program, packed in Buildroot in
+package/sysvinit+. This was the solution used in most desktop
Linux distributions, until they switched to more recent
alternatives such as Upstart or Systemd. +sysvinit+ also works with
an +inittab+ file (which has a slightly different syntax than the
one from Busybox). The default +inittab+ installed with this init
solution is located in +package/sysvinit/inittab+.
* The third solution is *systemd*. +systemd+ is the new generation
init system for Linux. It does far more than traditional _init_
programs: aggressive parallelization capabilities, uses socket and
D-Bus activation for starting services, offers on-demand starting
of daemons, keeps track of processes using Linux control groups,
supports snapshotting and restoring of the system state,
etc. +systemd+ will be useful on relatively complex embedded
systems, for example the ones requiring D-Bus and services
communicating between each other. It is worth noting that +systemd+
brings a fairly big number of large dependencies: +dbus+, +glib+
and more. For more details about +systemd+, see
http://www.freedesktop.org/wiki/Software/systemd.
The solution recommended by Buildroot developers is to use the
*Busybox init* as it is sufficient for most embedded
systems. *systemd* can be used for more complex situations.

View File

@@ -12,37 +12,8 @@ there are a few ways to customize the resulting target filesystem.
simply make your changes here and run make afterwards - this will
rebuild the target filesystem image. This method allows you to do
anything to the target filesystem, but if you decide to completely
rebuild your toolchain and tools, these changes will be lost. This
solution is therefore only useful for quick tests only: _changes do
not survive the +make clean+ command_. Once you have validated your
changes, you should make sure that they will persist after a +make
clean+ by using one of the following methods.
* Create a filesystem overlay: a tree of files that are copied directly
over the target filesystem after it has been built. Set
+BR2_ROOTFS_OVERLAY+ to the top of the tree. +.git+, +.svn+, +.hg+
directories, +.empty+ files and files ending with +~+ are excluded.
_Among these first 3 methods, this one should be preferred_.
* In the Buildroot configuration, you can specify the path to a
*post-build script*, that gets called 'after' Buildroot builds all the
selected software, but 'before' the rootfs packages are
assembled. The +BR2_ROOTFS_POST_BUILD_SCRIPT+ will allow you to
specify the location of your post-build script. This option can be
found in the +System configuration+ menu. The destination root
filesystem folder is given as the first argument to this script,
and this script can then be used to remove or modify any file in your
target filesystem. You should, however, use this feature with care.
Whenever you find that a certain package generates wrong or unneeded
files, you should fix that package rather than work around it with a
post-build cleanup script.
You may also use these variables in your post-build script:
- +BUILDROOT_CONFIG+: the path to the Buildroot .config file
- +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+: see
xref:generic-package-reference[]
- +BINARIES_DIR+: the place where all binary files (aka images) are
stored
- +BASE_DIR+: the base output directory
rebuild your toolchain and tools, these changes will be lost.
_Changes do not survive the +make clean+ command_.
* Create your own 'target skeleton'. You can start with the default
skeleton available under +system/skeleton+ and then customize it to
@@ -51,30 +22,24 @@ there are a few ways to customize the resulting target filesystem.
location of your custom skeleton. These options can be found in the
+System configuration+ menu. At build time, the contents of the
skeleton are copied to output/target before any package
installation. Note that this method is *not recommended*, as it
duplicates the entire skeleton, which prevents from taking advantage
of the fixes or improvements brought to the default Buildroot
skeleton. The recommended method is to use the _post-build script_
mechanism described in the previous item.
installation.
Note also that if you want to perform some specific actions *after*
all filesystem images have been created (for example to automatically
extract your root filesystem tarball in a location exported by your
NFS server, or to create a special firmware image that bundles your
root filesystem and kernel image, or any other custom action), you can
specify a space-separated list of scripts in the
+BR2_ROOTFS_POST_IMAGE_SCRIPT+ configuration option.
* In the Buildroot configuration, you can specify the path to a
*post-build script*, that gets called 'after' Buildroot builds all the
selected software, but 'before' the rootfs packages are
assembled. The +BR2_ROOTFS_POST_BUILD_SCRIPT+ will allow you to
specify the location of your post-build script. This option can be
found in the +System configuration+ menu. The destination root
filesystem folder is given as the first argument to this script,
and this script can then be used to copy programs, static data or
any other needed file to your target filesystem. You should,
however, use this feature with care. Whenever you find that a
certain package generates wrong or unneeded files, you should fix
that package rather than work around it with a post-build cleanup
script. _Among these first 3 methods, this one should be preferred_.
Each of those scripts will be called with the path to the +images+
output directory as first and unique argument, and will be executed
with the main Buildroot source directory as the current
directory. Those scripts will be executed as the user that executes
Buildroot, which should normally not be the root user. Therefore, any
action requiring root permissions in one of these post-image script
will require special handling (usage of fakeroot or sudo), which is
left to the script developer.
Just like for the _post-build scripts_ mentioned above, you also have
access to the following environment variables from your _post-image
scripts_: +BUILDROOT_CONFIG+, +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+,
+BINARIES_DIR+ and +BASE_DIR+.
* A special package, 'customize', stored in +package/customize+ can be
used. You can put all the files that you want to see in the final
target root filesystem in +package/customize/source+, and then
enable this special package in the configuration system. _This
method is marked as deprecated_.

View File

@@ -1,159 +0,0 @@
// -*- mode:doc -*-
[[customize-store]]
Storing the configuration
-------------------------
When you have a buildroot configuration that you are satisfied with and
you want to share it with others, put it under revision control or move
on to a different buildroot project, you need to store the configuration
so it can be rebuilt later. The configuration that needs to be stored
consists of the buildroot configuration, the configuration files for
packages that you use (kernel, busybox, uClibc, ...), and your rootfs
modifications.
Basics for storing the configuration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[[customize-store-basics]]
Buildroot configuration
^^^^^^^^^^^^^^^^^^^^^^^
For storing the buildroot configuration itself, buildroot offers the
following command: +make savedefconfig+.
This strips the buildroot configuration down by removing configuration
options that are at their default value. The result is stored in a file
called +defconfig+. If you want to save it in another place, change
the +BR2_DEFCONFIG+ option, or call make with +make savedefconfig
BR2_DEFCONFIG=<path-to-defconfig>+. The usual place is
+configs/<boardname>_defconfig+. The configuration can then be rebuilt by
running +make <boardname>_defconfig+.
Alternatively, you can copy the file to any other place and rebuild with
+make defconfig BR2_DEFCONFIG=<path-to-defconfig-file>+.
Other package configuration
^^^^^^^^^^^^^^^^^^^^^^^^^^^
The configuration files for busybox, the linux kernel, barebox, uClibc and
crosstool-NG should be stored as well if changed. For each of these, a
buildroot configuration option exists to point to an input configuration
file, e.g. +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+. To save their
configuration, set those configuration options to a path outside
your output directory, e.g. +board/<manufacturer>/<boardname>/linux.config+.
Then, copy the configuration files to that path.
Make sure that you create a configuration file 'before' changing
the +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+ etc. options. Otherwise,
buildroot will try to access this config file, which doesn't exist
yet, and will fail. You can create the configuration file by running
+make linux-menuconfig+ etc.
Buildroot provides a few helper targets to make the saving of
configuration files easier.
* +make linux-update-defconfig+ saves the linux configuration to the
path specified by +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+. It
simplifies the config file by removing default values. However,
this only works with kernels starting from 2.6.33. For earlier
kernels, use +make linux-update-config+.
* +make busybox-update-config+ saves the busybox configuration to the
path specified by +BR2_PACKAGE_BUSYBOX_CONFIG+.
* +make uclibc-update-config+ saves the uClibc configuration to the
path specified by +BR2_UCLIBC_CONFIG+.
* +make barebox-update-defconfig+ saves the barebox configuration to the
path specified by +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE+.
* For crosstool-NG and at91bootstrap3, no helper exists so you
have to copy the config file manually to +BR2_TOOLCHAIN_CTNG_CONFIG+,
resp. +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+.
Creating your own board support
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Creating your own board support in Buildroot allows users of a
particular hardware platform to easily build a system that is known to
work.
To do so, you need to create a normal Buildroot configuration that
builds a basic system for the hardware: toolchain, kernel, bootloader,
filesystem and a simple Busybox-only userspace. No specific package
should be selected: the configuration should be as minimal as
possible, and should only build a working basic Busybox system for the
target platform. You can of course use more complicated configurations
for your internal projects, but the Buildroot project will only
integrate basic board configurations. This is because package
selections are highly application-specific.
Once you have a known working configuration, run +make
savedefconfig+. This will generate a minimal +defconfig+ file at the
root of the Buildroot source tree. Move this file into the +configs/+
directory, and rename it +<boardname>_defconfig+.
It is recommended to use as much as possible upstream versions of the
Linux kernel and bootloaders, and to use as much as possible default
kernel and bootloader configurations. If they are incorrect for your
board, or no default exists, we encourage you to send fixes to the
corresponding upstream projects.
However, in the mean time, you may want to store kernel or bootloader
configuration or patches specific to your target platform. To do so,
create a directory +board/<manufacturer>+ and a subdirectory
+board/<manufacturer>/<boardname>+. You can then store your patches
and configurations in these directories, and reference them from the main
Buildroot configuration.
Step-by-step instructions for storing configuration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To store the configuration for a specific product, device or
application, it is advisable to use the same conventions as for the
board support: put the buildroot defconfig in the +configs+ directory,
and any other files in a subdirectory of the +boards+ directory. This
section gives step-by-step instructions about how to do that. Of course,
you can skip the steps that are not relevant for your use case.
1. +make menuconfig+ to configure toolchain, packages and kernel.
1. +make linux-menuconfig+ to update the kernel config, similar for
other configuration.
1. +mkdir -p board/<manufacturer>/<boardname>+
1. Set the following options to +board/<manufacturer>/<boardname>/<package>.config+
(as far as they are relevant):
* +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+
* +BR2_PACKAGE_BUSYBOX_CONFIG+
* +BR2_TOOLCHAIN_CTNG_CONFIG+
* +BR2_UCLIBC_CONFIG+
* +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
* +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE+
1. Write the configuration files:
* +make linux-update-defconfig+
* +make busybox-update-config+
* +cp <output>/build/build-toolchain/.config board/<manufacturer>/<boardname>/ctng.config+
* +make uclibc-update-config+
* +cp <output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+
* +make barebox-update-defconfig+
1. Create +board/<manufacturer>/<boardname>/fs-overlay/+ and fill it
with additional files you need on your rootfs, e.g.
+board/<manufacturer>/<boardname>/fs-overlay/etc/inittab+.
Set +BR2_ROOTFS_OVERLAY+
to +board/<manufacturer>/<boardname>/fs-overlay+.
1. Create a post-build script
+board/<manufacturer>/<boardname>/post-build.sh+. Set
+BR2_ROOTFS_POST_BUILD_SCRIPT+ to
+board/<manufacturer>/<boardname>/post-build.sh+
1. If additional setuid permissions have to be set or device nodes have
to be created, create +board/<manufacturer>/<boardname>/device_table.txt+
and add that path to +BR2_ROOTFS_DEVICE_TABLE+.
1. +make savedefconfig+ to save the buildroot configuration.
1. +cp defconfig configs/<boardname>_defconfig+
1. To add patches to the linux build, set +BR2_LINUX_KERNEL_PATCH+ to
+board/<manufacturer>/<boardname>/patches/linux/+ and add your
patches in that directory. Each patch should be called
+linux-<num>-<description>.patch+. Similar for U-Boot, barebox,
at91bootstrap and at91bootstrap3.
1. If you need modifications to other packages, or if you need to add
packages, do that directly in the +packages/+ directory, following the
instructions in xref:adding-packages[].

View File

@@ -12,5 +12,3 @@ include::customize-uclibc-config.txt[]
include::customize-kernel-config.txt[]
include::customize-toolchain.txt[]
include::customize-store.txt[]

View File

@@ -3,18 +3,25 @@
Location of downloaded packages
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The various tarballs that are downloaded by Buildroot are all stored
in +BR2_DL_DIR+, which by default is the +dl+ directory. If you want
The various tarballs that are downloaded by Buildroot are all stored in
+DL_DIR+, which by default is the +dl+ directory. If you want
to keep a complete version of Buildroot which is known to be working
with the associated tarballs, you can make a copy of this directory.
This will allow you to regenerate the toolchain and the target
filesystem with exactly the same versions.
This will allow you to regenerate the toolchain and the target filesystem
with exactly the same versions.
If you maintain several Buildroot trees, it might be better to have a
shared download location. This can be achieved by pointing the
+BUILDROOT_DL_DIR+ environment variable to a directory. If this is
set, then the value of +BR2_DL_DIR+ in the Buildroot configuration is
overridden. The following line should be added to +<~/.bashrc>+.
shared download location. This can be accessed by creating a symbolic
link from the +dl+ directory to the shared download location:
-----------------
$ ln -s <shared download location> dl
-----------------
Another way of accessing a shared download location is to create the
+BUILDROOT_DL_DIR+ environment variable. If this is set, then the
value of DL_DIR in the project is overridden. The following line
should be added to +<~/.bashrc>+.
-----------------
$ export BUILDROOT_DL_DIR <shared download location>

View File

@@ -1,30 +0,0 @@
// -*- mode:doc; -*-
Integration with Eclipse
------------------------
While a part of the embedded Linux developers like classical text
editors like Vim or Emacs, and command-line based interfaces, a number
of other embedded Linux developers like richer graphical interfaces to
do their development work. Eclipse being one of the most popular
Integrated Development Environment, Buildroot integrates with Eclipse
in order to ease the development work of Eclipse users.
Our integration with Eclipse simplifies the compilation, remote
execution and remote debugging of applications and libraries that are
built on top of a Buildroot system. It does not integrate the
Buildroot configuration and build processes themselves with
Eclipse. Therefore, the typical usage model of our Eclipse integration
would be:
* Configure your Buildroot system with +make menuconfig+, +make
xconfig+ or any other configuration interface provided with
Buildroot.
* Build your Buildroot system by running +make+.
* Start Eclipse to develop, execute and debug your own custom
applications and libraries, that will rely on the libraries built
and installed by Buildroot.
The Buildroot Eclipse integration installation process and usage is
described in detail at
https://github.com/mbats/eclipse-buildroot-bundle/wiki.

View File

@@ -0,0 +1,112 @@
// -*- mode:doc; -*-
Embedded system basics
----------------------
When developing an embedded system, there are a number of choices to
address:
* the cross-toolchain: target architecture/C library/...
* the bootloader
* kernel options
* the device management
* the init system
* the package selection (busybox vs. "real" programs, ...)
* ...
Some of these may be influenced by the target hardware.
Some of the choices may also add some constraints when you develop the
final application for which your target is designed (e.g. some
functions may be provided by some C libraries and missing in some
others, ...). So, these choices should be carefully made.
Buildroot allows you to set most of these options to fit your needs.
Moreover, Buildroot provides an infrastructure for reproducing the
build process of your kernel, cross-toolchain, and embedded root
filesystem. Being able to reproduce the build process will be useful
when a component needs to be patched or updated or when another person
is supposed to take over the project.
[[cross-compilation-and-cross-toolchain]]
Cross-compilation & cross-toolchain
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A compilation toolchain is the set of tools that allows you to compile
code for your system. It consists of a compiler (in our case, +gcc+),
binary utils like assembler and linker (in our case, +binutils+) and a
C standard library (for example
http://www.gnu.org/software/libc/libc.html[GNU Libc],
http://www.uclibc.org/[uClibc] or
http://www.fefe.de/dietlibc/[dietlibc]).
The system installed on your development station certainly already has
a compilation toolchain that you can use to compile an application
that runs on your system. If you're using a PC, your compilation
toolchain runs on an x86 processor and generates code for an x86
processor. Under most Linux systems, the compilation toolchain uses
the GNU libc (glibc) as the C standard library. This compilation
toolchain is called the "host compilation toolchain". The machine on
which it is running, and on which you're working, is called the "host
system" footnote:[This terminology differs from what is used by GNU
configure, where the host is the machine on which the application will
run (which is usually the same as target)].
The compilation toolchain is provided by your distribution, and
Buildroot has nothing to do with it (other than using it to build a
cross-compilation toolchain and other tools that are run on the
development host).
As said above, the compilation toolchain that comes with your system
runs on and generates code for the processor in your host system. As
your embedded system has a different processor, you need a
cross-compilation toolchain - a compilation toolchain that runs on
your _host system_ but generates code for your _target system_ (and
target processor). For example, if your host system uses x86 and your
target system uses ARM, the regular compilation toolchain on your host
runs on x86 and generates code for x86, while the cross-compilation
toolchain runs on x86 and generates code for ARM.
Even if your embedded system uses an x86 processor, you might be
interested in Buildroot for two reasons:
* The compilation toolchain on your host certainly uses the GNU Libc
which is a complete but huge C standard library. Instead of using
GNU Libc on your target system, you can use uClibc which is a tiny C
standard library. If you want to use this C library, then you need a
compilation toolchain to generate binaries linked with it. Buildroot
can do that for you.
* Buildroot automates the building of a root filesystem with all
needed tools like busybox. That makes it much easier than doing it
by hand.
You might wonder why such a tool is needed when you can compile +gcc+,
+binutils+, +uClibc+ and all the other tools by hand. Of course doing
so is possible, but dealing with all of the configure options and
problems of every +gcc+ or +binutils+ version is very time-consuming
and uninteresting. Buildroot automates this process through the use
of Makefiles and has a collection of patches for each +gcc+ and
+binutils+ version to make them work on most architectures.
Buildroot offers a number of options and settings that can be tuned
when defining the cross-toolchain (refer to xref:toolchain-custom[]).
[[bootloader]]
Bootloader
~~~~~~~~~~
TODO
[[device-management]]
Device management
~~~~~~~~~~~~~~~~~
TODO
[[init-system]]
Init system
~~~~~~~~~~~
TODO

View File

@@ -0,0 +1,88 @@
// -*- mode:doc -*- ;
[[external-toolchain]]
Using an external toolchain
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Using an already existing toolchain is useful for different
reasons:
* you already have a toolchain that is known to work for your specific
CPU
* you want to speed up the Buildroot build process by skipping the
long toolchain build part
* the toolchain generation feature of Buildroot is not sufficiently
flexible for you (for example if you need to generate a system with
'glibc' instead of 'uClibc')
Buildroot supports using existing toolchains through a mechanism
called 'external toolchain'. The external toolchain mechanism is
enabled in the +Toolchain+ menu, by selecting +External toolchain+ in
+Toolchain type+.
Then, you have three solutions to use an external toolchain:
* Use a predefined external toolchain profile, and let Buildroot
download, extract and install the toolchain. Buildroot already knows
about a few CodeSourcery, Linaro, Blackfin and Xilinx toolchains.
Just select the toolchain profile in +Toolchain+ from the
available ones. This is definitely the easiest solution.
* Use a predefined external toolchain profile, but instead of having
Buildroot download and extract the toolchain, you can tell Buildroot
where your toolchain is already installed on your system. Just
select the toolchain profile in +Toolchain+ through the available
ones, unselect +Download toolchain automatically+, and fill the
+Toolchain path+ text entry with the path to your cross-compiling
toolchain.
* Use a completely custom external toolchain. This is particularly
useful for toolchains generated using crosstool-NG. To do this,
select the +Custom toolchain+ solution in the +Toolchain+ list. You
need to fill the +Toolchain path+, +Toolchain prefix+ and +External
toolchain C library+ options. Then, you have to tell Buildroot what
your external toolchain supports. If your external toolchain uses
the 'glibc' library, you only have to tell whether your toolchain
supports C\+\+ or not and whether it has built-in RPC support. If
your external toolchain uses the 'uClibc'
library, then you have to tell Buildroot if it supports largefile,
IPv6, RPC, wide-char, locale, program invocation, threads and
C++. At the beginning of the execution, Buildroot will tell you if
the selected options do not match the toolchain configuration.
Our external toolchain support has been tested with toolchains from
CodeSourcery and Linaro, toolchains generated by
http://crosstool-ng.org[crosstool-NG], and toolchains generated by
Buildroot itself. In general, all toolchains that support the
'sysroot' feature should work. If not, do not hesitate to contact the
developers.
We do not support toolchains from the
http://www.denx.de/wiki/DULG/ELDK[ELDK] of Denx, for two reasons:
* The ELDK does not contain a pure toolchain (i.e just the compiler,
binutils, the C and C++ libraries), but a toolchain that comes with
a very large set of pre-compiled libraries and programs. Therefore,
Buildroot cannot import the 'sysroot' of the toolchain, as it would
contain hundreds of megabytes of pre-compiled libraries that are
normally built by Buildroot.
* The ELDK toolchains have a completely non-standard custom mechanism
to handle multiple library variants. Instead of using the standard
GCC 'multilib' mechanism, the ARM ELDK uses different symbolic links
to the compiler to differentiate between library variants (for ARM
soft-float and ARM VFP), and the PowerPC ELDK compiler uses a
+CROSS_COMPILE+ environment variable. This non-standard behaviour
makes it difficult to support ELDK in Buildroot.
We also do not support using the distribution toolchain (i.e the
gcc/binutils/C library installed by your distribution) as the
toolchain to build software for the target. This is because your
distribution toolchain is not a "pure" toolchain (i.e only with the
C/C++ library), so we cannot import it properly into the Buildroot
build environment. So even if you are building a system for a x86 or
x86_64 target, you have to generate a cross-compilation toolchain with
Buildroot or crosstool-NG.

View File

@@ -89,6 +89,17 @@ If you need documentation data on your target anyway, then Buildroot
is not suitable for your purpose, and you should look for a _real
distribution_ (see: xref:faq-no-compiler-on-target[]).
[[faq-depends-on-vs-select]]
+Config.in+: _depends on_ vs _select_
-------------------------------------
When adding a new package to Buildroot, you will most likely have to
deal with expressing the dependencies of this package.
In the +Config.in+ file, dependencies may be expressed following two
semantics.
See xref:depends-on-vs-select[choosing between _depends_ and _select_].
[[faq-why-not-visible-package]]
Why are some packages not visible in the Buildroot config menu?
---------------------------------------------------------------

View File

@@ -3,6 +3,8 @@
Going further in Buildroot's innards
====================================
include::embedded-basics.txt[]
include::how-buildroot-works.txt[]
include::advanced.txt[]

View File

@@ -3,16 +3,11 @@
About Buildroot
===============
Buildroot is a tool that simplifies and automates the process of
building a complete Linux system for an embedded system, using
cross-compilation.
In order to achieve this, Buildroot is able to generate a
cross-compilation toolchain, a root filesystem, a Linux kernel image
and a bootloader for your target. Buildroot can be used for any
combination of these options, independently (you can for example use
an existing cross-compilation toolchain, and build only your root
filesystem with Buildroot).
Buildroot provides a full-featured environment for cross-development.
Buildroot is able to generate a cross-compilation toolchain, a root
filesystem, a Linux kernel image and a bootloader for your target.
Buildroot can be used for any combination of these options,
independently.
Buildroot is useful mainly for people working with embedded systems.
Embedded systems often use processors that are not the regular x86

View File

@@ -74,10 +74,10 @@ development context (further details: refer to xref:download-infra[]).
** +qt4+ to use the 'xconfig' interface
** +glib2+, +gtk2+ and +glade2+ to use the 'gconfig' interface
* Java-related packages, if the Java Classpath needs to be built for
the target system:
** The +javac+ compiler
** The +jar+ tool
* Development libraries:
** +zlib1+
** +netpbm10+ (for +fbtest+)
** +python-xcbgen+ (for +Matchbox+ on Debian based system)
* Documentation generation tools:
** +asciidoc+

View File

@@ -6,16 +6,12 @@ Working with Buildroot
This section explains how you can customize Buildroot to fit your
needs.
include::configure.txt[]
include::make-tips.txt[]
include::customize.txt[]
include::common-usage.txt[]
include::eclipse-integration.txt[]
Hacking Buildroot
-----------------

View File

@@ -5,59 +5,6 @@
<p>
<ul>
<li><b>10 February 2013 -- 2013.02-rc1 released</b>
<p>We have a new release candidate! Lots of changes all over the
tree, see the <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.02_rc1">CHANGES</a>
file for details.</p>
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2013.02-rc1.tar.bz2">2013.02-rc1
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>10 February 2013 -- Report from Buildroot Developers Meeting</b>
<p>A report from the recent Buildroot Developers Meeting is now
<a href="http://lists.busybox.net/pipermail/buildroot/2013-February/067105.html">available</a>.
<a href="http://emlinews.net">Embedded Linux News</a> also has a
<a href="http://www.emlinews.net/2013/02/buildroot-developers-meeting-report/">
writeup about the event</a>, including photos.</p>
<p>Once again, thanks to all the participants and to
<a href="http://www.google.com">Google</a> for sponsoring the event.</p>
<li><b>12 January 2013 -- Next Buildroot Developers Meeting next to FOSDEM, Brussels</b>
<p>The next Buildroot Developers Meeting will take place on Monday
4th February 2013 and Tuesday 5th February 2013 in Brussels,
Belgium. Those dates have been chosen to immediately follow the
great <a href="http://www.fosdem.org">FOSDEM</a> conference.</p>
<p>Attending this meeting is free, after registration by
contacting <a href="mailto:thomas.petazzoni@free-electrons.com">Thomas
Petazzoni</a>. For more details about the meeting, please see
the <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2013">related
Wiki page</a>.</p>
<p>We would like to
thank <a href="http://www.google.com">Google</a> for providing the
meeting location and the Internet connection, and offering free
lunch and refreshments to the participants.</p>
<li><b>3 January 2013 -- 2012.11.1 released</b>
<p>The 2012.11.1 bugfix release is out - Thanks to everyone
contributing. This release fixes critical issues discovered since
the 2012.11 release, most importantly with non-largefile builds on
recent Ubuntu versions. See the
<a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.11.1">CHANGES</a>
file for more details,
and go to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2012.11.1.tar.bz2">2012.11.1 release</a>.</p>
<li><b>2 December 2012 -- 2012.11 released</b>
<p>The stable 2012.11 release is out - Thanks to everyone

View File

@@ -1,15 +1,15 @@
menu "Filesystem images"
source "fs/cloop/Config.in"
source "fs/cpio/Config.in"
source "fs/cramfs/Config.in"
source "fs/cloop/Config.in"
source "fs/ext2/Config.in"
source "fs/initramfs/Config.in"
source "fs/iso9660/Config.in"
source "fs/jffs2/Config.in"
source "fs/romfs/Config.in"
source "fs/ubifs/Config.in"
source "fs/squashfs/Config.in"
source "fs/tar/Config.in"
source "fs/ubifs/Config.in"
source "fs/cpio/Config.in"
source "fs/iso9660/Config.in"
source "fs/initramfs/Config.in"
source "fs/romfs/Config.in"
endmenu

View File

@@ -7,7 +7,7 @@
ROOTFS_CLOOP_DEPENDENCIES = host-cloop host-cdrkit
define ROOTFS_CLOOP_CMD
$(HOST_DIR)/usr/bin/genisoimage -r $(TARGET_DIR) | $(HOST_DIR)/usr/bin/create_compressed_fs - 65536 > $@
$(HOST_DIR)/usr/bin/genisoimage -r $(TARGET_DIR) | $(HOST_DIR)/usr/bin/create_compressed_fs - 65536 > $$@
endef
$(eval $(call ROOTFS_TARGET,cloop))

View File

@@ -39,28 +39,28 @@ ROOTFS_DEVICE_TABLES = $(call qstrip,$(BR2_ROOTFS_DEVICE_TABLE)) \
define ROOTFS_TARGET_INTERNAL
# extra deps
ROOTFS_$(2)_DEPENDENCIES += host-fakeroot host-makedevs $$(if $$(BR2_TARGET_ROOTFS_$(2)_LZMA),host-lzma)
$(eval ROOTFS_$(2)_DEPENDENCIES += host-fakeroot host-makedevs $(if $(BR2_TARGET_ROOTFS_$(2)_LZMA),host-lzma))
$$(BINARIES_DIR)/rootfs.$(1): $$(ROOTFS_$(2)_DEPENDENCIES)
@$$(call MESSAGE,"Generating root filesystem image rootfs.$(1)")
$$(foreach hook,$$(ROOTFS_$(2)_PRE_GEN_HOOKS),$$(call $$(hook))$$(sep))
rm -f $$(FAKEROOT_SCRIPT)
rm -f $$(TARGET_DIR_WARNING_FILE)
echo "chown -R 0:0 $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT)
ifneq ($$(ROOTFS_DEVICE_TABLES),)
cat $$(ROOTFS_DEVICE_TABLES) > $$(FULL_DEVICE_TABLE)
ifeq ($$(BR2_ROOTFS_DEVICE_CREATION_STATIC),y)
printf '$$(subst $$(sep),\n,$$(PACKAGES_DEVICES_TABLE))' >> $$(FULL_DEVICE_TABLE)
$(BINARIES_DIR)/rootfs.$(1): $(ROOTFS_$(2)_DEPENDENCIES)
@$(call MESSAGE,"Generating root filesystem image rootfs.$(1)")
$(foreach hook,$(ROOTFS_$(2)_PRE_GEN_HOOKS),$(call $(hook))$(sep))
rm -f $(FAKEROOT_SCRIPT)
rm -f $(TARGET_DIR_WARNING_FILE)
echo "chown -R 0:0 $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT)
ifneq ($(ROOTFS_DEVICE_TABLES),)
cat $(ROOTFS_DEVICE_TABLES) > $(FULL_DEVICE_TABLE)
ifeq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y)
printf '$(subst $(sep),\n,$(PACKAGES_DEVICES_TABLE))' >> $(FULL_DEVICE_TABLE)
endif
printf '$$(subst $$(sep),\n,$$(PACKAGES_PERMISSIONS_TABLE))' >> $$(FULL_DEVICE_TABLE)
echo "$$(HOST_DIR)/usr/bin/makedevs -d $$(FULL_DEVICE_TABLE) $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT)
printf '$(subst $(sep),\n,$(PACKAGES_PERMISSIONS_TABLE))' >> $(FULL_DEVICE_TABLE)
echo "$(HOST_DIR)/usr/bin/makedevs -d $(FULL_DEVICE_TABLE) $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT)
endif
echo "$$(ROOTFS_$(2)_CMD)" >> $$(FAKEROOT_SCRIPT)
chmod a+x $$(FAKEROOT_SCRIPT)
$$(HOST_DIR)/usr/bin/fakeroot -- $$(FAKEROOT_SCRIPT)
cp support/misc/target-dir-warning.txt $$(TARGET_DIR_WARNING_FILE)
-@rm -f $$(FAKEROOT_SCRIPT) $$(FULL_DEVICE_TABLE)
$$(foreach hook,$$(ROOTFS_$(2)_POST_GEN_HOOKS),$$(call $$(hook))$$(sep))
echo "$(ROOTFS_$(2)_CMD)" >> $(FAKEROOT_SCRIPT)
chmod a+x $(FAKEROOT_SCRIPT)
$(HOST_DIR)/usr/bin/fakeroot -- $(FAKEROOT_SCRIPT)
cp support/misc/target-dir-warning.txt $(TARGET_DIR_WARNING_FILE)
-@rm -f $(FAKEROOT_SCRIPT) $(FULL_DEVICE_TABLE)
$(foreach hook,$(ROOTFS_$(2)_POST_GEN_HOOKS),$(call $(hook))$(sep))
ifeq ($$(BR2_TARGET_ROOTFS_$(2)_GZIP),y)
gzip -9 -c $$@ > $$@.gz
endif
@@ -68,13 +68,13 @@ ifeq ($$(BR2_TARGET_ROOTFS_$(2)_BZIP2),y)
bzip2 -9 -c $$@ > $$@.bz2
endif
ifeq ($$(BR2_TARGET_ROOTFS_$(2)_LZMA),y)
$$(LZMA) -9 -c $$@ > $$@.lzma
$(LZMA) -9 -c $$@ > $$@.lzma
endif
rootfs-$(1)-show-depends:
@echo $$(ROOTFS_$(2)_DEPENDENCIES)
@echo $(ROOTFS_$(2)_DEPENDENCIES)
rootfs-$(1): $$(BINARIES_DIR)/rootfs.$(1) $$(ROOTFS_$(2)_POST_TARGETS)
rootfs-$(1): $(BINARIES_DIR)/rootfs.$(1) $(ROOTFS_$(2)_POST_TARGETS)
ifeq ($$(BR2_TARGET_ROOTFS_$(2)),y)
TARGETS += rootfs-$(1)

View File

@@ -28,7 +28,7 @@ endif # BR2_ROOTFS_DEVICE_CREATION_STATIC
ROOTFS_CPIO_PRE_GEN_HOOKS += ROOTFS_CPIO_ADD_INIT
define ROOTFS_CPIO_CMD
cd $(TARGET_DIR) && find . | cpio --quiet -o -H newc > $@
cd $(TARGET_DIR) && find . | cpio --quiet -o -H newc > $$@
endef
$(eval $(call ROOTFS_TARGET,cpio))

View File

@@ -10,7 +10,7 @@ CRAMFS_OPTS=-l
endif
define ROOTFS_CRAMFS_CMD
$(HOST_DIR)/usr/bin/mkcramfs $(CRAMFS_OPTS) $(TARGET_DIR) $@
$(HOST_DIR)/usr/bin/mkcramfs $(CRAMFS_OPTS) $(TARGET_DIR) $$@
endef
ROOTFS_CRAMFS_DEPENDENCIES = host-cramfs

View File

@@ -21,7 +21,7 @@ endif
ROOTFS_EXT2_DEPENDENCIES = host-genext2fs
define ROOTFS_EXT2_CMD
PATH=$(TARGET_PATH) fs/ext2/genext2fs.sh -d $(TARGET_DIR) $(EXT2_OPTS) $@
PATH=$(TARGET_PATH) fs/ext2/genext2fs.sh -d $(TARGET_DIR) $(EXT2_OPTS) $$@
endef
$(eval $(call ROOTFS_TARGET,ext2))

View File

@@ -36,13 +36,13 @@ ROOTFS_JFFS2_DEPENDENCIES = host-mtd
ifneq ($(BR2_TARGET_ROOTFS_JFFS2_SUMMARY),)
define ROOTFS_JFFS2_CMD
$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $@.nosummary && \
$(SUMTOOL) $(SUMTOOL_OPTS) -i $@.nosummary -o $@ && \
rm $@.nosummary
$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $$@.nosummary && \
$(SUMTOOL) $(SUMTOOL_OPTS) -i $$@.nosummary -o $$@ && \
rm $$@.nosummary
endef
else
define ROOTFS_JFFS2_CMD
$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $@
$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $$@
endef
endif

View File

@@ -9,7 +9,7 @@ ROMFS_TARGET=$(IMAGE).romfs
ROOTFS_ROMFS_DEPENDENCIES = host-genromfs
define ROOTFS_ROMFS_CMD
$(HOST_DIR)/usr/bin/genromfs -d $(TARGET_DIR) -f $@
$(HOST_DIR)/usr/bin/genromfs -d $(TARGET_DIR) -f $$@
endef
$(eval $(call ROOTFS_TARGET,romfs))

View File

@@ -33,9 +33,9 @@ endif
endif
define ROOTFS_SQUASHFS_CMD
$(HOST_DIR)/usr/bin/mksquashfs $(TARGET_DIR) $@ -noappend \
$(HOST_DIR)/usr/bin/mksquashfs $(TARGET_DIR) $$@ -noappend \
$(ROOTFS_SQUASHFS_ARGS) && \
chmod 0644 $@
chmod 0644 $$@
endef
$(eval $(call ROOTFS_TARGET,squashfs))

View File

@@ -7,7 +7,7 @@
TAR_OPTS:=$(BR2_TARGET_ROOTFS_TAR_OPTIONS)
define ROOTFS_TAR_CMD
tar -c$(TAR_OPTS)f $@ -C $(TARGET_DIR) .
tar -c$(TAR_OPTS)f $$@ -C $(TARGET_DIR) .
endef
$(eval $(call ROOTFS_TARGET,tar))

View File

@@ -14,9 +14,9 @@ ROOTFS_UBI_DEPENDENCIES = rootfs-ubifs
define ROOTFS_UBI_CMD
cp fs/ubifs/ubinize.cfg . ;\
echo "image=$@fs" \
echo "image=$$@fs" \
>> ./ubinize.cfg ;\
$(HOST_DIR)/usr/sbin/ubinize -o $@ $(UBI_UBINIZE_OPTS) ubinize.cfg ;\
$(HOST_DIR)/usr/sbin/ubinize -o $$@ $(UBI_UBINIZE_OPTS) ubinize.cfg ;\
rm ubinize.cfg
endef

View File

@@ -19,7 +19,7 @@ endif
ROOTFS_UBIFS_DEPENDENCIES = host-mtd
define ROOTFS_UBIFS_CMD
$(HOST_DIR)/usr/sbin/mkfs.ubifs -d $(TARGET_DIR) $(UBIFS_OPTS) -o $@
$(HOST_DIR)/usr/sbin/mkfs.ubifs -d $(TARGET_DIR) $(UBIFS_OPTS) -o $$@
endef
$(eval $(call ROOTFS_TARGET,ubifs))

View File

@@ -20,8 +20,8 @@ if BR2_LINUX_KERNEL
choice
prompt "Kernel version"
config BR2_LINUX_KERNEL_3_7
bool "3.7.6"
config BR2_LINUX_KERNEL_3_6
bool "3.6.8"
config BR2_LINUX_KERNEL_SAME_AS_HEADERS
bool "Same as toolchain kernel headers"
@@ -76,7 +76,7 @@ config BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION
config BR2_LINUX_KERNEL_VERSION
string
default "3.7.6" if BR2_LINUX_KERNEL_3_7
default "3.6.8" if BR2_LINUX_KERNEL_3_6
default BR2_DEFAULT_KERNEL_HEADERS if BR2_LINUX_KERNEL_SAME_AS_HEADERS
default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE if BR2_LINUX_KERNEL_CUSTOM_VERSION
default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
@@ -261,12 +261,11 @@ config BR2_LINUX_KERNEL_USE_CUSTOM_DTS
endchoice
config BR2_LINUX_KERNEL_INTREE_DTS_NAME
string "Device Tree Source file names"
string "Device Tree Source file name"
depends on BR2_LINUX_KERNEL_USE_INTREE_DTS
help
Name of the device tree source file, without
the trailing .dts. You can provide a list of
dts files to build, separated by spaces.
the trailing .dts
config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
string "Device Tree Source file path"

View File

@@ -10,7 +10,7 @@ LINUX_LICENSE_FILES = COPYING
# Compute LINUX_SOURCE and LINUX_SITE from the configuration
ifeq ($(LINUX_VERSION),custom)
LINUX_TARBALL = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION))
LINUX_SITE = $(patsubst %/,%,$(dir $(LINUX_TARBALL)))
LINUX_SITE = $(dir $(LINUX_TARBALL))
LINUX_SOURCE = $(notdir $(LINUX_TARBALL))
else ifeq ($(BR2_LINUX_KERNEL_CUSTOM_GIT),y)
LINUX_SITE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL))
@@ -53,7 +53,7 @@ LINUX_MAKE_FLAGS = \
LINUX_VERSION_PROBED = $(shell $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelrelease)
ifeq ($(BR2_LINUX_KERNEL_USE_INTREE_DTS),y)
KERNEL_DTS_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_INTREE_DTS_NAME))
KERNEL_DTS_NAME = $(BR2_LINUX_KERNEL_INTREE_DTS_NAME)
else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),y)
KERNEL_DTS_NAME = $(basename $(notdir $(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)))
endif
@@ -65,8 +65,6 @@ $(error Kernel with appended device tree needs exactly one DTS source.\
endif
endif
KERNEL_DTBS = $(addsuffix .dtb,$(KERNEL_DTS_NAME))
ifeq ($(BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM),y)
LINUX_IMAGE_NAME=$(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_TARGET_NAME))
else
@@ -189,32 +187,25 @@ endef
ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT),y)
ifeq ($(BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT),)
define LINUX_BUILD_DTB
$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(KERNEL_DTBS)
$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(KERNEL_DTS_NAME).dtb
endef
define LINUX_INSTALL_DTB
# dtbs moved from arch/$ARCH/boot to arch/$ARCH/boot/dts since 3.8-rc1
cp $(addprefix \
$(KERNEL_ARCH_PATH)/boot/$(if $(wildcard \
$(addprefix $(KERNEL_ARCH_PATH)/boot/dts/,$(KERNEL_DTBS))),dts/),$(KERNEL_DTBS)) \
$(BINARIES_DIR)/
cp $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb $(BINARIES_DIR)/
endef
endif
endif
ifeq ($(BR2_LINUX_KERNEL_APPENDED_DTB),y)
# dtbs moved from arch/$ARCH/boot to arch/$ARCH/boot/dts since 3.8-rc1
define LINUX_APPEND_DTB
if [ -e $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb ]; then \
cat $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb; \
else \
cat $(KERNEL_ARCH_PATH)/boot/dts/$(KERNEL_DTS_NAME).dtb; \
fi >> $(KERNEL_ARCH_PATH)/boot/zImage
endef
ifeq ($(BR2_LINUX_KERNEL_APPENDED_UIMAGE),y)
# We need to generate the uImage here after that so that the uImage is
# generated with the right image size.
LINUX_APPEND_DTB += $(sep)$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) uImage
endif
define LINUX_APPEND_DTB
cat $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb >> $(KERNEL_ARCH_PATH)/boot/zImage
# We need to generate the uImage here after that so that the uImage is
# generated with the right image size.
$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) uImage
endef
else ifeq ($(BR2_LINUX_KERNEL_APPENDED_ZIMAGE),y)
define LINUX_APPEND_DTB
cat $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb >> $(KERNEL_ARCH_PATH)/boot/zImage
endef
endif
# Compilation. We make sure the kernel gets rebuilt when the

Some files were not shown because too many files have changed in this diff Show More