* compiling kernel 2.6.13
@ 2005-08-31 13:59 Damian Dimmich
2005-08-31 15:02 ` Ralf Baechle
2005-08-31 15:12 ` Thiemo Seufer
0 siblings, 2 replies; 11+ messages in thread
From: Damian Dimmich @ 2005-08-31 13:59 UTC (permalink / raw)
To: linux-mips
[-- Attachment #1: Type: text/plain, Size: 2571 bytes --]
Hello,
I had some trouble compiling 2.6.13 for the mips architecture. I encountered
two errors:
1)
In the file include/asm-mips/thread_info.h TIF_32BIT was undefined.
I added the following two lines which showed up in parisc and ppc64 's
thread-info's. Don't know if these values are correct or if this actually
works. It just gets it to compile...
#define TIF_32BIT 5 /* 32 bit binary */
#define _TIF_32BIT (1<<TIF_32BIT)
The error was in drivers/input/evdev.c which includes
include/asm-mips/thread_info.h
The error was:
CC [M] drivers/input/evdev.o
drivers/input/evdev.c: In function `evdev_write':
drivers/input/evdev.c:193: error: `TIF_32BIT' undeclared (first use in this
function)
drivers/input/evdev.c:193: error: (Each undeclared identifier is reported only
once
drivers/input/evdev.c:193: error: for each function it appears in.)
drivers/input/evdev.c: In function `evdev_read':
drivers/input/evdev.c:254: error: `TIF_32BIT' undeclared (first use in this
function)
2)
When linking .tmp_vmlinux1, KSEG1ADDR and KSEG1 where reported as undefined
and linking failed.
LD .tmp_vmlinux1
arch/mips/sgi-ip22/built-in.o(.text+0x2854): In function `ip22_eisa_intr':
: undefined reference to `KSEG1ADDR'
arch/mips/sgi-ip22/built-in.o(.text+0x2864): In function `ip22_eisa_intr':
: undefined reference to `KSEG1ADDR'
arch/mips/sgi-ip22/built-in.o(.text+0x2870): In function `ip22_eisa_intr':
: undefined reference to `KSEG1ADDR'
arch/mips/sgi-ip22/built-in.o(.text+0x28ac): In function `ip22_eisa_intr':
: undefined reference to `KSEG1ADDR'
arch/mips/sgi-ip22/built-in.o(.text+0x28c0): In function `ip22_eisa_intr':
: undefined reference to `KSEG1ADDR'
arch/mips/sgi-ip22/built-in.o(.text+0x293c): more undefined references to
`KSEG1ADDR' follow
make: *** [.tmp_vmlinux1] Error 1
I fixed this by adding the lines:
#define KSEG1ADDR(a) (CPHYSADDR(a) | KSEG1)
#define KSEG1 0xa0000000
at the top of the file arch/mips/sgi-ip22/ip22-eisa.c
These are copied from include/asm/addrspace.h
I found it quite strange that it only failed when linking the kernel and not
earlier. The file asm/addrspace.h is included in ip22-eisa.c
eisa support is enabled and i'm compiling a 64 bit kernel.
gcc is:
Reading specs from /usr/mips/lib/gcc-lib/mips-linux/3.3.3/specs
Configured with: ../configure --prefix=/usr/mips --exec-prefix=/usr/mips
--target=mips-linux --enable-shared --disable-nls --disable-multilib
--enable-languages=c,c++,ada,f77,objc
Thread model: posix
gcc version 3.3.3 (Debian)
Cheers,
Damian
[-- Attachment #2: ip22-eisa.c.patch --]
[-- Type: text/x-diff, Size: 301 bytes --]
34c34,35
< #include <asm/addrspace.h>
---
> //#include <asm/addrspace.h>
> #include <asm-mips/addrspace.h>
39a41,45
> //Force redefine.. seems to fail to find it when linking kernel itself.
> //This is probably no good..
> #define KSEG1ADDR(a) (CPHYSADDR(a) | KSEG1)
> #define KSEG1 0xa0000000
>
[-- Attachment #3: asm-mips.thread_info.h.patch --]
[-- Type: text/x-diff, Size: 327 bytes --]
38a39,45
> /*Copied these from parisc and ppc64 - don't know any better. TIF_32BIT was
> * undefined when compiling for mips in drivers/input/evdev.c I do not
> * understand this code. Just guessing...*/
> #define TIF_32BIT 5 /* 32 bit binary */
> #define _TIF_32BIT (1<<TIF_32BIT)
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: compiling kernel 2.6.13
2005-08-31 13:59 compiling kernel 2.6.13 Damian Dimmich
@ 2005-08-31 15:02 ` Ralf Baechle
2005-08-31 15:30 ` Stephen P. Becker
2005-08-31 15:12 ` Thiemo Seufer
1 sibling, 1 reply; 11+ messages in thread
From: Ralf Baechle @ 2005-08-31 15:02 UTC (permalink / raw)
To: Damian Dimmich; +Cc: linux-mips
On Wed, Aug 31, 2005 at 02:59:46PM +0100, Damian Dimmich wrote:
> I had some trouble compiling 2.6.13 for the mips architecture. I encountered
> two errors:
>
> 1)
>
> In the file include/asm-mips/thread_info.h TIF_32BIT was undefined.
>
> I added the following two lines which showed up in parisc and ppc64 's
> thread-info's. Don't know if these values are correct or if this actually
> works. It just gets it to compile...
> #define TIF_32BIT 5 /* 32 bit binary */
> #define _TIF_32BIT (1<<TIF_32BIT)
>
> The error was in drivers/input/evdev.c which includes
> include/asm-mips/thread_info.h
>
> The error was:
> CC [M] drivers/input/evdev.o
> drivers/input/evdev.c: In function `evdev_write':
> drivers/input/evdev.c:193: error: `TIF_32BIT' undeclared (first use in this
> function)
> drivers/input/evdev.c:193: error: (Each undeclared identifier is reported only
> once
> drivers/input/evdev.c:193: error: for each function it appears in.)
> drivers/input/evdev.c: In function `evdev_read':
> drivers/input/evdev.c:254: error: `TIF_32BIT' undeclared (first use in this
> function)
That driver's 32-bit compatibility is totally broken, I'm afraid. It'll
be easy to kludge though ...
> 2)
>
> When linking .tmp_vmlinux1, KSEG1ADDR and KSEG1 where reported as undefined
> and linking failed.
> LD .tmp_vmlinux1
> arch/mips/sgi-ip22/built-in.o(.text+0x2854): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x2864): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x2870): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x28ac): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x28c0): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x293c): more undefined references to
> `KSEG1ADDR' follow
> make: *** [.tmp_vmlinux1] Error 1
>
>
> I fixed this by adding the lines:
> #define KSEG1ADDR(a) (CPHYSADDR(a) | KSEG1)
> #define KSEG1 0xa0000000
> at the top of the file arch/mips/sgi-ip22/ip22-eisa.c
> These are copied from include/asm/addrspace.h
>
> I found it quite strange that it only failed when linking the kernel and not
> earlier. The file asm/addrspace.h is included in ip22-eisa.c
>
> eisa support is enabled and i'm compiling a 64 bit kernel.
Daring. Hardly anybody is using EISA on that machine and even less so on
64-bit, expect to find bugs.
> gcc version 3.3.3 (Debian)
Should be a safe choice of compiler.
Ralf
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: compiling kernel 2.6.13
2005-08-31 15:02 ` Ralf Baechle
@ 2005-08-31 15:30 ` Stephen P. Becker
2005-08-31 15:35 ` Ralf Baechle
0 siblings, 1 reply; 11+ messages in thread
From: Stephen P. Becker @ 2005-08-31 15:30 UTC (permalink / raw)
To: 'Linux/MIPS Development'
>>eisa support is enabled and i'm compiling a 64 bit kernel.
>
>
> Daring. Hardly anybody is using EISA on that machine and even less so on
> 64-bit, expect to find bugs.
Furthermore, 64-bit kernels are somewhat broken on ip22 right now.
Something is wrong with memory allocation, and it really screws a lot of
things up. Off the top of my head, you won't be able to turn on swap,
mount a ricerfs partition, or dd large blocks from /dev/zero. You would
be much better of sticking with 32-bit at this time.
-Steve
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: compiling kernel 2.6.13
2005-08-31 15:30 ` Stephen P. Becker
@ 2005-08-31 15:35 ` Ralf Baechle
2005-08-31 15:55 ` Thiemo Seufer
0 siblings, 1 reply; 11+ messages in thread
From: Ralf Baechle @ 2005-08-31 15:35 UTC (permalink / raw)
To: Stephen P. Becker; +Cc: 'Linux/MIPS Development'
On Wed, Aug 31, 2005 at 11:30:36AM -0400, Stephen P. Becker wrote:
> >Daring. Hardly anybody is using EISA on that machine and even less so on
> >64-bit, expect to find bugs.
>
> Furthermore, 64-bit kernels are somewhat broken on ip22 right now.
> Something is wrong with memory allocation, and it really screws a lot of
> things up. Off the top of my head, you won't be able to turn on swap,
> mount a ricerfs partition, or dd large blocks from /dev/zero. You would
> be much better of sticking with 32-bit at this time.
But that seems an IP22-specific problem.
Ralf
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: compiling kernel 2.6.13
2005-08-31 15:35 ` Ralf Baechle
@ 2005-08-31 15:55 ` Thiemo Seufer
2005-08-31 16:22 ` Atsushi Nemoto
0 siblings, 1 reply; 11+ messages in thread
From: Thiemo Seufer @ 2005-08-31 15:55 UTC (permalink / raw)
To: Ralf Baechle; +Cc: Stephen P. Becker, 'Linux/MIPS Development'
Ralf Baechle wrote:
> On Wed, Aug 31, 2005 at 11:30:36AM -0400, Stephen P. Becker wrote:
>
> > >Daring. Hardly anybody is using EISA on that machine and even less so on
> > >64-bit, expect to find bugs.
> >
> > Furthermore, 64-bit kernels are somewhat broken on ip22 right now.
> > Something is wrong with memory allocation, and it really screws a lot of
> > things up. Off the top of my head, you won't be able to turn on swap,
> > mount a ricerfs partition, or dd large blocks from /dev/zero. You would
> > be much better of sticking with 32-bit at this time.
>
> But that seems an IP22-specific problem.
I _think_ it hits every 64bit kernel which uses mappings in CKSEG0.
Do you know a system where this works?
Thiemo
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: compiling kernel 2.6.13
2005-08-31 15:55 ` Thiemo Seufer
@ 2005-08-31 16:22 ` Atsushi Nemoto
2005-09-01 8:33 ` Thiemo Seufer
0 siblings, 1 reply; 11+ messages in thread
From: Atsushi Nemoto @ 2005-08-31 16:22 UTC (permalink / raw)
To: ths; +Cc: ralf, geoman, linux-mips
>>>>> On Wed, 31 Aug 2005 17:55:26 +0200, Thiemo Seufer <ths@networkno.de> said:
>> But that seems an IP22-specific problem.
ths> I _think_ it hits every 64bit kernel which uses mappings in
ths> CKSEG0. Do you know a system where this works?
Though I do not have IP22, I think this line in mach-ip22/space.h is
inappropriate.
#define MAP_BASE 0xffffffffc0000000
It will make VMALLOC_END in pgtabe-64.h overflow.
#define VMALLOC_START MAP_BASE
#define VMALLOC_END \
(VMALLOC_START + PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE)
Shoule we use 0xc000000000000000 as MAP_BASE for IP22 ?
---
Atsushi Nemoto
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: compiling kernel 2.6.13
2005-08-31 16:22 ` Atsushi Nemoto
@ 2005-09-01 8:33 ` Thiemo Seufer
0 siblings, 0 replies; 11+ messages in thread
From: Thiemo Seufer @ 2005-09-01 8:33 UTC (permalink / raw)
To: Atsushi Nemoto; +Cc: ralf, geoman, linux-mips
Atsushi Nemoto wrote:
> >>>>> On Wed, 31 Aug 2005 17:55:26 +0200, Thiemo Seufer <ths@networkno.de> said:
> >> But that seems an IP22-specific problem.
>
> ths> I _think_ it hits every 64bit kernel which uses mappings in
> ths> CKSEG0. Do you know a system where this works?
>
> Though I do not have IP22, I think this line in mach-ip22/space.h is
> inappropriate.
>
> #define MAP_BASE 0xffffffffc0000000
>
> It will make VMALLOC_END in pgtabe-64.h overflow.
>
> #define VMALLOC_START MAP_BASE
> #define VMALLOC_END \
> (VMALLOC_START + PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE)
>
> Shoule we use 0xc000000000000000 as MAP_BASE for IP22 ?
Thanks, this helped!
Thiemo
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: compiling kernel 2.6.13
2005-08-31 13:59 compiling kernel 2.6.13 Damian Dimmich
2005-08-31 15:02 ` Ralf Baechle
@ 2005-08-31 15:12 ` Thiemo Seufer
2005-08-31 15:25 ` Ralf Baechle
2005-08-31 15:42 ` Ladislav Michl
1 sibling, 2 replies; 11+ messages in thread
From: Thiemo Seufer @ 2005-08-31 15:12 UTC (permalink / raw)
To: Damian Dimmich; +Cc: linux-mips
Damian Dimmich wrote:
[snip]
> When linking .tmp_vmlinux1, KSEG1ADDR and KSEG1 where reported as undefined
> and linking failed.
> LD .tmp_vmlinux1
> arch/mips/sgi-ip22/built-in.o(.text+0x2854): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x2864): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x2870): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x28ac): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x28c0): In function `ip22_eisa_intr':
> : undefined reference to `KSEG1ADDR'
> arch/mips/sgi-ip22/built-in.o(.text+0x293c): more undefined references to
> `KSEG1ADDR' follow
> make: *** [.tmp_vmlinux1] Error 1
>
>
> I fixed this by adding the lines:
> #define KSEG1ADDR(a) (CPHYSADDR(a) | KSEG1)
> #define KSEG1 0xa0000000
> at the top of the file arch/mips/sgi-ip22/ip22-eisa.c
> These are copied from include/asm/addrspace.h
>
> I found it quite strange that it only failed when linking the kernel and not
> earlier. The file asm/addrspace.h is included in ip22-eisa.c
>
> eisa support is enabled and i'm compiling a 64 bit kernel.
You could try the patch in http://people.debian.org/~ths/foo/ip22-eisa.diff
which fixes that problem. I don't have the hardware to test it, and so far
nobody else cared to tell me if works.
Thiemo
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: compiling kernel 2.6.13
2005-08-31 15:12 ` Thiemo Seufer
@ 2005-08-31 15:25 ` Ralf Baechle
2005-08-31 16:10 ` Thiemo Seufer
2005-08-31 15:42 ` Ladislav Michl
1 sibling, 1 reply; 11+ messages in thread
From: Ralf Baechle @ 2005-08-31 15:25 UTC (permalink / raw)
To: Thiemo Seufer; +Cc: Damian Dimmich, linux-mips
On Wed, Aug 31, 2005 at 05:12:23PM +0200, Thiemo Seufer wrote:
> You could try the patch in http://people.debian.org/~ths/foo/ip22-eisa.diff
> which fixes that problem. I don't have the hardware to test it, and so far
> nobody else cared to tell me if works.
At least it looks like an improvment and since it's probably save to
consider the current IP22 EISA code as broken I wouldn't mind if you want
to check this one in ...
Ralf
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: compiling kernel 2.6.13
2005-08-31 15:12 ` Thiemo Seufer
2005-08-31 15:25 ` Ralf Baechle
@ 2005-08-31 15:42 ` Ladislav Michl
1 sibling, 0 replies; 11+ messages in thread
From: Ladislav Michl @ 2005-08-31 15:42 UTC (permalink / raw)
To: Thiemo Seufer; +Cc: Damian Dimmich, linux-mips
On Wed, Aug 31, 2005 at 05:12:23PM +0200, Thiemo Seufer wrote:
[snip]
> You could try the patch in http://people.debian.org/~ths/foo/ip22-eisa.diff
> which fixes that problem. I don't have the hardware to test it, and so far
> nobody else cared to tell me if works.
Yet another patch is laying here almost two years without any attention:
ftp://ftp.linux-mips.org/pub/linux/mips/people/ladis/eisa.diff
It is against some ancient 2.4 kernel (do we still about it?) and at least
shows how to use common 8259A code to handle interrupts. Perhaps we
could do the same in 2.6 and use new EISA code in drivers/eisa ?
ladis
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2005-09-01 8:27 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-31 13:59 compiling kernel 2.6.13 Damian Dimmich
2005-08-31 15:02 ` Ralf Baechle
2005-08-31 15:30 ` Stephen P. Becker
2005-08-31 15:35 ` Ralf Baechle
2005-08-31 15:55 ` Thiemo Seufer
2005-08-31 16:22 ` Atsushi Nemoto
2005-09-01 8:33 ` Thiemo Seufer
2005-08-31 15:12 ` Thiemo Seufer
2005-08-31 15:25 ` Ralf Baechle
2005-08-31 16:10 ` Thiemo Seufer
2005-08-31 15:42 ` Ladislav Michl
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.