OpenWrt Forum Archive

Topic: Add support for Linksys E1000 v1 (and brcm4716)

The content of this topic has been archived between 8 Feb 2018 and 2 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Hi,

I am working on getting OpenWRT to work decently on a Linksys E1000 v1.
The e1000 is hardware identical to Linksys WRT160N v3 and Cisco Valet M10 v1.
Another similar router (CPU, switch, etc.) is the Netgear WNR2000 v2.

The E1000 and M10 are listed in the table of hardware under "Posibble but not being worked on" and the other two are under WIP.

These all have a Broadcom 4716 processor and a Broadcom 5325E switch, and have 4mb flash and 32mb RAM (the ram and flash chips are different though in the netgear model and the linksys ones).

As far as I can tell, there are supported hardware with a 5325 switch (not necesarilly "E" though although maybe theyre the same), but nothing supported yet with the 4716 CPU.

I have installed Attitude Adjustment beta and trunk compile on the E1000 (the 47xx generic trx image); I mainly tested the attitude adjustment one.

It boots just fine. I think it used to not boot up; see https://forum.openwrt.org/viewtopic.php?id=26896 (a useful thread when people were trying previously to port to a WRT160N v3 model). The wireless works fine, however the ethernet does not work (I posted https://forum.openwrt.org/viewtopic.php?pid=179101 about this however please respond here). Flashing works via the DDWRT web interface, however via boot_wait it does not work properly, tftp controlled via serial works by Ctrl-Cing the CFE bootloader and running "flash -noheader : flash1.trx" (or with "-ctheader" for the linksys stock image).
(BTW i used an arduino as the serial to usb adapter, uno rev3 with the example (basically) empty sketch and connected to pins 0 and 1 (tx.rx) and ground, and it works well; however this may be out of specs/unsupported etc).

Also the LEDs all light up (besides the wireless one (: - D ) ) when the wireless is turned on; before it is turned on the power, wireless, and ethernet when plugged in are lit (although ethernet was not working).

LuCI works.

Feel free to ask for more info. I know python and can understand c/assembly. I am only a teeny drop familiar with the OpenWRT development tools etc.

BTW got a lot of the hardware info from infodepot.wikia.com and wikidevi.com; see the entries for the routers there for more info on them etc.

Below is the NVRAM dump and the bootlog:

root@OpenWrt:/# nvram show | sort
EC_Server=1
PC_enable=0 0 0
QoS=0
QoS_cnt=0
QoS_lan_ctl=0
QoS_lan_speed=61440
QoS_wan_ctl=1
QoS_wan_speed=71680
TMSSS_enable=0 0 65
aa2g=3
action_service=
ag0=2
ag1=2
antswctl2g=2
antswitch=0
aol_block_traffic1=0
aol_block_traffic2=0
aol_block_traffic=0
auth_exemption_list=
autofw_port0=
blink_diag_led=1
block_activex=0
block_cookie=0
block_java=0
block_loopback=0
block_proxy=0
block_wan=1
boardflags2=0x400
boardflags=0x710
boardnum=42
boardrev=0x1700
boardtype=0x04cd
boot_hw_model=E100
boot_hw_ver=1.0
boot_ok=ok
boot_ver=v5.1.4
boot_wait=on
bw40po=0
bwduppo=0
cck2gpo=0x0000
ccode=0
cddpo=0
cfe_ping_timeout=2
clkdivsf=4
clkfreq=300,150,75
console_loglevel=1
ct_modules=
daylight_time=1
ddns_backmx=NO
ddns_cache=
ddns_change=
ddns_enable=0
ddns_enable_buf=
ddns_hostname=
ddns_hostname_2=
ddns_hostname_buf=
ddns_interval=60
ddns_mx=
ddns_passwd=
ddns_passwd_2=
ddns_passwd_buf=
ddns_service=dyndns
ddns_status=
ddns_username=
ddns_username_2=
ddns_username_buf=
ddns_wildcard=OFF
def_hwaddr=00:00:00:00:00:00
default_lang=0
detect_charset=UTF-8
detect_lang=EN
device_view_type=0
dhcp1_end=192.168.2.150
dhcp1_start=192.168.2.100
dhcp_domain=wan
dhcp_lease=0
dhcp_num=50
dhcp_start=100
dhcp_statics=
dhcp_wins=wan
disable_check_ps=0
dl_ram_addr=a0001000
dmz_dst_ip=1
dmz_enable=0
dmz_ipaddr=0
dmz_mac=00:00:00:00:00:00
dmz_src_any=1
dmz_src_ip=0.0.0.0 0
dr_lan_rx=0
dr_lan_tx=0
dr_setting=0
dr_wan_rx=0
dr_wan_tx=0
emf_enable=0
emf_entry=
emf_rtport_entry=
emf_uffp_entry=
enable_game=0
et0macaddr=<mac addr>
et0mdcport=0
et0phyaddr=1f
et_pwrsave=0
extpagain2g=0x0
ezc_enable=1
ezc_version=2
filter=on
filter_client0=
filter_dport_grp10=
filter_dport_grp1=
filter_dport_grp2=
filter_dport_grp3=
filter_dport_grp4=
filter_dport_grp5=
filter_dport_grp6=
filter_dport_grp7=
filter_dport_grp8=
filter_dport_grp9=
filter_id=1
filter_ip_grp10=
filter_ip_grp1=
filter_ip_grp2=
filter_ip_grp3=
filter_ip_grp4=
filter_ip_grp5=
filter_ip_grp6=
filter_ip_grp7=
filter_ip_grp8=
filter_ip_grp9=
filter_mac_grp10=
filter_mac_grp1=
filter_mac_grp2=
filter_mac_grp3=
filter_mac_grp4=
filter_mac_grp5=
filter_mac_grp6=
filter_mac_grp7=
filter_mac_grp8=
filter_mac_grp9=
filter_maclist=
filter_macmode=deny
filter_port=
filter_port_grp10=
filter_port_grp1=
filter_port_grp2=
filter_port_grp3=
filter_port_grp4=
filter_port_grp5=
filter_port_grp6=
filter_port_grp7=
filter_port_grp8=
filter_port_grp9=
filter_rule10=
filter_rule1=
filter_rule2=
filter_rule3=
filter_rule4=
filter_rule5=
filter_rule6=
filter_rule7=
filter_rule8=
filter_rule9=
filter_services=$NAME:003:DNS$PROT:003:udp$PORT:005:53:53< >$NAME:004:Ping$PROT:004:icmp$PORT:003:0:0< >$NAME:004:HTTP$PROT:003:tcp$PORT:005:80:80< >$NAME:005:HTTPS$PROT:003:tcp$PORT:007:443:443< >$NAME:003:FTP$PROT:003:tcp$PORT:005:21:21< >$NAME:004:POP3$PROT:003:tcp$PORT:007:110:110< >$NAME:004:IMAP$PROT:003:tcp$PORT:007:143:143< >$NAME:004:SMTP$PROT:003:tcp$PORT:005:25:25< >$NAME:004:NNTP$PROT:003:tcp$PORT:007:119:119< >$NAME:006:Telnet$PROT:003:tcp$PORT:005:23:23< >$NAME:004:SNMP$PROT:003:udp$PORT:007:161:161< >$NAME:004:TFTP$PROT:003:udp$PORT:005:69:69< >$NAME:003:IKE$PROT:003:udp$PORT:007:500:500< >
filter_tod10=
filter_tod1=
filter_tod2=
filter_tod3=
filter_tod4=
filter_tod5=
filter_tod6=
filter_tod7=
filter_tod8=
filter_tod9=
filter_tod_buf10=
filter_tod_buf1=
filter_tod_buf2=
filter_tod_buf3=
filter_tod_buf4=
filter_tod_buf5=
filter_tod_buf6=
filter_tod_buf7=
filter_tod_buf8=
filter_tod_buf9=
filter_web_host10=
filter_web_host1=
filter_web_host2=
filter_web_host3=
filter_web_host4=
filter_web_host5=
filter_web_host6=
filter_web_host7=
filter_web_host8=
filter_web_host9=
filter_web_url10=
filter_web_url1=
filter_web_url2=
filter_web_url3=
filter_web_url4=
filter_web_url5=
filter_web_url6=
filter_web_url7=
filter_web_url8=
filter_web_url9=
flash_type=SFLASH 4096 kB
forward_port=
forward_portsip=
forward_single=
fw_disable=0
fw_md5sum=<removed>
get_country=US
get_country_index=1
get_language=
get_language_index=0
get_mac=<mac addr>?
get_mac_index=1
get_pa0idxval=
get_pa0idxval_index=0
get_pa1idxval=
get_pa1idxval_index=0
get_sn=<removed serial num>
get_sn_index=1
get_wps_pin=<removed wps pin number>
get_wps_pin_index=1
gn_account_duration=24
gn_account_password=guest
gn_approval_list=
gn_bw_downstream=128
gn_bw_upstream=56
gn_cur_account=0
gn_dhcp_num=50
gn_dhcp_start=100
gn_enable=0
gn_http_port=51000
gn_https_port=51001
gn_lan_ifname=br1
gn_lan_ifnames=wl0.1
gn_lan_ipaddr=192.168.33.1
gn_lan_netmask=255.255.255.0
gn_last_cable_stat=0
gn_max_account=5
gn_wan_stat_record=0
gn_white_list=
gpio2=wps_status_led
gpio3=robo_reset
gpio4=wps_led
gpio5=wps_button
hb_server_domain=
hb_server_ip=
hnap_enable=1
http_client_ip=192.168.1.2
http_client_mac=<mac addr>
http_enable=1
http_from=lan
http_host=192.168.1.1
http_lanport=80
http_method=post
http_passwd=admin
http_username=
http_wanport=8080
https_cert=
https_enable=0
https_key=
ident_pass=0
ip_conntrack_max=8192
ip_conntrack_tcp_timeouts=300 600 120 60 120 120 10 60 30 120
ip_conntrack_udp_timeouts=65 180
ipsec_debug=1
ipsec_pass=1
is_default=0
is_disconn_button=0
is_modified=0
itt2ga0=0x20
itt2ga1=0x20
l2tp_get_ip=
l2tp_pass=1
l2tp_server_ip=
lan1_dhcp=0
lan1_domain=
lan1_gateway=192.168.2.1
lan1_hwaddr=
lan1_hwnames=
lan1_ifname=br1
lan1_ifnames=wl0.1 wl0.2 wl0.3 wl1.1 wl1.2 wl1.3
lan1_ipaddr=192.168.2.1
lan1_lease=86400
lan1_netmask=255.255.255.0
lan1_proto=dhcp
lan1_route=
lan1_stp=1
lan1_wins=
lan_dhcp=0
lan_domain=
lan_hwaddr=<mac addr>
lan_hwnames=
lan_ifname=br0
lan_ifnames=vlan1 eth1 eth2 eth3
lan_ipaddr=192.168.1.1
lan_lease=86400
lan_netmask=255.255.255.0
lan_proto=dhcp
lan_route=
lan_stp=0
lan_wins=
lan_wps_oob=enabled
lan_wps_reg=enabled
landevs=vlan1 wl0
lang_detected=0
language=EN
ledbh0=8
ledbh1=11
ledbh2=11
ledbh3=11
leddc=0xFFFF
lltd_enable=1
log_enable=0
log_ipaddr=0
log_level=0
log_type=ilog
mac_clone_enable=0
macaddr=<mac addr>
machine_name=Cisco41722
manual_boot_nv=0
manual_rate=0
maxp2ga0=0x48
maxp2ga1=0x48
mcs2gpo0=0x3333
mcs2gpo1=0x6663
mcs2gpo2=0x3333
mcs2gpo3=0x6663
mcs2gpo4=0
mcs2gpo5=0
mcs2gpo6=0
mcs2gpo7=0
mfg_radio=off
mfg_wait=off
model_name=E1000
mtu_enable=0
multicast_max=25
multicast_pass=1
ntp_enable=1
ntp_mode=auto
ntp_server=
nvram_version=1
ofdm2gpo=0x44444444
opo=0x0
os_date=May  6 2011
os_flash_addr=bfc40000
os_name=linux
os_ram_addr=80001000
os_server=
os_version=5.70.13.0
pa0idx=0
pa1idx=0
pa2gw0a0=0xFE86
pa2gw0a1=0xFE75
pa2gw1a0=0x1573
pa2gw1a1=0x14AB
pa2gw2a0=0xFAC1
pa2gw2a1=0xFADA
parefldovoltage=45
pdetrange2g=0
ping_ip=
ping_size=32
ping_times=5
pmon_ver=CFE 5.10.56.51
port_flow_control_1=0
port_flow_control_2=0
port_flow_control_3=0
port_flow_control_4=0
port_priority_1=0
port_priority_2=0
port_priority_3=0
port_priority_4=0
port_rate_limit_1=0
port_rate_limit_2=0
port_rate_limit_3=0
port_rate_limit_4=0
port_trigger=
ppp_ac=
ppp_demand=0
ppp_get_ac=
ppp_get_srv=
ppp_idletime=5
ppp_keepalive=0
ppp_mru=1500
ppp_mtu=1500
ppp_passwd=
ppp_redialperiod=30
ppp_service=
ppp_static=0
ppp_static_ip=
ppp_username=
pppoe_ifname=
pptp_dhcp=0
pptp_get_ip=
pptp_pass=1
pptp_server_ip=
public_ip=
qos_appname1=
qos_appname2=
qos_appname3=
qos_appname4=
qos_appname5=
qos_appname6=
qos_appname7=
qos_appname8=
qos_appport1=0
qos_appport2=0
qos_appport3=0
qos_appport4=0
qos_appport5=0
qos_appport6=0
qos_appport7=0
qos_appport8=0
qos_devmac1=00:00:00:00:00:00
qos_devmac2=00:00:00:00:00:00
qos_devname1=
qos_devname2=
qos_devpri1=0
qos_devpri2=0
rate_mode=1
reboot_time=25
regrev=0
remote_ip=0.0.0.0 0
remote_ip_any=1
remote_management=0
remote_mgt_https=0
remote_upgrade=0
reset_gpio=6
restore_defaults=0
router_disable=0
rxchain=3
scratch=a0180000
sdram_config=0x283
sdram_init=0x0419
sdram_ncdl=0x5800001a
sdram_refresh=0x1a30
security_mode2=disabled
security_mode=disabled
security_mode_last=
sel_qosport1=0
sel_qosport2=0
sel_qosport3=0
sel_qosport4=0
sel_qosport5=0
sel_qosport6=0
sel_qosport7=0
sel_qosport8=0
skip_amd_check=0
skip_intel_check=0
sock_rmem_max=66560
sromrev=8
static_route=
static_route_name=
stats_server=
stbcpo=0
test_channel=0
tftp_max_retries=5
tftp_recv_timeout=3
tftp_rrq_timeout=3
tftpd_enable=1
tftpd_ipaddr=192.168.1.254
throughput_test=0
time_zone=-08 1 1
timer_interval=3600
tmsss_enabled=0
traceroute_ip=
triso2g=0x3
tssipos2g=0x1
txchain=3
ui_language=en
upbunit=0
upnp_config=1
upnp_enable=1
upnp_forward_max=0
upnp_internet_dis=0
upnp_max_age=180
upnp_ssdp_interval=60
upnp_wan_proto=
ure_disable=1
vlan1hwname=et0
vlan1ports=1 2 3 4 5*
vlan2hwname=et0
vlan2ports=0 5
wait_time=3
wan_auto_detect_result=UNKNOWN
wan_dns=
wan_domain=
wan_gateway=0.0.0.0
wan_gateway_buf=0.0.0.0
wan_get_dns=
wan_get_domain=
wan_hostname=
wan_hwaddr=<mac addr>
wan_hwname=
wan_iface=vlan2
wan_ifname=vlan2
wan_ifnames=vlan2
wan_ipaddr=0.0.0.0
wan_ipaddr_used=0
wan_lease=0
wan_link=0
wan_mtu=1500
wan_netmask=0.0.0.0
wan_pptp_dhcp_dns=
wan_pptp_dns0=
wan_pptp_dns1=
wan_pptp_dns2=
wan_primary=1
wan_proto=dhcp
wan_run_mtu=1500
wan_speed=4
wan_unit=0
wan_wins=
wandevs=vlan2
warning_http_port=52000
warning_page_checked=0
watchdog=3000
web_wl_filter=0
wk_mode=gateway
wl0.10_hwaddr=<mac addr>
wl0.11_hwaddr=<mac addr>
wl0.12_hwaddr=<mac addr>
wl0.13_hwaddr=<mac addr>
wl0.14_hwaddr=<mac addr>
wl0.15_hwaddr=<mac addr>
wl0.1_active_add_mac=0
wl0.1_bss_enabled=0
wl0.1_hwaddr=<mac addr>
wl0.1_mac_list=
wl0.1_maclist=
wl0.1_macmode=disabled
wl0.1_mode=ap
wl0.1_ssid=Cisco41722-guest
wl0.2_hwaddr=<mac addr>
wl0.3_hwaddr=<mac addr>
wl0.4_hwaddr=<mac addr>
wl0.5_hwaddr=<mac addr>
wl0.6_hwaddr=<mac addr>
wl0.7_hwaddr=<mac addr>
wl0.8_hwaddr=<mac addr>
wl0.9_hwaddr=<mac addr>
wl0_40m_disable=0
wl0_active_add_mac=0
wl0_active_mac=
wl0_afterburner=off
wl0_akm=
wl0_ampdu=on
wl0_amsdu=off
wl0_antdiv=-1
wl0_ap_isolate=0
wl0_auth=0
wl0_auth_mode=none
wl0_auth_type=0
wl0_bcn=100
wl0_bcn_rotate=1
wl0_bss_enabled=1
wl0_bss_maxassoc=128
wl0_channel=0
wl0_closed=0
wl0_corerev=17
wl0_country=US/0
wl0_country_code=US/0
wl0_crypto=tkip+aes
wl0_default_ssid=Cisco41722
wl0_dfs_postism=60
wl0_dfs_preism=60
wl0_dtim=1
wl0_frag=2346
wl0_frameburst=on
wl0_gmode=1
wl0_gmode_protection=auto
wl0_hw_rxchain=3
wl0_hw_txchain=3
wl0_hwaddr=<mac addr>
wl0_ifname=eth1
wl0_infra=1
wl0_key1=
wl0_key2=
wl0_key3=
wl0_key4=
wl0_key=1
wl0_lazywds=0
wl0_leddc=0x640000
wl0_mac_deny=
wl0_mac_filter=0
wl0_mac_list=
wl0_maclist=
wl0_macmode=disabled
wl0_max_channel=11
wl0_maxassoc=128
wl0_mode=ap
wl0_mrate=0
wl0_nband=2
wl0_nbw=20
wl0_nbw_cap=0
wl0_nctrlsb=none
wl0_net_mode=mixed
wl0_net_reauth=36000
wl0_nmcsidx=-1
wl0_nmode=-1
wl0_nmode_protection=auto
wl0_nreqd=0
wl0_passphrase=
wl0_phytype=n
wl0_phytypes=n
wl0_plcphdr=long
wl0_radarthrs=0 0x6a8 0x6c8 0x6ac 0x6c7
wl0_radio=1
wl0_radio_pwrsave_enable=0
wl0_radio_pwrsave_on_time=50
wl0_radio_pwrsave_pps=10
wl0_radio_pwrsave_quiet_time=1800
wl0_radioids=BCM2056
wl0_radius_ipaddr=
wl0_radius_key=
wl0_radius_port=1812
wl0_random_channel=1
wl0_rate=0
wl0_rateset=default
wl0_reg_mode=off
wl0_rts=2347
wl0_rxchain=3
wl0_rxchain_pwrsave_enable=1
wl0_rxchain_pwrsave_pps=10
wl0_rxchain_pwrsave_quiet_time=1800
wl0_rxstreams=0
wl0_ssid=Cisco41722
wl0_sta_retry_time=5
wl0_stbc_tx=auto
wl0_txchain=3
wl0_txstreams=0
wl0_unit=0
wl0_version=5.60.120.24 
wl0_vifs=
wl0_vlan_prio_mode=off
wl0_wds=
wl0_wds_timeout=1
wl0_wep=disabled
wl0_wep_bit=64
wl0_wep_buf=
wl0_wep_gen=
wl0_wep_last=
wl0_wme=on
wl0_wme_ap_be=15 63 3 0 0 off off
wl0_wme_ap_bk=15 1023 7 0 0 off off
wl0_wme_ap_vi=7 15 1 6016 3008 off off
wl0_wme_ap_vo=3 7 1 3264 1504 off off
wl0_wme_apsd=off
wl0_wme_bss_disable=0
wl0_wme_no_ack=off
wl0_wme_sta_be=15 1023 3 0 0 off off
wl0_wme_sta_bk=15 1023 7 0 0 off off
wl0_wme_sta_vi=7 15 2 6016 3008 off off
wl0_wme_sta_vo=3 7 2 3264 1504 off off
wl0_wme_txp_be=7 3 4 2 0
wl0_wme_txp_bk=7 3 4 2 0
wl0_wme_txp_vi=7 3 4 2 0
wl0_wme_txp_vo=7 3 4 2 0
wl0_wmf_bss_enable=0
wl0_wpa_gtk_rekey=3600
wl0_wpa_psk=
wl0_wps_config_state=0
wl0_wps_mode=enabled
wl0_wps_reg=disabled
wl0id=0x4329
wl_40m_disable=0
wl_active_add_mac=0
wl_active_mac=
wl_afterburner=off
wl_akm=
wl_ampdu=on
wl_amsdu=off
wl_antdiv=-1
wl_ap_isolate=0
wl_auth=0
wl_auth_mode=none
wl_auth_type=0
wl_bcn=100
wl_bcn_rotate=1
wl_bss_enabled=1
wl_bss_maxassoc=128
wl_channel=0
wl_closed=0
wl_corerev=
wl_country=US/0
wl_country_code=US/0
wl_crypto=tkip+aes
wl_default_ssid=Cisco41722
wl_dfs_postism=60
wl_dfs_preism=60
wl_dtim=1
wl_frag=2346
wl_frameburst=on
wl_gmode=1
wl_gmode_protection=auto
wl_hwaddr=
wl_ifname=
wl_infra=1
wl_key1=
wl_key2=
wl_key3=
wl_key4=
wl_key=1
wl_lazywds=0
wl_leddc=0x640000
wl_mac_deny=
wl_mac_filter=0
wl_mac_list=
wl_maclist=
wl_macmode=disabled
wl_max_channel=11
wl_maxassoc=128
wl_mode=ap
wl_mrate=0
wl_nband=2
wl_nbw=20
wl_nbw_cap=0
wl_nctrlsb=none
wl_net_mode=mixed
wl_net_reauth=36000
wl_nmcsidx=-1
wl_nmode=-1
wl_nmode_protection=auto
wl_nreqd=0
wl_passphrase=
wl_phytype=g
wl_phytypes=
wl_plcphdr=long
wl_radarthrs=0 0x6a8 0x6c8 0x6ac 0x6c7
wl_radio=1
wl_radio_pwrsave_enable=0
wl_radio_pwrsave_on_time=50
wl_radio_pwrsave_pps=10
wl_radio_pwrsave_quiet_time=1800
wl_radioids=
wl_radius_ipaddr=
wl_radius_key=
wl_radius_port=1812
wl_random_channel=1
wl_rate=0
wl_rateset=default
wl_reg_mode=off
wl_rts=2347
wl_rxchain_pwrsave_enable=1
wl_rxchain_pwrsave_pps=10
wl_rxchain_pwrsave_quiet_time=1800
wl_rxstreams=0
wl_ssid=Cisco41722
wl_sta_retry_time=5
wl_stbc_tx=auto
wl_txstreams=0
wl_unit=0
wl_version=5.60.120.24 
wl_vlan_prio_mode=off
wl_wds=
wl_wds_timeout=1
wl_wep=disabled
wl_wep_bit=64
wl_wep_buf=
wl_wep_gen=
wl_wep_last=
wl_wme=on
wl_wme_ap_be=15 63 3 0 0 off off
wl_wme_ap_bk=15 1023 7 0 0 off off
wl_wme_ap_vi=7 15 1 6016 3008 off off
wl_wme_ap_vo=3 7 1 3264 1504 off off
wl_wme_apsd=off
wl_wme_bss_disable=0
wl_wme_no_ack=off
wl_wme_sta_be=15 1023 3 0 0 off off
wl_wme_sta_bk=15 1023 7 0 0 off off
wl_wme_sta_vi=7 15 2 6016 3008 off off
wl_wme_sta_vo=3 7 2 3264 1504 off off
wl_wme_txp_be=7 3 4 2 0
wl_wme_txp_bk=7 3 4 2 0
wl_wme_txp_vi=7 3 4 2 0
wl_wme_txp_vo=7 3 4 2 0
wl_wmf_bss_enable=0
wl_wpa_gtk_rekey=3600
wl_wpa_psk=
wl_wps_config_state=0
wl_wps_mode=enabled
wl_wps_reg=disabled
wps_action=2
wps_akm=psk2
wps_config_command=0
wps_config_method=0x84
wps_count=0
wps_crypto=aes
wps_currentband=
wps_device_name=E1000
wps_device_pin=97421603
wps_enable=1
wps_enr_mode=enabled
wps_ie=enabled
wps_method=1
wps_mfstring=Linksys
wps_mode=enabled
wps_modelname=E1000
wps_modelnum=123456
wps_proc_mac=
wps_proc_status=0
wps_restart=0
wps_result=0
wps_security_auto=1
wps_sta_pin=00000000
wps_timeout_enable=0
xtalfreq=20000

