OpenWrt Forum Archive

Topic: New Broadcom BCM63xx codebase with GPL'd Ethernet and USB support

The content of this topic has been archived between 8 Feb 2018 and 7 May 2018. Unfortunately there are posts – most likely complete pages – missing.

Hi MisteroX!

I have just uploaded something like a tutorial it to the wiki.

http://wiki.openwrt.org/OpenWrtDocs/Har … ar/DG834GT

I have loaded the UHCI module, which is seems to be working, but it does not detect any USB device at the /proc/bus/usb/devices.

Best regards,
Miklós Márton

Hi martonmiklos,
   
I will buy the components and try.

Thank
MisteroX

oes anyone have experiences with the USB port, with any router based on BCM6348?

I have a Netgear DG834GT.
I have soldered the missing parts to USB port.
But at the /proc/bus/usb/devices there is only the host controller is listed.

I've tried to upgrade the USB port on my DG834GBT just after the 63xx port was released (exactly in the same way you descrbe it on wiki), unfortunately with no success;kernel loads the drivers reporting two USB ports but there is no reaction when I put a stick or usb-souncard into the socket sad
are any usb-devices recognized in 'dmesg' by you? I guess there should be another missing component (resistor or junction) which controls BCM6348 usb-mode (device or host)

@ mototum
@ misteroX
@ martonmiklos

USB in 6348 devices are 1.1. It works ok. I have a 6348GW-11 board and i moded my board at similar way than yours. With openWRT, it plays music on a USB sound device, and i have connected usb memory styck, usb hardisk, usb hp1220c printer. I use a USB hub.

You must have to acivate kernel modules from make menuconfig before compiling openWRT, for example usblp for printers, usb_storage, sd_mod, scsi_mod, ... for usb sticks.


And most important, only use ohci_hcd, because is 1.1 USB compliant and ehci and uhci not works.

Greetings

2 t3l3m4k0: certainly it works, but we are trying to retrofit an usb port on DG834GT which is not soldered and as for me I tried really hard with different resistor values and connections: kernel reports 2 available usb ports, but no usb devices are recognized when plugged in
I will be very happy when someone gets it worked on DG834 and shares it with us wink

will there be an openwrt firmware for netgear DG834G?

Hi,
USR 9108. I added new board def (96348GW-A) to board_bcm963xx.c, CFEOLD build to Makefiles.

So this image can be loaded by www. But now:

CFE version 1.0.37-4.3 for BCM96348 (32bit,SP,BE)
Build Date: Tue Jan 17 07:46:56 CST 2006 (root@new-host-2)
Copyright (C) 2000-2005 Broadcom Corporation.

Boot Address 0xbfc00000

Initializing Arena.
Initializing Devices.
Parallel flash device: name M29W320ET, id 0x2256, size 4096KB
CPU type 0x29107: 256MHz, Bus: 128MHz, Ref: 32MHz
Total memory: 16777216 bytes (16MB)

Total memory used by CFE:  0x80401000 - 0x805252C0 (1196736)
Initialized Data:          0x8041C590 - 0x8041EA50 (9408)
BSS Area:                  0x8041EA50 - 0x804232C0 (18544)
Local Heap:                0x804232C0 - 0x805232C0 (1048576)
Stack Area:                0x805232C0 - 0x805252C0 (8192)
Text (code) segment:       0x80401000 - 0x8041C590 (112016)
Boot area (physical):      0x00526000 - 0x00566000
Relocation Factor:         I:00000000 - D:00000000

Board IP address                  : 192.168.1.1  
Host IP address                   : 192.168.1.100  
Gateway IP address                :   
Run from flash/host (f/h)         : f  
Default host run file name        : vmlinux  
Default host flash file name      : bcm963xx_fs_kernel  
Boot delay (0-9 seconds)          : 1  
Board Id Name                     : 96348GW-A  
Psi size in KB                    : 24
Number of MAC Addresses (1-32)    : 11  
Base MAC Address                  : 00:14:c1:1f:c0:e9  
Ethernet PHY Type                 : External Switch Using Reverse MII
Memory size in MB                 : 16
Country code                      : FR

*** Press any key to stop auto run (1 seconds) ***
Auto run second count down: 0
Code Address: 0x80010000, Entry Address: 0x80010000
Decompression OK!
Entry at 0x80010000
Closing network.
Starting program at 0x80010000
Linux version 2.6.27.13 (user@debian) (gcc version 4.1.2) #4 Sat Jan 31 10:26:41 CET 2009
Detected Broadcom 0x6348 CPU revision b0
CPU frequency is 256000000 Hz
16MB of RAM installed
board_bcm963xx: CFE version: 1.0.37-4.3
console [early0] enabled
CPU revision is: 00029107 (Broadcom BCM6348)
board_bcm963xx: board name: 96348GW-A
Determined physical RAM map:
 memory: 01000000 @ 00000000 (usable)
Initrd not found or empty - disabling initrd
Zone PFN ranges:
  Normal   0x00000000 -> 0x00001000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0: 0x00000000 -> 0x00001000
Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 4064
Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,jffs2 init=/etc/preinit noinitrd console=ttyS0,115200
Primary instruction cache 16kB, VIPT, 2-way, linesize 16 bytes.
Primary data cache 8kB, 2-way, VIPT, no aliases, linesize 16 bytes
PID hash table entries: 64 (order: 6, 256 bytes)
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 13720k/16384k available (1867k kernel code, 2664k reserved, 321k data, 120k init, 0k highmem)
Calibrating delay loop... 254.97 BogoMIPS (lpj=509952)
Mount-cache hash table entries: 512
net_namespace: 592 bytes
NET: Registered protocol family 16
registering 37 GPIOs
registering PCI controller with io_map_base unset
bus: 00 index 0 io port: [8000000, 800ffff]
bus: 00 index 1 mmio: [30000000, 37ffffff]
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 512 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: -1, 2048 bytes)
TCP: Hash tables configured (established 512 bind 512)
TCP reno registered
NET: Registered protocol family 1
audit: initializing netlink socket (disabled)
type=2000 audit(0.277:1): initialized
squashfs: version 3.0 (2006/03/15) Phillip Lougher
Registering mini_fo version $Id$
JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
msgmni has been set to 26
io scheduler noop registered
io scheduler cfq registered (default)
bcm63xx_uart.0: ttyS0 at MMIO 0xfffe0300 (irq = 10) is a bcm63xx_uart
console handover: boot [early0] -> real [ttyS0]
bcm63xx_enet MII bus: probed
bcm963xx_flash: 0x00400000 at 0x1fc00000
bcm963xx: Found 1 x16 devices at 0x0 in 16-bit bank
 Amd/Fujitsu Extended Query Table at 0x0040
bcm963xx: Swapping erase regions for broken CFI table.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
bcm963xx_flash: Read Signature value of CFE1CFE1
bcm963xx_flash: CFE bootloader detected
bcm963xx_flash: CFE boot tag found with version 6 and board type 96348GW-A.
bcm963xx_flash: Partition 0 is CFE offset 0 and length 10000
bcm963xx_flash: Partition 1 is kernel offset 1010c and length 2430d7
bcm963xx_flash: Partition 2 is rootfs offset 10100 and length 19000c
bcm963xx_flash: Partition 3 is nvram offset 3f0000 and length 10000
Creating 4 MTD partitions on "bcm963xx":
0x00000000-0x00010000 : "CFE"
0x0001010c-0x002531e3 : "kernel"
mtd: partition "kernel" doesn't start on an erase block boundary -- force read-only
0x00010100-0x001a010c : "rootfs"
mtd: partition "rootfs" doesn't start on an erase block boundary -- force read-only
mtd: partition "rootfs" set to be root filesystem
split_squashfs: no squashfs found in "bcm963xx"
0x003f0000-0x00400000 : "nvram"
TCP bic registered
NET: Registered protocol family 17
jffs2: Flash size not aligned to erasesize, reducing to 1600KiB
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000000: 0x674f instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000004: 0x000b instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000008: 0x0019 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000000c: 0x8001 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000010: 0x8001 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000014: 0x000b instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000018: 0x5d00 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000020: 0x0833 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000024: 0xfd76 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000028: 0x0848 instead
(lots of)
Further such events for this erase block will not be printed
Old JFFS2 bitmask found at 0x0017c47c
You cannot use older JFFS2 filesystems with newer kernels
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00180000: 0x9c29 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00180004: 0x6f34 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00180008: 0x8590 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0018000c: 0x1cc7 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00180010: 0x905d instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00180014: 0x5f94 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00180018: 0x6348 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0018001c: 0x7864 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00180020: 0xdbc7 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00180024: 0x8a89 instead
Further such events for this erase block will not be printed
Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes
empty_blocks 0, bad_blocks 0, c->nr_blocks 25
VFS: Cannot open root device "mtdblock2" or unknown-block(31,2)
Please append a correct "root=" boot option; here are the available partitions:
1f00         64 mtdblock0 (driver?)
1f01       2316 mtdblock1 (driver?)
1f02       1600 mtdblock2 (driver?)
1f03         64 mtdblock3 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)

Any help?

mototun wrote:

I've tried to upgrade the USB port on my DG834GBT just after the 63xx port was released (exactly in the same way you descrbe it on wiki), unfortunately with no success;kernel loads the drivers reporting two USB ports but there is no reaction when I put a stick or usb-souncard into the socket sad
are any usb-devices recognized in 'dmesg' by you? I guess there should be another missing component (resistor or junction) which controls BCM6348 usb-mode (device or host)

Unfortunatelly same issues at to me. The dmesg says nothing after plugging various devices. I have tried a few webcams, a flash disk. Under the /proc/bus/usb/devices only the root hub is visible.

t3l3m4k0:

Of course I have selected the ohci_hci module, which is loaded fine, and the other modules for the usb storage too.

So you have 6348GW-11 board, which has no populated USB port in factory model, and you soldered the missing parts?

Were these resistors and capacitors missing from your board too?
http://wiki.openwrt.org/OpenWrtDocs/Har … et=usb.png

If yes please share with us the values of these parts.

Ok, usr9108 now is working. It does not work if the image is generated by CFEOLD but you can flash via web. It works if image is generated by CFE  and flashed via CFE.

@osby,
Nice to see other model.
@martonmiklos,
yes i soldered missing parts. The only relevants for your board are:
R515, R514, ( can be a wire, R=0 Ohms)
R517, R516, (R=15 kOhms)

BRCM96348 SoC has 2 ports USB 1.1, one Host, other Slave.
I don't know your board but you must use (identify, of course), usb host port.
Finaly there is a input pin on BRCM6348 chip to validate (enable ) USB port status. You must identify it and pullup with a 15kOhms resistor to 3'3V.

My board has space for a unpopulate chip to detect overcurrent on usb  port, (to protect it) . Is there where i found and pullup the pin to enable and validate USB port.

Good luck to all.

(Last edited by t3l3m4k0 on 31 Jan 2009, 18:11)

I'm not sure the USB driver is working as advertised.  I have a USB device already included on the board and I can't get it recognized, but maybe I'm using the wrong module(s).  The USB device appears as a cdc-ether device on the host computer and has been tested and works with the original firmware, but with the current OpenWRT the device doesn't appear on OpenWRT (as usb0, like the original firmware, or anything else for that matter) nor the host computer.

I've tried the usb-net kernel modules and the ohci-hcd modules to no avail.  Any ideas?

excuse me all what's the actual situation of openwrt on Alice Gate Voip 2 plus business and Netgear DG834G?

t3l3m4k0 wrote:

@osby,
Nice to see other model.
@martonmiklos,
yes i soldered missing parts. The only relevants for your board are:
R515, R514, ( can be a wire, R=0 Ohms)
R517, R516, (R=15 kOhms)

BRCM96348 SoC has 2 ports USB 1.1, one Host, other Slave.
I don't know your board but you must use (identify, of course), usb host port.
Finaly there is a input pin on BRCM6348 chip to validate (enable ) USB port status. You must identify it and pullup with a 15kOhms resistor to 3'3V.

My board has space for a unpopulate chip to detect overcurrent on usb  port, (to protect it) . Is there where i found and pullup the pin to enable and validate USB port.

Good luck to all.

Thank for the answer and the pictures.
Of course we are using a host port of the device.
I think the  problem will be with the USB enable resistor. I will look after that tomorrow.

(Last edited by martonmiklos on 1 Feb 2009, 14:20)

Hi t3l3m4k0 and martonmiklos,

I also have a router that is based on BCM6348. However, it already has the USB slave port populated(It already has a USB-B connector). Do you know if there is a way to rewire it to use the Host port??

If not, can you give some hint on how to locate the host port??

Regards,
ProtoColD

I think the host and the slave port's data lines are separated phisically, but I am not sure in it.
According to the product brief overview picture, it should be in this way.
In this case, I think the host data lines are not wired out, but it is not 100%.

BTW. If it possible please send me a picture of your board.

Best regards,
Márton Miklós

(Last edited by martonmiklos on 2 Feb 2009, 12:00)

There is no much information about BCM SoC.
I  have found only this info about chip pinout:
http://www.f-x.fr/wikini/wakka.php?wiki=Bcm6348PinOut

As you can see, there are 2 independent USB inputs ports.

Salutacions

(Last edited by t3l3m4k0 on 2 Feb 2009, 15:42)

Yes! , I have solved the mystery of running kernels without the need for flashing.

I always wondered why I could not do:

r 192.168.1.100:vmlinuz


Now I figured out why, the CFE loads the lzma compressed image to 0x80000000 afterwards it then tries to uncompress  the kernel to 0x800010000. Thus overwriting the compressed image with the uncompressed image.

I now have patched the CFE to use an other TFTP load address, with the result I now can load kernels without the need for reflashing!

Also I have managed to disable the "dual" image check so no more backups to the lower half of flash which makes another 4M of flash space usable. (this has been tested with the Davolink router)

