A Dell PowerEdge 1950 with Broadcom's NetXtreme II BCM5708 Gigabit Ethernet NIC card uses the bnx2 driver module. The module installed with debian etch 2.6.18-6-686-xen is version 1.4.44 which has a problem with the firmware which causes the network to cease working in Domain 0 when xend starts and bridging is on.

After installing etch with the xen kernel, I edited /etc/xen/xend-config.sxp to comment out the dummy network script (network-script network-dummy) and uncomment the network-bridge (network-script network-bridge). When I restarted xend, I lost network connection to the machine. I had to get someone at the data center to turn off bridging and restart xend to get access to the machine again. Comparing logs with another machine which used the tg3 driver, I thought bnx2 might be at fault and found some results on the net pointing to a bug (or undesirable behavior) with this driver and this nic card when it gets set to promiscuous mode as a bridge. A few web results pointed to a module on dell's website http://linux.dell.com/files/bnx2/xen-fix/ with source code and an rpm. For debian I used the source code.

__________
here's what I did to build and install the module from the source I downloaded from the above link:
# first I needed to install some headers before I'd be able to build a module for the precompiled kernel
# I had already installed build-essential for another project
# as root, or sudo


apt-get install linux-headers-2.6.18-6-xen-686

# this also installs:  linux-headers-2.6.18-6-xen linux-kbuild-2.6.18

wget http://linux.dell.com/files/bnx2/xen-fix/bnx2-1.4.51b.tar.gz
tar -xzf bnx2-1.4.51b.tar.gz
cd bnx2-1.4.51b
cd src
make
make install
# the module should now be in place
# I did depmod -a but I'm not sure it was necessary
depmod -a
# after rebooting, I used lshw to show the network info
lshw -C network
# excerpt below

  *-network               
       description: Ethernet interface
       product: NetXtreme II BCM5708 Gigabit Ethernet
       vendor: Broadcom Corporation
       physical id: 0
       bus info: pci@07:00.0
       logical name: eth0
       version: 12
       serial: 00:1e:c9:b6:a6:5a
       size: 1GB/s
       capacity: 1GB/s
       width: 64 bits
       clock: 66MHz
       capabilities: bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=bnx2 driverversion=1.4.44 duplex=full firmware=4.0.3 ip=85.112.3.102 latency=64 link=yes mingnt=64 multicast=yes port=twisted pair speed=1GB/s
       resources: iomemory:f4000000-f5ffffff irq:16

# it still had driverversion=1.4.44 because the module is loaded from the init ram disk
# updating the initram disk wasn't enough, had to delete and recreate it

debian:~# update-initramfs -dk `uname -r`
update-initramfs: Deleting /boot/initrd.img-2.6.18-6-xen-686
debian:~# update-initramfs -ck `uname -r`
update-initramfs: Generating /boot/initrd.img-2.6.18-6-xen-686

# reboot
# now bridging works.
# comment the dummy script, uncomment the network-bridge in xend-config.sxp then
/etc/init.d/xend restart

lshw -C network

  *-network               
       description: Ethernet interface
       product: NetXtreme II BCM5708 Gigabit Ethernet
       vendor: Broadcom Corporation
       physical id: 0
       bus info: pci@07:00.0
       logical name: peth0
       version: 12
       serial: fe:ff:ff:ff:ff:ff
       size: 1GB/s
       capacity: 1GB/s
       width: 64 bits
       clock: 66MHz
       capabilities: bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=bnx2 driverversion=1.4.51b duplex=full firmware=4.0.3 latency=64 link=yes mingnt=64 port=twisted pair speed=1GB/s
       resources: iomemory:f4000000-f5ffffff irq:16

#driverversion 1.4.51b

modinfo bnx2
filename:       /lib/modules/2.6.18-6-xen-686/kernel/drivers/net/bnx2.ko
author:         Michael Chan <mchan@broadcom.com>
description:    Broadcom NetXtreme II BCM5706/5708 Driver
license:        GPL
version:        1.4.51b
vermagic:       2.6.18-6-xen-686 SMP mod_unload 686 REGPARM gcc-4.1
depends:        
alias:          pci:v000014E4d0000164Asv0000103Csd00003101bc*sc*i*
alias:          pci:v000014E4d0000164Asv0000103Csd00003106bc*sc*i*
alias:          pci:v000014E4d0000164Asv*sd*bc*sc*i*
alias:          pci:v000014E4d0000164Csv*sd*bc*sc*i*
alias:          pci:v000014E4d000016AAsv0000103Csd00003102bc*sc*i*
alias:          pci:v000014E4d000016AAsv*sd*bc*sc*i*
alias:          pci:v000014E4d000016ACsv*sd*bc*sc*i*
srcversion:     3892E8EB9D23AD4226304AB
parm:           disable_msi:Disable Message Signaled Interrupt (MSI) (int)

up