Merge branch 'feature/toolchain-update'

This commit is contained in:
Ricardo Martins 2015-02-08 20:03:21 +00:00
commit fae2ab9bb4
49 changed files with 3760 additions and 634 deletions

1
.gitignore vendored
View File

@ -6,3 +6,4 @@
/lctr-b1xx
/lctr-b2xx
/qemu-i686
/lauv-aux

View File

@ -0,0 +1,6 @@
cfg_target_canonical="armv7-$cfg_glued_vendor-linux-gnueabihf"
cfg_target_linux='arm'
cfg_target_uboot_arch='arm'
cfg_target_gcc_flags='-O2 -pipe -funit-at-a-time -mcpu=cortex-a8 -mtune=cortex-a8 -mfloat-abi=hard -mfpu=vfpv3'
cfg_target_gcc_configure_flags='--with-arch=armv7-a --with-cpu=cortex-a8 --with-tune=cortex-a8 --with-fpu=vfpv3 --with-float=hard'
cfg_target_ar_flags='elf32-littlearm'

View File

@ -2,4 +2,4 @@ cfg_target_canonical="i586-$cfg_glued_vendor-linux-gnu"
cfg_target_linux='x86'
cfg_target_gcc_configure_flags='--with-arch=i586 --with-cpu=i586 --with-tune=i586'
cfg_target_gcc_flags='-O2 -pipe -march=i586 -funit-at-a-time'
cfg_target_eglibc_configure_flags='--with-cpu=i586'
cfg_target_glibc_configure_flags='--with-cpu=i586'

View File

@ -2,5 +2,5 @@ cfg_target_canonical="i686-$cfg_glued_vendor-linux-gnu"
cfg_target_linux='x86'
cfg_target_gcc_flags='-O2 -pipe -march=i686 -funit-at-a-time'
cfg_target_gcc_configure_flags='--with-cpu=i686'
cfg_target_eglibc_configure_flags='--with-cpu=i686'
cfg_target_glibc_configure_flags='--with-cpu=i686'
cfg_target_linux_kernel='arch/x86/boot/bzImage'

View File

@ -2,4 +2,4 @@ cfg_target_canonical="mipsisa32r2-$cfg_glued_vendor-linux-gnu"
cfg_target_linux='mips'
cfg_target_gcc_flags='-O2 -pipe -funit-at-a-time -mabi=32 -mips32r2 -mtune=mips32r2 -msoft-float'
cfg_target_gcc_configure_flags='--with-abi=32 --with-tune=mips32r2 --with-float=soft'
cfg_target_eglibc_configure_flags='--without-fp'
cfg_target_glibc_configure_flags='--without-fp'

View File

@ -4,6 +4,5 @@ requires=\
(
'base/host'
'gcc/cross'
'eglibc/locales'
'gdb/cross'
)

View File

@ -4,5 +4,6 @@ requires=\
(
'base/host'
'base/cross'
'iana-etc/default'
'filesystem/target'
)

View File

@ -1,6 +1,6 @@
version=\
(
"2.22"
'2.25'
)
url=\
@ -10,30 +10,26 @@ url=\
md5=\
(
"ee0f10756c84979622b992a4a61ea3f5"
'd9f3303f802a5b6b0bb73a335ab89d66'
)
maintainer=\
(
"Ricardo Martins <rasm@fe.up.pt>"
'Ricardo Martins <rasm@fe.up.pt>'
)
build_dir=$pkg_var
configure()
{
../binutils-$version/configure $extra_flags \
--prefix=$cfg_dir_toolchain \
--target=${cfg_target_canonical} \
--host=${cfg_host_canonical} \
--build=${cfg_host_canonical} \
--with-sysroot=$cfg_dir_toolchain_sysroot \
--with-mpfr=${cfg_dir_toolchain} \
--with-gmp=${cfg_dir_toolchain} \
--with-mpc=${cfg_dir_toolchain} \
--disable-nls \
--disable-werror \
--disable-multilib
"../binutils-$version/configure" \
--prefix="$cfg_dir_toolchain" \
--target="$cfg_target_canonical" \
--host="$cfg_host_canonical" \
--build="$cfg_host_canonical" \
--with-sysroot="$cfg_dir_toolchain_sysroot" \
--disable-multilib \
--disable-nls
}
build()
@ -43,6 +39,5 @@ build()
host_install()
{
$cmd_make install
rm -rf $cfg_dir_toolchain/{info,man}
$cmd_make install-strip
}

View File

@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.22.1
# Fri Dec 12 15:41:26 2014
# Sun Feb 8 18:17:19 2015
#
CONFIG_HAVE_DOT_CONFIG=y
@ -598,7 +598,7 @@ CONFIG_PIVOT_ROOT=y
# CONFIG_SETARCH is not set
# CONFIG_SWAPONOFF is not set
# CONFIG_FEATURE_SWAPON_PRI is not set
# CONFIG_SWITCH_ROOT is not set
CONFIG_SWITCH_ROOT=y
CONFIG_UMOUNT=y
CONFIG_FEATURE_UMOUNT_ALL=y

View File

@ -1,6 +1,6 @@
version=\
(
'2012.55'
'2015.67'
)
url=\
@ -10,7 +10,7 @@ url=\
md5=\
(
'8c784baec3054cdb1bb4bfa792c87812'
'e967e320344cd4bfebe321e3ab8514d6'
)
maintainer=\
@ -43,7 +43,7 @@ configure()
--target="$cfg_target_canonical" \
--host="$cfg_target_canonical" \
--build="$cfg_host_canonical" \
--with-zlib="$cfg_dir_toolchain"
--with-zlib="$cfg_dir_toolchain_sysroot/usr"
}
build()

View File

@ -1,30 +0,0 @@
diff --git a/Makefile.in b/Makefile.in
index cec35f1..46a9365 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -56,7 +56,7 @@ HEADERS=options.h dbutil.h session.h packet.h algo.h ssh.h buffer.h kex.h \
loginrec.h atomicio.h x11fwd.h agentfwd.h tcpfwd.h compat.h \
listener.h fake-rfc2553.h
-dropbearobjs=$(COMMONOBJS) $(CLISVROBJS) $(SVROBJS) @CRYPTLIB@
+dropbearobjs=$(COMMONOBJS) $(CLISVROBJS) $(SVROBJS)
dbclientobjs=$(COMMONOBJS) $(CLISVROBJS) $(CLIOBJS)
dropbearkeyobjs=$(COMMONOBJS) $(KEYOBJS)
dropbearconvertobjs=$(COMMONOBJS) $(CONVERTOBJS)
@@ -169,14 +169,14 @@ scp: $(SCPOBJS) $(HEADERS) Makefile
# multi-binary compilation.
MULTIOBJS=
ifeq ($(MULTI),1)
- MULTIOBJS=dbmulti.o $(sort $(foreach prog, $(PROGRAMS), $($(prog)objs))) @CRYPTLIB@
+ MULTIOBJS=dbmulti.o $(sort $(foreach prog, $(PROGRAMS), $($(prog)objs)))
CFLAGS+=$(addprefix -DDBMULTI_, $(PROGRAMS)) -DDROPBEAR_MULTI
endif
dropbearmulti: multilink
multibinary: $(HEADERS) $(MULTIOBJS) $(LIBTOM_DEPS) Makefile
- $(CC) $(LDFLAGS) -o dropbearmulti$(EXEEXT) $(MULTIOBJS) $(LIBS)
+ $(CC) $(LDFLAGS) -o dropbearmulti$(EXEEXT) $(MULTIOBJS) $(LIBS) @CRYPTLIB@
multilink: multibinary $(addprefix link, $(PROGRAMS))

