* [parisc-linux] parisc-linux.org kernel
@ 2003-04-08 16:53 Alexander Gabert
2003-04-08 16:58 ` Matthew Wilcox
0 siblings, 1 reply; 37+ messages in thread
From: Alexander Gabert @ 2003-04-08 16:53 UTC (permalink / raw)
To: parisc-linux
hello
another question:
can you tell me the exact difference between:
www.kernel.org - linux-2.4.20
www.parisc-linux.org - parisc-linux-kernel-2.4.20-pa32
if there is no technical reason in keeping those kernel devels apart,
why is it done?
it is important for me to get a working mainstream vanilla kernel.org.
i heard that this kernel does not even boot...
thank you,
Alex
--
"... an experienced, industrious, ambitious, and often quite often
picturesque liar."
-- Mark Twain
pub 1024/05E1A80C 2001/12/16 Alexander Gabert (http://nikita.ath.cx) <pappy@nikita.ath.cx>
Key fingerprint = 2D 84 B0 CB F5 67 8A 22 8D 37 6E 6B 8A 3B 7F D6 05 E1 A8 0C
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-08 16:53 Alexander Gabert
@ 2003-04-08 16:58 ` Matthew Wilcox
2003-04-08 17:06 ` Alexander Gabert
0 siblings, 1 reply; 37+ messages in thread
From: Matthew Wilcox @ 2003-04-08 16:58 UTC (permalink / raw)
To: Alexander Gabert; +Cc: parisc-linux
On Tue, Apr 08, 2003 at 06:53:06PM +0200, Alexander Gabert wrote:
> can you tell me the exact difference between:
> www.kernel.org - linux-2.4.20
> www.parisc-linux.org - parisc-linux-kernel-2.4.20-pa32
a huge patch.
> if there is no technical reason in keeping those kernel devels apart,
> why is it done?
because they're serving different needs.
> it is important for me to get a working mainstream vanilla kernel.org.
> i heard that this kernel does not even boot...
it doesn't even compile.
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-08 16:58 ` Matthew Wilcox
@ 2003-04-08 17:06 ` Alexander Gabert
2003-04-08 17:08 ` Matthew Wilcox
0 siblings, 1 reply; 37+ messages in thread
From: Alexander Gabert @ 2003-04-08 17:06 UTC (permalink / raw)
To: Matthew Wilcox
i am asking because of www.grsecurity.net
i am tired defeating hunks they are putting in because they
work in arch/parisc on the vanilla kernel.org kernel.
can't you talk to them and convince them to use "our" parisc-linux image
for the grsecurity parisc patches in the future?
the PaX pageexec folks are also hanging in there...
it would be very good to have a working security hardening patch for
parisc-linux. at least one.
if it would only be a matter of months when both kernels merge, it would
not be necessary.
but i don`t want to spend my time messing with patches when i can do
better things ...
thank you,
bye,
Alex
On Tue, Apr 08, 2003 at 05:58:25PM +0100, Matthew Wilcox wrote:
> On Tue, Apr 08, 2003 at 06:53:06PM +0200, Alexander Gabert wrote:
> > can you tell me the exact difference between:
> > www.kernel.org - linux-2.4.20
> > www.parisc-linux.org - parisc-linux-kernel-2.4.20-pa32
>
> a huge patch.
>
> > if there is no technical reason in keeping those kernel devels apart,
> > why is it done?
>
> because they're serving different needs.
>
> > it is important for me to get a working mainstream vanilla kernel.org.
> > i heard that this kernel does not even boot...
>
> it doesn't even compile.
>
> --
> "It's not Hollywood. War is real, war is primarily not about defeat or
> victory, it is about death. I've seen thousands and thousands of dead bodies.
> Do you think I want to have an academic debate on this subject?" -- Robert Fisk
--
"... an experienced, industrious, ambitious, and often quite often
picturesque liar."
-- Mark Twain
pub 1024/05E1A80C 2001/12/16 Alexander Gabert (http://nikita.ath.cx) <pappy@nikita.ath.cx>
Key fingerprint = 2D 84 B0 CB F5 67 8A 22 8D 37 6E 6B 8A 3B 7F D6 05 E1 A8 0C
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-08 17:06 ` Alexander Gabert
@ 2003-04-08 17:08 ` Matthew Wilcox
2003-04-09 5:49 ` Grant Grundler
0 siblings, 1 reply; 37+ messages in thread
From: Matthew Wilcox @ 2003-04-08 17:08 UTC (permalink / raw)
To: Alexander Gabert; +Cc: Matthew Wilcox, parisc-linux
On Tue, Apr 08, 2003 at 07:06:12PM +0200, Alexander Gabert wrote:
> i am asking because of www.grsecurity.net
>
> i am tired defeating hunks they are putting in because they
> work in arch/parisc on the vanilla kernel.org kernel.
>
> can't you talk to them and convince them to use "our" parisc-linux image
> for the grsecurity parisc patches in the future?
perhaps you should talk to them. tell them to work against the patches
in http://www.kernel.org/linux/kernel/ports/parisc/v2.4/
> if it would only be a matter of months when both kernels merge, it would
> not be necessary.
> but i don`t want to spend my time messing with patches when i can do
> better things ...
bits and pieces are being merged from the parisc tree into marcelo's tree,
but it's just not worth fighting to get this stuff merged. we're mostly
merged for 2.5 and i'd rather spend my time working on that.
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-08 17:08 ` Matthew Wilcox
@ 2003-04-09 5:49 ` Grant Grundler
2003-04-09 7:54 ` Alexander Gabert
0 siblings, 1 reply; 37+ messages in thread
From: Grant Grundler @ 2003-04-09 5:49 UTC (permalink / raw)
To: Matthew Wilcox; +Cc: Alexander Gabert, parisc-linux
On Tue, Apr 08, 2003 at 06:08:39PM +0100, Matthew Wilcox wrote:
> bits and pieces are being merged from the parisc tree into marcelo's tree,
> but it's just not worth fighting to get this stuff merged.
If anyone is interested in "fighting" to merge the outstanding
parisc linux changes, I can help a bit. I just don't have as much time
these days...hopefully more this summer.
To willy's credit, he's attempted to merge 2.4 parisc changes upstream
at least twice but was torpedo'd both times.
> we're mostly
> merged for 2.5 and i'd rather spend my time working on that.
me too - I'd rather see you working on something you care about.
I'm very happy to see you (and several others) taking good care of 2.5.
And I think it's a bit much for anyone to do both - that's mostly why I
*haven't* been doing much with 2.5.
thanks,
grant
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
@ 2003-04-09 7:36 Berthold Gunreben
0 siblings, 0 replies; 37+ messages in thread
From: Berthold Gunreben @ 2003-04-09 7:36 UTC (permalink / raw)
To: parisc-linux
[-- Attachment #1: Type: text/plain, Size: 978 bytes --]
grundler@dsl2.external.hp.com (Grant Grundler) schrieb am 09.04.03 07:50:28:
> me too - I'd rather see you working on something you care about.
> I'm very happy to see you (and several others) taking good care of 2.5.
> And I think it's a bit much for anyone to do both - that's mostly why I
> *haven't* been doing much with 2.5.
Speaking of 2.5, I now have a running kernel 2.5.66-pa2 compiled with gcc version 3.3
20030226 (prerelease). To be able to boot, I had to remove EISA support. There are some
minor flaws like
process `host' is using obsolete setsockopt SO_BSDCOMPAT
lines in dmesg, but the system is up and running for 5 days now. I'll attach the small
diff with signal casts, that was necessary to run the kernel.
Berthold
______________________________________________________________________________
UNICEF bittet um Spenden fur die Kinder im Irak! Hier online an
UNICEF spenden: https://spenden.web.de/unicef/special/?mc=021101
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: sig_cast.diff --]
[-- Type: text/x-diff; name="sig_cast.diff", Size: 7484 bytes --]
--- arch/parisc/kernel/signal.c 2003/04/03 09:47:45 1.1
+++ arch/parisc/kernel/signal.c 2003/04/03 09:52:29
@@ -377,7 +377,7 @@
give_sigsegv:
DBG(("setup_rt_frame sending SIGSEGV\n"));
if (sig == SIGSEGV)
- ka->sa.sa_handler = SIG_DFL;
+ ka->sa.sa_handler = (void *) SIG_DFL;
si.si_signo = SIGSEGV;
si.si_errno = 0;
si.si_code = SI_KERNEL;
@@ -406,7 +406,7 @@
return 0;
if (ka->sa.sa_flags & SA_ONESHOT)
- ka->sa.sa_handler = SIG_DFL;
+ ka->sa.sa_handler = (void *) SIG_DFL;
if (!(ka->sa.sa_flags & SA_NODEFER)) {
spin_lock_irq(¤t->sighand->siglock);
--- drivers/char/n_tty.c 2003/04/03 09:47:53 1.1
+++ drivers/char/n_tty.c 2003/04/03 09:52:56
@@ -808,7 +808,7 @@
int is_ignored(int sig)
{
return (sigismember(¤t->blocked, sig) ||
- current->sighand->action[sig-1].sa.sa_handler == SIG_IGN);
+ current->sighand->action[sig-1].sa.sa_handler == (void *) SIG_IGN);
}
static void n_tty_set_termios(struct tty_struct *tty, struct termios * old)
--- fs/ncpfs/sock.c 2003/04/03 09:48:02 1.1
+++ fs/ncpfs/sock.c 2003/04/03 09:53:29
@@ -757,9 +757,9 @@
What if we've blocked it ourselves? What about
alarms? Why, in fact, are we mucking with the
sigmask at all? -- r~ */
- if (current->sighand->action[SIGINT - 1].sa.sa_handler == SIG_DFL)
+ if (current->sighand->action[SIGINT - 1].sa.sa_handler == (void *) SIG_DFL)
mask |= sigmask(SIGINT);
- if (current->sighand->action[SIGQUIT - 1].sa.sa_handler == SIG_DFL)
+ if (current->sighand->action[SIGQUIT - 1].sa.sa_handler == (void *) SIG_DFL)
mask |= sigmask(SIGQUIT);
}
siginitsetinv(¤t->blocked, mask);
--- fs/proc/array.c 2003/04/03 09:48:15 1.1
+++ fs/proc/array.c 2003/04/03 09:54:26
@@ -213,9 +213,9 @@
k = p->sighand->action;
for (i = 1; i <= _NSIG; ++i, ++k) {
- if (k->sa.sa_handler == SIG_IGN)
+ if (k->sa.sa_handler == (void *) SIG_IGN)
sigaddset(ign, i);
- else if (k->sa.sa_handler != SIG_DFL)
+ else if (k->sa.sa_handler != (void *) SIG_DFL)
sigaddset(catch, i);
}
}
--- kernel/signal.c 2003/04/03 09:48:23 1.1
+++ kernel/signal.c 2003/04/03 09:56:19
@@ -139,12 +139,12 @@
(((sig) < SIGRTMIN) && T(sig, SIG_KERNEL_STOP_MASK))
#define sig_user_defined(t, signr) \
- (((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_DFL) && \
- ((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_IGN))
+ (((t)->sighand->action[(signr)-1].sa.sa_handler != (void *) SIG_DFL) && \
+ ((t)->sighand->action[(signr)-1].sa.sa_handler != (void *) SIG_IGN))
#define sig_fatal(t, signr) \
(!T(signr, SIG_KERNEL_IGNORE_MASK|SIG_KERNEL_STOP_MASK) && \
- (t)->sighand->action[(signr)-1].sa.sa_handler == SIG_DFL)
+ (t)->sighand->action[(signr)-1].sa.sa_handler == (void *) SIG_DFL)
static inline int sig_ignored(struct task_struct *t, int sig)
{
@@ -166,8 +166,8 @@
/* Is it explicitly or implicitly ignored? */
handler = t->sighand->action[sig-1].sa.sa_handler;
- return handler == SIG_IGN ||
- (handler == SIG_DFL && sig_kernel_ignore(sig));
+ return handler == (void *) SIG_IGN ||
+ (handler == (void *) SIG_DFL && sig_kernel_ignore(sig));
}
/*
@@ -361,8 +361,8 @@
int i;
struct k_sigaction *ka = &t->sighand->action[0];
for (i = _NSIG ; i != 0 ; i--) {
- if (force_default || ka->sa.sa_handler != SIG_IGN)
- ka->sa.sa_handler = SIG_DFL;
+ if (force_default || ka->sa.sa_handler != (void *) SIG_IGN)
+ ka->sa.sa_handler = (void *) SIG_DFL;
ka->sa.sa_flags = 0;
sigemptyset(&ka->sa.sa_mask);
ka++;
@@ -796,8 +796,8 @@
int ret;
spin_lock_irqsave(&t->sighand->siglock, flags);
- if (t->sighand->action[sig-1].sa.sa_handler == SIG_IGN)
- t->sighand->action[sig-1].sa.sa_handler = SIG_DFL;
+ if (t->sighand->action[sig-1].sa.sa_handler == (void *) SIG_IGN)
+ t->sighand->action[sig-1].sa.sa_handler = (void *) SIG_DFL;
sigdelset(&t->blocked, sig);
recalc_sigpending_tsk(t);
ret = specific_send_sig_info(sig, info, t);
@@ -812,8 +812,8 @@
unsigned long int flags;
spin_lock_irqsave(&t->sighand->siglock, flags);
- if (t->sighand->action[sig-1].sa.sa_handler == SIG_IGN)
- t->sighand->action[sig-1].sa.sa_handler = SIG_DFL;
+ if (t->sighand->action[sig-1].sa.sa_handler == (void *) SIG_IGN)
+ t->sighand->action[sig-1].sa.sa_handler = (void *) SIG_DFL;
sigdelset(&t->blocked, sig);
recalc_sigpending_tsk(t);
specific_send_sig_info(sig, (void *)2, t);
@@ -1267,7 +1267,7 @@
psig = tsk->parent->sighand;
spin_lock_irqsave(&psig->siglock, flags);
if (sig == SIGCHLD && tsk->state != TASK_STOPPED &&
- (psig->action[SIGCHLD-1].sa.sa_handler == SIG_IGN ||
+ (psig->action[SIGCHLD-1].sa.sa_handler == (void *) SIG_IGN ||
(psig->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDWAIT))) {
/*
* We are exiting and our parent doesn't care. POSIX.1
@@ -1285,7 +1285,7 @@
* it, just use SIG_IGN instead).
*/
tsk->exit_signal = -1;
- if (psig->action[SIGCHLD-1].sa.sa_handler == SIG_IGN)
+ if (psig->action[SIGCHLD-1].sa.sa_handler == (void *) SIG_IGN)
sig = 0;
}
if (sig > 0 && sig <= _NSIG)
@@ -1333,7 +1333,7 @@
sighand = parent->sighand;
spin_lock_irqsave(&sighand->siglock, flags);
- if (sighand->action[SIGCHLD-1].sa.sa_handler != SIG_IGN &&
+ if (sighand->action[SIGCHLD-1].sa.sa_handler != (void *) SIG_IGN &&
!(sighand->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDSTOP))
__group_send_sig_info(SIGCHLD, &info, parent);
/*
@@ -1567,9 +1567,9 @@
}
ka = ¤t->sighand->action[signr-1];
- if (ka->sa.sa_handler == SIG_IGN) /* Do nothing. */
+ if (ka->sa.sa_handler == (void *) SIG_IGN) /* Do nothing. */
continue;
- if (ka->sa.sa_handler != SIG_DFL) /* Run the handler. */
+ if (ka->sa.sa_handler != (void *) SIG_DFL) /* Run the handler. */
return signr;
/*
@@ -2017,8 +2017,8 @@
* (for example, SIGCHLD), shall cause the pending signal to
* be discarded, whether or not it is blocked"
*/
- if (act->sa.sa_handler == SIG_IGN ||
- (act->sa.sa_handler == SIG_DFL &&
+ if (act->sa.sa_handler == (void *) SIG_IGN ||
+ (act->sa.sa_handler == (void *) SIG_DFL &&
sig_kernel_ignore(sig))) {
/*
* This is a fairly rare case, so we only take the
--- kernel/workqueue.c 2003/04/03 09:48:44 1.1
+++ kernel/workqueue.c 2003/04/03 09:56:48
@@ -183,7 +183,7 @@
complete(&startup->done);
/* Install a handler so SIGCLD is delivered */
- sa.sa.sa_handler = SIG_IGN;
+ sa.sa.sa_handler = (void *) SIG_IGN;
sa.sa.sa_flags = 0;
siginitset(&sa.sa.sa_mask, sigmask(SIGCHLD));
do_sigaction(SIGCHLD, &sa, (struct k_sigaction *)0);
--- net/sunrpc/clnt.c 2003/04/03 09:48:54 1.1
+++ net/sunrpc/clnt.c 2003/04/03 09:57:10
@@ -255,9 +255,9 @@
/* Turn off various signals */
if (clnt->cl_intr) {
struct k_sigaction *action = current->sighand->action;
- if (action[SIGINT-1].sa.sa_handler == SIG_DFL)
+ if (action[SIGINT-1].sa.sa_handler == (void *) SIG_DFL)
sigallow |= sigmask(SIGINT);
- if (action[SIGQUIT-1].sa.sa_handler == SIG_DFL)
+ if (action[SIGQUIT-1].sa.sa_handler == (void *) SIG_DFL)
sigallow |= sigmask(SIGQUIT);
}
spin_lock_irqsave(¤t->sighand->siglock, irqflags);
--- scripts/kconfig/mconf.c 2003/04/03 09:49:04 1.1
+++ scripts/kconfig/mconf.c 2003/04/03 09:57:47
@@ -213,7 +213,7 @@
sigaddset(&sset, SIGINT);
sigprocmask(SIG_BLOCK, &sset, &osset);
- signal(SIGINT, SIG_DFL);
+ signal(SIGINT, (void *) SIG_DFL);
sa.sa_handler = winch_handler;
sigemptyset(&sa.sa_mask);
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-09 5:49 ` Grant Grundler
@ 2003-04-09 7:54 ` Alexander Gabert
2003-04-09 15:47 ` Grant Grundler
2003-04-09 17:23 ` pageexec
0 siblings, 2 replies; 37+ messages in thread
From: Alexander Gabert @ 2003-04-09 7:54 UTC (permalink / raw)
To: grsecurity; +Cc: willy, parisc-linux, grundler
hello from cold dark wet germany,
okay, after getting all the people together on one "desk", now here is the
essential question to Brad and his team:
when will we have a 2.5.* Patch for grsecurity?
background:
Alan Cox and Matthew Wilcox wouldn`t mind if someone tries to merge both
2.4.*.
but i don`t mind if it takes 2 months or more until we have a kernel.org
2.5 patch that
a) the grsec patch applies without hunks on unified 2.5 parisc source
b) parisc-linux.org is then mainstreamed in 2.5 and will discontinue
"split development"c) parisc-linux kernel _boots_ and _works_ and is _continued_ to be
developed in _MAINSTREAM_ not in parisc-linux.org CVS
i want that to happen anyway. not just for grsec patches.
it is a sad joke that parisc-linux.org kernels are good and the kernel.org
parisc source is just a silly excuse for not having the parisc-linux.org
sources melt in. sorry for that.
Grant Grundler said:
> On Tue, Apr 08, 2003 at 06:08:39PM +0100, Matthew Wilcox wrote:
>> bits and pieces are being merged from the parisc tree into marcelo's
>> tree, but it's just not worth fighting to get this stuff merged.
right, in this stadium i can "oversee" the necessary patches:
i strip the nonparisc, multiplatform support away with a perl script,
fiddle with about 3-4 hunks that have to be taken out because they already
exist in parisc source (for example latest ptrace kernel exploit), another
6-10 "look at it and try to intelligently put it into the slightly
different parisc source" and the rest is "make up" like double insertions,
typos and the like :-)
> If anyone is interested in "fighting" to merge the outstanding
> parisc linux changes, I can help a bit. I just don't have as much time
> these days...hopefully more this summer.
okay, i get you.
> To willy's credit, he's attempted to merge 2.4 parisc changes upstream
> at least twice but was torpedo'd both times.
i don`t want to know ;-)
>> we're mostly
>> merged for 2.5 and i'd rather spend my time working on that.
okay, this basically means to wait for a 2.5.* grsec patch and in the
meantime continue hacking in the grsec patches by hand, which is just what
i would prefer as the way to go for the next months.
> me too - I'd rather see you working on something you care about.
> I'm very happy to see you (and several others) taking good care of 2.5.
> And I think it's a bit much for anyone to do both - that's mostly why I
> *haven't* been doing much with 2.5.
>
> thanks,
> grant
with the help of the PaX team, yesterday i managed to get the 199f patch
going on my 712, with all GRKERNSEC* options enabled but just a little
PAGEEXEC "brute disabled routine" in binfmt_elf.c that inverses the
behaviour of chpax -p, i will get into that later today when i come home.
http://nikita.ath.cx/users/pappy/grsec/199f/parisc-linux-2.4.20-pa32-grsecurity-1.9.9f-parisc-only.patch
thanks for your support and that you are dealing with this issue so
friendly and open minded.
bye,
Alex
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-09 7:54 ` Alexander Gabert
@ 2003-04-09 15:47 ` Grant Grundler
2003-04-09 17:23 ` pageexec
1 sibling, 0 replies; 37+ messages in thread
From: Grant Grundler @ 2003-04-09 15:47 UTC (permalink / raw)
To: Alexander Gabert; +Cc: grsecurity, willy, parisc-linux
On Wed, Apr 09, 2003 at 09:54:36AM +0200, Alexander Gabert wrote:
> background:
> b) parisc-linux.org is then mainstreamed in 2.5 and will discontinue
> "split development"c) parisc-linux kernel _boots_ and _works_ and is _continued_ to be
> developed in _MAINSTREAM_ not in parisc-linux.org CVS
> i want that to happen anyway. not just for grsec patches.
> it is a sad joke that parisc-linux.org kernels are good and the kernel.org
> parisc source is just a silly excuse for not having the parisc-linux.org
> sources melt in. sorry for that.
No - you don't understand the roles of the various trees.
The CVS on parisc-linux.org will *always* be authoritative tree
for parisc-linux. It should be considered a "developement" branch
for kernel.org. This is true for nearly every architecture
except i386 (and alpha?) which are maintained by issueing
a patch against kernel.org.
> right, in this stadium i can "oversee" the necessary patches:
>
> i strip the nonparisc, multiplatform support away with a perl script,
> fiddle with about 3-4 hunks that have to be taken out because they already
> exist in parisc source (for example latest ptrace kernel exploit), another
> 6-10 "look at it and try to intelligently put it into the slightly
> different parisc source" and the rest is "make up" like double insertions,
> typos and the like :-)
Oh cool - so it's not as bad as I thought...can you run
diffstat on the various "hunks" you've got?
> >> we're mostly
> >> merged for 2.5 and i'd rather spend my time working on that.
>
> okay, this basically means to wait for a 2.5.* grsec patch and in the
> meantime continue hacking in the grsec patches by hand, which is just what
You hopefully won't have nearly the same problems as with 2.4.
(grsec team working on stale arch/parisc code)
...
> with the help of the PaX team, yesterday i managed to get the 199f patch
> going on my 712, with all GRKERNSEC* options enabled but just a little
> PAGEEXEC "brute disabled routine" in binfmt_elf.c that inverses the
> behaviour of chpax -p, i will get into that later today when i come home.
> http://nikita.ath.cx/users/pappy/grsec/199f/parisc-linux-2.4.20-pa32-grsecurity-1.9.9f-parisc-only.patch
very cool.
> thanks for your support and that you are dealing with this issue so
> friendly and open minded.
thanks too,
grant
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-09 7:54 ` Alexander Gabert
2003-04-09 15:47 ` Grant Grundler
@ 2003-04-09 17:23 ` pageexec
2003-04-09 17:40 ` Matthew Wilcox
` (2 more replies)
1 sibling, 3 replies; 37+ messages in thread
From: pageexec @ 2003-04-09 17:23 UTC (permalink / raw)
To: grsecurity; +Cc: willy, parisc-linux, grundler
> okay, after getting all the people together on one "desk", now here is the
> essential question to Brad and his team:
> when will we have a 2.5.* Patch for grsecurity?
i can speak for the PaX part only, and the answer is that "i don't know".
personally, i'll be interested in porting PaX to 2.6 when it's actually
out and working stable (enough). but that's not the only limiting factor
in our case, the several big changes to the linux VM make it absolutely
not trivial to port PaX (huge page support, rmap, accounting, non-linear
mappings, UML, etc). if you really need a timeframe, i'd say maybe in 6
months (give or take a few) i'll look at the situation again.
> > To willy's credit, he's attempted to merge 2.4 parisc changes upstream
> > at least twice but was torpedo'd both times.
>
> i don`t want to know ;-)
actually, i'd like to (feel free to answer off-list), since for all the
other archs grsec/PaX runs on we could compile a working kernel from the
vanilla tree - it just seems a mystery why parisc is an exception (not
blaming anyone, just would like to see it more clear).
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-09 17:23 ` pageexec
@ 2003-04-09 17:40 ` Matthew Wilcox
2003-04-09 18:20 ` pageexec
2003-04-09 17:48 ` Matthew Wilcox
2003-04-10 5:50 ` Grant Grundler
2 siblings, 1 reply; 37+ messages in thread
From: Matthew Wilcox @ 2003-04-09 17:40 UTC (permalink / raw)
To: pageexec; +Cc: grsecurity, willy, parisc-linux, grundler
On Wed, Apr 09, 2003 at 07:23:15PM +0200, pageexec@freemail.hu wrote:
> actually, i'd like to (feel free to answer off-list), since for all the
> other archs grsec/PaX runs on we could compile a working kernel from the
> vanilla tree - it just seems a mystery why parisc is an exception (not
> blaming anyone, just would like to see it more clear).
perhaps PaX doesn't support sparc32, m68k, arm, mips, mips64, ia64,
s390, s390x or x86-64 since i know all those architectures have patches
on top of the kernel.org tree.
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-09 17:23 ` pageexec
2003-04-09 17:40 ` Matthew Wilcox
@ 2003-04-09 17:48 ` Matthew Wilcox
2003-04-10 5:50 ` Grant Grundler
2 siblings, 0 replies; 37+ messages in thread
From: Matthew Wilcox @ 2003-04-09 17:48 UTC (permalink / raw)
To: pageexec; +Cc: parisc-linux, grundler
Warning. If you reply to this message you get some arsehole reply from
the mailing list software. I strongly recommend not working with this
bunch of pricks who can't even run a mailing list.
On Wed, Apr 09, 2003 at 07:23:15PM +0200, pageexec@freemail.hu wrote:
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-09 17:40 ` Matthew Wilcox
@ 2003-04-09 18:20 ` pageexec
0 siblings, 0 replies; 37+ messages in thread
From: pageexec @ 2003-04-09 18:20 UTC (permalink / raw)
To: grsecurity; +Cc: willy, parisc-linux, grundler
> perhaps PaX doesn't support sparc32, m68k, arm, mips, mips64, ia64,
> s390, s390x or x86-64 since i know all those architectures have patches
> on top of the kernel.org tree.
of the above sparc32 is supported right now (with the vanilla tree),
ia64 and x86-84 could be supported (if we had the hw, and i don't know
how well the vanilla tree works on them), for the rest there was either
no interest so far or it's not possible (at least the non-exec pages,
randomization is arch independent). anyway, once we get PaX on parisc
to work, i think Alex will take care of the parisc-linux.org patches
(he's already testing with that after all), so this won't be an issue.
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-09 17:23 ` pageexec
2003-04-09 17:40 ` Matthew Wilcox
2003-04-09 17:48 ` Matthew Wilcox
@ 2003-04-10 5:50 ` Grant Grundler
2003-04-10 11:19 ` Matthew Wilcox
2 siblings, 1 reply; 37+ messages in thread
From: Grant Grundler @ 2003-04-10 5:50 UTC (permalink / raw)
To: pageexec; +Cc: parisc-linux
On Wed, Apr 09, 2003 at 07:23:15PM +0200, pageexec@freemail.hu wrote:
> > > To willy's credit, he's attempted to merge 2.4 parisc changes upstream
> > > at least twice but was torpedo'd both times.
> >
> > i don`t want to know ;-)
>
> actually, i'd like to (feel free to answer off-list),
Once the 2.4.20-preX bk tree that willy was using as "parent"
was discarded by marcelo because of other bugs in patches.
Or marcelo wouldn't accept the patch because he had a -pre candidate
and didn't want to risk that. Just stuff like that.
> since for all the
> other archs grsec/PaX runs on we could compile a working kernel from the
> vanilla tree - it just seems a mystery why parisc is an exception (not
> blaming anyone, just would like to see it more clear).
As willy noted, parisc is not an exception. last time willy looked at
merging, the 2.4 diff was something like 2 or 3MB. I'd hope it's a bit
smaller since Alan Cox merge a bunch of stuff into his tree.
But I haven't looked if/when Marcelo picked any of that up.
For comparison, last I heard, the 2.5 diff is something like < 100KB.
grant
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-10 5:50 ` Grant Grundler
@ 2003-04-10 11:19 ` Matthew Wilcox
0 siblings, 0 replies; 37+ messages in thread
From: Matthew Wilcox @ 2003-04-10 11:19 UTC (permalink / raw)
To: Grant Grundler; +Cc: parisc-linux
On Wed, Apr 09, 2003 at 11:50:03PM -0600, Grant Grundler wrote:
> > actually, i'd like to (feel free to answer off-list),
>
> Once the 2.4.20-preX bk tree that willy was using as "parent"
> was discarded by marcelo because of other bugs in patches.
> Or marcelo wouldn't accept the patch because he had a -pre candidate
> and didn't want to risk that. Just stuff like that.
And other people were patching things in the parisc-specific directories
which conflicted with my patches ;-(
> As willy noted, parisc is not an exception. last time willy looked at
> merging, the 2.4 diff was something like 2 or 3MB. I'd hope it's a bit
> smaller since Alan Cox merge a bunch of stuff into his tree.
> But I haven't looked if/when Marcelo picked any of that up.
> For comparison, last I heard, the 2.5 diff is something like < 100KB.
-rw-r--r-- 1 willy willy 202871 Apr 8 20:54 parisc-2.5.diff
although most of that is:
-rw-r--r-- 1 willy willy 170361 Mar 18 18:46 parisc-hil.diff
$ zcat ../ftp/cvs/patch-2.4.20-pa32.diff.gz |wc
91100 503494 3691507
that's not the full story since a large chunk of that's been merged into
2.4.21-pre, but i have no idea how much would be remaining.
if anyone had the time, we could track 2.4.21-pre more closely. but it's
just not worth it.
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
[not found] <20030410155223.GA5254@dsl2.external.hp.com>
@ 2003-04-11 5:40 ` Joel Soete
2003-04-11 9:41 ` Joel Soete
2003-04-11 15:58 ` Grant Grundler
0 siblings, 2 replies; 37+ messages in thread
From: Joel Soete @ 2003-04-11 5:40 UTC (permalink / raw)
To: Grant Grundler; +Cc: parisc-linux
>
>Please post the diffstat results to the mailing list.
>
>You can ignore complete driver "updates" I've committed.
>Some newer drivers work better for parisc, some don't. qlogic driver
>doesn't crash but it doesn't work right either. tg3 v1.5 is an example
>where it works better than the existing version.
>
>In general, breaking up the 3.5MB diff into smaller chunks makes it
>easier for Marcelo to handle.
>
Here is the rough diffstat (still have to reverse ql driver patches, I will
try to find time this week-end :) )
Documentation/Configure.help | 90
Makefile | 16
arch/m68k/config.in | 5
arch/m68k/kernel/m68k_ksyms.c | 5
arch/m68k/kernel/setup.c | 3
arch/m68k/q40/config.c | 41
arch/parisc/config.in | 6
arch/parisc/debian-configs/32 | 989 ++++
arch/parisc/debian-configs/32-smp | 988 ++++
arch/parisc/debian-configs/32-udeb | 915 ++++
arch/parisc/debian-configs/64 | 977 ++++
arch/parisc/debian-configs/64-smp | 976 ++++
arch/parisc/debian-configs/64-udeb | 865 +++
arch/parisc/defpalo.conf | 21
arch/parisc/kernel/cache.c | 80
arch/parisc/kernel/ccio-dma.c | 17
arch/parisc/kernel/ccio-rm-dma.c | 2
arch/parisc/kernel/drivers.c | 51
arch/parisc/kernel/entry.S | 4
arch/parisc/kernel/hardware.c | 10
arch/parisc/kernel/head.S | 2
arch/parisc/kernel/ioctl32.c | 5
arch/parisc/kernel/irq.c | 4
arch/parisc/kernel/lasimap.map | 322 -
arch/parisc/kernel/parisc_ksyms.c | 11
arch/parisc/kernel/pci-dma.c | 8
arch/parisc/kernel/perf.c | 10
arch/parisc/kernel/processor.c | 2
arch/parisc/kernel/sba_iommu.c | 2
arch/parisc/kernel/smp.c | 13
arch/parisc/kernel/traps.c | 8
arch/parisc/kernel/unaligned.c | 394 +
arch/parisc/math-emu/dfadd.c | 2
arch/parisc/math-emu/dfcmp.c | 2
arch/parisc/math-emu/dfdiv.c | 2
arch/parisc/math-emu/dfmpy.c | 2
arch/parisc/math-emu/dfrem.c | 2
arch/parisc/math-emu/dfsqrt.c | 2
arch/parisc/math-emu/dfsub.c | 2
arch/parisc/math-emu/driver.c | 17
arch/parisc/math-emu/fcnvff.c | 2
arch/parisc/math-emu/fcnvfu.c | 2
arch/parisc/math-emu/fcnvfut.c | 2
arch/parisc/math-emu/fcnvfx.c | 2
arch/parisc/math-emu/fcnvfxt.c | 2
arch/parisc/math-emu/fcnvuf.c | 2
arch/parisc/math-emu/fcnvxf.c | 2
arch/parisc/math-emu/float.h | 2
arch/parisc/math-emu/fmpyfadd.c | 2
arch/parisc/math-emu/fpu.h | 2
arch/parisc/math-emu/fpudispatch.c | 19
arch/parisc/math-emu/sfadd.c | 2
arch/parisc/math-emu/sfcmp.c | 2
arch/parisc/math-emu/sfdiv.c | 2
arch/parisc/math-emu/sfmpy.c | 2
arch/parisc/math-emu/sfrem.c | 2
arch/parisc/math-emu/sfsqrt.c | 2
arch/parisc/math-emu/sfsub.c | 2
drivers/char/Config.in | 3
drivers/char/Makefile | 2
drivers/char/pty.c | 4
drivers/char/serial.c | 115
drivers/gsc/dino.c | 9
drivers/ide/pci/ns87415.c | 8
drivers/ide/setup-pci.c | 2
drivers/net/acenic.c | 5
drivers/net/lasi_82596.c | 2
drivers/net/pcnet32.c | 26
drivers/net/tulip/eeprom.c | 3
drivers/net/tulip/media.c | 29
drivers/net/wireless/airo.c | 7
drivers/pci/quirks.c | 3
drivers/pci/setup-bus.c | 37
drivers/scsi/Config.in | 57
drivers/scsi/Makefile | 15
drivers/scsi/cpqfcTScontrol.c | 45
drivers/scsi/cpqfcTSi2c.c | 3
drivers/scsi/cpqfcTSinit.c | 12
drivers/scsi/cpqfcTSstructs.h | 4
drivers/scsi/cpqfcTSworker.c | 2
drivers/scsi/ncr53c8xx.c | 341 +
drivers/scsi/qla2xxx/Config.in | 6
drivers/scsi/qla2xxx/Makefile | 13
drivers/scsi/qla2xxx/README.qla2x00 | 744 +++
drivers/scsi/qla2xxx/SUPPORTED_KERNEL_VERSION.txt | 16
drivers/scsi/qla2xxx/exioct.h | 966 ++++
drivers/scsi/qla2xxx/exioctln.h | 203
drivers/scsi/qla2xxx/inioct.h | 129
drivers/scsi/qla2xxx/listops.h | 397 +
drivers/scsi/qla2xxx/ql2100_fw.h | 4866 +++++++++++++++++++++
drivers/scsi/qla2xxx/ql2200_fw.h | 5314 +++++++++++++++++++++++
drivers/scsi/qla2xxx/ql2200ip_fw.h | 5868 +++++++++++++++++++++++++
drivers/scsi/qla2xxx/ql2300_fw.h | 6215 +++++++++++++++++++++++++++
drivers/scsi/qla2xxx/ql2300ip_fw.h | 6885 ++++++++++++++++++++++++++++++
drivers/scsi/qla2xxx/qla2100.c | 43
drivers/scsi/qla2xxx/qla2200.c | 43
drivers/scsi/qla2xxx/qla2300.c | 43
drivers/scsi/qla2xxx/qla2x00.c |16854 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/scsi/qla2xxx/qla2x00.h | 2795 ++++++++++++
drivers/scsi/qla2xxx/qla2x00_ioctl.c | 4551 +++++++++++++++++++
drivers/scsi/qla2xxx/qla_cfg.c | 2608 +++++++++++
drivers/scsi/qla2xxx/qla_cfg.h | 181
drivers/scsi/qla2xxx/qla_cfgln.c | 684 +++
drivers/scsi/qla2xxx/qla_debug.h | 137
drivers/scsi/qla2xxx/qla_fo.c | 1358 +++++
drivers/scsi/qla2xxx/qla_fo.cfg | 31
drivers/scsi/qla2xxx/qla_fo.h | 75
drivers/scsi/qla2xxx/qla_gbl.h | 99
drivers/scsi/qla2xxx/qla_inioct.c | 479 ++
drivers/scsi/qla2xxx/qla_ip.c | 1781 +++++++
drivers/scsi/qla2xxx/qla_ip.h | 464 ++
drivers/scsi/qla2xxx/qla_mbx.c | 2600 +++++++++++
drivers/scsi/qla2xxx/qla_mbx.h | 24
drivers/scsi/qla2xxx/qla_settings.h | 137
drivers/scsi/qla2xxx/qla_vendor.c | 190
drivers/scsi/qla2xxx/qla_version.h | 27
drivers/scsi/qla2xxx/qlfo.h | 413 +
drivers/scsi/qla2xxx/qlfolimits.h | 92
drivers/scsi/qla2xxx/qlfoln.h | 76
drivers/scsi/qla2xxx/release.txt | 28
drivers/scsi/qla2xxx/revision.notes | 822 +++
drivers/scsi/sym53c8xx.c | 44
drivers/scsi/sym53c8xx_2/sym_glue.c | 14
drivers/scsi/sym53c8xx_2/sym_hipd.c | 35
drivers/scsi/sym53c8xx_defs.h | 83
drivers/sound/ad1889.c | 2
drivers/video/Config.in | 14
drivers/video/dummycon.c | 10
drivers/video/sstfb.c | 114
fs/Makefile | 1
fs/binfmt_elf.c | 288 -
fs/exec.c | 97
fs/open.c | 22
fs/read_write.c | 40
include/asm-generic/xor.h | 378 +
include/asm-m68k/machdep.h | 4
include/asm-m68k/rtc.h | 50
include/asm-parisc/checksum.h | 26
include/asm-parisc/delay.h | 1
include/asm-parisc/hdreg.h | 4
include/asm-parisc/ide.h | 25
include/asm-parisc/ide.h-t0 | 110
include/asm-parisc/ide.h-tst | 91
include/asm-parisc/ide.h.save | 196
include/asm-parisc/io.h | 16
include/asm-parisc/linux_logo.h | 1433 ++++++
include/asm-parisc/pgalloc.h | 3
include/asm-parisc/spinlock_t.h | 38
include/asm-parisc/system.h | 4
include/asm-parisc/system.h.save | 145
include/asm-parisc/system_irqsave.h | 15
include/asm-parisc/system_irqsave.h.Orig | 17
include/asm-parisc/system_irqsave.h.save | 17
include/linux/binfmts.h | 2
include/linux/fs_struct.h | 3
include/linux/init.h | 17
include/linux/ioport.h | 1
include/linux/major.h | 1
include/linux/mm.h | 31
include/linux/pci.h | 2
include/linux/rtc.h | 28
include/linux/sched.h | 2
include/linux/smp.h | 5
include/linux/sysctl.h | 2
include/linux/tcp_diag.h | 3
include/linux/tty.h | 2
init/main.c | 9
kernel/exit.c | 9
kernel/module.c | 1
kernel/printk.c | 11
kernel/signal.c | 10
kernel/sys.c | 11
kernel/sysctl.c | 11
kernel/timer.c | 2
mm/mmap.c | 99
mm/vmscan.c | 1
net/ipv4/ip_fragment.c | 2
net/ipv4/ip_input.c | 1
net/ipv4/proc.c | 1
net/ipv4/udp.c | 5
net/sunrpc/clnt.c | 2
181 files changed, 78405 insertions(+), 1123 deletions(-)
(hmm don't remember if linux_logo is of mine dpkg install or a new one in
our tree :)
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-11 5:40 ` [parisc-linux] parisc-linux.org kernel Joel Soete
@ 2003-04-11 9:41 ` Joel Soete
2003-04-11 15:58 ` Grant Grundler
1 sibling, 0 replies; 37+ messages in thread
From: Joel Soete @ 2003-04-11 9:41 UTC (permalink / raw)
To: Grant Grundler; +Cc: parisc-linux
>
>>
>>Please post the diffstat results to the mailing list.
>>
>>You can ignore complete driver "updates" I've committed.
>>Some newer drivers work better for parisc, some don't. qlogic driver
>>doesn't crash but it doesn't work right either. tg3 v1.5 is an example
>>where it works better than the existing version.
>>
>>In general, breaking up the 3.5MB diff into smaller chunks makes it
>>easier for Marcelo to handle.
>>
>Here is the rough diffstat (still have to reverse ql driver patches, I will
>try to find time this week-end :) )
>
Forget, it is a bit quiet calm and revert following patches:
patching file drivers/scsi/Config.in
patching file drivers/scsi/Makefile
Hunk #2 succeeded at 75 with fuzz 1 (offset 3 lines).
patching file drivers/scsi/qla2xxx/Config.in
patching file drivers/scsi/qla2xxx/Makefile
patching file drivers/scsi/qla2xxx/README.qla2x00
patching file drivers/scsi/qla2xxx/SUPPORTED_KERNEL_VERSION.txt
patching file drivers/scsi/qla2xxx/exioct.h
patching file drivers/scsi/qla2xxx/exioctln.h
patching file drivers/scsi/qla2xxx/inioct.h
patching file drivers/scsi/qla2xxx/listops.h
patching file drivers/scsi/qla2xxx/ql2100_fw.h
patching file drivers/scsi/qla2xxx/ql2200_fw.h
patching file drivers/scsi/qla2xxx/ql2200ip_fw.h
patching file drivers/scsi/qla2xxx/ql2300_fw.h
patching file drivers/scsi/qla2xxx/ql2300ip_fw.h
patching file drivers/scsi/qla2xxx/qla2100.c
patching file drivers/scsi/qla2xxx/qla2200.c
patching file drivers/scsi/qla2xxx/qla2300.c
patching file drivers/scsi/qla2xxx/qla2x00.c
patching file drivers/scsi/qla2xxx/qla2x00.h
patching file drivers/scsi/qla2xxx/qla2x00_ioctl.c
patching file drivers/scsi/qla2xxx/qla_cfg.c
patching file drivers/scsi/qla2xxx/qla_cfg.h
patching file drivers/scsi/qla2xxx/qla_cfgln.c
patching file drivers/scsi/qla2xxx/qla_debug.h
patching file drivers/scsi/qla2xxx/qla_fo.c
patching file drivers/scsi/qla2xxx/qla_fo.cfg
patching file drivers/scsi/qla2xxx/qla_fo.h
patching file drivers/scsi/qla2xxx/qla_gbl.h
patching file drivers/scsi/qla2xxx/qla_inioct.c
patching file drivers/scsi/qla2xxx/qla_ip.c
patching file drivers/scsi/qla2xxx/qla_ip.h
patching file drivers/scsi/qla2xxx/qla_mbx.c
patching file drivers/scsi/qla2xxx/qla_mbx.h
patching file drivers/scsi/qla2xxx/qla_settings.h
patching file drivers/scsi/qla2xxx/qla_vendor.c
patching file drivers/scsi/qla2xxx/qla_version.h
patching file drivers/scsi/qla2xxx/qlfo.h
patching file drivers/scsi/qla2xxx/qlfolimits.h
patching file drivers/scsi/qla2xxx/qlfoln.h
patching file drivers/scsi/qla2xxx/release.txt
patching file drivers/scsi/qla2xxx/revision.notes
And so obtain the following diffstat:
Documentation/Configure.help | 90 +
Makefile | 16
arch/m68k/config.in | 5
arch/m68k/kernel/m68k_ksyms.c | 5
arch/m68k/kernel/setup.c | 3
arch/m68k/q40/config.c | 41
arch/parisc/config.in | 6
arch/parisc/debian-configs/32 | 989 +++++++++++++++++++++
arch/parisc/debian-configs/32-smp | 988 +++++++++++++++++++++
arch/parisc/debian-configs/32-udeb | 915 +++++++++++++++++++
arch/parisc/debian-configs/64 | 977 +++++++++++++++++++++
arch/parisc/debian-configs/64-smp | 976 +++++++++++++++++++++
arch/parisc/debian-configs/64-udeb | 865 ++++++++++++++++++
arch/parisc/defpalo.conf | 21
arch/parisc/kernel/cache.c | 80 +
arch/parisc/kernel/ccio-dma.c | 17
arch/parisc/kernel/ccio-rm-dma.c | 2
arch/parisc/kernel/drivers.c | 51 -
arch/parisc/kernel/entry.S | 4
arch/parisc/kernel/hardware.c | 10
arch/parisc/kernel/head.S | 2
arch/parisc/kernel/ioctl32.c | 5
arch/parisc/kernel/irq.c | 4
arch/parisc/kernel/lasimap.map | 322 ------
arch/parisc/kernel/parisc_ksyms.c | 11
arch/parisc/kernel/pci-dma.c | 8
arch/parisc/kernel/perf.c | 10
arch/parisc/kernel/processor.c | 2
arch/parisc/kernel/sba_iommu.c | 2
arch/parisc/kernel/smp.c | 13
arch/parisc/kernel/traps.c | 8
arch/parisc/kernel/unaligned.c | 394 +++++---
arch/parisc/math-emu/dfadd.c | 2
arch/parisc/math-emu/dfcmp.c | 2
arch/parisc/math-emu/dfdiv.c | 2
arch/parisc/math-emu/dfmpy.c | 2
arch/parisc/math-emu/dfrem.c | 2
arch/parisc/math-emu/dfsqrt.c | 2
arch/parisc/math-emu/dfsub.c | 2
arch/parisc/math-emu/driver.c | 17
arch/parisc/math-emu/fcnvff.c | 2
arch/parisc/math-emu/fcnvfu.c | 2
arch/parisc/math-emu/fcnvfut.c | 2
arch/parisc/math-emu/fcnvfx.c | 2
arch/parisc/math-emu/fcnvfxt.c | 2
arch/parisc/math-emu/fcnvuf.c | 2
arch/parisc/math-emu/fcnvxf.c | 2
arch/parisc/math-emu/float.h | 2
arch/parisc/math-emu/fmpyfadd.c | 2
arch/parisc/math-emu/fpu.h | 2
arch/parisc/math-emu/fpudispatch.c | 19
arch/parisc/math-emu/sfadd.c | 2
arch/parisc/math-emu/sfcmp.c | 2
arch/parisc/math-emu/sfdiv.c | 2
arch/parisc/math-emu/sfmpy.c | 2
arch/parisc/math-emu/sfrem.c | 2
arch/parisc/math-emu/sfsqrt.c | 2
arch/parisc/math-emu/sfsub.c | 2
drivers/char/Config.in | 3
drivers/char/Makefile | 2
drivers/char/pty.c | 4
drivers/char/serial.c | 115 ++
drivers/gsc/dino.c | 9
drivers/ide/pci/ns87415.c | 8
drivers/ide/setup-pci.c | 2
drivers/net/acenic.c | 5
drivers/net/lasi_82596.c | 2
drivers/net/pcnet32.c | 26
drivers/net/tulip/eeprom.c | 3
drivers/net/tulip/media.c | 29
drivers/net/wireless/airo.c | 7
drivers/pci/quirks.c | 3
drivers/pci/setup-bus.c | 37
drivers/scsi/Config.in | 53 -
drivers/scsi/Makefile | 1
drivers/scsi/cpqfcTScontrol.c | 45
drivers/scsi/cpqfcTSi2c.c | 3
drivers/scsi/cpqfcTSinit.c | 12
drivers/scsi/cpqfcTSstructs.h | 4
drivers/scsi/cpqfcTSworker.c | 2
drivers/scsi/ncr53c8xx.c | 341 ++++++-
drivers/scsi/sym53c8xx.c | 44
drivers/scsi/sym53c8xx_2/sym_glue.c | 14
drivers/scsi/sym53c8xx_2/sym_hipd.c | 35
drivers/scsi/sym53c8xx_defs.h | 83 +
drivers/sound/ad1889.c | 2
drivers/video/Config.in | 14
drivers/video/dummycon.c | 10
drivers/video/sstfb.c | 114 +-
fs/Makefile | 1
fs/binfmt_elf.c | 288 +++---
fs/exec.c | 97 +-
fs/open.c | 22
fs/read_write.c | 40
include/asm-generic/xor.h | 378 ++++++++
include/asm-m68k/machdep.h | 4
include/asm-m68k/rtc.h | 50 -
include/asm-parisc/checksum.h | 26
include/asm-parisc/delay.h | 1
include/asm-parisc/hdreg.h | 4
include/asm-parisc/ide.h | 25
include/asm-parisc/ide.h-t0 | 110 ++
include/asm-parisc/ide.h-tst | 91 +
include/asm-parisc/ide.h.save | 196 ++++
include/asm-parisc/io.h | 16
include/asm-parisc/linux_logo.h | 1433 ++++++++++++++++++++++++++++++-
include/asm-parisc/pgalloc.h | 3
include/asm-parisc/spinlock_t.h | 38
include/asm-parisc/system.h | 4
include/asm-parisc/system.h.save | 145 +++
include/asm-parisc/system_irqsave.h | 15
include/asm-parisc/system_irqsave.h.Orig | 17
include/asm-parisc/system_irqsave.h.save | 17
include/linux/binfmts.h | 2
include/linux/fs_struct.h | 3
include/linux/init.h | 17
include/linux/ioport.h | 1
include/linux/major.h | 1
include/linux/mm.h | 31
include/linux/pci.h | 2
include/linux/rtc.h | 28
include/linux/sched.h | 2
include/linux/smp.h | 5
include/linux/sysctl.h | 2
include/linux/tcp_diag.h | 3
include/linux/tty.h | 2
init/main.c | 9
kernel/exit.c | 9
kernel/module.c | 1
kernel/printk.c | 11
kernel/signal.c | 10
kernel/sys.c | 11
kernel/sysctl.c | 11
kernel/timer.c | 2
mm/mmap.c | 99 +-
mm/vmscan.c | 1
net/ipv4/ip_fragment.c | 2
net/ipv4/ip_input.c | 1
net/ipv4/proc.c | 1
net/ipv4/udp.c | 5
net/sunrpc/clnt.c | 2
141 files changed, 10130 insertions(+), 1123 deletions(-)
corresponding to a patch of about 450k ;)
J
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-11 5:40 ` [parisc-linux] parisc-linux.org kernel Joel Soete
2003-04-11 9:41 ` Joel Soete
@ 2003-04-11 15:58 ` Grant Grundler
2003-04-12 20:30 ` Joel Soete
2003-04-14 12:13 ` Joel Soete
1 sibling, 2 replies; 37+ messages in thread
From: Grant Grundler @ 2003-04-11 15:58 UTC (permalink / raw)
To: Joel Soete; +Cc: parisc-linux
On Fri, Apr 11, 2003 at 07:40:32AM +0200, Joel Soete wrote:
> Here is the rough diffstat (still have to reverse ql driver patches, I will
> try to find time this week-end :) )
cool - let me add some general comments.
You might break the diff up into chunks along the lines that
I've commented on them below. You should end up with something like
15-20 patches.
> Documentation/Configure.help | 90
I expect parisc-specific changes here.
> Makefile | 16
Don't submit the Makefile unless you are sure we need it.
> arch/m68k/config.in | 5
...
Don't submit m68k - Marcello should be ahead here.
> arch/parisc/config.in | 6
...
parisc specific (our tree is authoritative)
Need to review for changes in Marcelo's tree.
I expect Marcello to take the mess as-is if there
are no conflicts.
> drivers/char/Config.in | 3
> drivers/char/Makefile | 2
> drivers/char/pty.c | 4
> drivers/char/serial.c | 115
Diva Support? If so, that's common to parisc/ia64.
> drivers/gsc/dino.c | 9
parisc specific.
> drivers/ide/pci/ns87415.c | 8
> drivers/ide/setup-pci.c | 2
Suckyio support. This probably needs to go to Andre Hedrick.
> drivers/net/acenic.c | 5
Jes Sorensen has all my changes for this driver.
Jes, can you compare Marcello's tree with ours?
(and please make sure Marcello gets the latest?)
> drivers/net/lasi_82596.c | 2
parisc specific
> drivers/net/pcnet32.c | 26
Dunno.
> drivers/net/tulip/eeprom.c | 3
> drivers/net/tulip/media.c | 29
Jeff Garzik has blessed changes I've made here.
I expect this to be about the PHY reset and media table changes
for card-mode Dino (rbrad's changes).
> drivers/net/wireless/airo.c | 7
Fixes from Lamont. He's not the maintainer but the card should
now work under parisc-linux. He's got one running in a B180.
> drivers/pci/quirks.c | 3
upstream changes.
> drivers/pci/setup-bus.c | 37
I expect this is the bridge_ctl field I added using
Russell King's patch (arm/pci maintainer). This probably
can NOT go in as-is. If the bulk of the other changes
go in, I'll deal with this.
> drivers/scsi/Config.in | 57
> drivers/scsi/Makefile | 15
Added qla2xxx
> drivers/scsi/cpqfcTScontrol.c | 45
> drivers/scsi/cpqfcTSi2c.c | 3
> drivers/scsi/cpqfcTSinit.c | 12
> drivers/scsi/cpqfcTSstructs.h | 4
> drivers/scsi/cpqfcTSworker.c | 2
These are my cleanups so one can load/unload the module
without crashing the system. TL chips (5100/5166) should
work but HP XL2 HBAs do not - need more work to read the serial
PROM and pull the GBIC info/WWW id out. I haven't tested
this on ia64, only parisc.
This is an orphan'd driver. I talked to the current maintainers
and they just don't have time to work on it. This is the same
group that supports cciss driver (SmartArray cards).
I've submitted these changes about 2 months ago.
See http://sourceforge.net/projects/cpqfc.
> drivers/scsi/ncr53c8xx.c | 341 +
rhirst changes for zalon support?
> drivers/scsi/qla2xxx/Config.in | 6
> drivers/scsi/qla2xxx/Makefile | 13
...
"New" driver. This is the released qla2xxx v6.0.4 from Qlogic.
Works on ia64 (weekend of hazard testing) but not quite on parisc.
At least it doesn't crash parisc. I have a card installed in
an a500 if someone has time to poke at this some more.
> drivers/scsi/sym53c8xx.c | 44
> drivers/scsi/sym53c8xx_2/sym_glue.c | 14
> drivers/scsi/sym53c8xx_2/sym_hipd.c | 35
> drivers/scsi/sym53c8xx_defs.h | 83
All of these sym53c8xx changes have been blessed by Gerard Roudier.
He's the maintainer. Please submit.
> drivers/sound/ad1889.c | 2
parisc specific.
> drivers/video/Config.in | 14
> drivers/video/dummycon.c | 10
> drivers/video/sstfb.c | 114
parisc specific.
> fs/Makefile | 1
> fs/binfmt_elf.c | 288 -
> fs/exec.c | 97
> fs/open.c | 22
> fs/read_write.c | 40
> include/asm-generic/xor.h | 378 +
> include/asm-m68k/machdep.h | 4
> include/asm-m68k/rtc.h | 50
I expect these are upstream changes
> include/asm-parisc/checksum.h | 26
...
parisc specific.
(logo was updated among other things)
> include/linux/binfmts.h | 2
...
Need to review if the remaining diff are upstream or our changes.
I suspect most are upstream.
> (hmm don't remember if linux_logo is of mine dpkg install or a new one in
> our tree :)
new one in our tree.
hth - thanks!
grant
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-11 15:58 ` Grant Grundler
@ 2003-04-12 20:30 ` Joel Soete
2003-04-14 12:13 ` Joel Soete
1 sibling, 0 replies; 37+ messages in thread
From: Joel Soete @ 2003-04-12 20:30 UTC (permalink / raw)
To: Grant Grundler; +Cc: parisc-linux
Grant Grundler wrote:
>On Fri, Apr 11, 2003 at 07:40:32AM +0200, Joel Soete wrote:
>
>
>>Here is the rough diffstat (still have to reverse ql driver patches, I will
>>try to find time this week-end :) )
>>
>>
>
>cool - let me add some general comments.
>You might break the diff up into chunks along the lines that
>I've commented on them below. You should end up with something like
>15-20 patches.
>
>
>
>> Documentation/Configure.help | 90
>>
>>
> I expect parisc-specific changes here.
>
>
>
1) CONFIG_HP_SDC (parisc specific)
2) Serial MUX and PDC support (parisc specific)
3) Generic Real Time Clock Support ?
4) CONFIG_IOMMU_CCIO (parisc specific)
>> Makefile | 16
>>
>>
> Don't submit the Makefile unless you are sure we need it.
>
>
>
>> arch/m68k/config.in | 5
>>
>>
>...
> Don't submit m68k - Marcello should be ahead here.
>
>
Clearly
>
>
>> arch/parisc/config.in | 6
>>
>>
>...
> parisc specific (our tree is authoritative)
> Need to review for changes in Marcelo's tree.
> I expect Marcello to take the mess as-is if there
> are no conflicts.
>
>
>
>> drivers/char/Config.in | 3
>>
>> drivers/char/Makefile | 2
>>
+if [ "$CONFIG_PARISC" = "y" ]; then
+ bool 'Generic RTC device support' CONFIG_GENRTC
+fi
>> drivers/char/pty.c | 4
>>
gcc-3.2 barier workaround
>> drivers/char/serial.c | 115
>>
>>
> Diva Support? If so, that's common to parisc/ia64.
>
yes (for this last)
>
>
>
>> drivers/gsc/dino.c | 9
>>
>>
> parisc specific.
>
>
>
>> drivers/ide/pci/ns87415.c | 8
>> drivers/ide/setup-pci.c | 2
>>
>>
> Suckyio support. This probably needs to go to Andre Hedrick.
>
>
>
>> drivers/net/acenic.c | 5
>>
>>
> Jes Sorensen has all my changes for this driver.
> Jes, can you compare Marcello's tree with ours?
> (and please make sure Marcello gets the latest?)
>
>
>
>> drivers/net/lasi_82596.c | 2
>>
>>
> parisc specific
>
>
>
>> drivers/net/pcnet32.c | 26
>>
>>
> Dunno.
>
>
* v1.27c Sat Apr 13 2002 Helge Deller <deller@gmx.de>
* typo-fixes & cleanups
>> drivers/net/tulip/eeprom.c | 3
>>
?? should be wrong merge (have to test on a b180 and examine compile
logs :(( )
>> drivers/net/tulip/media.c | 29
>>
>>
> Jeff Garzik has blessed changes I've made here.
> I expect this to be about the PHY reset and media table changes
> for card-mode Dino (rbrad's changes).
>
Yes (for this last)
>
>
>
>> drivers/net/wireless/airo.c | 7
>>
>>
> Fixes from Lamont. He's not the maintainer but the card should
> now work under parisc-linux. He's got one running in a B180.
>
>
>
>> drivers/pci/quirks.c | 3
>>
>>
> upstream changes.
>
>
>
>> drivers/pci/setup-bus.c | 37
>>
>>
> I expect this is the bridge_ctl field I added using
> Russell King's patch (arm/pci maintainer). This probably
> can NOT go in as-is. If the bulk of the other changes
> go in, I'll deal with this.
>
>
>
>> drivers/scsi/Config.in | 57
>> drivers/scsi/Makefile | 15
>>
>>
> Added qla2xxx
>
>
>
>> drivers/scsi/cpqfcTScontrol.c | 45
>> drivers/scsi/cpqfcTSi2c.c | 3
>> drivers/scsi/cpqfcTSinit.c | 12
>> drivers/scsi/cpqfcTSstructs.h | 4
>> drivers/scsi/cpqfcTSworker.c | 2
>>
>>
> These are my cleanups so one can load/unload the module
> without crashing the system. TL chips (5100/5166) should
> work but HP XL2 HBAs do not - need more work to read the serial
> PROM and pull the GBIC info/WWW id out. I haven't tested
> this on ia64, only parisc.
>
> This is an orphan'd driver. I talked to the current maintainers
> and they just don't have time to work on it.
>
Hmm I also just exchange a short mail with him and the idea was that it
would be better to re-write completely this driver (without any doc and
not yet enough knowledge on writing driver, I abandon the idea to work
on, sorry)
> This is the same
> group that supports cciss driver (SmartArray cards).
> I've submitted these changes about 2 months ago.
>
> See http://sourceforge.net/projects/cpqfc.
>
>
>> drivers/scsi/ncr53c8xx.c | 341 +
>>
>>
> rhirst changes for zalon support?
>
>
>
>> drivers/scsi/qla2xxx/Config.in | 6
>> drivers/scsi/qla2xxx/Makefile | 13
>>
>>
>...
> "New" driver. This is the released qla2xxx v6.0.4 from Qlogic.
> Works on ia64 (weekend of hazard testing) but not quite on parisc.
> At least it doesn't crash parisc. I have a card installed in
> an a500 if someone has time to poke at this some more.
>
>
(is ql we used on some of our Sun could work also on parisc? if yes my
pb would be to convince our _new_ HP engineer to put one in the N I
spoke about elsewhre ;?)
>
>
>> drivers/scsi/sym53c8xx.c | 44
>> drivers/scsi/sym53c8xx_2/sym_glue.c | 14
>> drivers/scsi/sym53c8xx_2/sym_hipd.c | 35
>> drivers/scsi/sym53c8xx_defs.h | 83
>>
>>
> All of these sym53c8xx changes have been blessed by Gerard Roudier.
> He's the maintainer. Please submit.
>
>
>
>> drivers/sound/ad1889.c | 2
>>
>>
> parisc specific.
>
>
>
>> drivers/video/Config.in | 14
>> drivers/video/dummycon.c | 10
>> drivers/video/sstfb.c | 114
>>
>>
> parisc specific.
>
>
>
>> fs/Makefile | 1
>> fs/binfmt_elf.c | 288 -
>> fs/exec.c | 97
>> fs/open.c | 22
>> fs/read_write.c | 40
>> include/asm-generic/xor.h | 378 +
>> include/asm-m68k/machdep.h | 4
>> include/asm-m68k/rtc.h | 50
>>
>>
> I expect these are upstream changes
>
>
>
>> include/asm-parisc/checksum.h | 26
>>
>>
>...
> parisc specific.
> (logo was updated among other things)
>
>
>
>> include/linux/binfmts.h | 2
>>
>>
>...
> Need to review if the remaining diff are upstream or our changes.
> I suspect most are upstream.
>
>
>
>>(hmm don't remember if linux_logo is of mine dpkg install or a new one in
>>our tree :)
>>
>>
>
>new one in our tree.
>
>hth - thanks!
>grant
>
>
>
Ok I will examine deepely the rest.
I already had a ruby script which help me to 'split' a patch into 'per
file' patch so I could easily re-merge some one together as all you mark
me parisc specific, ...
I will try to submit a first draft next week,
Joel
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-14 12:13 ` Joel Soete
@ 2003-04-14 11:39 ` Alan Cox
2003-04-14 13:53 ` Joel Soete
2003-04-15 16:32 ` Joel Soete
2003-04-14 14:18 ` Michael Wood
1 sibling, 2 replies; 37+ messages in thread
From: Alan Cox @ 2003-04-14 11:39 UTC (permalink / raw)
To: Joel Soete; +Cc: Grant Grundler, parisc-linux
On Llu, 2003-04-14 at 13:13, Joel Soete wrote:
> +#if defined(__hppa__) && defined(CONFIG_SUPERIO)
> +#include <asm/superio.h>
> +#endif
> +
Please keep superio out of generic drivers
> if (!using_inta)
> +#if defined(__hppa__) && defined(CONFIG_SUPERIO)
> + hwif->irq = superio_get_ide_irq(); /* legacy mode */
> +#else
> hwif->irq = hwif->channel ? 15 : 14; /* legacy mode */
> +#endif
> else if (!hwif->irq && hwif->mate && hwif->mate->irq)
> hwif->irq = hwif->mate->irq; /* share IRQ with mate */
Ughh. Ok this needs tackling in a more general way. get_legacy_irq(0/1)
perhaps. This isnt the only port we need to sort out.
Ok suppose you added superio.h to include/asm-parisc/ide.h and added
ide_get_legacy(int n) [n=0/1] for interfaces. I can do the same for the
other ports (return 14+n) and it will stay clean in 2.4 and 2.5
> (dev->class & 0x80))) {
> - unsigned long dma_base = ide_get_or_set_dma_base(hwif);
> + u32 dma_base = ide_get_or_set_dma_base(hwif);
Thats reverting a fix. dma_base must be unsigned long for 64bit
platforms. Looks just like a merge error.
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
@ 2003-04-14 11:52 Joel Soete
2003-04-14 11:54 ` Matthew Wilcox
0 siblings, 1 reply; 37+ messages in thread
From: Joel Soete @ 2003-04-14 11:52 UTC (permalink / raw)
To: Gerard Roudier, Grant Grundler; +Cc: parisc-linux
[-- Attachment #1: Type: text/plain, Size: 1494 bytes --]
Hi Gerard,
For the merge of palinux tree with upstream, I would like to submit to your
attention following patches needed in parisc tree:
>-- Original Message --
>From: Grant Grundler <grundler@parisc-linux.org>
>To: Joel Soete <jsoe0708@tiscali.be>
>Cc: parisc-linux@lists.parisc-linux.org
>Subject: Re: [parisc-linux] parisc-linux.org kernel
>Date: Fri, 11 Apr 2003 09:58:50 -0600
>
>
>On Fri, Apr 11, 2003 at 07:40:32AM +0200, Joel Soete wrote:
>> Here is the rough diffstat (still have to reverse ql driver patches,
I
>will
>> try to find time this week-end :) )
>
>cool - let me add some general comments.
>You might break the diff up into chunks along the lines that
>I've commented on them below. You should end up with something like
>15-20 patches.
>
...
>> drivers/scsi/ncr53c8xx.c | 341 +
> rhirst changes for zalon support?
...
>
>> drivers/scsi/sym53c8xx.c | 44
>> drivers/scsi/sym53c8xx_2/sym_glue.c | 14
>> drivers/scsi/sym53c8xx_2/sym_hipd.c | 35
>> drivers/scsi/sym53c8xx_defs.h | 83
> All of these sym53c8xx changes have been blessed by Gerard Roudier.
> He's the maintainer. Please submit.
>
Thanks in advance for your help,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
[-- Attachment #2: 03_Sym53c8.patch --]
[-- Type: application/octet-stream, Size: 36807 bytes --]
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/scsi/sym53c8xx.c linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx.c
--- linux-2.4.21-pre7/drivers/scsi/sym53c8xx.c 2003-03-27 19:43:51.000000000 +0100
+++ linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx.c 2003-03-27 18:50:22.000000000 +0100
@@ -4915,6 +4915,11 @@
u_long period;
int i;
+#ifdef CONFIG_PARISC
+ char scsi_mode = -1;
+ struct hardware_path hwpath;
+#endif
+
/*
** Wide ?
*/
@@ -4986,6 +4991,29 @@
*/
period = (4 * div_10M[0] + np->clock_khz - 1) / np->clock_khz;
+
+#if defined(CONFIG_PARISC)
+ /* Host firmware (PDC) keeps a table for crippling SCSI capabilities.
+ * Many newer machines export one channel of 53c896 chip
+ * as SE, 50-pin HD. Also used for Multi-initiator SCSI clusters
+ * to set the SCSI Initiator ID.
+ */
+ get_pci_node_path(np->pdev, &hwpath);
+ if (pdc_get_initiator(&hwpath, &np->myaddr, &period, &np->maxwide, &scsi_mode))
+ {
+ if (scsi_mode >= 0) {
+ /* C3000 PDC reports period/mode */
+ driver_setup.diff_support = 0;
+ switch(scsi_mode) {
+ case 0: np->scsi_mode = SMODE_SE; break;
+ case 1: np->scsi_mode = SMODE_HVD; break;
+ case 2: np->scsi_mode = SMODE_LVD; break;
+ default: break;
+ }
+ }
+ }
+#endif
+
if (period <= 250) np->minsync = 10;
else if (period <= 303) np->minsync = 11;
else if (period <= 500) np->minsync = 12;
@@ -5128,7 +5156,6 @@
np->rv_ctest4 |= MPEE; /* Master parity checking */
if (driver_setup.scsi_parity)
np->rv_scntl0 |= 0x0a; /* full arb., ena parity, par->ATN */
-
#ifdef SCSI_NCR_NVRAM_SUPPORT
/*
** Get parity checking, host ID and verbose mode from NVRAM
@@ -5196,7 +5223,7 @@
if (np->sv_stest2 & 0x20)
np->scsi_mode = SMODE_HVD;
break;
- default:/* Don't care about HVD */
+ default: /* Don't care about HVD */
break;
}
}
@@ -5239,6 +5266,7 @@
tcb_p tp = &np->target[i];
tp->usrsync = 255;
+
#ifdef SCSI_NCR_NVRAM_SUPPORT
if (nvram) {
switch(nvram->type) {
@@ -5256,10 +5284,11 @@
if (driver_setup.use_nvram & 0x8)
tp->usrflag &= ~UF_NOSCAN;
}
- else {
+ else
#else
- if (1) {
+ if (1)
#endif
+ {
tp->usrsync = driver_setup.default_sync;
tp->usrwide = driver_setup.max_wide;
tp->usrtags = MAX_TAGS;
@@ -7074,7 +7103,11 @@
((INW(nc_sbdl) & 0xff00) << 10) | /* d15-8 */
INB(nc_sbcl); /* req ack bsy sel atn msg cd io */
+#ifdef CONFIG_PARISC
+ if (!np->maxwide)
+#else
if (!(np->features & FE_WIDE))
+#endif
term &= 0x3ffff;
if (term != (2<<7)) {
@@ -12974,6 +13007,7 @@
}
if (i != count) /* Ignore this device if we already have it */
continue;
+ pci_set_master(pcidev);
devp = &devtbl[count];
devp->host_id = driver_setup.host_id;
devp->attach_done = 0;
@@ -13217,7 +13251,7 @@
return -1;
}
-#ifdef __powerpc__
+#if defined(__powerpc__) || defined(__hppa__)
/*
** Fix-up for power/pc.
** Should not be performed by the driver.
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/scsi/sym53c8xx_2/sym_glue.c linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx_2/sym_glue.c
--- linux-2.4.21-pre7/drivers/scsi/sym53c8xx_2/sym_glue.c 2002-11-29 00:53:14.000000000 +0100
+++ linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx_2/sym_glue.c 2002-12-20 15:56:22.000000000 +0100
@@ -142,10 +142,24 @@
#define SYM_LOCK_HCB(np, flags) spin_lock_irqsave(&np->s.smp_lock, flags)
#define SYM_UNLOCK_HCB(np, flags) spin_unlock_irqrestore(&np->s.smp_lock, flags)
+/* Warning!
+ * sym2 driver used to hold iorl in sym53c8xx_intr and sym_timer
+ * with these macros. However, we have observed that this causes
+ * a deadlock with the iorl held by scsi_register_host. A survey
+ * of a couple of other scsi drivers that uses the "new" eh
+ * code seems to suggest that this is not required. I've disabled
+ * these for now, without having completely understood if this
+ * is correct.
+ */
+#ifndef CONFIG_PARISC /* hack */
#define SYM_LOCK_SCSI(np, flags) \
spin_lock_irqsave(&io_request_lock, flags)
#define SYM_UNLOCK_SCSI(np, flags) \
spin_unlock_irqrestore(&io_request_lock, flags)
+#else
+#define SYM_LOCK_SCSI(np, flags)
+#define SYM_UNLOCK_SCSI(np, flags)
+#endif
/* Ugly, but will make things easier if this locking will ever disappear */
#define SYM_LOCK_SCSI_NOSAVE(np) spin_lock_irq(&io_request_lock)
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/scsi/sym53c8xx_2/sym_hipd.c linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx_2/sym_hipd.c
--- linux-2.4.21-pre7/drivers/scsi/sym53c8xx_2/sym_hipd.c 2003-03-27 19:43:51.000000000 +0100
+++ linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx_2/sym_hipd.c 2003-03-27 18:50:22.000000000 +0100
@@ -289,7 +289,11 @@
((INW(nc_sbdl) & 0xff00) << 10) | /* d15-8 */
INB(nc_sbcl); /* req ack bsy sel atn msg cd io */
+#ifdef CONFIG_PARISC
+ if (!np->maxwide)
+#else
if (!(np->features & FE_WIDE))
+#endif
term &= 0x3ffff;
if (term != (2<<7)) {
@@ -744,6 +748,12 @@
u32 period;
int i;
+#ifdef CONFIG_PARISC
+ unsigned long pdc_period;
+ char scsi_mode = -1;
+ struct hardware_path hwpath;
+#endif
+
/*
* Wide ?
*/
@@ -800,6 +810,31 @@
* Btw, 'period' is in tenths of nanoseconds.
*/
period = (4 * div_10M[0] + np->clock_khz - 1) / np->clock_khz;
+
+#if defined(CONFIG_PARISC)
+ /* Host firmware (PDC) keeps a table for crippling SCSI capabilities.
+ * Many newer machines export one channel of 53c896 chip
+ * as SE, 50-pin HD. Also used for Multi-initiator SCSI clusters
+ * to set the SCSI Initiator ID.
+ */
+ get_pci_node_path(np->s.device, &hwpath);
+ if (pdc_get_initiator(&hwpath, &np->myaddr, &pdc_period, &np->maxwide, &scsi_mode))
+ {
+ if (scsi_mode >= 0) {
+ /* C3000 PDC reports period/mode */
+ SYM_SETUP_SCSI_DIFF = 0;
+ switch(scsi_mode) {
+ case 0: np->scsi_mode = SMODE_SE; break;
+ case 1: np->scsi_mode = SMODE_HVD; break;
+ case 2: np->scsi_mode = SMODE_LVD; break;
+ default: break;
+ }
+ }
+
+ period = (u32) pdc_period;
+ }
+#endif
+
if (period <= 250) np->minsync = 10;
else if (period <= 303) np->minsync = 11;
else if (period <= 500) np->minsync = 12;
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/scsi/sym53c8xx_defs.h linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx_defs.h
--- linux-2.4.21-pre7/drivers/scsi/sym53c8xx_defs.h 2002-08-03 02:39:44.000000000 +0200
+++ linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx_defs.h 2003-03-19 14:33:25.000000000 +0100
@@ -82,9 +82,11 @@
/*
* No more an option, enabled by default.
*/
+#ifndef ENABLE_SCSI_ZALON
#ifndef CONFIG_SCSI_NCR53C8XX_NVRAM_DETECT
#define CONFIG_SCSI_NCR53C8XX_NVRAM_DETECT
#endif
+#endif
/*
** These options are not tunable from 'make config'
@@ -185,6 +187,24 @@
#endif
#elif defined(__sparc__)
#undef SCSI_NCR_IOMAPPED
+#elif defined(__hppa__)
+#if defined(ENABLE_SCSI_ZALON)
+#undef SCSI_NCR_IOMAPPED
+#endif
+#endif
+
+/*
+ * Should we enable DAC cycles on Sparc64 platform?
+ * Until further investigation we do not enable it
+ * at the moment.
+ * We may want to enable it for __ia64__ (untested)
+ */
+#if defined(__ia64__)
+# if !defined(SCSI_NCR_USE_64BIT_DAC)
+# define SCSI_NCR_USE_64BIT_DAC
+# endif
+#else
+# undef SCSI_NCR_USE_64BIT_DAC
#endif
/*
@@ -383,25 +403,24 @@
#define readb_raw readb
#define writeb_raw writeb
-#if defined(__hppa__)
-#define readw_l2b(a) le16_to_cpu(readw(a))
-#define readl_l2b(a) le32_to_cpu(readl(a))
-#define writew_b2l(v,a) writew(cpu_to_le16(v),a)
-#define writel_b2l(v,a) writel(cpu_to_le32(v),a)
-#elif defined(__mips__)
-#define readw_l2b readw
-#define readl_l2b readl
-#define writew_b2l writew
-#define writel_b2l writel
-#define inw_l2b inw
-#define inl_l2b inl
-#define outw_b2l outw
-#define outl_b2l outl
+#if defined(SCSI_NCR_BIG_ENDIAN)
+#define readw_l2b __raw_readw
+#define readl_l2b __raw_readl
+#define writew_b2l __raw_writew
+#define writel_b2l __raw_writel
+#define readw_raw __raw_readw
+#define readl_raw(a) __raw_readl((unsigned long)(a))
+#define writew_raw __raw_writew
+#define writel_raw(v,a) __raw_writel(v,(unsigned long)(a))
#else /* Other big-endian */
#define readw_l2b readw
#define readl_l2b readl
#define writew_b2l writew
#define writel_b2l writel
+#define readw_raw readw
+#define readl_raw readl
+#define writew_raw writew
+#define writel_raw writel
#endif
#else /* little endian */
@@ -430,9 +449,11 @@
#endif
#endif
+#if !defined(__hppa__) && !defined(__mips__)
#ifdef SCSI_NCR_BIG_ENDIAN
#error "The NCR in BIG ENDIAN addressing mode is not (yet) supported"
#endif
+#endif
/*
@@ -585,10 +606,20 @@
#else
+#ifdef ENABLE_SCSI_ZALON
+/* Only 8 or 32 bit transfers allowed */
+#define INW_OFF(o) (readb((char *)np->reg + ncr_offw(o)) << 8 | readb((char *)np->reg + ncr_offw(o) + 1))
+#else
#define INW_OFF(o) readw_raw((char *)np->reg + ncr_offw(o))
+#endif
#define INL_OFF(o) readl_raw((char *)np->reg + (o))
+#ifdef ENABLE_SCSI_ZALON
+/* Only 8 or 32 bit transfers allowed */
+#define OUTW_OFF(o, val) do { writeb((char)((val) >> 8), (char *)np->reg + ncr_offw(o)); writeb((char)(val), (char *)np->reg + ncr_offw(o) + 1); } while (0)
+#else
#define OUTW_OFF(o, val) writew_raw((val), (char *)np->reg + ncr_offw(o))
+#endif
#define OUTL_OFF(o, val) writel_raw((val), (char *)np->reg + (o))
#endif
@@ -636,6 +667,10 @@
** NCR53C8XX Device Ids
*/
+#ifndef PSEUDO_ZALON_720_ID
+#define PSEUDO_ZALON_720_ID 0x5a00
+#endif
+
#ifndef PCI_DEVICE_ID_NCR_53C810
#define PCI_DEVICE_ID_NCR_53C810 1
#endif
@@ -739,6 +774,9 @@
#define FE_DAC (1<<24) /* Support DAC cycles (64 bit addressing) */
#define FE_ISTAT1 (1<<25) /* Have ISTAT1, MBOX0, MBOX1 registers */
#define FE_DAC_IN_USE (1<<26) /* Platform does DAC cycles */
+#define FE_EHP (1<<27) /* 720: Even host parity */
+#define FE_MUX (1<<28) /* 720: Multiplexed bus */
+#define FE_EA (1<<29) /* 720: Enable Ack */
#define FE_CACHE_SET (FE_ERL|FE_CLSE|FE_WRIE|FE_ERMP)
#define FE_SCSI_SET (FE_WIDE|FE_ULTRA|FE_ULTRA2|FE_DBLR|FE_QUAD|F_CLK80)
@@ -760,6 +798,9 @@
#define SCSI_NCR_CHIP_TABLE \
{ \
+ {PSEUDO_ZALON_720_ID, 0x0f, "720", 3, 8, 4, \
+ FE_WIDE|FE_DIFF|FE_EHP|FE_MUX|FE_EA} \
+ , \
{PCI_DEVICE_ID_NCR_53C810, 0x0f, "810", 4, 8, 4, \
FE_ERL} \
, \
@@ -832,6 +873,7 @@
*/
#define SCSI_NCR_CHIP_IDS \
{ \
+ PSEUDO_ZALON_720_ID, \
PCI_DEVICE_ID_NCR_53C810, \
PCI_DEVICE_ID_NCR_53C815, \
PCI_DEVICE_ID_NCR_53C820, \
@@ -1183,6 +1225,7 @@
/*17*/ u_char nc_mbox1; /* 896 and later cores only */
/*18*/ u_char nc_ctest0;
+ #define EHP 0x04 /* 720 even host parity */
/*19*/ u_char nc_ctest1;
/*1a*/ u_char nc_ctest2;
@@ -1200,6 +1243,7 @@
/*20*/ u_char nc_dfifo;
/*21*/ u_char nc_ctest4;
+ #define MUX 0x80 /* 720 host bus multiplex mode */
#define BDIS 0x80 /* mod: burst disable */
#define MPEE 0x08 /* mod: master parity error enable */
@@ -1232,6 +1276,7 @@
#define CLSE 0x80 /* mod: cache line size enable */
#define PFF 0x40 /* cmd: pre-fetch flush */
#define PFEN 0x20 /* mod: pre-fetch enable */
+ #define EA 0x20 /* mod: 720 enable-ack */
#define SSM 0x10 /* mod: single step mode */
#define IRQM 0x08 /* mod: irq mode (1 = totem pole !) */
#define STD 0x04 /* cmd: start dma mode */
@@ -1274,6 +1319,7 @@
/*4e*/ u_char nc_stest2;
#define ROF 0x40 /* reset scsi offset (after gross error!) */
+ #define DIF 0x20 /* 720 SCSI differential mode */
#define EXT 0x02 /* extended filtering */
/*4f*/ u_char nc_stest3;
@@ -1452,12 +1498,21 @@
#define SCR_SEL_TBL 0x42000000
#define SCR_SEL_TBL_ATN 0x43000000
+#ifdef SCSI_NCR_BIG_ENDIAN
+struct scr_tblsel {
+ u_char sel_scntl3;
+ u_char sel_id;
+ u_char sel_sxfer;
+ u_char sel_scntl4;
+};
+#else
struct scr_tblsel {
u_char sel_scntl4;
u_char sel_sxfer;
u_char sel_id;
u_char sel_scntl3;
};
+#endif
#define SCR_JMP_REL 0x04000000
#define SCR_ID(id) (((u_int32)(id)) << 16)
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/scsi/ncr53c8xx.c linux-2.4.21-pre7-pa3x/drivers/scsi/ncr53c8xx.c
--- linux-2.4.21-pre7/drivers/scsi/ncr53c8xx.c 2002-11-29 00:53:14.000000000 +0100
+++ linux-2.4.21-pre7-pa3x/drivers/scsi/ncr53c8xx.c 2002-12-20 15:56:21.000000000 +0100
@@ -82,6 +82,7 @@
** Etc...
**
** Supported NCR/SYMBIOS chips:
+** 53C720 (Wide, Fast SCSI-2, HP Zalon)
** 53C810 (8 bits, Fast SCSI-2, no rom BIOS)
** 53C815 (8 bits, Fast SCSI-2, on board rom BIOS)
** 53C820 (Wide, Fast SCSI-2, no rom BIOS)
@@ -180,6 +181,23 @@
typedef u32 u_int32;
typedef u64 u_int64;
typedef u_long vm_offset_t;
+
+#ifdef __hppa__
+/* Yuck. Current plan is to use ncr58c8xx.c for non-pci big endian
+** chips, and sym53c8xx.c for pci little endian chips. Define this
+** here so it gets seen by sym53c8xx_defs.h, pulled in via ncr53c8xx.h.
+*/
+#define SCSI_NCR_BIG_ENDIAN
+/* INTFLY interrupts don't always seem to get serviced atm.....
+*/
+#define SIMULATED_INTFLY
+#endif
+
+#if defined(CONFIG_SCSI_ZALON) || defined(CONFIG_SCSI_ZALON_MODULE)
+#define ENABLE_SCSI_ZALON
+#include "zalon7xx.h"
+#endif
+
#include "ncr53c8xx.h"
/*
@@ -383,6 +401,8 @@
struct Scsi_Host *host, struct scsi_device *devlist);
static void ncr53c8xx_intr(int irq, void *dev_id, struct pt_regs * regs);
static void ncr53c8xx_timeout(unsigned long np);
+static int ncr53c8xx_proc_info(char *buffer, char **start, off_t offset,
+ int length, int hostno, int func);
#define initverbose (driver_setup.verbose)
#define bootverbose (np->verbose)
@@ -454,7 +474,8 @@
#define SIR_RESEL_BAD_I_T_L (15)
#define SIR_RESEL_BAD_I_T_L_Q (16)
#define SIR_DONE_OVERFLOW (17)
-#define SIR_MAX (17)
+#define SIR_INTFLY (18)
+#define SIR_MAX (18)
/*==========================================================
**
@@ -626,6 +647,15 @@
** negotiation of wide and synch transfer and device quirks.
**----------------------------------------------------------------
*/
+#ifdef SCSI_NCR_BIG_ENDIAN
+/*0*/ u_short period;
+/*2*/ u_char sval;
+/*3*/ u_char minsync;
+/*0*/ u_char wval;
+/*1*/ u_char widedone;
+/*2*/ u_char quirks;
+/*3*/ u_char maxoffs;
+#else
/*0*/ u_char minsync;
/*1*/ u_char sval;
/*2*/ u_short period;
@@ -633,6 +663,7 @@
/*1*/ u_char quirks;
/*2*/ u_char widedone;
/*3*/ u_char wval;
+#endif
#ifdef SCSI_NCR_INTEGRITY_CHECKING
u_char ic_min_sync;
@@ -843,10 +874,17 @@
/*
** Last four bytes (host)
*/
+#ifdef SCSI_NCR_BIG_ENDIAN
+#define actualquirks phys.header.status[3]
+#define host_status phys.header.status[2]
+#define scsi_status phys.header.status[1]
+#define parity_status phys.header.status[0]
+#else
#define actualquirks phys.header.status[0]
#define host_status phys.header.status[1]
#define scsi_status phys.header.status[2]
#define parity_status phys.header.status[3]
+#endif
/*
** First four bytes (script)
@@ -1030,8 +1068,8 @@
** be used for probing adapter implementation differences.
**----------------------------------------------------------------
*/
- u_char sv_scntl0, sv_scntl3, sv_dmode, sv_dcntl, sv_ctest3, sv_ctest4,
- sv_ctest5, sv_gpcntl, sv_stest2, sv_stest4;
+ u_char sv_scntl0, sv_scntl3, sv_dmode, sv_dcntl, sv_ctest0, sv_ctest3,
+ sv_ctest4, sv_ctest5, sv_gpcntl, sv_stest2, sv_stest4;
/*----------------------------------------------------------------
** Actual initial value of IO register bits used by the
@@ -1039,8 +1077,8 @@
** features that are to be enabled.
**----------------------------------------------------------------
*/
- u_char rv_scntl0, rv_scntl3, rv_dmode, rv_dcntl, rv_ctest3, rv_ctest4,
- rv_ctest5, rv_stest2;
+ u_char rv_scntl0, rv_scntl3, rv_dmode, rv_dcntl, rv_ctest0, rv_ctest3,
+ rv_ctest4, rv_ctest5, rv_stest2;
/*----------------------------------------------------------------
** Targets management.
@@ -1162,7 +1200,7 @@
*/
struct ccb *ccb; /* Global CCB */
struct usrcmd user; /* Command from user */
- u_char release_stage; /* Synchronisation stage on release */
+ volatile u_char release_stage; /* Synchronisation stage on release */
#ifdef SCSI_NCR_INTEGRITY_CHECKING
/*----------------------------------------------------------------
@@ -1201,6 +1239,23 @@
*/
/*
+** For HP Zalon/53c720 systems, the Zalon interface
+** between CPU and 53c720 does prefetches, which causes
+** problems with self modifying scripts. The problem
+** is overcome by calling a dummy subroutine after each
+** modification, to force a refetch of the script on
+** return from the subroutine.
+*/
+
+#ifdef ENABLE_SCSI_ZALON
+#define PREFETCH_FLUSH_CNT 2
+#define PREFETCH_FLUSH SCR_CALL, PADDRH (wait_dma),
+#else
+#define PREFETCH_FLUSH_CNT 0
+#define PREFETCH_FLUSH
+#endif
+
+/*
** Script fragments which are loaded into the on-chip RAM
** of 825A, 875 and 895 chips.
*/
@@ -1208,7 +1263,7 @@
ncrcmd start [ 5];
ncrcmd startpos [ 1];
ncrcmd select [ 6];
- ncrcmd select2 [ 9];
+ ncrcmd select2 [ 9 + PREFETCH_FLUSH_CNT];
ncrcmd loadpos [ 4];
ncrcmd send_ident [ 9];
ncrcmd prepare [ 6];
@@ -1224,7 +1279,7 @@
ncrcmd setmsg [ 7];
ncrcmd cleanup [ 6];
ncrcmd complete [ 9];
- ncrcmd cleanup_ok [ 8];
+ ncrcmd cleanup_ok [ 8 + PREFETCH_FLUSH_CNT];
ncrcmd cleanup0 [ 1];
#ifndef SCSI_NCR_CCB_DONE_SUPPORT
ncrcmd signal [ 12];
@@ -1242,11 +1297,11 @@
ncrcmd idle [ 2];
ncrcmd reselect [ 8];
ncrcmd reselected [ 8];
- ncrcmd resel_dsa [ 6];
+ ncrcmd resel_dsa [ 6 + PREFETCH_FLUSH_CNT];
ncrcmd loadpos1 [ 4];
ncrcmd resel_lun [ 6];
ncrcmd resel_tag [ 6];
- ncrcmd jump_to_nexus [ 4];
+ ncrcmd jump_to_nexus [ 4 + PREFETCH_FLUSH_CNT];
ncrcmd nexus_indirect [ 4];
ncrcmd resel_notag [ 4];
ncrcmd data_in [MAX_SCATTERL * 4];
@@ -1267,7 +1322,7 @@
#endif
ncrcmd select_no_atn [ 8];
ncrcmd cancel [ 4];
- ncrcmd skip [ 9];
+ ncrcmd skip [ 9 + PREFETCH_FLUSH_CNT];
ncrcmd skip2 [ 19];
ncrcmd par_err_data_in [ 6];
ncrcmd par_err_other [ 4];
@@ -1300,9 +1355,10 @@
ncrcmd bad_i_t_l_q [ 4];
ncrcmd bad_target [ 8];
ncrcmd bad_status [ 8];
- ncrcmd start_ram [ 4];
+ ncrcmd start_ram [ 4 + PREFETCH_FLUSH_CNT];
ncrcmd start_ram0 [ 4];
ncrcmd sto_restart [ 5];
+ ncrcmd wait_dma [ 2];
ncrcmd snooptest [ 9];
ncrcmd snoopend [ 2];
};
@@ -1328,6 +1384,7 @@
static void ncr_getclock (ncb_p np, int mult);
static void ncr_selectclock (ncb_p np, u_char scntl3);
static ccb_p ncr_get_ccb (ncb_p np, u_char tn, u_char ln);
+static void ncr_chip_reset (ncb_p np, int delay);
static void ncr_init (ncb_p np, int reset, char * msg, u_long code);
static int ncr_int_sbmc (ncb_p np);
static int ncr_int_par (ncb_p np);
@@ -1527,6 +1584,10 @@
RADDR (dsa),
PADDR (loadpos),
/*
+ ** Flush script prefetch if required
+ */
+ PREFETCH_FLUSH
+ /*
** then we do the actual copy.
*/
SCR_COPY (sizeof (struct head)),
@@ -1827,6 +1888,10 @@
SCR_COPY_F (4),
RADDR (dsa),
PADDR (cleanup0),
+ /*
+ ** Flush script prefetch if required
+ */
+ PREFETCH_FLUSH
SCR_COPY (sizeof (struct head)),
NADDR (header),
}/*-------------------------< CLEANUP0 >--------------------*/,{
@@ -1856,8 +1921,13 @@
/*
** ... signal completion to the host
*/
+#ifdef SIMULATED_INTFLY
+ SCR_INT,
+ SIR_INTFLY,
+#else
SCR_INT_FLY,
0,
+#endif
/*
** Auf zu neuen Schandtaten!
*/
@@ -1876,8 +1946,13 @@
SCR_INT,
SIR_DONE_OVERFLOW,
}/*------------------------< DONE_END >---------------------*/,{
+#ifdef SIMULATED_INTFLY
+ SCR_INT,
+ SIR_INTFLY,
+#else
SCR_INT_FLY,
0,
+#endif
SCR_COPY (4),
RADDR (temp),
PADDR (done_pos),
@@ -2055,6 +2130,10 @@
RADDR (dsa),
PADDR (loadpos1),
/*
+ ** Flush script prefetch if required
+ */
+ PREFETCH_FLUSH
+ /*
** then we do the actual copy.
*/
SCR_COPY (sizeof (struct head)),
@@ -2116,6 +2195,10 @@
SCR_COPY_F (4),
RADDR (temp),
PADDR (nexus_indirect),
+ /*
+ ** Flush script prefetch if required
+ */
+ PREFETCH_FLUSH
SCR_COPY (4),
}/*-------------------------< NEXUS_INDIRECT >-------------------*/,{
0,
@@ -2272,6 +2355,10 @@
RADDR (dsa),
PADDRH (skip2),
/*
+ ** Flush script prefetch if required
+ */
+ PREFETCH_FLUSH
+ /*
** then we do the actual copy.
*/
SCR_COPY (sizeof (struct head)),
@@ -2782,6 +2869,10 @@
SCR_COPY_F (4),
RADDR (scratcha),
PADDRH (start_ram0),
+ /*
+ ** Flush script prefetch if required
+ */
+ PREFETCH_FLUSH
SCR_COPY (sizeof (struct script)),
}/*-------------------------< START_RAM0 >--------------------*/,{
0,
@@ -2799,6 +2890,17 @@
PADDR (startpos),
SCR_JUMP,
PADDR (start),
+}/*-------------------------< WAIT_DMA >-------------------*/,{
+ /*
+ ** For HP Zalon/53c720 systems, the Zalon interface
+ ** between CPU and 53c720 does prefetches, which causes
+ ** problems with self modifying scripts. The problem
+ ** is overcome by calling a dummy subroutine after each
+ ** modification, to force a refetch of the script on
+ ** return from the subroutine.
+ */
+ SCR_RETURN,
+ 0,
}/*-------------------------< SNOOPTEST >-------------------*/,{
/*
** Read the variable.
@@ -3132,9 +3234,12 @@
#define burst_length(bc) (!(bc))? 0 : 1 << (bc)
/*
- * Burst code from io register bits.
+ * Burst code from io register bits. Burst enable is ctest0 for c720,
+ * ctest4 for others.
*/
-#define burst_code(dmode, ctest4, ctest5) \
+#define burst_code(dmode, ctest0, ctest4, ctest5) \
+ (np->device_id == PSEUDO_ZALON_720_ID) ? \
+ (ctest0) & 0x80? 0 : (((dmode) & 0xc0) >> 6) + 1 : \
(ctest4) & 0x80? 0 : (((dmode) & 0xc0) >> 6) + ((ctest5) & 0x04) + 1
/*
@@ -3142,12 +3247,15 @@
*/
static inline void ncr_init_burst(ncb_p np, u_char bc)
{
- np->rv_ctest4 &= ~0x80;
+ u_char *be = (np->device_id == PSEUDO_ZALON_720_ID) ?
+ &np->rv_ctest0 : &np->rv_ctest4;
+
+ *be &= ~0x80;
np->rv_dmode &= ~(0x3 << 6);
np->rv_ctest5 &= ~0x4;
if (!bc) {
- np->rv_ctest4 |= 0x80;
+ *be |= 0x80;
}
else {
--bc;
@@ -3224,6 +3332,7 @@
np->sv_scntl3 = INB(nc_scntl3) & 0x07;
np->sv_dmode = INB(nc_dmode) & 0xce;
np->sv_dcntl = INB(nc_dcntl) & 0xa8;
+ np->sv_ctest0 = INB(nc_ctest0) & 0x84;
np->sv_ctest3 = INB(nc_ctest3) & 0x01;
np->sv_ctest4 = INB(nc_ctest4) & 0x80;
np->sv_ctest5 = INB(nc_ctest5) & 0x24;
@@ -3310,10 +3419,11 @@
np->rv_scntl0 = np->sv_scntl0;
np->rv_dmode = np->sv_dmode;
np->rv_dcntl = np->sv_dcntl;
+ np->rv_ctest0 = np->sv_ctest0;
np->rv_ctest3 = np->sv_ctest3;
np->rv_ctest4 = np->sv_ctest4;
np->rv_ctest5 = np->sv_ctest5;
- burst_max = burst_code(np->sv_dmode, np->sv_ctest4, np->sv_ctest5);
+ burst_max = burst_code(np->sv_dmode, np->sv_ctest0, np->sv_ctest4, np->sv_ctest5);
#else
/*
@@ -3321,7 +3431,7 @@
*/
burst_max = driver_setup.burst_max;
if (burst_max == 255)
- burst_max = burst_code(np->sv_dmode, np->sv_ctest4, np->sv_ctest5);
+ burst_max = burst_code(np->sv_dmode, np->sv_ctest0, np->sv_ctest4, np->sv_ctest5);
if (burst_max > 7)
burst_max = 7;
if (burst_max > np->maxburst)
@@ -3344,6 +3454,12 @@
np->rv_ctest3 |= WRIE; /* Write and Invalidate */
if (np->features & FE_DFS)
np->rv_ctest5 |= DFS; /* Dma Fifo Size */
+ if (np->features & FE_MUX)
+ np->rv_ctest4 |= MUX; /* Host bus multiplex mode */
+ if (np->features & FE_EA)
+ np->rv_dcntl |= EA; /* Enable ACK */
+ if (np->features & FE_EHP)
+ np->rv_ctest0 |= EHP; /* Even host parity */
/*
** Select some other
@@ -3523,6 +3639,7 @@
return 0;
}
+
/*
** Host attach and initialisations.
**
@@ -3543,6 +3660,7 @@
ncr_nvram *nvram = device->nvram;
int i;
+#ifndef ENABLE_SCSI_ZALON
printk(KERN_INFO "ncr53c%s-%d: rev 0x%x on pci bus %d device %d function %d "
#ifdef __sparc__
"irq %s\n",
@@ -3557,6 +3675,7 @@
#else
device->slot.irq);
#endif
+#endif
/*
** Allocate host_data structure
@@ -3645,7 +3764,6 @@
** Now the INB INW INL OUTB OUTW OUTL macros
** can be used safely.
*/
-
np->reg = (struct ncr_reg*) np->vaddr;
#endif /* !defined SCSI_NCR_IOMAPPED */
@@ -3654,7 +3772,9 @@
** Try to map the controller chip into iospace.
*/
+#ifndef ENABLE_SCSI_ZALON
request_region(device->slot.io_port, 128, "ncr53c8xx");
+#endif
np->base_io = device->slot.io_port;
#ifdef SCSI_NCR_NVRAM_SUPPORT
@@ -3768,9 +3888,7 @@
** Reset chip.
*/
- OUTB (nc_istat, SRST);
- UDELAY (100);
- OUTB (nc_istat, 0 );
+ ncr_chip_reset(np, 100);
/*
** Now check the cache handling of the pci chipset.
@@ -3887,7 +4005,9 @@
#ifdef DEBUG_NCR53C8XX
printk(KERN_DEBUG "%s: releasing IO region %x[%d]\n", ncr_name(np), np->base_io, 128);
#endif
+#ifndef ENABLE_SCSI_ZALON
release_region(np->base_io, 128);
+#endif
}
if (np->irq) {
#ifdef DEBUG_NCR53C8XX
@@ -3912,7 +4032,7 @@
scsi_unregister(instance);
return -1;
- }
+}
/*==========================================================
@@ -4699,9 +4819,7 @@
"command processing suspended for %d seconds\n",
ncr_name(np), settle_delay);
- OUTB (nc_istat, SRST);
- UDELAY (100);
- OUTB (nc_istat, 0);
+ ncr_chip_reset(np, 100);
UDELAY (2000); /* The 895 needs time for the bus mode to settle */
if (enab_int)
OUTW (nc_sien, RST);
@@ -4710,7 +4828,8 @@
** properly set IRQ mode, prior to resetting the bus.
*/
OUTB (nc_stest3, TE);
- OUTB (nc_dcntl, (np->rv_dcntl & IRQM));
+ if (np->device_id != PSEUDO_ZALON_720_ID)
+ OUTB (nc_dcntl, (np->rv_dcntl & IRQM));
OUTB (nc_scntl1, CRST);
UDELAY (200);
@@ -4917,6 +5036,10 @@
lcb_p lp;
int target, lun;
int i;
+ char inst_name[16];
+
+ /* Local copy so we don't access np after freeing it! */
+ strncpy(inst_name, ncr_name(np), 16);
printk("%s: releasing host resources\n", ncr_name(np));
@@ -4963,12 +5086,11 @@
*/
printk("%s: resetting chip\n", ncr_name(np));
- OUTB (nc_istat, SRST);
- UDELAY (100);
- OUTB (nc_istat, 0 );
+ ncr_chip_reset(np, 100);
OUTB(nc_dmode, np->sv_dmode);
OUTB(nc_dcntl, np->sv_dcntl);
+ OUTB(nc_ctest0, np->sv_ctest0);
OUTB(nc_ctest3, np->sv_ctest3);
OUTB(nc_ctest4, np->sv_ctest4);
OUTB(nc_ctest5, np->sv_ctest5);
@@ -4991,7 +5113,9 @@
#ifdef DEBUG_NCR53C8XX
printk("%s: releasing IO region %x[%d]\n", ncr_name(np), np->base_io, 128);
#endif
+#ifndef ENABLE_SCSI_ZALON
release_region(np->base_io, 128);
+#endif
/*
** Free allocated ccb(s)
@@ -5036,7 +5160,7 @@
m_free_dma(np->ccb, sizeof(struct ccb), "CCB");
m_free_dma(np, sizeof(struct ncb), "NCB");
- printk("%s: host resources successfully released\n", ncr_name(np));
+ printk("%s: host resources successfully released\n", inst_name);
return 1;
}
@@ -5061,7 +5185,6 @@
/*
** Sanity check
*/
-
if (!cp || cp->magic != CCB_MAGIC || !cp->cmd)
return;
@@ -5428,6 +5551,28 @@
}
}
+/*
+** Reset ncr chip.
+*/
+
+/* Some initialisation must be done immediately following reset, for 53c720,
+ * at least. EA (dcntl bit 5) isn't set here as it is set once only in
+ * the _detect function.
+ */
+
+static void ncr_chip_reset(ncb_p np, int delay)
+{
+ OUTB (nc_istat, SRST);
+ UDELAY (delay);
+ OUTB (nc_istat, 0 );
+
+ if (np->features & FE_EHP)
+ OUTB (nc_ctest0, EHP);
+ if (np->features & FE_MUX)
+ OUTB (nc_ctest4, MUX);
+}
+
+
/*==========================================================
**
**
@@ -5473,7 +5618,7 @@
*/
np->squeueput = 0;
np->script0->startpos[0] = cpu_to_scr(NCB_SCRIPTH_PHYS (np, tryloop));
-
+#ifdef SCSI_NCR_CCB_DONE_SUPPORT
/*
** Clear Done Queue
*/
@@ -5490,7 +5635,7 @@
np->ccb_done_ic = MAX_DONE-1;
np->scripth0->done_queue[5*(MAX_DONE-1) + 4] =
cpu_to_scr(NCB_SCRIPT_PHYS (np, done_plug));
-
+#endif
/*
** Wakeup all pending jobs.
*/
@@ -5500,8 +5645,10 @@
** Init chip.
*/
- OUTB (nc_istat, 0x00 ); /* Remove Reset, abort */
- UDELAY (2000); /* The 895 needs time for the bus mode to settle */
+ /* Remove reset; big delay because the 895 needs time for the
+ * bus mode to settle
+ */
+ ncr_chip_reset(np, 2000);
OUTB (nc_scntl0, np->rv_scntl0 | 0xc0);
/* full arb., ena parity, par->ATN */
@@ -5516,6 +5663,7 @@
OUTB (nc_ctest5, np->rv_ctest5); /* Large fifo + large burst */
OUTB (nc_dcntl , NOCOM|np->rv_dcntl); /* Protect SFBR */
+ OUTB (nc_ctest0, np->rv_ctest0); /* 720: CDIS and EHP */
OUTB (nc_ctest3, np->rv_ctest3); /* Write and invalidate */
OUTB (nc_ctest4, np->rv_ctest4); /* Master parity checking */
@@ -7100,6 +7248,18 @@
if (DEBUG_FLAGS & DEBUG_TINY) printk ("I#%d", num);
switch (num) {
+ case SIR_INTFLY:
+ /*
+ ** This is used for HP Zalon/53c720 where INTFLY
+ ** operation is currently broken.
+ */
+ ncr_wakeup_done(np);
+#ifdef SCSI_NCR_CCB_DONE_SUPPORT
+ OUTL(nc_dsp, NCB_SCRIPT_PHYS (np, done_end) + 8);
+#else
+ OUTL(nc_dsp, NCB_SCRIPT_PHYS (np, start));
+#endif
+ return;
case SIR_RESEL_NO_MSG_IN:
case SIR_RESEL_NO_IDENTIFY:
/*
@@ -7846,7 +8006,11 @@
*/
tp->getscr[0] = cpu_to_scr(copy_1);
tp->getscr[1] = cpu_to_scr(vtobus (&tp->sval));
+#ifdef SCSI_NCR_BIG_ENDIAN
+ tp->getscr[2] = cpu_to_scr(ncr_reg_bus_addr(nc_sxfer) ^ 3);
+#else
tp->getscr[2] = cpu_to_scr(ncr_reg_bus_addr(nc_sxfer));
+#endif
/*
** Load the timing register.
@@ -7854,7 +8018,11 @@
*/
tp->getscr[3] = cpu_to_scr(copy_1);
tp->getscr[4] = cpu_to_scr(vtobus (&tp->wval));
+#ifdef SCSI_NCR_BIG_ENDIAN
+ tp->getscr[5] = cpu_to_scr(ncr_reg_bus_addr(nc_scntl3) ^ 3);
+#else
tp->getscr[5] = cpu_to_scr(ncr_reg_bus_addr(nc_scntl3));
+#endif
/*
** Get the IDENTIFY message and the lun.
@@ -7883,10 +8051,17 @@
/*
** These assert's should be moved at driver initialisations.
*/
+#ifdef SCSI_NCR_BIG_ENDIAN
+ assert (( (offsetof(struct ncr_reg, nc_sxfer) ^
+ offsetof(struct tcb , sval )) &3) == 3);
+ assert (( (offsetof(struct ncr_reg, nc_scntl3) ^
+ offsetof(struct tcb , wval )) &3) == 3);
+#else
assert (( (offsetof(struct ncr_reg, nc_sxfer) ^
offsetof(struct tcb , sval )) &3) == 0);
assert (( (offsetof(struct ncr_reg, nc_scntl3) ^
offsetof(struct tcb , wval )) &3) == 0);
+#endif
}
@@ -8230,9 +8405,7 @@
/*
** Reset ncr chip
*/
- OUTB (nc_istat, SRST);
- UDELAY (100);
- OUTB (nc_istat, 0 );
+ ncr_chip_reset(np, 100);
/*
** check for timeout
*/
@@ -8459,7 +8632,7 @@
if (np->multiplier != mult || (scntl3 & 7) < 3 || !(scntl3 & 1)) {
unsigned f2;
- OUTB(nc_istat, SRST); UDELAY (5); OUTB(nc_istat, 0);
+ ncr_chip_reset(np, 5);
(void) ncrgetfreq (np, 11); /* throw away first result */
f1 = ncrgetfreq (np, 11);
@@ -9210,6 +9383,7 @@
*/
static u_short ncr_chip_ids[] __initdata = {
+ PSEUDO_ZALON_720_ID,
PCI_DEVICE_ID_NCR_53C810,
PCI_DEVICE_ID_NCR_53C815,
PCI_DEVICE_ID_NCR_53C820,
@@ -9224,6 +9398,89 @@
PCI_DEVICE_ID_NCR_53C1510D
};
+#ifdef ENABLE_SCSI_ZALON
+/*
+** Attach a 53c720 interfaced via Zalon chip on HP boxes.
+*/
+
+int
+zalon_attach(Scsi_Host_Template *tpnt, unsigned long io_port,
+ struct parisc_device *dev, int irq, int unit)
+{
+ u_short device_id;
+ u_char revision;
+ int i;
+ ncr_chip *chip;
+ ncr_device device;
+
+ tpnt->proc_name = NAME53C8XX;
+ tpnt->proc_info = ncr53c8xx_proc_info;
+
+#if defined(SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT) && defined(MODULE)
+ if (ncr53c8xx)
+ ncr53c8xx_setup(ncr53c8xx);
+#endif
+
+#ifdef SCSI_NCR_DEBUG_INFO_SUPPORT
+ ncr_debug = driver_setup.debug;
+#endif
+ if (initverbose >= 2)
+ ncr_print_driver_setup();
+
+ memset(&device, 0, sizeof(ncr_device));
+ chip = 0;
+ device_id = PSEUDO_ZALON_720_ID;
+ revision = 0;
+ for (i = 0; i < sizeof(ncr_chip_table)/sizeof(ncr_chip_table[0]); i++) {
+ if (device_id != ncr_chip_table[i].device_id)
+ continue;
+ chip = &device.chip;
+ memcpy(chip, &ncr_chip_table[i], sizeof(*chip));
+ chip->revision_id = revision;
+ break;
+ }
+
+ if (!chip) {
+ printk(NAME53C8XX ": not initializing, device not supported\n");
+ return -1;
+ }
+
+ /*
+ ** Fix some features according to driver setup.
+ */
+
+ driver_setup.diff_support = 2;
+
+ /*
+ ** The following three are needed before any other access.
+ */
+
+ writeb(0x20, io_port + 0x38); /* DCNTL_REG, EA */
+ writeb(0x04, io_port + 0x1b); /* CTEST0_REG, EHP */
+ writeb(0x80, io_port + 0x22); /* CTEST4_REG, MUX */
+
+ /*
+ ** Initialise ncr_device structure with items required by ncr_attach.
+ */
+ device.host_id = driver_setup.host_id;
+ device.pdev = ccio_get_fake(dev);
+ device.slot.bus = 0;
+ device.slot.device_fn = 0;
+ device.slot.base = (u_long)io_port;
+ device.slot.base_c = (u_long)io_port;
+ device.slot.base_2 = 0;
+ device.slot.base_2_c = 0;
+ device.slot.io_port = io_port;
+ device.slot.irq = irq;
+ device.attach_done = 0;
+
+ printk(KERN_INFO NAME53C8XX ": 53c%s detected\n", device.chip.name);
+
+ return ncr_attach(tpnt, unit, &device);
+}
+#endif
+
+
/*==========================================================
**
** Chip detection entry point.
@@ -9273,6 +9530,10 @@
static
#endif
#if LINUX_VERSION_CODE >= LinuxVersionCode(2,4,0) || defined(MODULE)
+#ifdef ENABLE_SCSI_ZALON
+Scsi_Host_Template driver_template = SCSI_ZALON;
+#else
Scsi_Host_Template driver_template = NCR53C8XX;
+#endif
#include "scsi_module.c"
#endif
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/scsi/Config.in linux-2.4.21-pre7-pa3x/drivers/scsi/Config.in
--- linux-2.4.21-pre7/drivers/scsi/Config.in 2003-03-27 19:43:50.000000000 +0100
+++ linux-2.4.21-pre7-pa3x/drivers/scsi/Config.in 2003-04-11 11:18:42.000000000 +0200
@@ -145,27 +145,46 @@
bool ' use normal IO' CONFIG_SCSI_SYM53C8XX_IOMAPPED
fi
fi
+define_bool CONFIG_ASK_ZALON n
+define_bool CONFIG_ASK_NCR53C8XX n
+define_bool CONFIG_ASK_SYM53C8XX n
+if [ "$CONFIG_PARISC" = "y" ]; then
+ dep_tristate 'Zalon SCSI support' CONFIG_SCSI_ZALON $CONFIG_GSC $CONFIG_SCSI
+ if [ "$CONFIG_SCSI_ZALON" != "n" ]; then
+ define_bool CONFIG_ASK_ZALON y
+ fi
+else
+ if [ "$CONFIG_PCI" = "y" -a "$CONFIG_SCSI_SYM53C8XX_2" != "y" ]; then
+ dep_tristate 'NCR53C8XX SCSI support' CONFIG_SCSI_NCR53C8XX $CONFIG_SCSI
+ if [ "$CONFIG_SCSI_NCR53C8XX" != "n" ]; then
+ define_bool CONFIG_ASK_NCR53C8XX y
+ fi
+ fi
+fi
if [ "$CONFIG_PCI" = "y" -a "$CONFIG_SCSI_SYM53C8XX_2" != "y" ]; then
- dep_tristate 'NCR53C8XX SCSI support' CONFIG_SCSI_NCR53C8XX $CONFIG_SCSI
dep_tristate 'SYM53C8XX SCSI support' CONFIG_SCSI_SYM53C8XX $CONFIG_SCSI
- if [ "$CONFIG_PARISC" = "y" ]; then
- dep_tristate 'Zalon SCSI support' CONFIG_SCSI_ZALON $CONFIG_GSC $CONFIG_SCSI
+ if [ "$CONFIG_SCSI_SYM53C8XX" != "n" ]; then
+ define_bool CONFIG_ASK_SYM53C8XX y
fi
- if [ "$CONFIG_SCSI_NCR53C8XX" != "n" -o "$CONFIG_SCSI_ZALON" = "y" -o "$CONFIG_SCSI_ZALON" = "m" -o "$CONFIG_SCSI_SYM53C8XX" != "n" ]; then
- int ' default tagged command queue depth' CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS 8
- int ' maximum number of queued commands' CONFIG_SCSI_NCR53C8XX_MAX_TAGS 32
- int ' synchronous transfers frequency in MHz' CONFIG_SCSI_NCR53C8XX_SYNC 20
- bool ' enable profiling' CONFIG_SCSI_NCR53C8XX_PROFILE
+fi
+if [ "$CONFIG_ASK_ZALON" = "y" -o "$CONFIG_ASK_NCR53C8XX" = "y" -o "$CONFIG_ASK_SYM53C8XX" = "y" ]; then
+ int ' default tagged command queue depth' CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS 8
+ int ' maximum number of queued commands' CONFIG_SCSI_NCR53C8XX_MAX_TAGS 32
+ int ' synchronous transfers frequency in MHz' CONFIG_SCSI_NCR53C8XX_SYNC 20
+ bool ' enable profiling' CONFIG_SCSI_NCR53C8XX_PROFILE
+ if [ "$CONFIG_ASK_ZALON" = "y" ]; then
+ define_bool CONFIG_SCSI_NCR53C8XX_IOMAPPED n
+ else
bool ' use normal IO' CONFIG_SCSI_NCR53C8XX_IOMAPPED
- if [ "$CONFIG_SCSI_SYM53C8XX" != "n" ]; then
- bool ' include support for the NCR PQS/PDS SCSI card' CONFIG_SCSI_NCR53C8XX_PQS_PDS
- fi
- if [ "$CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS" = "0" ]; then
- bool ' not allow targets to disconnect' CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT
- fi
- if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
- bool ' assume boards are SYMBIOS compatible (EXPERIMENTAL)' CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT
- fi
+ fi
+ if [ "$CONFIG_ASK_SYM53C8XX" = "y" ]; then
+ bool ' include support for the NCR PQS/PDS SCSI card' CONFIG_SCSI_NCR53C8XX_PQS_PDS
+ fi
+ if [ "$CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS" = "0" ]; then
+ bool ' not allow targets to disconnect' CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT
+ fi
+ if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+ bool ' assume boards are SYMBIOS compatible (EXPERIMENTAL)' CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT
fi
fi
if [ "$CONFIG_MCA" = "y" ]; then
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-14 11:52 Joel Soete
@ 2003-04-14 11:54 ` Matthew Wilcox
2003-04-14 12:53 ` Joel Soete
0 siblings, 1 reply; 37+ messages in thread
From: Matthew Wilcox @ 2003-04-14 11:54 UTC (permalink / raw)
To: Joel Soete; +Cc: Gerard Roudier, Grant Grundler, parisc-linux
joel, do not include patches as attachments, include them inline.
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-11 15:58 ` Grant Grundler
2003-04-12 20:30 ` Joel Soete
@ 2003-04-14 12:13 ` Joel Soete
2003-04-14 11:39 ` Alan Cox
2003-04-14 14:18 ` Michael Wood
1 sibling, 2 replies; 37+ messages in thread
From: Joel Soete @ 2003-04-14 12:13 UTC (permalink / raw)
To: Grant Grundler; +Cc: parisc-linux
Hi Andre,
>-- Original Message --
>From: Grant Grundler <grundler@parisc-linux.org>
>To: Joel Soete <jsoe0708@tiscali.be>
>Cc: parisc-linux@lists.parisc-linux.org
>Subject: Re: [parisc-linux] parisc-linux.org kernel
>Date: Fri, 11 Apr 2003 09:58:50 -0600
>
>
>On Fri, Apr 11, 2003 at 07:40:32AM +0200, Joel Soete wrote:
>> Here is the rough diffstat (still have to reverse ql driver patches, I
>will
>> try to find time this week-end :) )
>
>cool - let me add some general comments.
>You might break the diff up into chunks along the lines that
>I've commented on them below. You should end up with something like
>15-20 patches.
>
>> Documentation/Configure.help | 90
> I expect parisc-specific changes here.
>
>> Makefile | 16
> Don't submit the Makefile unless you are sure we need it.
>
...
>
>> drivers/ide/pci/ns87415.c | 8
>> drivers/ide/setup-pci.c | 2
> Suckyio support. This probably needs to go to Andre Hedrick.
>
Can you have a look on those two small patch (parisc specific):
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/ide/pci/ns87415.c linux-2.4.21-pre7-pa3x/drivers/ide/pci/ns87415.c
--- linux-2.4.21-pre7/drivers/ide/pci/ns87415.c 2003-03-27 19:43:45.000000000
+0100
+++ linux-2.4.21-pre7-pa3x/drivers/ide/pci/ns87415.c 2003-02-28 18:43:45.000000000
+0100
@@ -27,6 +27,10 @@
#include "ns87415.h"
+#if defined(__hppa__) && defined(CONFIG_SUPERIO)
+#include <asm/superio.h>
+#endif
+
static unsigned int ns87415_count = 0, ns87415_control[MAX_HWIFS] = { 0
};
/*
@@ -200,7 +204,11 @@
}
if (!using_inta)
+#if defined(__hppa__) && defined(CONFIG_SUPERIO)
+ hwif->irq = superio_get_ide_irq(); /* legacy mode */
+#else
hwif->irq = hwif->channel ? 15 : 14; /* legacy mode */
+#endif
else if (!hwif->irq && hwif->mate && hwif->mate->irq)
hwif->irq = hwif->mate->irq; /* share IRQ with mate */
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/ide/setup-pci.c linux-2.4.21-pre7-pa3x/drivers/ide/setup-pci.c
--- linux-2.4.21-pre7/drivers/ide/setup-pci.c 2003-04-10 08:20:37.000000000
+0200
+++ linux-2.4.21-pre7-pa3x/drivers/ide/setup-pci.c 2003-04-08 14:13:41.000000000
+0200
@@ -477,7 +477,7 @@
if ((d->autodma == AUTODMA) ||
((dev->class >> 8) == PCI_CLASS_STORAGE_IDE &&
(dev->class & 0x80))) {
- unsigned long dma_base = ide_get_or_set_dma_base(hwif);
+ u32 dma_base = ide_get_or_set_dma_base(hwif);
if (dma_base && !(pcicmd & PCI_COMMAND_MASTER)) {
/*
* Set up BM-DMA capability
Thanks in advance for your help,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-14 11:54 ` Matthew Wilcox
@ 2003-04-14 12:53 ` Joel Soete
0 siblings, 0 replies; 37+ messages in thread
From: Joel Soete @ 2003-04-14 12:53 UTC (permalink / raw)
To: Matthew Wilcox; +Cc: Gerard Roudier, Grant Grundler, parisc-linux
>-- Original Message --
>Date: Mon, 14 Apr 2003 12:54:16 +0100
>From: Matthew Wilcox <willy@debian.org>
>To: Joel Soete <jsoe0708@tiscali.be>
>Cc: Gerard Roudier <groudier@free.fr>,
> Grant Grundler <grundler@parisc-linux.org>,
> parisc-linux@lists.parisc-linux.org
>Subject: Re: [parisc-linux] parisc-linux.org kernel
>
>
>
>joel, do not include patches as attachments, include them inline.
>
>--
Shame on me: I again forgot.
Here there are:
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/scsi/sym53c8xx.c linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx.c
--- linux-2.4.21-pre7/drivers/scsi/sym53c8xx.c 2003-03-27 19:43:51.000000000
+0100
+++ linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx.c 2003-03-27 18:50:22.000000000
+0100
@@ -4915,6 +4915,11 @@
u_long period;
int i;
+#ifdef CONFIG_PARISC
+ char scsi_mode = -1;
+ struct hardware_path hwpath;
+#endif
+
/*
** Wide ?
*/
@@ -4986,6 +4991,29 @@
*/
period = (4 * div_10M[0] + np->clock_khz - 1) / np->clock_khz;
+
+#if defined(CONFIG_PARISC)
+ /* Host firmware (PDC) keeps a table for crippling SCSI capabilities.
+ * Many newer machines export one channel of 53c896 chip
+ * as SE, 50-pin HD. Also used for Multi-initiator SCSI clusters
+ * to set the SCSI Initiator ID.
+ */
+ get_pci_node_path(np->pdev, &hwpath);
+ if (pdc_get_initiator(&hwpath, &np->myaddr, &period, &np->maxwide, &scsi_mode))
+ {
+ if (scsi_mode >= 0) {
+ /* C3000 PDC reports period/mode */
+ driver_setup.diff_support = 0;
+ switch(scsi_mode) {
+ case 0: np->scsi_mode = SMODE_SE; break;
+ case 1: np->scsi_mode = SMODE_HVD; break;
+ case 2: np->scsi_mode = SMODE_LVD; break;
+ default: break;
+ }
+ }
+ }
+#endif
+
if (period <= 250) np->minsync = 10;
else if (period <= 303) np->minsync = 11;
else if (period <= 500) np->minsync = 12;
@@ -5128,7 +5156,6 @@
np->rv_ctest4 |= MPEE; /* Master parity checking */
if (driver_setup.scsi_parity)
np->rv_scntl0 |= 0x0a; /* full arb., ena parity, par->ATN */
-
#ifdef SCSI_NCR_NVRAM_SUPPORT
/*
** Get parity checking, host ID and verbose mode from NVRAM
@@ -5196,7 +5223,7 @@
if (np->sv_stest2 & 0x20)
np->scsi_mode = SMODE_HVD;
break;
- default:/* Don't care about HVD */
+ default: /* Don't care about HVD */
break;
}
}
@@ -5239,6 +5266,7 @@
tcb_p tp = &np->target[i];
tp->usrsync = 255;
+
#ifdef SCSI_NCR_NVRAM_SUPPORT
if (nvram) {
switch(nvram->type) {
@@ -5256,10 +5284,11 @@
if (driver_setup.use_nvram & 0x8)
tp->usrflag &= ~UF_NOSCAN;
}
- else {
+ else
#else
- if (1) {
+ if (1)
#endif
+ {
tp->usrsync = driver_setup.default_sync;
tp->usrwide = driver_setup.max_wide;
tp->usrtags = MAX_TAGS;
@@ -7074,7 +7103,11 @@
((INW(nc_sbdl) & 0xff00) << 10) | /* d15-8 */
INB(nc_sbcl); /* req ack bsy sel atn msg cd io */
+#ifdef CONFIG_PARISC
+ if (!np->maxwide)
+#else
if (!(np->features & FE_WIDE))
+#endif
term &= 0x3ffff;
if (term != (2<<7)) {
@@ -12974,6 +13007,7 @@
}
if (i != count) /* Ignore this device if we already have it */
continue;
+ pci_set_master(pcidev);
devp = &devtbl[count];
devp->host_id = driver_setup.host_id;
devp->attach_done = 0;
@@ -13217,7 +13251,7 @@
return -1;
}
-#ifdef __powerpc__
+#if defined(__powerpc__) || defined(__hppa__)
/*
** Fix-up for power/pc.
** Should not be performed by the driver.
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/scsi/sym53c8xx_2/sym_glue.c
linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx_2/sym_glue.c
--- linux-2.4.21-pre7/drivers/scsi/sym53c8xx_2/sym_glue.c 2002-11-29 00:53:14.000000000
+0100
+++ linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx_2/sym_glue.c 2002-12-20
15:56:22.000000000 +0100
@@ -142,10 +142,24 @@
#define SYM_LOCK_HCB(np, flags) spin_lock_irqsave(&np->s.smp_lock, flags)
#define SYM_UNLOCK_HCB(np, flags) spin_unlock_irqrestore(&np->s.smp_lock,
flags)
+/* Warning!
+ * sym2 driver used to hold iorl in sym53c8xx_intr and sym_timer
+ * with these macros. However, we have observed that this causes
+ * a deadlock with the iorl held by scsi_register_host. A survey
+ * of a couple of other scsi drivers that uses the "new" eh
+ * code seems to suggest that this is not required. I've disabled
+ * these for now, without having completely understood if this
+ * is correct.
+ */
+#ifndef CONFIG_PARISC /* hack */
#define SYM_LOCK_SCSI(np, flags) \
spin_lock_irqsave(&io_request_lock, flags)
#define SYM_UNLOCK_SCSI(np, flags) \
spin_unlock_irqrestore(&io_request_lock, flags)
+#else
+#define SYM_LOCK_SCSI(np, flags)
+#define SYM_UNLOCK_SCSI(np, flags)
+#endif
/* Ugly, but will make things easier if this locking will ever disappear
*/
#define SYM_LOCK_SCSI_NOSAVE(np) spin_lock_irq(&io_request_lock)
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/scsi/sym53c8xx_2/sym_hipd.c
linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx_2/sym_hipd.c
--- linux-2.4.21-pre7/drivers/scsi/sym53c8xx_2/sym_hipd.c 2003-03-27 19:43:51.000000000
+0100
+++ linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx_2/sym_hipd.c 2003-03-27
18:50:22.000000000 +0100
@@ -289,7 +289,11 @@
((INW(nc_sbdl) & 0xff00) << 10) | /* d15-8 */
INB(nc_sbcl); /* req ack bsy sel atn msg cd io */
+#ifdef CONFIG_PARISC
+ if (!np->maxwide)
+#else
if (!(np->features & FE_WIDE))
+#endif
term &= 0x3ffff;
if (term != (2<<7)) {
@@ -744,6 +748,12 @@
u32 period;
int i;
+#ifdef CONFIG_PARISC
+ unsigned long pdc_period;
+ char scsi_mode = -1;
+ struct hardware_path hwpath;
+#endif
+
/*
* Wide ?
*/
@@ -800,6 +810,31 @@
* Btw, 'period' is in tenths of nanoseconds.
*/
period = (4 * div_10M[0] + np->clock_khz - 1) / np->clock_khz;
+
+#if defined(CONFIG_PARISC)
+ /* Host firmware (PDC) keeps a table for crippling SCSI capabilities.
+ * Many newer machines export one channel of 53c896 chip
+ * as SE, 50-pin HD. Also used for Multi-initiator SCSI clusters
+ * to set the SCSI Initiator ID.
+ */
+ get_pci_node_path(np->s.device, &hwpath);
+ if (pdc_get_initiator(&hwpath, &np->myaddr, &pdc_period, &np->maxwide,
&scsi_mode))
+ {
+ if (scsi_mode >= 0) {
+ /* C3000 PDC reports period/mode */
+ SYM_SETUP_SCSI_DIFF = 0;
+ switch(scsi_mode) {
+ case 0: np->scsi_mode = SMODE_SE; break;
+ case 1: np->scsi_mode = SMODE_HVD; break;
+ case 2: np->scsi_mode = SMODE_LVD; break;
+ default: break;
+ }
+ }
+
+ period = (u32) pdc_period;
+ }
+#endif
+
if (period <= 250) np->minsync = 10;
else if (period <= 303) np->minsync = 11;
else if (period <= 500) np->minsync = 12;
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/scsi/sym53c8xx_defs.h linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx_defs.h
--- linux-2.4.21-pre7/drivers/scsi/sym53c8xx_defs.h 2002-08-03 02:39:44.000000000
+0200
+++ linux-2.4.21-pre7-pa3x/drivers/scsi/sym53c8xx_defs.h 2003-03-19 14:33:25.000000000
+0100
@@ -82,9 +82,11 @@
/*
* No more an option, enabled by default.
*/
+#ifndef ENABLE_SCSI_ZALON
#ifndef CONFIG_SCSI_NCR53C8XX_NVRAM_DETECT
#define CONFIG_SCSI_NCR53C8XX_NVRAM_DETECT
#endif
+#endif
/*
** These options are not tunable from 'make config'
@@ -185,6 +187,24 @@
#endif
#elif defined(__sparc__)
#undef SCSI_NCR_IOMAPPED
+#elif defined(__hppa__)
+#if defined(ENABLE_SCSI_ZALON)
+#undef SCSI_NCR_IOMAPPED
+#endif
+#endif
+
+/*
+ * Should we enable DAC cycles on Sparc64 platform?
+ * Until further investigation we do not enable it
+ * at the moment.
+ * We may want to enable it for __ia64__ (untested)
+ */
+#if defined(__ia64__)
+# if !defined(SCSI_NCR_USE_64BIT_DAC)
+# define SCSI_NCR_USE_64BIT_DAC
+# endif
+#else
+# undef SCSI_NCR_USE_64BIT_DAC
#endif
/*
@@ -383,25 +403,24 @@
#define readb_raw readb
#define writeb_raw writeb
-#if defined(__hppa__)
-#define readw_l2b(a) le16_to_cpu(readw(a))
-#define readl_l2b(a) le32_to_cpu(readl(a))
-#define writew_b2l(v,a) writew(cpu_to_le16(v),a)
-#define writel_b2l(v,a) writel(cpu_to_le32(v),a)
-#elif defined(__mips__)
-#define readw_l2b readw
-#define readl_l2b readl
-#define writew_b2l writew
-#define writel_b2l writel
-#define inw_l2b inw
-#define inl_l2b inl
-#define outw_b2l outw
-#define outl_b2l outl
+#if defined(SCSI_NCR_BIG_ENDIAN)
+#define readw_l2b __raw_readw
+#define readl_l2b __raw_readl
+#define writew_b2l __raw_writew
+#define writel_b2l __raw_writel
+#define readw_raw __raw_readw
+#define readl_raw(a) __raw_readl((unsigned long)(a))
+#define writew_raw __raw_writew
+#define writel_raw(v,a) __raw_writel(v,(unsigned long)(a))
#else /* Other big-endian */
#define readw_l2b readw
#define readl_l2b readl
#define writew_b2l writew
#define writel_b2l writel
+#define readw_raw readw
+#define readl_raw readl
+#define writew_raw writew
+#define writel_raw writel
#endif
#else /* little endian */
@@ -430,9 +449,11 @@
#endif
#endif
+#if !defined(__hppa__) && !defined(__mips__)
#ifdef SCSI_NCR_BIG_ENDIAN
#error "The NCR in BIG ENDIAN addressing mode is not (yet) supported"
#endif
+#endif
/*
@@ -585,10 +606,20 @@
#else
+#ifdef ENABLE_SCSI_ZALON
+/* Only 8 or 32 bit transfers allowed */
+#define INW_OFF(o) (readb((char *)np->reg + ncr_offw(o)) << 8 | readb((char
*)np->reg + ncr_offw(o) + 1))
+#else
#define INW_OFF(o) readw_raw((char *)np->reg + ncr_offw(o))
+#endif
#define INL_OFF(o) readl_raw((char *)np->reg + (o))
+#ifdef ENABLE_SCSI_ZALON
+/* Only 8 or 32 bit transfers allowed */
+#define OUTW_OFF(o, val) do { writeb((char)((val) >> 8), (char *)np->reg
+ ncr_offw(o)); writeb((char)(val), (char *)np->reg + ncr_offw(o) + 1); }
while (0)
+#else
#define OUTW_OFF(o, val) writew_raw((val), (char *)np->reg + ncr_offw(o))
+#endif
#define OUTL_OFF(o, val) writel_raw((val), (char *)np->reg + (o))
#endif
@@ -636,6 +667,10 @@
** NCR53C8XX Device Ids
*/
+#ifndef PSEUDO_ZALON_720_ID
+#define PSEUDO_ZALON_720_ID 0x5a00
+#endif
+
#ifndef PCI_DEVICE_ID_NCR_53C810
#define PCI_DEVICE_ID_NCR_53C810 1
#endif
@@ -739,6 +774,9 @@
#define FE_DAC (1<<24) /* Support DAC cycles (64 bit addressing) */
#define FE_ISTAT1 (1<<25) /* Have ISTAT1, MBOX0, MBOX1 registers */
#define FE_DAC_IN_USE (1<<26) /* Platform does DAC cycles */
+#define FE_EHP (1<<27) /* 720: Even host parity */
+#define FE_MUX (1<<28) /* 720: Multiplexed bus */
+#define FE_EA (1<<29) /* 720: Enable Ack */
#define FE_CACHE_SET (FE_ERL|FE_CLSE|FE_WRIE|FE_ERMP)
#define FE_SCSI_SET (FE_WIDE|FE_ULTRA|FE_ULTRA2|FE_DBLR|FE_QUAD|F_CLK80)
@@ -760,6 +798,9 @@
#define SCSI_NCR_CHIP_TABLE \
{ \
+ {PSEUDO_ZALON_720_ID, 0x0f, "720", 3, 8, 4, \
+ FE_WIDE|FE_DIFF|FE_EHP|FE_MUX|FE_EA} \
+ , \
{PCI_DEVICE_ID_NCR_53C810, 0x0f, "810", 4, 8, 4, \
FE_ERL} \
, \
@@ -832,6 +873,7 @@
*/
#define SCSI_NCR_CHIP_IDS \
{ \
+ PSEUDO_ZALON_720_ID, \
PCI_DEVICE_ID_NCR_53C810, \
PCI_DEVICE_ID_NCR_53C815, \
PCI_DEVICE_ID_NCR_53C820, \
@@ -1183,6 +1225,7 @@
/*17*/ u_char nc_mbox1; /* 896 and later cores only */
/*18*/ u_char nc_ctest0;
+ #define EHP 0x04 /* 720 even host parity */
/*19*/ u_char nc_ctest1;
/*1a*/ u_char nc_ctest2;
@@ -1200,6 +1243,7 @@
/*20*/ u_char nc_dfifo;
/*21*/ u_char nc_ctest4;
+ #define MUX 0x80 /* 720 host bus multiplex mode */
#define BDIS 0x80 /* mod: burst disable */
#define MPEE 0x08 /* mod: master parity error enable */
@@ -1232,6 +1276,7 @@
#define CLSE 0x80 /* mod: cache line size enable */
#define PFF 0x40 /* cmd: pre-fetch flush */
#define PFEN 0x20 /* mod: pre-fetch enable */
+ #define EA 0x20 /* mod: 720 enable-ack */
#define SSM 0x10 /* mod: single step mode */
#define IRQM 0x08 /* mod: irq mode (1 = totem pole !) */
#define STD 0x04 /* cmd: start dma mode */
@@ -1274,6 +1319,7 @@
/*4e*/ u_char nc_stest2;
#define ROF 0x40 /* reset scsi offset (after gross error!) */
+ #define DIF 0x20 /* 720 SCSI differential mode */
#define EXT 0x02 /* extended filtering */
/*4f*/ u_char nc_stest3;
@@ -1452,12 +1498,21 @@
#define SCR_SEL_TBL 0x42000000
#define SCR_SEL_TBL_ATN 0x43000000
+#ifdef SCSI_NCR_BIG_ENDIAN
+struct scr_tblsel {
+ u_char sel_scntl3;
+ u_char sel_id;
+ u_char sel_sxfer;
+ u_char sel_scntl4;
+};
+#else
struct scr_tblsel {
u_char sel_scntl4;
u_char sel_sxfer;
u_char sel_id;
u_char sel_scntl3;
};
+#endif
#define SCR_JMP_REL 0x04000000
#define SCR_ID(id) (((u_int32)(id)) << 16)
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/scsi/ncr53c8xx.c linux-2.4.21-pre7-pa3x/drivers/scsi/ncr53c8xx.c
--- linux-2.4.21-pre7/drivers/scsi/ncr53c8xx.c 2002-11-29 00:53:14.000000000
+0100
+++ linux-2.4.21-pre7-pa3x/drivers/scsi/ncr53c8xx.c 2002-12-20 15:56:21.000000000
+0100
@@ -82,6 +82,7 @@
** Etc...
**
** Supported NCR/SYMBIOS chips:
+** 53C720 (Wide, Fast SCSI-2, HP Zalon)
** 53C810 (8 bits, Fast SCSI-2, no rom BIOS)
** 53C815 (8 bits, Fast SCSI-2, on board rom BIOS)
** 53C820 (Wide, Fast SCSI-2, no rom BIOS)
@@ -180,6 +181,23 @@
typedef u32 u_int32;
typedef u64 u_int64;
typedef u_long vm_offset_t;
+
+#ifdef __hppa__
+/* Yuck. Current plan is to use ncr58c8xx.c for non-pci big endian
+** chips, and sym53c8xx.c for pci little endian chips. Define this
+** here so it gets seen by sym53c8xx_defs.h, pulled in via ncr53c8xx.h.
+*/
+#define SCSI_NCR_BIG_ENDIAN
+/* INTFLY interrupts don't always seem to get serviced atm.....
+*/
+#define SIMULATED_INTFLY
+#endif
+
+#if defined(CONFIG_SCSI_ZALON) || defined(CONFIG_SCSI_ZALON_MODULE)
+#define ENABLE_SCSI_ZALON
+#include "zalon7xx.h"
+#endif
+
#include "ncr53c8xx.h"
/*
@@ -383,6 +401,8 @@
struct Scsi_Host *host, struct scsi_device *devlist);
static void ncr53c8xx_intr(int irq, void *dev_id, struct pt_regs * regs);
static void ncr53c8xx_timeout(unsigned long np);
+static int ncr53c8xx_proc_info(char *buffer, char **start, off_t offset,
+ int length, int hostno, int func);
#define initverbose (driver_setup.verbose)
#define bootverbose (np->verbose)
@@ -454,7 +474,8 @@
#define SIR_RESEL_BAD_I_T_L (15)
#define SIR_RESEL_BAD_I_T_L_Q (16)
#define SIR_DONE_OVERFLOW (17)
-#define SIR_MAX (17)
+#define SIR_INTFLY (18)
+#define SIR_MAX (18)
/*==========================================================
**
@@ -626,6 +647,15 @@
** negotiation of wide and synch transfer and device quirks.
**----------------------------------------------------------------
*/
+#ifdef SCSI_NCR_BIG_ENDIAN
+/*0*/ u_short period;
+/*2*/ u_char sval;
+/*3*/ u_char minsync;
+/*0*/ u_char wval;
+/*1*/ u_char widedone;
+/*2*/ u_char quirks;
+/*3*/ u_char maxoffs;
+#else
/*0*/ u_char minsync;
/*1*/ u_char sval;
/*2*/ u_short period;
@@ -633,6 +663,7 @@
/*1*/ u_char quirks;
/*2*/ u_char widedone;
/*3*/ u_char wval;
+#endif
#ifdef SCSI_NCR_INTEGRITY_CHECKING
u_char ic_min_sync;
@@ -843,10 +874,17 @@
/*
** Last four bytes (host)
*/
+#ifdef SCSI_NCR_BIG_ENDIAN
+#define actualquirks phys.header.status[3]
+#define host_status phys.header.status[2]
+#define scsi_status phys.header.status[1]
+#define parity_status phys.header.status[0]
+#else
#define actualquirks phys.header.status[0]
#define host_status phys.header.status[1]
#define scsi_status phys.header.status[2]
#define parity_status phys.header.status[3]
+#endif
/*
** First four bytes (script)
@@ -1030,8 +1068,8 @@
** be used for probing adapter implementation differences.
**----------------------------------------------------------------
*/
- u_char sv_scntl0, sv_scntl3, sv_dmode, sv_dcntl, sv_ctest3, sv_ctest4,
- sv_ctest5, sv_gpcntl, sv_stest2, sv_stest4;
+ u_char sv_scntl0, sv_scntl3, sv_dmode, sv_dcntl, sv_ctest0, sv_ctest3,
+ sv_ctest4, sv_ctest5, sv_gpcntl, sv_stest2, sv_stest4;
/*----------------------------------------------------------------
** Actual initial value of IO register bits used by the
@@ -1039,8 +1077,8 @@
** features that are to be enabled.
**----------------------------------------------------------------
*/
- u_char rv_scntl0, rv_scntl3, rv_dmode, rv_dcntl, rv_ctest3, rv_ctest4,
- rv_ctest5, rv_stest2;
+ u_char rv_scntl0, rv_scntl3, rv_dmode, rv_dcntl, rv_ctest0, rv_ctest3,
+ rv_ctest4, rv_ctest5, rv_stest2;
/*----------------------------------------------------------------
** Targets management.
@@ -1162,7 +1200,7 @@
*/
struct ccb *ccb; /* Global CCB */
struct usrcmd user; /* Command from user */
- u_char release_stage; /* Synchronisation stage on release */
+ volatile u_char release_stage; /* Synchronisation stage on release */
#ifdef SCSI_NCR_INTEGRITY_CHECKING
/*----------------------------------------------------------------
@@ -1201,6 +1239,23 @@
*/
/*
+** For HP Zalon/53c720 systems, the Zalon interface
+** between CPU and 53c720 does prefetches, which causes
+** problems with self modifying scripts. The problem
+** is overcome by calling a dummy subroutine after each
+** modification, to force a refetch of the script on
+** return from the subroutine.
+*/
+
+#ifdef ENABLE_SCSI_ZALON
+#define PREFETCH_FLUSH_CNT 2
+#define PREFETCH_FLUSH SCR_CALL, PADDRH (wait_dma),
+#else
+#define PREFETCH_FLUSH_CNT 0
+#define PREFETCH_FLUSH
+#endif
+
+/*
** Script fragments which are loaded into the on-chip RAM
** of 825A, 875 and 895 chips.
*/
@@ -1208,7 +1263,7 @@
ncrcmd start [ 5];
ncrcmd startpos [ 1];
ncrcmd select [ 6];
- ncrcmd select2 [ 9];
+ ncrcmd select2 [ 9 + PREFETCH_FLUSH_CNT];
ncrcmd loadpos [ 4];
ncrcmd send_ident [ 9];
ncrcmd prepare [ 6];
@@ -1224,7 +1279,7 @@
ncrcmd setmsg [ 7];
ncrcmd cleanup [ 6];
ncrcmd complete [ 9];
- ncrcmd cleanup_ok [ 8];
+ ncrcmd cleanup_ok [ 8 + PREFETCH_FLUSH_CNT];
ncrcmd cleanup0 [ 1];
#ifndef SCSI_NCR_CCB_DONE_SUPPORT
ncrcmd signal [ 12];
@@ -1242,11 +1297,11 @@
ncrcmd idle [ 2];
ncrcmd reselect [ 8];
ncrcmd reselected [ 8];
- ncrcmd resel_dsa [ 6];
+ ncrcmd resel_dsa [ 6 + PREFETCH_FLUSH_CNT];
ncrcmd loadpos1 [ 4];
ncrcmd resel_lun [ 6];
ncrcmd resel_tag [ 6];
- ncrcmd jump_to_nexus [ 4];
+ ncrcmd jump_to_nexus [ 4 + PREFETCH_FLUSH_CNT];
ncrcmd nexus_indirect [ 4];
ncrcmd resel_notag [ 4];
ncrcmd data_in [MAX_SCATTERL * 4];
@@ -1267,7 +1322,7 @@
#endif
ncrcmd select_no_atn [ 8];
ncrcmd cancel [ 4];
- ncrcmd skip [ 9];
+ ncrcmd skip [ 9 + PREFETCH_FLUSH_CNT];
ncrcmd skip2 [ 19];
ncrcmd par_err_data_in [ 6];
ncrcmd par_err_other [ 4];
@@ -1300,9 +1355,10 @@
ncrcmd bad_i_t_l_q [ 4];
ncrcmd bad_target [ 8];
ncrcmd bad_status [ 8];
- ncrcmd start_ram [ 4];
+ ncrcmd start_ram [ 4 + PREFETCH_FLUSH_CNT];
ncrcmd start_ram0 [ 4];
ncrcmd sto_restart [ 5];
+ ncrcmd wait_dma [ 2];
ncrcmd snooptest [ 9];
ncrcmd snoopend [ 2];
};
@@ -1328,6 +1384,7 @@
static void ncr_getclock (ncb_p np, int mult);
static void ncr_selectclock (ncb_p np, u_char scntl3);
static ccb_p ncr_get_ccb (ncb_p np, u_char tn, u_char ln);
+static void ncr_chip_reset (ncb_p np, int delay);
static void ncr_init (ncb_p np, int reset, char * msg, u_long code);
static int ncr_int_sbmc (ncb_p np);
static int ncr_int_par (ncb_p np);
@@ -1527,6 +1584,10 @@
RADDR (dsa),
PADDR (loadpos),
/*
+ ** Flush script prefetch if required
+ */
+ PREFETCH_FLUSH
+ /*
** then we do the actual copy.
*/
SCR_COPY (sizeof (struct head)),
@@ -1827,6 +1888,10 @@
SCR_COPY_F (4),
RADDR (dsa),
PADDR (cleanup0),
+ /*
+ ** Flush script prefetch if required
+ */
+ PREFETCH_FLUSH
SCR_COPY (sizeof (struct head)),
NADDR (header),
}/*-------------------------< CLEANUP0 >--------------------*/,{
@@ -1856,8 +1921,13 @@
/*
** ... signal completion to the host
*/
+#ifdef SIMULATED_INTFLY
+ SCR_INT,
+ SIR_INTFLY,
+#else
SCR_INT_FLY,
0,
+#endif
/*
** Auf zu neuen Schandtaten!
*/
@@ -1876,8 +1946,13 @@
SCR_INT,
SIR_DONE_OVERFLOW,
}/*------------------------< DONE_END >---------------------*/,{
+#ifdef SIMULATED_INTFLY
+ SCR_INT,
+ SIR_INTFLY,
+#else
SCR_INT_FLY,
0,
+#endif
SCR_COPY (4),
RADDR (temp),
PADDR (done_pos),
@@ -2055,6 +2130,10 @@
RADDR (dsa),
PADDR (loadpos1),
/*
+ ** Flush script prefetch if required
+ */
+ PREFETCH_FLUSH
+ /*
** then we do the actual copy.
*/
SCR_COPY (sizeof (struct head)),
@@ -2116,6 +2195,10 @@
SCR_COPY_F (4),
RADDR (temp),
PADDR (nexus_indirect),
+ /*
+ ** Flush script prefetch if required
+ */
+ PREFETCH_FLUSH
SCR_COPY (4),
}/*-------------------------< NEXUS_INDIRECT >-------------------*/,{
0,
@@ -2272,6 +2355,10 @@
RADDR (dsa),
PADDRH (skip2),
/*
+ ** Flush script prefetch if required
+ */
+ PREFETCH_FLUSH
+ /*
** then we do the actual copy.
*/
SCR_COPY (sizeof (struct head)),
@@ -2782,6 +2869,10 @@
SCR_COPY_F (4),
RADDR (scratcha),
PADDRH (start_ram0),
+ /*
+ ** Flush script prefetch if required
+ */
+ PREFETCH_FLUSH
SCR_COPY (sizeof (struct script)),
}/*-------------------------< START_RAM0 >--------------------*/,{
0,
@@ -2799,6 +2890,17 @@
PADDR (startpos),
SCR_JUMP,
PADDR (start),
+}/*-------------------------< WAIT_DMA >-------------------*/,{
+ /*
+ ** For HP Zalon/53c720 systems, the Zalon interface
+ ** between CPU and 53c720 does prefetches, which causes
+ ** problems with self modifying scripts. The problem
+ ** is overcome by calling a dummy subroutine after each
+ ** modification, to force a refetch of the script on
+ ** return from the subroutine.
+ */
+ SCR_RETURN,
+ 0,
}/*-------------------------< SNOOPTEST >-------------------*/,{
/*
** Read the variable.
@@ -3132,9 +3234,12 @@
#define burst_length(bc) (!(bc))? 0 : 1 << (bc)
/*
- * Burst code from io register bits.
+ * Burst code from io register bits. Burst enable is ctest0 for c720,
+ * ctest4 for others.
*/
-#define burst_code(dmode, ctest4, ctest5) \
+#define burst_code(dmode, ctest0, ctest4, ctest5) \
+ (np->device_id == PSEUDO_ZALON_720_ID) ? \
+ (ctest0) & 0x80? 0 : (((dmode) & 0xc0) >> 6) + 1 : \
(ctest4) & 0x80? 0 : (((dmode) & 0xc0) >> 6) + ((ctest5) & 0x04) + 1
/*
@@ -3142,12 +3247,15 @@
*/
static inline void ncr_init_burst(ncb_p np, u_char bc)
{
- np->rv_ctest4 &= ~0x80;
+ u_char *be = (np->device_id == PSEUDO_ZALON_720_ID) ?
+ &np->rv_ctest0 : &np->rv_ctest4;
+
+ *be &= ~0x80;
np->rv_dmode &= ~(0x3 << 6);
np->rv_ctest5 &= ~0x4;
if (!bc) {
- np->rv_ctest4 |= 0x80;
+ *be |= 0x80;
}
else {
--bc;
@@ -3224,6 +3332,7 @@
np->sv_scntl3 = INB(nc_scntl3) & 0x07;
np->sv_dmode = INB(nc_dmode) & 0xce;
np->sv_dcntl = INB(nc_dcntl) & 0xa8;
+ np->sv_ctest0 = INB(nc_ctest0) & 0x84;
np->sv_ctest3 = INB(nc_ctest3) & 0x01;
np->sv_ctest4 = INB(nc_ctest4) & 0x80;
np->sv_ctest5 = INB(nc_ctest5) & 0x24;
@@ -3310,10 +3419,11 @@
np->rv_scntl0 = np->sv_scntl0;
np->rv_dmode = np->sv_dmode;
np->rv_dcntl = np->sv_dcntl;
+ np->rv_ctest0 = np->sv_ctest0;
np->rv_ctest3 = np->sv_ctest3;
np->rv_ctest4 = np->sv_ctest4;
np->rv_ctest5 = np->sv_ctest5;
- burst_max = burst_code(np->sv_dmode, np->sv_ctest4, np->sv_ctest5);
+ burst_max = burst_code(np->sv_dmode, np->sv_ctest0, np->sv_ctest4, np->sv_ctest5);
#else
/*
@@ -3321,7 +3431,7 @@
*/
burst_max = driver_setup.burst_max;
if (burst_max == 255)
- burst_max = burst_code(np->sv_dmode, np->sv_ctest4, np->sv_ctest5);
+ burst_max = burst_code(np->sv_dmode, np->sv_ctest0, np->sv_ctest4, np->sv_ctest5);
if (burst_max > 7)
burst_max = 7;
if (burst_max > np->maxburst)
@@ -3344,6 +3454,12 @@
np->rv_ctest3 |= WRIE; /* Write and Invalidate */
if (np->features & FE_DFS)
np->rv_ctest5 |= DFS; /* Dma Fifo Size */
+ if (np->features & FE_MUX)
+ np->rv_ctest4 |= MUX; /* Host bus multiplex mode */
+ if (np->features & FE_EA)
+ np->rv_dcntl |= EA; /* Enable ACK */
+ if (np->features & FE_EHP)
+ np->rv_ctest0 |= EHP; /* Even host parity */
/*
** Select some other
@@ -3523,6 +3639,7 @@
return 0;
}
+
/*
** Host attach and initialisations.
**
@@ -3543,6 +3660,7 @@
ncr_nvram *nvram = device->nvram;
int i;
+#ifndef ENABLE_SCSI_ZALON
printk(KERN_INFO "ncr53c%s-%d: rev 0x%x on pci bus %d device %d function
%d "
#ifdef __sparc__
"irq %s\n",
@@ -3557,6 +3675,7 @@
#else
device->slot.irq);
#endif
+#endif
/*
** Allocate host_data structure
@@ -3645,7 +3764,6 @@
** Now the INB INW INL OUTB OUTW OUTL macros
** can be used safely.
*/
-
np->reg = (struct ncr_reg*) np->vaddr;
#endif /* !defined SCSI_NCR_IOMAPPED */
@@ -3654,7 +3772,9 @@
** Try to map the controller chip into iospace.
*/
+#ifndef ENABLE_SCSI_ZALON
request_region(device->slot.io_port, 128, "ncr53c8xx");
+#endif
np->base_io = device->slot.io_port;
#ifdef SCSI_NCR_NVRAM_SUPPORT
@@ -3768,9 +3888,7 @@
** Reset chip.
*/
- OUTB (nc_istat, SRST);
- UDELAY (100);
- OUTB (nc_istat, 0 );
+ ncr_chip_reset(np, 100);
/*
** Now check the cache handling of the pci chipset.
@@ -3887,7 +4005,9 @@
#ifdef DEBUG_NCR53C8XX
printk(KERN_DEBUG "%s: releasing IO region %x[%d]\n", ncr_name(np), np->base_io,
128);
#endif
+#ifndef ENABLE_SCSI_ZALON
release_region(np->base_io, 128);
+#endif
}
if (np->irq) {
#ifdef DEBUG_NCR53C8XX
@@ -3912,7 +4032,7 @@
scsi_unregister(instance);
return -1;
- }
+}
/*==========================================================
@@ -4699,9 +4819,7 @@
"command processing suspended for %d seconds\n",
ncr_name(np), settle_delay);
- OUTB (nc_istat, SRST);
- UDELAY (100);
- OUTB (nc_istat, 0);
+ ncr_chip_reset(np, 100);
UDELAY (2000); /* The 895 needs time for the bus mode to settle */
if (enab_int)
OUTW (nc_sien, RST);
@@ -4710,7 +4828,8 @@
** properly set IRQ mode, prior to resetting the bus.
*/
OUTB (nc_stest3, TE);
- OUTB (nc_dcntl, (np->rv_dcntl & IRQM));
+ if (np->device_id != PSEUDO_ZALON_720_ID)
+ OUTB (nc_dcntl, (np->rv_dcntl & IRQM));
OUTB (nc_scntl1, CRST);
UDELAY (200);
@@ -4917,6 +5036,10 @@
lcb_p lp;
int target, lun;
int i;
+ char inst_name[16];
+
+ /* Local copy so we don't access np after freeing it! */
+ strncpy(inst_name, ncr_name(np), 16);
printk("%s: releasing host resources\n", ncr_name(np));
@@ -4963,12 +5086,11 @@
*/
printk("%s: resetting chip\n", ncr_name(np));
- OUTB (nc_istat, SRST);
- UDELAY (100);
- OUTB (nc_istat, 0 );
+ ncr_chip_reset(np, 100);
OUTB(nc_dmode, np->sv_dmode);
OUTB(nc_dcntl, np->sv_dcntl);
+ OUTB(nc_ctest0, np->sv_ctest0);
OUTB(nc_ctest3, np->sv_ctest3);
OUTB(nc_ctest4, np->sv_ctest4);
OUTB(nc_ctest5, np->sv_ctest5);
@@ -4991,7 +5113,9 @@
#ifdef DEBUG_NCR53C8XX
printk("%s: releasing IO region %x[%d]\n", ncr_name(np), np->base_io, 128);
#endif
+#ifndef ENABLE_SCSI_ZALON
release_region(np->base_io, 128);
+#endif
/*
** Free allocated ccb(s)
@@ -5036,7 +5160,7 @@
m_free_dma(np->ccb, sizeof(struct ccb), "CCB");
m_free_dma(np, sizeof(struct ncb), "NCB");
- printk("%s: host resources successfully released\n", ncr_name(np));
+ printk("%s: host resources successfully released\n", inst_name);
return 1;
}
@@ -5061,7 +5185,6 @@
/*
** Sanity check
*/
-
if (!cp || cp->magic != CCB_MAGIC || !cp->cmd)
return;
@@ -5428,6 +5551,28 @@
}
}
+/*
+** Reset ncr chip.
+*/
+
+/* Some initialisation must be done immediately following reset, for 53c720,
+ * at least. EA (dcntl bit 5) isn't set here as it is set once only in
+ * the _detect function.
+ */
+
+static void ncr_chip_reset(ncb_p np, int delay)
+{
+ OUTB (nc_istat, SRST);
+ UDELAY (delay);
+ OUTB (nc_istat, 0 );
+
+ if (np->features & FE_EHP)
+ OUTB (nc_ctest0, EHP);
+ if (np->features & FE_MUX)
+ OUTB (nc_ctest4, MUX);
+}
+
+
/*==========================================================
**
**
@@ -5473,7 +5618,7 @@
*/
np->squeueput = 0;
np->script0->startpos[0] = cpu_to_scr(NCB_SCRIPTH_PHYS (np, tryloop));
-
+#ifdef SCSI_NCR_CCB_DONE_SUPPORT
/*
** Clear Done Queue
*/
@@ -5490,7 +5635,7 @@
np->ccb_done_ic = MAX_DONE-1;
np->scripth0->done_queue[5*(MAX_DONE-1) + 4] =
cpu_to_scr(NCB_SCRIPT_PHYS (np, done_plug));
-
+#endif
/*
** Wakeup all pending jobs.
*/
@@ -5500,8 +5645,10 @@
** Init chip.
*/
- OUTB (nc_istat, 0x00 ); /* Remove Reset, abort */
- UDELAY (2000); /* The 895 needs time for the bus mode to settle */
+ /* Remove reset; big delay because the 895 needs time for the
+ * bus mode to settle
+ */
+ ncr_chip_reset(np, 2000);
OUTB (nc_scntl0, np->rv_scntl0 | 0xc0);
/* full arb., ena parity, par->ATN */
@@ -5516,6 +5663,7 @@
OUTB (nc_ctest5, np->rv_ctest5); /* Large fifo + large burst */
OUTB (nc_dcntl , NOCOM|np->rv_dcntl); /* Protect SFBR */
+ OUTB (nc_ctest0, np->rv_ctest0); /* 720: CDIS and EHP */
OUTB (nc_ctest3, np->rv_ctest3); /* Write and invalidate */
OUTB (nc_ctest4, np->rv_ctest4); /* Master parity checking */
@@ -7100,6 +7248,18 @@
if (DEBUG_FLAGS & DEBUG_TINY) printk ("I#%d", num);
switch (num) {
+ case SIR_INTFLY:
+ /*
+ ** This is used for HP Zalon/53c720 where INTFLY
+ ** operation is currently broken.
+ */
+ ncr_wakeup_done(np);
+#ifdef SCSI_NCR_CCB_DONE_SUPPORT
+ OUTL(nc_dsp, NCB_SCRIPT_PHYS (np, done_end) + 8);
+#else
+ OUTL(nc_dsp, NCB_SCRIPT_PHYS (np, start));
+#endif
+ return;
case SIR_RESEL_NO_MSG_IN:
case SIR_RESEL_NO_IDENTIFY:
/*
@@ -7846,7 +8006,11 @@
*/
tp->getscr[0] = cpu_to_scr(copy_1);
tp->getscr[1] = cpu_to_scr(vtobus (&tp->sval));
+#ifdef SCSI_NCR_BIG_ENDIAN
+ tp->getscr[2] = cpu_to_scr(ncr_reg_bus_addr(nc_sxfer) ^ 3);
+#else
tp->getscr[2] = cpu_to_scr(ncr_reg_bus_addr(nc_sxfer));
+#endif
/*
** Load the timing register.
@@ -7854,7 +8018,11 @@
*/
tp->getscr[3] = cpu_to_scr(copy_1);
tp->getscr[4] = cpu_to_scr(vtobus (&tp->wval));
+#ifdef SCSI_NCR_BIG_ENDIAN
+ tp->getscr[5] = cpu_to_scr(ncr_reg_bus_addr(nc_scntl3) ^ 3);
+#else
tp->getscr[5] = cpu_to_scr(ncr_reg_bus_addr(nc_scntl3));
+#endif
/*
** Get the IDENTIFY message and the lun.
@@ -7883,10 +8051,17 @@
/*
** These assert's should be moved at driver initialisations.
*/
+#ifdef SCSI_NCR_BIG_ENDIAN
+ assert (( (offsetof(struct ncr_reg, nc_sxfer) ^
+ offsetof(struct tcb , sval )) &3) == 3);
+ assert (( (offsetof(struct ncr_reg, nc_scntl3) ^
+ offsetof(struct tcb , wval )) &3) == 3);
+#else
assert (( (offsetof(struct ncr_reg, nc_sxfer) ^
offsetof(struct tcb , sval )) &3) == 0);
assert (( (offsetof(struct ncr_reg, nc_scntl3) ^
offsetof(struct tcb , wval )) &3) == 0);
+#endif
}
@@ -8230,9 +8405,7 @@
/*
** Reset ncr chip
*/
- OUTB (nc_istat, SRST);
- UDELAY (100);
- OUTB (nc_istat, 0 );
+ ncr_chip_reset(np, 100);
/*
** check for timeout
*/
@@ -8459,7 +8632,7 @@
if (np->multiplier != mult || (scntl3 & 7) < 3 || !(scntl3 & 1)) {
unsigned f2;
- OUTB(nc_istat, SRST); UDELAY (5); OUTB(nc_istat, 0);
+ ncr_chip_reset(np, 5);
(void) ncrgetfreq (np, 11); /* throw away first result */
f1 = ncrgetfreq (np, 11);
@@ -9210,6 +9383,7 @@
*/
static u_short ncr_chip_ids[] __initdata = {
+ PSEUDO_ZALON_720_ID,
PCI_DEVICE_ID_NCR_53C810,
PCI_DEVICE_ID_NCR_53C815,
PCI_DEVICE_ID_NCR_53C820,
@@ -9224,6 +9398,89 @@
PCI_DEVICE_ID_NCR_53C1510D
};
+#ifdef ENABLE_SCSI_ZALON
+/*
+** Attach a 53c720 interfaced via Zalon chip on HP boxes.
+*/
+
+int
+zalon_attach(Scsi_Host_Template *tpnt, unsigned long io_port,
+ struct parisc_device *dev, int irq, int unit)
+{
+ u_short device_id;
+ u_char revision;
+ int i;
+ ncr_chip *chip;
+ ncr_device device;
+
+ tpnt->proc_name = NAME53C8XX;
+ tpnt->proc_info = ncr53c8xx_proc_info;
+
+#if defined(SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT) && defined(MODULE)
+ if (ncr53c8xx)
+ ncr53c8xx_setup(ncr53c8xx);
+#endif
+
+#ifdef SCSI_NCR_DEBUG_INFO_SUPPORT
+ ncr_debug = driver_setup.debug;
+#endif
+ if (initverbose >= 2)
+ ncr_print_driver_setup();
+
+ memset(&device, 0, sizeof(ncr_device));
+ chip = 0;
+ device_id = PSEUDO_ZALON_720_ID;
+ revision = 0;
+ for (i = 0; i < sizeof(ncr_chip_table)/sizeof(ncr_chip_table[0]); i++)
{
+ if (device_id != ncr_chip_table[i].device_id)
+ continue;
+ chip = &device.chip;
+ memcpy(chip, &ncr_chip_table[i], sizeof(*chip));
+ chip->revision_id = revision;
+ break;
+ }
+
+ if (!chip) {
+ printk(NAME53C8XX ": not initializing, device not supported\n");
+ return -1;
+ }
+
+ /*
+ ** Fix some features according to driver setup.
+ */
+
+ driver_setup.diff_support = 2;
+
+ /*
+ ** The following three are needed before any other access.
+ */
+
+ writeb(0x20, io_port + 0x38); /* DCNTL_REG, EA */
+ writeb(0x04, io_port + 0x1b); /* CTEST0_REG, EHP */
+ writeb(0x80, io_port + 0x22); /* CTEST4_REG, MUX */
+
+ /*
+ ** Initialise ncr_device structure with items required by ncr_attach.
+ */
+ device.host_id = driver_setup.host_id;
+ device.pdev = ccio_get_fake(dev);
+ device.slot.bus = 0;
+ device.slot.device_fn = 0;
+ device.slot.base = (u_long)io_port;
+ device.slot.base_c = (u_long)io_port;
+ device.slot.base_2 = 0;
+ device.slot.base_2_c = 0;
+ device.slot.io_port = io_port;
+ device.slot.irq = irq;
+ device.attach_done = 0;
+
+ printk(KERN_INFO NAME53C8XX ": 53c%s detected\n", device.chip.name);
+
+ return ncr_attach(tpnt, unit, &device);
+}
+#endif
+
+
/*==========================================================
**
** Chip detection entry point.
@@ -9273,6 +9530,10 @@
static
#endif
#if LINUX_VERSION_CODE >= LinuxVersionCode(2,4,0) || defined(MODULE)
+#ifdef ENABLE_SCSI_ZALON
+Scsi_Host_Template driver_template = SCSI_ZALON;
+#else
Scsi_Host_Template driver_template = NCR53C8XX;
+#endif
#include "scsi_module.c"
#endif
diff -NaurX dontdiff linux-2.4.21-pre7/drivers/scsi/Config.in linux-2.4.21-pre7-pa3x/drivers/scsi/Config.in
--- linux-2.4.21-pre7/drivers/scsi/Config.in 2003-03-27 19:43:50.000000000
+0100
+++ linux-2.4.21-pre7-pa3x/drivers/scsi/Config.in 2003-04-11 11:18:42.000000000
+0200
@@ -145,27 +145,46 @@
bool ' use normal IO' CONFIG_SCSI_SYM53C8XX_IOMAPPED
fi
fi
+define_bool CONFIG_ASK_ZALON n
+define_bool CONFIG_ASK_NCR53C8XX n
+define_bool CONFIG_ASK_SYM53C8XX n
+if [ "$CONFIG_PARISC" = "y" ]; then
+ dep_tristate 'Zalon SCSI support' CONFIG_SCSI_ZALON $CONFIG_GSC $CONFIG_SCSI
+ if [ "$CONFIG_SCSI_ZALON" != "n" ]; then
+ define_bool CONFIG_ASK_ZALON y
+ fi
+else
+ if [ "$CONFIG_PCI" = "y" -a "$CONFIG_SCSI_SYM53C8XX_2" != "y" ]; then
+ dep_tristate 'NCR53C8XX SCSI support' CONFIG_SCSI_NCR53C8XX $CONFIG_SCSI
+ if [ "$CONFIG_SCSI_NCR53C8XX" != "n" ]; then
+ define_bool CONFIG_ASK_NCR53C8XX y
+ fi
+ fi
+fi
if [ "$CONFIG_PCI" = "y" -a "$CONFIG_SCSI_SYM53C8XX_2" != "y" ]; then
- dep_tristate 'NCR53C8XX SCSI support' CONFIG_SCSI_NCR53C8XX $CONFIG_SCSI
dep_tristate 'SYM53C8XX SCSI support' CONFIG_SCSI_SYM53C8XX $CONFIG_SCSI
- if [ "$CONFIG_PARISC" = "y" ]; then
- dep_tristate 'Zalon SCSI support' CONFIG_SCSI_ZALON $CONFIG_GSC $CONFIG_SCSI
+ if [ "$CONFIG_SCSI_SYM53C8XX" != "n" ]; then
+ define_bool CONFIG_ASK_SYM53C8XX y
fi
- if [ "$CONFIG_SCSI_NCR53C8XX" != "n" -o "$CONFIG_SCSI_ZALON" = "y" -o
"$CONFIG_SCSI_ZALON" = "m" -o "$CONFIG_SCSI_SYM53C8XX" != "n" ]; then
- int ' default tagged command queue depth' CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS
8
- int ' maximum number of queued commands' CONFIG_SCSI_NCR53C8XX_MAX_TAGS
32
- int ' synchronous transfers frequency in MHz' CONFIG_SCSI_NCR53C8XX_SYNC
20
- bool ' enable profiling' CONFIG_SCSI_NCR53C8XX_PROFILE
+fi
+if [ "$CONFIG_ASK_ZALON" = "y" -o "$CONFIG_ASK_NCR53C8XX" = "y" -o "$CONFIG_ASK_SYM53C8XX"
= "y" ]; then
+ int ' default tagged command queue depth' CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS
8
+ int ' maximum number of queued commands' CONFIG_SCSI_NCR53C8XX_MAX_TAGS
32
+ int ' synchronous transfers frequency in MHz' CONFIG_SCSI_NCR53C8XX_SYNC
20
+ bool ' enable profiling' CONFIG_SCSI_NCR53C8XX_PROFILE
+ if [ "$CONFIG_ASK_ZALON" = "y" ]; then
+ define_bool CONFIG_SCSI_NCR53C8XX_IOMAPPED n
+ else
bool ' use normal IO' CONFIG_SCSI_NCR53C8XX_IOMAPPED
- if [ "$CONFIG_SCSI_SYM53C8XX" != "n" ]; then
- bool ' include support for the NCR PQS/PDS SCSI card' CONFIG_SCSI_NCR53C8XX_PQS_PDS
- fi
- if [ "$CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS" = "0" ]; then
- bool ' not allow targets to disconnect' CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT
- fi
- if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
- bool ' assume boards are SYMBIOS compatible (EXPERIMENTAL)' CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT
- fi
+ fi
+ if [ "$CONFIG_ASK_SYM53C8XX" = "y" ]; then
+ bool ' include support for the NCR PQS/PDS SCSI card' CONFIG_SCSI_NCR53C8XX_PQS_PDS
+ fi
+ if [ "$CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS" = "0" ]; then
+ bool ' not allow targets to disconnect' CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT
+ fi
+ if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+ bool ' assume boards are SYMBIOS compatible (EXPERIMENTAL)' CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT
fi
fi
if [ "$CONFIG_MCA" = "y" ]; then
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-14 11:39 ` Alan Cox
@ 2003-04-14 13:53 ` Joel Soete
2003-04-14 15:42 ` Joel Soete
2003-04-15 16:32 ` Joel Soete
1 sibling, 1 reply; 37+ messages in thread
From: Joel Soete @ 2003-04-14 13:53 UTC (permalink / raw)
To: Alan Cox; +Cc: Grant Grundler, parisc-linux
>
>On Llu, 2003-04-14 at 13:13, Joel Soete wrote:
>> +#if defined(__hppa__) && defined(CONFIG_SUPERIO)
>> +#include <asm/superio.h>
>> +#endif
>> +
>
>Please keep superio out of generic drivers
>
>
>> if (!using_inta)
>> +#if defined(__hppa__) && defined(CONFIG_SUPERIO)
>> + hwif->irq = superio_get_ide_irq(); /* legacy mode */
>> +#else
>> hwif->irq = hwif->channel ? 15 : 14; /* legacy mode */
>> +#endif
>> else if (!hwif->irq && hwif->mate && hwif->mate->irq)
>> hwif->irq = hwif->mate->irq; /* share IRQ with mate */
>
>Ughh. Ok this needs tackling in a more general way. get_legacy_irq(0/1)
>perhaps. This isnt the only port we need to sort out.
>
>Ok suppose you added superio.h to include/asm-parisc/ide.h and added
>ide_get_legacy(int n) [n=0/1] for interfaces. I can do the same for the
>other ports (return 14+n) and it will stay clean in 2.4 and 2.5
>
>
>> (dev->class & 0x80))) {
>> - unsigned long dma_base = ide_get_or_set_dma_base(hwif);
>> + u32 dma_base = ide_get_or_set_dma_base(hwif);
>
>Thats reverting a fix. dma_base must be unsigned long for 64bit
>platforms. Looks just like a merge error.
Sorry note a merge error but well a revert because I encounter a problem
in a previous merge. I have to review,
Thanks for advises,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-14 12:13 ` Joel Soete
2003-04-14 11:39 ` Alan Cox
@ 2003-04-14 14:18 ` Michael Wood
1 sibling, 0 replies; 37+ messages in thread
From: Michael Wood @ 2003-04-14 14:18 UTC (permalink / raw)
To: Joel Soete; +Cc: parisc-linux
On Mon, Apr 14, 2003 at 12:13:24PM +0000, Joel Soete wrote:
> To: "Grant Grundler" <grundler@parisc-linux.org>
> Cc: parisc-linux@lists.parisc-linux.org
> Hi Andre,
[snip]
Maybe you should add him to the To: or Cc: fields? :)
--
Michael Wood <mwood@its.uct.ac.za>
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-14 13:53 ` Joel Soete
@ 2003-04-14 15:42 ` Joel Soete
0 siblings, 0 replies; 37+ messages in thread
From: Joel Soete @ 2003-04-14 15:42 UTC (permalink / raw)
To: Alan Cox; +Cc: Grant Grundler, parisc-linux
>>> (dev->class & 0x80))) {
>>> - unsigned long dma_base = ide_get_or_set_dma_base(hwif);
>>> + u32 dma_base = ide_get_or_set_dma_base(hwif);
>>
>>Thats reverting a fix. dma_base must be unsigned long for 64bit
>>platforms. Looks just like a merge error.
>
hmm I just re-compile with "unsigned long dma_base" and it works (I mount
a cd on the ide cdrom drive and launch a find of file without any system
crash :) )
Thanks again,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-15 16:32 ` Joel Soete
@ 2003-04-15 15:54 ` Alan Cox
2003-04-15 16:41 ` Randolph Chung
1 sibling, 0 replies; 37+ messages in thread
From: Alan Cox @ 2003-04-15 15:54 UTC (permalink / raw)
To: Joel Soete; +Cc: Grant Grundler, parisc-linux
On Maw, 2003-04-15 at 17:32, Joel Soete wrote:
> >ide_get_legacy(int n) [n=0/1] for interfaces.
>
> And so I still have to add
> #if defined(CONFIG_SUPERIO)
> # define ide_get_legacy(x) superio_get_ide_irq()
> #else
> # define ide_get_legacy(x) ... (still have to find what)
> #endif
What do you need to know if the legacy irq is to come from superio.
Should be we be asking ide_get_legacy(struct pci_device *pdev) ?
I just want to understand this so I (or you) do it right
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-14 11:39 ` Alan Cox
2003-04-14 13:53 ` Joel Soete
@ 2003-04-15 16:32 ` Joel Soete
2003-04-15 15:54 ` Alan Cox
2003-04-15 16:41 ` Randolph Chung
1 sibling, 2 replies; 37+ messages in thread
From: Joel Soete @ 2003-04-15 16:32 UTC (permalink / raw)
To: Alan Cox; +Cc: Grant Grundler, parisc-linux
Alan,
I just start to have a look (very busy right now)
>On Llu, 2003-04-14 at 13:13, Joel Soete wrote:
>> +#if defined(__hppa__) && defined(CONFIG_SUPERIO)
>> +#include <asm/superio.h>
>> +#endif
>> +
>
>Please keep superio out of generic drivers
>
>
>> if (!using_inta)
>> +#if defined(__hppa__) && defined(CONFIG_SUPERIO)
>> + hwif->irq = superio_get_ide_irq(); /* legacy mode */
>> +#else
>> hwif->irq = hwif->channel ? 15 : 14; /* legacy mode */
>> +#endif
>> else if (!hwif->irq && hwif->mate && hwif->mate->irq)
>> hwif->irq = hwif->mate->irq; /* share IRQ with mate */
>
>Ughh. Ok this needs tackling in a more general way. get_legacy_irq(0/1)
>perhaps. This isnt the only port we need to sort out.
>
>Ok suppose you added superio.h to include/asm-parisc/ide.h
That is already done :)
> and added
>ide_get_legacy(int n) [n=0/1] for interfaces.
And so I still have to add
#if defined(CONFIG_SUPERIO)
# define ide_get_legacy(x) superio_get_ide_irq()
#else
# define ide_get_legacy(x) ... (still have to find what)
#endif
and so change in drivers/ide/pci/ns87415.c
hwif->irq = ide_get_legacy(); /* legacy mode */
Well in fact I do not yet well understand (less experience :( ) how do you
foreseen to manage this stuff for other platform?
thanks in advance for your understand.
By the way, in drivers/char/serial.c, also related to 'superio', i noticed:
#ifdef CONFIG_SUPERIO
superio_serial_init();
#endif
Here I don't see how could it be kept out of generic drivers. Any idea?
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-15 16:32 ` Joel Soete
2003-04-15 15:54 ` Alan Cox
@ 2003-04-15 16:41 ` Randolph Chung
2003-04-15 16:47 ` Matthew Wilcox
1 sibling, 1 reply; 37+ messages in thread
From: Randolph Chung @ 2003-04-15 16:41 UTC (permalink / raw)
To: Joel Soete; +Cc: Alan Cox, Grant Grundler, parisc-linux
> By the way, in drivers/char/serial.c, also related to 'superio', i noticed:
>
> #ifdef CONFIG_SUPERIO
> superio_serial_init();
> #endif
this probably should not go upstream.. it's a hack so we can get early
console (and is stlil broken on 2.5 :-( )
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-15 16:41 ` Randolph Chung
@ 2003-04-15 16:47 ` Matthew Wilcox
2003-04-15 16:52 ` Joel Soete
0 siblings, 1 reply; 37+ messages in thread
From: Matthew Wilcox @ 2003-04-15 16:47 UTC (permalink / raw)
To: Randolph Chung; +Cc: Joel Soete, Alan Cox, Grant Grundler, parisc-linux
On Tue, Apr 15, 2003 at 09:41:39AM -0700, Randolph Chung wrote:
> > By the way, in drivers/char/serial.c, also related to 'superio', i noticed:
> >
> > #ifdef CONFIG_SUPERIO
> > superio_serial_init();
> > #endif
>
> this probably should not go upstream.. it's a hack so we can get early
> console (and is stlil broken on 2.5 :-( )
agreed. the drivers/ stuff is much less interesting than getting
arch/parisc and include/asm-parisc more uptodate in marcelo's tree.
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-15 16:47 ` Matthew Wilcox
@ 2003-04-15 16:52 ` Joel Soete
0 siblings, 0 replies; 37+ messages in thread
From: Joel Soete @ 2003-04-15 16:52 UTC (permalink / raw)
To: Matthew Wilcox, Randolph Chung; +Cc: Alan Cox, Grant Grundler, parisc-linux
>>
>> this probably should not go upstream.. it's a hack so we can get early
>> console (and is stlil broken on 2.5 :-( )
>
>agreed. the drivers/ stuff is much less interesting than getting
>arch/parisc and include/asm-parisc more uptodate in marcelo's tree.
>
That is Ok for me. I will so try to spend more time on this aspect.
Thanks,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
@ 2003-04-16 10:13 Joel Soete
2003-04-16 11:06 ` Alan Cox
0 siblings, 1 reply; 37+ messages in thread
From: Joel Soete @ 2003-04-16 10:13 UTC (permalink / raw)
To: Alan Cox; +Cc: Grant Grundler, parisc-linux
>-- Original Message --
>Subject: Re: [parisc-linux] parisc-linux.org kernel
>From: Alan Cox <alan@lxorguk.ukuu.org.uk>
>To: Joel Soete <jsoe0708@tiscali.be>
>Cc: Grant Grundler <grundler@parisc-linux.org>,
> parisc-linux@lists.parisc-linux.org
>Date: 15 Apr 2003 16:54:32 +0100
>
>
>On Maw, 2003-04-15 at 17:32, Joel Soete wrote:
>
>> >ide_get_legacy(int n) [n=0/1] for interfaces.
>>
>> And so I still have to add
>> #if defined(CONFIG_SUPERIO)
>> # define ide_get_legacy(x) superio_get_ide_irq()
>> #else
>> # define ide_get_legacy(x) ... (still have to find what)
well: clearer this morning, it would just have to become
# define ide_get_legacy((x)) (x)?15:14
>> #endif
>
>What do you need to know if the legacy irq is to come from superio.
If I well understand the question: nothing because superio_get_ide_irq()
is defined in arch/parisc/kernel/superio.c as:
...
int
superio_get_ide_irq(void)
{
if (sio_dev.irq_region)
return sio_dev.irq_region->data.irqbase + IDE_IRQ;
else
return 0;
}
sio_dev being a global var:
...
static struct superio_device sio_dev = {
iosapic_irq: -1
};
which is define in include/asm-parisc/superio.h as:
...
struct superio_device {
u16 fdc_base;
u16 sp1_base;
u16 sp2_base;
u16 pp_base;
u16 acpi_base;
int iosapic_irq;
int iosapic_irq_enabled;
struct irq_region *irq_region;
struct pci_dev *lio_pdev; /* pci device for legacy IO fn */
};
...
>Should be we be asking ide_get_legacy(struct pci_device *pdev) ?
IMHO it would be difficult this way; what do you thing?
>
>I just want to understand this so I (or you) do it right
>
You have certainly more experience and a broader view (over different platform)
than I (up to you)
Is this actually help?
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-16 10:13 Joel Soete
@ 2003-04-16 11:06 ` Alan Cox
0 siblings, 0 replies; 37+ messages in thread
From: Alan Cox @ 2003-04-16 11:06 UTC (permalink / raw)
To: Joel Soete; +Cc: Grant Grundler, parisc-linux
On Mer, 2003-04-16 at 11:13, Joel Soete wrote:
> If I well understand the question: nothing because superio_get_ide_irq()
> is defined in arch/parisc/kernel/superio.c as:
> >Should be we be asking ide_get_legacy(struct pci_device *pdev) ?
>
> IMHO it would be difficult this way; what do you thing?
Ok so some people need to know the device, some the legacy (0/1) and
some nothing at all. I guess I pass both 8)
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
@ 2003-04-16 16:44 Joel Soete
2003-04-16 16:50 ` Matthew Wilcox
0 siblings, 1 reply; 37+ messages in thread
From: Joel Soete @ 2003-04-16 16:44 UTC (permalink / raw)
To: Grant Grundler; +Cc: parisc-linux
>cool - let me add some general comments.
>You might break the diff up into chunks along the lines that
>I've commented on them below. You should end up with something like
>15-20 patches.
Well I already create:
a chunck containing debian-configs (I call it 00_parisc_debian-configs.patch)
[about 140k] (would it be submited?)
another chunk containing all parisc specific (named 01_parisc.patch) containing
arch/parisc, include/asm-parisc and another noticed "parisc specific" [about
160k]
>
>> Documentation/Configure.help | 90
> I expect parisc-specific changes here.
Still have to care about a very small hunk (already from 2.4.19-pa2)
@@ -17555,6 +17595,10 @@
doing that; to actually get it to happen you need to pass the
option "console=lp0" to the kernel at boot time.
+ Note that kernel messages can get lost if the printer is out of
+ paper (or off, or unplugged, or too busy..), but this behaviour
+ can be changed. See drivers/char/lp.c (do this at your own risk).
+
If the printer is out of paper (or off, or unplugged, or too
busy..) the kernel will stall until the printer is ready again.
By defining CONSOLE_LP_STRICT to 0 (at your own risk) you
The rest is "parisc specific"
>
>> arch/parisc/config.in | 6
>...
> parisc specific (our tree is authoritative)
> Need to review for changes in Marcelo's tree.
> I expect Marcello to take the mess as-is if there
> are no conflicts.
>
Just more some small changes of mine (matching as near as possible changes
of other platform) to obtain a bootable 32bits kernel for my b2k (and its
fameous ide cdrom) and a b180L :)
Thanks in advance for your additional attention,
Joel
PS: As advise I will not consider generic patches (the main require knowledge
I do not have)
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-16 16:44 Joel Soete
@ 2003-04-16 16:50 ` Matthew Wilcox
0 siblings, 0 replies; 37+ messages in thread
From: Matthew Wilcox @ 2003-04-16 16:50 UTC (permalink / raw)
To: Joel Soete; +Cc: Grant Grundler, parisc-linux
On Wed, Apr 16, 2003 at 06:44:11PM +0200, Joel Soete wrote:
> Well I already create:
> a chunck containing debian-configs (I call it 00_parisc_debian-configs.patch)
> [about 140k] (would it be submited?)
No, I don't think this should be submitted. No other architecture does this.
> another chunk containing all parisc specific (named 01_parisc.patch) containing
> arch/parisc, include/asm-parisc and another noticed "parisc specific" [about
> 160k]
sounds good. be sure this applies to alan's/marcelo's tree as they've
taken updates since 2.4.20 was released.
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
@ 2003-04-18 8:17 Joel Soete
2003-04-18 11:40 ` Joel Soete
0 siblings, 1 reply; 37+ messages in thread
From: Joel Soete @ 2003-04-18 8:17 UTC (permalink / raw)
To: Matthew Wilcox; +Cc: Grant Grundler, parisc-linux
Willy and all,
>
>On Wed, Apr 16, 2003 at 06:44:11PM +0200, Joel Soete wrote:
>> Well I already create:
>> a chunck containing debian-configs (I call it 00_parisc_debian-configs.patch)
>> [about 140k] (would it be submited?)
>
>No, I don't think this should be submitted. No other architecture does
this.
>
>> another chunk containing all parisc specific (named 01_parisc.patch)
containing
>> arch/parisc, include/asm-parisc and another noticed "parisc specific"
[about
>> 160k]
>
>sounds good. be sure this applies to alan's/marcelo's tree as they've
>taken updates since 2.4.20 was released.
>
I already submitted a first draft to Randolph (as foreseen about 160Kb without
new's Grant ql driver) so that he could check it when he find some time.
In the meantime, I rebuild this with gcc-3.2 64bits which seems to run fine
on my b2k (ide cdrom, nfs, gcc,... seems ok). Just with this compiler I met
a pb to build the new module driver 3wxxx. So I will first re-install gcc-3.0
before all.
Thanks,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [parisc-linux] parisc-linux.org kernel
2003-04-18 8:17 Joel Soete
@ 2003-04-18 11:40 ` Joel Soete
0 siblings, 0 replies; 37+ messages in thread
From: Joel Soete @ 2003-04-18 11:40 UTC (permalink / raw)
To: Matthew Wilcox; +Cc: Grant Grundler, parisc-linux
>In the meantime, I rebuild this with gcc-3.2 64bits which seems to run fine
>on my b2k (ide cdrom, nfs, gcc,... seems ok). Just with this compiler I
met
>a pb to build the new module driver 3wxxx. So I will first re-install gcc-3.0
>before all.
>
A small update to just mention that there is no pb with gcc-hppa64-3.0.4.
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 37+ messages in thread
end of thread, other threads:[~2003-04-18 11:41 UTC | newest]
Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20030410155223.GA5254@dsl2.external.hp.com>
2003-04-11 5:40 ` [parisc-linux] parisc-linux.org kernel Joel Soete
2003-04-11 9:41 ` Joel Soete
2003-04-11 15:58 ` Grant Grundler
2003-04-12 20:30 ` Joel Soete
2003-04-14 12:13 ` Joel Soete
2003-04-14 11:39 ` Alan Cox
2003-04-14 13:53 ` Joel Soete
2003-04-14 15:42 ` Joel Soete
2003-04-15 16:32 ` Joel Soete
2003-04-15 15:54 ` Alan Cox
2003-04-15 16:41 ` Randolph Chung
2003-04-15 16:47 ` Matthew Wilcox
2003-04-15 16:52 ` Joel Soete
2003-04-14 14:18 ` Michael Wood
2003-04-18 8:17 Joel Soete
2003-04-18 11:40 ` Joel Soete
-- strict thread matches above, loose matches on Subject: below --
2003-04-16 16:44 Joel Soete
2003-04-16 16:50 ` Matthew Wilcox
2003-04-16 10:13 Joel Soete
2003-04-16 11:06 ` Alan Cox
2003-04-14 11:52 Joel Soete
2003-04-14 11:54 ` Matthew Wilcox
2003-04-14 12:53 ` Joel Soete
2003-04-09 7:36 Berthold Gunreben
2003-04-08 16:53 Alexander Gabert
2003-04-08 16:58 ` Matthew Wilcox
2003-04-08 17:06 ` Alexander Gabert
2003-04-08 17:08 ` Matthew Wilcox
2003-04-09 5:49 ` Grant Grundler
2003-04-09 7:54 ` Alexander Gabert
2003-04-09 15:47 ` Grant Grundler
2003-04-09 17:23 ` pageexec
2003-04-09 17:40 ` Matthew Wilcox
2003-04-09 18:20 ` pageexec
2003-04-09 17:48 ` Matthew Wilcox
2003-04-10 5:50 ` Grant Grundler
2003-04-10 11:19 ` Matthew Wilcox
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.