blob: d45c9464b29c1fb5114d2c7e6e6585909d792ea1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
DEFAULT_PREFERENCE = "-1"
# Intel ixp4xx access library software. Note that this has an Intel
# license which restricts its use.
HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp420.htm"
LICENSE = "http://www.intel.com/design/network/swsup/np_sla/ixp400.htm"
LICENSE_HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp425swr1.htm"
# You must download the following software to your OpenEmbedded downloads
# directory before using this package:
#
# BSD_ixp400AccessLibrary-2_1.zip
# BSD_ixp400AccessLibrary-2_1_1.zip
# IPL_ixp400NpeLibrary-2_1.zip
#
# To do this go to the LICENSE_HOMEPAGE above, register/login (using a
# web browser which is supported by the login page), this will give you
# access to the web page from which you can download the software - you
# need the: "Intel® IXP400 Software and RedBoot* Boot Loader" and, from
# this the "Intel Hardware Access Software" and "NPE Microcode" (both
# versions 2.1, encryption is not required.)
#
# Store the files with the names given below in your downloads directory
# and store the 32 character md5sum of the file in a file of the same
# name with the additional extension .md5:
#
# BSD_ixp400AccessLibrary-2_1.zip.md5
# BSD_ixp400AccessLibrary-2_1_1.zip.md5
# IPL_ixp400NpeLibrary-2_1.zip.md5
#
SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/BSD_ixp400AccessLibrary-2_1.zip"
SRC_URI += "http://www.intel.com/Please-Read-The-BB-File/BSD_ixp400AccessLibrary-2_1_1.zip"
SRC_URI += "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400NpeLibrary-2_1.zip"
SRC_URI += "file://bit-macro.patch;patch=1"
SRC_URI += "file://le.patch;patch=1"
SRC_URI += "file://mii-debug.patch;patch=1"
SRC_URI += "file://rtl8201-support.patch;patch=1"
SRC_URI += "file://oe-makefile.patch;patch=1"
SRC_URI += "file://livelock.patch;patch=1"
SRC_URI += "file://module-param.patch;patch=1"
SRC_URI += "file://undefined-attribute.patch;patch=1"
DEPENDS = "ixp-osal"
S = "${WORKDIR}/ixp400_xscale_sw"
FILE_PR = "r2"
COMPATIBLE_HOST = "^arm.*-linux.*"
COMPATIBLE_MACHINE = "(nslu2|ixp4xx)"
inherit module
do_pre_patch () {
cd ${WORKDIR} ; patch -p0 < BSD_ixp400AccessLibrary-2_1_1.patch
}
addtask pre_patch before do_patch
IX_TARGET = "linux${SITEINFO_ENDIANESS}"
IX_ENSURE = ""
#IX_ENSURE = "IX_OSAL_ENSURE_ON=1"
OSAL_PATH = "lib/ixp425/linux/${IX_TARGET}"
# This is a somewhat arbitrary choice:
OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal"
# COMPONENTS: do not build all the components, this just creates a
# ridiculously large module which duplicates functionality in the
# available Linux drivers.
COMPONENTS = "qmgr npeMh npeDl ethAcc ethDB ethMii featureCtrl osServices oslinux"
CODELETS_COMPONENTS = ""
# NOTE: IX_INCLUDE_MICROCODE causes the microcode to be included in
# the ixp4xx-csr module, this *requires* the IPL_ixp400NpeLibrary-2_1.zip
# to be added to the SRC_URI - see above.
EXTRA_OEMAKE = "'AR=${AR}' \
'IX_LINUXVER=2.6' \
'IX_XSCALE_SW=${S}' \
'IX_TARGET=${IX_TARGET}' \
'${IX_TARGET}_COMPONENTS=${COMPONENTS}' \
'${IX_TARGET}_CODELETS_COMPONENTS=${CODELETS_COMPONENTS}' \
'IX_DEVICE=ixp42X' \
'IX_BUILD_MICROCODE=1' \
'IX_UTOPIAMODE=0' \
'IX_MPHYSINGLEPORT=1' \
${IX_ENSURE} \
'LINUX_SRC=${STAGING_KERNEL_DIR}' \
'LINUX_CROSS_COMPILE=${HOST_PREFIX}' \
'OSAL_DIR=${OSAL_DIR}' \
'OSAL_IMAGE=${OSAL_DIR}/${OSAL_PATH}/libosal.a' \
'OSAL_MODULE=${OSAL_DIR}/${OSAL_PATH}/ixp_osal.o' \
"
MAKE_TARGETS = "ixp400"
KCONFIG_FILE = "${STAGING_KERNEL_DIR}/kernel-config"
do_stage () {
install -d ${STAGING_INCDIR}/linux/ixp4xx-csr
install -m 0644 src/include/*.h ${STAGING_INCDIR}/linux/ixp4xx-csr/
# Since Module.symvers in the kernel staging directory doesn't include
# the symbols from ixp400.o we need to add them to another file for
# the ixp400-eth build
rm -f '${STAGING_KERNEL_DIR}/ixp400-csr.symvers'
. '${KCONFIG_FILE}'
if '${STAGING_KERNEL_DIR}/scripts/mod/modpost' \
${CONFIG_MODVERSIONS:+-m} \
${CONFIG_MODULE_SRCVERSION_ALL:+-a} \
-i '${STAGING_KERNEL_DIR}/Module.symvers' \
-o '${STAGING_KERNEL_DIR}/ixp400-csr.symvers' \
lib/${IX_TARGET}/ixp400.o 2>&1 | egrep .
then
echo "MODPOST errors - see above"
return 1
else
return 0
fi
}
do_install () {
install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/ixp400
install -m 0644 lib/${IX_TARGET}/ixp400.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/ixp400/
install -m 0644 lib/${IX_TARGET}/IxNpeMicrocode.dat ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/ixp400/
}
|