Re: linux 2.6.9 on alpha noritake

From: alex
Date: Sun Oct 24 2004 - 10:39:19 EST


Hallo Ivan,

that seems to do the trick....
but as usually one thing fixed next broken....
now the sym53c8xx won't scan the SCSI bus.
So I have no chance to boot and take a closer look if everything is
working again. I do further investigation later on.

Thank you for your help!
Alex

Am So, den 24.10.2004 schrieb Ivan Kokshaysky um 12:43:
> On Sat, Oct 23, 2004 at 10:58:11AM -0700, Richard Henderson wrote:
> > > pc is at __raw_readw+0x4c/0x60
> > > ra is at vgacon_startup+0x4ec/0x750
> >
> > I'll have a look. Why are you using fbcon anyway?
>
> Ouch. The high order bits of the address in cia_ioXXX routines get
> cleared out too early, so that addr >= CIA_DENSE_MEM clause
> is always false.
>
> Ivan.
>
> --- 2.9/include/asm-alpha/core_cia.h Tue Oct 19 01:54:30 2004
> +++ linux/include/asm-alpha/core_cia.h Sun Oct 24 14:16:17 2004
> @@ -347,14 +347,14 @@ __EXTERN_INLINE unsigned int cia_ioread8
> unsigned long addr = (unsigned long) xaddr;
> unsigned long result, base_and_type;
>
> - /* We can use CIA_MEM_R1_MASK for io ports too, since it is large
> - enough to cover all io ports, and smaller than CIA_IO. */
> - addr &= CIA_MEM_R1_MASK;
> if (addr >= CIA_DENSE_MEM)
> base_and_type = CIA_SPARSE_MEM + 0x00;
> else
> base_and_type = CIA_IO + 0x00;
>
> + /* We can use CIA_MEM_R1_MASK for io ports too, since it is large
> + enough to cover all io ports, and smaller than CIA_IO. */
> + addr &= CIA_MEM_R1_MASK;
> result = *(vip) ((addr << 5) + base_and_type);
> return __kernel_extbl(result, addr & 3);
> }
> @@ -379,12 +379,12 @@ __EXTERN_INLINE unsigned int cia_ioread1
> unsigned long addr = (unsigned long) xaddr;
> unsigned long result, base_and_type;
>
> - addr &= CIA_MEM_R1_MASK;
> if (addr >= CIA_DENSE_MEM)
> base_and_type = CIA_SPARSE_MEM + 0x08;
> else
> base_and_type = CIA_IO + 0x08;
>
> + addr &= CIA_MEM_R1_MASK;
> result = *(vip) ((addr << 5) + base_and_type);
> return __kernel_extwl(result, addr & 3);
> }
> @@ -394,12 +394,12 @@ __EXTERN_INLINE void cia_iowrite16(u16 b
> unsigned long addr = (unsigned long) xaddr;
> unsigned long w, base_and_type;
>
> - addr &= CIA_MEM_R1_MASK;
> if (addr >= CIA_DENSE_MEM)
> base_and_type = CIA_SPARSE_MEM + 0x08;
> else
> base_and_type = CIA_IO + 0x08;
>
> + addr &= CIA_MEM_R1_MASK;
> w = __kernel_inswl(b, addr & 3);
> *(vuip) ((addr << 5) + base_and_type) = w;
> }
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/