...
*** Press any key to stop auto run (1 seconds) ***
Auto run second count down: 1
web info: Waiting for connection on socket 0.
CFE>
CFE> r 192.168.1.100:vmlinuz
Retry loading it as a compressed image.
Loading 192.168.1.100:vmlinuz ...
Finished loading 768252 bytes
Code Address: 0x80010000, Entry Address: 0x80010000
Decompression OK!
Entry at 0x80010000
Closing network.
Starting program at 0x80010000
Linux version 2.6.27.13 (henk@fx41) (gcc version 4.1.2) #6 Mon Feb 2 16:22:16 C9
...
t3l3m4k0 wrote:

There is no much information about BCM SoC.
I  have found only this info about chip pinout:
http://www.f-x.fr/wikini/wakka.php?wiki=Bcm6348PinOut

As you can see, there are 2 independent USB inputs ports.

Salutacions

Great info thanx! I will check to see if I can uncover an extra host usb port.

Somebody compile firmware for asus wl-600g on openwrt?

t3l3m4k0 wrote:

There is no much information about BCM SoC.
I  have found only this info about chip pinout:
http://www.f-x.fr/wikini/wakka.php?wiki=Bcm6348PinOut

there used to be a bsdl file which could be found on internet, but it is no longer available sad

Okay, after debricking my router (not wrt's fault - I was trying different board types because eth1 is the switch and that doesn't work for robocfg; I think maybe I'll have to hack robocfg), I am back to trying to figure out why the usb slave device is not detected.

Is the USB slave device supported, or it only the usb host?  If the usb slave is supposed to be supported what should I see in dmesg and what modules do I need?

Actually, before I hack on robocfg: do vlan's work with the new driver?  If so is it robocfg I need? vnconfig complains of a mising /proc/<something>/vlan (I forget exactly what) and refuses to do anything.

cshore wrote:

Actually, before I hack on robocfg: do vlan's work with the new driver?  If so is it robocfg I need? vnconfig complains of a mising /proc/<something>/vlan (I forget exactly what) and refuses to do anything.

No idea. I not tested anythink about vlans

cshore wrote:

Is the USB slave device supported, or it only the usb host?  If the usb slave is supposed to be supported what should I see in dmesg and what modules do I need?

I don't know how to select usb0/usb1 port slave/host mode. Below, you can see kernel log from manufacturer firmware. Acces to switch  must be made with SPI protocol (I think Florian_ is working about it)

ohci_hcd: 2004 Feb 02 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci_hcd: block sizes: ed 64 td 64
PCI: Enabling device 0000:00:09.0 (0000 -> 0002)
ohci_hcd 0000:00:09.0: OHCI Host Controller
PCI: Setting latency timer of device 0000:00:09.0 to 64
ohci_hcd 0000:00:09.0: irq 20, pci mem c0000b00
ohci_hcd 0000:00:09.0: new USB bus registered, assigned bus number 1
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usbcore: registered new driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
brcmboard: brcm_board_init entry
...
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 80k freed
Algorithmics/MIPS FPU Emulator v1.5
atmapi: module license 'Proprietary' taints kernel.
blaadd: blaa_detect entry
adsl: adsl_init entry
Broadcom BCMPROCFS v1.0 initialized
Broadcom BCM6348A2 Ethernet Network Device v0.3 Nov 18 2005 16:39:29
....
Config Ethernet Switch Through SPI Slave Select 1
eth0: MAC Address: 00:30:xx:xx:xx:xx
....
Broadcom BCM6348A2 USB Network Device v0.4 Nov 18 2005 16:39:32
usb0: MAC Address: 00 30 xx xx xx FA
usb0: Host MAC Address: 00 30 xx xx xx FB
...
PCI: Setting latency timer of device 0000:00:01.0 to 64
PCI: Enabling device 0000:00:01.0 (0004 -> 0006)
dgasp: kerSysRegisterDyingGaspHandler: wl0 registered
wl0: Broadcom BCM4320 802.11 Wireless Controller 3.91.41.0
eth0 Link UP.
BcmAdsl_Initialize=0xC0057208, g_pFnNotifyCallback=0xC006A374
AdslCoreHwReset: AdslOemDataAddr = 0xA0FF74C4
dgasp: kerSysRegisterDyingGaspHandler: dsl0 registered
device usb0 entered promiscuous mode
br0: port 1(usb0) entering learning state
br0: topology change detected, propagating
br0: port 1(usb0) entering forwarding state
device eth0 entered promiscuous mode
br0: port 2(eth0) entering learning state
br0: topology change detected, propagating
br0: port 2(eth0) entering forwarding state
device wl0 entered promiscuous mode
br0: port 3(wl0) entering learning state
br0: topology change detected, propagating
br0: port 3(wl0) entering forwarding state
br0: port 1(usb0) entering disabled state
goundoulf wrote:
t3l3m4k0 wrote:

There is no much information about BCM SoC.
I  have found only this info about chip pinout:
http://www.f-x.fr/wikini/wakka.php?wiki=Bcm6348PinOut

there used to be a bsdl file which could be found on internet, but it is no longer available sad

maybe someone has a copy?