bootlog
================

Decompressing using gzip...........done
Decompressing using gzip...........done
Start to blink diag led ...


CFE version 1.0.37 for BCM947XX (32bit,SP,LE)
Build Date: 01/13/10 11:50:36 CST (root@chungzi_pc)
Copyright (C) 2000-2008 Broadcom Corporation.

Initializing Arena
Initializing Devices.

No DPN
This is a Serial Flash
Boot partition size = 262144(0x40000)
Found a 4MB ST compatible serial flash
Partition information:
boot    #00   00000000 -> 0003FFFF  (262144)
trx     #01   00040000 -> 0004001B  (28)
os      #02   0004001C -> 003F7FFF  (3899364)
nvram   #03   003F8000 -> 003FFFFF  (32768)
Partition information:
boot    #00   00000000 -> 0003FFFF  (262144)
trx     #01   00040000 -> 003F7FFF  (3899392)
nvram   #02   003F8000 -> 003FFFFF  (32768)
BCM47XX_GMAC_ID
et0: Broadcom BCM47XX GMAC Mbps Ethernet Controller 5.10.56.51
CPU type 0x19749: 300MHz
Total memory: 32768 KBytes

CFE mem:    0x80700000 - 0x807A4A90 (674448)
Data:       0x8073AB10 - 0x8073DDF0 (13024)
BSS:        0x8073DDF0 - 0x8073EA90 (3232)
Heap:       0x8073EA90 - 0x807A2A90 (409600)
Stack:      0x807A2A90 - 0x807A4A90 (8192)
Text:       0x80700000 - 0x8073AB08 (240392)

