2002-02-08 14:21:45

by Rolf Eike Beer

[permalink] [raw]
Subject: [2.5.4-pre3] link error in drivers/video/video.o

ld -m elf_i386 -T /mnt/kernel/linux-2.5.4-pre3/arch/i386/vmlinux.lds -e stext
arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o
init/version.o init/do_mounts.o \
--start-group \
arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o
fs/fs.o ipc/ipc.o \
/mnt/kernel/linux-2.5.4-pre3/arch/i386/lib/lib.a
/mnt/kernel/linux-2.5.4-pre3/lib/lib.a
/mnt/kernel/linux-2.5.4-pre3/arch/i386/lib/lib.a \
drivers/base/base.o drivers/char/char.o drivers/block/block.o
drivers/misc/misc.o drivers/net/net.o drivers/media/media.o
drivers/ide/idedriver.o drivers/cdrom/driver.o drivers/pci/driver.o
drivers/video/video.o \
net/network.o \
--end-group \
-o vmlinux
drivers/video/video.o: In function `vesafb_init':
drivers/video/video.o(.text.init+0x13f9): undefined reference to
`bus_to_virt_not_defined_use_pci_map'
make: *** [vmlinux] Error 1

Eike


2002-02-08 14:51:51

by Alan

[permalink] [raw]
Subject: Re: [2.5.4-pre3] link error in drivers/video/video.o

> drivers/video/video.o: In function `vesafb_init':
> drivers/video/video.o(.text.init+0x13f9): undefined reference to
> `bus_to_virt_not_defined_use_pci_map'
> make: *** [vmlinux] Error 1

Someone made incorrect changes to the vesafb code. It was discussed but
not fixed before 2.5.3. vesafb should be using phys_to_virt

2002-02-08 15:01:43

by Dave Jones

[permalink] [raw]
Subject: Re: [2.5.4-pre3] link error in drivers/video/video.o

On Fri, Feb 08, 2002 at 03:22:00PM +0100, Rolf Eike Beer wrote:

> drivers/video/video.o(.text.init+0x13f9): undefined reference to
> `bus_to_virt_not_defined_use_pci_map'
> make: *** [vmlinux] Error 1

As the variable name suggests, a driver you compiled needs to be
updated to use a new API. If you're not able to tackle this
yourself, give 2.5.3-dj4 a shot, and use CONFIG_DEBUG_OBSOLETE=n
Not ideal, but should get you running again at least, until someone
has a chance to update it.

--
| Dave Jones. http://www.codemonkey.org.uk
| SuSE Labs

2002-02-08 15:45:53

by Alan

[permalink] [raw]
Subject: Re: [2.5.4-pre3] link error in drivers/video/video.o

> > drivers/video/video.o(.text.init+0x13f9): undefined reference to
> > `bus_to_virt_not_defined_use_pci_map'
> > make: *** [vmlinux] Error 1
>
> As the variable name suggests, a driver you compiled needs to be
> updated to use a new API. If you're not able to tackle this

That is incorrect. The warning occurs because someone made bogus changes to
the vesa driver without understanding what was going on. The vesa frame
buffer returned by the BIOS is a physical cpu address not a bus address
and nothing to do with magic PCI mappings.

Alan

2002-02-08 15:52:13

by David Miller

[permalink] [raw]
Subject: Re: [2.5.4-pre3] link error in drivers/video/video.o

From: Alan Cox <[email protected]>
Date: Fri, 8 Feb 2002 15:55:35 +0000 (GMT)

That is incorrect. The warning occurs because someone made bogus changes to
the vesa driver without understanding what was going on. The vesa frame
buffer returned by the BIOS is a physical cpu address not a bus address
and nothing to do with magic PCI mappings.

There were no changes made, in fact the VESA driver by your own
definition was buggy before my changes went in. :-) It was using
bus_to_virt and virt_to_bus all along Alan.

2002-02-08 16:16:14

by Alan

[permalink] [raw]
Subject: Re: [2.5.4-pre3] link error in drivers/video/video.o

> That is incorrect. The warning occurs because someone made bogus changes to
> the vesa driver without understanding what was going on. The vesa frame
> buffer returned by the BIOS is a physical cpu address not a bus address
> and nothing to do with magic PCI mappings.
>
> There were no changes made, in fact the VESA driver by your own
> definition was buggy before my changes went in. :-) It was using
> bus_to_virt and virt_to_bus all along Alan.

My error then. That or someone broke it around 2.0 8). It should be using
phys_to_virt. Its the usual weirdness of talking to the BIOS which talks in
CPU physical addresses.

VESAfb also genuinely does not know how the frame buffer is wired into the
system, it just has a physical address. Another approach I guess might be
to check if the address range if in a PCI root bridge window and if so
ioremap it. That possibly also means someone should get around to shrinking
the 1Gb (actually 900M) kernel to 768Mb because some frame buffers are now
at 128Mb of ram

2002-02-10 21:32:57

by Pavel Machek

[permalink] [raw]
Subject: Re: [2.5.4-pre3] link error in drivers/video/video.o

Hi!

> > That is incorrect. The warning occurs because someone made bogus changes to
> > the vesa driver without understanding what was going on. The vesa frame
> > buffer returned by the BIOS is a physical cpu address not a bus address
> > and nothing to do with magic PCI mappings.
> >
> > There were no changes made, in fact the VESA driver by your own
> > definition was buggy before my changes went in. :-) It was using
> > bus_to_virt and virt_to_bus all along Alan.
>
> My error then. That or someone broke it around 2.0 8). It should be using
> phys_to_virt. Its the usual weirdness of talking to the BIOS which talks in
> CPU physical addresses.

Hm, I wonder where it goes in /proc/driver hierarchy...? Probably
/proc/driver/legacy?
Pavel
--
(about SSSCA) "I don't say this lightly. However, I really think that the U.S.
no longer is classifiable as a democracy, but rather as a plutocracy." --hpa