View File

@ -1,199 +0,0 @@
/*
* timepps.h -- PPS API main header
*
* Copyright (C) 2005-2007 Rodolfo Giometti <giometti@linux.it>
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef _SYS_TIMEPPS_H_
#define _SYS_TIMEPPS_H_
#include <unistd.h>
#include <errno.h>
#include <sys/time.h>
#include <sys/ioctl.h>
#include <linux/types.h>
#include <linux/pps.h>
#define LINUXPPS 1 /* signal we are using LinuxPPS */
/*
* New data structures
*/
struct ntp_fp {
unsigned int integral;
unsigned int fractional;
};
union pps_timeu {
struct timespec tspec;
struct ntp_fp ntpfp;
unsigned long longpad[3];
};
struct pps_info {
unsigned long assert_sequence; /* seq. num. of assert event */
unsigned long clear_sequence; /* seq. num. of clear event */
union pps_timeu assert_tu; /* time of assert event */
union pps_timeu clear_tu; /* time of clear event */
int current_mode; /* current mode bits */
};
struct pps_params {
int api_version; /* API version # */
int mode; /* mode bits */
union pps_timeu assert_off_tu; /* offset compensation for assert */
union pps_timeu clear_off_tu; /* offset compensation for clear */
};
typedef int pps_handle_t; /* represents a PPS source */
typedef unsigned long pps_seq_t; /* sequence number */
typedef struct ntp_fp ntp_fp_t; /* NTP-compatible time stamp */
typedef union pps_timeu pps_timeu_t; /* generic data type for time stamps */
typedef struct pps_info pps_info_t;
typedef struct pps_params pps_params_t;
#define assert_timestamp assert_tu.tspec
#define clear_timestamp clear_tu.tspec
#define assert_timestamp_ntpfp assert_tu.ntpfp
#define clear_timestamp_ntpfp clear_tu.ntpfp
#define assert_offset assert_off_tu.tspec
#define clear_offset clear_off_tu.tspec
#define assert_offset_ntpfp assert_off_tu.ntpfp
#define clear_offset_ntpfp clear_off_tu.ntpfp
/*
* The PPS API
*/
static __inline int time_pps_create(int source, pps_handle_t *handle)
{
int ret;
struct pps_kparams dummy;
if (!handle) {
errno = EINVAL;
return -1;
}
/* First we check if current device is a valid PPS one by
* doing a dummy PPS_GETPARAMS...
*/
ret = ioctl(source, PPS_GETPARAMS, &dummy);
if (ret) {
errno = EOPNOTSUPP;
return -1;
}
/* ... then since in LinuxPPS there are no differences between a
* "PPS source" and a "PPS handle", we simply return the same value.
*/
*handle = source;
return 0;
}
static __inline int time_pps_destroy(pps_handle_t handle)
{
return close(handle);
}
static __inline int time_pps_getparams(pps_handle_t handle,
pps_params_t *ppsparams)
{
int ret;
struct pps_kparams __ppsparams;
ret = ioctl(handle, PPS_GETPARAMS, &__ppsparams);
ppsparams->api_version = __ppsparams.api_version;
ppsparams->mode = __ppsparams.mode;
ppsparams->assert_off_tu.tspec.tv_sec = __ppsparams.assert_off_tu.sec;
ppsparams->assert_off_tu.tspec.tv_nsec = __ppsparams.assert_off_tu.nsec;
ppsparams->clear_off_tu.tspec.tv_sec = __ppsparams.clear_off_tu.sec;
ppsparams->clear_off_tu.tspec.tv_nsec = __ppsparams.clear_off_tu.nsec;
return ret;
}
static __inline int time_pps_setparams(pps_handle_t handle,
const pps_params_t *ppsparams)
{
struct pps_kparams __ppsparams;
__ppsparams.api_version = ppsparams->api_version;
__ppsparams.mode = ppsparams->mode;
__ppsparams.assert_off_tu.sec = ppsparams->assert_off_tu.tspec.tv_sec;
__ppsparams.assert_off_tu.nsec = ppsparams->assert_off_tu.tspec.tv_nsec;
__ppsparams.clear_off_tu.sec = ppsparams->clear_off_tu.tspec.tv_sec;
__ppsparams.clear_off_tu.nsec = ppsparams->clear_off_tu.tspec.tv_nsec;
return ioctl(handle, PPS_SETPARAMS, &__ppsparams);
}
/* Get capabilities for handle */
static __inline int time_pps_getcap(pps_handle_t handle, int *mode)
{
return ioctl(handle, PPS_GETCAP, mode);
}
static __inline int time_pps_fetch(pps_handle_t handle, const int tsformat,
pps_info_t *ppsinfobuf,
const struct timespec *timeout)
{
struct pps_fdata __fdata;
int ret;
/* Sanity checks */
if (tsformat != PPS_TSFMT_TSPEC) {
errno = EINVAL;
return -1;
}
if (timeout) {
__fdata.timeout.sec = timeout->tv_sec;
__fdata.timeout.nsec = timeout->tv_nsec;
__fdata.timeout.flags = ~PPS_TIME_INVALID;
} else
__fdata.timeout.flags = PPS_TIME_INVALID;
ret = ioctl(handle, PPS_FETCH, &__fdata);
ppsinfobuf->assert_sequence = __fdata.info.assert_sequence;
ppsinfobuf->clear_sequence = __fdata.info.clear_sequence;
ppsinfobuf->assert_tu.tspec.tv_sec = __fdata.info.assert_tu.sec;
ppsinfobuf->assert_tu.tspec.tv_nsec = __fdata.info.assert_tu.nsec;
ppsinfobuf->clear_tu.tspec.tv_sec = __fdata.info.clear_tu.sec;
ppsinfobuf->clear_tu.tspec.tv_nsec = __fdata.info.clear_tu.nsec;
ppsinfobuf->current_mode = __fdata.info.current_mode;
return ret;
}
static __inline int time_pps_kcbind(pps_handle_t handle,
const int kernel_consumer,
const int edge, const int tsformat)
{
/* LinuxPPS doesn't implement kernel consumer feature */
errno = EOPNOTSUPP;
return -1;
}
#endif /* _SYS_TIMEPPS_H_ */

View File

