[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gnumach2 and pcmcia
From: |
Daniel Wagner |
Subject: |
Re: gnumach2 and pcmcia |
Date: |
Mon, 16 Dec 2002 14:32:55 +0100 |
User-agent: |
Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.2 (i386-debian-linux-gnu) |
Hi
Marcus has asking me to post the patches which are needed to get a
'stable' kernel using pcmcia. These patches disable some code which
trigger some fatal bugs and therefor they are just quick and dirty
hack. They don't solve the problem.
I have uploaded a new version of the pcmcia patch. Now the other
widely spread pcmcia brigde (tcic) is activated.
The pcmcia code depends somehow on cardbus functionality. That means
that even though there is no cardbus enabled it uses some parts of the
cardbus code. The only way out I see is to fix this, is to support
cardbus. But I said earlier for this I need a cardbus card :)
dani
Don't call the softclock out of splx:
--- gnumach.orig/i386/i386/spl.S Thu Dec 5 21:02:28 2002
+++ gnumach/i386/i386/spl.S Thu Dec 5 21:38:48 2002
@@ -56,6 +56,11 @@ ENTRY(spl0)
movl EXT(curr_ipl),%eax /* save current ipl */
pushl %eax
cli /* disable interrupts */
+/*
+ * XXX Don't call softclock, it results in a panic in the linux code glued in
+ * from OSKit. Our softint implementation is broken.
+ */
+#if 0
cmpl $0,softclkpending /* softclock pending? */
je 1f /* no, skip */
movl $0,softclkpending /* clear flag */
@@ -63,6 +68,7 @@ ENTRY(spl0)
call EXT(softclock) /* go handle interrupt */
cli /* disable interrupts */
1:
+#endif
cmpl $(SPL0),EXT(curr_ipl) /* are we at spl0? */
je 1f /* yes, all done */
movl $(SPL0),EXT(curr_ipl) /* set ipl */
@@ -129,6 +135,11 @@ splx_cli:
cli /* disable interrupts */
testl %edx,%edx /* spl0? */
jnz 2f /* no, skip */
+/*
+ * XXX Don't call softclock, it results in a panic in the linux code glued in
+ * from OSKit. Our softint implementation is broken.
+ */
+#if 0
cmpl $0,softclkpending /* softclock pending? */
je 1f /* no, skip */
movl $0,softclkpending /* clear flag */
@@ -136,6 +147,7 @@ splx_cli:
call EXT(softclock) /* go handle interrupt */
cli /* disable interrupts */
1:
+#endif
xorl %edx,%edx /* edx = ipl 0 */
2:
cmpl EXT(curr_ipl),%edx /* same ipl as current? */
And disable this assertion.
Index: osenv_mem.c
===================================================================
RCS file: /cvsroot/hurd/gnumach/oskit/osenv_mem.c,v
retrieving revision 1.2
diff -u -r1.2 osenv_mem.c
--- osenv_mem.c 27 May 2002 23:01:57 -0000 1.2
+++ osenv_mem.c 16 Dec 2002 13:13:21 -0000
@@ -103,9 +103,11 @@
Always go directly to physical memory. */
flags |= OSENV_VIRT_EQ_PHYS|OSENV_PHYS_WIRED|OSENV_PHYS_CONTIG;
+#if 0
if (in_oskit_interrupt)
/* The oskit documentation says an interrupt caller must set the flag. */
assert (flags & OSENV_NONBLOCKING);
+#endif
if (!(flags & (OSENV_NONBLOCKING|OSENV_PHYS_WIRED)))
{