| # Copyright 1999-2010 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| inherit eutils toolchain-funcs linux-mod |
| |
| DESCRIPTION="kernel drivers for intel ixp4xx systems (like the NSLU2)" |
| HOMEPAGE="http://www.intel.com/design/network/products/npfamily/ixp420.htm" |
| SRC_URI="ftp://aiedownload.intel.com/df-support/9515/eng/IPL_ixp400AccessLibrary-2_1.zip |
| ftp://aiedownload.intel.com/df-support/9517/eng/IPL_ixp400NpeLibrary-2_1.zip |
| ftp://aiedownload.intel.com/df-support/9519/eng/GPL_ixp400LinuxEthernetDriverPatch-1_5.zip" |
| |
| LICENSE="ixp4xx" |
| SLOT="0" |
| KEYWORDS="-* arm" |
| IUSE="" |
| RESTRICT="mirror" |
| |
| DEPEND="app-arch/unzip" |
| RDEPEND="" |
| |
| S=${WORKDIR}/ixp400_xscale_sw |
| |
| src_unpack() { |
| unpack ${A} |
| epatch "${FILESDIR}"/2.1/*.patch |
| } |
| |
| src_compile() { |
| cd ixp400_xscale_sw |
| local ix_target |
| [[ $(printf "#include <endian.h>\n#if __BYTE_ORDER == __LITTLE_ENDIAN\nlittle\n#else\nbig\n#endif\n" | $(tc-getCPP) - | tail -n 1) == "little" ]] \ |
| && ix_target=linuxle \ |
| || ix_target=linuxbe |
| make \ |
| LINUX_CROSS_COMPILE=${CHOST}- \ |
| ${ix_target}_KERNEL_DIR=${KERNEL_DIR} \ |
| IX_XSCALE_SW=${PWD} \ |
| IX_TARGET=${ix_target} \ |
| IX_DEVICE=ixp42X \ |
| IX_PLATFORM=ixdp42x \ |
| COMPONENTS="qmgr npeMh npeDl ethAcc ethDB ethMii featureCtrl osServices oslinux" \ |
| IX_INCLUDE_MICROCODE=1 \ |
| ixp400.${KV_OBJ} ixp400_eth.${KV_OBJ} \ |
| || die "failed to build kernel modules" |
| cp lib/${ix_target}/ixp400.${KV_OBJ} lib/${ix_target}/ixp400_eth.${KV_OBJ} . || die |
| } |
| |
| src_install() { |
| MODULE_NAMES="ixp400(kernel/drivers/ixp400:${S}) ixp400_eth(kernel/drivers/net:${S})" |
| linux-mod_src_install |
| } |