@ -1,39 +0,0 @@
source $pkg_common
requires=\
(
'eglibc/cross'
)
configure()
{
"../eglibc-$version/localedef/configure" \
--prefix="$cfg_dir_toolchain_sysroot/usr" \
--with-glibc=."./eglibc-$version/libc"
}
build()
{
$cmd_make
}
host_install()
{
$cmd_mkdir "$cfg_dir_toolchain_sysroot/usr/lib/locale" &&
if [ -f "$cfg_dir_toolchain_sysroot/usr/share/i18n/charmaps/UTF-8.gz" ]; then
gunzip -f "$cfg_dir_toolchain_sysroot/usr/share/i18n/charmaps/UTF-8.gz"
fi &&
if [ -f "$cfg_dir_toolchain_sysroot/usr/share/i18n/charmaps/ISO-8859-1.gz" ]; then
gunzip -f "$cfg_dir_toolchain_sysroot/usr/share/i18n/charmaps/ISO-8859-1.gz"
fi &&
./localedef -v -c -i pt_PT -f UTF-8 pt_PT
./localedef -v -c -i ru_RU -f UTF-8 ru_RU
true
}
target_install()
{
$cmd_mkdir "$cfg_dir_rootfs/usr/lib/locale" &&
cp -v "$cfg_dir_toolchain_sysroot/usr/lib/locale/locale-archive" "$cfg_dir_rootfs/usr/lib/locale"
}

View File

@ -1,24 +0,0 @@
diff -Nru eglibc-2.15-16611/libc/include/libc-symbols.h eglibc-2.15-16611-rasm/libc/include/libc-symbols.h
--- eglibc-2.15-16611/libc/include/libc-symbols.h 2012-01-09 21:16:30.000000000 +0000
+++ eglibc-2.15-16611-rasm/libc/include/libc-symbols.h 2012-01-10 23:37:36.863616530 +0000
@@ -647,7 +647,7 @@
# define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
# define libc_hidden_def(name) hidden_def (name)
# define libc_hidden_weak(name) hidden_weak (name)
-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
+# define libc_hidden_nolink(name, version) hidden_def (name)
# define libc_hidden_ver(local, name) hidden_ver (local, name)
# define libc_hidden_data_def(name) hidden_data_def (name)
# define libc_hidden_data_weak(name) hidden_data_weak (name)
diff -Nru eglibc-2.15-16611/libc/sunrpc/Makefile eglibc-2.15-16611-rasm/libc/sunrpc/Makefile
--- eglibc-2.15-16611/libc/sunrpc/Makefile 2012-01-09 21:16:30.000000000 +0000
+++ eglibc-2.15-16611-rasm/libc/sunrpc/Makefile 2012-01-10 23:38:14.574076188 +0000
@@ -55,7 +55,7 @@
des_crypt.h)
headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
$(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
-headers = rpc/netdb.h
+headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc)
generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
$(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
generated-dirs := rpcsvc

View File

@ -1,15 +0,0 @@
diff -Nru eglibc-2.15-16611/libc/nis/Makefile eglibc-2.15-16611-rasm/libc/nis/Makefile
--- eglibc-2.15-16611/libc/nis/Makefile 2012-01-09 21:16:30.000000000 +0000
+++ eglibc-2.15-16611-rasm/libc/nis/Makefile 2012-01-10 23:40:26.409018009 +0000
@@ -25,9 +25,9 @@
aux := nis_hash
+headers := $(wildcard rpcsvc/*.[hx])
distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
- nisplus-parser.h nis_xdr.h nss \
- $(wildcard rpcsvc/*.[hx])
+ nisplus-parser.h nis_xdr.h nss
# These are the databases available for the nis (and perhaps later nisplus)
# service. This must be a superset of the services in nss.

View File

@ -1,107 +0,0 @@
diff -Nru eglibc-2.15.17955/libc/elf/dl-close.c eglibc-2.15.17955.rasm/libc/elf/dl-close.c
--- eglibc-2.15.17955/libc/elf/dl-close.c 2012-04-07 20:58:55.000000000 +0100
+++ eglibc-2.15.17955.rasm/libc/elf/dl-close.c 2012-10-23 22:33:33.351846745 +0100
@@ -119,17 +119,8 @@
if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
|| dl_close_state != not_pending)
{
- if (map->l_direct_opencount == 0)
- {
- if (map->l_type == lt_loaded)
- dl_close_state = rerun;
- else if (map->l_type == lt_library)
- {
- struct link_map **oldp = map->l_initfini;
- map->l_initfini = map->l_orig_initfini;
- _dl_scope_free (oldp);
- }
- }
+ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
+ dl_close_state = rerun;
/* There are still references to this object. Do nothing more. */
if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0))
diff -Nru eglibc-2.15.17955/libc/elf/dl-deps.c eglibc-2.15.17955.rasm/libc/elf/dl-deps.c
--- eglibc-2.15.17955/libc/elf/dl-deps.c 2012-04-07 20:58:55.000000000 +0100
+++ eglibc-2.15.17955.rasm/libc/elf/dl-deps.c 2012-10-23 22:38:17.124208092 +0100
@@ -689,6 +689,7 @@
l_initfini[nlist] = NULL;
atomic_write_barrier ();
map->l_initfini = l_initfini;
+ map->l_free_initfini = 1;
if (l_reldeps != NULL)
{
atomic_write_barrier ();
@@ -697,7 +698,7 @@
_dl_scope_free (old_l_reldeps);
}
if (old_l_initfini != NULL)
- map->l_orig_initfini = old_l_initfini;
+ _dl_scope_free (old_l_initfini);
if (errno_reason)
_dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
diff -Nru eglibc-2.15.17955/libc/elf/dl-libc.c eglibc-2.15.17955.rasm/libc/elf/dl-libc.c
--- eglibc-2.15.17955/libc/elf/dl-libc.c 2012-04-07 20:58:55.000000000 +0100
+++ eglibc-2.15.17955.rasm/libc/elf/dl-libc.c 2012-10-23 22:39:02.388449874 +0100
@@ -270,13 +270,13 @@
for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
{
- /* Remove all additional names added to the objects. */
for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
{
struct libname_list *lnp = l->l_libname->next;
l->l_libname->next = NULL;
+ /* Remove all additional names added to the objects. */
while (lnp != NULL)
{
struct libname_list *old = lnp;
@@ -284,6 +284,10 @@
if (! old->dont_free)
free (old);
}
+
+ /* Free the initfini dependency list. */
+ if (l->l_free_initfini)
+ free (l->l_initfini);
}
if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
diff -Nru eglibc-2.15.17955/libc/elf/rtld.c eglibc-2.15.17955.rasm/libc/elf/rtld.c
--- eglibc-2.15.17955/libc/elf/rtld.c 2012-04-07 20:58:55.000000000 +0100
+++ eglibc-2.15.17955.rasm/libc/elf/rtld.c 2012-10-23 22:39:30.692348894 +0100
@@ -2277,6 +2277,8 @@
lnp->dont_free = 1;
lnp = lnp->next;
}
+ /* Also allocated with the fake malloc(). */
+ l->l_free_initfini = 0;
if (l != &GL(dl_rtld_map))
_dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
diff -Nru eglibc-2.15.17955/libc/include/link.h eglibc-2.15.17955.rasm/libc/include/link.h
--- eglibc-2.15.17955/libc/include/link.h 2012-04-07 20:58:55.000000000 +0100
+++ eglibc-2.15.17955.rasm/libc/include/link.h 2012-10-23 22:40:31.526900046 +0100
@@ -192,6 +192,9 @@
during LD_TRACE_PRELINKING=1
contains any DT_SYMBOLIC
libraries. */
+ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
+ freed, ie. not allocated with
+ the dummy malloc in ld.so. */
/* Collected information about own RPATH directories. */
struct r_search_path_struct l_rpath_dirs;
@@ -240,9 +243,6 @@
/* List of object in order of the init and fini calls. */
struct link_map **l_initfini;
- /* The init and fini list generated at startup, saved when the
- object is also loaded dynamically. */
- struct link_map **l_orig_initfini;
/* List of the dependencies introduced through symbol binding. */
struct link_map_reldeps

