[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: SoundBlaster Live (emu10k1) on PWS433

On Thu, Jul 18, 2002 at 02:55:58PM +0200, Dannis 't Hart wrote:
> Has anyone got a Soundblaster live (emu10k1) working succesfully on
> alpha?
> ......
> /proc/pci says:
> Bus  1, device   9, function  0:
>  Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 8).
>  IRQ 40.
>  Master Capable.  Latency=32.  Min Gnt=2.Max Lat=20.
>  I/O at 0x9400 [0x941f].
> Bus  1, device   9, function  1:
>  Input device controller: Creative Labs SB Live! MIDI/Game Port (rev 8).
>  IRQ 40.
>  Master Capable.  Latency=32.  
>  I/O at 0x9420 [0x9427].
> While 'tail /var/log/messages' appears to indicate some hardware
> trouble???
> Jul 18 14:51:29 tachyon kernel: pci_map_single: no HW sg

Given that message, there must have been some earlier messages
that should have warned you that something was amiss on your
machine, concluding with something like:

	"pci: disabling sg translation window\n"

Why the setup code should fail to be able to use hardware
scatter/gather on your MIATA is unknown by me; since it's a 433, it
may be an early one with PYXIS pass1, which may have such a problem.
All the code is in arch/alpha/kernel/core_cia.c if you are curious.

But the real question is why it should fail to be able to direct-map
the address, given that you probably have less than 2GB of memory in
your machine (right?).

Well, the direct-map window for PCI DMA on MIATA is set up to start at
2GB (0x80000000); but if we look in the EMU10K1 code, we see that the
device itself is incapable of issuing addresses larger than 512MB-1,
as evidenced by:

#define EMU10K1_DMA_MASK 0x1fffffff /* DMA buffer mask for pci_alloc_consist */

What this means is that the device can't issue an address onto the PCI
bus that will fall into the range of addresses detected by the PYXIS
core logic as being part of the direct-map window.

Given the failure of your MIATA hardware to support scatter/gather
operation, and the EMU10K1 failure to generate enough address bits,
one hope is the following workaround:

1. if you have 256MB of memory or less, and
2. if you don't have any PCI devices that take large chunks of
   PCI address space (graphics are the prime suspects here, and
   there may be additional workaround needed if so)

Then, replace the following two lines in arch/alpha/kernel/core_cia.c:

        __direct_map_base = 0x80000000;
        __direct_map_size = 0x80000000;

with the following two lines:

        __direct_map_base = 0x10000000;
        __direct_map_size = 0x10000000;

rebuild your kernel, and pray... :-)

Let us know what happens, as you may not be the only one to encounter
this problem. Thanks!


Jay A Estabrook                            HPTC - LINUX support
Hewlett-Packard Company - MRO1-2/K15       (508) 467-2080
200 Forest Street, Marlboro MA 01752       Jay.Estabrook@hp.com

To UNSUBSCRIBE, email to debian-alpha-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

Reply to: