Compare commits
6 Commits
2013.02_rc
...
2012.11.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1264adda0e | ||
|
|
d4700be53e | ||
|
|
8d73aa4e51 | ||
|
|
b95825e626 | ||
|
|
4e3dd2f881 | ||
|
|
54d318a27f |
132
CHANGES
132
CHANGES
@@ -1,135 +1,3 @@
|
||||
2013.02-rc3, Released February 26th, 2013
|
||||
|
||||
Minor fixes.
|
||||
|
||||
Updated/fixed packages: conntrack-tools, dialog,
|
||||
enlightenment, haserl, keyutils, libfif, libmad,
|
||||
linux-firmware, linux-fusion, matchbox-desktop, matchbox-wm,
|
||||
ruby, spawn-fcgi, vtun
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#5960: fusion.ko driver does not install to target rootfs
|
||||
|
||||
2013.02-rc2, Released February 19th, 2013
|
||||
|
||||
Fixes all over the tree.
|
||||
|
||||
Various manual updates and fixes.
|
||||
|
||||
Updated/fixed packages: busybox, collectd, gesftpserver,
|
||||
glib-networking, gnutls, inotify-tools, libcurl, libffi,
|
||||
libglib2, libtorrent, libvorbis, neard, network-manager,
|
||||
ntfs-3g, openssl, qt, rpi-userland, rtorrent, thttpd, vim.
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#5906: collectd client headers not exported
|
||||
|
||||
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
|
||||
|
||||
18
Config.in
18
Config.in
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
81
Makefile
81
Makefile
@@ -24,7 +24,7 @@
|
||||
#--------------------------------------------------------------
|
||||
|
||||
# Set and export the version string
|
||||
export BR2_VERSION:=2013.02-rc3
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -8,4 +8,4 @@ enabled.
|
||||
|
||||
This configuration is known to be flaky.
|
||||
|
||||
Tested with QEMU 1.3.0
|
||||
Tested with QEMU 1.2.0
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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 !"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.8"
|
||||
BR2_LINUX_KERNEL_DEFCONFIG="exynos4"
|
||||
BR2_LINUX_KERNEL_ZIMAGE=y
|
||||
@@ -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.8"
|
||||
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
|
||||
|
||||
@@ -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.8"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
|
||||
BR2_LINUX_KERNEL_DEFCONFIG="vexpress"
|
||||
BR2_LINUX_KERNEL_ZIMAGE=y
|
||||
|
||||
@@ -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.8"
|
||||
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"
|
||||
|
||||
@@ -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.8"
|
||||
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"
|
||||
|
||||
@@ -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.8"
|
||||
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
|
||||
|
||||
@@ -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.8"
|
||||
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
|
||||
|
||||
@@ -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.8"
|
||||
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
|
||||
|
||||
@@ -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.8"
|
||||
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
|
||||
|
||||
@@ -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.8"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
|
||||
BR2_LINUX_KERNEL_DEFCONFIG="mpc85xx"
|
||||
BR2_LINUX_KERNEL_VMLINUX=y
|
||||
|
||||
|
||||
@@ -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.8"
|
||||
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"
|
||||
@@ -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
|
||||
|
||||
@@ -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.8"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.6.6"
|
||||
BR2_LINUX_KERNEL_DEFCONFIG="sparc32"
|
||||
BR2_LINUX_KERNEL_ZIMAGE=y
|
||||
|
||||
@@ -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.8"
|
||||
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"
|
||||
|
||||
@@ -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.8"
|
||||
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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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-rc3</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-rc3.tar.gz">buildroot-2013.02-rc3.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-rc3.tar.bz2">buildroot-2013.02-rc3.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>.
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Infrastructure for autotools-based packages
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Infrastructure for CMake-based packages
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Conclusion
|
||||
~~~~~~~~~~
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Package directory
|
||||
~~~~~~~~~~~~~~~~~
|
||||
@@ -169,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,
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Infrastructure for packages with specific build systems
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -26,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.
|
||||
@@ -133,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.
|
||||
|
||||
@@ -200,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
|
||||
@@ -289,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
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Gettext integration and interaction with packages
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Tips and tricks
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
// -*- mode:doc -*- ;
|
||||
|
||||
[[adding-packages]]
|
||||
Adding new packages to Buildroot
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Advanced usage
|
||||
--------------
|
||||
|
||||
include::using-buildroot-toolchain.txt[]
|
||||
|
||||
include::external-toolchain.txt[]
|
||||
|
||||
include::ccache-support.txt[]
|
||||
|
||||
include::download-location.txt[]
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Appendix
|
||||
========
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Beyond Buildroot
|
||||
================
|
||||
|
||||
38
docs/manual/board-support.txt
Normal file
38
docs/manual/board-support.txt
Normal 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.
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
// -*- mode:doc -*- ;
|
||||
|
||||
[[ccache]]
|
||||
Using +ccache+ in Buildroot
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Daily use
|
||||
---------
|
||||
|
||||
@@ -1,429 +0,0 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[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.
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Contibuting to Buildroot
|
||||
========================
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
// -*- mode:doc -*- ;
|
||||
|
||||
[[busybox-custom]]
|
||||
Customizing the Busybox configuration
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
// -*- mode:doc -*- ;
|
||||
|
||||
[[kernel-custom]]
|
||||
Customizing the Linux kernel configuration
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
// -*- mode:doc -*- ;
|
||||
|
||||
[[rootfs-custom]]
|
||||
Customizing the generated target filesystem
|
||||
@@ -13,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
|
||||
@@ -52,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_.
|
||||
|
||||
@@ -1,160 +0,0 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[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[].
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
// -*- mode:doc -*- ;
|
||||
|
||||
[[toolchain-custom]]
|
||||
Customizing the toolchain
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
// -*- mode:doc -*- ;
|
||||
|
||||
[[uclibc-custom]]
|
||||
Customizing the uClibc configuration
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Customization
|
||||
-------------
|
||||
@@ -13,5 +12,3 @@ include::customize-uclibc-config.txt[]
|
||||
include::customize-kernel-config.txt[]
|
||||
|
||||
include::customize-toolchain.txt[]
|
||||
|
||||
include::customize-store.txt[]
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Developer Guidelines
|
||||
====================
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
// -*- mode:doc -*- ;
|
||||
|
||||
[[download-infra]]
|
||||
|
||||
|
||||
@@ -1,21 +1,27 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
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>
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
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.
|
||||
112
docs/manual/embedded-basics.txt
Normal file
112
docs/manual/embedded-basics.txt
Normal 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
|
||||
88
docs/manual/external-toolchain.txt
Normal file
88
docs/manual/external-toolchain.txt
Normal 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.
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Frequently Asked Questions & Troubleshooting
|
||||
============================================
|
||||
@@ -90,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?
|
||||
---------------------------------------------------------------
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
Getting involved
|
||||
================
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
// -*- mode:doc -*- ;
|
||||
|
||||
[[getting-buildroot]]
|
||||
Getting Buildroot
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user