Re: Compiling kernel 2.4.20 on m68k
On Sat, Jan 17, 2004 at 07:31:59PM +0100, Geert Uytterhoeven wrote:
> On Fri, 16 Jan 2004, Lance Tagliapietra wrote:
> > Now that I am up and compiling my own kernel, I have observed something
> > interesting and was wondering if anyone here had seen it before.
> > It seems that the configuration item CONFIG_ISA is required to compile
> > the kernel for the Amiga (I have not tried the other sub archs). If
> > that item is not set, the kernel compile will get all the way to the
> > link with the outp_b(), inb() and inb_p() not defined as described in
> > the quoted email message.
> In which driver does it complain about the missing outb_p() and friends?
It happens in the driveres/block/block.o as described in the quoted text
below. Ignore the first two lines about `access_process_vm' and
`is_dumpable' and consider the remaining lines. The function
floppy_hardint() is what is complaining about, but I traced the outb_p()
back to /include/asm_68k/io.h as I described below.
A grep of the source tree shows that floppy_hardint is referenced in
in the m68k files. The floppy_hardint() function does use these calls.
> > It seems that the only way to get CONFIG_ISA set is to bring in the
> > A1200 PCMCIA support. I tried to delete this support, as my A2000 does
> > not have a PCMCIA, so I thought I could delete support and save RAM. It
> > seems that outp_b(), inb() and inb_p() are defined in
> > include/asm-m68k/io.h but only if a specific set of configuration
> > options are set up, which includes CONFIG_ISA.
> Indeed, the only way to have some form of ISA on the Amiga is Gayle PCMCIA (or
> a Golden Gate 2 ISA bridge, but this support isn't integrated yet).
> > Interestingly, when I run 'make config' I do not get a prompt for the
> > CONFIG_ISA.
> Yep, because it depends on Gayle PCMCIA support.
I see that CONFIG_AMIGA_PCMCIA is set in the 2.4.20 Debian release
binary config which brings in this support then.
> > Is this correct behavior, or am I missing something. This is with the
> > 2.4.20 kernel file set and the m68k patches.
> > > > kernel/kernel.o: In function `access_process_vm':
> > > > kernel/kernel.o(.text+0x833c): undefined reference to `is_dumpable'
> > > > drivers/block/block.o: In function `floppy_hardint':
> > > > drivers/block/block.o(.text+0x268a): undefined reference to `inb'
> > > > drivers/block/block.o(.text+0x26ae): undefined reference to `outb_p'
> > > > drivers/block/block.o(.text+0x26c6): undefined reference to `inb_p'
> > > > make: *** [vmlinux] Error 1
> > >
> > > floppy_hardint() is a routine from the PC-style floppy driver. Probably it was
> > > enabled before you copied Config.amiga.
> Do you still have CONFIG_FLOPPY enabled? That's the PC style floppy. Please
> disable it when building an Amiga-only kernel, since it won't work.
No, CONFIG_FLOPPY is not set in my .config. It is not set in the
2.4.20 Debian release binary Config-2.4.20 either. I do have
CONFIG_AMIGA_FLOPPY enabled though, which is also enabled in the Debian
2.4.20 release config.
> You only want to enable CONFIG_FLOPPY on m68k if you're building a kernel for
> Q40/Q60 or Sun-3x.
I did not know that. Thanks.
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- email@example.com
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds