Re: [Bcm43xx-dev] crypto code

2006-01-01 Thread Sven Henkel
Hi!

 ..
 bcm43xx: Could not generate tssi2dBm table

Ah, cool! :-)

 ACPI: PCI interrupt for device :02:02.0 disabled

 And that's the end of the story.
 What is this tssi2dBm table?

Recently st3 added some code for dynamic generation of the tssi2dbm
table based on the paXbY values in sprom. (Ask some physician about
what this table is good for ;-) ) Your error indicates that the
specification for this function is still broken... shame on me! ;-)

Could you add some printk's to bcm43xx_read_sprom to print out all
paXbY (with X \in {0,1}, Y \in {0,1,2}) and send those values to me?

Sven

PS: Happy new year to everybody!
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
http://lists.berlios.de/mailman/listinfo/bcm43xx-dev


[Bcm43xx-dev] handle_irq_transmit_status() never called on iBook, Airport Extreme

2006-01-01 Thread Matteo Frigo
I am running rev 991 on an iBook G4 (openfirmware id PowerBook6,5) and
Airport Extreme.  I can associate with the base station, but I obtain
TX timeouts after the driver has transmitted approximately 410
packets, where 410 is 80% of the number of DMA slots (512).

Upon further investigation, it appears that the function
handle_irq_transmit_status() is never called, and therefore the driver
never frees DMA slots in bcm43xx_dma_handle_xmitstatus().  Therefore,
the driver suspends when reaching suspend_mark in request_slot() and
never recovers.  This behavior seems consistent with the reports of
``occasional'' TX timeouts by other people on this mailing list.

I do observe bcm43xx_interrupt_handler() being invoked, but the
``reason'' variable never has the BCM43xx_IRQ_XMIT_STATUS set.

I would appreciate if other people could confirm whether
handle_irq_transmit_status() is called on their system, so that I can
try to further diagnose the problem.

Cheers,
Matteo Frigo

___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
http://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [Bcm43xx-dev] handle_irq_transmit_status() never called on iBook, Airport Extreme

2006-01-01 Thread David Woodhouse
On Sun, 2006-01-01 at 08:54 -0600, Matteo Frigo wrote:
 I would appreciate if other people could confirm whether
 handle_irq_transmit_status() is called on their system, so that I can
 try to further diagnose the problem.

It's not being called here -- I see precisely the same as you. It stops
after sending about 410 packets.

With the built-in wireless (PowerBook5,3) this leads to a TX timeout, a
reset, and then I need to set the ESSID again before it works any more.

With a Belkin F5D7010 I found lying around, it didn't recover from the
error... 

 SoftMAC: assoc request timed out!
 NETDEV WATCHDOG: eth2: transmit timed out
 bcm43xx_interrupt_disable(), 0-0
 bcm43xx: FATAL ERROR (TX timeout): Resetting the chip...
 bcm43xx: Radio turned off
 bcm43xx: DMA 0x0260 (RX) max used slots: 0/64
 bcm43xx: DMA 0x0200 (RX) max used slots: 0/64
 bcm43xx: DMA 0x0260 (TX) max used slots: 0/512
 bcm43xx: DMA 0x0240 (TX) max used slots: 0/512
 bcm43xx: DMA 0x0220 (TX) max used slots: 2/512
 bcm43xx: DMA 0x0200 (TX) max used slots: 0/512
 bcm43xx: Card IRQ register not responding. Giving up.
 bcm43xx: Chip reset failed!

The only way to recover was to physically remove the card... which was
OK a couple of times but then http://david.woodhou.se/dcp_1910.jpg
happened when I removed the card a third time.

Since rebooting, the Belkin card does seem to recover OK from the TX
timeout.

-- 
dwmw2

___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
http://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [Bcm43xx-dev] handle_irq_transmit_status() never called on iBook, Airport Extreme

2006-01-01 Thread Michael Buesch
On Sunday 01 January 2006 19:35, David Woodhouse wrote:
 On Sun, 2006-01-01 at 08:54 -0600, Matteo Frigo wrote:
  I would appreciate if other people could confirm whether
  handle_irq_transmit_status() is called on their system, so that I can
  try to further diagnose the problem.
 
 It's not being called here -- I see precisely the same as you. It stops
 after sending about 410 packets.
 
 With the built-in wireless (PowerBook5,3) this leads to a TX timeout, a
 reset, and then I need to set the ESSID again before it works any more.
 
 With a Belkin F5D7010 I found lying around, it didn't recover from the
 error... 
 
  SoftMAC: assoc request timed out!
  NETDEV WATCHDOG: eth2: transmit timed out
  bcm43xx_interrupt_disable(), 0-0
  bcm43xx: FATAL ERROR (TX timeout): Resetting the chip...

