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.

Pavel wrote:

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

You

we can help to do it

LinuxInside wrote:

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
...

Can you tel us how you made it?
Greath work, in your line

t3l3m4k0 wrote:
Pavel wrote:

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

You

we can help to do it

Ok, I try:)
Can you give me manual, how create firmware?

Hello all,
i'm trying to make openWRT work on "easygate" which has BCM6348.
So, i took the latest revision, and I have added an entry to bcm63xx/boards/board_bcm963xx.c with the name "bcm002_06".
So this is what i get (i selected the RAMdisk option in make menuconfig) :

board_bcm963xx: CFE version: 2.17.101-7.0
console [early0] enabled
CPU revision is: 00029107 (Broadcom BCM6348)
board_bcm963xx: board name: bcm002_06
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: 12208k/16384k available (1890k kernel code, 4176k reserved, 331k data, 1600k init, 0k highmem)
Calibrating delay loop... 255.48 BogoMIPS (lpj=510976)
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(1.516: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 23
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: 0x01000000 at 0x1f000000
bcm963xx_flash: Failed to probe using CFI
bcm963xx-flash: probe of bcm963xx-flash.0 failed with error -5
TCP bic registered
NET: Registered protocol family 17
Freeing unused kernel memory: 1600k freed
Algorithmics/MIPS FPU Emulator v1.5
[sighandler]: No more events to be processed, quitting.
[cleanup]: Waiting for children.
[cleanup]: All children terminated.
- preinit -
Press CTRL-C for failsafe

Please press Enter to activate this console. bcm63xx_enet bcm63xx_enet.0: attached PHY at address 1 [Broadcom BCM63XX (1)]
bcm63xx_enet bcm63xx_enet.0: attached PHY at address 1 [Broadcom BCM63XX (1)]
cfg80211: Using static regulatory domain info
cfg80211: Regulatory domain: US
    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
    (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)
    (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
    (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
    (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
    (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
    (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
cfg80211: Calling CRDA for country: US
Broadcom 43xx driver loaded [ Features: PL, Firmware-ID: FW13 ]

PPP generic driver version 2.4.2
eth0: link UP - 100/full - flow control off



BusyBox v1.11.3 (2009-02-03 15:00:34 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 KAMIKAZE (bleeding edge, r14351) -------------------
  * 10 oz Vodka       Shake well with ice and strain
  * 10 oz Triple sec  mixture into 10 shot glasses.
  * 10 oz lime juice  Salute!
 ---------------------------------------------------
root@OpenWrt:/# ls

So OpenWRT is running, but without any write support. Here is the error during the initialisation :

bcm63xx_enet MII bus: probed
bcm963xx_flash: 0x01000000 at 0x1f000000
bcm963xx_flash: Failed to probe using CFI
bcm963xx-flash: probe of bcm963xx-flash.0 failed with error -5

and i can't manage to find where is the right hexa address i have to tweak (because of the 8MB of flash of my box, instead of the 2).
The error "Failed to probe using CFI" is in trunk/linux/brcm63xx/files/drivers/mtd/maps l.171 , but actually i'm rather stuck there :s

Could someone advise me where i should modify something ?
Regards.

@t3l3m4k0

Thank you for the pinout. 
About the USB port again.
Could you measure the voltage on the usb enable pin without pullup resistor?
I have found 3 suspicious 0 Ohm pulldown resistor, near the area where the
pinout said the USB enable pins. I can measure 1.2 Volt on them when the resistors are desoldered.

Thanks in avance!

(Last edited by martonmiklos on 5 Feb 2009, 14:42)

I have modified the openwrt imagetag tool so that it is possible to generate the correct tag for firmware with the roofs then kernel.  I did this because I wanted to be able to reflash my system with firmware pulled from the mtd devices (which doesn't include the 256-byte image tag.  I can now revert to factory defaults if I want to.

http://wiki.openwrt.org/OpenWrtDocs/Har … age.tar.gz

@ cshore
nice work
@ martonmiklos
voltage must be betwin 0 to 3,3V. You must pullup to 3,3V.
Is not important voltage value of pin. It is important you get lucky trying correct pin. I think if points you have discovered are pulled down to 0V, you can try to connect to 3,3V without damage.
@Flipson
if you use a ramdisk version, its normal it can't use mtd partitions -> no jffs over mtd -> no write.

@Pavel,
sorry for delay.
Advertisement if you need your router to connect to internet, and have no other substitute, i recomend to take a beer and read a good boock.

Procedure is:
1.- You need a serial connexion with your router board and your computer.
2.- Make your own firmware.
3.- Boot your router, connected via serial to your computer, and break boot procedure from serial connexion (when router boots it waits 1 second from a serial conexion to break boot routine)
4.- You must install a tftp server on your computer to serve firmware to router.
5.- Use flasimage command to send firmware via lan. It expecs to receive firmware over tftp server.

To make your own firmware you need:
1.: A machine running some sort of Linux distribution (i use Fedora).
2.: Install SVN (subversion) package from repositoire of your Linux distribution.
3.: And do:

to get sources

svn co https://svn.openwrt.org/openwrt/trunk/

make menuconfig
-----> selec board [bcm63xx]

make

(Last edited by t3l3m4k0 on 6 Feb 2009, 16:33)

Hello,

I am a newbee in embeded systems.


Maybe I don't post at the right place.

I read that Hitashi AH4021 (Alicebox) can run OpenWRT. It's a broadcom bcm63xx, so I think it's ok.

So, I tried to go in download part of the openWRT website, and there were a lot of files.
I understood that I must download a firmware file but I don't know which one.

I tried with some, I used tftp to update my box, it seemed to work but when I reload the box, I always have my ISP interface (Alice).

I pushed on reset button at the back and wait for 30 secondes before and after updating firmware but it does not seems to work.

Can you help me to find the good bin file to update my box? Or maybe I do something wrong?

Last question, I just have MacOS X and a PC under Windows, do I need a Linux system?

Thanks!

at the moment not all the bcm63x are supported. i'm waiting for openwrt for alice gate 2 plus wifi and alice gate voip 2 plus wifi. i don't know if it will be possible but i hope yes

Thanks!

@falcorn, SuperCed,
At this moment there aren't (generic and not generic) compiled in downloads site for bcm63xx devices. You must make your own compilation.

Do I need Linux to compile theses sources or can it run on MacOS X?

Thanks

i'm not sure, i think you can do it  in macOS, maybe with  a virtual machine.

Try to search across fourums.

Do we need a special environnement to compile?

Or it's standard C and Unix library?

I have posted a modified version of hairydairymaid's debrick utility (http://wiki.openwrt.org/OpenWrtDocs/Cus … shore1.zip) which

* Supports dma on bigendian CPU's (such as the BCM63xx)
* Supports reading and writing either bigendian or littleendian images files (little endian is what debrick does by default, bigendian is what dd if=/dev/mtdX will give you)
* Includes a trivial endianness translator (a simple commandline filter)
* Adds support for the flash chip on various 96348GW-11 based boards (it's a Fujitsu flash)
* Adds support for 64k (and 128k) CFE such as the 64k CFE on various 96348GW-11 boards

Hope you enjoy!

I should tell you that the modified imagetag does a minimal amount of work; you already need to know the entry point of the kernel, the size and offset of the kernel in the flash (once flashed), and size of the mtd partition that is used around the rootfs+kernel. 

This information can be obtained from the boot logs of the original (manufacturer's) firmware plus a ramdisk-based boot of openwrt with the stock kernel in the flash.

(Last edited by cshore on 7 Feb 2009, 22:10)

cshore wrote:

I have posted a modified version of hairydairymaid's debrick utility (http://wiki.openwrt.org/OpenWrtDocs/Cus … shore1.zip) which

* Supports dma on bigendian CPU's (such as the BCM63xx)
* Supports reading and writing either bigendian or littleendian images files (little endian is what debrick does by default, bigendian is what dd if=/dev/mtdX will give you)
* Includes a trivial endianness translator (a simple commandline filter)
* Adds support for the flash chip on various 96348GW-11 based boards (it's a Fujitsu flash)
* Adds support for 64k (and 128k) CFE such as the 64k CFE on various 96348GW-11 boards

Hope you enjoy!

Great thanx!

Can you add a description for Davolink flash??

{ 0x00c2, 0x227e, size8MB, CMD_TYPE_AMD, "MX29LV640MB 4Mx16 BotB    (8MB)"   ,8,size8K, 127,size64K,      0,0,        0,0   },

@t3l3m4k0
how can i compile it for my router? where i can find all the necessary?
many thanks

cshore wrote:

I should tell you that the modified imagetag does a minimal amount of work; you already need to know the entry point of the kernel, the size and offset of the kernel in the flash (once flashed), and size of the mtd partition that is used around the rootfs+kernel. 

This information can be obtained from the boot logs of the original (manufacturer's) firmware plus a ramdisk-based boot of openwrt with the stock kernel in the flash.

Do you have a step by step guide to do all this, because I am a newbee in embeded system.

I have a firmware from Alice. Maybe I have to check the offset inside?

So I need :
- entry point of the kernel - How can I found this? What can I do with that? Do I need to edit Alice's firmware?
- size of the kernel - After flashing the firmware? So I get the info with openWRT? (ramdisk-based boot of openwrt with the stock kernel in the flash?)
- offset of the kernel - Same questions
- size of mtd partition used by rootfs+kernel - How can I find this?

I am a little bit lost with all that...

I search worked firmware version to run on WL600G (usb, torrent, static ip).

LinuxInside wrote:

The bcm53xx switch is now supported on bcm63xx:

https://dev.openwrt.org/ticket/4599

Fine.  Any advance about it?

Cshore wrote:

I have posted a modified version of hairydairymaid's debrick utility (http://wiki.openwrt.org/OpenWrtDocs/Cus … shore1.zip) ......

Greath, with early version i must deactivate dma, it takes about 1h to put only CFE.

cshore, can you explain how to obtain entry point, size and offset .... before flash it?

thnks in advanced.

falcorn wrote:

@t3l3m4k0
how can i compile it for my router? where i can find all the necessary?
many thanks

what model is your router ?

You need.
1.- working serial console attached to device (recomended)
2.- Linux distribution with "subversion" package installed
3.- do from a terminal:
mkdir openwrt
cd openwrt
svn co https://svn.openwrt.org/openwrt/trunk/
4.- do:
cd trunk
make menuconfig
(select your target, bcm63xx, squashfs, ..., and config defaults)
5.- if neded install al packages that output "make menuconfig" says
6.- do:
make
7.- at .../openwrt/trunk/bin/ you can found firmware files.

Before flash your router maybe you must patch some files to adapt firmware to your board. Do other time "make". At this point if you have info about your board i can guide to patch files.

best wishes

t3l3m4k0 wrote:
LinuxInside wrote:

The bcm53xx switch is now supported on bcm63xx:

https://dev.openwrt.org/ticket/4599

Fine.  Any advance about it?

Minimal progress. In my perception every small patch takes weeks to process without results or constructive feedback.

See:
https://dev.openwrt.org/ticket/4433
https://dev.openwrt.org/ticket/4599

If anyone has a suggestion on how to resolve this or to make the development process much more efficient please feel free to comment.

I would assume that we have the same interests: Create the best Linux based firmware support for the routers we own....

Sorry, posts 276 to 275 are missing from our archive.