From: andrew may <acmay@acmay.homeip.net>
To: Tom Rini <trini@kernel.crashing.org>
Cc: andrew may <acmay@acmay.homeip.net>,
linuxppc-embedded@lists.linuxppc.org, Armin <akuster@pacbell.net>
Subject: Re: [PATCH] another for ibm_ocp_enet gzip'd
Date: Fri, 15 Mar 2002 14:25:42 -0800 [thread overview]
Message-ID: <20020315142542.A27043@ecam.san.rr.com> (raw)
In-Reply-To: <20020315200558.GG691@opus.bloom.county>
[-- Attachment #1: Type: text/plain, Size: 785 bytes --]
On Fri, Mar 15, 2002 at 01:05:58PM -0700, Tom Rini wrote:
> On Fri, Mar 15, 2002 at 11:41:37AM -0800, andrew may wrote:
>
> > 3. added mal.sh to generate a new ibm_ocp_mal.c
>
> This looks very cool. Can you add in some comments to the shell script,
> and I didn't see any bashisms in there, can you verify it works with
> pdksh or one of the other script shells which can be /bin/sh ?
I am not sure how I can check against other shells since I don't
have them on my machine. Is sh --posix good enough?
Here is a patch to mal.sh with some more comments, taking an
arg of the Mal count, and some spacing fixups.
Am taking a day off my work, work so I am not around the code
to do a patch for the Config.help, but I will include the text
I would like there. It may be a bit verbose.
[-- Attachment #2: mal.sh.diff --]
[-- Type: text/plain, Size: 3626 bytes --]
--- mal.sh.old Fri Mar 15 14:10:53 2002
+++ mal.sh Fri Mar 15 14:16:17 2002
@@ -1,25 +1,70 @@
#!/bin/sh
+#
+# We want one arg with the number of MALs to support.
+# The first is just MAL_BASE and the second is called
+# MAL1_BASE and so on. If we don't get just one arg
+# we default to 1 MAL.
+#
+# It would be nice to grep these out of a header, but
+# I don't think we can tell which header we need to
+# grep without going through the defines with a pre-compile.
+
+# The c-comments below describe why we need to generate
+# this code.
+
+BASES="DCRN_MAL_BASE"
+if [ $# -ne 1 ] ; then
+ END=1
+else
+ END=$1
+fi
+
+I=1
+while [ $I -lt $END ] ; do
+ BASES="$BASES DCRN_MAL${I}_BASE"
+ I=$((I+1))
+done
+
+DCRNS="DCRN_MALCR \
+ DCRN_MALDBR \
+ DCRN_MALESR \
+ DCRN_MALIER \
+ DCRN_MALTXCARR \
+ DCRN_MALTXCASR \
+ DCRN_MALTXDEIR \
+ DCRN_MALTXEOBISR \
+ DCRN_MALRXCARR \
+ DCRN_MALRXCASR \
+ DCRN_MALRXDEIR \
+ DCRN_MALRXEOBISR \
+ DCRN_MALRXCTP0R \
+ DCRN_MALTXCTP0R \
+ DCRN_MALTXCTP1R \
+ DCRN_MALRCBS0 "
-DCRNS=" DCRN_MALCR \
- DCRN_MALDBR \
- DCRN_MALESR \
- DCRN_MALIER \
- DCRN_MALTXCARR \
- DCRN_MALTXCASR \
- DCRN_MALTXDEIR \
- DCRN_MALTXEOBISR \
- DCRN_MALRXCARR \
- DCRN_MALRXCASR \
- DCRN_MALRXDEIR \
- DCRN_MALRXEOBISR \
- DCRN_MALRXCTP0R \
- DCRN_MALTXCTP0R \
- DCRN_MALTXCTP1R \
- DCRN_MALRCBS0 "
echo '#include <linux/config.h>'
echo '#include <asm/ibm4xx.h>'
echo
-echo '/* Dynamically generated code-DONNOT EDIT*/'
+echo '/* Dynamically generated code-DONNOT EDIT */'
+
+echo '/* */'
+
+echo '/* This stuff needs to be done since the */'
+echo '/* DCRN number is actually in the opcode */'
+echo '/* itself. So there is no simple way for */'
+echo '/* the driver to store off the base value */'
+echo '/* and do the math at run time. Take a */'
+echo '/* look at the PPCBoot code to see the */'
+echo '/* self modifying code needed to do this */'
+echo '/* at run time. */'
+echo '/* */'
+echo '/* This could be expanded to cover more */'
+echo '/* than just the ethernet driver. So it */'
+echo '/* may be valuable to move this into arch */'
+echo '/* and export the 2 functions. At that */'
+echo '/* point it may be just as well to dump */'
+echo '/* the names/macros here and just expand */'
+echo '/* it with just the numbers. */'
echo
echo
@@ -28,12 +73,14 @@
echo '{'
echo ' switch(dcrn) {'
for DCRN in $DCRNS; do
- for BASE in $@; do
- echo ' case' $DCRN '(' $BASE ') :'
- echo ' return mfdcr( ' $DCRN '(' $BASE '));'
+ for BASE in $BASES; do
+ echo " case ${DCRN}(${BASE}):"
+ echo " return mfdcr( ${DCRN}(${BASE}) );"
done
done
echo ' }'
+echo ' /*Should we do some sort of error?*/'
+echo ' /*Extra return keeps the compiler happy*/'
echo ' return 0;'
echo '}'
@@ -44,11 +91,14 @@
echo '{'
echo ' switch(dcrn) {'
for DCRN in $DCRNS; do
- for BASE in $@; do
- echo ' case' $DCRN '(' $BASE ') :'
- echo ' mtdcr( ' $DCRN '(' $BASE '), val);'
+ for BASE in $BASES; do
+ echo " case ${DCRN}(${BASE}) :"
+ echo " mtdcr( ${DCRN}(${BASE}), val);"
echo ' break;'
done
done
+echo ' default:'
+echo ' /*Should we do some sort of error?*/'
+echo ' break;'
echo ' }'
echo '}'
[-- Attachment #3: ocp_help --]
[-- Type: text/plain, Size: 824 bytes --]
Amount of bytes to Reserve on a skb for the IBM OCP Enet Driver
CONFIG_IBM_OCP_ENET_SKB_RES
Many standard ethernet drivers need to reserve 2 bytes of data
on the skb before giving the data ptr to the hardware. This is
so the IP data will be 16-byte aligned when it goes up the stack.
This is a requirement for some processors and it can cause major
slow downs on others. The 405GP dose not have problems with the
misaligned data so the default is 0. If you need to route the
incoming ethernet packets to another device that has alignment
requirements this can help remove a data copy. A value of 2 can
help at getting 16-byte aligned IP data for another device. A
larger value can be used when routing to a IP tunnel device.
Make sure XXX_DESC_SIZE - XXX_SKB_RES >= 1514, or larger if VLANS
are used.
next prev parent reply other threads:[~2002-03-15 22:25 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-03-15 19:41 [PATCH] another for ibm_ocp_enet gzip'd andrew may
2002-03-15 20:05 ` Tom Rini
2002-03-15 22:25 ` andrew may [this message]
2002-03-15 22:31 ` Tom Rini
2002-03-18 22:25 ` andrew may
2002-03-18 14:53 ` Armin
2002-03-18 22:56 ` andrew may
2002-03-19 0:28 ` Tom Rini
2002-03-19 0:54 ` andrew may
2002-03-19 1:01 ` Tom Rini
2002-03-15 20:06 ` Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20020315142542.A27043@ecam.san.rr.com \
--to=acmay@acmay.homeip.net \
--cc=akuster@pacbell.net \
--cc=linuxppc-embedded@lists.linuxppc.org \
--cc=trini@kernel.crashing.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).