I am not sure why this happens.
It is currently a bit hard to audit the code for the issue,
because the webserver with the specifications is down and I don't
have an up-to-date mirror.

-- 
Greetings Michael.


pgpBKqi1FnLhz.pgp
Description: PGP signature


[Bcm43xx-dev] authentication problem

2006-01-01 Thread Scott Toland
Hello everyone - almost have the driver functional,
but am running into this message when I try to
iwconfig the device up:

SoftMAC: cannot associate without being authenticated,
requested authentication

The machine is a beige G3 Powermac running Debian
Sarge 3.1r0. The driver tarball i have is 20051230.
The same goes for my SoftMAC module. 

Any help would be greatly appreciated

Lordgoatman




__ 
Yahoo! for Good - Make a difference this year. 
http://brand.yahoo.com/cybergivingweek2005/
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
http://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [Bcm43xx-dev] handle_irq_transmit_status() never called on iBook, Airport Extreme

2006-01-01 Thread Michael Buesch
On Sunday 01 January 2006 19:35, David Woodhouse wrote:
 On Sun, 2006-01-01 at 08:54 -0600, Matteo Frigo wrote:
  I would appreciate if other people could confirm whether
  handle_irq_transmit_status() is called on their system, so that I can
  try to further diagnose the problem.
 
 It's not being called here -- I see precisely the same as you. It stops
 after sending about 410 packets.
 
 With the built-in wireless (PowerBook5,3) this leads to a TX timeout, a
 reset, and then I need to set the ESSID again before it works any more.
 
 With a Belkin F5D7010 I found lying around, it didn't recover from the
 error... 
 
  SoftMAC: assoc request timed out!
  NETDEV WATCHDOG: eth2: transmit timed out
  bcm43xx_interrupt_disable(), 0-0
  bcm43xx: FATAL ERROR (TX timeout): Resetting the chip...
  bcm43xx: Radio turned off
  bcm43xx: DMA 0x0260 (RX) max used slots: 0/64
  bcm43xx: DMA 0x0200 (RX) max used slots: 0/64
  bcm43xx: DMA 0x0260 (TX) max used slots: 0/512
  bcm43xx: DMA 0x0240 (TX) max used slots: 0/512
  bcm43xx: DMA 0x0220 (TX) max used slots: 2/512
  bcm43xx: DMA 0x0200 (TX) max used slots: 0/512
  bcm43xx: Card IRQ register not responding. Giving up.
  bcm43xx: Chip reset failed!

Can you please check if latest SVN (r994 or later) has the
same behaviour?

-- 
Greetings Michael.


pgpS0bIsLMizf.pgp
Description: PGP signature


Re: [Bcm43xx-dev] handle_irq_transmit_status() never called on iBook, Airport Extreme

2006-01-01 Thread Michael Buesch
On Sunday 01 January 2006 22:21, Matteo Frigo wrote:
 Michael Buesch [EMAIL PROTECTED] writes:
 
  You have a device with a wlcore rev  5, which uses
  one DMA engine for TX status blobs.
  This code is untested and indeed likely to be wrong.
  I have no facilities to test it (neither has any other
  developer).
 
 Well, I do have a card with rev  5, so I can test it.
 
 On my machine, the code does invoke dma_rx() to read from rx_ring1, so
 at least this part is working.  However, I always get len == 0 when
 (ring-mmio_base == BCM43xx_MMIO_DMA4_BASE), the packet is dropped,
 and the bcm43xx_rx_transmitstatus() mechanism is not invoked.
 
 Any suggestion?

Ok, it should not be dropped. Afaik the len should be ignored
on DMA4. (I can not check, as the specs server is down).
But you may play around by yourself. Do a hack to ignore the
len on DMA4 and pass the xmitstatus blob to bcm43xx_rx_transmitstatus().
The xmitstatus blob is at the beginning of the descriptor buffer
(_no_ frame offset is used) and has a length of
sizeof(struct bcm43xx_hwxmitstatus).
So instead of doing:
len = le16_to_cpu(rxhdr-frame_length);
You might hack something like that:
if (ring-mmio_base == BCM43xx_MMIO_DMA4_BASE)
len = sizeof(struct bcm43xx_hwxmitstatus);
else
len = le16_to_cpu(rxhdr-frame_length);

Please also do another thing. dump the xmitstatus blob, using
bcm43xx_printk_dump() and post the hexdump here.
Just to see if we actually receive sane data.

-- 
Greetings Michael.


pgpP8LV1pMy7v.pgp
Description: PGP signature


Re: [Bcm43xx-dev] handle_irq_transmit_status() never called on iBook, Airport Extreme

2006-01-01 Thread Matteo Frigo
This patch seems to do the trick.  I am ignoring the
bcm43xx_rx_transmitstatus() mechanism and calling
bcm43xx_dma_handle_xmitstatus() directly.



patch
Description: Binary data


[Bcm43xx-dev] Support for BCM47XX (dscape branch)

2006-01-01 Thread Felix Fietkau

Hi BCM43xx hackers.

I'm one of the OpenWrt developers and I'm currently working on 
integrating your driver into our development branch. I've written a 
patch which adds support for a BCM43xx core integrated into the main SB 
of the BCM47xx SoC. It applies against the dscape branch, which I intend 
to use, but it should be easy to port it to trunk. Some people on 
irc.sipsolutions already reviewed an earlier version, so it would be 
nice if you could commit this version to SVN.
While testing it, I was able to associate with another AP, but couldn't 
transfer any data (had to hack some of the rate stuff for testing, this 
might be the problem).


Have fun,

Felix
Index: bcm43xx_main.h
===
--- bcm43xx_main.h	(revision 994)
+++ bcm43xx_main.h	(working copy)
@@ -33,7 +33,26 @@
 
 #include bcm43xx.h
 
+#ifdef CONFIG_BCM947XX
+#define atoi(str) simple_strtoul(((str != NULL) ? str : ), NULL, 0)
 
+static inline void e_aton(char *str, char *dest)
+{
+	int i = 0;
+	u16 *d = (u16 *) dest;
+
+	for (;;) {
+		dest[i++] = (char) simple_strtoul(str, NULL, 16);
+		str += 2;
+		if (!*str++ || i == 6)
+			break;
+	}
+	for (i = 0; i  3; i++)
+		d[i] = cpu_to_be16(d[i]);
+}
+#endif
+
+
 #define _bcm43xx_declare_plcp_hdr(size) \
 	struct bcm43xx_plcp_hdr##size {			\
 		union {	\
Index: bcm43xx_dma.c
===
--- bcm43xx_dma.c	(revision 994)
+++ bcm43xx_dma.c	(working copy)
@@ -338,7 +338,7 @@
 	meta-skb = skb;
 	meta-dmaaddr = dmaaddr;
 	skb-dev = ring-bcm-net_dev;
-	desc_addr = (u32)(dmaaddr + BCM43xx_DMA_DMABUSADDROFFSET);
+	desc_addr = (u32)(dmaaddr + ring-memoffset);
 	desc_ctl = (BCM43xx_DMADTOR_BYTECNT_MASK 
 		(u32)(ring-rx_buffersize - ring-frameoffset));
 	if (slot == ring-nr_slots - 1)
@@ -407,7 +407,7 @@
 		/* Set Transmit Descriptor ring address. */
 		bcm43xx_write32(ring-bcm,
 ring-mmio_base + BCM43xx_DMA_TX_DESC_RING,
-ring-dmabase + BCM43xx_DMA_DMABUSADDROFFSET);
+ring-dmabase + ring-memoffset);
 	} else {
 		err = alloc_initial_descbuffers(ring);
 		if (err)
@@ -421,7 +421,7 @@
 		/* Set Receive Descriptor ring address. */
 		bcm43xx_write32(ring-bcm,
 ring-mmio_base + BCM43xx_DMA_RX_DESC_RING,
-ring-dmabase + BCM43xx_DMA_DMABUSADDROFFSET);
+ring-dmabase + ring-memoffset);
 		/* Init the descriptor pointer. */
 		bcm43xx_write32(ring-bcm,
 ring-mmio_base + BCM43xx_DMA_RX_DESC_INDEX,
@@ -496,6 +496,13 @@
 	if (!ring-meta)
 		goto err_kfree_ring;
 
+	ring-memoffset = BCM43xx_DMA_DMABUSADDROFFSET;
+#ifdef CONFIG_BCM947XX
+	if (bcm-pci_dev-bus-number == 0)
+		ring-memoffset = 0;
+#endif
+	
+	
 	spin_lock_init(ring-lock);
 	ring-bcm = bcm;
 	ring-nr_slots = nr_descriptor_slots;
@@ -808,7 +815,7 @@
 		return -ENOMEM;
 	}
 