View File

@ -1,12 +0,0 @@
diff -Naur eglibc-2.15-16526.orig/config.make.in eglibc-2.15-16526/config.make.in
--- eglibc-2.15-16526.orig/libc/config.make.in 2012-07-24 17:49:58.000000000 -0400
+++ eglibc-2.15-16526/libc/config.make.in 2012-07-24 17:51:01.000000000 -0400
@@ -5,7 +5,7 @@
release = @RELEASE@
# Installation prefixes.
-install_root = $(DESTDIR)
+install_root ?= $(DESTDIR)
prefix = @prefix@
exec_prefix = @exec_prefix@
datadir = @datadir@

View File

@ -1,4 +0,0 @@
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol
ntp 123/tcp # Network Time Protocol
ntp 123/udp # Network Time Protocol

View File

@ -14,6 +14,10 @@ fi
sysinit()
{
if ! [ -c /dev/null ]; then
mount -t devtmpfs devtmpfs /dev
fi
if [ -f /.reboot ]; then
mount -t proc proc /proc
mount -o remount,rw /
@ -23,36 +27,33 @@ sysinit()
return 0
fi
# Mount pseudo-filesystems.
# Mount pseudo-filesystems.
mount -t sysfs sysfs /sys &&
mount -t proc proc /proc &&
mkdir /dev/shm /dev/pts &&
mkdir -p /dev/shm /dev/pts &&
mount -t tmpfs -o size="$cfg_tmpfs_size" tmpfs /dev/shm &&
mount -t devpts devpts /dev/pts &&
# Register mdev as hotplug event handler.
# Register mdev as hotplug event handler.
echo >/dev/mdev.seq &&
echo /sbin/mdev > /proc/sys/kernel/hotplug &&
# Update ld cache, populate /dev.
# mount -o remount,rw / &&
# Update ld cache, populate /dev.
/sbin/mdev -s &&
# /sbin/ldconfig &&
# mount -o remount,ro / &&
# Set minimum free kbytes.
# Set minimum free kbytes.
echo "$cfg_min_free_kbytes" > /proc/sys/vm/min_free_kbytes &&
# Set hostname.
# Set hostname.
hostname "$cfg_hostname" &&
# Loopback device.
# Loopback device.
ifconfig lo 127.0.0.1 netmask 255.0.0.0 up &&
# Load modules.
# Load modules.
modprobe -a $cfg_modules $cfg_modules1
# Start services.
# Start services.
for service in $cfg_services0 $cfg_services1 $cfg_services2; do
. /etc/rc.d/$service
start

View File

@ -21,6 +21,7 @@ target_install()
ln -fs dev/shm "$cfg_dir_rootfs"/tmp &&
ln -fs ../tmp "$cfg_dir_rootfs"/var/tmp &&
ln -fs ../tmp "$cfg_dir_rootfs"/var/run &&
ln -fs ../tmp "$cfg_dir_rootfs"/var/lib &&
ln -fs ../tmp "$cfg_dir_rootfs"/var/log &&
ln -fs ../tmp "$cfg_dir_rootfs"/var/lock &&
ln -fs /sbin/init "$cfg_dir_rootfs"/init &&

View File

@ -1,6 +1,6 @@
version=\
(
'4.8.2'
'4.9.2'
)
url=\
@ -10,7 +10,7 @@ url=\
md5=\
(
'a3d7d63b9cb6b6ea049469a0c4a43c9d'
'4df8ee253b7f3863ad0b86359cd39c43'
)
build_dir=$pkg_var

View File

@ -2,7 +2,7 @@ source $pkg_common
requires=\
(
'eglibc/cross'
'glibc/cross'
)
configure()
@ -11,6 +11,7 @@ configure()
"../gcc-$version/configure" $cfg_target_gcc_configure_flags \
--target="$cfg_target_canonical" \
--prefix="$cfg_dir_toolchain" \
--with-build-sysroot="$cfg_dir_toolchain_sysroot" \
--with-sysroot="$cfg_dir_toolchain_sysroot" \
--with-mpfr="$cfg_dir_toolchain" \
--with-gmp="$cfg_dir_toolchain" \

View File

@ -2,7 +2,7 @@ source $pkg_common
requires=\
(
'eglibc/headers'
'glibc/headers'
)
configure()
@ -10,6 +10,7 @@ configure()
MAKEINFO='/bin/true' \
"../gcc-$version/configure" $cfg_target_gcc_configure_flags \
--prefix="$cfg_dir_toolchain" \
--with-build-sysroot="$cfg_dir_toolchain_sysroot" \
--with-sysroot="$cfg_dir_toolchain_sysroot" \
--target="$cfg_target_canonical" \
--host="$cfg_host_canonical" \

View File

@ -1,14 +1,14 @@
version=\
(
'7.7.1'
'7.8.2'
)
url=\
(
"http://ftp.gnu.org/gnu/gdb/gdb-$version.tar.bz2"
"http://ftp.gnu.org/gnu/gdb/gdb-$version.tar.xz"
)
md5=\
(
'77b20b515e7c25f032cb9732a66620fe'
'a80cf252ed2e775d4e4533341bbf2459'
)

View File

@ -8,13 +8,12 @@ requires=\
configure()
{
cd "$pkg_build_dir" &&
CFLAGS=-I"$cfg_dir_toolchain/include" \
LDFLAGS=-L"$cfg_dir_toolchain/lib" \
"../gdb-$version/configure" \
--prefix="$cfg_dir_toolchain" \
--target="$cfg_target_canonical" \
--host="$cfg_host_canonical" \
--build="$cfg_host_canonical" \
--with-build-sysroot="$cfg_dir_toolchain_sysroot" \
--with-sysroot="$cfg_dir_toolchain_sysroot" \
--disable-nls \
--disable-tui
@ -28,5 +27,4 @@ build()
host_install()
{
$cmd_make -C "$pkg_build_dir" install
rm -rf "$cfg_dir_toolchain"/{info,man}
}

View File

@ -1,16 +1,16 @@
version=\
(
'2.15.17955'
'2.21'
)
url=\
(
"http://www.lsts.pt/glued/eglibc-$version.tar.bz2"
"http://ftp.gnu.org/pub/gnu/glibc/glibc-$version.tar.xz"
)
md5=\
(
'0694f304863e3c97562857388137a83e'
'9cb398828e8f84f57d1f7d5588cf40cd'
)
maintainer=\
@ -22,11 +22,9 @@ build_dir=$pkg_var
post_unpack()
{
ln -fs ../ports ../eglibc-$version/libc/ports
patches=$(ls "$pkg_dir"/patches/*.patch)
cd ../eglibc-$version
cd ../glibc-$version
if [ -n "$patches" ]; then
cat $patches | patch -p1
fi
@ -41,17 +39,24 @@ configure()
CC="$cfg_dir_toolchain/bin/$cfg_target_canonical-gcc" \
CXX="$cfg_dir_toolchain/bin/$cfg_target_canonical-g++" \
CFLAGS=$cfg_target_gcc_flags \
"../eglibc-$version/libc/configure" \
$cfg_target_eglibc_configure_flags \
"../glibc-$version/configure" \
$cfg_target_glibc_configure_flags \
--prefix=/usr \
--with-headers="$cfg_dir_toolchain_sysroot/usr/include" \
--with-build-sysroot="$cfg_dir_toolchain_sysroot" \
--with-sysroot="$cfg_dir_toolchain_sysroot" \
--build="$cfg_host_canonical" \
--host="$cfg_target_canonical" \
--disable-multilib \
--disable-profile \
--without-gd \
--without-cvs \
--enable-add-ons \
--with-tls \
--enable-kernel=2.6.32 \
--disable-nls
--disable-nls \
--enable-static-nss \
--disable-werror \
--enable-obsolete-rpc \
--enable-bind-now
}

View File

@ -7,13 +7,12 @@ requires=\
build()
{
$cmd_make -j1
$cmd_make
}
host_install()
{
$cmd_make install_root="$cfg_dir_toolchain_sysroot" -j1 install &&
cp "$pkg_dir"/files/timepps.h "$cfg_dir_toolchain_sysroot/usr/include"
$cmd_make install_root="$cfg_dir_toolchain_sysroot" install
}
target_install()

View File

@ -21,4 +21,6 @@ EOF
$cmd_make csu/subdir_lib &&
cp csu/crt1.o csu/crti.o csu/crtn.o "$cfg_dir_toolchain_sysroot/usr/lib" &&
$cmd_target_cc -nostdlib -nostartfiles -shared -x c /dev/null -o "$cfg_dir_toolchain_sysroot/usr/lib/libc.so"
$cmd_mkdir "$cfg_dir_toolchain_sysroot/usr/include/gnu" &&
touch "$cfg_dir_toolchain_sysroot/usr/include/gnu/stubs.h"
}

View File

@ -0,0 +1,29 @@
version=\
(
'2.30'
)
url=\
(
"http://sethwklein.net/iana-etc-$version.tar.bz2"
)
md5=\
(
'3ba3afb1d1b261383d247f46cb135ee8'
)
maintainer=\
(
'Ricardo Martins <rasm@fe.up.pt>'
)
build()
{
$cmd_make STRIP=yes
}
target_install()
{
$cmd_make DESTDIR="$cfg_dir_rootfs" install
}

View File

@ -0,0 +1,56 @@
version=\
(
'0.2.5'
)
url=\
(
"http://downloads.sourceforge.net/libtirpc/$version/libtirpc-$version.tar.bz2"
)
md5=\
(
'8cd41a5ef5a9b50d0fb6abb98af15368'
)
maintainer=\
(
'Ricardo Martins <rasm@fe.up.pt>'
)
configure()
{
"../libtirpc-$version/configure" \
--target="$cfg_target_canonical" \
--host="$cfg_target_canonical" \
--build="$cfg_host_canonical" \
--prefix="$cfg_dir_toolchain_sysroot/usr" \
--disable-gssapi \
--disable-ipv6 \
--disable-static \
--enable-shared
}
build()
{
$cmd_make
}
host_install()
{
$cmd_make install
}
target_install()
{
$cmd_mkdir "$cfg_dir_rootfs/etc"
$cmd_cp "doc/netconfig" "$cfg_dir_rootfs/etc/netconfig"
for f in "$cfg_dir_toolchain_sysroot/usr/lib/"libtirpc*so*; do
if [ -L "$f" ]; then
cp -vd "$f" "$cfg_dir_rootfs/lib"
else
$cmd_target_strip -v "$f" -o "$cfg_dir_rootfs/lib/$(basename "$f")"
fi
done
}

View File

@ -1,6 +1,6 @@
version=\
(
'3.10.27'
'3.14.31'
)
url=\
@ -10,7 +10,7 @@ url=\
md5=\
(
'4edaaea57dc940969c54ac249e49f7e7'
'f37ac2b5675ac59e46103f81e5f31624'
)
maintainer=\

View File

@ -55,6 +55,13 @@ configure()
cp "$cfg_dir_system/cfg/linux-${version}.cfg" .config &&
if [ "$cfg_dir_system/files/initramfs_init.sh" ]; then
$cmd_mkdir initramfs &&
$cmd_cp "$pkg_dir/files/initramfs.conf" . &&
$cmd_cp "$cfg_dir_system/files/initramfs_init.sh" initramfs/init.sh &&
$cmd_cp "$cfg_dir_rootfs/bin/busybox" initramfs/busybox
fi
yes '' | $cmd_make \
CROSS_COMPILE=${cfg_target_canonical}- \
ARCH=${cfg_target_linux} \

View File

@ -0,0 +1,21 @@
dir /bin 755 0 0
dir /dev 755 0 0
dir /proc 755 0 0
dir /sys 755 0 0
dir /mnt 755 0 0
nod /dev/console 644 0 0 c 5 1
nod /dev/null 644 0 0 c 1 3
slink /bin/echo busybox 777 0 0
slink /bin/sed busybox 777 0 0
slink /bin/tr busybox 777 0 0
slink /bin/ls busybox 777 0 0
slink /bin/sh busybox 777 0 0
slink /bin/mount busybox 777 0 0
slink /bin/umount busybox 777 0 0
slink /bin/usleep busybox 777 0 0
slink /bin/switch_root busybox 777 0 0
file /bin/busybox initramfs/busybox 755 0 0
file /init initramfs/init.sh 755 0 0

View File

@ -0,0 +1,55 @@
version=\
(
'1.3.1'
)
url=\
(
"http://downloads.sourceforge.net/nfs/$version/nfs-utils-$version.tar.bz2"
)
md5=\
(
'97f157f954edb6d4d4385a0c5986f36f'
)
maintainer=\
(
'Ricardo Martins <rasm@fe.up.pt>'
)
requires=\
(
'libtirpc/default'
)
configure()
{
"../nfs-utils-$version/configure" \
--target="$cfg_target_canonical" \
--host="$cfg_target_canonical" \
--build="$cfg_host_canonical" \
--prefix="$cfg_dir_rootfs/usr" \
--disable-gss \
--disable-svcgss \
--disable-ipv6 \
--disable-tirpc \
--disable-uuid \
--disable-nfsv4 \
--without-tcp-wrappers
}
build()
{
$cmd_make
}
target_install()
{
$cmd_target_strip -v "utils/mount/mount.nfs" -o "$cfg_dir_rootfs/usr/bin/mount.nfs"
ln -fs mount.nfs "$cfg_dir_rootfs/usr/bin/unmount.nfs"
$cmd_target_strip -v "utils/exportfs/exportfs" -o "$cfg_dir_rootfs/usr/bin/exportfs"
$cmd_target_strip -v "utils/mountd/mountd" -o "$cfg_dir_rootfs/usr/bin/rpc.mountd"
$cmd_target_strip -v "utils/nfsd/nfsd" -o "$cfg_dir_rootfs/usr/bin/rpc.nfsd"
$cmd_target_strip -v "utils/statd/statd" -o "$cfg_dir_rootfs/usr/bin/rpc.statd"
}

View File

@ -0,0 +1,51 @@
start()
{
mkdir -p /var/lib/nfs
if ! [ -d /var/lib/nfs ]; then
echo "ERROR: failed to create data folder."
return 1
fi
/usr/bin/rpcbind
if [ $? -ne 0 ]; then
echo "ERROR: failed to start rpcbind."
return 1
fi
/usr/bin/rpc.statd
if [ $? -ne 0 ]; then
echo "ERROR: failed to start rpc.statd."
return 1
fi
/usr/bin/rpc.nfsd
if [ $? -ne 0 ]; then
echo "ERROR: failed to start rpc.nfsd."
return 1
fi
/usr/bin/exportfs -ra
if [ $? -ne 0 ]; then
echo "ERROR: failed to create filesystem table."
return 1
fi
/usr/bin/rpc.mountd
if [ $? -ne 0 ]; then
echo "ERROR: failed to start rpc.mountd."
return 1
fi
/usr/bin/exportfs -ra
if [ $? -ne 0 ]; then
echo "ERROR: failed to export filesystems."
return 1
fi
}
stop()
{
killall rpc.mountd
killall rpc.statd
killall rpcbind
}

View File

@ -0,0 +1,62 @@
version=\
(
'0.2.2'
)
url=\
(
"http://downloads.sourceforge.net/rpcbind/rpcbind-$version.tar.bz2"
)
md5=\
(
'8acf839bfef2364a05fbd6be5f8edf9a'
)
maintainer=\
(
'Ricardo Martins <rasm@fe.up.pt>'
)
requires=\
(
'libtirpc/default'
)
post_unpack()
{
sed -i "/servname/s:rpcbind:sunrpc:" src/rpcbind.c &&
sed -i "/error = getaddrinfo/s:rpcbind:sunrpc:" src/rpcinfo.c
}
configure()
{
export PKG_CONFIG_PATH="$cfg_dir_toolchain_sysroot/usr/lib/pkgconfig"
"../rpcbind-$version/configure" \
--target="$cfg_target_canonical" \
--host="$cfg_target_canonical" \
--build="$cfg_host_canonical" \
--prefix="$cfg_dir_toolchain_sysroot/usr" \
--with-rpcuser=root \
--without-systemdsystemunitdir
}
build()
{
$cmd_make
}
host_install()
{
$cmd_make install
}
target_install()
{
$cmd_mkdir "$cfg_dir_rootfs/usr/bin"
for f in rpcbind rpcinfo; do
$cmd_target_strip "$f" -o "$cfg_dir_rootfs/usr/bin/$f"
done
}

View File

@ -1,6 +1,6 @@
version=\
(
"1.7.2.1"
"1.7.3.0"
)
url=\
@ -10,7 +10,7 @@ url=\
md5=\
(
"7ddfea7e9e85f868670f94d3ea08358b"
"b607edb65bc6c57f4a43f06247504274"
)
maintainer=\
@ -18,19 +18,29 @@ maintainer=\
"Ricardo Martins <rasm@fe.up.pt>"
)
post_unpack()
{
patches=$(ls "$pkg_dir"/patches/*.patch)
cd "../socat-$version"
if [ -n "$patches" ]; then
cat $patches | patch -p1
fi
}
configure()
{
export sc_cv_sys_crdly_shift=9
export sc_cv_sys_tabdly_shift=11
export sc_cv_sys_csize_shift=4
export ac_cv_ispeed_offset=13
../socat-$version/configure \
"../socat-$version/configure" \
--prefix="$cfg_dir_toolchain_sysroot/usr" \
--disable-static \
--enable-shared \
--target=$cfg_target_canonical \
--host=$cfg_target_canonical \
--build=$cfg_host_canonical
--build=$cfg_host_canonical \
--disable-static \
--enable-shared
}
build()

File diff suppressed because it is too large Load Diff

17
systems/lauv-aux/config Normal file
View File

@ -0,0 +1,17 @@
cfg_architecture='cortex-a8-hardfp'
cfg_storage='data0:ext4:/opt'
cfg_modules=''
cfg_services0='network dropbear storage upgrade syslog ptpd'
cfg_services2='dune'
cfg_packages='u-boot dropbear rsync busybox e2fsprogs ptpd am33xx-cm3/host linux'
cfg_target_linux_kernel='arch/arm/boot/zImage'
cfg_target_linux_dtb='arch/arm/boot/dts/am335x-lauv-aux.dtb'
cfg_target_uboot_config='am335x_bbb'
cfg_ptpd_interface='eth0'
cfg_terminal='ttyO0'
cfg_partitions=\
(
x-boot boot0 512B 32MiB
root root0 32MiB 544MiB
data data0 544MiB -1
)

View File

@ -0,0 +1,23 @@
#!/bin/sh
export PATH=/bin
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t devtmpfs devtmpfs /dev
while [ 1 ]; do
dev="$(ls /sys/class/mmc_host/mmc?/mmc?:0001/block 2> /dev/null)"
if [ -n "$dev" ]; then
mount -o ro -t ext2,relatime "/dev/${dev}p2" /mnt && break
fi
usleep 100000
done
umount /sys /proc /dev
exec switch_root /mnt /sbin/init
echo "ERROR: failed to switch root"
exec /bin/sh

View File

@ -0,0 +1,6 @@
ttyO0 root:root 660 >terminal
ttyO1 root:root 660 >uart/1
ttyO2 root:root 660 >uart/2
ttyO4 root:root 660 >uart/4
ttyO5 root:root 660 >uart/5
ttyUSB[0-9]* root:root 660 */sbin/mdev-ttyusb

View File

@ -0,0 +1,5 @@
cfg_hostname='lauv-aux-testbed'
cfg_eth_ext_ip='10.0.200.22'
cfg_eth_ext_mk='255.255.0.0'
cfg_eth_ext_gw='10.0.0.1'
cfg_ptpd_interface='eth0'

View File

@ -0,0 +1,92 @@
diff -Nru linux-3.13.1/arch/arm/boot/dts/Makefile linux-3.13.1.rasm/arch/arm/boot/dts/Makefile
--- linux-3.13.1/arch/arm/boot/dts/Makefile 2014-01-29 13:06:37.000000000 +0000
+++ linux-3.13.1.rasm/arch/arm/boot/dts/Makefile 2014-02-01 06:53:43.968486026 +0000
@@ -198,6 +198,7 @@
am335x-evmsk.dtb \
am335x-bone.dtb \
am335x-boneblack.dtb \
+ am335x-lauv-aux.dtb \
am335x-nano.dtb \
am335x-base0033.dtb \
am3517-evm.dtb \
diff -Nru linux-3.13.1/arch/arm/boot/dts/am335x-lauv-aux.dts linux-3.13.1.rasm/arch/arm/boot/dts/am335x-lauv-aux.dts
--- linux-3.13.1/arch/arm/boot/dts/am335x-lauv-aux.dts 1970-01-01 01:00:00.000000000 +0100
+++ linux-3.13.1.rasm/arch/arm/boot/dts/am335x-lauv-aux.dts 2014-02-01 06:51:48.273816483 +0000
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2014 Universidade do Porto - Faculdade de Engenharia
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "am335x-boneblack.dts"
+
+/ {
+ /* No need for HDMI. */
+ hdmi {
+ status = "disabled";
+ };
+
+ /* PPS. */
+ pps {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pps_pins>;
+ compatible = "pps-gpio";
+ status = "okay";
+ gpios = <&gpio2 13 0>;
+ assert-rising-edge;
+ };
+};
+
+&am33xx_pinmux {
+ pinctrl-names = "default";
+ pinctrl-0 = <&board_pins>;
+
+ /* User space. */
+ board_pins: pinmux_board_pins {
+ /* lcd_data6 / gpio2_12 / GPIO 76 */
+ pinctrl-single,pins = <0xb8 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)>;
+ };
+
+ /* PPS. */
+ pps_pins: pinmux_pps_pins {
+ /* lcd_data7 / gpio2_13 */
+ pinctrl-single,pins = <0xbc (PIN_INPUT_PULLDOWN | MUX_MODE7)>;
+ };
+
+ /* UART1. */
+ uart1_pins: pinmux_uart1_pins {
+ pinctrl-single,pins = <
+ /* uart1_rxd */
+ 0x180 (PIN_INPUT_PULLUP | MUX_MODE0)
+ /* uart1_txd */
+ 0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)
+ >;
+ };
+
+ /* UART2. */
+ uart2_pins: pinmux_uart2_pins {
+ pinctrl-single,pins = <
+ /* uart2_rxd */
+ 0x150 (PIN_INPUT_PULLUP | MUX_MODE1)
+ /* uart2_txd */
+ 0x154 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)
+ >;
+ };
+};
+
+/* Enable UART1. */
+&uart1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart1_pins>;
+ status = "okay";
+};
+
+/* Enable UART2 (actual UART3). */
+&uart2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart2_pins>;
+ status = "okay";
+};

View File

@ -0,0 +1,136 @@
From 83ad4305da1128111b2f063e41a740d1e19836c8 Mon Sep 17 00:00:00 2001
From: Jay at Control Module Industries <cmidroid@gmail.com>
Date: Tue, 1 Jul 2014 14:49:52 -0500
Subject: [PATCH 7/7] cpsw: search for phy
I have encountered the same issue(s) on A6A boards.
I couldn't find a patch, so I wrote this patch to update the device tree
in the davinci_mdio driver in the 3.15.1 tree, it seems to correct it. I
would welcome any input on a different approach.
https://groups.google.com/d/msg/beagleboard/9mctrG26Mc8/SRlnumt0LoMJ
Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
---
drivers/net/ethernet/ti/davinci_mdio.c | 83 ++++++++++++++++++++++++++++++++++
1 file changed, 83 insertions(+)
diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c
index 0cca9de..0197edd 100644
--- a/drivers/net/ethernet/ti/davinci_mdio.c
+++ b/drivers/net/ethernet/ti/davinci_mdio.c
@@ -39,6 +39,7 @@
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/pinctrl/consumer.h>
+#include <linux/phy.h>
/*
* This timeout definition is a worst-case ultra defensive measure against
@@ -97,6 +98,10 @@ struct davinci_mdio_data {
unsigned long access_time; /* jiffies */
};
+#if IS_ENABLED(CONFIG_OF)
+static void davinci_mdio_update_dt_from_phymask(u32 phy_mask);
+#endif
+
static void __davinci_mdio_reset(struct davinci_mdio_data *data)
{
u32 mdio_in, div, mdio_out_khz, access_time;
@@ -150,6 +155,11 @@ static int davinci_mdio_reset(struct mii_bus *bus)
/* restrict mdio bus to live phys only */
dev_info(data->dev, "detected phy mask %x\n", ~phy_mask);
phy_mask = ~phy_mask;
+
+ #if IS_ENABLED(CONFIG_OF)
+ davinci_mdio_update_dt_from_phymask(phy_mask);
+ #endif
+
} else {
/* desperately scan all phys */
dev_warn(data->dev, "no live phy, scanning all\n");
@@ -312,6 +322,79 @@ static int davinci_mdio_probe_dt(struct mdio_platform_data *data,
}
#endif
+#if IS_ENABLED(CONFIG_OF)
+static void davinci_mdio_update_dt_from_phymask(u32 phy_mask)
+{
+ int i, len;
+ u32 addr;
+ __be32 *old_phy_p, *phy_id_p;
+ struct property *phy_id_property = NULL;
+ struct device_node *node_p, *slave_p;
+
+ addr = 0;
+
+ for (i = 0; i < PHY_MAX_ADDR; i++) {
+ if ((phy_mask & (1 << i)) == 0) {
+ addr = (u32) i;
+ break;
+ }
+ }
+
+ for_each_compatible_node(node_p, NULL, "ti,cpsw") {
+ for_each_node_by_name(slave_p, "slave") {
+
+ old_phy_p = (__be32 *) of_get_property(slave_p, "phy_id", &len);
+
+ if (len != (sizeof(__be32 *) * 2))
+ goto err_out;
+
+ if (old_phy_p) {
+
+ phy_id_property = kzalloc(sizeof(*phy_id_property), GFP_KERNEL);
+
+ if (! phy_id_property)
+ goto err_out;
+
+ phy_id_property->length = len;
+ phy_id_property->name = kstrdup("phy_id", GFP_KERNEL);
+ phy_id_property->value = kzalloc(len, GFP_KERNEL);
+
+ if (! phy_id_property->name)
+ goto err_out;
+
+ if (! phy_id_property->value)
+ goto err_out;
+
+ memcpy(phy_id_property->value, old_phy_p, len);
+
+ phy_id_p = (__be32 *) phy_id_property->value + 1;
+
+ *phy_id_p = cpu_to_be32(addr);
+
+ of_update_property(slave_p, phy_id_property);
+
+ ++addr;
+ }
+ }
+ }
+
+ return;
+
+err_out:
+
+ if (phy_id_property) {
+ if (phy_id_property->name)
+ kfree(phy_id_property->name);
+
+ if (phy_id_property->value)
+ kfree(phy_id_property->value);
+
+ if (phy_id_property)
+ kfree(phy_id_property);
+ }
+}
+#endif
+
static int davinci_mdio_probe(struct platform_device *pdev)
{
struct mdio_platform_data *pdata = dev_get_platdata(&pdev->dev);
--
2.0.0

View File

@ -0,0 +1,151 @@
diff --git a/boards.cfg b/boards.cfg
index 1ba2081..08dc221 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -1218,3 +1218,4 @@ Orphan powerpc ppc4xx - sandburst metrobox
# The following were move to "Orphan" in September, 2013
Orphan arm arm1136 mx31 - imx31_phycore imx31_phycore_eet imx31_phycore:IMX31_PHYCORE_EET (resigned) Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Orphan arm arm1136 mx31 freescale mx31ads mx31ads - (resigned) Guennadi Liakhovetski <g.liakhovetski@gmx.de>
+Active arm armv7 am33xx ti am335x am335x_bbb am335x_bbb:SERIAL1,CONS_INDEX=1 Ricardo Martins <rasm@fe.up.pt>
diff --git a/include/configs/am335x_bbb.h b/include/configs/am335x_bbb.h
new file mode 100644
index 0000000..9e00817
--- /dev/null
+++ b/include/configs/am335x_bbb.h
@@ -0,0 +1,136 @@
+/*
+ * am335x_evm.h
+ *
+ * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * 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 the Free Software Foundation version 2.
+ *
+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
+ * kind, whether express or implied; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef __CONFIG_AM335X_EVM_H
+#define __CONFIG_AM335X_EVM_H
+
+#include <configs/ti_am335x_common.h>
+
+#ifdef CONFIG_BOOTDELAY
+# undef CONFIG_BOOTLDELAY
+#endif
+#define CONFIG_BOOTDELAY 2
+#define CONFIG_AUTOBOOT_KEYED 1
+#define CONFIG_AUTOBOOT_DELAY_STR "uboot"
+#define CONFIG_AUTOBOOT_PROMPT \
+ "autoboot in %d seconds\n",bootdelay
+
+#undef CONFIG_BOOTM_NETBSD
+#undef CONFIG_BOOTM_PLAN9
+#undef CONFIG_BOOTM_RTEMS
+#undef CONFIG_BOOTM_VXWORKS
+#undef CONFIG_BOOTP_DNS
+#undef CONFIG_BOOTP_DNS2
+#undef CONFIG_BOOTP_SEND_HOSTNAME
+#undef CONFIG_CMD_ASKENV
+#undef CONFIG_CMD_BDI
+#undef CONFIG_CMD_BOOTD
+#undef CONFIG_CMD_CRC32
+#undef CONFIG_CMD_DFU
+#undef CONFIG_CMD_DHCP
+#undef CONFIG_CMD_EDITENV
+#undef CONFIG_CMD_EDITENV
+#undef CONFIG_CMD_EXPORTENV
+#undef CONFIG_CMD_FPGA
+#undef CONFIG_CMD_ITEST
+#undef CONFIG_CMD_LOADB
+#undef CONFIG_CMD_LOADS
+#undef CONFIG_CMD_MEMORY
+#undef CONFIG_CMD_MISC
+#undef CONFIG_CMD_NET
+#undef CONFIG_CMD_NFS
+#undef CONFIG_CMD_PING
+#undef CONFIG_CMD_SETGETDCR
+#undef CONFIG_CMD_SPI
+#undef CONFIG_DRIVER_TI_CPSW
+#undef CONFIG_MII
+#undef CONFIG_MUSB_GADGET
+#undef CONFIG_MUSB_HOST
+#undef CONFIG_NAND
+#undef CONFIG_OMAP3_SPI
+#undef CONFIG_SPI
+#undef CONFIG_SPI_BOOT
+#undef CONFIG_SPL_ETH_SUPPORT
+#undef CONFIG_SPL_NAND_LOAD
+#undef CONFIG_SPL_NAND_SUPPORT
+#undef CONFIG_SPL_SPI_FLASH_SUPPORT
+#undef CONFIG_SPL_SPI_LOAD
+#undef CONFIG_SPL_SPI_SUPPORT
+#undef CONFIG_SPL_YMODEM_SUPPORT
+#undef CONFIG_SYS_LONGHELP
+
+#define MACH_TYPE_TIAM335EVM 3589 /* Until the next sync */
+#define CONFIG_MACH_TYPE MACH_TYPE_TIAM335EVM
+
+/* Clock Defines */
+#define V_OSCK 24000000 /* Clock output from T2 */
+#define V_SCLK (V_OSCK)
+
+/* Custom script for NOR */
+#define CONFIG_SYS_LDSCRIPT "board/ti/am335x/u-boot.lds"
+
+/* Always 128 KiB env size */
+#define CONFIG_ENV_SIZE (128 << 10)
+
+#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
+
+#ifndef CONFIG_SPL_BUILD
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ "loadaddr=0x80200000\0" \
+ "fdtaddr=0x80F80000\0" \
+ "console=ttyO0,115200n8 ro quiet\0"
+
+#define CONFIG_BOOTCOMMAND \
+ "setenv bootargs \"console=${console} ro\";" \
+ "mmc dev 1; " \
+ "ext4load mmc 1:2 ${loadaddr} /boot/kernel; " \
+ "ext4load mmc 1:2 ${fdtaddr} /boot/board.dtb; " \
+ "bootz ${loadaddr} - ${fdtaddr}; "
+
+#endif
+
+/* NS16550 Configuration */
+#define CONFIG_SYS_NS16550_COM1 0x44e09000 /* Base EVM has UART0 */
+#define CONFIG_SYS_NS16550_COM2 0x48022000 /* UART1 */
+#define CONFIG_SYS_NS16550_COM3 0x48024000 /* UART2 */
+#define CONFIG_SYS_NS16550_COM4 0x481a6000 /* UART3 */
+#define CONFIG_SYS_NS16550_COM5 0x481a8000 /* UART4 */
+#define CONFIG_SYS_NS16550_COM6 0x481aa000 /* UART5 */
+#define CONFIG_BAUDRATE 115200
+
+#define CONFIG_CMD_EEPROM
+#define CONFIG_ENV_EEPROM_IS_ON_I2C
+#define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* Main EEPROM */
+#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2
+#define CONFIG_SYS_I2C_MULTI_EEPROMS
+
+/* PMIC support */
+#define CONFIG_POWER_TPS65217
+#define CONFIG_POWER_TPS65910
+
+/* SPL */
+#define CONFIG_SPL_POWER_SUPPORT
+
+
+/* Bootcount using the RTC block */
+#define CONFIG_BOOTCOUNT_LIMIT
+#define CONFIG_BOOTCOUNT_AM33XX
+
+/* SPI flash. */
+#define CONFIG_SPL_LDSCRIPT "$(CPUDIR)/am33xx/u-boot-spl.lds"
+
+#define CONFIG_ENV_IS_NOWHERE
+
+#endif /* ! __CONFIG_AM335X_EVM_H */