Boot version: v5.1.4
The boot is CFE
mac_init(): Find mac [<mac addr>] in location 0
Nothing...

### CLKDIV= 0x80a082c, SFlashClkDiv=8 clkdivsf=4 ###
### Change it to 0x40a082c (4) ###
CMD: [ifconfig eth0 -addr=192.168.1.1 -mask=255.255.255.0]
Device eth0:  hwaddr <mac-addr>, ipaddr 192.168.1.1, mask 255.255.255.0
        gateway not set, nameserver not set
CMD: [go;]
Check CRC of image1
  Len:     0xF2400    (992256)    (0xBC040000)
  Offset0: 0x1C        (28)        (0xBC04001C)
  Offset1: 0x960    (2400)    (0xBC040960)
  Offset2: 0xF2400    (992256)    (0xBC132400)
  Header CRC:    0x5B8ED1BF
  Calculate CRC: 0x5B8ED1BF
Image 1 is OK
Try to load image 1.
Waiting for 3 seconds to upgrade ...
CMD: [load -raw -addr=0x807a4a90 -max=0x185b570 :]
Loader:raw Filesys:tftp Dev:eth0 File:: Options:(null)
Loading: _tftpd_open(): retries=0/3
_tftpd_open(): retries=1/3
_tftpd_open(): retries=2/3

### Start=127656200 E=609091646 Delta=481435446 ###
Failed.
Could not load :: Timeout occured
CMD: [boot -raw -z -addr=0x80001000 -max=0x6ff000 flash0.os:]
Loader:raw Filesys:raw Dev:flash0.os File: Options:(null)
Loading: .. 3780 bytes read

### Start=613833403 E=615969434 Delta=2136031 ###
Entry at 0x80001000
Closing network.
Starting program at 0x80001000
[    0.000000] Linux version 3.3.8 (blogic@Debian-60-squeeze-64-minimal) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #3 Mon Sep 3 16:16:20 UTC 2012
[    0.000000] CPU revision is: 00019749 (MIPS 74Kc)
[    0.000000] bcm47xx: using bcma bus
[    0.000000] bcma: bus0: Found chip with id 0xB83A, rev 0x00 and package 0x02
[    0.000000] bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x1F, class 0x0)
[    0.000000] bcma: bus0: Core 3 found: MIPS 74K (manuf 0x4A7, id 0x82C, rev 0x02, class 0x0)
[    0.000000] bcma: bus0: Initializing MIPS core...
[    0.000000] bcma: bus0: IRQ reconfiguration done
[    0.000000] bcma: core 0x0800, irq : 2(S)* 3  4  5  6  D  I 
[    0.000000] bcma: core 0x082c, irq : 2(S)* 3  4  5  6  D  I 
[    0.000000] bcma: bus0: found serial flash.
[    0.000000] bcma: bus0: Early bus registered
[    0.000000] gpiochip_add: registered GPIOs 0 to 15 on device: bcm47xx
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 02000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone PFN ranges:
[    0.000000]   Normal   0x00000000 -> 0x00002000
[    0.000000] Movable zone start PFN for each node
[    0.000000] Early memory PFN ranges
[    0.000000]     0: 0x00000000 -> 0x00002000
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
[    0.000000] Kernel command line:  root=/dev/mtdblock2 rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200
[    0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[    0.000000] Writing ErrCtl register=00000100
[    0.000000] Readback ErrCtl register=00000100
[    0.000000] Memory: 29228k/32768k available (2521k kernel code, 3540k reserved, 381k data, 168k init, 0k highmem)
[    0.000000] NR_IRQS:128
[    0.000000] Calibrating delay loop... 149.50 BogoMIPS (lpj=299008)
[    0.032000] pid_max: default: 32768 minimum: 301
[    0.032000] Mount-cache hash table entries: 512
[    0.032000] NET: Registered protocol family 16
[    0.056000] bio: create slab <bio-0> at 0
[    0.064000] Switching to clocksource MIPS
[    0.072000] NET: Registered protocol family 2
[    0.076000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.076000] TCP established hash table entries: 1024 (order: 1, 8192 bytes)
[    0.076000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.076000] TCP: Hash tables configured (established 1024 bind 1024)
[    0.076000] TCP reno registered
[    0.076000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.076000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.076000] NET: Registered protocol family 1
[    0.080000] bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x11, class 0x0)
[    0.080000] bcma: bus0: Core 2 found: GBit MAC (manuf 0x4BF, id 0x82D, rev 0x01, class 0x0)
[    0.080000] bcma: bus0: Core 4 found: DDR1/DDR2 Memory Controller (manuf 0x4BF, id 0x82E, rev 0x01, class 0x0)
[    0.080000] bcma: bus0: Initializing MIPS core...
[    0.080000] bcma: bus0: set_irq: core 0x0812, irq 3 => 3
[    0.080000] bcma: bus0: set_irq: core 0x082d, irq 4 => 4
[    0.080000] bcma: bus0: IRQ reconfiguration done
[    0.080000] bcma: core 0x0800, irq : 2(S)* 3  4  5  6  D  I 
[    0.080000] bcma: core 0x082c, irq : 2(S)* 3  4  5  6  D  I 
[    0.080000] bcma: core 0x0812, irq : 2(S)  3* 4  5  6  D  I 
[    0.080000] bcma: core 0x082d, irq : 2(S)  3  4* 5  6  D  I 
[    0.080000] bcma: core 0x082e, irq : 2(S)* 3  4  5  6  D  I 
[    0.080000] can not parse nvram name et0phyaddr with value 1f got -22
[    0.092000] Unsupported SPROM revision 0 detected. Will extract v1
[    0.112000] bcma: bus0: Bus registered
[    0.116000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.116000] JFFS2 version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.116000] msgmni has been set to 57
[    0.116000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
[    0.116000] io scheduler noop registered
[    0.116000] io scheduler deadline registered (default)
[    0.116000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.152000] serial8250.0: ttyS0 at MMIO 0xb8000300 (irq = 2) is a U6_16550A
[    0.564000] console [ttyS0] enabled
[    0.572000] bcm47xx_pflash: error registering platform driver: -19
[    0.580000] bcm47xx_sflash: found serial flash: blocksize=64KB, numblocks=64, size=4096KB
[    0.588000] bcm47xx_part: bootloader size: 262144
[    0.596000] bcm47xx_part: Looking for dual image
[    0.608000] bcm47xx_part: TRX offset : 0
[    0.612000] 4 bcm47xx partitions found on MTD device bcm47xx-sflash
[    0.616000] Creating 4 MTD partitions on "bcm47xx-sflash":
[    0.624000] 0x000000000000-0x000000040000 : "cfe"
[    0.632000] 0x000000040000-0x0000003f0000 : "linux"
[    0.640000] 0x000000132400-0x0000003f0000 : "rootfs"
[    0.644000] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[    0.660000] mtd: partition "rootfs" set to be root filesystem
[    0.668000] mtd: partition "rootfs_data" created automatically, ofs=300000, len=F0000 
[    0.676000] 0x000000300000-0x0000003f0000 : "rootfs_data"
[    0.684000] 0x0000003f0000-0x000000400000 : "nvram"
[    0.696000] bcm47xx_nflash: error registering platform driver: -19
[    0.704000] BCM47xx Watchdog Timer enabled (30 seconds, nowayout)
[    0.712000] TCP cubic registered
[    0.716000] NET: Registered protocol family 17
[    0.720000] 8021q: 802.1Q VLAN Support v1.8
[    0.736000] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
[    0.744000] Freeing unused kernel memory: 168k freed
[    3.664000] diag: Detected 'Linksys WRT54G/GS/GL'
[    4.792000] roboswitch: Probing device eth0: No such device
[    4.796000] roboswitch: Probing device eth1: No such device
[    4.800000] roboswitch: Probing device eth2: No such device
[    4.808000] roboswitch: Probing device eth3: No such device
- preinit -
Press the [f] key and hit [enter] to enter failsafe mode
- regular preinit -
[   11.412000] JFFS2 notice: (302) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 5 of xref (0 dead, 2 orphan) found.
switching to jffs2
- init -

Please press Enter to activate this console. [   15.132000] Compat-wireless backport release: compat-wireless-2012-07-13
[   15.140000] Backport based on wireless-testing.git master-2012-07-16
[   15.144000] compat.git: wireless-testing.git
[   15.196000] cfg80211: Calling CRDA to update world regulatory domain
[   15.200000] cfg80211: World regulatory domain updated:
[   15.208000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[   15.216000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   15.224000] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   15.232000] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   15.240000] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   15.248000] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   15.372000] roboswitch: Probing device eth0: No such device
[   15.380000] roboswitch: Probing device eth1: No such device
[   15.384000] roboswitch: Probing device eth2: No such device
[   15.392000] roboswitch: Probing device eth3: No such device
[   16.060000] b43-phy0: Broadcom 47162 WLAN found (core revision 17)
[   16.068000] Broadcom 43xx driver loaded [ Features: PNL ]
[   16.120000] Broadcom 43xx-legacy driver loaded [ Features: PLID ]
[   16.480000] PPP generic driver version 2.4.2
[   16.888000] ip_tables: (C) 2000-2006 Netfilter Core Team
[   17.080000] NET: Registered protocol family 24
[   17.116000] nf_conntrack version 0.5.0 (459 buckets, 1836 max)



BusyBox v1.19.4 (2012-08-26 00:44:50 UTC) 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
 -----------------------------------------------------
 ATTITUDE ADJUSTMENT (12.09-beta, r33312)
 -----------------------------------------------------
  * 1/4 oz Vodka      Pour all ingredients into mixing
  * 1/4 oz Gin        tin with ice, strain into glass.
  * 1/4 oz Amaretto
  * 1/4 oz Triple sec
  * 1/4 oz Peach schnapps
  * 1/4 oz Sour mix
  * 1 splash Cranberry juice
 -----------------------------------------------------
root@OpenWrt:/#

Update: Note: The error about et0phyaddr is because I changed the var from 30 hoping to make wired network work :-).

(Last edited by hhm1 on 28 Sep 2012, 02:27)

This is (as b43 noted) BCM47162, not BCM4716. Small difference smile

Important part:

bcma: bus0: Core 2 found: GBit MAC (manuf 0x4BF, id 0x82D, rev 0x01, class 0x0)

Unfortunately driver for BGit MAC doesn't work yet, I'm working on it with help of Hauke. I'll focus fully on it, when I finish NAND support.

hhm1: could you provide info about PHY and RADIO on BCM47162? b43 should print it in something like:

Found PHY: Analog X, Type Y, Revision Z
Found Radio: Manuf X, Version Y, Revision Z

@Zajec
Thanks.

How do I get this information (PHY/radio)? Is there a command I need to install or run or a flag I need to set (debuglevel etc.)?

I looked in the boot log and/ dmesg.

Thanks!

(Last edited by hhm1 on 24 Sep 2012, 14:00)

@Zajec: I did not find output like this in dmesg, bootlog, stock firmware bootlog/output. I also tried killalling hostapd and running it with the same options (found with ps w) and the debugging options but it just showed the same thing as before basically.
Thanks for your help!



Just to clarify things, the wireless works just fine (only issue is the way the LEDs are inverted when it is on (power and wifi leds off and all others on)). The problem is the ethernet; it just does not work.

I am wondering if fix the wired network issue  can be fixed easily, or what the problem is (my guess is drivers or hardware addresses) so I can try to fix it myself. (also maybe info/help for fixing the leds/buttons -- failsafe button trigger does not work for me --  but these are not such big issues for me).

More info. After wireless is started the ethernet does not even show up as connected on my pc (debian squeeze with network-manager); before that I can connect but just not ping. Also the leds (even the wired ones) work normally, even blinking on traffic, before turning wifi on; after turn wifi on leds dont change when wired is attached. After turning wifi off ("wifi down") lights work and ethernet on PC reattaches.