-	desc_addr = (u32)(meta-dmaaddr + BCM43xx_DMA_DMABUSADDROFFSET);
+	desc_addr = (u32)(meta-dmaaddr + ring-memoffset);
 	desc_ctl = BCM43xx_DMADTOR_FRAMESTART |
 		   (BCM43xx_DMADTOR_BYTECNT_MASK  (u32)(hdr_skb-len));
 	if (slot == ring-nr_slots - 1)
@@ -837,7 +844,7 @@
 		return -ENOMEM;
 	}
 
-	desc_addr = (u32)(meta-dmaaddr + BCM43xx_DMA_DMABUSADDROFFSET);
+	desc_addr = (u32)(meta-dmaaddr + ring-memoffset);
 	desc_ctl = (BCM43xx_DMADTOR_BYTECNT_MASK  (u32)(skb-len));
 	if (slot == ring-nr_slots - 1)
 		desc_ctl |= BCM43xx_DMADTOR_DTABLEEND;
Index: bcm43xx_dma.h
===
--- bcm43xx_dma.h	(revision 994)
+++ bcm43xx_dma.h	(working copy)
@@ -123,6 +123,8 @@
 	struct bcm43xx_private *bcm;
 	/* Kernel virtual base address of the ring memory. */
 	struct bcm43xx_dmadesc *vbase;
+	/* DMA memory offset */
+	dma_addr_t memoffset;
 	/* (Unadjusted) DMA base bus-address of the ring memory. */
 	dma_addr_t dmabase;
 	/* Meta data about all descriptors. */
Index: bcm43xx_debugfs.c
===
--- bcm43xx_debugfs.c	(revision 994)
+++ bcm43xx_debugfs.c	(working copy)
@@ -88,7 +88,7 @@
 		pci_dev-vendor, pci_dev-device);
 	fappend(subsystem_vendor: 0x%04x   subsystem_device: 0x%04x\n,
 		pci_dev-subsystem_vendor, pci_dev-subsystem_device);
-	fappend(IRQ: %d\n, pci_dev-irq);
+	fappend(IRQ: %d\n, bcm-irq);
 	fappend(mmio_addr: 0x%p   mmio_len: %u\n, bcm-mmio_addr, bcm-mmio_len);
 	fappend(chip_id: 0x%04x   chip_rev: 0x%02x\n, bcm-chip_id, bcm-chip_rev);
 	if ((bcm-core_80211[0].rev = 3)  (bcm43xx_read32(bcm, 0x0158)  (1  16)))
Index: bcm43xx_main.c
===
--- bcm43xx_main.c	(revision 994)
+++ bcm43xx_main.c	(working copy)
@@ -57,6 +57,10 @@
 MODULE_AUTHOR(Michael Buesch);
 MODULE_LICENSE(GPL);
 
+#ifdef CONFIG_BCM947XX
+extern char *nvram_get(char *name);
+#endif
+
 /* Module parameters */
 static int modparam_pio;
 module_param_named(pio, modparam_pio, int, 0444);
@@ -107,6 +111,11 @@
 	 * http://openfacts.berlios.de/index-en.phtml?title=Bcm43xxDevices
 	 */
 
+#ifdef 

Re: [Bcm43xx-dev] handle_irq_transmit_status() never called on iBook, Airport Extreme

2006-01-01 Thread Michael Buesch
On Sunday 01 January 2006 23:52, you wrote:
 This patch seems to do the trick.  I am ignoring the
 bcm43xx_rx_transmitstatus() mechanism and calling
 bcm43xx_dma_handle_xmitstatus() directly.

Ok, very good. I will apply this patch and also remove
the dead bcm43xx_rx_transmitstatus code.
Thanks.

-- 
Greetings Michael.


pgp86mIQOMTHh.pgp
Description: PGP signature