update to buildroot-2017.11

This commit is contained in:
Calin Crisan 2017-12-17 13:11:00 +02:00
parent 2f3b2774f9
commit 60f97f82c5
12805 changed files with 323776 additions and 61491 deletions

51
.defconfig Normal file
View File

@ -0,0 +1,51 @@
#
# Automatically generated make config: don't edit
# Mon Feb 18 09:11:56 2008
#
BR2_HAVE_DOT_CONFIG=y
# BR2_alpha is not set
# BR2_arm is not set
# BR2_armeb is not set
# BR2_cris is not set
# BR2_ia64 is not set
BR2_i386=y
# BR2_m68k is not set
# BR2_mips is not set
# BR2_mipsel is not set
# BR2_nios2 is not set
# BR2_powerpc is not set
# BR2_sh is not set
# BR2_sparc is not set
# BR2_sparc64 is not set
# BR2_x86_64 is not set
# BR2_x86_i486 is not set
# BR2_x86_i586 is not set
BR2_x86_i686=y
# BR2_x86_pentiumpro is not set
# BR2_x86_pentium_mmx is not set
# BR2_x86_pentium_m is not set
# BR2_x86_pentium2 is not set
# BR2_x86_pentium3 is not set
# BR2_x86_pentium4 is not set
# BR2_x86_prescott is not set
# BR2_x86_nocona is not set
# BR2_x86_core2 is not set
# BR2_x86_k6 is not set
# BR2_x86_k6_2 is not set
# BR2_x86_athlon is not set
# BR2_x86_athlon_4 is not set
# BR2_x86_opteron is not set
# BR2_x86_opteron_sse3 is not set
# BR2_x86_barcelona is not set
# BR2_x86_geode is not set
# BR2_x86_c3 is not set
# BR2_x86_winchip_c6 is not set
# BR2_x86_winchip2 is not set
BR2_ARCH="i686"
BR2_ENDIAN="LITTLE"
BR2_GCC_TARGET_TUNE="i686"
BR2_GCC_TARGET_ARCH="i686"
#
# Target options
#

4
.gitignore vendored
View File

@ -1,4 +1,5 @@
/output
/dl
/.auto.deps
/.config.cmd
/.config.old
@ -12,6 +13,7 @@
*.rej
*~
*.pyc
/.download
/.buildroot-ccache-*
*.img.gz
*.img.xz
*.img.zip

View File

@ -57,8 +57,13 @@ config BR2_HOST_GCC_AT_LEAST_6
default y if BR2_HOST_GCC_VERSION = "6"
select BR2_HOST_GCC_AT_LEAST_5
config BR2_HOST_GCC_AT_LEAST_7
bool
default y if BR2_HOST_GCC_VERSION = "7"
select BR2_HOST_GCC_AT_LEAST_6
# Hidden boolean selected by packages in need of Java in order to build
# (example: xbmc)
# (example: kodi)
config BR2_NEEDS_HOST_JAVA
bool
@ -101,7 +106,7 @@ config BR2_WGET
config BR2_SVN
string "Subversion (svn) command"
default "svn"
default "svn --non-interactive"
config BR2_BZR
string "Bazaar (bzr) command"
@ -414,13 +419,10 @@ config BR2_DEBUG_3
endchoice
endif
choice
prompt "strip command for binaries on target"
default BR2_STRIP_strip
config BR2_STRIP_strip
bool "strip"
bool "strip target binaries"
depends on !BR2_PACKAGE_HOST_ELF2FLT
default y
help
Binaries and libraries in the target filesystem will be
stripped using the normal 'strip' command. This allows to save
@ -428,15 +430,9 @@ config BR2_STRIP_strip
on the target are needed for native debugging, but not when
remote debugging is used.
config BR2_STRIP_none
bool "none"
help
Do not strip binaries and libraries in the target filesystem.
endchoice
config BR2_STRIP_EXCLUDE_FILES
string "executables that should not be stripped"
depends on !BR2_STRIP_none
depends on BR2_STRIP_strip
default ""
help
You may specify a space-separated list of binaries and
@ -444,7 +440,7 @@ config BR2_STRIP_EXCLUDE_FILES
config BR2_STRIP_EXCLUDE_DIRS
string "directories that should be skipped when stripping"
depends on !BR2_STRIP_none
depends on BR2_STRIP_strip
default ""
help
You may specify a space-separated list of directories that
@ -715,6 +711,8 @@ config BR2_COMPILER_PARANOID_UNSAFE_PATH
config BR2_REPRODUCIBLE
bool "Make the build reproducible (experimental)"
# SOURCE_DATE_EPOCH support in toolchain-wrapper requires GCC 4.4
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
help
This option will remove all sources of non-reproducibility
from the build process. For a given Buildroot configuration,

View File

@ -142,6 +142,540 @@ comment "build, or run, in unpredictable ways. "
comment "----------------------------------------------------"
endif
###############################################################################
comment "Legacy options removed in 2017.11"
config BR2_PACKAGE_RFKILL
bool "rfkill package removed"
select BR2_LEGACY
select BR2_PACKAGE_UTIL_LINUX
select BR2_PACKAGE_UTIL_LINUX_RFKILL
help
The rfkill program is now provided by the util-linux package.
config BR2_PACKAGE_UTIL_LINUX_RESET
bool "util-linux reset option removed"
select BR2_LEGACY
help
The util-linux package no longer offers a "reset" command. Use
either the reset command provided by BusyBox or select ncurses
programs, which will install a symlink from "tset" to reset.
config BR2_PACKAGE_POLICYCOREUTILS_AUDIT2ALLOW
bool "policycoreutils audit2allow option removed"
select BR2_LEGACY
select BR2_PACKAGE_SELINUX_PYTHON
select BR2_PACKAGE_SELINUX_PYTHON_AUDIT2ALLOW
help
The policycoreutils package no longer offers audit2allow
as a option. This package has been moved into the
selinux-python package by the SELinux maintainers.
config BR2_PACKAGE_POLICYCOREUTILS_RESTORECOND
bool "policycoreutils restorecond option removed"
select BR2_LEGACY
select BR2_PACKAGE_RESTORECOND
help
The policycoreutils package no longer offers restorecond
as a option. This package has been moved into a seperate
package maintained by the SELinux maintainers.
config BR2_PACKAGE_SEPOLGEN
bool "sepolgen package has been removed"
select BR2_LEGACY
select BR2_PACKAGE_SELINUX_PYTHON
select BR2_PACKAGE_SELINUX_PYTHON_SEPOLGEN
help
Sepolgen is no longer a individual package, but instead has
been moved into the selinux-python package by the SELinux
maintainers.
config BR2_PACKAGE_OPENOBEX_BLUEZ
bool "openobex bluez option removed"
select BR2_LEGACY
select BR2_PACKAGE_BLUEZ_UTILS
help
The OpenOBEX package no longer offers an option to enable or
disable BlueZ support. Instead, BlueZ support is always
included when the bluez5_utils or bluez_utils package is
selected.
config BR2_PACKAGE_OPENOBEX_LIBUSB
bool "openobex libusb option removed"
select BR2_LEGACY
select BR2_PACKAGE_LIBUSB
help
The OpenOBEX package no longer offers an option to enable or
disable libusb support. Instead, USB support is always
included when the libusb package is selected.
config BR2_PACKAGE_OPENOBEX_APPS
bool "openobex apps option removed"
select BR2_LEGACY
help
The OpenOBEX package no longer offers an option to enable or
disable apps support.
config BR2_PACKAGE_OPENOBEX_SYSLOG
bool "openobex syslog option removed"
select BR2_LEGACY
help
The OpenOBEX package no longer offers an option to enable or
disable syslog support.
config BR2_PACKAGE_OPENOBEX_DUMP
bool "openobex dump option removed"
select BR2_LEGACY
help
The OpenOBEX package no longer offers an option to enable or
disable dump support.
config BR2_PACKAGE_AICCU
bool "aiccu utility removed"
select BR2_LEGACY
help
As the SixXS project has ceased its operation on 2017-06-06,
the AICCU utility has no use anymore and has been removed.
https://www.sixxs.net/sunset/
config BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS
bool "util-linux login utilities option removed"
select BR2_LEGACY
select BR2_PACKAGE_UTIL_LINUX_LAST
select BR2_PACKAGE_UTIL_LINUX_LOGIN
select BR2_PACKAGE_UTIL_LINUX_RUNUSER
select BR2_PACKAGE_UTIL_LINUX_SU
select BR2_PACKAGE_UTIL_LINUX_SULOGIN
help
Login utilities (last, login, runuser, su, sulogin) now have
their own configuration options in the util-linux menu.
###############################################################################
comment "Legacy options removed in 2017.08"
config BR2_TARGET_GRUB
bool "grub (aka grub-legacy) has been removed"
select BR2_LEGACY
help
grub-legacy is no longer maintained, and no longer builds with
recent binutils versions.
Use grub2 or syslinux instead.
config BR2_PACKAGE_SIMICSFS
bool "simicsfs support removed"
select BR2_LEGACY
help
Support for simicsfs kernel driver that provides access to a
host computer's local filesystem when the target is
executing within a SIMICS simulation has been removed.
Simics is now moving away from the simicsfs kernel module,
as the kernel module has required too much maintenance
work. Users should move to the user mode Simics agent
instead.
config BR2_BINUTILS_VERSION_2_26_X
bool "binutils version 2.26 support removed"
select BR2_LEGACY
help
Support for binutils version 2.26 has been removed. The
current default version (2.28 or later) has been selected
instead.
config BR2_XTENSA_OVERLAY_DIR
string "The BR2_XTENSA_OVERLAY_DIR option has been removed"
help
The BR2_XTENSA_OVERLAY_DIR has been removed in favour of
BR2_XTENSA_OVERLAY_FILE. You must now pass the complete
path to the overlay file, not to the directory containing
it.
config BR2_XTENSA_OVERLAY_DIR_WRAP
bool
default y if BR2_XTENSA_OVERLAY_DIR != ""
select BR2_LEGACY
config BR2_XTENSA_CUSTOM_NAME
string "The BR2_XTENSA_CUSTOM_NAME option has been removed"
help
The BR2_XTENSA_CUSTOM_NAME option has been removed.
config BR2_XTENSA_CUSTOM_NAME_WRAP
bool
default y if BR2_XTENSA_CUSTOM_NAME != ""
select BR2_LEGACY
config BR2_PACKAGE_HOST_MKE2IMG
bool "host mke2img has been removed"
select BR2_LEGACY
help
We now call mkfs directly to generate ext2/3/4 filesystem
image, so mke2img is no longer necessary.
config BR2_TARGET_ROOTFS_EXT2_BLOCKS
int "exact size in blocks has been removed"
default 0
help
This option has been removed in favor of
BR2_TARGET_ROOTFS_EXT2_SIZE. It has been set automatically
to the value you had before. Set to 0 here to remove the
warning.
config BR2_TARGET_ROOTFS_EXT2_BLOCKS_WRAP
bool
default y if BR2_TARGET_ROOTFS_EXT2_BLOCKS != 0 && \
BR2_TARGET_ROOTFS_EXT2_BLOCKS != 61440 # deprecated default value
select BR2_LEGACY
# Note: BR2_TARGET_ROOTFS_EXT2_BLOCKS_WRAP still referenced in fs/ext2/Config.in
config BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES
int "ext2 extra inodes has been removed" if BR2_TARGET_ROOTFS_EXT2_INODES = 0
default 0
help
Buildroot now uses mkfs.ext2/3/4 to generate ext2/3/4
images. It now automatically selects the number of inodes
based on the image size. The extra number of inodes can no
longer be provided; instead, provide the total number of
inodes needed in BR2_TARGET_ROOTFS_EXT2_INODES.
config BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES_WRAP
bool
default y if BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES != 0
select BR2_LEGACY
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CDXAPARSE
bool "cdxaparse removed"
select BR2_LEGACY
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DATAURISRC
bool "dataurisrc moved to gstreamer1"
select BR2_LEGACY
help
Dataurisrc has moved to gstreamer core and is always built.
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DCCP
bool "dccp removed"
select BR2_LEGACY
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HDVPARSE
bool "hdvparse removed"
select BR2_LEGACY
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MVE
bool "mve removed"
select BR2_LEGACY
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NUVDEMUX
bool "nuvdemux removed"
select BR2_LEGACY
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PATCHDETECT
bool "patchdetect removed"
select BR2_LEGACY
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDI
bool "sdi removed"
select BR2_LEGACY
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TTA
bool "tta removed"
select BR2_LEGACY
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOMEASURE
bool "videomeasure removed"
select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IQA
select BR2_LEGACY
help
videomeasure plugin has been removed and has been replaced by
iqa, which has automatically been enabled.
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_APEXSINK
bool "apexsink removed"
select BR2_LEGACY
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDL
bool "sdl removed"
select BR2_LEGACY
config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MAD
bool "mad (*.mp3 audio) removed"
select BR2_LEGACY
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBRTC
bool "gst1-plugins-bad webrtc renamed to webrtcdsp"
select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBRTCDSP
select BR2_LEGACY
help
The WebRTC plugin in GStreamer 1.x has always been named
webrtcdsp, but was wrongly introduced in Buildroot under the
name webrtc. Therefore, we have renamed the option to match
the actual name of the GStreamer plugin.
config BR2_STRIP_none
bool "Strip command 'none' has been removed"
select BR2_LEGACY
help
The strip command choice has been changed into a single
boolean option. Please check that the new setting is
correct (in the "Build options" sub-menu)
config BR2_PACKAGE_BEECRYPT_CPP
bool "C++ support removed in beecrypt"
select BR2_LEGACY
help
Support for C++ depends on icu. The beecrypt package is
incompatible with icu 59+.
config BR2_PACKAGE_SPICE_CLIENT
bool "spice client support removed"
select BR2_LEGACY
help
Spice client support has been removed upstream. The
functionality now lives in the spice-gtk widget and
virt-viewer.
config BR2_PACKAGE_SPICE_GUI
bool "spice gui support removed"
select BR2_LEGACY
help
Spice gui support has been removed upstream. The
functionality now lives in the spice-gtk widget and
virt-viewer.
config BR2_PACKAGE_SPICE_TUNNEL
bool "spice network redirection removed"
select BR2_LEGACY
help
Spice network redirection, aka tunnelling has been removed
upstream.
config BR2_PACKAGE_INPUT_TOOLS
bool "input-tools removed"
select BR2_LEGACY
select BR2_PACKAGE_LINUXCONSOLETOOLS
help
input-tools has been removed, it is replaced by
linuxconsoletools, which has automatically been enabled.
config BR2_PACKAGE_INPUT_TOOLS_INPUTATTACH
bool "inputattach moved to linuxconsoletools"
select BR2_LEGACY
select BR2_PACKAGE_LINUXCONSOLETOOLS
select BR2_PACKAGE_LINUXCONSOLETOOLS_INPUTATTACH
help
input-tools has been removed, inputattach is now part
of linuxconsoletools, which has automatically been
enabled.
config BR2_PACKAGE_INPUT_TOOLS_JSCAL
bool "jscal moved to linuxconsoletools"
select BR2_LEGACY
select BR2_PACKAGE_LINUXCONSOLETOOLS
select BR2_PACKAGE_LINUXCONSOLETOOLS_JOYSTICK
help
input-tools has been removed, jscal is now part
of linuxconsoletools, which has automatically been
enabled.
config BR2_PACKAGE_INPUT_TOOLS_JSTEST
bool "jstest moved to linuxconsoletools"
select BR2_LEGACY
select BR2_PACKAGE_LINUXCONSOLETOOLS
select BR2_PACKAGE_LINUXCONSOLETOOLS_JOYSTICK
help
input-tools has been removed, jstest is now part
of linuxconsoletools, which has automatically been
enabled.
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH
bool "SH Sourcery toolchain has been removed"
select BR2_LEGACY
help
The Sourcery CodeBench toolchain for the sh architecture has
been removed, since it uses glibc older than 2.17 that requires
-lrt to link executables using clock_* system calls. This makes
this toolchain difficult to maintain over time.
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86
bool "x86 Sourcery toolchain has been removed"
select BR2_LEGACY
help
The Sourcery CodeBench toolchain for the x86 architecture has
been removed, since it uses glibc older than 2.17 that requires
-lrt to link executables using clock_* system calls. This makes
this toolchain difficult to maintain over time.
config BR2_GCC_VERSION_4_8_X
bool "gcc 4.8.x support removed"
select BR2_LEGACY
help
Support for gcc version 4.8.x has been removed. The current
default version (5.x or later) has been selected instead.
###############################################################################
comment "Legacy options removed in 2017.05"
config BR2_PACKAGE_SUNXI_MALI_R2P4
bool "sunxi-mali r2p4 removed"
select BR2_LEGACY
help
sunxi-mali libMali for r2p4 Mali kernel module has been
removed since the libump package only provides libUMP.so.3.
libMali for r2p4 Mali kernel module requires libUMP.so.2.
config BR2_PACKAGE_NODEJS_MODULES_COFFEESCRIPT
bool "CoffeeScript option has been removed"
select BR2_LEGACY
help
The option to enable NodeJS CoffeeScript has been removed.
To continue using it, add "coffee-script" to
BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL.
config BR2_PACKAGE_NODEJS_MODULES_EXPRESS
bool "Express web application framework option has been removed"
select BR2_LEGACY
help
The option to enable the NodeJS Express web application
framework has been removed. To continue using it, add
"express" to BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL.
config BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL
bool "bluez5_utils gatttool install option removed"
select BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED
help
The option to install gatttool specifically has been removed.
Since version 5.44 gatttool is in the list of deprecated
tools. The option to build and install deprecated tools has
been automatically enabled.
config BR2_PACKAGE_OPENOCD_FT2XXX
bool "openocd ft2232 support has been removed"
select BR2_PACKAGE_OPENOCD_FTDI
select BR2_LEGACY
help
FT2232 support in OpenOCD has been removed, it's replaced by
FDTI support, which has automatically been enabled.
config BR2_PACKAGE_KODI_RTMPDUMP
bool "kodi rtmp has been removed"
select BR2_LEGACY
select BR2_PACKAGE_KODI_INPUTSTREAM_RTMP
help
Internal rtmp support was removed from Kodi.
config BR2_PACKAGE_KODI_VISUALISATION_FOUNTAIN
bool "kodi-visualisation-fountain has been removed"
select BR2_LEGACY
help
According to upstream 'the visualization is not currently
in a working shape.'
config BR2_PACKAGE_PORTMAP
bool "portmap has been removed"
select BR2_LEGACY
select BR2_PACKAGE_RPCBIND
help
The portmap upstream tarball is removed, no releases since
ten years and latest change in upstream git in 2014.
You should better use rpcbind as a RPC portmapper.
config BR2_BINUTILS_VERSION_2_25_X
bool "binutils version 2.25 support removed"
select BR2_LEGACY
help
Support for binutils version 2.25 has been removed. The
current default version (2.27 or later) has been selected
instead.
config BR2_TOOLCHAIN_BUILDROOT_INET_RPC
bool "uclibc RPC support has been removed"
select BR2_LEGACY
help
uClibc-ng removed internal RPC implementation in 1.0.23. You
should use libtirpc instead.
config BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS
int "extra size in blocks has been removed"
default 0
help
Since the support for auto calculation of the filesystem size has been
removed, this option is now useless and must be 0.
You may want to check that BR2_TARGET_ROOTFS_EXT2_BLOCKS matchs
your needs.
config BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS_WRAP
bool
default y if BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS != 0
select BR2_LEGACY
config BR2_PACKAGE_SYSTEMD_KDBUS
bool "systemd-kdbus has been removed"
select BR2_LEGACY
help
--enable/disable-kdbus configure option has been removed since
systemd-231.
config BR2_PACKAGE_POLARSSL
bool "polarssl has been removed"
select BR2_LEGACY
help
The polarssl crypto library has been removed since the 1.2.x
release branch is no longer maintained. Newer upstream
branches/releases (mbedtls) have API changes so they're not
drop-in replacements.
config BR2_NBD_CLIENT
bool "nbd client option was renamed"
select BR2_LEGACY
select BR2_PACKAGE_NBD_CLIENT
help
The nbd client option has been renamed to BR2_PACKAGE_NBD_CLIENT.
config BR2_NBD_SERVER
bool "nbd server option was renamed"
select BR2_LEGACY
select BR2_PACKAGE_NBD_SERVER
help
The nbd server option has been renamed to BR2_PACKAGE_NBD_SERVER.
config BR2_PACKAGE_GMOCK
bool "gmock merged into gtest package"
select BR2_LEGACY
select BR2_PACKAGE_GTEST
select BR2_PACKAGE_GTEST_GMOCK
help
GMock is now a suboption of the GTest package.
config BR2_KERNEL_HEADERS_4_8
bool "kernel headers version 4.8.x are no longer supported"
select BR2_KERNEL_HEADERS_4_4
select BR2_LEGACY
help
Version 4.8.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 4.4.x of the headers have been automatically
selected in your configuration.
config BR2_KERNEL_HEADERS_3_18
bool "kernel headers version 3.18.x are no longer supported"
select BR2_KERNEL_HEADERS_3_12
select BR2_LEGACY
help
Version 3.18.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 3.12.x of the headers have been automatically
selected in your configuration.
config BR2_GLIBC_VERSION_2_22
bool "glibc 2.22 removed"
select BR2_LEGACY
help
Support for glibc version 2.22 has been removed. The current
default version has been selected instead.
###############################################################################
comment "Legacy options removed in 2017.02"
@ -412,22 +946,22 @@ config BR2_GCC_VERSION_4_8_ARC
config BR2_KERNEL_HEADERS_4_0
bool "kernel headers version 4.0.x are no longer supported"
select BR2_KERNEL_HEADERS_3_18
select BR2_KERNEL_HEADERS_3_12
select BR2_LEGACY
help
Version 4.0.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.18.x of the headers have been
As an alternative, version 3.12.x of the headers have been
automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_19
bool "kernel headers version 3.19.x are no longer supported"
select BR2_KERNEL_HEADERS_3_18
select BR2_KERNEL_HEADERS_3_12
select BR2_LEGACY
help
Version 3.19.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.18.x of the headers have been
As an alternative, version 3.12.x of the headers have been
automatically selected in your configuration.
config BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS
@ -457,6 +991,14 @@ config BR2_LINUX_KERNEL_CUSTOM_LOCAL
###############################################################################
comment "Legacy options removed in 2016.08"
config BR2_PACKAGE_EFL_JP2K
bool "libevas jp2k loader has been removed"
select BR2_LEGACY
help
JP2K support in EFL requires openjpeg 1.x (libopenjpeg1.pc)
while Buildroot only packages openjpeg 2.x. Therefore, the
JP2K loader has been removed from EFL.
config BR2_PACKAGE_SYSTEMD_COMPAT
bool "systemd compatibility libraries have been removed"
select BR2_LEGACY

158
Makefile
View File

@ -84,11 +84,12 @@ else # umask / $(CURDIR) / $(O)
# This is our default rule, so must come first
all:
.PHONY: all
# Set and export the version string
export BR2_VERSION := 2017.02
export BR2_VERSION := 2017.11
# Actual time the release is cut (for reproducible builds)
BR2_VERSION_EPOCH = 1488315000
BR2_VERSION_EPOCH = 1512070000
# Save running make version since it's clobbered by the make package
RUNNING_MAKE_VERSION := $(MAKE_VERSION)
@ -125,11 +126,11 @@ DATE := $(shell date +%Y%m%d)
# Need to export it, so it can be got from environment in children (eg. mconf)
export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlocalversion)
# List of targets and target patterns for which .config doesn't need to be read in
noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \
defconfig %_defconfig allyesconfig allnoconfig silentoldconfig release \
defconfig %_defconfig allyesconfig allnoconfig alldefconfig silentoldconfig release \
randpackageconfig allyespackageconfig allnopackageconfig \
print-version olddefconfig distclean manual manual-html manual-split-html \
manual-pdf manual-text manual-epub
print-version olddefconfig distclean manual manual-%
# Some global targets do not trigger a build, but are used to collect
# metadata, or do various checks. When such targets are triggered,
@ -253,7 +254,7 @@ export LANG = C
export LC_ALL = C
export GZIP = -n
BR2_VERSION_GIT_EPOCH = $(shell GIT_DIR=$(TOPDIR)/.git $(GIT) log -1 --format=%at)
export SOURCE_DATE_EPOCH = $(if $(wildcard $(TOPDIR)/.git),$(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH))
export SOURCE_DATE_EPOCH ?= $(if $(wildcard $(TOPDIR)/.git),$(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH))
DEPENDENCIES_HOST_PREREQ += host-fakedate
endif
@ -439,14 +440,14 @@ TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf
HOST_DIR := $(call qstrip,$(BR2_HOST_DIR))
# Quotes are needed for spaces and all in the original PATH content.
BR_PATH = "$(HOST_DIR)/bin:$(HOST_DIR)/sbin:$(HOST_DIR)/usr/bin:$(HOST_DIR)/usr/sbin:$(PATH)"
BR_PATH = "$(HOST_DIR)/bin:$(HOST_DIR)/sbin:$(PATH)"
# Location of a file giving a big fat warning that output/target
# should not be used as the root filesystem.
TARGET_DIR_WARNING_FILE = $(TARGET_DIR)/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM
ifeq ($(BR2_CCACHE),y)
CCACHE := $(HOST_DIR)/usr/bin/ccache
CCACHE := $(HOST_DIR)/bin/ccache
BR_CACHE_DIR ?= $(call qstrip,$(BR2_CCACHE_DIR))
export BR_CACHE_DIR
HOSTCC := $(CCACHE) $(HOSTCC)
@ -478,11 +479,17 @@ all: world
# may rely on it.
include Makefile.legacy
include system/system.mk
include package/Makefile.in
# arch/arch.mk.* must be after package/Makefile.in because it may need to
# complement variables defined therein, like BR_NO_CHECK_HASH_FOR.
-include $(sort $(wildcard arch/arch.mk.*))
include support/dependencies/dependencies.mk
include toolchain/*.mk
include toolchain/*/*.mk
PACKAGES += $(DEPENDENCIES_HOST_PREREQ)
include $(sort $(wildcard toolchain/*.mk))
include $(sort $(wildcard toolchain/*/*.mk))
# Include the package override file if one has been provided in the
# configuration.
@ -535,19 +542,37 @@ $(foreach pkg,$(call UPPERCASE,$(PACKAGES)),\
endif
.PHONY: dirs
dirs: $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
$(HOST_DIR) $(BINARIES_DIR)
$(HOST_DIR) $(HOST_DIR)/usr $(HOST_DIR)/lib $(BINARIES_DIR)
$(BUILD_DIR)/buildroot-config/auto.conf: $(BR2_CONFIG)
$(MAKE1) $(EXTRAMAKEARGS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTCXX="$(HOSTCXX_NOCCACHE)" silentoldconfig
.PHONY: prepare
prepare: $(BUILD_DIR)/buildroot-config/auto.conf
.PHONY: world
world: target-post-image
.PHONY: all world toolchain dirs clean distclean source outputmakefile \
legal-info legal-info-prepare legal-info-clean printvars help \
list-defconfigs target-finalize target-post-image source-check
.PHONY: sdk
sdk: world
@$(call MESSAGE,"Rendering the SDK relocatable")
$(TOPDIR)/support/scripts/fix-rpath host
$(TOPDIR)/support/scripts/fix-rpath staging
$(INSTALL) -m 755 $(TOPDIR)/support/misc/relocate-sdk.sh $(HOST_DIR)/relocate-sdk.sh
echo $(HOST_DIR) > $(HOST_DIR)/share/buildroot/sdk-location
# Compatibility symlink in case a post-build script still uses $(HOST_DIR)/usr
$(HOST_DIR)/usr: $(HOST_DIR)
@ln -snf . $@
$(HOST_DIR)/lib: $(HOST_DIR)
@mkdir -p $@
@case $(HOSTARCH) in \
(*64) ln -snf lib $(@D)/lib64;; \
(*) ln -snf lib $(@D)/lib32;; \
esac
# Populating the staging with the base directories is handled by the skeleton package
$(STAGING_DIR):
@ -601,7 +626,7 @@ define GENERATE_GLIBC_LOCALES
fi ; \
echo "Generating locale $${inputfile}.$${charmap}" ; \
I18NPATH=$(STAGING_DIR)/usr/share/i18n:/usr/share/i18n \
$(HOST_DIR)/usr/bin/localedef \
$(HOST_DIR)/bin/localedef \
--prefix=$(TARGET_DIR) \
--$(call LOWERCASE,$(BR2_ENDIAN))-endian \
-i $${inputfile} -f $${charmap} \
@ -651,6 +676,7 @@ endif
$(TARGETS_ROOTFS): target-finalize
.PHONY: target-finalize
target-finalize: $(PACKAGES)
@$(call MESSAGE,"Finalizing target directory")
$(foreach hook,$(TARGET_FINALIZE_HOOKS),$($(hook))$(sep))
@ -701,6 +727,9 @@ endif
echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \
) > $(TARGET_DIR)/etc/os-release
@$(call MESSAGE,"Sanitizing RPATH in target tree")
$(TOPDIR)/support/scripts/fix-rpath target
@$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
$(call MESSAGE,"Copying overlay $(d)"); \
rsync -a --ignore-times --keep-dirlinks $(RSYNC_VCS_EXCLUSIONS) \
@ -711,32 +740,39 @@ endif
$(call MESSAGE,"Executing post-build script $(s)"); \
$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
.PHONY: target-post-image
target-post-image: $(TARGETS_ROOTFS) target-finalize
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \
$(call MESSAGE,"Executing post-image script $(s)"); \
$(EXTRA_ENV) $(s) $(BINARIES_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
.PHONY: source
source: $(foreach p,$(PACKAGES),$(p)-all-source)
.PHONY: _external-deps external-deps
_external-deps: $(foreach p,$(PACKAGES),$(p)-all-external-deps)
external-deps:
@$(MAKE1) -Bs $(EXTRAMAKEARGS) _external-deps | sort -u
# check if download URLs are outdated
.PHONY: source-check
source-check: $(foreach p,$(PACKAGES),$(p)-all-source-check)
.PHONY: legal-info-clean
legal-info-clean:
@rm -fr $(LEGAL_INFO_DIR)
.PHONY: legal-info-prepare
legal-info-prepare: $(LEGAL_INFO_DIR)
@$(call MESSAGE,"Collecting legal info")
@$(call legal-license-file,buildroot,COPYING,COPYING,HOST)
@$(call MESSAGE,"Buildroot $(BR2_VERSION_FULL) Collecting legal info")
@$(call legal-license-file,buildroot,buildroot,support/legal-info,COPYING,COPYING,HOST)
@$(call legal-manifest,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,TARGET)
@$(call legal-manifest,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,HOST)
@$(call legal-manifest,buildroot,$(BR2_VERSION_FULL),GPLv2+,COPYING,not saved,not saved,HOST)
@$(call legal-manifest,buildroot,$(BR2_VERSION_FULL),GPL-2.0+,COPYING,not saved,not saved,HOST)
@$(call legal-warning,the Buildroot source code has not been saved)
@cp $(BR2_CONFIG) $(LEGAL_INFO_DIR)/buildroot.config
.PHONY: legal-info
legal-info: dirs legal-info-clean legal-info-prepare $(foreach p,$(PACKAGES),$(p)-all-legal-info) \
$(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST)
@cat support/legal-info/README.header >>$(LEGAL_REPORT)
@ -751,9 +787,14 @@ legal-info: dirs legal-info-clean legal-info-prepare $(foreach p,$(PACKAGES),$(p
mv .legal-info.sha256 legal-info.sha256)
@echo "Legal info produced in $(LEGAL_INFO_DIR)"
.PHONY: show-targets
show-targets:
@echo $(PACKAGES) $(TARGETS_ROOTFS)
.PHONY: show-build-order
show-build-order: $(patsubst %,%-show-build-order,$(PACKAGES))
.PHONY: graph-build
graph-build: $(O)/build/build-time.log
@install -d $(GRAPHS_DIR)
$(foreach o,name build duration,./support/scripts/graph-build-time \
@ -765,10 +806,12 @@ graph-build: $(O)/build/build-time.log
--output=$(GRAPHS_DIR)/build.pie-$(t).$(BR_GRAPH_OUT) \
$(if $(BR2_GRAPH_ALT),--alternate-colors)$(sep))
.PHONY: graph-depends-requirements
graph-depends-requirements:
@dot -? >/dev/null 2>&1 || \
{ echo "ERROR: The 'dot' program from Graphviz is needed for graph-depends" >&2; exit 1; }
.PHONY: graph-depends
graph-depends: graph-depends-requirements
@$(INSTALL) -d $(GRAPHS_DIR)
@cd "$(CONFIG_DIR)"; \
@ -778,6 +821,7 @@ graph-depends: graph-depends-requirements
-o $(GRAPHS_DIR)/$(@).$(BR_GRAPH_OUT) \
$(GRAPHS_DIR)/$(@).dot
.PHONY: graph-size
graph-size:
$(Q)mkdir -p $(GRAPHS_DIR)
$(Q)$(TOPDIR)/support/scripts/size-stats --builddir $(BASE_DIR) \
@ -785,13 +829,21 @@ graph-size:
--file-size-csv $(GRAPHS_DIR)/file-size-stats.csv \
--package-size-csv $(GRAPHS_DIR)/package-size-stats.csv
.PHONY: check-dependencies
check-dependencies:
@cd "$(CONFIG_DIR)"; \
$(TOPDIR)/support/scripts/graph-depends -C
else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
all: menuconfig
# Some subdirectories are also package names. To avoid that "make linux"
# on an unconfigured tree produces "Nothing to be done", add an explicit
# rule for it.
# Also for 'all' we error out and ask the user to configure first.
.PHONY: linux toolchain
linux toolchain all: outputmakefile
$(error Please configure Buildroot first (e.g. "make menuconfig"))
@exit 1
endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
@ -843,50 +895,20 @@ config: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
# no values are set for the legacy options so a subsequent oldconfig
# will query them. Therefore, run an additional olddefconfig.
oldconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< --oldconfig $(CONFIG_CONFIG_IN)
randconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --randconfig $(CONFIG_CONFIG_IN)
randconfig allyesconfig alldefconfig allnoconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --$@ $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allyesconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allyesconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allnoconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allnoconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
randpackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
randpackageconfig allyespackageconfig allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
$< --randconfig $(CONFIG_CONFIG_IN)
$< --$(subst package,,$@) $(CONFIG_CONFIG_IN)
@rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
$< --allyesconfig $(CONFIG_CONFIG_IN)
@rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
$< --allnoconfig $(CONFIG_CONFIG_IN)
@rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
silentoldconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
$(COMMON_CONFIG_ENV) $< --silentoldconfig $(CONFIG_CONFIG_IN)
olddefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN)
oldconfig silentoldconfig olddefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< --$@ $(CONFIG_CONFIG_IN)
defconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
@ -916,6 +938,7 @@ savedefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
# outputmakefile generates a Makefile in the output directory, if using a
# separate output directory. This allows convenient use of make in the
# output directory.
.PHONY: outputmakefile
outputmakefile:
ifeq ($(NEED_WRAPPER),y)
$(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O)
@ -932,18 +955,24 @@ $(BUILD_DIR)/.br2-external.in: $(BUILD_DIR)
# Makefiles. Alternatively, if a non-empty VARS variable is passed,
# only the variables matching the make pattern passed in VARS are
# displayed.
.PHONY: printvars
printvars:
@$(foreach V, \
@:$(foreach V, \
$(sort $(if $(VARS),$(filter $(VARS),$(.VARIABLES)),$(.VARIABLES))), \
$(if $(filter-out environment% default automatic, \
$(origin $V)), \
$(info $V=$($V) ($(value $V)))))
$(if $(QUOTED_VARS),\
$(info $V='$(subst ','\'',$(if $(RAW_VARS),$(value $V),$($V)))'), \
$(info $V=$(if $(RAW_VARS),$(value $V),$($V))))))
# ' Syntax colouring...
.PHONY: clean
clean:
rm -rf $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \
$(BUILD_DIR) $(BASE_DIR)/staging \
$(LEGAL_INFO_DIR) $(GRAPHS_DIR)
.PHONY: distclean
distclean: clean
ifeq ($(O),$(CURDIR)/output)
rm -rf $(O)
@ -951,6 +980,7 @@ endif
rm -rf $(TOPDIR)/dl $(BR2_CONFIG) $(CONFIG_DIR)/.config.old $(CONFIG_DIR)/..config.tmp \
$(CONFIG_DIR)/.auto.deps $(BR2_EXTERNAL_FILE)
.PHONY: help
help:
@echo 'Cleaning:'
@echo ' clean - delete all files created by build'
@ -959,6 +989,7 @@ help:
@echo 'Build:'
@echo ' all - make world'
@echo ' toolchain - build toolchain'
@echo ' sdk - build relocatable SDK'
@echo
@echo 'Configuration:'
@echo ' menuconfig - interactive curses-based configurator'
@ -974,6 +1005,7 @@ help:
@echo ' savedefconfig - Save current config to BR2_DEFCONFIG (minimal config)'
@echo ' allyesconfig - New config where all options are accepted with yes'
@echo ' allnoconfig - New config where all options are answered with no'
@echo ' alldefconfig - New config where all options are set to default'
@echo ' randpackageconfig - New config with random answer to package options'
@echo ' allyespackageconfig - New config where pkg options are accepted with yes'
@echo ' allnopackageconfig - New config where package options are answered with no'
@ -1015,6 +1047,7 @@ help:
@echo ' source-check - check selected packages for valid download URLs'
@echo ' external-deps - list external packages used'
@echo ' legal-info - generate info about license compliance'
@echo ' printvars - dump all the internal variables'
@echo
@echo ' make V=0|1 - 0 => quiet build (default), 1 => verbose build'
@echo ' make O=dir - Locate all output files in "dir", including .config'
@ -1046,6 +1079,7 @@ endef
# We iterate over BR2_EXTERNAL_NAMES rather than BR2_EXTERNAL_DIRS,
# because we want to display the name of the br2-external tree.
.PHONY: list-defconfigs
list-defconfigs:
$(call list-defconfigs,$(TOPDIR))
$(foreach name,$(BR2_EXTERNAL_NAMES),\
@ -1068,8 +1102,14 @@ release:
print-version:
@echo $(BR2_VERSION_FULL)
#include docs/manual/manual.mk
#-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(dir)/docs/*/*.mk)
.PHONY: .gitlab-ci.yml
.gitlab-ci.yml: .gitlab-ci.yml.in
cp $< $@
(cd configs; LC_ALL=C ls -1 *_defconfig) | sed 's/$$/: *defconfig/' >> $@
./support/testing/run-tests -l 2>&1 | sed -r -e '/^test_run \((.*)\).*/!d; s//\1: *runtime_test/' | LC_ALL=C sort >> $@
include docs/manual/manual.mk
-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(sort $(wildcard $(dir)/docs/*/*.mk)))
.PHONY: $(noconfig_targets)

View File

@ -85,6 +85,15 @@ config BR2_bfin
http://www.analog.com/
http://en.wikipedia.org/wiki/Blackfin
config BR2_csky
bool "csky"
select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
select BR2_ARCH_HAS_MMU_MANDATORY
help
csky is processor IP from china.
http://www.c-sky.com/
http://www.github.com/c-sky
config BR2_i386
bool "i386"
select BR2_ARCH_HAS_MMU_MANDATORY
@ -242,6 +251,16 @@ config BR2_xtensa
endchoice
# For some architectures or specific cores, our internal toolchain
# backend is not suitable (like, missing support in upstream gcc, or
# no ChipCo fork exists...)
config BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
bool
config BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT
bool
default y if !BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
# The following string values are defined by the individual
# Config.in.$ARCH files
config BR2_ARCH
@ -256,6 +275,12 @@ config BR2_GCC_TARGET_ARCH
config BR2_GCC_TARGET_ABI
string
config BR2_GCC_TARGET_NAN
string
config BR2_GCC_TARGET_FP32_MODE
string
config BR2_GCC_TARGET_CPU
string
@ -284,6 +309,12 @@ config BR2_GCC_TARGET_MODE
config BR2_BINFMT_SUPPORTS_SHARED
bool
# Must match the name of the architecture from readelf point of view,
# i.e the "Machine:" field of readelf output. See get_machine_name()
# in binutils/readelf.c for the list of possible values.
config BR2_READELF_ARCH_NAME
string
# Set up target binary format
choice
prompt "Target Binary Format"
@ -369,6 +400,10 @@ if BR2_bfin
source "arch/Config.in.bfin"
endif
if BR2_csky
source "arch/Config.in.csky"
endif
if BR2_m68k
source "arch/Config.in.m68k"
endif

View File

@ -38,6 +38,10 @@ config BR2_GCC_TARGET_CPU
default "arc700" if BR2_arc770d
default "archs" if BR2_archs38
config BR2_READELF_ARCH_NAME
default "ARCompact" if BR2_arc750d || BR2_arc770d
default "ARCv2" if BR2_archs38
choice
prompt "MMU Page Size"
default BR2_ARC_PAGE_SIZE_8K

View File

@ -182,6 +182,15 @@ config BR2_cortex_a15
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a15_a7
bool "cortex-A15/A7 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_NEON
select BR2_ARM_CPU_HAS_VFPV4
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a17
bool "cortex-A17"
select BR2_ARM_CPU_HAS_ARM
@ -191,6 +200,15 @@ config BR2_cortex_a17
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a17_a7
bool "cortex-A17/A7 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_NEON
select BR2_ARM_CPU_HAS_VFPV4
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a53
bool "cortex-A53"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
@ -207,6 +225,14 @@ config BR2_cortex_a57
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a57_a53
bool "cortex-A57/A53 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a72
bool "cortex-A72"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
@ -215,6 +241,14 @@ config BR2_cortex_a72
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a72_a53
bool "cortex-A72/A53 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_m3
bool "cortex-M3"
select BR2_ARM_CPU_HAS_THUMB2
@ -526,7 +560,9 @@ config BR2_GCC_TARGET_CPU
default "cortex-a9" if BR2_cortex_a9
default "cortex-a12" if BR2_cortex_a12
default "cortex-a15" if BR2_cortex_a15
default "cortex-a15.cortex-a7" if BR2_cortex_a15_a7
default "cortex-a17" if BR2_cortex_a17
default "cortex-a17.cortex-a7" if BR2_cortex_a17_a7
default "cortex-m3" if BR2_cortex_m3
default "cortex-m4" if BR2_cortex_m4
default "fa526" if BR2_fa526
@ -534,15 +570,11 @@ config BR2_GCC_TARGET_CPU
default "strongarm" if BR2_strongarm
default "xscale" if BR2_xscale
default "iwmmxt" if BR2_iwmmxt
default "cortex-a53" if (BR2_cortex_a53 && !BR2_ARCH_IS_64)
default "cortex-a53+fp" if (BR2_cortex_a53 && BR2_ARCH_IS_64 && BR2_ARM_FPU_FP_ARMV8)
default "cortex-a53+fp+simd" if (BR2_cortex_a53 && BR2_ARCH_IS_64 && BR2_ARM_FPU_NEON_FP_ARMV8)
default "cortex-a57" if (BR2_cortex_a57 && !BR2_ARCH_IS_64)
default "cortex-a57+fp" if (BR2_cortex_a57 && BR2_ARCH_IS_64 && BR2_ARM_FPU_FP_ARMV8)
default "cortex-a57+fp+simd" if (BR2_cortex_a57 && BR2_ARCH_IS_64 && BR2_ARM_FPU_NEON_FP_ARMV8)
default "cortex-a72" if (BR2_cortex_a72 && !BR2_ARCH_IS_64)
default "cortex-a72+fp" if (BR2_cortex_a72 && BR2_ARCH_IS_64 && BR2_ARM_FPU_FP_ARMV8)
default "cortex-a72+fp+simd" if (BR2_cortex_a72 && BR2_ARCH_IS_64 && BR2_ARM_FPU_NEON_FP_ARMV8)
default "cortex-a53" if BR2_cortex_a53
default "cortex-a57" if BR2_cortex_a57
default "cortex-a57.cortex-a53" if BR2_cortex_a57_a53
default "cortex-a72" if BR2_cortex_a72
default "cortex-a72.cortex-a53" if BR2_cortex_a72_a53
config BR2_GCC_TARGET_ABI
default "aapcs-linux" if BR2_arm || BR2_armeb
@ -568,3 +600,7 @@ config BR2_GCC_TARGET_FLOAT_ABI
config BR2_GCC_TARGET_MODE
default "arm" if BR2_ARM_INSTRUCTIONS_ARM
default "thumb" if BR2_ARM_INSTRUCTIONS_THUMB || BR2_ARM_INSTRUCTIONS_THUMB2
config BR2_READELF_ARCH_NAME
default "ARM" if BR2_arm || BR2_armeb
default "AArch64" if BR2_aarch64 || BR2_aarch64_be

View File

@ -4,14 +4,6 @@ choice
default BR2_bf532
help
Specify target CPU
config BR2_bf606
bool "bf606"
config BR2_bf607
bool "bf607"
config BR2_bf608
bool "bf608"
config BR2_bf609
bool "bf609"
config BR2_bf512
bool "bf512"
config BR2_bf514
@ -105,3 +97,6 @@ config BR2_GCC_TARGET_CPU_REVISION
value of the -mcpu option. For example, if the selected CPU is
bf609, and then selected CPU revision is "0.0", then gcc will
receive the -mcpu=bf609-0.0 option.
config BR2_READELF_ARCH_NAME
default "Analog Devices Blackfin"

48
arch/Config.in.csky Normal file
View File

@ -0,0 +1,48 @@
choice
prompt "Target Architecture Variant"
default BR2_ck610
help
Specific CPU variant to use
config BR2_ck610
bool "ck610"
config BR2_ck807
bool "ck807"
config BR2_ck810
bool "ck810"
endchoice
config BR2_CSKY_FPU
bool "Enable FPU coprocessor"
depends on BR2_ck810 || BR2_ck807
help
You can say N here if your C-SKY CPU doesn't have a
Floating-Point Coprocessor or if you don't need FPU support
for your user-space programs.
config BR2_CSKY_DSP
bool "Enable DSP enhanced instructions"
depends on BR2_ck810 || BR2_ck807
config BR2_ARCH
default "csky"
config BR2_ENDIAN
default "LITTLE"
config BR2_GCC_TARGET_CPU
default "ck610" if (BR2_ck610 && !BR2_CSKY_FPU && !BR2_CSKY_DSP)
default "ck807" if (BR2_ck807 && !BR2_CSKY_FPU && !BR2_CSKY_DSP)
default "ck807e" if (BR2_ck807 && !BR2_CSKY_FPU && BR2_CSKY_DSP)
default "ck807f" if (BR2_ck807 && BR2_CSKY_FPU && !BR2_CSKY_DSP)
default "ck807ef" if (BR2_ck807 && BR2_CSKY_FPU && BR2_CSKY_DSP)
default "ck810" if (BR2_ck810 && !BR2_CSKY_FPU && !BR2_CSKY_DSP)
default "ck810e" if (BR2_ck810 && !BR2_CSKY_FPU && BR2_CSKY_DSP)
default "ck810f" if (BR2_ck810 && BR2_CSKY_FPU && !BR2_CSKY_DSP)
default "ck810ef" if (BR2_ck810 && BR2_CSKY_FPU && BR2_CSKY_DSP)
config BR2_READELF_ARCH_NAME
default "CSKY"

View File

@ -35,3 +35,6 @@ endchoice
config BR2_GCC_TARGET_CPU
default "68040" if BR2_m68k_68040
default "5208" if BR2_m68k_cf5208
config BR2_READELF_ARCH_NAME
default "MC68000"

View File

@ -6,6 +6,9 @@ config BR2_ENDIAN
default "LITTLE" if BR2_microblazeel
default "BIG" if BR2_microblazebe
config BR2_READELF_ARCH_NAME
default "Xilinx MicroBlaze"
config BR2_microblaze
bool
default y if BR2_microblazeel || BR2_microblazebe

View File

@ -1,20 +1,26 @@
# mips default CPU ISAs
config BR2_MIPS_CPU_MIPS32
bool
select BR2_MIPS_NAN_LEGACY
config BR2_MIPS_CPU_MIPS32R2
bool
select BR2_MIPS_NAN_LEGACY
config BR2_MIPS_CPU_MIPS32R5
bool
config BR2_MIPS_CPU_MIPS32R6
bool
select BR2_MIPS_NAN_2008
config BR2_MIPS_CPU_MIPS64
bool
select BR2_MIPS_NAN_LEGACY
config BR2_MIPS_CPU_MIPS64R2
bool
select BR2_MIPS_NAN_LEGACY
config BR2_MIPS_CPU_MIPS64R5
bool
config BR2_MIPS_CPU_MIPS64R6
bool
select BR2_MIPS_NAN_2008
choice
prompt "Target Architecture Variant"
@ -51,14 +57,17 @@ config BR2_mips_m5150
bool "M5150"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R5
select BR2_MIPS_NAN_2008
config BR2_mips_m6250
bool "M6250"
depends on !BR2_ARCH_IS_64
select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
select BR2_MIPS_CPU_MIPS32R6
config BR2_mips_p5600
bool "P5600"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R5
select BR2_MIPS_NAN_2008
config BR2_mips_xburst
bool "XBurst"
depends on !BR2_ARCH_IS_64
@ -95,6 +104,7 @@ config BR2_mips_i6400
config BR2_mips_p6600
bool "P6600"
depends on BR2_ARCH_IS_64
select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
select BR2_MIPS_CPU_MIPS64R6
endchoice
@ -126,6 +136,64 @@ config BR2_MIPS_SOFT_FLOAT
floating point functions, then everything will need to be
compiled with soft floating point support (-msoft-float).
choice
prompt "FP mode"
depends on !BR2_ARCH_IS_64 && !BR2_MIPS_SOFT_FLOAT
default BR2_MIPS_FP32_MODE_XX if BR2_TOOLCHAIN_HAS_MFPXX_OPTION
help
MIPS32 supports different FP modes (32,xx,64). Information about FP
modes can be found here:
https://sourceware.org/binutils/docs/as/MIPS-Options.html
https://dmz-portal.imgtec.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking#5._Generating_modeless_code
config BR2_MIPS_FP32_MODE_32
bool "32"
depends on !BR2_MIPS_CPU_MIPS32R6
config BR2_MIPS_FP32_MODE_XX
bool "xx"
depends on BR2_TOOLCHAIN_HAS_MFPXX_OPTION
config BR2_MIPS_FP32_MODE_64
bool "64"
depends on !BR2_MIPS_CPU_MIPS32
endchoice
config BR2_GCC_TARGET_FP32_MODE
default "32" if BR2_MIPS_FP32_MODE_32
default "xx" if BR2_MIPS_FP32_MODE_XX
default "64" if BR2_MIPS_FP32_MODE_64
config BR2_MIPS_NAN_LEGACY
bool
config BR2_MIPS_NAN_2008
bool
choice
prompt "Target NaN"
depends on BR2_TOOLCHAIN_HAS_MNAN_OPTION
depends on BR2_mips_32r5 || BR2_mips_64r5
default BR2_MIPS_ENABLE_NAN_2008
help
MIPS supports two different NaN encodings, legacy and 2008.
Information about MIPS NaN encodings can be found here:
https://sourceware.org/binutils/docs/as/MIPS-NaN-Encodings.html
config BR2_MIPS_ENABLE_NAN_LEGACY
bool "legacy"
select BR2_MIPS_NAN_LEGACY
config BR2_MIPS_ENABLE_NAN_2008
bool "2008"
depends on !BR2_MIPS_SOFT_FLOAT
select BR2_MIPS_NAN_2008
endchoice
config BR2_GCC_TARGET_NAN
default "legacy" if BR2_MIPS_NAN_LEGACY
default "2008" if BR2_MIPS_NAN_2008
config BR2_ARCH
default "mips" if BR2_mips
default "mipsel" if BR2_mipsel
@ -161,3 +229,6 @@ config BR2_GCC_TARGET_ABI
default "32" if BR2_MIPS_OABI32
default "n32" if BR2_MIPS_NABI32
default "64" if BR2_MIPS_NABI64
config BR2_READELF_ARCH_NAME
default "MIPS R3000"

View File

@ -3,3 +3,6 @@ config BR2_ARCH
config BR2_ENDIAN
default "LITTLE"
config BR2_READELF_ARCH_NAME
default "Altera Nios II"

View File

@ -3,3 +3,6 @@ config BR2_ARCH
config BR2_ENDIAN
default "BIG"
config BR2_READELF_ARCH_NAME
default "OpenRISC 1000"

View File

@ -212,3 +212,7 @@ config BR2_GCC_TARGET_ABI
default "no-spe" if BR2_PPC_ABI_no-spe
default "ibmlongdouble" if BR2_PPC_ABI_ibmlongdouble
default "ieeelongdouble" if BR2_PPC_ABI_ieeelongdouble
config BR2_READELF_ARCH_NAME
default "PowerPC" if BR2_powerpc
default "PowerPC64" if BR2_powerpc64 || BR2_powerpc64le

View File

@ -27,3 +27,6 @@ config BR2_ARCH
config BR2_ENDIAN
default "LITTLE" if BR2_sh4 || BR2_sh4a
default "BIG" if BR2_sh2a || BR2_sh4eb || BR2_sh4aeb
config BR2_READELF_ARCH_NAME
default "Renesas / SuperH SH"

View File

@ -28,3 +28,7 @@ config BR2_GCC_TARGET_CPU
default "leon3" if BR2_sparc_leon3
default "v8" if BR2_sparc_v8
default "ultrasparc" if BR2_sparc_v9
config BR2_READELF_ARCH_NAME
default "Sparc" if BR2_sparc
default "Sparc v9" if BR2_sparc64

View File

@ -275,3 +275,7 @@ config BR2_GCC_TARGET_ARCH
default "c3" if BR2_x86_c3
default "c3-2" if BR2_x86_c32
default "geode" if BR2_x86_geode
config BR2_READELF_ARCH_NAME
default "Intel 80386" if BR2_i386
default "Advanced Micro Devices X86-64" if BR2_x86_64

View File

@ -2,39 +2,32 @@ choice
prompt "Target Architecture Variant"
depends on BR2_xtensa
default BR2_xtensa_fsf
config BR2_XTENSA_CUSTOM
select BR2_ARCH_HAS_MMU_OPTIONAL
bool "Custom Xtensa processor configuration"
config BR2_xtensa_fsf
select BR2_ARCH_HAS_MMU_MANDATORY
bool "fsf - Default configuration"
endchoice
config BR2_XTENSA_CUSTOM_NAME
string "Custom Xtensa processor configuration name"
config BR2_XTENSA_OVERLAY_FILE
string "Overlay file for custom configuration"
depends on BR2_XTENSA_CUSTOM
default ""
help
Name given to a custom Xtensa processor configuration.
Enter the path to the overlay tarball for a custom processor
configuration.
config BR2_XTENSA_CORE_NAME
string
default BR2_XTENSA_CUSTOM_NAME if BR2_XTENSA_CUSTOM
default "" if BR2_xtensa_fsf
config BR2_XTENSA_OVERLAY_DIR
string "Overlay directory for custom configuration"
depends on BR2_XTENSA_CUSTOM
default ""
help
Provide the directory path that contains the overlay file
for a custom processor configuration. The path is relative
to the top directory of buildroot.
These overlay files are tar packages with updated configuration
files for various toolchain packages and Xtensa processor
configurations. They are provided by the processor vendor or
directly from Tensilica.
The path can be either absolute, or relative to the top directory
of buildroot.
choice
prompt "Target Architecture Endianness"
depends on BR2_XTENSA_CUSTOM
@ -54,3 +47,6 @@ config BR2_ENDIAN
config BR2_ARCH
default "xtensa" if BR2_xtensa
config BR2_READELF_ARCH_NAME
default "Tensilica Xtensa Processor"

36
arch/arch.mk.xtensa Normal file
View File

@ -0,0 +1,36 @@
################################################################################
# This variable can be used by packages that need to extract the overlay.
#
# ARCH_XTENSA_OVERLAY_FILE is the path to the overlay tarball; empty if not
# using any overlay
#
# Example:
# ifneq ($(ARCH_XTENSA_OVERLAY_FILE),)
# tar xf $(ARCH_XTENSA_OVERLAY_FILE) -C $(@D) --strip-components=1 gcc
# endif
################################################################################
BR_ARCH_XTENSA_OVERLAY_FILE = $(call qstrip,$(BR2_XTENSA_OVERLAY_FILE))
ifneq ($(filter http://% https://% ftp://% scp://%,$(BR_ARCH_XTENSA_OVERLAY_FILE)),)
ARCH_XTENSA_OVERLAY_URL = $(BR_ARCH_XTENSA_OVERLAY_FILE)
ARCH_XTENSA_OVERLAY_FILE = $(DL_DIR)/$(notdir $(BR_ARCH_XTENSA_OVERLAY_FILE))
# Do not check that file, we can't know its hash
BR_NO_CHECK_HASH_FOR += $(notdir $(ARCH_XTENSA_OVERLAY_URL))
else
ARCH_XTENSA_OVERLAY_FILE = $(BR_ARCH_XTENSA_OVERLAY_FILE)
endif
################################################################################
# arch-xtensa-overlay-extract -- extract an extensa overlay
#
# argument 1 is the path in which to extract
# argument 2 is the component to extract, one of: gcc, binutils, gdb, linux,
# u-boot
#
# Example:
# $(call arch-xtensa-overlay-extract,/path/to/overlay.tar,$(@D),gcc)
################################################################################
define arch-xtensa-overlay-extract
$(call suitable-extractor,$(ARCH_XTENSA_OVERLAY_FILE)) \
$(ARCH_XTENSA_OVERLAY_FILE) | \
$(TAR) --strip-components=1 -C $(1) $(TAR_OPTIONS) - $(2)
endef

View File

@ -1,8 +1,21 @@
menu "Bootloaders"
source "boot/grub/Config.in"
source "boot/afboot-stm32/Config.in"
source "boot/at91bootstrap/Config.in"
source "boot/at91bootstrap3/Config.in"
source "boot/at91dataflashboot/Config.in"
source "boot/arm-trusted-firmware/Config.in"
source "boot/barebox/Config.in"
source "boot/boot-wrapper-aarch64/Config.in"
source "boot/grub2/Config.in"
source "boot/gummiboot/Config.in"
source "boot/lpc32xxcdl/Config.in"
source "boot/mxs-bootlets/Config.in"
source "boot/s500-bootloader/Config.in"
source "boot/syslinux/Config.in"
source "boot/ts4800-mbrboot/Config.in"
source "boot/uboot/Config.in"
source "boot/vexpress-firmware/Config.in"
source "boot/xloader/Config.in"
endmenu

View File

@ -0,0 +1,61 @@
From 0d581abe6620ac69adec321b94390e009802f36a Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Sun, 13 Mar 2016 14:32:33 +0100
Subject: [PATCH] Use ld instead of gcc for linking
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
Makefile | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/Makefile b/Makefile
index ce40314..271bb4f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
CROSS_COMPILE ?= arm-none-eabi-
CC = $(CROSS_COMPILE)gcc
+LD = $(CROSS_COMPILE)ld
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
SIZE = $(CROSS_COMPILE)size
@@ -10,7 +11,7 @@ OPENOCD = openocd
CFLAGS := -mthumb -mcpu=cortex-m4
CFLAGS += -ffunction-sections -fdata-sections
CFLAGS += -Os -std=gnu99 -Wall
-LDFLAGS := -nostartfiles -Wl,--gc-sections
+LINKERFLAGS := -nostartfiles --gc-sections
obj-y += gpio.o mpu.o
obj-f4 += $(obj-y) usart-f4.o
@@ -22,22 +23,22 @@ all: stm32f429i-disco stm32429i-eval stm32f469i-disco stm32746g-eval
$(CC) -c $(CFLAGS) $< -o $@
stm32f429i-disco: stm32f429i-disco.o $(obj-f4)
- $(CC) -T stm32f429.lds $(LDFLAGS) -o stm32f429i-disco.elf stm32f429i-disco.o $(obj-f4)
+ $(LD) -T stm32f429.lds $(LINKERFLAGS) -o stm32f429i-disco.elf stm32f429i-disco.o $(obj-f4)
$(OBJCOPY) -Obinary stm32f429i-disco.elf stm32f429i-disco.bin
$(SIZE) stm32f429i-disco.elf
stm32429i-eval: stm32429i-eval.o $(obj-f4)
- $(CC) -T stm32f429.lds $(LDFLAGS) -o stm32429i-eval.elf stm32429i-eval.o $(obj-f4)
+ $(LD) -T stm32f429.lds $(LINKERFLAGS) -o stm32429i-eval.elf stm32429i-eval.o $(obj-f4)
$(OBJCOPY) -Obinary stm32429i-eval.elf stm32429i-eval.bin
$(SIZE) stm32429i-eval.elf
stm32f469i-disco: stm32f469i-disco.o $(obj-f4)
- $(CC) -T stm32f429.lds $(LDFLAGS) -o stm32f469i-disco.elf stm32f469i-disco.o $(obj-f4)
+ $(LD) -T stm32f429.lds $(LINKERFLAGS) -o stm32f469i-disco.elf stm32f469i-disco.o $(obj-f4)
$(OBJCOPY) -Obinary stm32f469i-disco.elf stm32f469i-disco.bin
$(SIZE) stm32f469i-disco.elf
stm32746g-eval: stm32746g-eval.o $(obj-f7)
- $(CC) -T stm32f429.lds $(LDFLAGS) -o stm32746g-eval.elf stm32746g-eval.o $(obj-f7)
+ $(LD) -T stm32f429.lds $(LINKERFLAGS) -o stm32746g-eval.elf stm32746g-eval.o $(obj-f7)
$(OBJCOPY) -Obinary stm32746g-eval.elf stm32746g-eval.bin
$(SIZE) stm32746g-eval.elf
--
2.6.4

View File

@ -0,0 +1,7 @@
config BR2_TARGET_AFBOOT_STM32
bool "afboot-stm32"
depends on BR2_arm
help
afboot-stm32 is a very small bootloader for STM32 platforms
https://github.com/mcoquelin-stm32/afboot-stm32

View File

@ -0,0 +1,2 @@
# Locally calculated
sha256 dbd715c8b99f7d266f74a04707a4dac76b75b31321f24dee5256a6348260530c afboot-stm32-v0.1.tar.gz

View File

@ -0,0 +1,18 @@
################################################################################
#
# afboot-stm32
#
################################################################################
AFBOOT_STM32_VERSION = v0.1
AFBOOT_STM32_SITE = $(call github,mcoquelin-stm32,afboot-stm32,$(AFBOOT_STM32_VERSION))
define AFBOOT_STM32_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CROSS_COMPILE=$(TARGET_CROSS) all
endef
define AFBOOT_STM32_INSTALL_TARGET_CMDS
$(INSTALL) -m 0755 $(@D)/stm32*.bin $(BINARIES_DIR)
endef
$(eval $(generic-package))

View File

@ -0,0 +1,65 @@
config BR2_TARGET_ARM_TRUSTED_FIRMWARE
bool "ARM Trusted Firmware (ATF)"
depends on BR2_aarch64 && BR2_TARGET_UBOOT
help
Enable this option if you want to build the ATF for your ARM
based embedded device.
https://github.com/ARM-software/arm-trusted-firmware
if BR2_TARGET_ARM_TRUSTED_FIRMWARE
choice
prompt "ATF Version"
help
Select the specific ATF version you want to use
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION
bool "v1.4"
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL
bool "Custom tarball"
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT
bool "Custom Git repository"
endchoice
if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION
string "URL of custom ATF tarball"
endif
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_VERSION
string
default "v1.4" if BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION
default "custom" if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL
default BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION \
if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT
if BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL
string "URL of custom repository"
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION
string "Custom repository version"
help
Revision to use in the typical format used by Git
E.G. a sha id, a tag, ..
endif
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM
string "ATF platform"
help
Target plaform to build for.
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES
string "Additional ATF build variables"
help
Additional parameters for the ATF build
E.G. 'DEBUG=1 LOG_LEVEL=20'
endif

View File

@ -0,0 +1,3 @@
# Locally calculated
sha256 6dae02acd85278394bfad6e2683e186e5332a711e4491ac4632ad6480f6e5494 arm-trusted-firmware-v1.4.tar.gz
sha256 487795b8023df866259fa159bab94706b747fb0d623b7913f1c4955c0ab5f164 license.rst

View File

@ -0,0 +1,69 @@
################################################################################
#
# arm-trusted-firmware
#
################################################################################
ARM_TRUSTED_FIRMWARE_VERSION = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_VERSION))
ARM_TRUSTED_FIRMWARE_LICENSE = BSD-3-Clause
ARM_TRUSTED_FIRMWARE_LICENSE_FILES = license.rst
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += uboot
ifeq ($(ARM_TRUSTED_FIRMWARE_VERSION),custom)
# Handle custom ATF tarballs as specified by the configuration
ARM_TRUSTED_FIRMWARE_TARBALL = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION))
ARM_TRUSTED_FIRMWARE_SITE = $(patsubst %/,%,$(dir $(ARM_TRUSTED_FIRMWARE_TARBALL)))
ARM_TRUSTED_FIRMWARE_SOURCE = $(notdir $(ARM_TRUSTED_FIRMWARE_TARBALL))
BR_NO_CHECK_HASH_FOR += $(ARM_TRUSTED_FIRMWARE_SOURCE)
else ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT),y)
ARM_TRUSTED_FIRMWARE_SITE = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL))
ARM_TRUSTED_FIRMWARE_SITE_METHOD = git
BR_NO_CHECK_HASH_FOR += $(ARM_TRUSTED_FIRMWARE_SOURCE)
else
ARM_TRUSTED_FIRMWARE_SITE = $(call github,ARM-software,arm-trusted-firmware,$(ARM_TRUSTED_FIRMWARE_VERSION))
endif
ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES = YES
ARM_TRUSTED_FIRMWARE_PLATFORM = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM))
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \
CROSS_COMPILE="$(TARGET_CROSS)" \
BL33=$(BINARIES_DIR)/u-boot.bin \
$(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES)) \
PLAT=$(ARM_TRUSTED_FIRMWARE_PLATFORM)
ifeq ($(BR2_TARGET_VEXPRESS_FIRMWARE),y)
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += SCP_BL2=$(BINARIES_DIR)/scp-fw.bin
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += vexpress-firmware
endif
define ARM_TRUSTED_FIRMWARE_BUILD_CMDS
$(TARGET_CONFIGURE_OPTS) \
$(MAKE) -C $(@D) $(ARM_TRUSTED_FIRMWARE_MAKE_OPTS) \
all fip
endef
define ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES_CMDS
cp -dpf $(@D)/build/$(ARM_TRUSTED_FIRMWARE_PLATFORM)/release/*.bin $(BINARIES_DIR)/
endef
# Configuration check
ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE)$(BR_BUILDING),yy)
ifeq ($(ARM_TRUSTED_FIRMWARE_VERSION),custom)
ifeq ($(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION))),)
$(error No tarball location specified. Please check BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION))
endif
endif
ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT),y)
ifeq ($(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL)),)
$(error No repository specified. Please check BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL)
endif
endif
endif
$(eval $(generic-package))

View File

@ -0,0 +1,47 @@
config BR2_TARGET_AT91BOOTSTRAP
depends on BR2_arm926t
bool "AT91 Bootstrap"
help
AT91Bootstrap is a first level bootloader for the Atmel AT91
devices. It integrates algorithms for:
- Device initialization such as clock configuration, PIO settings...
- Peripheral drivers such as PIO, PMC or SDRAMC...
- Physical media algorithm such as DataFlash, NandFlash, NOR Flash...
if BR2_TARGET_AT91BOOTSTRAP
config BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR
string "custom patch dir"
help
If your board requires custom patches, add the path to the
directory containing the patches here. The patches must be
named at91bootstrap-<version>-<something>.patch.
Most users may leave this empty
config BR2_TARGET_AT91BOOTSTRAP_BOARD
string "Bootstrap board"
default ""
help
This is used to do a make <board>_config
choice
prompt "Boot Memory"
default BR2_TARGET_AT91BOOTSTRAP_DATAFLASH
help
Select Chip for which AT91 bootstrap should be built
config BR2_TARGET_AT91BOOTSTRAP_DATAFLASH
bool "Data Flash"
config BR2_TARGET_AT91BOOTSTRAP_NANDFLASH
bool "NAND Flash"
endchoice
config BR2_TARGET_AT91BOOTSTRAP_MEMORY
string
default "dataflash" if BR2_TARGET_AT91BOOTSTRAP_DATAFLASH
default "nandflash" if BR2_TARGET_AT91BOOTSTRAP_NANDFLASH
endif

View File

@ -0,0 +1,334 @@
When using an EABI toolchain, the default compilation generates
references to __aeabi_unwind_cpp_pr0(). This symbol is defined in
libgcc, but we don't want to use it for a bootloader.
Therefore, this patch passes some additional CFLAGS to disable the
generation of such references by avoiding unwind tables, exceptions,
etc.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
board/at91cap9adk/dataflash/Makefile | 2 +-
board/at91cap9adk/norflash/Makefile | 2 +-
board/at91cap9stk/nandflash/Makefile | 2 +-
board/at91sam9260ek/dataflash/Makefile | 2 +-
board/at91sam9260ek/nandflash/Makefile | 2 +-
board/at91sam9261ek/dataflash/Makefile | 2 +-
board/at91sam9261ek/nandflash/Makefile | 2 +-
board/at91sam9263ek/dataflash/Makefile | 2 +-
board/at91sam9263ek/nandflash/Makefile | 2 +-
board/at91sam9g10ek/dataflash/Makefile | 2 +-
board/at91sam9g10ek/nandflash/Makefile | 2 +-
board/at91sam9g20ek/dataflash/Makefile | 2 +-
board/at91sam9g20ek/nandflash/Makefile | 2 +-
board/at91sam9g45ekes/nandflash/Makefile | 2 +-
board/at91sam9m10ekes/dataflash/Makefile | 2 +-
board/at91sam9m10ekes/nandflash/Makefile | 2 +-
board/at91sam9m10g45ek/dataflash/Makefile | 2 +-
board/at91sam9m10g45ek/nandflash/Makefile | 2 +-
board/at91sam9rlek/dataflash/Makefile | 2 +-
board/at91sam9rlek/nandflash/Makefile | 2 +-
board/at91sam9xeek/dataflash/Makefile | 2 +-
board/at91sam9xeek/nandflash/Makefile | 2 +-
lib/Makefile | 2 +-
23 files changed, 23 insertions(+), 23 deletions(-)
Index: Bootstrap-v1.16/board/at91cap9adk/dataflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91cap9adk/dataflash/Makefile
+++ Bootstrap-v1.16/board/at91cap9adk/dataflash/Makefile
@@ -34,7 +34,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL)
+CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91cap9adk/norflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91cap9adk/norflash/Makefile
+++ Bootstrap-v1.16/board/at91cap9adk/norflash/Makefile
@@ -34,7 +34,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL)
+CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91cap9stk/nandflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91cap9stk/nandflash/Makefile
+++ Bootstrap-v1.16/board/at91cap9stk/nandflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL)
+CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -D$(BOARD) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
Index: Bootstrap-v1.16/board/at91sam9260ek/dataflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9260ek/dataflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9260ek/dataflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9260ek/nandflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9260ek/nandflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9260ek/nandflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9261ek/dataflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9261ek/dataflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9261ek/dataflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9261ek/nandflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9261ek/nandflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9261ek/nandflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9263ek/dataflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9263ek/dataflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9263ek/dataflash/Makefile
@@ -34,7 +34,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9263ek/nandflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9263ek/nandflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9263ek/nandflash/Makefile
@@ -33,7 +33,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm9 -O0 -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm9 -O0 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9g10ek/dataflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9g10ek/dataflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9g10ek/dataflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9g10ek/nandflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9g10ek/nandflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9g10ek/nandflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9g20ek/dataflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9g20ek/dataflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9g20ek/dataflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9g20ek/nandflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9g20ek/nandflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9g20ek/nandflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9g45ekes/nandflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9g45ekes/nandflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9g45ekes/nandflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9m10ekes/dataflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9m10ekes/dataflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9m10ekes/dataflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9m10ekes/nandflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9m10ekes/nandflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9m10ekes/nandflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9m10g45ek/dataflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9m10g45ek/dataflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9m10g45ek/dataflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9m10g45ek/nandflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9m10g45ek/nandflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9m10g45ek/nandflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm926ej-s -O2 -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm926ej-s -c -O2 -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9rlek/dataflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9rlek/dataflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9rlek/dataflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9rlek/nandflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9rlek/nandflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9rlek/nandflash/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9xeek/dataflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9xeek/dataflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9xeek/dataflash/Makefile
@@ -38,7 +38,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/board/at91sam9xeek/nandflash/Makefile
===================================================================
--- Bootstrap-v1.16.orig/board/at91sam9xeek/nandflash/Makefile
+++ Bootstrap-v1.16/board/at91sam9xeek/nandflash/Makefile
@@ -38,7 +38,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm9 -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm9 -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.
Index: Bootstrap-v1.16/lib/Makefile
===================================================================
--- Bootstrap-v1.16.orig/lib/Makefile
+++ Bootstrap-v1.16/lib/Makefile
@@ -37,7 +37,7 @@
SIZE=$(CROSS_COMPILE)size
OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL)
+CCFLAGS=-g -mcpu=arm926ej-s -Os -Wall -D$(TARGET) -I$(INCL) -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
ASFLAGS=-g -mcpu=arm926ej-s -c -Os -Wall -D$(TARGET) -I$(INCL) -DTOP_OF_MEM=$(TOP_OF_MEMORY)
# Linker flags.

View File

@ -0,0 +1,29 @@
From b783d1f9bf985c0981e755bd2c13e091e9d6837f Mon Sep 17 00:00:00 2001
From: Gregory Hermant <gregory.hermant@calao-systems.com>
Date: Tue, 6 Nov 2012 09:38:50 +0100
Subject: [PATCH] at91bootstrap: fix overlap linker issue
The linker script of the at91bootstrap package has to be modified when
built from gcc-4.6.x version. Indeed a section named text.startup is
created and has to be added into the text section.
Signed-off-by: Gregory Hermant <gregory.hermant@calao-systems.com>
---
elf32-littlearm.lds | 1 +
1 file changed, 1 insertion(+)
diff --git a/elf32-littlearm.lds b/elf32-littlearm.lds
index a33952f..4f3ba25 100644
--- a/elf32-littlearm.lds
+++ b/elf32-littlearm.lds
@@ -7,6 +7,7 @@ SECTIONS
.text : {
_stext = .;
*(.text)
+ *(.text*)
*(.rodata) /* read-only data (constants) */
*(.rodata*)
. = ALIGN(4);
--
1.7.9.5

View File

@ -0,0 +1,284 @@
From d4e4a1aad559e35d84b445d1379be94ad036984e Mon Sep 17 00:00:00 2001
From: Alexandre Belloni <alexandre.belloni@piout.net>
Date: Thu, 25 Oct 2012 22:57:14 +0200
Subject: [PATCH] u-boot relocation fix
Every AT91SAM plaforms were broken between 2010.12 and 2011.03 because
of the relocation changes.
We have to get JUMP_ADDR consistant with what is used by u-boot
(CONFIG_SYS_TEXT_BASE).
I didn't know what to do with at91sam9m10g45ek as it doesn't seems to be
converted yet. But anyway, that means that it is either not working or
doesn't care so changing it here shouldn't harm.
We also have to increase the IMG_SIZE as u-boot as grown larger than the
default value. As requested on the u-boot ML, we assume that it could
be up to 495kB big.
It means that now, you have to flash your kernel at 0x00084000 instead
of 0x00042000. And so you also have to load it from that adress from
u-boot.
Then, remember that you could decrease IMG_SIZE to boot faster.
Signed-off-by: Alexandre Belloni <alexandre.belloni@piout.net>
---
board/at91sam9260ek/dataflash/at91sam9260ek.h | 4 ++--
board/at91sam9260ek/nandflash/at91sam9260ek.h | 2 +-
board/at91sam9261ek/dataflash/at91sam9261ek.h | 4 ++--
board/at91sam9261ek/nandflash/at91sam9261ek.h | 2 +-
board/at91sam9263ek/dataflash/at91sam9263ek.h | 4 ++--
board/at91sam9263ek/nandflash/at91sam9263ek.h | 2 +-
board/at91sam9g10ek/dataflash/at91sam9g10ek.h | 4 ++--
board/at91sam9g10ek/nandflash/at91sam9g10ek.h | 2 +-
board/at91sam9g20ek/dataflash/at91sam9g20ek.h | 4 ++--
board/at91sam9g20ek/nandflash/at91sam9g20ek.h | 2 +-
board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h | 2 +-
.../at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h | 2 +-
board/at91sam9rlek/dataflash/at91sam9rlek.h | 4 ++--
board/at91sam9rlek/nandflash/at91sam9rlek.h | 2 +-
board/at91sam9xeek/dataflash/at91sam9xeek.h | 4 ++--
board/at91sam9xeek/nandflash/at91sam9xeek.h | 2 +-
16 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/board/at91sam9260ek/dataflash/at91sam9260ek.h b/board/at91sam9260ek/dataflash/at91sam9260ek.h
index 1834246..91081a1 100644
--- a/board/at91sam9260ek/dataflash/at91sam9260ek.h
+++ b/board/at91sam9260ek/dataflash/at91sam9260ek.h
@@ -74,10 +74,10 @@
#define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS1_DATAFLASH /* Boot on SPI NCS0 */
#define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */
-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */
+#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */
#define MACH_TYPE 0x44B /* AT91SAM9260-EK */
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
diff --git a/board/at91sam9260ek/nandflash/at91sam9260ek.h b/board/at91sam9260ek/nandflash/at91sam9260ek.h
index 2cac601..f8fdff2 100644
--- a/board/at91sam9260ek/nandflash/at91sam9260ek.h
+++ b/board/at91sam9260ek/nandflash/at91sam9260ek.h
@@ -92,7 +92,7 @@
#define IMG_SIZE 0x40000 /* Image Size in NandFlash */
#define MACH_TYPE 0x44B /* AT91SAM9260-EK */
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
diff --git a/board/at91sam9261ek/dataflash/at91sam9261ek.h b/board/at91sam9261ek/dataflash/at91sam9261ek.h
index 8ce30e9..276ba3d 100644
--- a/board/at91sam9261ek/dataflash/at91sam9261ek.h
+++ b/board/at91sam9261ek/dataflash/at91sam9261ek.h
@@ -97,10 +97,10 @@
#define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */
#define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */
-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */
+#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */
#define MACH_TYPE 0x350 /* AT91SAM9261-EK */
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
diff --git a/board/at91sam9261ek/nandflash/at91sam9261ek.h b/board/at91sam9261ek/nandflash/at91sam9261ek.h
index badc3ac..e628c97 100644
--- a/board/at91sam9261ek/nandflash/at91sam9261ek.h
+++ b/board/at91sam9261ek/nandflash/at91sam9261ek.h
@@ -114,7 +114,7 @@
#define IMG_SIZE 0x40000 /* Image Size in NandFlash */
#define MACH_TYPE 0x350 /* AT91SAM9261-EK */
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
diff --git a/board/at91sam9263ek/dataflash/at91sam9263ek.h b/board/at91sam9263ek/dataflash/at91sam9263ek.h
index 5c9da4b..870f9e2 100644
--- a/board/at91sam9263ek/dataflash/at91sam9263ek.h
+++ b/board/at91sam9263ek/dataflash/at91sam9263ek.h
@@ -96,10 +96,10 @@
#define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */
#define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */
-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */
+#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */
#define MACH_TYPE 0x4B2 /* AT91SAM9263-EK */
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
diff --git a/board/at91sam9263ek/nandflash/at91sam9263ek.h b/board/at91sam9263ek/nandflash/at91sam9263ek.h
index 505afc7..8ab4f46 100644
--- a/board/at91sam9263ek/nandflash/at91sam9263ek.h
+++ b/board/at91sam9263ek/nandflash/at91sam9263ek.h
@@ -108,7 +108,7 @@
#define IMG_SIZE 0x40000 /* Image Size in NandFlash */
#define MACH_TYPE 1202 /* AT91SAM9263-EK */
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
diff --git a/board/at91sam9g10ek/dataflash/at91sam9g10ek.h b/board/at91sam9g10ek/dataflash/at91sam9g10ek.h
index b2faf44..f4f556b 100644
--- a/board/at91sam9g10ek/dataflash/at91sam9g10ek.h
+++ b/board/at91sam9g10ek/dataflash/at91sam9g10ek.h
@@ -98,10 +98,10 @@
#define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */
#define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */
-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */
+#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */
#define MACH_TYPE 0x350 /* AT91SAM9261-EK */
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
diff --git a/board/at91sam9g10ek/nandflash/at91sam9g10ek.h b/board/at91sam9g10ek/nandflash/at91sam9g10ek.h
index 66c40a3..6c3ecda 100644
--- a/board/at91sam9g10ek/nandflash/at91sam9g10ek.h
+++ b/board/at91sam9g10ek/nandflash/at91sam9g10ek.h
@@ -115,7 +115,7 @@
#define IMG_SIZE 0x40000 /* Image Size in NandFlash */
#define MACH_TYPE 0x350 /* AT91SAM9G10-EK */
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
diff --git a/board/at91sam9g20ek/dataflash/at91sam9g20ek.h b/board/at91sam9g20ek/dataflash/at91sam9g20ek.h
index eea0439..7fc70d6 100644
--- a/board/at91sam9g20ek/dataflash/at91sam9g20ek.h
+++ b/board/at91sam9g20ek/dataflash/at91sam9g20ek.h
@@ -75,10 +75,10 @@
#define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS1_DATAFLASH /* Boot on SPI NCS1 */
#define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */
-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */
+#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */
#define MACH_TYPE 0x658 /* AT91SAM9G20-EK */
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
diff --git a/board/at91sam9g20ek/nandflash/at91sam9g20ek.h b/board/at91sam9g20ek/nandflash/at91sam9g20ek.h
index 31bd499..e797e4d 100644
--- a/board/at91sam9g20ek/nandflash/at91sam9g20ek.h
+++ b/board/at91sam9g20ek/nandflash/at91sam9g20ek.h
@@ -93,7 +93,7 @@
#define IMG_SIZE 0x40000 /* Image Size in NandFlash */
#define MACH_TYPE 0x658 /* AT91SAM9G20-EK */
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
diff --git a/board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h b/board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h
index a60fd41..5587a00 100644
--- a/board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h
+++ b/board/at91sam9m10ekes/dataflash/at91sam9m10ekes.h
@@ -89,7 +89,7 @@
#define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */
#define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */
-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */
+#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */
#define MACH_TYPE 0x9CD /* AT91SAM9M10-EKES */
#define JUMP_ADDR 0x73F00000 /* Final Jump Address */
diff --git a/board/at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h b/board/at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h
index 5c726b5..9090097 100644
--- a/board/at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h
+++ b/board/at91sam9m10g45ek/dataflash/at91sam9m10g45ek.h
@@ -85,7 +85,7 @@
#define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */
#define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */
-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */
+#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */
#define MACH_TYPE 0x726 /* AT91SAM9M10G45-EK */
#define JUMP_ADDR 0x73F00000 /* Final Jump Address */
diff --git a/board/at91sam9rlek/dataflash/at91sam9rlek.h b/board/at91sam9rlek/dataflash/at91sam9rlek.h
index 05c42dc..150f17e 100644
--- a/board/at91sam9rlek/dataflash/at91sam9rlek.h
+++ b/board/at91sam9rlek/dataflash/at91sam9rlek.h
@@ -89,10 +89,10 @@
#define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */
#define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */
-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */
+#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */
#define MACH_TYPE 1326 /* AT91SAM9RL-EK */
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
diff --git a/board/at91sam9rlek/nandflash/at91sam9rlek.h b/board/at91sam9rlek/nandflash/at91sam9rlek.h
index 656b4ba..594db8f 100644
--- a/board/at91sam9rlek/nandflash/at91sam9rlek.h
+++ b/board/at91sam9rlek/nandflash/at91sam9rlek.h
@@ -112,7 +112,7 @@
#define IMG_SIZE 0x40000 /* Image Size in NandFlash */
#define MACH_TYPE 1326 /* AT91SAM9RL-EK */
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
diff --git a/board/at91sam9xeek/dataflash/at91sam9xeek.h b/board/at91sam9xeek/dataflash/at91sam9xeek.h
index 27d1822..08e515d 100644
--- a/board/at91sam9xeek/dataflash/at91sam9xeek.h
+++ b/board/at91sam9xeek/dataflash/at91sam9xeek.h
@@ -74,10 +74,10 @@
#define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS1_DATAFLASH /* Boot on SPI NCS1 */
#define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */
-#define IMG_SIZE 0x33900 /* Image Size in DataFlash */
+#define IMG_SIZE 0x7BC00 /* Image Size in DataFlash */
#define MACH_TYPE 0x44B /* AT91SAM9XE-EK same id as AT91SAM9260-EK*/
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
diff --git a/board/at91sam9xeek/nandflash/at91sam9xeek.h b/board/at91sam9xeek/nandflash/at91sam9xeek.h
index 5dbc63e..9fac7cb 100644
--- a/board/at91sam9xeek/nandflash/at91sam9xeek.h
+++ b/board/at91sam9xeek/nandflash/at91sam9xeek.h
@@ -94,7 +94,7 @@
#define IMG_SIZE 0x40000 /* Image Size in NandFlash */
#define MACH_TYPE 0x44B /* AT91SAM9XE-EK same id as AT91SAM9260-EK*/
-#define JUMP_ADDR 0x23F00000 /* Final Jump Address */
+#define JUMP_ADDR 0x21F00000 /* Final Jump Address */
/* ******************************************************************* */
/* Application Settings */
--
1.7.9.5

View File

@ -0,0 +1,2 @@
# locally computed
sha256 d66192a274247f4baa39fa932eadf903d7add55641d89d30402f967c4f2282a5 AT91Bootstrap1.16.zip

View File

@ -0,0 +1,47 @@
################################################################################
#
# at91bootstrap
#
################################################################################
AT91BOOTSTRAP_VERSION = 1.16
AT91BOOTSTRAP_SITE = ftp://www.at91.com/pub/at91bootstrap
AT91BOOTSTRAP_SOURCE = AT91Bootstrap$(AT91BOOTSTRAP_VERSION).zip
AT91BOOTSTRAP_BOARD = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_BOARD))
AT91BOOTSTRAP_MEMORY = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_MEMORY))
AT91BOOTSTRAP_MAKE_SUBDIR = board/$(AT91BOOTSTRAP_BOARD)/$(AT91BOOTSTRAP_MEMORY)
AT91BOOTSTRAP_BINARY = $(AT91BOOTSTRAP_MAKE_SUBDIR)/$(AT91BOOTSTRAP_MEMORY)_$(AT91BOOTSTRAP_BOARD).bin
AT91BOOTSTRAP_INSTALL_IMAGES = YES
AT91BOOTSTRAP_INSTALL_TARGET = NO
define AT91BOOTSTRAP_EXTRACT_CMDS
$(UNZIP) -d $(BUILD_DIR) $(DL_DIR)/$(AT91BOOTSTRAP_SOURCE)
mv $(BUILD_DIR)/Bootstrap-v$(AT91BOOTSTRAP_VERSION)/* $(@D)
rmdir $(BUILD_DIR)/Bootstrap-v$(AT91BOOTSTRAP_VERSION)
endef
ifneq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR)),)
define AT91BOOTSTRAP_APPLY_CUSTOM_PATCHES
$(APPLY_PATCHES) $(@D) $(BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR) \*.patch
endef
AT91BOOTSTRAP_POST_PATCH_HOOKS += AT91BOOTSTRAP_APPLY_CUSTOM_PATCHES
endif
define AT91BOOTSTRAP_BUILD_CMDS
$(MAKE1) CROSS_COMPILE=$(TARGET_CROSS) -C $(@D)/$(AT91BOOTSTRAP_MAKE_SUBDIR)
endef
define AT91BOOTSTRAP_INSTALL_IMAGES_CMDS
cp $(@D)/$(AT91BOOTSTRAP_BINARY) $(BINARIES_DIR)
endef
$(eval $(generic-package))
ifeq ($(BR2_TARGET_AT91BOOTSTRAP)$(BR_BUILDING),yy)
ifeq ($(AT91BOOTSTRAP_BOARD),)
$(error No AT91Bootstrap board name set. Check your BR2_TARGET_AT91BOOTSTRAP_BOARD setting)
endif
endif

View File

@ -0,0 +1,87 @@
config BR2_TARGET_AT91BOOTSTRAP3
depends on BR2_arm926t || BR2_cortex_a5
bool "AT91 Bootstrap 3"
help
AT91Bootstrap is a first level bootloader for the Atmel AT91
devices. It integrates algorithms for:
- Device initialization such as clock configuration, PIO settings...
- Peripheral drivers such as PIO, PMC or SDRAMC...
- Physical media algorithm such as DataFlash, NandFlash, NOR Flash...
if BR2_TARGET_AT91BOOTSTRAP3
choice
prompt "AT91 Bootstrap 3 version"
config BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION
bool "3.8.6"
config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT
bool "Custom Git repository"
help
This option allows Buildroot to get the AT91 Bootstrap 3 source
code from a Git repository.
endchoice
if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT
config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL
string "URL of custom repository"
config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION
string "Custom repository version"
help
Revision to use in the typical format used by Git
E.G. a sha id, a tag, branch, ..
endif
config BR2_TARGET_AT91BOOTSTRAP3_VERSION
string
default "v3.8.6" if BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION
default BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION \
if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT
config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_PATCH_DIR
string "custom patch dir"
help
If your board requires custom patches, add the path to the
directory containing the patches here. The patches must be
named at91bootstrap3-<something>.patch.
Most users may leave this empty
#
# Configuration selection
#
choice
prompt "AT91 Bootstrap 3 configuration"
default BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG
config BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG
bool "Using a defconfig"
config BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG
bool "Using a custom config file"
endchoice
config BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG
string "Defconfig name"
depends on BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG
help
Name of the at91bootstrap3 defconfig file to use, without the
trailing _defconfig. The defconfig is located at
board/<processor>/<board>_defconfig in the at91bootstrap3
tree.
config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE
string "Configuration file path"
depends on BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG
help
Path to the at91bootstrap3 configuration file
endif # BR2_TARGET_AT91BOOTSTRAP3

View File

@ -0,0 +1,2 @@
# Locally calculated
sha256 a2e9ec6f42ee3b5a805fe215257b63070b6c498d57c568c46fcb18fd1b38ea7e at91bootstrap3-v3.8.6.tar.gz

View File

@ -0,0 +1,83 @@
################################################################################
#
# at91bootstrap3
#
################################################################################
AT91BOOTSTRAP3_VERSION = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_VERSION))
ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT),y)
AT91BOOTSTRAP3_SITE = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL))
AT91BOOTSTRAP3_SITE_METHOD = git
BR_NO_CHECK_HASH_FOR += $(AT91BOOTSTRAP3_SOURCE)
else
AT91BOOTSTRAP3_SITE = $(call github,linux4sam,at91bootstrap,$(AT91BOOTSTRAP3_VERSION))
endif
AT91BOOTSTRAP3_LICENSE = Atmel License
AT91BOOTSTRAP3_LICENSE_FILES = main.c
AT91BOOTSTRAP3_INSTALL_IMAGES = YES
AT91BOOTSTRAP3_INSTALL_TARGET = NO
AT91BOOTSTRAP3_CUSTOM_PATCH_DIR = \
$(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_PATCH_DIR))
AT91BOOTSTRAP3_MAKE_OPTS = CROSS_COMPILE=$(TARGET_CROSS) DESTDIR=$(BINARIES_DIR)
ifneq ($(AT91BOOTSTRAP3_CUSTOM_PATCH_DIR),)
define AT91BOOTSTRAP3_APPLY_CUSTOM_PATCHES
$(APPLY_PATCHES) $(@D) $(AT91BOOTSTRAP3_CUSTOM_PATCH_DIR) \*.patch
endef
AT91BOOTSTRAP3_POST_PATCH_HOOKS += AT91BOOTSTRAP3_APPLY_CUSTOM_PATCHES
endif
define AT91BOOTSTRAP3_BUILD_CMDS
$(MAKE) $(AT91BOOTSTRAP3_MAKE_OPTS) -C $(@D)
endef
define AT91BOOTSTRAP3_INSTALL_IMAGES_CMDS
cp $(@D)/binaries/*.bin $(BINARIES_DIR)
endef
ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG),y)
AT91BOOTSTRAP3_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG))_defconfig
else ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG),y)
AT91BOOTSTRAP3_KCONFIG_FILE = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE))
endif
AT91BOOTSTRAP3_KCONFIG_EDITORS = menuconfig xconfig gconfig
AT91BOOTSTRAP3_KCONFIG_OPTS = $(AT91BOOTSTRAP3_MAKE_OPTS)
# Checks to give errors that the user can understand
# Must be before we call to kconfig-package
ifeq ($(BR_BUILDING),y)
ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_DEFCONFIG),y)
# We must use the user-supplied kconfig value, because
# AT91BOOTSTRAP3_KCONFIG_DEFCONFIG will at least contain
# the trailing _defconfig
ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG)),)
$(error No at91bootstrap3 defconfig name specified, check your BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG setting)
endif
endif
ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG),y)
ifeq ($(AT91BOOTSTRAP3_KCONFIG_FILE),)
$(error No at91bootstrap3 configuration file specified, check your BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE setting)
endif
endif
ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT),y)
ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL)),)
$(error No custom at91bootstrap3 repository URL specified. Check your BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL setting)
endif
ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION)),)
$(error No custom at91bootstrap3 repository version specified. Check your BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION setting)
endif
endif
endif # BR_BUILDING
$(eval $(kconfig-package))

View File

@ -0,0 +1,3 @@
config BR2_TARGET_AT91DATAFLASHBOOT
depends on BR2_arm926t
bool "AT91 DataFlashBoot"

View File

@ -0,0 +1,22 @@
Disable the automatic installation of at91dataflashboot since it tries
to install things to /tftpboot, which is not possible when not
building as root.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: at91dataflashboot-1.05/Makefile
===================================================================
--- at91dataflashboot-1.05.orig/Makefile
+++ at91dataflashboot-1.05/Makefile
@@ -40,7 +40,7 @@
I=config.h com.h dataflash.h embedded_services.h main.h stdio.h include/AT91RM9200.h include/lib_AT91RM9200.h
-all: clean $(BINNAME) $(LSSNAME) install
+all: clean $(BINNAME) $(LSSNAME)
$(SIZE) $(OUTNAME)
# C objects here

View File

@ -0,0 +1,43 @@
Get at91dataflashboot to build with EABI toolchains, by providing the
__aeabi_uidiv and __aeabi_uidivmod symbols. The code is based on
U-Boot's code.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
_udivsi3.S | 14 ++++++++++++++
1 file changed, 14 insertions(+)
Index: DataflashBoot-1.05/_udivsi3.S
===================================================================
--- DataflashBoot-1.05.orig/_udivsi3.S
+++ DataflashBoot-1.05/_udivsi3.S
@@ -12,8 +12,11 @@
.text
.globl __udivsi3
.type __udivsi3 ,function
+ .globl __aeabi_uidiv
+ .type __aeabi_uidiv ,function
.align 0
__udivsi3 :
+ __aeabi_uidiv:
cmp divisor, #0
beq Ldiv0
mov curbit, #1
@@ -68,6 +71,17 @@
mov r0, #0 @ about as wrong as it could be
ldmia sp!, {pc}
.size __udivsi3 , . - __udivsi3
+
+.globl __aeabi_uidivmod
+__aeabi_uidivmod:
+
+ stmfd sp!, {r0, r1, ip, lr}
+ bl __aeabi_uidiv
+ ldmfd sp!, {r1, r2, ip, lr}
+ mul r3, r0, r2
+ sub r1, r1, r3
+ mov pc, lr
+
/* # 235 "libgcc1.S" */
/* # 320 "libgcc1.S" */
/* # 421 "libgcc1.S" */

View File

@ -0,0 +1,2 @@
# locally computed
sha256 2cfeb6a9236e1a743c8010f05e504dbc92169ef42d9a6cf7948954a577bfc386 DataflashBoot-1.05.tar.bz2

View File

@ -0,0 +1,22 @@
################################################################################
#
# at91dataflashboot
#
################################################################################
AT91DATAFLASHBOOT_VERSION = 1.05
AT91DATAFLASHBOOT_SOURCE = DataflashBoot-$(AT91DATAFLASHBOOT_VERSION).tar.bz2
AT91DATAFLASHBOOT_SITE = ftp://www.at91.com/pub/buildroot
AT91DATAFLASHBOOT_INSTALL_TARGET = NO
AT91DATAFLASHBOOT_INSTALL_IMAGES = YES
define AT91DATAFLASHBOOT_BUILD_CMDS
make -C $(@D) CROSS_COMPILE=$(TARGET_CROSS)
endef
define AT91DATAFLASHBOOT_INSTALL_IMAGES_CMDS
cp $(@D)/DataflashBoot-$(AT91DATAFLASHBOOT_VERSION).bin $(BINARIES_DIR)
endef
$(eval $(generic-package))

85
boot/barebox/Config.in Normal file
View File

@ -0,0 +1,85 @@
config BR2_TARGET_BAREBOX
bool "Barebox"
help
The Barebox bootloader, formerly known as U-Boot v2.
http://www.barebox.org
if BR2_TARGET_BAREBOX
choice
prompt "version"
help
Select the specific Barebox version you want to use
config BR2_TARGET_BAREBOX_LATEST_VERSION
bool "2017.09.0"
config BR2_TARGET_BAREBOX_CUSTOM_VERSION
bool "Custom version"
help
This option allows to use a specific official versions
config BR2_TARGET_BAREBOX_CUSTOM_TARBALL
bool "Custom tarball"
config BR2_TARGET_BAREBOX_CUSTOM_GIT
bool "Custom Git repository"
endchoice
config BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE
string "Barebox version"
depends on BR2_TARGET_BAREBOX_CUSTOM_VERSION
if BR2_TARGET_BAREBOX_CUSTOM_TARBALL
config BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION
string "URL of custom Barebox tarball"
endif
config BR2_TARGET_BAREBOX_VERSION
string
default "2017.09.0" if BR2_TARGET_BAREBOX_LATEST_VERSION
default BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE if BR2_TARGET_BAREBOX_CUSTOM_VERSION
default "custom" if BR2_TARGET_BAREBOX_CUSTOM_TARBALL
default BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION if BR2_TARGET_BAREBOX_CUSTOM_GIT
config BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR
string "custom patch dir"
help
If your board requires custom patches, add the path to the
directory containing the patches here. The patches must be
named barebox-<version>-<something>.patch.
Most users may leave this empty
if BR2_TARGET_BAREBOX_CUSTOM_GIT
config BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL
string "URL of custom Git repository"
config BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION
string "Custom Git version"
endif
source boot/barebox/barebox/Config.in
menuconfig BR2_TARGET_BAREBOX_AUX
bool "Build barebox with an auxiliary config"
help
Build barebox with an auxiliary configuration.
Useful for building an SPL (Secondary Program Loader) in
addition to the traditional TPL (Tertiary Program Loader),
such as the X-Loader or MLO for Texas Instruments
processors.
if BR2_TARGET_BAREBOX_AUX
source boot/barebox/barebox-aux/Config.in
endif
endif

View File

@ -0,0 +1,75 @@
choice
prompt "Barebox configuration"
default BR2_TARGET_BAREBOX_AUX_USE_DEFCONFIG
config BR2_TARGET_BAREBOX_AUX_USE_DEFCONFIG
bool "Using a defconfig"
config BR2_TARGET_BAREBOX_AUX_USE_CUSTOM_CONFIG
bool "Using a custom config file"
endchoice
config BR2_TARGET_BAREBOX_AUX_BOARD_DEFCONFIG
string "board defconfig"
depends on BR2_TARGET_BAREBOX_AUX_USE_DEFCONFIG
help
Name of the board for which Barebox should be built, without
the _defconfig suffix.
config BR2_TARGET_BAREBOX_AUX_CUSTOM_CONFIG_FILE
string "Configuration file path"
depends on BR2_TARGET_BAREBOX_AUX_USE_CUSTOM_CONFIG
help
Path to the barebox configuration file
config BR2_TARGET_BAREBOX_AUX_CONFIG_FRAGMENT_FILES
string "Additional configuration fragment files"
help
A space-separated list of configuration fragment files,
that will be merged to the main Barebox configuration file.
config BR2_TARGET_BAREBOX_AUX_IMAGE_FILE
string "Image file names"
help
Space-separated list of barebox images which will be copied to
the images directory.
If left empty, defaults to:
- barebox.bin for barebox versions older than 2012.10.
- barebox-flash-image for later versions.
config BR2_TARGET_BAREBOX_AUX_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_AUX_CUSTOM_ENV_PATH
string "Environment path"
depends on BR2_TARGET_BAREBOX_AUX_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.
config BR2_TARGET_BAREBOX_AUX_CUSTOM_EMBEDDED_ENV_PATH
string "Embedded environment path"
help
If this option is not empty, it is the path to a custom
embedded barebox environment. This image will be used when
the environment found in the environment sector is
invalid. This option sets the barebox Kconfig option
CONFIG_DEFAULT_ENVIRONMENT_PATH to the specified path. This
way it is possible to use Buildroot variables like
TOPDIR etc. to refer to the custom environment.
Depending on your setup, the custom embedded environment
will probably be based on either the content of the
defaultenv or defaultenv-2 directories in the barebox source
code.

View File

@ -0,0 +1 @@
../barebox.hash

View File

@ -0,0 +1,8 @@
################################################################################
#
# barebox-aux
#
################################################################################
# Instantiate the auxiliary barebox package
$(eval $(barebox-package))

View File

@ -0,0 +1,5 @@
# http://www.barebox.org/download/barebox-2017.09.0.tar.bz2.md5
md5 b92e9c99cda7fbb61d01baf5679df261 barebox-2017.09.0.tar.bz2
# Locally calculated
sha256 43283edc019f95a53fdb7d1b7c294afc4741bfcace348d6beeded5fe5147a81b barebox-2017.09.0.tar.bz2

157
boot/barebox/barebox.mk Normal file
View File

@ -0,0 +1,157 @@
################################################################################
#
# barebox
#
################################################################################
################################################################################
# inner-barebox-package -- generates the KConfig logic and make targets needed
# to support a barebox package. All barebox packages are built from the same
# source (origin, version and patches). The remainder of the package
# configuration is unique to each barebox package.
#
# argument 1 is the uppercase package name (used for variable name-space)
################################################################################
define inner-barebox-package
$(1)_VERSION = $$(call qstrip,$$(BR2_TARGET_BAREBOX_VERSION))
ifeq ($$($(1)_VERSION),custom)
# Handle custom Barebox tarballs as specified by the configuration
$(1)_TARBALL = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION))
$(1)_SITE = $$(patsubst %/,%,$$(dir $$($(1)_TARBALL)))
$(1)_SOURCE = $$(notdir $$($(1)_TARBALL))
else ifeq ($$(BR2_TARGET_BAREBOX_CUSTOM_GIT),y)
$(1)_SITE = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL))
$(1)_SITE_METHOD = git
else
# Handle stable official Barebox versions
$(1)_SOURCE = barebox-$$($(1)_VERSION).tar.bz2
$(1)_SITE = http://www.barebox.org/download
endif
$(1)_DEPENDENCIES = host-lzop
$(1)_LICENSE = GPL-2.0 with exceptions
$(1)_LICENSE_FILES = COPYING
$(1)_CUSTOM_EMBEDDED_ENV_PATH = $$(call qstrip,$$(BR2_TARGET_$(1)_CUSTOM_EMBEDDED_ENV_PATH))
ifneq ($$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR)),)
define $(1)_APPLY_CUSTOM_PATCHES
$$(APPLY_PATCHES) $$(@D) \
$$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR) \*.patch
endef
$(1)_POST_PATCH_HOOKS += $(1)_APPLY_CUSTOM_PATCHES
endif
$(1)_INSTALL_IMAGES = YES
ifneq ($$(BR2_TARGET_$(1)_BAREBOXENV),y)
$(1)_INSTALL_TARGET = NO
endif
ifeq ($$(KERNEL_ARCH),i386)
$(1)_ARCH = x86
else ifeq ($$(KERNEL_ARCH),x86_64)
$(1)_ARCH = x86
else ifeq ($$(KERNEL_ARCH),powerpc)
$(1)_ARCH = ppc
else ifeq ($$(KERNEL_ARCH),arm64)
$(1)_ARCH = arm
else
$(1)_ARCH = $$(KERNEL_ARCH)
endif
$(1)_MAKE_FLAGS = ARCH=$$($(1)_ARCH) CROSS_COMPILE="$$(TARGET_CROSS)"
$(1)_MAKE_ENV = $$(TARGET_MAKE_ENV)
ifeq ($$(BR2_TARGET_$(1)_USE_DEFCONFIG),y)
$(1)_KCONFIG_DEFCONFIG = $$(call qstrip,$$(BR2_TARGET_$(1)_BOARD_DEFCONFIG))_defconfig
else ifeq ($$(BR2_TARGET_$(1)_USE_CUSTOM_CONFIG),y)
$(1)_KCONFIG_FILE = $$(call qstrip,$$(BR2_TARGET_$(1)_CUSTOM_CONFIG_FILE))
endif
$(1)_KCONFIG_FRAGMENT_FILES = $$(call qstrip,$$(BR2_TARGET_$(1)_CONFIG_FRAGMENT_FILES))
$(1)_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
$(1)_KCONFIG_OPTS = $$($(1)_MAKE_FLAGS)
ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y)
define $(1)_BUILD_BAREBOXENV_CMDS
$$(TARGET_CC) $$(TARGET_CFLAGS) $$(TARGET_LDFLAGS) -o $$(@D)/bareboxenv \
$$(@D)/scripts/bareboxenv.c
endef
endif
ifeq ($$(BR2_TARGET_$(1)_CUSTOM_ENV),y)
$(1)_ENV_NAME = $$(notdir $$(call qstrip,\
$$(BR2_TARGET_$(1)_CUSTOM_ENV_PATH)))
define $(1)_BUILD_CUSTOM_ENV
$$(@D)/scripts/bareboxenv -s \
$$(call qstrip, $$(BR2_TARGET_$(1)_CUSTOM_ENV_PATH)) \
$$(@D)/$$($(1)_ENV_NAME)
endef
define $(1)_INSTALL_CUSTOM_ENV
cp $$(@D)/$$($(1)_ENV_NAME) $$(BINARIES_DIR)
endef
endif
ifneq ($$($(1)_CUSTOM_EMBEDDED_ENV_PATH),)
define $(1)_KCONFIG_FIXUP_CMDS
$$(call KCONFIG_ENABLE_OPT,CONFIG_DEFAULT_ENVIRONMENT,$$(@D)/.config)
$$(call KCONFIG_SET_OPT,CONFIG_DEFAULT_ENVIRONMENT_PATH,"$$($(1)_CUSTOM_EMBEDDED_ENV_PATH)",$$(@D)/.config)
endef
endif
define $(1)_BUILD_CMDS
$$($(1)_BUILD_BAREBOXENV_CMDS)
$$(TARGET_MAKE_ENV) $$(MAKE) $$($(1)_MAKE_FLAGS) -C $$(@D)
$$($(1)_BUILD_CUSTOM_ENV)
endef
$(1)_IMAGE_FILES = $$(call qstrip,$$(BR2_TARGET_$(1)_IMAGE_FILE))
define $(1)_INSTALL_IMAGES_CMDS
if test -n "$$($(1)_IMAGE_FILES)"; then \
cp -L $$(foreach image,$$($(1)_IMAGE_FILES),$$(@D)/$$(image)) $$(BINARIES_DIR) ; \
elif 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
$$($(1)_INSTALL_CUSTOM_ENV)
endef
ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y)
define $(1)_INSTALL_TARGET_CMDS
cp $$(@D)/bareboxenv $$(TARGET_DIR)/usr/bin
endef
endif
# Checks to give errors that the user can understand
# Must be before we call to kconfig-package
ifeq ($$(BR2_TARGET_$(1))$$(BR_BUILDING),yy)
# We must use the user-supplied kconfig value, because
# $(1)_KCONFIG_DEFCONFIG will at least contain the
# trailing _defconfig
ifeq ($$(or $$($(1)_KCONFIG_FILE),$$(call qstrip,$$(BR2_TARGET_$(1)_BOARD_DEFCONFIG))),)
$$(error No Barebox config. Check your BR2_TARGET_$(1)_BOARD_DEFCONFIG or BR2_TARGET_$(1)_CUSTOM_CONFIG_FILE settings)
endif
endif
$$(eval $$(kconfig-package))
endef
################################################################################
# barebox-package -- the target generator macro for barebox packages
################################################################################
barebox-package=$(call inner-barebox-package,$(call UPPERCASE,$(pkgname)))
include boot/barebox/barebox/barebox.mk
include boot/barebox/barebox-aux/barebox-aux.mk
ifeq ($(BR2_TARGET_BAREBOX)$(BR2_TARGET_BAREBOX_LATEST_VERSION),y)
BR_NO_CHECK_HASH_FOR += $(BAREBOX_SOURCE)
endif

View File

@ -0,0 +1,81 @@
choice
prompt "Barebox configuration"
default BR2_TARGET_BAREBOX_USE_DEFCONFIG
config BR2_TARGET_BAREBOX_USE_DEFCONFIG
bool "Using a defconfig"
config BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG
bool "Using a custom config file"
endchoice
config BR2_TARGET_BAREBOX_BOARD_DEFCONFIG
string "board defconfig"
depends on BR2_TARGET_BAREBOX_USE_DEFCONFIG
help
Name of the board for which Barebox should be built, without
the _defconfig suffix.
config BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE
string "Configuration file path"
depends on BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG
help
Path to the barebox configuration file
config BR2_TARGET_BAREBOX_CONFIG_FRAGMENT_FILES
string "Additional configuration fragment files"
help
A space-separated list of configuration fragment files,
that will be merged to the main Barebox configuration file.
config BR2_TARGET_BAREBOX_IMAGE_FILE
string "Image file names"
help
Space-separated list of barebox images which will be copied to
the images directory.
If left empty, defaults to:
- barebox.bin for barebox versions older than 2012.10.
- barebox-flash-image for later versions.
config BR2_TARGET_BAREBOX_BAREBOXENV
bool "bareboxenv tool in target"
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.
config BR2_TARGET_BAREBOX_CUSTOM_EMBEDDED_ENV_PATH
string "Embedded environment path"
help
If this option is not empty, it is the path to a custom
embedded barebox environment. This image will be used when
the environment found in the environment sector is
invalid. This option sets the barebox Kconfig option
CONFIG_DEFAULT_ENVIRONMENT_PATH to the specified path. This
way it is possible to use Buildroot variables like
TOPDIR etc. to refer to the custom environment.
Depending on your setup, the custom embedded environment
will probably be based on either the content of the
defaultenv or defaultenv-2 directories in the barebox source
code.