Here are some logs etc.:

quote from dmesg on startup that shows me wired network probably not working

[    3.648000] diag: Detected 'Linksys WRT54G/GS/GL'
[    4.768000] roboswitch: Probing device eth0: No such device
[    4.776000] roboswitch: Probing device eth1: No such device
[    4.780000] roboswitch: Probing device eth2: No such device
[    4.788000] roboswitch: Probing device eth3: No such device

dmesg after starting wifi (enabling with "uci set wireless.radio0.disabled=0" or /etc/config/wireless first, then run "wifi")

root@OpenWrt:/# wifi
Configuration file: /var/run/hostapd-phy0.conf
[  152.144000] b43-phy0: Loading firmware version 666.2 (2011-02-23 01:15:07)
[  152.320000] device wlan0 entered promiscuous mode
[  152.532000] b43-phy0: Loading firmware version 666.2 (2011-02-23 01:15:07)
Using interface wlan0 with hwaddr <macaddr> and ssid '<ssid>'
[  152.676000] br-lan: port 1(wlan0) entered forwarding state
[  152.680000] br-lan: port 1(wlan0) entered forwarding state
[  154.684000] br-lan: port 1(wlan0) entered forwarding state

ifconfig after starting wifi

root@OpenWrt:/# ifconfig
br-lan    Link encap:Ethernet  HWaddr <macaddr>
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2832 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2832 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:192576 (188.0 KiB)  TX bytes:192576 (188.0 KiB)

wlan0     Link encap:Ethernet  HWaddr <same-macaddr-as-"br-lan"-iface>
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:32 
          RX bytes:0 (0.0 B)  TX bytes:192 (192.0 B)
hhm1 wrote:

How do I get this information (PHY/radio)? Is there a command I need to install or run or a flag I need to set (debuglevel etc.)?

You need CONFIG_B43_DEBUG to be set, or another solution is to update b43 driver to the version from wireless-next (it contains patch "b43: be more user friendly with PHY info").

hhm1 wrote:

I am wondering if fix the wired network issue  can be fixed easily, or what the problem is (my guess is drivers or hardware addresses) so I can try to fix it myself. (also maybe info/help for fixing the leds/buttons -- failsafe button trigger does not work for me --  but these are not such big issues for me).

More info. After wireless is started the ethernet does not even show up as connected on my pc (debian squeeze with network-manager); before that I can connect but just not ping. Also the leds (even the wired ones) work normally, even blinking on traffic, before turning wifi on; after turn wifi on leds dont change when wired is attached. After turning wifi off ("wifi down") lights work and ethernet on PC reattaches.

According to my knowledge, you can't have driver for ethernet running. No idea about that leds... maybe it's somehow hardware driven?

@Zajec

[   16.224000] b43-phy0: Broadcom 47162 WLAN found (core revision 17)
[   16.228000] b43-phy0: Found PHY: Analog 8, Type 4 (N), Revision 6

(Used trunk from recently and played around a bit in kernel_menuconfig to get this)

(Last edited by hhm1 on 27 Sep 2012, 08:54)

Update about LEDs.

There is stuff in /proc/diag/leds, but they dont work properly; for model it says wrt54g/gs/gl :-). It seems like thats why lots of leds would light when turning wireless on (see chart below for gpio 3).

GPIO info using /sys/class/gpio interface. ngpio is 16 and base is 0.
===================
leds (0=off, 1=on, unless noted otherwise):
0 - Wireless
1 - Power
2 and 4 - wps led. both 1 = off, 2: 0, 4: 1 = orange, 2: 1, 4: 0 = blue, both 0 = pink
3 - leds for all ethernet ports (wan too) -- 1: work normally, 0: all lit all the time ; *UPDATE*: all ethernet ports are also disconnected when set to 0 (and reconnected when set back to 1)

inputs (1=normal (not pressed), 0=being pressed, unless noted):
5: wps button
6: reset button

7 and above dont seems to do anything to it.

UPDATE: the info is already there for the WRT160N V3, but not for e1000 or m10. https://dev.openwrt.org/browser/trunk/p … iag.c#L325
UPDATE2: faking a wrt160nv3 by setting the proper nvram vars as seen in platform_detect in diag.c makes the leds work in /proc/diag/leds; however the light by wireless still misbehave since only some are implemented (see previous link).

(Last edited by hhm1 on 31 Dec 2012, 12:43)

By the way, what would it take to make the wired ports driver working? Is it just an hw address problem etc., or is it something more, like no drivers?If it would take a while, I might implement it myself -- what would i need to do to make it operate?

(Last edited by hhm1 on 27 Sep 2012, 10:12)

It needs a completely new driver.

I am also working on BCM5357 based hardware and am wondering if anyone is currently working on the wired driver?  I have looked at some of the work that George Kashperko has done on the BCM4716 patches and wondered if any of his work applies to the wired ethernet drivers for the BCM47162?

I have time/hardware/test equipment and c experience and would like to help in any way I can.  I need to get this hardware working under openWRT.

(Last edited by riproute on 27 Sep 2012, 23:43)

By the way Linksys has the WRT160N sources here (near bootom of page).

Also this thread may be very useful, since it seems the hardware in question is similar, and it has some good links.

(Last edited by hhm1 on 28 Sep 2012, 02:35)

I've basic driver written, it just needs some fixes for TX and implementing some ops for switch driver coopration. I'm leaving today for a week, but you can expect something when I'm back.

Zajec wrote:

I've basic driver written, it just needs some fixes for TX and implementing some ops for switch driver coopration. I'm leaving today for a week, but you can expect something when I'm back.

Yay! Thanks!

Any update on that wired driver?

I'm tinkering on the Asus RT-N12, which looks to be almost identical hardware.  I have it in the same state too, with wireless working but no wired interfaces yet.

I added info to the wiki for E1000 v1.

(Last edited by hhm1 on 5 Nov 2012, 07:24)

Dug into this stuff a little more recently, and found out some info.
Things may be inaccurate, though...

It seems there is a thing called GMAC, which uses something called AMBA, in many of broadcom's recent routers.

Broadcom released the code for the gmac (seems their drivers are called "bgmac") at some point, but under a proprietary license.
In the meantime, someone put together OpenWRT patches for these chips; however it seems it was meant to be more of a temporary, quick fix. (here)
Recently the source for the drivers was released under a permissive license, and seen that way in the source code published for a router (under asuswrt/release/src-rt-6.x/et it seems). Until then it had been under another license, see asuswrt/release/src-rt-6.x/et in that same release for the other-licensed code.

The linux implementation of the broadcom amba seems to be called "bcma".
Some info about the hardware etc. is up here.
The drivers have started to be implemented.

For infos see this, the patches, this.


Notes:
- The hardware in different routers seems like it may be a bit different, for the routers which use GMAC.
- All this info here may contain inaccuracies, and/or be outdated.

Hope this is helpful, and answers questions asked here.

(Last edited by hhm1 on 11 Nov 2012, 11:20)

hhm1 wrote:

Dug into this stuff a little more recently, and found out some info.
Things may be inaccurate, though...

It seems there is a thing called GMAC, which uses something called AMBA, in many of broadcom's recent routers.

Broadcom released the code for the gmac (seems their drivers are called "bgmac") at some point, but under a proprietary license.
In the meantime, someone put together OpenWRT patches for these chips; however it seems it was meant to be more of a temporary, quick fix. (here)
Recently the source for the drivers was released under a permissive license, and seen that way in the source code published for a router (under asuswrt/release/src-rt-6.x/et it seems). Until then it had been under another license, see asuswrt/release/src-rt-6.x/et in that same release for the other-licensed code.

The linux implementation of the broadcom amba seems to be called "bcma".
Some info about the hardware etc. is up here.
The drivers have started to be implemented.

For infos see this, the patches, this.


Notes:
- The hardware in different routers seems like it may be a bit different, for the routers which use GMAC.
- All this info here may contain inaccuracies, and/or be outdated.

Hope this is helpful, and answers questions asked here.

Hi hhm1,

I don't want to get this thread sidetracked and apologize for resurrecting a thread from the dead.
I myself own a Linksys E4200 v1, which has some specs that are relevant to the original router you commented on.

basically, i would like to help out in any way i can as i am familiar with c/assembly and also have the hardware to test this on.
also, if a driver for the ethernet module on these broadcom chipset does become available, this would be a huge step towards supporting a great deal of broadcom based drivers as the wireless has never been the problem, its always been the ethernet.

C

chhatc wrote:
hhm1 wrote:

Dug into this stuff a little more recently, and found out some info.
Things may be inaccurate, though...

It seems there is a thing called GMAC, which uses something called AMBA, in many of broadcom's recent routers.

Broadcom released the code for the gmac (seems their drivers are called "bgmac") at some point, but under a proprietary license.
In the meantime, someone put together OpenWRT patches for these chips; however it seems it was meant to be more of a temporary, quick fix. (here)
Recently the source for the drivers was released under a permissive license, and seen that way in the source code published for a router (under asuswrt/release/src-rt-6.x/et it seems). Until then it had been under another license, see asuswrt/release/src-rt-6.x/et in that same release for the other-licensed code.

The linux implementation of the broadcom amba seems to be called "bcma".
Some info about the hardware etc. is up here.
The drivers have started to be implemented.

For infos see this, the patches, this.


Notes:
- The hardware in different routers seems like it may be a bit different, for the routers which use GMAC.
- All this info here may contain inaccuracies, and/or be outdated.

Hope this is helpful, and answers questions asked here.

Hi hhm1,

I don't want to get this thread sidetracked and apologize for resurrecting a thread from the dead.
I myself own a Linksys E4200 v1, which has some specs that are relevant to the original router you commented on.

basically, i would like to help out in any way i can as i am familiar with c/assembly and also have the hardware to test this on.
also, if a driver for the ethernet module on these broadcom chipset does become available, this would be a huge step towards supporting a great deal of broadcom based drivers as the wireless has never been the problem, its always been the ethernet.

C

Ask Zajec or Hauke; As far as I know they are working on the drivers.

@Zajec

Do you have any update for us?

Thanks,
chhatc

We have specs for GMAC core, we have OK-licensed driver, the trick is to write driver working with existing infrastructure (read: bcma).

I've been working on my driver for the last week, transmitting packets seems to work, my current problem is I don't get interrupts on RX. Working on that.

Earlier I was busy with partitioner driver (DONE) and NAND flash driver (99% DONE). Now I focus on bgmac only.

P.S.
You can probably easier catch me via e-mail or #bcm-users smile

(Last edited by Zajec on 3 Dec 2012, 18:07)

Ok, thanks so much for the update! Awesome.

Zajec wrote:

We have specs for GMAC core, we have OK-licensed driver, the trick is to write driver working with existing infrastructure (read: bcma).

I've been working on my driver for the last week, transmitting packets seems to work, my current problem is I don't get interrupts on RX. Working on that.

Earlier I was busy with partitioner driver (DONE) and NAND flash driver (99% DONE). Now I focus on bgmac only.

P.S.
You can probably easier catch me via e-mail or #bcm-users smile

It doesn't look interesting:

root@(none):/# ping -c 5 192.168.1.2
PING 192.168.1.2 (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: seq=0 ttl=64 time=0.677 ms
64 bytes from 192.168.1.2: seq=1 ttl=64 time=0.418 ms
64 bytes from 192.168.1.2: seq=2 ttl=64 time=0.367 ms
64 bytes from 192.168.1.2: seq=3 ttl=64 time=0.373 ms
64 bytes from 192.168.1.2: seq=4 ttl=64 time=0.360 ms

--- 192.168.1.2 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.360/0.439/0.677 ms

right? Until you hear this: WNDR4500 AKA BCM4706 smile Yeah, it comes from the

bcma: bus0: Core 1 found: BCM4706 GBit MAC (manuf 0x4BF, id 0x52D, rev 0x00, class 0x0)

smile Should be ready next week.

Zajec wrote:

It doesn't look interesting:

root@(none):/# ping -c 5 192.168.1.2
PING 192.168.1.2 (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: seq=0 ttl=64 time=0.677 ms
64 bytes from 192.168.1.2: seq=1 ttl=64 time=0.418 ms
64 bytes from 192.168.1.2: seq=2 ttl=64 time=0.367 ms
64 bytes from 192.168.1.2: seq=3 ttl=64 time=0.373 ms
64 bytes from 192.168.1.2: seq=4 ttl=64 time=0.360 ms

--- 192.168.1.2 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.360/0.439/0.677 ms

right? Until you hear this: WNDR4500 AKA BCM4706 smile Yeah, it comes from the

bcma: bus0: Core 1 found: BCM4706 GBit MAC (manuf 0x4BF, id 0x52D, rev 0x00, class 0x0)

smile Should be ready next week.

Great! Thank you so much Zajec!

The driver by Zajec (this patch is a "beta"ish version as far as i know) is here!

The flash memory support is not working at present for my linksys e1000  v1 (therefore I have not been able to try out Zajec's code yet). On the mailing list here i posted a message asking for info how to fix this. If anyone knows how to fix, please post/respond!
Thanks.