View File

@ -0,0 +1 @@
../barebox.hash

View File

@ -0,0 +1,13 @@
################################################################################
#
# barebox
#
################################################################################
define BAREBOX_HELP_CMDS
@echo ' barebox-menuconfig - Run barebox menuconfig'
@echo ' barebox-savedefconfig - Run barebox savedefconfig'
endef
# Instantiate the barebox package
$(eval $(barebox-package))

View File

@ -0,0 +1,41 @@
comment "boot-wrapper-aarch64 needs a Linux kernel to be built"
depends on BR2_aarch64
depends on !BR2_LINUX_KERNEL
config BR2_TARGET_BOOT_WRAPPER_AARCH64
bool "boot-wrapper-aarch64"
depends on BR2_aarch64
depends on BR2_LINUX_KERNEL
help
The boot-wrapper-aarch64 is a small bootloader that makes it
possible to start an Aarch64 kernel inside the available
software simulators for the Aarch64 architecture.
git://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git
if BR2_TARGET_BOOT_WRAPPER_AARCH64
config BR2_TARGET_BOOT_WRAPPER_AARCH64_DTS
string "Device Tree Source name"
default ""
help
Name of the Device Tree Source file to use to generate the
Device Tree Blob that will be embedded in the image
generated by the boot wrapper. Valid names are the .dts
files from arch/arm64/boot/dts/ in the kernel source
tree. The name must be specified without the .dts suffix.
config BR2_TARGET_BOOT_WRAPPER_AARCH64_BOOTARGS
string "Kernel bootargs"
default ""
help
Kernel bootargs to embed inside the image generated by the
boot wrapper.
config BR2_TARGET_BOOT_WRAPPER_AARCH64_PSCI
bool "Boot secondary SMP cores using PSCI"
help
Boot secondary SMP cores using PSCI firmware calls. If
disabled, the spin-table method is used instead.
endif

View File

@ -0,0 +1,53 @@
################################################################################
#
# boot-wrapper-aarch64
#
################################################################################
BOOT_WRAPPER_AARCH64_VERSION = 4266507a84f8c06452109d38e0350d4759740694
BOOT_WRAPPER_AARCH64_SITE = git://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git
BOOT_WRAPPER_AARCH64_LICENSE = BSD3c
BOOT_WRAPPER_AARCH64_LICENSE_FILES = LICENSE.txt
BOOT_WRAPPER_AARCH64_DEPENDENCIES = linux
BOOT_WRAPPER_AARCH64_INSTALL_IMAGES = YES
# The Git repository does not have the generated configure script and
# Makefile.
BOOT_WRAPPER_AARCH64_AUTORECONF = YES
BOOT_WRAPPER_AARCH64_DTB = /arch/arm64/boot/dts/$(basename $(call qstrip,$(BR2_TARGET_BOOT_WRAPPER_AARCH64_DTS))).dtb
# Fixup the path to the DTB in configure.ac. In the future, this
# should hopefully be made more configurable by the
# boot-wrapper-aarch64 developers.
define BOOT_WRAPPER_AARCH64_FIX_DTB_NAME
$(SED) 's%^KERN_DTB=.*%KERN_DTB=$(BOOT_WRAPPER_AARCH64_DTB)%' $(@D)/configure.ac
endef
BOOT_WRAPPER_AARCH64_PRE_PATCH_HOOKS += BOOT_WRAPPER_AARCH64_FIX_DTB_NAME
BOOT_WRAPPER_AARCH64_CONF_OPTS = \
--with-kernel-dir=$(LINUX_DIR) \
--with-cmdline=$(BR2_TARGET_BOOT_WRAPPER_AARCH64_BOOTARGS)
ifeq ($(BR2_TARGET_BOOT_WRAPPER_AARCH64_PSCI),y)
BOOT_WRAPPER_AARCH64_CONF_OPTS += --enable-psci
else
BOOT_WRAPPER_AARCH64_CONF_OPTS += --disable-psci
endif
# We need to convince the configure script that the Linux kernel tree
# exists, as well as the DTB and the kernel Image. Even though those
# are available on the build machine, the configure script uses
# AC_CHECK_FILE tests, which are always disabled in cross-compilation
# situations.
BOOT_WRAPPER_AARCH64_CONF_ENV = \
$(call AUTOCONF_AC_CHECK_FILE_VAL,$(LINUX_DIR))=yes \
$(call AUTOCONF_AC_CHECK_FILE_VAL,$(LINUX_DIR)$(BOOT_WRAPPER_AARCH64_DTB))=yes \
$(call AUTOCONF_AC_CHECK_FILE_VAL,$(LINUX_DIR)/arch/arm64/boot/Image)=yes
define BOOT_WRAPPER_AARCH64_INSTALL_IMAGES_CMDS
cp $(@D)/linux-system.axf $(BINARIES_DIR)
endef
$(eval $(autotools-package))

View File

@ -1,200 +0,0 @@
config BR2_TARGET_GRUB
bool "grub"
depends on BR2_i386 || BR2_x86_64
select BR2_HOSTARCH_NEEDS_IA32_COMPILER
help
The GRand Unified Bootloader for x86 systems.
Some notes on creating a disk image with Grub installed:
1. Create an empty disk image
dd if=/dev/zero of=disk.img bs=1M count=32
2. Create one primary partition
cfdisk -h 16 -s 63 disk.img
3. Set up a loop device
sudo losetup -f disk.img
4. Set up loop devices per partitions
sudo partx -a /dev/loop0
5. Create the ext2 filesystem
sudo mkfs.ext2 -L root /dev/loop0p1
6. Mount the filesystem
mount /dev/loop0p1 /mnt
7. Extract the root filesystem
sudo tar -C /mnt -xf output/images/rootfs.tar
8. Unmount the filesystem, clean up loop device
sudo umount /mnt
sudo partx -d /dev/loop0
sudo losetup -d /dev/loop0
9. Install grub
output/host/sbin/grub --device-map=/dev/null
and in the grub shell, enter:
device (hd0) disk.img
geometry (hd0) <cylinders> 16 63
root (hd0,0)
setup (hd0)
10. Image is ready
Can be tested in Qemu, with:
qemu-system-{i386,x86-64} -hda disk.img
if BR2_TARGET_GRUB
config BR2_TARGET_GRUB_SPLASH
bool "Splashimage support"
help
Add support for splashimage.
A splashimage is a 14-color indexed .xpm picture which is
displayed as background for the grub menu. See
http://www.katspace.org/computers/Grub_Splash/ for details
on how to generate a splashimage.
config BR2_TARGET_GRUB_DISKLESS
bool "diskless support"
help
enable diskless support
menu "filesystem drivers"
config BR2_TARGET_GRUB_FS_EXT2
bool "ext2"
default y
help
Enable support for the ext2 filesystem in Grub
config BR2_TARGET_GRUB_FS_FAT
bool "FAT"
default y
help
Enable support for the FAT filesystem in Grub.
config BR2_TARGET_GRUB_FS_ISO9660
bool "ISO9660"
help
Enable support for the ISO9660 filesystem in Grub.
config BR2_TARGET_GRUB_FS_JFS
bool "IBM JFS"
help
Enable support for the JFS filesystem in Grub.
config BR2_TARGET_GRUB_FS_REISERFS
bool "ReiserFS"
help
Enable support for the ReiserFS filesystem in Grub.
config BR2_TARGET_GRUB_FS_XFS
bool "SGI XFS"
help
Enable support for the XFS filesystem in Grub.
endmenu
menu "network drivers"
config BR2_TARGET_GRUB_3c595
bool "3Com595 driver"
help
enable 3Com595 driver
config BR2_TARGET_GRUB_3c90x
bool "3Com90x driver"
help
enable 3Com90x driver
config BR2_TARGET_GRUB_davicom
bool "Davicom driver"
help
enable Davicom driver
config BR2_TARGET_GRUB_e1000
bool "Etherexpress Pro/1000 driver"
help
enable Etherexpress Pro/1000 driver
config BR2_TARGET_GRUB_eepro100
bool "Etherexpress Pro/100 driver"
help
enable Etherexpress Pro/100 driver
config BR2_TARGET_GRUB_epic100
bool "SMC 83c170 EPIC/100 driver"
help
enable SMC 83c170 EPIC/100 driver
config BR2_TARGET_GRUB_forcedeth
bool "Nvidia Geforce driver"
help
enable Nvidia Geforce driver
config BR2_TARGET_GRUB_natsemi
bool "NatSemi DP8381x driver"
help
enable NatSemi DP8381x driver
config BR2_TARGET_GRUB_ns83820
bool "NS83820 driver"
help
enable NS83820 driver
config BR2_TARGET_GRUB_ns8390
bool "NE2000 PCI driver"
help
enable NE2000 PCI driver
config BR2_TARGET_GRUB_pcnet32
bool "AMD Lance/PCI PCNet/32 driver"
help
enable AMD Lance/PCI PCNet/32 driver
config BR2_TARGET_GRUB_pnic
bool "Bochs Pseudo Nic driver"
help
enable Bochs Pseudo Nic driver
config BR2_TARGET_GRUB_rtl8139
bool "Realtek 8139 driver"
help
enable Realtek 8139 driver
config BR2_TARGET_GRUB_r8169
bool "Realtek 8169 driver"
help
enable Realtek 8169 driver
config BR2_TARGET_GRUB_sis900
bool "SIS 900 and SIS 7016 driver"
help
enable SIS 900 and SIS 7016 driver
config BR2_TARGET_GRUB_tg3
bool "Broadcom Tigon3 driver"
help
enable Broadcom Tigon3 driver
config BR2_TARGET_GRUB_tulip
bool "Tulip driver"
help
enable Tulip driver
config BR2_TARGET_GRUB_tlan
bool "TI ThunderLAN driver"
help
enable TI ThunderLAN driver
config BR2_TARGET_GRUB_undi
bool "PXE UNDI driver"
help
enable PXE UNDI driver
config BR2_TARGET_GRUB_via_rhine
bool "Rhine-I/II driver"
help
enable Rhine-I/II driver
config BR2_TARGET_GRUB_w89c840
bool "Winbond W89c840 driver"
help
enable Winbond W89c840 driver
endmenu
endif # BR2_TARGET_GRUB

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +0,0 @@
Index: b/stage2/disk_io.c
===================================================================
--- a/stage2/disk_io.c
+++ b/stage2/disk_io.c
@@ -365,7 +365,7 @@
int
devwrite (unsigned int sector, int sector_count, char *buf)
{
-#if defined(GRUB_UTIL) && defined(__linux__)
+#if defined(GRUB_UTIL) && defined(__linux__) && !defined(SUPPORT_LOOPDEV)
if (current_partition != 0xFFFFFF
&& is_disk_device (device_map, current_drive))
{

View File

@ -1,36 +0,0 @@
Index: b/grub/asmstub.c
===================================================================
--- a/grub/asmstub.c
+++ b/grub/asmstub.c
@@ -18,10 +18,13 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include <features.h>
+#if !defined __UCLIBC__ || (defined __UCLIBC__ && defined __UCLIBC_HAS_LFS__)
/* Try to use glibc's transparant LFS support. */
#define _LARGEFILE_SOURCE 1
/* lseek becomes synonymous with lseek64. */
#define _FILE_OFFSET_BITS 64
+#endif
/* Simulator entry point. */
int grub_stage2 (void);
Index: b/lib/device.c
===================================================================
--- a/lib/device.c
+++ b/lib/device.c
@@ -18,10 +18,13 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include <features.h>
+#if !defined __UCLIBC__ || (defined __UCLIBC__ && defined __UCLIBC_HAS_LFS__)
/* Try to use glibc's transparant LFS support. */
#define _LARGEFILE_SOURCE 1
/* lseek becomes synonymous with lseek64. */
#define _FILE_OFFSET_BITS 64
+#endif
#include <stdio.h>
#include <stdlib.h>

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
# From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/g/grub/grub_0.97-68.dsc
sha256 4e1d15d12dbd3e9208111d6b806ad5a9857ca8850c47877d36575b904559260b grub_0.97.orig.tar.gz
sha256 a453489cf1fec5d311a0b76dea8c8b2ff67eee1a3eba6c06ab80864494d9773c grub_0.97-68.diff.gz

View File

@ -1,109 +0,0 @@
################################################################################
#
# grub
#
################################################################################
GRUB_VERSION = 0.97
GRUB_SOURCE = grub_$(GRUB_VERSION).orig.tar.gz
GRUB_PATCH = grub_$(GRUB_VERSION)-68.diff.gz
GRUB_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/g/grub
GRUB_LICENSE = GPLv2+
GRUB_LICENSE_FILES = COPYING
# Passing -O0 since the default -O2 passed by Buildroot generates
# non-working stage2. Passing --build-id=none to the linker, because
# the ".note.gnu.build-id" ELF sections generated by default confuse
# objcopy when generating raw binaries. Passing -fno-stack-protector
# to avoid undefined references to __stack_chk_fail.
GRUB_CFLAGS = \
-DSUPPORT_LOOPDEV \
-O0 -Wl,--build-id=none \
-fno-stack-protector
GRUB_CONFIG-y += $(if $(BR2_TARGET_GRUB_SPLASH),--enable-graphics,--disable-graphics)
GRUB_CONFIG-$(BR2_TARGET_GRUB_DISKLESS) += --enable-diskless
GRUB_CONFIG-$(BR2_TARGET_GRUB_3c595) += --enable-3c595
GRUB_CONFIG-$(BR2_TARGET_GRUB_3c90x) += --enable-3c90x
GRUB_CONFIG-$(BR2_TARGET_GRUB_davicom) += --enable-davicom
GRUB_CONFIG-$(BR2_TARGET_GRUB_e1000) += --enable-e1000
GRUB_CONFIG-$(BR2_TARGET_GRUB_eepro100) += --enable-eepro100
GRUB_CONFIG-$(BR2_TARGET_GRUB_epic100) += --enable-epic100
GRUB_CONFIG-$(BR2_TARGET_GRUB_forcedeth) += --enable-forcedeth
GRUB_CONFIG-$(BR2_TARGET_GRUB_natsemi) += --enable-natsemi
GRUB_CONFIG-$(BR2_TARGET_GRUB_ns83820) += --enable-ns83820
GRUB_CONFIG-$(BR2_TARGET_GRUB_ns8390) += --enable-ns8390
GRUB_CONFIG-$(BR2_TARGET_GRUB_pcnet32) += --enable-pcnet32
GRUB_CONFIG-$(BR2_TARGET_GRUB_pnic) += --enable-pnic
GRUB_CONFIG-$(BR2_TARGET_GRUB_rtl8139) += --enable-rtl8139
GRUB_CONFIG-$(BR2_TARGET_GRUB_r8169) += --enable-r8169
GRUB_CONFIG-$(BR2_TARGET_GRUB_sis900) += --enable-sis900
GRUB_CONFIG-$(BR2_TARGET_GRUB_tg3) += --enable-tg3
GRUB_CONFIG-$(BR2_TARGET_GRUB_tulip) += --enable-tulip
GRUB_CONFIG-$(BR2_TARGET_GRUB_tlan) += --enable-tlan
GRUB_CONFIG-$(BR2_TARGET_GRUB_undi) += --enable-undi
GRUB_CONFIG-$(BR2_TARGET_GRUB_via_rhine) += --enable-via-rhine
GRUB_CONFIG-$(BR2_TARGET_GRUB_w89c840) += --enable-w89c840
GRUB_CONFIG-y += $(if $(BR2_TARGET_GRUB_FS_EXT2),--enable-ext2fs,--disable-ext2fs)
GRUB_CONFIG-y += $(if $(BR2_TARGET_GRUB_FS_FAT),--enable-fat,--disable-fat)
GRUB_CONFIG-y += $(if $(BR2_TARGET_GRUB_FS_ISO9660),--enable-iso9660,--disable-iso9660)
GRUB_CONFIG-y += $(if $(BR2_TARGET_GRUB_FS_JFS),--enable-jfs,--disable-jfs)
GRUB_CONFIG-y += $(if $(BR2_TARGET_GRUB_FS_REISERFS),--enable-reiserfs,--disable-reiserfs)
GRUB_CONFIG-y += $(if $(BR2_TARGET_GRUB_FS_XFS),--enable-xfs,--disable-xfs)
GRUB_CONFIG-y += --disable-ffs --disable-ufs2 --disable-minix --disable-vstafs
GRUB_STAGE_1_5_TO_INSTALL += $(if $(BR2_TARGET_GRUB_FS_EXT2),e2fs)
GRUB_STAGE_1_5_TO_INSTALL += $(if $(BR2_TARGET_GRUB_FS_FAT),fat)
GRUB_STAGE_1_5_TO_INSTALL += $(if $(BR2_TARGET_GRUB_FS_ISO9660),iso9660)
GRUB_STAGE_1_5_TO_INSTALL += $(if $(BR2_TARGET_GRUB_FS_JFS),jfs)
GRUB_STAGE_1_5_TO_INSTALL += $(if $(BR2_TARGET_GRUB_FS_REISERFS),reiserfs)
GRUB_STAGE_1_5_TO_INSTALL += $(if $(BR2_TARGET_GRUB_FS_XFS),xfs)
define GRUB_DEBIAN_PATCHES
# Apply the patches from the Debian patch
(cd $(@D) ; for f in `cat debian/patches/series | grep -v ^#` ; do \
cat debian/patches/$$f | patch -g0 -p1 ; \
done)
endef
GRUB_POST_PATCH_HOOKS += GRUB_DEBIAN_PATCHES
GRUB_CONF_ENV = \
$(HOST_CONFIGURE_OPTS) \
CFLAGS="$(HOST_CFLAGS) $(GRUB_CFLAGS) -m32"
GRUB_CONF_OPTS = \
--disable-auto-linux-mem-opt \
$(GRUB_CONFIG-y)
ifeq ($(BR2_TARGET_GRUB_SPLASH),y)
define GRUB_INSTALL_SPLASH
$(INSTALL) -D -m 0644 boot/grub/splash.xpm.gz $(TARGET_DIR)/boot/grub/splash.xpm.gz
endef
else
define GRUB_INSTALL_SPLASH
$(SED) '/^splashimage/d' $(TARGET_DIR)/boot/grub/menu.lst
endef
endif
# We're cheating here as we're installing the grub binary not in the
# target directory (where it is useless), but in the host
# directory. This grub binary can be used to install grub into the MBR
# of a disk or disk image.
define GRUB_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/grub/grub $(HOST_DIR)/sbin/grub
$(INSTALL) -D -m 0755 $(@D)/stage1/stage1 $(TARGET_DIR)/boot/grub/stage1
for f in $(GRUB_STAGE_1_5_TO_INSTALL) ; do \
$(INSTALL) -D -m 0755 $(@D)/stage2/$${f}_stage1_5 \
$(TARGET_DIR)/boot/grub/$${f}_stage1_5 ; \
done
$(INSTALL) -D -m 0644 $(@D)/stage2/stage2 $(TARGET_DIR)/boot/grub/stage2
$(INSTALL) -D -m 0644 boot/grub/menu.lst $(TARGET_DIR)/boot/grub/menu.lst
$(GRUB_INSTALL_SPLASH)
endef
$(eval $(autotools-package))

View File

@ -1,16 +0,0 @@
default 0
timeout 10
# Used when no splashimage is used
color cyan/blue white/blue
# Gets enabled/disabled depending on Grub support for splashimage
splashimage (hd0,0)/boot/grub/splash.xpm.gz
# Used when a splashimage is enabled
foreground 000000
background cccccc
title Buildroot
root (hd0,0)
kernel /boot/bzImage rw root=/dev/sda1 rootwait

Binary file not shown.

View File

@ -1,21 +0,0 @@
ISO C11 removes the specification of gets() from the C language, eglibc 2.16+ removed it
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Upstream-Status: Pending
Index: grub-1.99/grub-core/gnulib/stdio.in.h
===================================================================
--- grub-1.99.orig/grub-core/gnulib/stdio.in.h 2010-12-01 06:45:43.000000000 -0800
+++ grub-1.99/grub-core/gnulib/stdio.in.h 2012-07-04 12:25:02.057099107 -0700
@@ -140,8 +140,10 @@
/* It is very rare that the developer ever has full control of stdin,
so any use of gets warrants an unconditional warning. Assume it is
always declared, since it is required by C89. */
+#if defined gets
#undef gets
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+#endif
#if @GNULIB_FOPEN@
# if @REPLACE_FOPEN@

View File

@ -1,39 +0,0 @@
From f30c692c1f9ef0e93bee2b408a24baa017f1ca9d Mon Sep 17 00:00:00 2001
From: Vladimir Serbinenko <phcoder@gmail.com>
Date: Thu, 7 Nov 2013 01:01:47 +0100
Subject: [PATCH] * grub-core/gettext/gettext.c (main_context),
(secondary_context): Define after defining type and not before.
[Thomas: backport from upstream commit
f30c692c1f9ef0e93bee2b408a24baa017f1ca9d, and remove ChangeLog
modifications to avoid conflicts.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
grub-core/gettext/gettext.c | 4 ++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c
index df73570..4880cef 100644
--- a/grub-core/gettext/gettext.c
+++ b/grub-core/gettext/gettext.c
@@ -34,8 +34,6 @@ GRUB_MOD_LICENSE ("GPLv3+");
http://www.gnu.org/software/autoconf/manual/gettext/MO-Files.html .
*/
-static struct grub_gettext_context main_context, secondary_context;
-
static const char *(*grub_gettext_original) (const char *s);
struct grub_gettext_msg
@@ -69,6 +67,8 @@ struct grub_gettext_context
struct grub_gettext_msg *grub_gettext_msg_list;
};
+static struct grub_gettext_context main_context, secondary_context;
+
#define MO_MAGIC_NUMBER 0x950412de
static grub_err_t
--
2.7.4

View File

@ -1,6 +1,12 @@
config BR2_TARGET_GRUB2_ARCH_SUPPORTS
bool
default y if BR2_i386
default y if BR2_x86_64
config BR2_TARGET_GRUB2
bool "grub2"
depends on BR2_i386 || BR2_x86_64
depends on BR2_TARGET_GRUB2_ARCH_SUPPORTS
depends on BR2_USE_WCHAR
help
GNU GRUB is a Multiboot boot loader. It was derived from
GRUB, the GRand Unified Bootloader, which was originally
@ -11,104 +17,8 @@ config BR2_TARGET_GRUB2
Amongst others, GRUB2 offers EFI support, which GRUB Legacy
doesn't provide.
Notes on using Grub2 for BIOS-based platforms
=============================================
1. Create a disk image
dd if=/dev/zero of=disk.img bs=1M count=32
2. Partition it (either legacy or GPT style partitions work)
cfdisk disk.img
- Create one partition, type Linux, for the root
filesystem. The only constraint is to make sure there
is enough free space *before* the first partition to
store Grub2. Leaving 1 MB of free space is safe.
3. Setup loop device and loop partitions
sudo losetup -f disk.img
sudo partx -a /dev/loop0
4. Prepare the root partition
sudo mkfs.ext3 -L root /dev/loop0p1
sudo mount /dev/loop0p1 /mnt
sudo tar -C /mnt -xf output/images/rootfs.tar
sudo umount /mnt
5. Install Grub2
sudo ./output/host/usr/sbin/grub-bios-setup \
-b ./output/host/usr/lib/grub/i386-pc/boot.img \
-c ./output/images/grub.img -d . /dev/loop0
6. Cleanup loop device
sudo partx -d /dev/loop0
sudo losetup -d /dev/loop0
7. Your disk.img is ready!
Using genimage
--------------
If you use genimage to generate your complete image,
installing Grub can be tricky. Here is how to achieve Grub's
installation with genimage:
partition boot {
in-partition-table = "no"
image = "path_to_boot.img"
offset = 0
size = 512
}
partition grub {
in-partition-table = "no"
image = "path_to_grub.img"
offset = 512
}
The result is not byte to byte identical to what
grub-bios-setup does but it works anyway.
To test your BIOS image in Qemu
-------------------------------
qemu-system-{i386,x86-64} -hda disk.img
Notes on using Grub2 for EFI-based platforms
============================================
1. Create a disk image
dd if=/dev/zero of=disk.img bs=1M count=32
2. Partition it with GPT partitions
cgdisk disk.img
- Create a first partition, type EF00, for the
bootloader and kernel image
- Create a second partition, type 8300, for the root
filesystem.
3. Setup loop device and loop partitions
sudo losetup -f disk.img
sudo partx -a /dev/loop0
4. Prepare the boot partition
sudo mkfs.vfat -n boot /dev/loop0p1
sudo mount /dev/loop0p1 /mnt
sudo cp -a output/images/efi-part/* /mnt/
sudo cp output/images/bzImage /mnt/
sudo umount /mnt
5. Prepare the root partition
sudo mkfs.ext3 -L root /dev/loop0p2
sudo mount /dev/loop0p2 /mnt
sudo tar -C /mnt -xf output/images/rootfs.tar
sudo umount /mnt
6 Cleanup loop device
sudo partx -d /dev/loop0
sudo losetup -d /dev/loop0
7. Your disk.img is ready!
To test your EFI image in Qemu
------------------------------
1. Download the EFI BIOS for Qemu
Version IA32 or X64 depending on the chosen Grub2
platform (i386-efi vs. x86-64-efi)
http://sourceforge.net/projects/edk2/files/OVMF/
2. Extract, and rename OVMF.fd to bios.bin and
CirrusLogic5446.rom to vgabios-cirrus.bin.
3. qemu-system-{i386,x86-64} -L ovmf-dir/ -hda disk.img
4. Make sure to pass pci=nocrs to the kernel command line,
to workaround a bug in the EFI BIOS regarding the
EFI framebuffer.
For additional notes on using Grub 2 with Buildroot, see
boot/grub2/readme.txt
http://www.gnu.org/software/grub/
@ -167,3 +77,7 @@ config BR2_TARGET_GRUB2_BUILTIN_CONFIG
entries cannot be described in this embedded configuration.
endif # BR2_TARGET_GRUB2
comment "grub2 needs a toolchain w/ wchar"
depends on BR2_TARGET_GRUB2_ARCH_SUPPORTS
depends on !BR2_USE_WCHAR

View File

@ -1,2 +1,2 @@
# Locally calculated after checking pgp signature
sha256 784ec38e7edc32239ad75b8e66df04dc8bfb26d88681bc9f627133a6eb85c458 grub-2.00.tar.xz
# Locally computed:
sha256 810b3798d316394f94096ec2797909dbf23c858e48f7b3830826b8daa06b7b0f grub-2.02.tar.xz

View File

@ -4,10 +4,10 @@
#
################################################################################
GRUB2_VERSION = 2.00
GRUB2_SITE = $(BR2_GNU_MIRROR)/grub
GRUB2_VERSION = 2.02
GRUB2_SITE = http://ftp.gnu.org/gnu/grub
GRUB2_SOURCE = grub-$(GRUB2_VERSION).tar.xz
GRUB2_LICENSE = GPLv3+
GRUB2_LICENSE = GPL-3.0+
GRUB2_LICENSE_FILES = COPYING
GRUB2_DEPENDENCIES = host-bison host-flex
@ -46,14 +46,14 @@ endif
# bootloader itself; none of these are used to build the native
# tools.
#
# NOTE: TARGET_STRIP is overridden by BR2_STRIP_none, so always
# NOTE: TARGET_STRIP is overridden by !BR2_STRIP_strip, so always
# use the cross compile variant to ensure grub2 builds
GRUB2_CONF_ENV = \
$(HOST_CONFIGURE_OPTS) \
CPP="$(HOSTCC) -E" \
TARGET_CC="$(TARGET_CC)" \
TARGET_CFLAGS="$(TARGET_CFLAGS)" \
TARGET_CFLAGS="$(TARGET_CFLAGS) -fno-stack-protector" \
TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" \
TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
NM="$(TARGET_NM)" \
@ -63,6 +63,8 @@ GRUB2_CONF_ENV = \
GRUB2_CONF_OPTS = \
--target=$(GRUB2_TARGET) \
--with-platform=$(GRUB2_PLATFORM) \
--prefix=/ \
--exec-prefix=/ \
--disable-grub-mkfont \
--enable-efiemu=no \
ac_cv_lib_lzma_lzma_code=no \
@ -79,15 +81,15 @@ GRUB2_INSTALL_TARGET_OPTS = DESTDIR=$(HOST_DIR) install
ifeq ($(BR2_TARGET_GRUB2_I386_PC),y)
define GRUB2_IMAGE_INSTALL_ELTORITO
cat $(HOST_DIR)/usr/lib/grub/$(GRUB2_TUPLE)/cdboot.img $(GRUB2_IMAGE) > \
cat $(HOST_DIR)/lib/grub/$(GRUB2_TUPLE)/cdboot.img $(GRUB2_IMAGE) > \
$(BINARIES_DIR)/grub-eltorito.img
endef
endif
define GRUB2_IMAGE_INSTALLATION
mkdir -p $(dir $(GRUB2_IMAGE))
$(HOST_DIR)/usr/bin/grub-mkimage \
-d $(HOST_DIR)/usr/lib/grub/$(GRUB2_TUPLE) \
$(HOST_DIR)/bin/grub-mkimage \
-d $(HOST_DIR)/lib/grub/$(GRUB2_TUPLE) \
-O $(GRUB2_TUPLE) \
-o $(GRUB2_IMAGE) \
-p "$(GRUB2_PREFIX)" \

98
boot/grub2/readme.txt Normal file
View File

@ -0,0 +1,98 @@
Notes on using Grub2 for BIOS-based platforms
=============================================
1. Create a disk image
dd if=/dev/zero of=disk.img bs=1M count=32
2. Partition it (either legacy or GPT style partitions work)
cfdisk disk.img
- Create one partition, type Linux, for the root
filesystem. The only constraint is to make sure there
is enough free space *before* the first partition to
store Grub2. Leaving 1 MB of free space is safe.
3. Setup loop device and loop partitions
sudo losetup -f disk.img
sudo partx -a /dev/loop0
4. Prepare the root partition
sudo mkfs.ext3 -L root /dev/loop0p1
sudo mount /dev/loop0p1 /mnt
sudo tar -C /mnt -xf output/images/rootfs.tar
sudo umount /mnt
5. Install Grub2
sudo ./output/host/sbin/grub-bios-setup \
-b ./output/host/lib/grub/i386-pc/boot.img \
-c ./output/images/grub.img -d . /dev/loop0
6. Cleanup loop device
sudo partx -d /dev/loop0
sudo losetup -d /dev/loop0
7. Your disk.img is ready!
Using genimage
--------------
If you use genimage to generate your complete image,
installing Grub can be tricky. Here is how to achieve Grub's
installation with genimage:
partition boot {
in-partition-table = "no"
image = "path_to_boot.img"
offset = 0
size = 512
}
partition grub {
in-partition-table = "no"
image = "path_to_grub.img"
offset = 512
}
The result is not byte to byte identical to what
grub-bios-setup does but it works anyway.
To test your BIOS image in Qemu
-------------------------------
qemu-system-{i386,x86-64} -hda disk.img
Notes on using Grub2 for EFI-based platforms
============================================
1. Create a disk image
dd if=/dev/zero of=disk.img bs=1M count=32
2. Partition it with GPT partitions
cgdisk disk.img
- Create a first partition, type EF00, for the
bootloader and kernel image
- Create a second partition, type 8300, for the root
filesystem.
3. Setup loop device and loop partitions
sudo losetup -f disk.img
sudo partx -a /dev/loop0
4. Prepare the boot partition
sudo mkfs.vfat -n boot /dev/loop0p1
sudo mount /dev/loop0p1 /mnt
sudo cp -a output/images/efi-part/* /mnt/
sudo cp output/images/bzImage /mnt/
sudo umount /mnt
5. Prepare the root partition
sudo mkfs.ext3 -L root /dev/loop0p2
sudo mount /dev/loop0p2 /mnt
sudo tar -C /mnt -xf output/images/rootfs.tar
sudo umount /mnt
6 Cleanup loop device
sudo partx -d /dev/loop0
sudo losetup -d /dev/loop0
7. Your disk.img is ready!
To test your EFI image in Qemu
------------------------------
1. Download the EFI BIOS for Qemu
Version IA32 or X64 depending on the chosen Grub2
platform (i386-efi vs. x86-64-efi)
http://sourceforge.net/projects/edk2/files/OVMF/
2. Extract, and rename OVMF.fd to bios.bin and
CirrusLogic5446.rom to vgabios-cirrus.bin.
3. qemu-system-{i386,x86-64} -L ovmf-dir/ -hda disk.img
4. Make sure to pass pci=nocrs to the kernel command line,
to workaround a bug in the EFI BIOS regarding the
EFI framebuffer.

23
boot/gummiboot/Config.in Normal file
View File

@ -0,0 +1,23 @@
config BR2_TARGET_GUMMIBOOT
bool "gummiboot"
depends on BR2_i386 || BR2_x86_64
select BR2_PACKAGE_GNU_EFI
select BR2_PACKAGE_UTIL_LINUX
select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
help
gummiboot is a simple UEFI boot manager which executes
configured EFI images. The default entry is selected by a
configured pattern (glob) or an on-screen menu.
gummiboot operates on the EFI System Partition (ESP)
only. Configuration file fragments, kernels, initrds, other
EFI images need to reside on the ESP. Linux kernels need to
be built with CONFIG_EFI_STUB to be able to be directly
executed as an EFI image.
See the Grub2 help text for details on preparing an EFI
capable disk image using Gummiboot: the instructions are
exactly the same, except that the Gummiboot configuration
files will be located in /loader/ inside the EFI partition.
http://freedesktop.org/wiki/Software/gummiboot/

View File

@ -0,0 +1,4 @@
title Buildroot
version 1
linux /bzImage
options console=ttyS0 root=/dev/sda2

View File

@ -0,0 +1,43 @@
################################################################################
#
# gummiboot
#
################################################################################
GUMMIBOOT_SITE = http://cgit.freedesktop.org/gummiboot
GUMMIBOOT_SITE_METHOD = git
GUMMIBOOT_VERSION = 43
GUMMIBOOT_LICENSE = LGPL-2.1+
GUMMIBOOT_LICENSE_FILES = LICENSE
# The git archive does not have the autoconf/automake stuff generated.
GUMMIBOOT_AUTORECONF = YES
GUMMIBOOT_DEPENDENCIES = gnu-efi host-pkgconf util-linux
GUMMIBOOT_INSTALL_TARGET = NO
GUMMIBOOT_INSTALL_IMAGES = YES
ifeq ($(BR2_i386),y)
GUMMIBOOT_IMGARCH = ia32
else ifeq ($(BR2_x86_64),y)
GUMMIBOOT_IMGARCH = x64
endif
GUMMIBOOT_CONF_OPTS = \
--host=$(BR2_ARCH) \
--with-efi-libdir=$(STAGING_DIR)/usr/lib \
--with-efi-ldsdir=$(STAGING_DIR)/usr/lib \
--with-efi-includedir=$(STAGING_DIR)/usr/include \
--disable-manpages
define GUMMIBOOT_INSTALL_IMAGES_CMDS
$(INSTALL) -D -m 0644 $(@D)/gummiboot$(GUMMIBOOT_IMGARCH).efi \
$(BINARIES_DIR)/efi-part/EFI/BOOT/boot$(GUMMIBOOT_IMGARCH).efi
echo "boot$(GUMMIBOOT_IMGARCH).efi" > \
$(BINARIES_DIR)/efi-part/startup.nsh
$(INSTALL) -D -m 0644 boot/gummiboot/loader.conf \
$(BINARIES_DIR)/efi-part/loader/loader.conf
$(INSTALL) -D -m 0644 boot/gummiboot/buildroot.conf \
$(BINARIES_DIR)/efi-part/loader/entries/buildroot.conf
endef
$(eval $(autotools-package))

View File

@ -0,0 +1,2 @@
timeout 3
default buildroot

10
boot/lpc32xxcdl/Config.in Normal file
View File

@ -0,0 +1,10 @@
config BR2_TARGET_LPC32XXCDL
depends on BR2_arm926t
bool "LPC32XX CDL (kickstart and S1L)"
if BR2_TARGET_LPC32XXCDL
config BR2_TARGET_LPC32XXCDL_BOARDNAME
string "LPC32xx board name"
endif #BR2_TARGET_LPC32XXCDL

View File

@ -0,0 +1,52 @@
Use CROSS_COMPILE as compiler name and stop using libc
Signed-off-by: Alexandre Belloni <abelloni@adeneo-embedded.com>
---
makerule/lpc32xx/make.lpc32xx.gnu | 22 +++++++++++-----------
1 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/makerule/lpc32xx/make.lpc32xx.gnu b/makerule/lpc32xx/make.lpc32xx.gnu
index 1014c28..3277d99 100644
--- a/makerule/lpc32xx/make.lpc32xx.gnu
+++ b/makerule/lpc32xx/make.lpc32xx.gnu
@@ -27,19 +27,19 @@ CFLAGS += -mno-sched-prolog -fno-hosted -mno-thumb-interwork -ffunction-sectio
CFLAGS += -I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR)
AFLAGS = -mcpu=arm926ej-s
AFLAGS += -I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR)
-CC = arm-none-eabi-gcc
-AS = arm-none-eabi-as
-AR = arm-none-eabi-ar -r
-LD = arm-none-eabi-gcc
-NM = arm-none-eabi-nm
-OBJDUMP = arm-none-eabi-objdump
-OBJCOPY = arm-none-eabi-objcopy
-READELF = arm-none-eabi-readelf
+CC = $(CROSS_COMPILE)gcc
+AS = $(CROSS_COMPILE)as
+AR = $(CROSS_COMPILE)ar -r
+LD = $(CROSS_COMPILE)gcc
+NM = $(CROSS_COMPILE)nm
+OBJDUMP = $(CROSS_COMPILE)objdump
+OBJCOPY = $(CROSS_COMPILE)objcopy
+READELF = $(CROSS_COMPILE)readelf
LDFLAGS += -Wl,--gc-sections
LK = -static
LK += -Wl,--start-group $(TARGET_CSP_LIB) $(TARGET_BSP_LIB) $(TARGET_GEN_LIB)
-LK += -lgcc -lc -lg -lm -lstdc++ -lsupc++
+LK += -nostdlib -lgcc #-lc -lg -lm -lstdc++ -lsupc++
LK += -Wl,--end-group
MAP = -Xlinker -Map -Xlinker
LDESC = -Xlinker -T
@@ -47,6 +47,6 @@ ENTRY = -e
BIN = -bin
EXT = .elf
LEXT =
-ELFTOREC =arm-none-eabi-objcopy -O srec --strip-all --verbose
-ELFTOBIN =arm-none-eabi-objcopy -I elf32-littlearm -O binary --strip-all --verbose
+ELFTOREC = $(OBJCOPY) -O srec --strip-all --verbose
+ELFTOBIN = $(OBJCOPY) -I elf32-littlearm -O binary --strip-all --verbose
REC =.srec
--
1.7.7.3

View File

@ -0,0 +1,969 @@
Remove duplicated files to stop the linker from complaining about duplicate
symbols
Signed-off-by: Alexandre Belloni <abelloni@adeneo-embedded.com>
---
--- a/csps/lpc32xx/bsps/fdi3250/startup/examples/s1l/sysapi_timer.c 2011-10-05 19:10:37.000000000 +0200
+++ /dev/null 2012-01-01 16:39:47.918907000 +0100
@@ -1,212 +0,0 @@
-/***********************************************************************
- * $Id:: sysapi_timer.c 3394 2010-05-06 17:56:27Z usb10132 $
- *
- * Project: Time support functions
- *
- * Description:
- * Implements the following functions required for the S1L API
- * time_init
- * time_reset
- * time_start
- * time_stop
- * time_get
- * time_get_rate
- *
- ***********************************************************************
- * Software that is described herein is for illustrative purposes only
- * which provides customers with programming information regarding the
- * products. This software is supplied "AS IS" without any warranties.
- * NXP Semiconductors assumes no responsibility or liability for the
- * use of the software, conveys no license or title under any patent,
- * copyright, or mask work right to the product. NXP Semiconductors
- * reserves the right to make changes in the software without
- * notification. NXP Semiconductors also make no representation or
- * warranty that such application will be suitable for the specified
- * use without further testing or modification.
- **********************************************************************/
-
-#include "s1l_sys_inf.h"
-#include "lpc32xx_intc_driver.h"
-#include "lpc32xx_timer_driver.h"
-
-static UNS_64 base_rate;
-static INT_32 tdev = 0;
-
-/***********************************************************************
- *
- * Function: time_init
- *
- * Purpose: Initializes time system
- *
- * Processing: Initializes the system timer.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: 0 if the init failed, otherwise non-zero
- *
- * Notes: None
- *
- **********************************************************************/
-INT_32 time_init(void)
-{
- TMR_PSCALE_SETUP_T pscale;
-
- /* Open timer driver */
- if (tdev == 0)
- {
- tdev = timer_open((void *) TIMER_CNTR0, 0);
- if (tdev != 0)
- {
- /* Use a prescale count to 100000 */
- pscale.ps_tick_val = 100000;
- pscale.ps_us_val = 0; /* Not needed when ps_tick_val != 0 */
- timer_ioctl(tdev, TMR_SETUP_PSCALE, (INT_32) &pscale);
-
- /* Get timer clock rate */
- base_rate = (UNS_64) timer_ioctl(tdev, TMR_GET_STATUS,
- TMR_GET_CLOCK);
- }
- }
-
- return tdev;
-}
-
-/***********************************************************************
- *
- * Function: time_reset
- *
- * Purpose: Resets system timer
- *
- * Processing:
- * See function.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: Nothing
- *
- * Notes: None
- *
- **********************************************************************/
-void time_reset(void)
-{
- if (tdev != 0)
- {
- timer_ioctl(tdev, TMR_RESET, 1);
- }
-}
-
-/***********************************************************************
- *
- * Function: time_start
- *
- * Purpose: Starts system timer
- *
- * Processing:
- * See function.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: Nothing
- *
- * Notes: None
- *
- **********************************************************************/
-void time_start(void)
-{
- if (tdev != 0)
- {
- timer_ioctl(tdev, TMR_ENABLE, 1);
- }
-}
-
-/***********************************************************************
- *
- * Function: time_stop
- *
- * Purpose: Stops system timer
- *
- * Processing:
- * See function.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: Nothing
- *
- * Notes: None
- *
- **********************************************************************/
-void time_stop(void)
-{
- if (tdev != 0)
- {
- timer_ioctl(tdev, TMR_ENABLE, 0);
- }
-}
-
-/***********************************************************************
- *
- * Function: time_get
- *
- * Purpose: Returns current system time value
- *
- * Processing:
- * See function.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: The number of ticks of the timer counter
- *
- * Notes: None
- *
- **********************************************************************/
-UNS_64 time_get(void)
-{
- TMR_COUNTS_T tcounts;
- UNS_64 ticks = 0;
-
- if (tdev != 0)
- {
- timer_ioctl(tdev, TMR_GET_COUNTS, (INT_32) &tcounts);
-
- /* Compute number of timer ticks */
- ticks = (UNS_64) tcounts.count_val * 100000;
- ticks = ticks + (UNS_64) tcounts.ps_count_val;
- }
-
- return ticks;
-}
-
-/***********************************************************************
- *
- * Function: time_get_rate
- *
- * Purpose:
- * Returns base tick rate (ticks per second) of the time counter
- *
- * Processing:
- * See function.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: The timer tick rate (in ticks per second)
- *
- * Notes: None
- *
- **********************************************************************/
-UNS_64 time_get_rate(void)
-{
- return base_rate;
-}
-
--- a/csps/lpc32xx/bsps/fdi3250/startup/examples/s1l/sys_mmu_cmd_group.c 2011-10-05 19:10:37.000000000 +0200
+++ /dev/null 2012-01-01 16:39:47.918907000 +0100
@@ -1,746 +0,0 @@
-/***********************************************************************
- * $Id:: sys_mmu_cmd_group.c 3430 2010-05-07 17:39:08Z usb10132 $
- *
- * Project: Command processor for peek, poke, dump, and fill
- *
- * Description:
- * Processes commands from the command prompt
- *
- ***********************************************************************
- * Software that is described herein is for illustrative purposes only
- * which provides customers with programming information regarding the
- * products. This software is supplied "AS IS" without any warranties.
- * NXP Semiconductors assumes no responsibility or liability for the
- * use of the software, conveys no license or title under any patent,
- * copyright, or mask work right to the product. NXP Semiconductors
- * reserves the right to make changes in the software without
- * notification. NXP Semiconductors also make no representation or
- * warranty that such application will be suitable for the specified
- * use without further testing or modification.
- **********************************************************************/
-
-#include "lpc_arm922t_cp15_driver.h"
-#include "lpc_string.h"
-#include "startup.h"
-#include "s1l_cmds.h"
-#include "s1l_sys_inf.h"
-
-/* dcache command */
-BOOL_32 cmd_dcache(void);
-static UNS_32 cmd_dcache_plist[] =
-{
- (PARSE_TYPE_STR), /* The "dcache" command */
- (PARSE_TYPE_DEC | PARSE_TYPE_END)
-};
-static CMD_ROUTE_T core_dcache_cmd =
-{
- (UNS_8 *) "dcache",
- cmd_dcache,
- (UNS_8 *) "Enables, disables, or flushes data cache",
- (UNS_8 *) "dcache [0(disable), 1(enable), 2(flush)]",
- cmd_dcache_plist,
- NULL
-};
-
-/* icache command */
-BOOL_32 cmd_icache(void);
-static UNS_32 cmd_icache_plist[] =
-{
- (PARSE_TYPE_STR), /* The "icache" command */
- (PARSE_TYPE_DEC | PARSE_TYPE_END)
-};
-static CMD_ROUTE_T core_icache_cmd =
-{
- (UNS_8 *) "icache",
- cmd_icache,
- (UNS_8 *) "Enables or disables instruction cache",
- (UNS_8 *) "icache [0(disable), 1(enable)]",
- cmd_icache_plist,
- NULL
-};
-
-/* inval command */
-BOOL_32 cmd_inval(void);
-static UNS_32 cmd_inval_plist[] =
-{
- (PARSE_TYPE_STR | PARSE_TYPE_END) /* The "inval" command */
-};
-static CMD_ROUTE_T core_inval_cmd =
-{
- (UNS_8 *) "inval",
- cmd_inval,
- (UNS_8 *) "Flushes data cache and invalidates instruction cache",
- (UNS_8 *) "inval",
- cmd_inval_plist,
- NULL
-};
-
-/* mmuenab command */
-BOOL_32 cmd_mmuenab(void);
-static UNS_32 cmd_mmuenab_plist[] =
-{
- (PARSE_TYPE_STR), /* The "mmuenab" command */
- (PARSE_TYPE_DEC | PARSE_TYPE_END)
-};
-static CMD_ROUTE_T core_mmuenab_cmd =
-{
- (UNS_8 *) "mmuenab",
- cmd_mmuenab,
- (UNS_8 *) "Enables or disables the MMU",
- (UNS_8 *) "mmuenab [0(disable), 1(enable)]",
- cmd_mmuenab_plist,
- NULL
-};
-
-/* map command */
-BOOL_32 cmd_map(void);
-static UNS_32 cmd_map_plist[] =
-{
- (PARSE_TYPE_STR), /* The "map" command */
- (PARSE_TYPE_HEX),
- (PARSE_TYPE_HEX),
- (PARSE_TYPE_DEC),
- (PARSE_TYPE_DEC | PARSE_TYPE_END),
-};
-static CMD_ROUTE_T core_map_cmd =
-{
- (UNS_8 *) "map",
- cmd_map,
- (UNS_8 *) "Maps a range of physical address sections to virtual addresses",
- (UNS_8 *) "map [virt hex addr][phy hex addr][sections][0(uncached), 1(cached), 2(unmap)]",
- cmd_map_plist,
- NULL
-};
-
-/* mmuinfo command */
-static BOOL_32 cmd_mmuinfo(void);
-static UNS_32 cmd_mmuinfo_plist[] =
-{
- (PARSE_TYPE_STR | PARSE_TYPE_END) /* The "mmuinfo" command */
-};
-static CMD_ROUTE_T core_mmuinfo_cmd =
-{
- (UNS_8 *) "mmuinfo",
- cmd_mmuinfo,
- (UNS_8 *) "Dumps page table and MMU info",
- (UNS_8 *) "mmuinfo",
- cmd_mmuinfo_plist,
- NULL
-};
-
-/* MMU group */
-static GROUP_LIST_T mmu_group =
-{
- (UNS_8 *) "mmu", /* mmu group */
- (UNS_8 *) "MMU command group",
- NULL,
- NULL
-};
-
-static UNS_8 enabled_msg [] =" enabled";
-static UNS_8 disabled_msg [] =" disabled";
-static UNS_8 dcache_msg[] = "Data cache";
-static UNS_8 icache_msg[] = "Instruction cache";
-static UNS_8 pagetab_msg[] = "Page table at address: ";
-static UNS_8 slist_msg[] = "Type Virt Phy fl Size";
-static UNS_8 mmu_msg [] ="MMU";
-static UNS_8 cpage_msg[] = "Coarse page:";
-static UNS_8 fpage_msg[] = "Fine page :";
-static UNS_8 sect_msg[] = "Section :";
-static UNS_8 mbytes_msg[] = "M";
-static UNS_8 map1_err_msg[] =
- "Error : section addresses must be aligned on a 32-bit boundary";
-static UNS_8 map2_err_msg[] =
- "Error : Number of sections exceeds address range of device";
-static UNS_8 phya_msg[] = "Virtual address ";
-static UNS_8 mapped_msg[] = " mapped to physical address ";
-static UNS_8 unmapped_msg[] = " unmapped from physical address ";
-static UNS_8 cached_msg[] = " (cached)";
-static UNS_8 inval_msg[] = " invalidated";
-static UNS_8 caches_msg [] ="Caches";
-static UNS_8 flushed_msg[] = " flushed";
-
-/***********************************************************************
- *
- * Function: show_section
- *
- * Purpose: Display section information
- *
- * Processing:
- * See function.
- *
- * Parameters:
- * mmu_reg : MMU settings for this section
- * virt_addr : Starting virtual address for this section
- * segs : Number of 1M segments for this section
- *
- * Outputs: None
- *
- * Returns: Nothing
- *
- * Notes: None
- *
- **********************************************************************/
-static void show_section(UNS_32 mmu_reg,
- UNS_32 virt_addr,
- UNS_32 segs)
-{
- UNS_8 straddr [16];
- UNS_32 mmu_phy;
-
- if ((mmu_reg & ARM922T_L1D_TYPE_PG_SN_MASK) !=
- ARM922T_L1D_TYPE_FAULT)
- {
- if ((mmu_reg & ARM922T_L1D_TYPE_PG_SN_MASK) ==
- ARM922T_L1D_TYPE_CPAGE)
- {
- term_dat_out(cpage_msg);
- }
- else if ((mmu_reg & ARM922T_L1D_TYPE_PG_SN_MASK) ==
- ARM922T_L1D_TYPE_FPAGE)
- {
- term_dat_out(fpage_msg);
- }
- else
- {
- term_dat_out(sect_msg);
- }
-
- /* Compute virtual address */
- str_makehex(straddr, virt_addr, 8);
- term_dat_out(straddr);
- term_dat_out((UNS_8 *) " ");
-
- /* Compute mapped physical address */
- if ((mmu_reg & ARM922T_L1D_TYPE_PG_SN_MASK) ==
- ARM922T_L1D_TYPE_SECTION)
- {
- mmu_phy = mmu_reg & 0xFFF00000;
- }
- else
- {
- /* Don't compute addresses for non-sections */
- mmu_phy = 0;
- }
- str_makehex(straddr, mmu_phy, 8);
- term_dat_out(straddr);
- term_dat_out((UNS_8 *) " ");
-
- /* MMU flags */
- if ((mmu_reg & ARM922T_L1D_BUFFERABLE) != 0)
- {
- term_dat_out((UNS_8 *) "b");
- }
- else
- {
- term_dat_out((UNS_8 *) " ");
- }
- if ((mmu_reg & ARM922T_L1D_CACHEABLE) != 0)
- {
- term_dat_out((UNS_8 *) "c");
- }
- else
- {
- term_dat_out((UNS_8 *) " ");
- }
- term_dat_out((UNS_8 *) " ");
-
- /* Displays used megabytes */
- str_makedec(straddr, segs);
- term_dat_out(straddr);
- term_dat_out_crlf(mbytes_msg);
- }
-}
-
-/***********************************************************************
- *
- * Function: mmu_dumpinfo
- *
- * Purpose: Display MMU info
- *
- * Processing:
- * Display the MMU information, including enable status, cache
- * status, and page table.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: TRUE if the command was processed, otherwise FALSE
- *
- * Notes: None
- *
- **********************************************************************/
-static BOOL_32 mmu_dumpinfo(void)
-{
- UNS_32 segsz, last_mmu_reg, mmu_vrt, mmu_reg, mmu_vrtsav = 0, *pt;
- UNS_32 mlast_mmu_reg, mmmu_reg;
- int idx;
- UNS_8 hexaddr [16];
-
- term_dat_out(mmu_msg);
- if (cp15_mmu_enabled() == FALSE)
- {
- term_dat_out_crlf(disabled_msg);
- }
- else
- {
- term_dat_out_crlf(enabled_msg);
-
- /* Get MMU control register word */
- mmu_reg = cp15_get_mmu_control_reg();
-
- /* Instruction cache status */
- term_dat_out(icache_msg);
- if ((mmu_reg & ARM922T_MMU_CONTROL_I) == 0)
- {
- term_dat_out_crlf(disabled_msg);
- }
- else
- {
- term_dat_out_crlf(enabled_msg);
- }
-
- /* Data cache status */
- term_dat_out(dcache_msg);
- if ((mmu_reg & ARM922T_MMU_CONTROL_C) == 0)
- {
- term_dat_out_crlf(disabled_msg);
- }
- else
- {
- term_dat_out_crlf(enabled_msg);
- }
-
- term_dat_out(pagetab_msg);
- mmu_reg = (UNS_32) cp15_get_ttb();
- str_makehex(hexaddr, mmu_reg, 8);
- term_dat_out_crlf(hexaddr);
- term_dat_out_crlf(slist_msg);
-
- /* Process MMU table - assume that the physical and
- virtual locations of table are the same */
- pt = (UNS_32 *) mmu_reg;
- mmu_vrt = 0x0;
- segsz = 0xFFFFFFFF;
- last_mmu_reg = mlast_mmu_reg = 0xFFFFFFFF;
- for (idx = 0; idx < 4096; idx++)
- {
- mmu_reg = *pt;
- mmmu_reg = (mmu_reg & (ARM922T_L1D_TYPE_PG_SN_MASK |
- ARM922T_L1D_BUFFERABLE | ARM922T_L1D_CACHEABLE));
- segsz = segsz + 1;
-
- if ((last_mmu_reg != 0xFFFFFFFF) &&
- (mlast_mmu_reg != mmmu_reg))
- {
- show_section(last_mmu_reg, mmu_vrtsav, segsz);
- segsz = 0;
- }
-
- if (mlast_mmu_reg != mmmu_reg)
- {
- mmu_vrtsav = mmu_vrt;
- last_mmu_reg = mmu_reg;
- mlast_mmu_reg = mmmu_reg;
- }
-
- pt++;
- mmu_vrt += 0x00100000;
- }
- }
-
- return TRUE;
-}
-
-/***********************************************************************
- *
- * Function: mmu_dumpmap
- *
- * Purpose: Map a virtual address range to a physical range
- *
- * Processing:
- * From the input addresses and number of sections, generate the
- * appropriate entries in the page table.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: TRUE if the command was processed, otherwise FALSE
- *
- * Notes: None
- *
- **********************************************************************/
-static BOOL_32 mmu_dumpmap(UNS_32 vrt,
- UNS_32 phy,
- UNS_32 sections,
- UNS_32 cache)
-{
- BOOL_32 processed = FALSE;
- UNS_32 mmu_phy, mmu_vrt, tmp1 = 0, tmp2, *pt;
- UNS_8 hexaddr [16];
-
- /* Verify address boundaries are sectional */
- mmu_vrt = vrt & ~ARM922T_L2D_SN_BASE_MASK;
- mmu_phy = phy & ~ARM922T_L2D_SN_BASE_MASK;
- if ((mmu_vrt != 0) || (mmu_phy != 0))
- {
- term_dat_out_crlf(map1_err_msg);
- }
- else
- {
- /* Verify that address range and section count will not
- exceed address range of device */
- tmp1 = vrt >> 20;
- tmp1 = (tmp1 + sections) - 1;
- tmp2 = phy >> 20;
- tmp2 = (tmp2 + sections) - 1;
- if ((tmp1 < 4096) && (tmp2 < 4096))
- {
- /* Good address range and good section count */
- processed = TRUE;
- }
- else
- {
- term_dat_out_crlf(map2_err_msg);
- }
- }
-
- /* Generate static part of MMU word */
- if (cache == 0)
- {
- /* Section mapped with cache disabled */
- tmp1 = ARM922T_L1D_TYPE_SECTION;
- }
- else if (cache == 1)
- {
- /* Section mapped with cache enabled */
- tmp1 = (ARM922T_L1D_BUFFERABLE | ARM922T_L1D_CACHEABLE |
- ARM922T_L1D_TYPE_SECTION);
- }
- else if (cache == 2)
- {
- /* Section unmapped */
- tmp1 = ARM922T_L1D_TYPE_FAULT;
- }
- tmp1 |= ARM922T_L1D_AP_ALL;
-
- /* Offset into page table for virtual address */
- tmp2 = (vrt >> 20);
- pt = cp15_get_ttb() + tmp2;
-
- /* Loop until all sections are complete */
- while ((sections > 0) && (processed == TRUE))
- {
- /* Add in physical address */
- tmp2 = tmp1 | (phy & ARM922T_L2D_SN_BASE_MASK);
-
- /* Save new section descriptor for virtual address */
- *pt = tmp2;
-
- /* Output message shown the map */
- term_dat_out(phya_msg);
- str_makehex(hexaddr, phy, 8);
- term_dat_out(hexaddr);
- if (cache == 2)
- {
- term_dat_out(unmapped_msg);
- }
- else
- {
- term_dat_out(mapped_msg);
- }
- str_makehex(hexaddr, vrt, 8);
- term_dat_out(hexaddr);
- if (cache == 1)
- {
- term_dat_out(cached_msg);
- }
- term_dat_out_crlf((UNS_8 *) "");
-
- /* Next section and page table entry*/
- phy += 0x00100000;
- vrt += 0x00100000;
- pt++;
- sections--;
- }
-
- return processed;
-}
-
-/***********************************************************************
- *
- * Function: cmd_mmuinfo
- *
- * Purpose: Display MMU information
- *
- * Processing:
- * See function.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: TRUE if the command was processed, otherwise FALSE
- *
- * Notes: None
- *
- **********************************************************************/
-static BOOL_32 cmd_mmuinfo(void)
-{
- mmu_dumpinfo();
-
- return TRUE;
-}
-
-/***********************************************************************
- *
- * Function: cmd_map
- *
- * Purpose: Map a physical address region to a virtual region
- *
- * Processing:
- * See function.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: TRUE if the command was processed, otherwise FALSE
- *
- * Notes: None
- *
- **********************************************************************/
-BOOL_32 cmd_map(void)
-{
- UNS_32 phy, virt, sects, ce = 0;
-
- /* Get arguments */
- virt = cmd_get_field_val(1);
- phy = cmd_get_field_val(2);
- sects = cmd_get_field_val(3);
- ce = cmd_get_field_val(4);
-
- if (ce <= 2)
- {
- mmu_dumpmap(virt, phy, sects, ce);
- }
-
- return TRUE;
-}
-
-/***********************************************************************
- *
- * Function: cmd_inval
- *
- * Purpose: MMU cache flush and invalidate
- *
- * Processing:
- * See function.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: TRUE if the command was processed, otherwise FALSE
- *
- * Notes: None
- *
- **********************************************************************/
-BOOL_32 cmd_inval(void)
-{
- dcache_flush();
- icache_inval();
- term_dat_out(caches_msg);
- term_dat_out(inval_msg);
-
- return TRUE;
-}
-
-/***********************************************************************
- *
- * Function: cmd_dcache
- *
- * Purpose: MMU data cache enable and disable
- *
- * Processing:
- * If the value passed in the parser is 1, enable the data cache,
- * otherwise disable the data cache.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: TRUE if the command was processed, otherwise FALSE
- *
- * Notes: None
- *
- **********************************************************************/
-BOOL_32 cmd_dcache(void)
-{
- UNS_32 cenable;
- UNS_8 *ppar;
-
- /* Get argument */
- cenable = cmd_get_field_val(1);
-
- switch (cenable)
- {
- case 0:
- dcache_flush();
- cp15_set_dcache(0);
- ppar = disabled_msg;
- break;
-
- case 1:
- cp15_invalidate_cache();
- cp15_set_dcache(1);
- ppar = enabled_msg;
- break;
-
- case 2:
- default:
- dcache_flush();
- ppar = flushed_msg;
- break;
- }
-
- term_dat_out(dcache_msg);
- term_dat_out_crlf(ppar);
-
- return TRUE;
-}
-
-/***********************************************************************
- *
- * Function: cmd_icache
- *
- * Purpose: MMU instruction cache enable and disable
- *
- * Processing:
- * If the value passed in the parser is 1, enable the instruction
- * cache, otherwise disable the instruction cache.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: TRUE if the command was processed, otherwise FALSE
- *
- * Notes: None
- *
- **********************************************************************/
-BOOL_32 cmd_icache(void)
-{
- UNS_32 cenable;
- UNS_8 *ppar;
-
- /* Get argument */
- cenable = cmd_get_field_val(1);
-
- if (cenable == 1)
- {
- dcache_flush();
- cp15_invalidate_cache();
- cp15_set_icache(1);
- ppar = enabled_msg;
- }
- else
- {
- cp15_set_icache(0);
- ppar = disabled_msg;
- }
-
- term_dat_out(icache_msg);
- term_dat_out_crlf(ppar);
-
- return TRUE;
-}
-
-
-/***********************************************************************
- *
- * Function: cmd_mmuenab
- *
- * Purpose: Enable or disable MMU
- *
- * Processing:
- * See function.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: TRUE if the command was processed, otherwise FALSE
- *
- * Notes: None
- *
- **********************************************************************/
-BOOL_32 cmd_mmuenab(void)
-{
- UNS_8 *ppar;
- UNS_32 cenable;
-
- term_dat_out_crlf((UNS_8 *) "Warning: Changing MMU status on "
- " cached and buffered code can cause system crashes.");
-
- /* Get argument */
- cenable = cmd_get_field_val(1);
-
- if (cenable == 1)
- {
- if ((cp15_get_mmu_control_reg() & ARM922T_MMU_CONTROL_C) != 0)
- {
- cp15_invalidate_cache();
- }
-
- cp15_set_mmu(1);
- ppar = enabled_msg;
- }
- else
- {
- cp15_dcache_flush();
- cp15_write_buffer_flush();
- cp15_invalidate_cache();
- cp15_set_mmu(0);
- ppar = disabled_msg;
- }
-
- term_dat_out(mmu_msg);
- term_dat_out_crlf(ppar);
-
- return TRUE;
-}
-
-/***********************************************************************
- *
- * Function: mmu_cmd_group_init
- *
- * Purpose: Initialize MMU command group
- *
- * Processing:
- * See function.
- *
- * Parameters: None
- *
- * Outputs: None
- *
- * Returns: Nothin
- *
- * Notes: None
- *
- **********************************************************************/
-void mmu_cmd_group_init(void)
-{
- /* Add MMU group */
- cmd_add_group(&mmu_group);
-
- /* Add commands to the MMU group */
- cmd_add_new_command(&mmu_group, &core_dcache_cmd);
- cmd_add_new_command(&mmu_group, &core_icache_cmd);
- cmd_add_new_command(&mmu_group, &core_inval_cmd);
- cmd_add_new_command(&mmu_group, &core_mmuenab_cmd);
- cmd_add_new_command(&mmu_group, &core_map_cmd);
- cmd_add_new_command(&mmu_group, &core_mmuinfo_cmd);
-}

View File

@ -0,0 +1,188 @@
Fix compilation and eabi issues
Since we are not linking with libc anymore, we need to define our own memset,
strlen and memcpy. Also, as we are using a *libc compiler, we need to "handle"
exceptions (mostly division by 0) by defining raise() and
__aeabi_unwind_cpp_pr0.
Signed-off-by: Alexandre Belloni <abelloni@adeneo-embedded.com>
---
csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c | 41 +++++++++++++++++++++++
csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c | 41 +++++++++++++++++++++++
csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c | 41 +++++++++++++++++++++++
3 files changed, 123 insertions(+), 0 deletions(-)
diff --git a/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c
index 385b0ab..f1f0a0a 100644
--- a/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c
+++ b/csps/lpc32xx/bsps/ea3250/source/libnosys_gnu.c
@@ -25,6 +25,7 @@
#include <errno.h>
#include <sys/times.h>
#include <sys/stat.h>
+#include <sys/types.h>
/* errno definition */
#undef errno
@@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){
return 0;
}
+void * memset(void * s,int c,size_t count)
+{
+ char *xs = (char *) s;
+
+ while (count--)
+ *xs++ = c;
+
+ return s;
+}
+
+
+size_t strlen(const char * s)
+{
+ const char *sc;
+
+ for (sc = s; *sc != '\0'; ++sc)
+ /* nothing */;
+ return sc - s;
+}
+
+void * memcpy(void * dest,const void *src,size_t count)
+{
+ char *tmp = (char *) dest, *s = (char *) src;
+
+ while (count--)
+ *tmp++ = *s++;
+
+ return dest;
+}
+
+
+/* Dummy functions to avoid linker complaints */
+void __aeabi_unwind_cpp_pr0(void)
+{
+};
+
+void raise(void)
+{
+};
+
#endif /*__GNUC__*/
diff --git a/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c
index 385b0ab..f1f0a0a 100644
--- a/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c
+++ b/csps/lpc32xx/bsps/fdi3250/source/libnosys_gnu.c
@@ -25,6 +25,7 @@
#include <errno.h>
#include <sys/times.h>
#include <sys/stat.h>
+#include <sys/types.h>
/* errno definition */
#undef errno
@@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){
return 0;
}
+void * memset(void * s,int c,size_t count)
+{
+ char *xs = (char *) s;
+
+ while (count--)
+ *xs++ = c;
+
+ return s;
+}
+
+
+size_t strlen(const char * s)
+{
+ const char *sc;
+
+ for (sc = s; *sc != '\0'; ++sc)
+ /* nothing */;
+ return sc - s;
+}
+
+void * memcpy(void * dest,const void *src,size_t count)
+{
+ char *tmp = (char *) dest, *s = (char *) src;
+
+ while (count--)
+ *tmp++ = *s++;
+
+ return dest;
+}
+
+
+/* Dummy functions to avoid linker complaints */
+void __aeabi_unwind_cpp_pr0(void)
+{
+};
+
+void raise(void)
+{
+};
+
#endif /*__GNUC__*/
diff --git a/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c b/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c
index cfdb674..6b50c60 100644
--- a/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c
+++ b/csps/lpc32xx/bsps/phy3250/source/libnosys_gnu.c
@@ -25,6 +25,7 @@
#include <errno.h>
#include <sys/times.h>
#include <sys/stat.h>
+#include <sys/types.h>
/* errno definition */
#undef errno
@@ -125,4 +126,44 @@ int _write(int file, char *ptr, int len){
return 0;
}
+void * memset(void * s,int c,size_t count)
+{
+ char *xs = (char *) s;
+
+ while (count--)
+ *xs++ = c;
+
+ return s;
+}
+
+
+size_t strlen(const char * s)
+{
+ const char *sc;
+
+ for (sc = s; *sc != '\0'; ++sc)
+ /* nothing */;
+ return sc - s;
+}
+
+void * memcpy(void * dest,const void *src,size_t count)
+{
+ char *tmp = (char *) dest, *s = (char *) src;
+
+ while (count--)
+ *tmp++ = *s++;
+
+ return dest;
+}
+
+
+/* Dummy functions to avoid linker complaints */
+void __aeabi_unwind_cpp_pr0(void)
+{
+};
+
+void raise(void)
+{
+};
+
#endif /*__GNUC__*/
--
1.7.7.3

View File

@ -0,0 +1,521 @@
Use slashes instead of backslashes
Signed-off-by: Alexandre Belloni <abelloni@adeneo-embedded.com>
---
.../bsps/common/examples/buildfiles/makefile | 10 +++---
.../startup/examples/burners/makefile.burner | 16 +++++-----
csps/lpc32xx/bsps/ea3250/source/makefile | 10 +++---
csps/lpc32xx/bsps/fdi3250/source/makefile | 12 ++++----
csps/lpc32xx/bsps/phy3250/examples/makefile | 2 +-
csps/lpc32xx/bsps/phy3250/source/makefile | 2 +-
.../examples/Burners/nor/kickstart/makefile | 2 +-
.../startup/examples/Burners/nor/norerase/makefile | 2 +-
.../startup/examples/Burners/nor/s1lapp/makefile | 2 +-
.../examples/Burners/spi/kickstart/makefile | 2 +-
csps/lpc32xx/source/makefile | 10 +++---
lpc/source/makefile | 10 +++---
makefile | 2 +-
makerule/common/make.rules.environment | 30 ++++++++++----------
makerule/lpc32xx/make.lpc32xx.gnu | 2 +-
makerule/lpc32xx/make.lpc32xx.iar | 12 ++++----
makerule/lpc32xx/make.lpc32xx.keil | 6 ++--
makerule/lpc32xx/make.lpc32xx.rvw | 2 +-
18 files changed, 67 insertions(+), 67 deletions(-)
diff --git a/csps/lpc32xx/bsps/common/examples/buildfiles/makefile b/csps/lpc32xx/bsps/common/examples/buildfiles/makefile
index cf4977c..1da2201 100644
--- a/csps/lpc32xx/bsps/common/examples/buildfiles/makefile
+++ b/csps/lpc32xx/bsps/common/examples/buildfiles/makefile
@@ -25,16 +25,16 @@
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL)
+include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL)
########################################################################
#
# Pick up the assembler and C source files in the directory
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes
-AFLAGS +=-I..\Include
-CFLAGS +=-I..\Include
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes
+AFLAGS +=-I../Include
+CFLAGS +=-I../Include
########################################################################
#
@@ -42,6 +42,6 @@ CFLAGS +=-I..\Include
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build
diff --git a/csps/lpc32xx/bsps/common/startup/examples/burners/makefile.burner b/csps/lpc32xx/bsps/common/startup/examples/burners/makefile.burner
index fca3947..18bd703 100644
--- a/csps/lpc32xx/bsps/common/startup/examples/burners/makefile.burner
+++ b/csps/lpc32xx/bsps/common/startup/examples/burners/makefile.burner
@@ -22,9 +22,9 @@
#
########################################################################
-COMMON_BASE := $(NXPMCU_SOFTWARE)\csps\$(CSP)\bsps\common
-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL)
-include $(COMMON_BASE)\startup\examples\buildfiles\make.env
+COMMON_BASE := $(NXPMCU_SOFTWARE)/csps/$(CSP)/bsps/common
+include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL)
+include $(COMMON_BASE)/startup/examples/buildfiles/make.env
########################################################################
# ARM Realview
@@ -38,7 +38,7 @@ AFLAGS += --predefine "USE_ALL_STACKS SETL {TRUE}"
#AFLAGS += --predefine "RW_RELOC SETL {TRUE}"
# This runs from IRAM
-LDSCRIPT =$(COMMON_BASE)\startup\examples\buildfiles\ldscript_iram_rvw.ld
+LDSCRIPT =$(COMMON_BASE)/startup/examples/buildfiles/ldscript_iram_rvw.ld
LDFLAGS = --remove
MAP = --map --info=totals,sizes,unused --symbols --list
endif
@@ -55,7 +55,7 @@ AFLAGS += --predefine "USE_ALL_STACKS SETL {TRUE}"
#AFLAGS += --predefine "RW_RELOC SETL {TRUE}"
# This runs from IRAM
-LDSCRIPT =$(COMMON_BASE)\startup\examples\buildfiles\ldscript_iram_rvw.ld
+LDSCRIPT =$(COMMON_BASE)/startup/examples/buildfiles/ldscript_iram_rvw.ld
LDFLAGS = --remove
MAP = --map --info=totals,sizes,unused --symbols --list
endif
@@ -72,7 +72,7 @@ AFLAGS += --defsym USE_ALL_STACKS=1
#AFLAGS += --defsym RW_RELOC=1
# This runs from IRAM
-LDSCRIPT =$(COMMON_BASE)\startup\examples\buildfiles\ldscript_iram_gnu.ld
+LDSCRIPT =$(COMMON_BASE)/startup/examples/buildfiles/ldscript_iram_gnu.ld
endif
@@ -108,7 +108,7 @@ endif
# Pick up the assembler and C source files in the directory
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes
########################################################################
#
@@ -157,6 +157,6 @@ endif
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build
.PHONY: debug bin
diff --git a/csps/lpc32xx/bsps/ea3250/source/makefile b/csps/lpc32xx/bsps/ea3250/source/makefile
index 7cada25..2899b20 100644
--- a/csps/lpc32xx/bsps/ea3250/source/makefile
+++ b/csps/lpc32xx/bsps/ea3250/source/makefile
@@ -22,16 +22,16 @@
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL)
+include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL)
########################################################################
#
# Pick up the assembler and C source files in the directory
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes
-AFLAGS +=-I..\Include
-CFLAGS +=-I..\Include
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes
+AFLAGS +=-I../Include
+CFLAGS +=-I../Include
########################################################################
#
@@ -64,7 +64,7 @@ realclean: lib_realclean
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build
.PHONY: all lib_clean lib_realclean
diff --git a/csps/lpc32xx/bsps/fdi3250/source/makefile b/csps/lpc32xx/bsps/fdi3250/source/makefile
index 4e153bb..11e4b63 100644
--- a/csps/lpc32xx/bsps/fdi3250/source/makefile
+++ b/csps/lpc32xx/bsps/fdi3250/source/makefile
@@ -22,16 +22,16 @@
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL)
+include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL)
########################################################################
#
# Pick up the assembler and C source files in the directory
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes
-AFLAGS +=-I..\Include
-CFLAGS +=-I..\Include
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes
+AFLAGS +=-I../Include
+CFLAGS +=-I../Include
########################################################################
#
@@ -53,7 +53,7 @@ lib_clean:
# delete all targets this Makefile can make and all built libraries
# linked in
lib_realclean:
- -@$(RM) $(BSP_LIB_DIR)\*.a
+ -@$(RM) $(BSP_LIB_DIR)/*.a
-@$(RMDIR) $(BSP_LIB_DIR)
clean: lib_clean
@@ -65,7 +65,7 @@ realclean: lib_realclean
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build
.PHONY: all lib_clean lib_realclean
diff --git a/csps/lpc32xx/bsps/phy3250/examples/makefile b/csps/lpc32xx/bsps/phy3250/examples/makefile
index b939252..e7feaa6 100644
--- a/csps/lpc32xx/bsps/phy3250/examples/makefile
+++ b/csps/lpc32xx/bsps/phy3250/examples/makefile
@@ -25,7 +25,7 @@
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL)
+include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL)
SUBDIRS = adc dram_self_refresh hstimer hsuart i2c kscan lcd_colorbars
SUBDIRS += lcd_tsc mi2c mstimer pwm pwm_simple rtc sdcard sdcard_dma
diff --git a/csps/lpc32xx/bsps/phy3250/source/makefile b/csps/lpc32xx/bsps/phy3250/source/makefile
index 7c48e7d..750b776 100644
--- a/csps/lpc32xx/bsps/phy3250/source/makefile
+++ b/csps/lpc32xx/bsps/phy3250/source/makefile
@@ -32,7 +32,7 @@ include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL)
# Pick up the assembler and C source files in the directory
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes
AFLAGS +=-I../Include
CFLAGS +=-I../Include
diff --git a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/kickstart/makefile b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/kickstart/makefile
index 01e2b38..526d6cc 100644
--- a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/kickstart/makefile
+++ b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/kickstart/makefile
@@ -78,7 +78,7 @@ endif
########################################################################
#
-# Compiler\linker specific stuff
+# Compiler/linker specific stuff
#
########################################################################
diff --git a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/norerase/makefile b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/norerase/makefile
index ce329f5..e81b8db 100644
--- a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/norerase/makefile
+++ b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/norerase/makefile
@@ -77,7 +77,7 @@ endif
########################################################################
#
-# Compiler\linker specific stuff
+# Compiler/linker specific stuff
#
########################################################################
diff --git a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/s1lapp/makefile b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/s1lapp/makefile
index 4426fc7..196faec 100644
--- a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/s1lapp/makefile
+++ b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/nor/s1lapp/makefile
@@ -77,7 +77,7 @@ endif
########################################################################
#
-# Compiler\linker specific stuff
+# Compiler/linker specific stuff
#
########################################################################
diff --git a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/spi/kickstart/makefile b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/spi/kickstart/makefile
index dc73b64..39fc304 100644
--- a/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/spi/kickstart/makefile
+++ b/csps/lpc32xx/bsps/phy3250/startup/examples/Burners/spi/kickstart/makefile
@@ -78,7 +78,7 @@ endif
########################################################################
#
-# Compiler\linker specific stuff
+# Compiler/linker specific stuff
#
########################################################################
diff --git a/csps/lpc32xx/source/makefile b/csps/lpc32xx/source/makefile
index 8e05456..16bd944 100644
--- a/csps/lpc32xx/source/makefile
+++ b/csps/lpc32xx/source/makefile
@@ -25,16 +25,16 @@
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL)
+include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL)
########################################################################
#
# Pick up the assembler and C source files in the directory
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes
-AFLAGS +=-I..\Include
-CFLAGS +=-I..\Include
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes
+AFLAGS +=-I../Include
+CFLAGS +=-I../Include
########################################################################
@@ -68,7 +68,7 @@ realclean: lib_realclean
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build
.PHONY: all lib_clean lib_realclean
diff --git a/lpc/source/makefile b/lpc/source/makefile
index 2860db9..ae7d612 100644
--- a/lpc/source/makefile
+++ b/lpc/source/makefile
@@ -25,16 +25,16 @@
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL)
+include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL)
########################################################################
#
# Pick up the assembler and C source files in the directory
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.ftypes
-AFLAGS +=-I..\Include
-CFLAGS +=-I..\Include
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.ftypes
+AFLAGS +=-I../Include
+CFLAGS +=-I../Include
########################################################################
#
@@ -67,7 +67,7 @@ realclean: lib_realclean
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.build
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.build
.PHONY: all lib_clean lib_realclean
diff --git a/makefile b/makefile
index 8645fcc..86fa6bc 100644
--- a/makefile
+++ b/makefile
@@ -34,7 +34,7 @@ TARGETS_CLN =gen_clean csp_clean bsp_clean
#
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\$(CSP)\make.$(CSP).$(TOOL)
+include $(NXPMCU_SOFTWARE)/makerule/$(CSP)/make.$(CSP).$(TOOL)
########################################################################
#
diff --git a/makerule/common/make.rules.environment b/makerule/common/make.rules.environment
index d5737fe..4e6df48 100644
--- a/makerule/common/make.rules.environment
+++ b/makerule/common/make.rules.environment
@@ -52,7 +52,7 @@ ASTYLE =astyle --options=$(BUILD_ROOT)/tools/astyle.cfg
#
########################################################################
-CSP_LIB_DIR =$(BUILD_ROOT)\csps\$(CSP)\lib
+CSP_LIB_DIR =$(BUILD_ROOT)/csps/$(CSP)/lib
########################################################################
#
@@ -60,7 +60,7 @@ CSP_LIB_DIR =$(BUILD_ROOT)\csps\$(CSP)\lib
#
########################################################################
-BSP_LIB_DIR =$(BUILD_ROOT)\csps\$(CSP)\bsps\$(BSP)\lib
+BSP_LIB_DIR =$(BUILD_ROOT)/csps/$(CSP)/bsps/$(BSP)/lib
########################################################################
#
@@ -68,7 +68,7 @@ BSP_LIB_DIR =$(BUILD_ROOT)\csps\$(CSP)\bsps\$(BSP)\lib
#
########################################################################
-GEN_LIB_DIR =$(BUILD_ROOT)\$(GEN)\lib
+GEN_LIB_DIR =$(BUILD_ROOT)/$(GEN)/lib
########################################################################
#
@@ -76,9 +76,9 @@ GEN_LIB_DIR =$(BUILD_ROOT)\$(GEN)\lib
#
########################################################################
-CSP_DIR =$(BUILD_ROOT)\csps\$(CSP)
-CSP_SRC_DIR =$(CSP_DIR)\source
-CSP_INC_DIR =$(CSP_DIR)\include
+CSP_DIR =$(BUILD_ROOT)/csps/$(CSP)
+CSP_SRC_DIR =$(CSP_DIR)/source
+CSP_INC_DIR =$(CSP_DIR)/include
########################################################################
#
@@ -86,9 +86,9 @@ CSP_INC_DIR =$(CSP_DIR)\include
#
########################################################################
-BSP_DIR =$(BUILD_ROOT)\csps\$(CSP)\bsps\$(BSP)
-BSP_SRC_DIR =$(BSP_DIR)\source
-BSP_INC_DIR =$(BSP_DIR)\include
+BSP_DIR =$(BUILD_ROOT)/csps/$(CSP)/bsps/$(BSP)
+BSP_SRC_DIR =$(BSP_DIR)/source
+BSP_INC_DIR =$(BSP_DIR)/include
########################################################################
#
@@ -96,9 +96,9 @@ BSP_INC_DIR =$(BSP_DIR)\include
#
########################################################################
-GEN_DIR =$(BUILD_ROOT)\$(GEN)
-GEN_SRC_DIR =$(GEN_DIR)\source
-GEN_INC_DIR =$(GEN_DIR)\include
+GEN_DIR =$(BUILD_ROOT)/$(GEN)
+GEN_SRC_DIR =$(GEN_DIR)/source
+GEN_INC_DIR =$(GEN_DIR)/include
########################################################################
#
@@ -151,6 +151,6 @@ endif
#
########################################################################
-TARGET_CSP_LIB =$(CSP_LIB_DIR)\$(CSP_ARCHIVE)
-TARGET_BSP_LIB =$(BSP_LIB_DIR)\$(BSP_ARCHIVE)
-TARGET_GEN_LIB =$(GEN_LIB_DIR)\$(GEN_ARCHIVE)
+TARGET_CSP_LIB =$(CSP_LIB_DIR)/$(CSP_ARCHIVE)
+TARGET_BSP_LIB =$(BSP_LIB_DIR)/$(BSP_ARCHIVE)
+TARGET_GEN_LIB =$(GEN_LIB_DIR)/$(GEN_ARCHIVE)
diff --git a/makerule/lpc32xx/make.lpc32xx.gnu b/makerule/lpc32xx/make.lpc32xx.gnu
index 3277d99..d80b98d 100644
--- a/makerule/lpc32xx/make.lpc32xx.gnu
+++ b/makerule/lpc32xx/make.lpc32xx.gnu
@@ -19,7 +19,7 @@
# use without further testing or modification.
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.environment
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.environment
CPU = arm926ej-s
CFLAGS = -mcpu=arm926ej-s -Wall -Os
diff --git a/makerule/lpc32xx/make.lpc32xx.iar b/makerule/lpc32xx/make.lpc32xx.iar
index 238ebbf..27d163f 100644
--- a/makerule/lpc32xx/make.lpc32xx.iar
+++ b/makerule/lpc32xx/make.lpc32xx.iar
@@ -19,12 +19,12 @@
# use without further testing or modification.
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.environment
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.environment
-IARBASE = $(IAR_ROOT)\ARM
-IARTOOLS = $(IARBASE)\bin
-IAR_LIB = $(IARBASE)\lib
-IAR_INC = $(IARBASE)\inc
+IARBASE = $(IAR_ROOT)/ARM
+IARTOOLS = $(IARBASE)/bin
+IAR_LIB = $(IARBASE)/lib
+IAR_INC = $(IARBASE)/inc
CC = iccarm
CCP = iccarm
AS = iasmarm
@@ -36,7 +36,7 @@ CFLAGS += -I"$(IAR_INC)"
AFLAGS = --cpu 5TEJ
LDFLAGS =
LK = "$(TARGET_GEN_LIB)" "$(TARGET_CSP_LIB)" "$(TARGET_BSP_LIB)"
-;LK += "$(IAR_LIB)\dl4tpannl8f.r79"
+;LK += "$(IAR_LIB)/dl4tpannl8f.r79"
MAP = --map
LDESC = --config
ENTRY = --entry
diff --git a/makerule/lpc32xx/make.lpc32xx.keil b/makerule/lpc32xx/make.lpc32xx.keil
index dd27583..7334d3f 100644
--- a/makerule/lpc32xx/make.lpc32xx.keil
+++ b/makerule/lpc32xx/make.lpc32xx.keil
@@ -19,7 +19,7 @@
# use without further testing or modification.
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.environment
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.environment
CC =armcc
CCP =armcc
@@ -27,11 +27,11 @@ AS =armasm
LD =armlink
AR =armar -r -s
CFLAGS =--arm -O3 -g --device DARMP3 -D__MICROLIB
-CFLAGS +=-I$(KEIL_RVCT)\inc -I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR)
+CFLAGS +=-I$(KEIL_RVCT)/inc -I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR)
AFLAGS =--arm --device=DARMP3
AFLAGS +=-I$(CSP_INC_DIR) -I$(BSP_INC_DIR) -I$(GEN_INC_DIR)
LDFLAGS =--noremove
-LK =--device DARMP3 --libpath $(KEIL_RVCT)\lib --scan $(TARGET_CSP_LIB)
+LK =--device DARMP3 --libpath $(KEIL_RVCT)/lib --scan $(TARGET_CSP_LIB)
LK +=--scan $(TARGET_BSP_LIB)
LK +=--scan $(TARGET_GEN_LIB)
MAP =--map --list
diff --git a/makerule/lpc32xx/make.lpc32xx.rvw b/makerule/lpc32xx/make.lpc32xx.rvw
index 59961dd..2419976 100644
--- a/makerule/lpc32xx/make.lpc32xx.rvw
+++ b/makerule/lpc32xx/make.lpc32xx.rvw
@@ -19,7 +19,7 @@
# use without further testing or modification.
########################################################################
-include $(NXPMCU_SOFTWARE)\makerule\common\make.rules.environment
+include $(NXPMCU_SOFTWARE)/makerule/common/make.rules.environment
CC =armcc
CCP =armcpp
--
1.7.7.3

View File

@ -0,0 +1,70 @@
################################################################################
#
# lpc32xxcdl
#
################################################################################
LPC32XXCDL_VERSION = lpc32xx_cdl_v2.11
LPC32XXCDL_SITE = http://git.lpcware.com/lpc3xxx_cdl.git
LPC32XXCDL_SITE_METHOD = git
LPC32XXCDL_INSTALL_TARGET = NO
LPC32XXCDL_INSTALL_IMAGES = YES
ifeq ($(BR2_TARGET_LPC32XXCDL_BOARDNAME),"ea3250")
LPC32XXCDL_KICKSTART = kickstart/nand
LPC32XXCDL_KICKSTART_BURNER = nand/kickstart
LPC32XXCDL_S1L = s1l
LPC32XXCDL_S1L_BURNER = nand/s1lapp
endif
ifeq ($(BR2_TARGET_LPC32XXCDL_BOARDNAME),"phy3250")
LPC32XXCDL_KICKSTART = kickstart/kickstart_nand
LPC32XXCDL_KICKSTART_BURNER = nand/kickstart
LPC32XXCDL_S1L = s1l/s1l_nand_boot
LPC32XXCDL_S1L_BURNER = nand/s1lapp
endif
ifeq ($(BR2_TARGET_LPC32XXCDL_BOARDNAME),"fdi3250")
LPC32XXCDL_KICKSTART = kickstart/nand
LPC32XXCDL_KICKSTART_BURNER = nand/kickstart_jtag
LPC32XXCDL_S1L = s1l
LPC32XXCDL_S1L_BURNER = nand/s1lapp_jtag
endif
LPC32XXCDL_BUILD_FLAGS = \
CROSS_COMPILE=$(TARGET_CROSS) \
NXPMCU_WINBASE=$(@D) \
NXPMCU_SOFTWARE=$(@D) \
BSP=$(BR2_TARGET_LPC32XXCDL_BOARDNAME) \
CSP=lpc32xx TOOL=gnu GEN=lpc
LPC32XXCDL_BOARD_STARTUP_DIR = \
csps/lpc32xx/bsps/$(BR2_TARGET_LPC32XXCDL_BOARDNAME)/startup/examples/
# Source files are with dos newlines, which our patch infrastructure doesn't
# handle. Work around it by converting the affected files to unix newlines
# before patching
define LPC32XXCDL_DOS2UNIX_FOR_PATCH
sed -n 's|^[+-]\{3\} [^/]\+\([^ \t]*\)\(.*\)|$(@D)\1|p' \
boot/lpc32xxcdl/*.patch| sort -u | xargs $(SED) 's/\x0D$$//'
endef
LPC32XXCDL_POST_EXTRACT_HOOKS += LPC32XXCDL_DOS2UNIX_FOR_PATCH
define LPC32XXCDL_BUILD_CMDS
$(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)
$(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/Burners/$(LPC32XXCDL_KICKSTART_BURNER)
$(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/$(LPC32XXCDL_KICKSTART)
$(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/Burners/$(LPC32XXCDL_S1L_BURNER)
$(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/$(LPC32XXCDL_S1L)
endef
define LPC32XXCDL_INSTALL_IMAGES_CMDS
cp $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/Burners/$(LPC32XXCDL_KICKSTART_BURNER)/*gnu.bin $(BINARIES_DIR)
cp $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/$(LPC32XXCDL_KICKSTART)/*gnu.bin $(BINARIES_DIR)
cp $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/Burners/$(LPC32XXCDL_S1L_BURNER)/*gnu.bin $(BINARIES_DIR)
cp $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/$(LPC32XXCDL_S1L)/*gnu.bin $(BINARIES_DIR)
endef
$(eval $(generic-package))

View File

@ -0,0 +1,90 @@
config BR2_TARGET_MXS_BOOTLETS
bool "mxs-bootlets"
depends on BR2_arm
help
Stage1 bootloaders for Freescale iMX23/iMX28 SoCs
if BR2_TARGET_MXS_BOOTLETS
choice
prompt "Source"
default BR2_TARGET_MXS_BOOTLETS_FREESCALE
help
Select the location of the bootlets you want to use
config BR2_TARGET_MXS_BOOTLETS_FREESCALE
bool "Freescale 10.12.01 version"
config BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL
bool "Custom tarball"
config BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT
bool "Custom Git repository"
endchoice
config BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL_URL
depends on BR2_TARGET_MXS_BOOTLETS_CUSTOM_TARBALL
string "URL of custom bootlets tarball"
if BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT
config BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT_URL
string "URL of custom Git repository"
config BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT_VERSION
string "Custom Git version"
endif
choice
prompt "Bootstream"
help
Select which bootstream to generate
config BR2_TARGET_MXS_BOOTLETS_BAREBOX
depends on BR2_TARGET_BAREBOX
bool "Barebox Bootloader"
config BR2_TARGET_MXS_BOOTLETS_LINUX
depends on BR2_LINUX_KERNEL
bool "Linux Kernel"
config BR2_TARGET_MXS_BOOTLETS_UBOOT
depends on BR2_TARGET_UBOOT
bool "U-boot bootloader"
endchoice
config BR2_TARGET_MXS_BOOTLETS_HAS_IVT
bool "HAB Support"
help
Enable this option if you are building bootlets
for the iMX28 platform that needs to include instructions
for the secure boot mechanism present on these SoCs
choice
prompt "Board"
help
Select the board to build the bootlets for
config BR2_TARGET_MXS_BOOTLETS_STMP37xx
bool "Sigmatel ST-MP3-7xx Board"
config BR2_TARGET_MXS_BOOTLETS_STMP378x
bool "Sigmatel ST-MP3-78x Board"
config BR2_TARGET_MXS_BOOTLETS_IMX28EVK
bool "Freescale iMX28 EVK Board"
config BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD
bool "Custom board"
endchoice
config BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD_NAME
string "Custom board name"
depends on BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD
help
Name of the board to build the bootlets for
endif

View File

@ -0,0 +1,34 @@
// STMP378x ROM command script to load and run U-Boot
sources {
power_prep="./power_prep/power_prep";
sdram_prep="./boot_prep/boot_prep";
barebox="./barebox";
}
section (0) {
//----------------------------------------------------------
// Power Supply initialization
//----------------------------------------------------------
load power_prep;
load ivt (entry = power_prep:_start) > 0x8000;
hab call 0x8000;
//----------------------------------------------------------
// SDRAM initialization
//----------------------------------------------------------
load sdram_prep;
load ivt (entry = sdram_prep:_start) > 0x8000;
hab call 0x8000;
//----------------------------------------------------------
// Load and call u_boot - ELF ARM image
//----------------------------------------------------------
load barebox;
load ivt (entry = barebox:start) > 0x8000;
hab call 0x8000;
}

View File

@ -0,0 +1,2 @@
# locally computed
sha256 63f6068ae36884adef4259bbb1fe2591755718f22c46d0a59d854883dfab1ffc imx-bootlets-src-10.12.01.tar.gz

View File

@ -0,0 +1,106 @@
################################################################################
#
# mxs-bootlets
#
################################################################################
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_SOURCE = $(notdir $(MXS_BOOTLETS_TARBALL))
BR_NO_CHECK_HASH_FOR += $(MXS_BOOTLETS_SOURCE)
else ifeq ($(BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT),y)
MXS_BOOTLETS_SITE = $(BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT_URL)
MXS_BOOTLETS_SITE_METHOD = git
MXS_BOOTLETS_VERSION = $(call qstrip,$(BR2_TARGET_MXS_BOOTLETS_CUSTOM_GIT_VERSION))
BR_NO_CHECK_HASH_FOR += $(MXS_BOOTLETS_SOURCE)
else
MXS_BOOTLETS_VERSION = 10.12.01
MXS_BOOTLETS_SITE = http://download.ossystems.com.br/bsp/freescale/source
MXS_BOOTLETS_SOURCE = imx-bootlets-src-$(MXS_BOOTLETS_VERSION).tar.gz
endif
ifeq ($(BR2_TARGET_MXS_BOOTLETS_STMP37xx),y)
MXS_BOOTLETS_BOARD = stmp37xx_dev
else ifeq ($(BR2_TARGET_MXS_BOOTLETS_STMP378x),y)
MXS_BOOTLETS_BOARD = stmp378x_dev
else ifeq ($(BR2_TARGET_MXS_BOOTLETS_IMX28EVK),y)
MXS_BOOTLETS_BOARD = iMX28_EVK
else ifeq ($(BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD),y)
MXS_BOOTLETS_BOARD = $(call qstrip,$(BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD_NAME))
endif
ifeq ($(BR2_TARGET_MXS_BOOTLETS_HAS_IVT),y)
MXS_BOOTLETS_IVT_SUFFIX = _ivt
MXS_BOOTLETS_ELFTOSB_OPTIONS += -f imx28
endif
MXS_BOOTLETS_DEPENDENCIES = host-elftosb
MXS_BOOTLETS_LICENSE = GPL-2.0+
ifeq ($(BR2_TARGET_MXS_BOOTLETS_BAREBOX),y)
MXS_BOOTLETS_DEPENDENCIES += barebox
MXS_BOOTLETS_BOOTDESC = barebox$(MXS_BOOTLETS_IVT_SUFFIX).bd
MXS_BOOTLETS_BOOTSTREAM = $(MXS_BOOTLETS_BOARD)_barebox$(MXS_BOOTLETS_IVT_SUFFIX).sb
else ifeq ($(BR2_TARGET_MXS_BOOTLETS_LINUX),y)
MXS_BOOTLETS_DEPENDENCIES += linux
MXS_BOOTLETS_BOOTDESC = linux$(MXS_BOOTLETS_IVT_SUFFIX).bd
MXS_BOOTLETS_BOOTSTREAM = $(MXS_BOOTLETS_BOARD)_linux$(MXS_BOOTLETS_IVT_SUFFIX).sb
else ifeq ($(BR2_TARGET_MXS_BOOTLETS_UBOOT),y)
MXS_BOOTLETS_DEPENDENCIES += uboot
MXS_BOOTLETS_BOOTDESC = uboot$(MXS_BOOTLETS_IVT_SUFFIX).bd
MXS_BOOTLETS_BOOTSTREAM = $(MXS_BOOTLETS_BOARD)_uboot$(MXS_BOOTLETS_IVT_SUFFIX).sb
endif
ifeq ($(BR2_TARGET_MXS_BOOTLETS_BAREBOX),y)
define MXS_BOOTLETS_SED_BAREBOX
sed -i 's,[^ *]barebox.*;,\tbarebox="$(BAREBOX_DIR)/barebox";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC)
endef
endif
ifeq ($(BR2_TARGET_MXS_BOOTLETS_LINUX),y)
define MXS_BOOTLETS_BUILD_LINUX_PREP
BOARD=$(MXS_BOOTLETS_BOARD) CROSS_COMPILE="$(TARGET_CROSS)" \
$(MAKE1) -C $(@D) linux_prep
endef
define MXS_BOOTLETS_SED_LINUX
sed -i 's,[^ *]linux_prep.*;,\tlinux_prep="$(@D)/linux_prep/output-target/linux_prep";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC)
sed -i 's,[^ *]zImage.*;,\tzImage="$(LINUX_DIR)/arch/arm/boot/zImage";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC)
endef
endif
ifeq ($(BR2_TARGET_MXS_BOOTLETS_UBOOT),y)
define MXS_BOOTLETS_SED_UBOOT
sed -i 's,[^ *]u_boot.*;,\tu_boot="$(UBOOT_DIR)/u-boot";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC)
endef
endif
define MXS_BOOTLETS_INSTALL_BAREBOX_BOOTDESC
cp boot/mxs-bootlets/barebox_ivt.bd $(@D)/
endef
MXS_BOOTLETS_POST_EXTRACT_HOOKS += MXS_BOOTLETS_INSTALL_BAREBOX_BOOTDESC
define MXS_BOOTLETS_BUILD_CMDS
BOARD=$(MXS_BOOTLETS_BOARD) CROSS_COMPILE="$(TARGET_CROSS)" \
$(MAKE1) -C $(@D) power_prep
BOARD=$(MXS_BOOTLETS_BOARD) CROSS_COMPILE="$(TARGET_CROSS)" \
$(MAKE1) -C $(@D) boot_prep
$(MXS_BOOTLETS_BUILD_LINUX_PREP)
sed -i 's,[^ *]power_prep.*;,\tpower_prep="$(@D)/power_prep/power_prep";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC)
sed -i 's,[^ *]sdram_prep.*;,\tsdram_prep="$(@D)/boot_prep/boot_prep";,' $(@D)/$(MXS_BOOTLETS_BOOTDESC)
$(MXS_BOOTLETS_SED_BAREBOX)
$(MXS_BOOTLETS_SED_LINUX)
$(MXS_BOOTLETS_SED_UBOOT)
$(HOST_DIR)/bin/elftosb $(MXS_BOOTLETS_ELFTOSB_OPTIONS) \
-z -c $(@D)/$(MXS_BOOTLETS_BOOTDESC) \
-o $(@D)/$(MXS_BOOTLETS_BOOTSTREAM)
endef
define MXS_BOOTLETS_INSTALL_TARGET_CMDS
cp $(@D)/$(MXS_BOOTLETS_BOOTSTREAM) $(BINARIES_DIR)/
endef
$(eval $(generic-package))

View File

@ -0,0 +1,17 @@
config BR2_TARGET_S500_BOOTLOADER
bool "s500-bootloader"
depends on BR2_arm
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
select BR2_HOSTARCH_NEEDS_IA32_LIBS
help
1st level bootloader for Actions Semiconductor S500 SoC.
https://github.com/xapp-le/owl
config BR2_TARGET_S500_BOOTLOADER_BOARD
string "board to configure for"
depends on BR2_TARGET_S500_BOOTLOADER
help
Specify the board to configure the bootloader for.
This should be the name of a directory under s500/boards
containing a suitable bootloader.ini file.

View File

@ -0,0 +1,2 @@
# Locally calculated
sha256 b183024ac69f51ea7befd28d03b2ec35a7280e270405600fb4f37aa91d9c9571 s500-bootloader-a8d7fa1d9a7f353ec4613febf30f4ca99a10a106.tar.gz

View File

@ -0,0 +1,34 @@
################################################################################
#
# s500-bootloader
#
################################################################################
S500_BOOTLOADER_VERSION = a8d7fa1d9a7f353ec4613febf30f4ca99a10a106
S500_BOOTLOADER_SITE = $(call github,xapp-le,owl,$(S500_BOOTLOADER_VERSION))
S500_BOOTLOADER_LICENSE = PROPRIETARY
S500_BOOTLOADER_INSTALL_TARGET = NO
S500_BOOTLOADER_INSTALL_IMAGES = YES
S500_BOOTLOADER_BOARD = $(call qstrip,$(BR2_TARGET_S500_BOOTLOADER_BOARD))
define S500_BOOTLOADER_BUILD_CMDS
cd $(@D) && ./tools/utils/bootloader_pack \
s500/bootloader/bootloader.bin \
s500/boards/$(S500_BOOTLOADER_BOARD)/bootloader.ini \
s500-bootloader.bin
endef
define S500_BOOTLOADER_INSTALL_IMAGES_CMDS
$(INSTALL) -m 0644 -D $(@D)/s500-bootloader.bin \
$(BINARIES_DIR)/s500-bootloader.bin
endef
$(eval $(generic-package))
ifeq ($(BR2_TARGET_S500_BOOTLOADER)$(BR_BUILDING),yy)
# we NEED a board name
ifeq ($(S500_BOOTLOADER_BOARD),)
$(error No s500-bootloader board specified. Check your BR2_TARGET_S500_BOOTLOADER settings)
endif
endif

View File

@ -1,16 +1,19 @@
commit e5f2b577ded109291c9632dacb6eaa621d8a59fe
Author: Sylvain Gault <sylvain.gault@gmail.com>
Date: Tue Sep 29 02:38:25 2015 +0200
From da5cbd1a3b248f2d32281a1766a3d1414c0e8e03 Mon Sep 17 00:00:00 2001
From: Sylvain Gault <sylvain.gault@gmail.com>
Date: Tue, 29 Sep 2015 02:38:25 +0200
Subject: [PATCH] bios: Fix alignment change with gcc 5
bios: Fix alignment change with gcc 5
The section aligment specified in the ld scripts have to be greater or
equal to those in the .o files generated by gcc.
The section aligment specified in the ld scripts have to be greater or
equal to those in the .o files generated by gcc.
Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com>
Tested-by: poma <pomidorabelisima@gmail.com>
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com>
Tested-by: poma <pomidorabelisima@gmail.com>
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
---
core/i386/syslinux.ld | 6 +++---
core/x86_64/syslinux.ld | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/core/i386/syslinux.ld b/core/i386/syslinux.ld
index 7b4e012..7390451 100644
@ -74,3 +77,6 @@ index 1057112..bf815c4 100644
__bss_vma = .;
__bss_lma = .; /* Dummy */
.bss (NOLOAD) : AT (__bss_lma) {
--
2.7.4

View File

@ -0,0 +1,30 @@
From 250bf2c921713434627dc7bc8b0918fa0841f9b7 Mon Sep 17 00:00:00 2001
From: Graham Inggs <ginggs@ubuntu.com>
Date: Wed, 5 Apr 2017 22:03:12 +0200
Subject: [PATCH] Disable PIE to avoid FTBFS on amd64
gcc 6.x has PIE support enabled by default, which causes a build issue
with syslinux. This patch disables PIE support in the relevant
syslinux Makefile.
Signed-off-by: Ryan Coe <bluemrp9@gmail.com>
---
gpxe/src/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gpxe/src/Makefile b/gpxe/src/Makefile
index cc91d78..077af64 100644
--- a/gpxe/src/Makefile
+++ b/gpxe/src/Makefile
@@ -4,7 +4,7 @@
#
CLEANUP :=
-CFLAGS :=
+CFLAGS := -fno-PIE
ASFLAGS :=
LDFLAGS :=
MAKEDEPS := Makefile
--
2.7.4

View File

@ -1,22 +0,0 @@
Description: Disable PIE to avoid FTBFS on amd64
Bug-Ubuntu: https://bugs.launchpad.net/bugs/1579023
Author: Graham Inggs <ginggs@ubuntu.com>
Last-Update: 2016-05-06
gcc 6.x has PIE support enabled by default, which causes a build issue
with syslinux. This patch disables PIE support in the relevant
syslinux Makefile.
Signed-off-by: Ryan Coe <bluemrp9@gmail.com>
--- a/gpxe/src/Makefile
+++ b/gpxe/src/Makefile
@@ -4,7 +4,7 @@
#
CLEANUP :=
-CFLAGS :=
+CFLAGS := -fno-PIE
ASFLAGS :=
LDFLAGS :=
MAKEDEPS := Makefile

View File

@ -0,0 +1,32 @@
From c0287594239d5af2082cac20817f8e8b11a4b1b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Allard?= <benoit.allard@greenbone.net>
Date: Wed, 5 Apr 2017 14:18:09 +0200
Subject: [PATCH] memdisk: Force ld output format to 32-bits
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
On toolchains where the default output is x86_64, we need to be
consistent with the other .o files
Signed-off-by: Benoît Allard <benoit.allard@greenbone.net>
---
memdisk/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/memdisk/Makefile b/memdisk/Makefile
index e6557d8..06613ff 100644
--- a/memdisk/Makefile
+++ b/memdisk/Makefile
@@ -78,7 +78,7 @@ memdisk16.o: memdisk16.asm
$(NASM) -f bin $(NASMOPT) $(NFLAGS) $(NINCLUDE) -o $@ -l $*.lst $<
memdisk_%.o: memdisk_%.bin
- $(LD) -r -b binary -o $@ $<
+ $(LD) --oformat elf32-i386 -r -b binary -o $@ $<
memdisk16.elf: $(OBJS16)
$(LD) -Ttext 0 -o $@ $^
--
2.7.4

View File

@ -0,0 +1,60 @@
From e000251144056c99e390a2a4449d06cbd2a19c0a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Allard?= <benoit.allard@greenbone.net>
Date: Wed, 5 Apr 2017 14:25:02 +0200
Subject: [PATCH] utils: Use the host toolchain to build.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The utilities are meant to run on the host machine, hence must be built using
the host toolchain.
Signed-off-by: Benoît Allard <benoit.allard@greenbone.net>
---
utils/Makefile | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/utils/Makefile b/utils/Makefile
index dfe6259..ac91aaa 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -17,8 +17,8 @@
VPATH = $(SRC)
include $(MAKEDIR)/syslinux.mk
-CFLAGS = $(GCCWARN) -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -I$(SRC)
-LDFLAGS = -O2
+CFLAGS = $(CFLAGS_FOR_BUILD) $(GCCWARN) -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -I$(SRC)
+LDFLAGS = $(LDFLAGS_FOR_BUILD) -O2
C_TARGETS = isohybrid gethostip memdiskfind
SCRIPT_TARGETS = mkdiskimage
@@ -35,7 +35,7 @@ ISOHDPFX = $(addprefix $(OBJ)/,../mbr/isohdpfx.bin ../mbr/isohdpfx_f.bin \
all: $(TARGETS)
%.o: %.c
- $(CC) $(UMAKEDEPS) $(CFLAGS) -c -o $@ $<
+ $(CC_FOR_BUILD) $(UMAKEDEPS) $(CFLAGS) -c -o $@ $<
mkdiskimage: mkdiskimage.in ../mbr/mbr.bin bin2hex.pl
$(PERL) $(SRC)/bin2hex.pl < $(OBJ)/../mbr/mbr.bin | cat $(SRC)/mkdiskimage.in - > $@
@@ -51,13 +51,13 @@ isohdpfx.c: $(ISOHDPFX) isohdpfxarray.pl
$(PERL) $(SRC)/isohdpfxarray.pl $(ISOHDPFX) > $@
isohybrid: isohybrid.o isohdpfx.o
- $(CC) $(LDFLAGS) -o $@ $^ -luuid
+ $(CC_FOR_BUILD) $(LDFLAGS) -o $@ $^ -luuid
gethostip: gethostip.o
- $(CC) $(LDFLAGS) -o $@ $^
+ $(CC_FOR_BUILD) $(LDFLAGS) -o $@ $^
memdiskfind: memdiskfind.o
- $(CC) $(LDFLAGS) -o $@ $^
+ $(CC_FOR_BUILD) $(LDFLAGS) -o $@ $^
tidy dist:
rm -f *.o .*.d isohdpfx.c
--
2.1.4

View File

@ -0,0 +1,44 @@
From 83e1f00990c25554723609bb549e18b987034317 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Allard?= <benoit.allard@greenbone.net>
Date: Thu, 6 Apr 2017 09:43:46 +0200
Subject: [PATCH] lzo: Use the host toolchain for prepcore
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Benoît Allard <benoit.allard@greenbone.net>
---
lzo/Makefile | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/lzo/Makefile b/lzo/Makefile
index 29f1fa6..c016e5a 100644
--- a/lzo/Makefile
+++ b/lzo/Makefile
@@ -11,10 +11,13 @@
## -----------------------------------------------------------------------
VPATH = $(SRC)
-include $(MAKEDIR)/build.mk
+include $(MAKEDIR)/syslinux.mk
INCLUDES += -I$(SRC)/include
+%.o: %.c
+ $(CC_FOR_BUILD) $(UMAKEDEPS) $(CFLAGS_FOR_BUILD) $(INCLUDES) -c -o $@ $<
+
LIBOBJS = $(patsubst %.c,%.o,$(subst $(SRC)/,,$(wildcard $(SRC)/src/*.c)))
LIB = lzo.a
BINS = prepcore
@@ -30,7 +33,7 @@ $(LIB) : $(LIBOBJS)
$(RANLIB) $@
prepcore : prepcore.o $(LIB)
- $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
+ $(CC_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ $^ $(LIBS)
tidy dist clean spotless:
rm -f $(BINS)
--
2.1.4

View File

@ -0,0 +1,37 @@
From 39274503292a6003b1b0c93f694e34f11e85ea44 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Allard?= <benoit.allard@greenbone.net>
Date: Fri, 9 Jun 2017 11:55:14 +0200
Subject: [PATCH] The VPrint definition is now part of the exports of
gnu-efi
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Benoît Allard <benoit.allard@greenbone.net>
---
efi/fio.h | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/efi/fio.h b/efi/fio.h
index 65fff8d..a1bfe68 100644
--- a/efi/fio.h
+++ b/efi/fio.h
@@ -11,15 +11,6 @@
#define MAX_EFI_ARGS 64
#define WS(c16) (c16 == L' ' || c16 == CHAR_TAB)
-/* VPrint is not in export declarations in gnu-efi lib yet
- * although it is a global function; declare it here
- */
-extern UINTN
-VPrint (
- IN CHAR16 *fmt,
- va_list args
- );
-
extern EFI_STATUS efi_errno;
void efi_memcpy(unsigned char *dst, unsigned char *src, size_t len);
--
2.1.4

View File

@ -0,0 +1,37 @@
From 3bd5c2d951421a89f76b2423e5810862f53486c1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Allard?= <benoit.allard@greenbone.net>
Date: Fri, 9 Jun 2017 11:59:43 +0200
Subject: [PATCH] Update the longjump calls to fit the new declaration
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Benoît Allard <benoit.allard@greenbone.net>
---
efi/main.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/efi/main.c b/efi/main.c
index 208fee4f..71d31a5c 100644
--- a/efi/main.c
+++ b/efi/main.c
@@ -10,7 +10,6 @@
#include <syslinux/firmware.h>
#include <syslinux/linux.h>
#include <sys/ansi.h>
-#include <setjmp.h>
#include "efi.h"
#include "fio.h"
@@ -30,7 +29,7 @@ uint32_t timer_irq;
__export uint8_t KbdMap[256];
char aux_seg[256];
-static jmp_buf load_error_buf;
+static jmp_buf *load_error_buf;
static inline EFI_STATUS
efi_close_protocol(EFI_HANDLE handle, EFI_GUID *guid, EFI_HANDLE agent,
--
2.13.3

View File

@ -0,0 +1,32 @@
From ca8aaded0c7c3900397029bd9520132b62629308 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Allard?= <benoit.allard@greenbone.net>
Date: Mon, 12 Jun 2017 14:59:16 +0200
Subject: [PATCH] efi/wrapper: build it with the host toolchain.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The wrapper program is executed on the build machine, so it should be
built with CC_FOR_BUILD.
Signed-off-by: Benoît Allard <benoit.allard@greenbone.net>
---
efi/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/efi/Makefile b/efi/Makefile
index d5443bd5..d24d16db 100644
--- a/efi/Makefile
+++ b/efi/Makefile
@@ -79,7 +79,7 @@ syslinux.so: $(OBJS) $(CORE_OBJS) $(LIB_OBJS)
# cp $^ $@
wrapper: wrapper.c
- $(CC) $^ -o $@
+ $(CC_FOR_BUILD) $^ -o $@
#
# Build the wrapper app and wrap our .so to produce a .efi
--
2.13.3

View File

@ -0,0 +1,295 @@
From 76946dd67bc856eaf4fe69d0826547a794176f78 Mon Sep 17 00:00:00 2001
From: Sylvain Gault <sylvain.gault@gmail.com>
Date: Tue, 29 Sep 2015 04:45:09 +0200
Subject: [PATCH] bios: Don't try to guess the sections alignment
For the compression / decompression to succeed, the sections layout must
be the same between the virtual memory and load memory. The section
alignment was kept in sync by introducing aligment that should be
greater or equal to the actual section alignment.
This patch compute the load memory addresses of the sections so that
the layout is the same as the virtual memory addresses.
Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com>
Tested-by: poma <pomidorabelisima@gmail.com>
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
Upstream: 0cc9a99e560a2f52bcf052fd85b1efae35ee812f
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
core/i386/syslinux.ld | 63 ++++++++++---------------------------------------
core/x86_64/syslinux.ld | 63 ++++++++++---------------------------------------
2 files changed, 24 insertions(+), 102 deletions(-)
diff --git a/core/i386/syslinux.ld b/core/i386/syslinux.ld
index 73904510..92b75b11 100644
--- a/core/i386/syslinux.ld
+++ b/core/i386/syslinux.ld
@@ -255,10 +255,9 @@ SECTIONS
. = 0x100000;
__pm_code_start = .;
+ __vma_to_lma = __pm_code_lma - __pm_code_start;
- __text_vma = .;
- __text_lma = __pm_code_lma;
- .text : AT(__text_lma) {
+ .text : AT(ADDR(.text) + __vma_to_lma) {
FILL(0x90909090)
__text_start = .;
*(.text)
@@ -266,106 +265,68 @@ SECTIONS
__text_end = .;
}
- . = ALIGN(32);
-
- __rodata_vma = .;
- __rodata_lma = __rodata_vma + __text_lma - __text_vma;
- .rodata : AT(__rodata_lma) {
+ .rodata : AT(ADDR(.rodata) + __vma_to_lma) {
__rodata_start = .;
*(.rodata)
*(.rodata.*)
__rodata_end = .;
}
- . = ALIGN(4);
-
- __ctors_vma = .;
- __ctors_lma = __ctors_vma + __text_lma - __text_vma;
- .ctors : AT(__ctors_lma) {
+ .ctors : AT(ADDR(.ctors) + __vma_to_lma) {
__ctors_start = .;
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__ctors_end = .;
}
- __dtors_vma = .;
- __dtors_lma = __dtors_vma + __text_lma - __text_vma;
- .dtors : AT(__dtors_lma) {
+ .dtors : AT(ADDR(.dtors) + __vma_to_lma) {
__dtors_start = .;
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
__dtors_end = .;
}
- . = ALIGN(4);
-
- __dynsym_vma = .;
- __dynsym_lma = __dynsym_vma + __text_lma - __text_vma;
- .dynsym : AT(__dynsym_lma) {
+ .dynsym : AT(ADDR(.dynsym) + __vma_to_lma) {
__dynsym_start = .;
*(.dynsym)
__dynsym_end = .;
}
__dynsym_len = __dynsym_end - __dynsym_start;
- . = ALIGN(4);
-
- __dynstr_vma = .;
- __dynstr_lma = __dynstr_vma + __text_lma - __text_vma;
- .dynstr : AT(__dynstr_lma) {
+ .dynstr : AT(ADDR(.dynstr) + __vma_to_lma) {
__dynstr_start = .;
*(.dynstr)
__dynstr_end = .;
}
__dynstr_len = __dynstr_end - __dynstr_start;
- . = ALIGN(4);
-
- __gnu_hash_vma = .;
- __gnu_hash_lma = __gnu_hash_vma + __text_lma - __text_vma;
- .gnu.hash : AT(__gnu_hash_lma) {
+ .gnu.hash : AT(ADDR(.gnu.hash) + __vma_to_lma) {
__gnu_hash_start = .;
*(.gnu.hash)
__gnu_hash_end = .;
}
- . = ALIGN(4);
-
- __dynlink_vma = .;
- __dynlink_lma = __dynlink_vma + __text_lma - __text_vma;
- .dynlink : AT(__dynlink_lma) {
+ .dynlink : AT(ADDR(.dynlink) + __vma_to_lma) {
__dynlink_start = .;
*(.dynlink)
__dynlink_end = .;
}
- . = ALIGN(4);
-
- __got_vma = .;
- __got_lma = __got_vma + __text_lma - __text_vma;
- .got : AT(__got_lma) {
+ .got : AT(ADDR(.got) + __vma_to_lma) {
__got_start = .;
KEEP (*(.got.plt))
KEEP (*(.got))
__got_end = .;
}
- . = ALIGN(4);
-
- __dynamic_vma = .;
- __dynamic_lma = __dynamic_vma + __text_lma - __text_vma;
- .dynamic : AT(__dynamic_lma) {
+ .dynamic : AT(ADDR(.dynamic) + __vma_to_lma) {
__dynamic_start = .;
*(.dynamic)
__dynamic_end = .;
}
- . = ALIGN(32);
-
- __data_vma = .;
- __data_lma = __data_vma + __text_lma - __text_vma;
- .data : AT(__data_lma) {
+ .data : AT(ADDR(.data) + __vma_to_lma) {
__data_start = .;
*(.data)
*(.data.*)
diff --git a/core/x86_64/syslinux.ld b/core/x86_64/syslinux.ld
index bf815c46..70c6e00a 100644
--- a/core/x86_64/syslinux.ld
+++ b/core/x86_64/syslinux.ld
@@ -255,10 +255,9 @@ SECTIONS
. = 0x100000;
__pm_code_start = .;
+ __vma_to_lma = __pm_code_lma - __pm_code_start;
- __text_vma = .;
- __text_lma = __pm_code_lma;
- .text : AT(__text_lma) {
+ .text : AT(ADDR(.text) + __vma_to_lma) {
FILL(0x90909090)
__text_start = .;
*(.text)
@@ -266,106 +265,68 @@ SECTIONS
__text_end = .;
}
- . = ALIGN(32);
-
- __rodata_vma = .;
- __rodata_lma = __rodata_vma + __text_lma - __text_vma;
- .rodata : AT(__rodata_lma) {
+ .rodata : AT(ADDR(.rodata) + __vma_to_lma) {
__rodata_start = .;
*(.rodata)
*(.rodata.*)
__rodata_end = .;
}
- . = ALIGN(4);
-
- __ctors_vma = .;
- __ctors_lma = __ctors_vma + __text_lma - __text_vma;
- .ctors : AT(__ctors_lma) {
+ .ctors : AT(ADDR(.ctors) + __vma_to_lma) {
__ctors_start = .;
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__ctors_end = .;
}
- __dtors_vma = .;
- __dtors_lma = __dtors_vma + __text_lma - __text_vma;
- .dtors : AT(__dtors_lma) {
+ .dtors : AT(ADDR(.dtors) + __vma_to_lma) {
__dtors_start = .;
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
__dtors_end = .;
}
- . = ALIGN(4);
-
- __dynsym_vma = .;
- __dynsym_lma = __dynsym_vma + __text_lma - __text_vma;
- .dynsym : AT(__dynsym_lma) {
+ .dynsym : AT(ADDR(.dynsym) + __vma_to_lma) {
__dynsym_start = .;
*(.dynsym)
__dynsym_end = .;
}
__dynsym_len = __dynsym_end - __dynsym_start;
- . = ALIGN(4);
-
- __dynstr_vma = .;
- __dynstr_lma = __dynstr_vma + __text_lma - __text_vma;
- .dynstr : AT(__dynstr_lma) {
+ .dynstr : AT(ADDR(.dynstr) + __vma_to_lma) {
__dynstr_start = .;
*(.dynstr)
__dynstr_end = .;
}
__dynstr_len = __dynstr_end - __dynstr_start;
- . = ALIGN(4);
-
- __gnu_hash_vma = .;
- __gnu_hash_lma = __gnu_hash_vma + __text_lma - __text_vma;
- .gnu.hash : AT(__gnu_hash_lma) {
+ .gnu.hash : AT(ADDR(.gnu.hash) + __vma_to_lma) {
__gnu_hash_start = .;
*(.gnu.hash)
__gnu_hash_end = .;
}
- . = ALIGN(4);
-
- __dynlink_vma = .;
- __dynlink_lma = __dynlink_vma + __text_lma - __text_vma;
- .dynlink : AT(__dynlink_lma) {
+ .dynlink : AT(ADDR(.dynlink) + __vma_to_lma) {
__dynlink_start = .;
*(.dynlink)
__dynlink_end = .;
}
- . = ALIGN(4);
-
- __got_vma = .;
- __got_lma = __got_vma + __text_lma - __text_vma;
- .got : AT(__got_lma) {
+ .got : AT(ADDR(.got) + __vma_to_lma) {
__got_start = .;
KEEP (*(.got.plt))
KEEP (*(.got))
__got_end = .;
}
- . = ALIGN(4);
-
- __dynamic_vma = .;
- __dynamic_lma = __dynamic_vma + __text_lma - __text_vma;
- .dynamic : AT(__dynamic_lma) {
+ .dynamic : AT(ADDR(.dynamic) + __vma_to_lma) {
__dynamic_start = .;
*(.dynamic)
__dynamic_end = .;
}
- . = ALIGN(32);
-
- __data_vma = .;
- __data_lma = __data_vma + __text_lma - __text_vma;
- .data : AT(__data_lma) {
+ .data : AT(ADDR(.data) + __vma_to_lma) {
__data_start = .;
*(.data)
*(.data.*)
--
2.13.3

View File

@ -0,0 +1,622 @@
From a14b1b3d3e375d2e8af8804171ef5e52574dbb2a Mon Sep 17 00:00:00 2001
From: "H. Peter Anvin" <hpa@zytor.com>
Date: Tue, 9 Feb 2016 18:15:50 -0800
Subject: [PATCH] core: Clean up the i386-bios build
Remove symbols and data structures not used in the i386-bios build,
and clean up the linker script so that most internal symbols are
HIDDEN.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Upstream: ff859050fa4e6535cae098dc35d88a265466448d
This patch fixes the following build failure with i386 binutils 2.28.1:
/builds/arnout/buildroot/output/host/bin/i586-buildroot-linux-uclibc-ld -Bsymbolic -pie -E --hash-style=gnu -T
/builds/arnout/buildroot/output/build/syslinux-6.03/core/i386/syslinux.ld -M -o ldlinux.elf ldlinux.o \
--start-group libcom32.a --whole-archive /builds/arnout/buildroot/output/build/syslinux-6.03/bios/com32/lib/libcom32core.a libldlinux.a --end-group -N
--no-omagic \
> ldlinux.map
/builds/arnout/buildroot/output/host/bin/i586-buildroot-linux-uclibc-ld: ldlinux.elf: Not enough room for program headers, try linking with -N
/builds/arnout/buildroot/output/host/bin/i586-buildroot-linux-uclibc-ld: final link failed: Bad value
/builds/arnout/buildroot/output/build/syslinux-6.03/core/Makefile:167: recipe for target 'ldlinux.elf' failed
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
core/extern.inc | 17 +--
core/i386/syslinux.ld | 287 +++++++++++++++++++++++++-------------------------
core/layout.inc | 11 --
3 files changed, 143 insertions(+), 172 deletions(-)
diff --git a/core/extern.inc b/core/extern.inc
index af8eb04c..ce4abfab 100644
--- a/core/extern.inc
+++ b/core/extern.inc
@@ -12,27 +12,17 @@
; hello.c
extern hello
- ;abort.c
- extern abort_load_new
-
; elflink/load_env32.c
extern load_env32, pm_env32_run
- ; memscan.c
- extern highmem_init
-
- extern linux_kernel
-
extern mp1, mp2, mp3, mp4, mp5
- extern hexdump, mydump
+ extern hexdump
extern mem_init
; fs.c
- extern pm_fs_init, pm_searchdir, getfssec, getfsbytes
- extern pm_mangle_name, pm_load_config
- extern pm_open_file, pm_close_file
+ extern pm_fs_init
extern SectorSize, SectorShift
; chdir.c
@@ -41,9 +31,6 @@
; readdir.c
extern opendir, readdir, closedir
- ; newconfig.c
- extern pm_is_config_file
-
; idle.c
extern __idle
diff --git a/core/i386/syslinux.ld b/core/i386/syslinux.ld
index 92b75b11..39198d75 100644
--- a/core/i386/syslinux.ld
+++ b/core/i386/syslinux.ld
@@ -1,7 +1,7 @@
/* -----------------------------------------------------------------------
*
* Copyright 2008-2009 H. Peter Anvin - All Rights Reserved
- * Copyright 2009 Intel Corporation; author: H. Peter Anvin
+ * Copyright 2009-2016 Intel Corporation; author: H. Peter Anvin
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
* ----------------------------------------------------------------------- */
/*
- * Linker script for the SYSLINUX core
+ * Linker script for the SYSLINUX core when built for i386-bios
*/
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
@@ -26,7 +26,7 @@ SECTIONS
{
/* Prefix structure for the compression program */
. = 0;
- __module_start = .;
+ HIDDEN(__module_start = ABSOLUTE(.));
.prefix : {
*(.prefix)
}
@@ -35,81 +35,82 @@ SECTIONS
. = 0x1000;
.earlybss (NOLOAD) : {
- __earlybss_start = .;
+ HIDDEN(__earlybss_start = .);
*(.earlybss)
- __earlybss_end = .;
+ HIDDEN(__earlybss_end = .);
}
- __earlybss_len = ABSOLUTE(__earlybss_end) - ABSOLUTE(__earlybss_start);
- __earlybss_dwords = (__earlybss_len + 3) >> 2;
+ HIDDEN(__earlybss_len = ABSOLUTE(__earlybss_end) - ABSOLUTE(__earlybss_start));
+ HIDDEN(__earlybss_dwords = (__earlybss_len + 3) >> 2);
. = ALIGN(4);
.bss16 (NOLOAD) : {
- __bss16_start = .;
+ HIDDEN(__bss16_start = .);
*(.bss16)
- __bss16_end = .;
+ HIDDEN(__bss16_end = .);
}
- __bss16_len = ABSOLUTE(__bss16_end) - ABSOLUTE(__bss16_start);
- __bss16_dwords = (__bss16_len + 3) >> 2;
+ HIDDEN(__bss16_len = ABSOLUTE(__bss16_end) - ABSOLUTE(__bss16_start));
+ HIDDEN(__bss16_dwords = (__bss16_len + 3) >> 2);
. = ALIGN(4);
.config : AT (__config_lma) {
- __config_start = .;
+ HIDDEN(__config_start = .);
*(.config)
- __config_end = .;
+ HIDDEN(__config_end = .);
}
- __config_len = ABSOLUTE(__config_end) - ABSOLUTE(__config_start);
- __config_dwords = (__config_len + 3) >> 2;
+ HIDDEN(__config_len = ABSOLUTE(__config_end) - ABSOLUTE(__config_start));
+ HIDDEN(__config_dwords = (__config_len + 3) >> 2);
/* Generated and/or copied code */
. = ALIGN(128); /* Minimum separation from mutable data */
.replacestub : AT (__replacestub_lma) {
- __replacestub_start = .;
+ HIDDEN(__replacestub_start = .);
*(.replacestub)
- __replacestub_end = .;
+ HIDDEN(__replacestub_end = .);
}
- __replacestub_len = ABSOLUTE(__replacestub_end) - ABSOLUTE(__replacestub_start);
- __replacestub_dwords = (__replacestub_len + 3) >> 2;
+ HIDDEN(__replacestub_len = ABSOLUTE(__replacestub_end) - ABSOLUTE(__replacestub_start));
+ HIDDEN(__replacestub_dwords = (__replacestub_len + 3) >> 2);
. = ALIGN(16);
- __gentextnr_lma = .;
+ HIDDEN(__gentextnr_lma = .);
.gentextnr : AT(__gentextnr_lma) {
- __gentextnr_start = .;
+ HIDDEN(__gentextnr_start = .);
*(.gentextnr)
- __gentextnr_end = .;
+ HIDDEN(__gentextnr_end = .);
}
- __gentextnr_len = ABSOLUTE(__gentextnr_end) - ABSOLUTE(__gentextnr_start);
- __gentextnr_dwords = (__gentextnr_len + 3) >> 2;
+ HIDDEN(__gentextnr_len = ABSOLUTE(__gentextnr_end) - ABSOLUTE(__gentextnr_start));
+ HIDDEN(__gentextnr_dwords = (__gentextnr_len + 3) >> 2);
. = STACK_BASE;
.stack16 : AT(STACK_BASE) {
- __stack16_start = .;
+ HIDDEN(__stack16_start = .);
. += STACK_LEN;
- __stack16_end = .;
+ HIDDEN(__stack16_end = .);
}
- __stack16_len = ABSOLUTE(__stack16_end) - ABSOLUTE(__stack16_start);
- __stack16_dwords = (__stack16_len + 3) >> 2;
+ HIDDEN(__stack16_len = ABSOLUTE(__stack16_end) - ABSOLUTE(__stack16_start));
+ HIDDEN(__stack16_dwords = (__stack16_len + 3) >> 2);
/* Initialized sections */
. = 0x7c00;
.init : {
FILL(0x90909090)
- __init_start = .;
+ HIDDEN(__init_start = .);
*(.init)
- __init_end = .;
+ HIDDEN(__init_end = .);
}
- __init_len = ABSOLUTE(__init_end) - ABSOLUTE(__init_start);
- __init_dwords = (__init_len + 3) >> 2;
+ HIDDEN(__init_len = ABSOLUTE(__init_end) - ABSOLUTE(__init_start));
+ HIDDEN(__init_dwords = (__init_len + 3) >> 2);
+ . = ALIGN(4);
.text16 : {
FILL(0x90909090)
- __text16_start = .;
+ HIDDEN(__text16_start = .);
*(.text16)
- __text16_end = .;
+ HIDDEN(__text16_end = .);
}
- __text16_len = ABSOLUTE(__text16_end) - ABSOLUTE(__text16_start);
- __text16_dwords = (__text16_len + 3) >> 2;
+ HIDDEN(__text16_len = ABSOLUTE(__text16_end) - ABSOLUTE(__text16_start));
+ HIDDEN(__text16_dwords = (__text16_len + 3) >> 2);
/*
* .textnr is used for 32-bit code that is used on the code
@@ -118,99 +119,92 @@ SECTIONS
. = ALIGN(16);
.textnr : {
FILL(0x90909090)
- __textnr_start = .;
+ HIDDEN(__textnr_start = .);
*(.textnr)
- __textnr_end = .;
+ HIDDEN(__textnr_end = .);
}
- __textnr_len = ABSOLUTE(__textnr_end) - ABSOLUTE(__textnr_start);
- __textnr_dwords = (__textnr_len + 3) >> 2;
+ HIDDEN(__textnr_len = ABSOLUTE(__textnr_end) - ABSOLUTE(__textnr_start));
+ HIDDEN(__textnr_dwords = (__textnr_len + 3) >> 2);
. = ALIGN(16);
- __bcopyxx_start = .;
+ HIDDEN(__bcopyxx_start = .);
.bcopyxx.text : {
FILL(0x90909090)
- __bcopyxx_text_start = .;
+ HIDDEN(__bcopyxx_text_start = .);
*(.bcopyxx.text)
- __bcopyxx_text_end = .;
+ HIDDEN(__bcopyxx_text_end = .);
}
- __bcopyxx_text_len = ABSOLUTE(__bcopyxx_text_end) - ABSOLUTE(__bcopyxx_text_start);
- __bcopyxx_text_dwords = (__bcopyxx_text_len + 3) >> 2;
+ HIDDEN(__bcopyxx_text_len = ABSOLUTE(__bcopyxx_text_end) - ABSOLUTE(__bcopyxx_text_start));
+ HIDDEN(__bcopyxx_text_dwords = (__bcopyxx_text_len + 3) >> 2);
.bcopyxx.data : {
- __bcopyxx_data_start = .;
+ HIDDEN(__bcopyxx_data_start = .);
*(.bcopyxx.text)
- __bcopyxx_data_end = .;
+ HIDDEN(__bcopyxx_data_end = .);
}
- __bcopyxx_data_len = ABSOLUTE(__bcopyxx_data_end) - ABSOLUTE(__bcopyxx_data_start);
- __bcopyxx_data_dwords = (__bcopyxx_data_len + 3) >> 2;
+ HIDDEN(__bcopyxx_data_len = ABSOLUTE(__bcopyxx_data_end) - ABSOLUTE(__bcopyxx_data_start));
+ HIDDEN(__bcopyxx_data_dwords = (__bcopyxx_data_len + 3) >> 2);
- __bcopyxx_end = .;
- __bcopyxx_len = ABSOLUTE(__bcopyxx_end) - ABSOLUTE(__bcopyxx_start);
- __bcopyxx_dwords = (__bcopyxx_len + 3) >> 2;
+ HIDDEN(__bcopyxx_end = .);
+ HIDDEN(__bcopyxx_len = ABSOLUTE(__bcopyxx_end) - ABSOLUTE(__bcopyxx_start));
+ HIDDEN(__bcopyxx_dwords = (__bcopyxx_len + 3) >> 2);
. = ALIGN(4);
.data16 : {
- __data16_start = .;
+ HIDDEN(__data16_start = .);
*(.data16)
- __data16_end = .;
+ HIDDEN(__data16_end = .);
}
- __data16_len = ABSOLUTE(__data16_end) - ABSOLUTE(__data16_start);
- __data16_dwords = (__data16_len + 3) >> 2;
+ HIDDEN(__data16_len = ABSOLUTE(__data16_end) - ABSOLUTE(__data16_start));
+ HIDDEN(__data16_dwords = (__data16_len + 3) >> 2);
. = ALIGN(4);
- __config_lma = .;
+ HIDDEN(__config_lma = ABSOLUTE(.));
. += SIZEOF(.config);
. = ALIGN(4);
- __replacestub_lma = .;
+ HIDDEN(__replacestub_lma = ABSOLUTE(.));
. += SIZEOF(.replacestub);
/* The 32-bit code loads above the non-progbits sections */
. = ALIGN(16);
- __pm_code_lma = .;
+ HIDDEN(__pm_code_lma = ABSOLUTE(.));
- __high_clear_start = .;
+ HIDDEN(__high_clear_start = .);
. = ALIGN(512);
.adv (NOLOAD) : {
- __adv_start = .;
+ HIDDEN(__adv_start = .);
*(.adv)
- __adv_end = .;
+ HIDDEN(__adv_end = .);
}
- __adv_len = ABSOLUTE(__adv_end) - ABSOLUTE(__adv_start);
- __adv_dwords = (__adv_len + 3) >> 2;
+ HIDDEN(__adv_len = ABSOLUTE(__adv_end) - ABSOLUTE(__adv_start));
+ HIDDEN(__adv_dwords = (__adv_len + 3) >> 2);
/* Late uninitialized sections */
. = ALIGN(4);
.uibss (NOLOAD) : {
- __uibss_start = .;
+ HIDDEN(__uibss_start = .);
*(.uibss)
- __uibss_end = .;
+ HIDDEN(__uibss_end = .);
}
- __uibss_len = ABSOLUTE(__uibss_end) - ABSOLUTE(__uibss_start);
- __uibss_dwords = (__uibss_len + 3) >> 2;
+ HIDDEN(__uibss_len = ABSOLUTE(__uibss_end) - ABSOLUTE(__uibss_start));
+ HIDDEN(__uibss_dwords = (__uibss_len + 3) >> 2);
- _end16 = .;
- __assert_end16 = ASSERT(_end16 <= 0x10000, "64K overflow");
+ HIDDEN(_end16 = .);
+ HIDDEN(__assert_end16 = ASSERT(_end16 <= 0x10000, "64K overflow"));
/*
* Special 16-bit segments
*/
-
- . = ALIGN(65536);
- .real_mode (NOLOAD) : {
- *(.real_mode)
- }
- real_mode_seg = core_real_mode >> 4;
-
. = ALIGN(65536);
.xfer_buf (NOLOAD) : {
*(.xfer_buf)
}
- xfer_buf_seg = core_xfer_buf >> 4;
+ HIDDEN(xfer_buf_seg = core_xfer_buf >> 4);
/*
* The auxilliary data segment is used by the 16-bit code
@@ -219,33 +213,33 @@ SECTIONS
. = ALIGN(16);
.auxseg (NOLOAD) : {
- __auxseg_start = .;
+ HIDDEN(__auxseg_start = .);
*(.auxseg)
- __auxseg_end = .;
+ HIDDEN(__auxseg_end = .);
}
- __auxseg_len = ABSOLUTE(__auxseg_end) - ABSOLUTE(__auxseg_start);
- __auxseg_dwords = (__auxseg_len + 3) >> 2;
- aux_seg = __auxseg_start >> 4;
+ HIDDEN(__auxseg_len = ABSOLUTE(__auxseg_end) - ABSOLUTE(__auxseg_start));
+ HIDDEN(__auxseg_dwords = (__auxseg_len + 3) >> 2);
+ HIDDEN(aux_seg = __auxseg_start >> 4);
/*
* Used to allocate lowmem buffers from 32-bit code
*/
.lowmem (NOLOAD) : {
- __lowmem_start = .;
+ HIDDEN(__lowmem_start = .);
*(.lowmem)
- __lowmem_end = .;
+ HIDDEN(__lowmem_end = .);
}
- __lowmem_len = ABSOLUTE(__lowmem_end) - ABSOLUTE(__lowmem_start);
- __lowmem_dwords = (__lowmem_len + 3) >> 2;
+ HIDDEN(__lowmem_len = ABSOLUTE(__lowmem_end) - ABSOLUTE(__lowmem_start));
+ HIDDEN(__lowmem_dwords = (__lowmem_len + 3) >> 2);
- __high_clear_end = .;
+ HIDDEN(__high_clear_end = .);
- __high_clear_len = ABSOLUTE(__high_clear_end) - ABSOLUTE(__high_clear_start);
- __high_clear_dwords = (__high_clear_len + 3) >> 2;
+ HIDDEN(__high_clear_len = ABSOLUTE(__high_clear_end) - ABSOLUTE(__high_clear_start));
+ HIDDEN(__high_clear_dwords = (__high_clear_len + 3) >> 2);
/* Start of the lowmem heap */
. = ALIGN(16);
- __lowmem_heap = .;
+ HIDDEN(__lowmem_heap = .);
/*
* 32-bit code. This is a hack for the moment due to the
@@ -254,136 +248,137 @@ SECTIONS
. = 0x100000;
- __pm_code_start = .;
- __vma_to_lma = __pm_code_lma - __pm_code_start;
+ HIDDEN(__pm_code_start = .);
+ HIDDEN(__vma_to_lma = ABSOLUTE(__pm_code_lma - __pm_code_start));
.text : AT(ADDR(.text) + __vma_to_lma) {
FILL(0x90909090)
- __text_start = .;
+ HIDDEN(__text_start = .);
*(.text)
*(.text.*)
- __text_end = .;
+ HIDDEN(__text_end = .);
}
.rodata : AT(ADDR(.rodata) + __vma_to_lma) {
- __rodata_start = .;
+ HIDDEN(__rodata_start = .);
*(.rodata)
*(.rodata.*)
- __rodata_end = .;
+ HIDDEN(__rodata_end = .);
}
.ctors : AT(ADDR(.ctors) + __vma_to_lma) {
- __ctors_start = .;
+ HIDDEN(__ctors_start = .);
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
- __ctors_end = .;
+ HIDDEN(__ctors_end = .);
}
.dtors : AT(ADDR(.dtors) + __vma_to_lma) {
- __dtors_start = .;
+ HIDDEN(__dtors_start = .);
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
- __dtors_end = .;
+ HIDDEN(__dtors_end = .);
}
.dynsym : AT(ADDR(.dynsym) + __vma_to_lma) {
- __dynsym_start = .;
- *(.dynsym)
- __dynsym_end = .;
+ HIDDEN(__dynsym_start = .);
+ KEEP (*(.dynsym))
+ HIDDEN(__dynsym_end = .);
}
- __dynsym_len = __dynsym_end - __dynsym_start;
+ HIDDEN(__dynsym_len = __dynsym_end - __dynsym_start);
.dynstr : AT(ADDR(.dynstr) + __vma_to_lma) {
- __dynstr_start = .;
- *(.dynstr)
- __dynstr_end = .;
+ HIDDEN(__dynstr_start = .);
+ KEEP (*(.dynstr))
+ HIDDEN(__dynstr_end = .);
}
- __dynstr_len = __dynstr_end - __dynstr_start;
+ HIDDEN(__dynstr_len = __dynstr_end - __dynstr_start);
.gnu.hash : AT(ADDR(.gnu.hash) + __vma_to_lma) {
- __gnu_hash_start = .;
- *(.gnu.hash)
- __gnu_hash_end = .;
+ HIDDEN(__gnu_hash_start = .);
+ KEEP (*(.gnu.hash))
+ HIDDEN(__gnu_hash_end = .);
}
.dynlink : AT(ADDR(.dynlink) + __vma_to_lma) {
- __dynlink_start = .;
- *(.dynlink)
- __dynlink_end = .;
+ HIDDEN(__dynlink_start = .);
+ KEEP (*(.dynlink))
+ HIDDEN(__dynlink_end = .);
}
.got : AT(ADDR(.got) + __vma_to_lma) {
- __got_start = .;
- KEEP (*(.got.plt))
+ HIDDEN(__got_start = .);
KEEP (*(.got))
- __got_end = .;
+ KEEP (*(.got.plt))
+ HIDDEN(__got_end = .);
}
.dynamic : AT(ADDR(.dynamic) + __vma_to_lma) {
- __dynamic_start = .;
- *(.dynamic)
- __dynamic_end = .;
+ HIDDEN(__dynamic_start = .);
+ KEEP (*(.dynamic))
+ HIDDEN(__dynamic_end = .);
}
.data : AT(ADDR(.data) + __vma_to_lma) {
- __data_start = .;
+ HIDDEN(__data_start = .);
*(.data)
*(.data.*)
- __data_end = .;
+ HIDDEN(__data_end = .);
}
- __pm_code_end = .;
- __pm_code_len = ABSOLUTE(__pm_code_end) - ABSOLUTE(__pm_code_start);
- __pm_code_dwords = (__pm_code_len + 3) >> 2;
+ HIDDEN(__pm_code_end = .);
+ HIDDEN(__pm_code_len = ABSOLUTE(__pm_code_end) - ABSOLUTE(__pm_code_start));
+ HIDDEN(__pm_code_dwords = (__pm_code_len + 3) >> 2);
. = ALIGN(128);
- __bss_vma = .;
- __bss_lma = .; /* Dummy */
+ HIDDEN(__bss_vma = .);
+ HIDDEN(__bss_lma = ABSOLUTE(.)); /* Dummy */
.bss (NOLOAD) : AT (__bss_lma) {
- __bss_start = .;
+ HIDDEN(__bss_start = .);
*(.bss)
*(.bss.*)
*(COMMON)
- __bss_end = .;
+ HIDDEN(__bss_end = .);
}
- __bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start);
- __bss_dwords = (__bss_len + 3) >> 2;
+ HIDDEN(__bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start));
+ HIDDEN(__bss_dwords = (__bss_len + 3) >> 2);
/* Very large objects which don't need to be zeroed */
- __hugebss_vma = .;
- __hugebss_lma = .; /* Dummy */
+ HIDDEN(__hugebss_vma = .);
+ HIDDEN(__hugebss_lma = ABSOLUTE(.)); /* Dummy */
.hugebss (NOLOAD) : AT (__hugebss_lma) {
- __hugebss_start = .;
+ HIDDEN(__hugebss_start = .);
*(.hugebss)
*(.hugebss.*)
- __hugebss_end = .;
+ HIDDEN(__hugebss_end = .);
}
- __hugebss_len = ABSOLUTE(__hugebss_end) - ABSOLUTE(__hugebss_start);
- __hugebss_dwords = (__hugebss_len + 3) >> 2;
+ HIDDEN(__hugebss_len = ABSOLUTE(__hugebss_end) - ABSOLUTE(__hugebss_start));
+ HIDDEN(__hugebss_dwords = (__hugebss_len + 3) >> 2);
/* XXX: This stack should be unified with the COM32 stack */
- __stack_vma = .;
- __stack_lma = .; /* Dummy */
+ HIDDEN(__stack_vma = .);
+ HIDDEN(__stack_lma = ABSOLUTE(.)); /* Dummy */
.stack (NOLOAD) : AT(__stack_lma) {
- __stack_start = .;
+ HIDDEN(__stack_start = .);
*(.stack)
- __stack_end = .;
+ HIDDEN(__stack_end = .);
}
- __stack_len = ABSOLUTE(__stack_end) - ABSOLUTE(__stack_start);
- __stack_dwords = (__stack_len + 3) >> 2;
+ HIDDEN(__stack_len = ABSOLUTE(__stack_end) - ABSOLUTE(__stack_start));
+ HIDDEN(__stack_dwords = (__stack_len + 3) >> 2);
- _end = .;
+ HIDDEN(_end = .);
/* COM32R and kernels are loaded after our own PM code */
. = ALIGN(65536);
- free_high_memory = .;
+ HIDDEN(free_high_memory = .);
/* Stuff we don't need... */
/DISCARD/ : {
*(.eh_frame)
+ *(.interp)
}
}
diff --git a/core/layout.inc b/core/layout.inc
index 53ca783d..635df537 100644
--- a/core/layout.inc
+++ b/core/layout.inc
@@ -139,17 +139,6 @@ serial_buf_size equ 4096 ; Should be a power of 2
core_xfer_buf resb 65536
;
-; Segment for the real mode code (needed as long as we have a in-kernel
-; loader and/or COM16 support.
-; One symbol for the segment number, one for the absolute address
-;
- extern real_mode_seg
- section .real_mode write nobits align=65536
- global core_real_mode:data hidden
-core_real_mode resb 65536
-comboot_seg equ real_mode_seg ; COMBOOT image loading zone
-
-;
; At the very end, the lowmem heap
;
extern __lowmem_heap
--
2.13.3

View File

@ -1,12 +1,13 @@
config BR2_TARGET_SYSLINUX
bool "syslinux"
depends on BR2_i386 || BR2_x86_64
select BR2_HOSTARCH_NEEDS_IA32_COMPILER
# Make sure at least one of the flavors is installed
select BR2_TARGET_SYSLINUX_ISOLINUX \
if !BR2_TARGET_SYSLINUX_PXELINUX && \
!BR2_TARGET_SYSLINUX_MBR && \
!BR2_TARGET_SYSLINUX_EFI
select BR2_PACKAGE_UTIL_LINUX
select BR2_PACKAGE_UTIL_LINUX_LIBUUID
help
The syslinux bootloader for x86 systems.
This includes: syslinux, pxelinux, extlinux.
@ -34,6 +35,7 @@ config BR2_TARGET_SYSLINUX_PXELINUX
config BR2_TARGET_SYSLINUX_MBR
bool "install mbr"
depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19615
select BR2_TARGET_SYSLINUX_LEGACY_BIOS
help
Install the legacy-BIOS 'mbr' image, to boot off a

View File

@ -8,12 +8,13 @@ SYSLINUX_VERSION = 6.03
SYSLINUX_SOURCE = syslinux-$(SYSLINUX_VERSION).tar.xz
SYSLINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/boot/syslinux
SYSLINUX_LICENSE = GPLv2+
SYSLINUX_LICENSE = GPL-2.0+
SYSLINUX_LICENSE_FILES = COPYING
SYSLINUX_INSTALL_IMAGES = YES
SYSLINUX_DEPENDENCIES = host-nasm host-util-linux host-upx
# host-util-linux needed to provide libuuid when building host tools
SYSLINUX_DEPENDENCIES = host-nasm host-upx util-linux host-util-linux
ifeq ($(BR2_TARGET_SYSLINUX_LEGACY_BIOS),y)
SYSLINUX_TARGET += bios
@ -51,21 +52,36 @@ SYSLINUX_POST_PATCH_HOOKS += SYSLINUX_CLEANUP
# and the internal zlib should take precedence so -I shouldn't
# be used.
define SYSLINUX_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE1) CC="$(HOSTCC) -idirafter $(HOST_DIR)/usr/include $(HOST_LDFLAGS)" \
AR="$(HOSTAR)" $(SYSLINUX_EFI_ARGS) -C $(@D) $(SYSLINUX_TARGET)
$(TARGET_MAKE_ENV) $(MAKE1) \
CC="$(TARGET_CC)" \
LD="$(TARGET_LD)" \
NASM="$(HOST_DIR)/bin/nasm" \
CC_FOR_BUILD="$(HOSTCC)" \
CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
$(SYSLINUX_EFI_ARGS) -C $(@D) $(SYSLINUX_TARGET)
endef
# While the actual bootloader is compiled for the target, several
# utilities for installing the bootloader are meant for the host.
# Repeat the target, otherwise syslinux will try to build everything
# Repeat CC and AR, since syslinux really wants to check them at
# install time
# Repeat LD (and CC) as it happens that some binaries are linked at
# install-time.
define SYSLINUX_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE1) CC="$(HOSTCC) -idirafter $(HOST_DIR)/usr/include $(HOST_LDFLAGS)" \
AR="$(HOSTAR)" $(SYSLINUX_EFI_ARGS) INSTALLROOT=$(HOST_DIR) \
$(TARGET_MAKE_ENV) $(MAKE1) $(SYSLINUX_EFI_ARGS) INSTALLROOT=$(HOST_DIR) \
CC="$(TARGET_CC)" \
LD="$(TARGET_LD)" \
-C $(@D) $(SYSLINUX_TARGET) install
endef
# That 'syslinux' binary is an installer actually built for the target.
# However, buildroot makes no usage of it, so better delete it than have it
# installed at the wrong place
define SYSLINUX_POST_INSTALL_CLEANUP
rm -rf $(HOST_DIR)/bin/syslinux
endef
SYSLINUX_POST_INSTALL_TARGET_HOOKS += SYSLINUX_POST_INSTALL_CLEANUP
SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_ISOLINUX) += bios/core/isolinux.bin
SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_PXELINUX) += bios/core/pxelinux.bin
SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_MBR) += bios/mbr/mbr.bin
@ -81,7 +97,7 @@ define SYSLINUX_INSTALL_IMAGES_CMDS
$(INSTALL) -D -m 0755 $(@D)/$$i $(BINARIES_DIR)/syslinux/$${i##*/}; \
done
for i in $(SYSLINUX_C32); do \
$(INSTALL) -D -m 0755 $(HOST_DIR)/usr/share/syslinux/$${i} \
$(INSTALL) -D -m 0755 $(HOST_DIR)/share/syslinux/$${i} \
$(BINARIES_DIR)/syslinux/$${i}; \
done
endef

View File

@ -0,0 +1,7 @@
config BR2_TARGET_TS4800_MBRBOOT
bool "ts4800-mbrboot"
depends on BR2_ARM_CPU_ARMV7A
help
First level bootloader for TS4800 board
https://github.com/embeddedarm/ts4800-mbrboot

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