User Tools

Site Tools


toh:netgear:dg834gt

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
toh:netgear:dg834gt [2012/10/08 16:30]
apbarrett Add some sub-sub-headings to the linux instructions.
toh:netgear:dg834gt [2015/12/30 19:14] (current)
tmomas link fixed
Line 1: Line 1:
 +====== Netgear DG834GT ======
 +| {{:​meta:​icons:​tango:​48px-dialog-warning.svg.png}} | **WARNING:​** Do not confuse the DG834**GT** with the [[toh:​netgear:​dg834g.v4|DG834G V4]]!\\ Also note that the **Wifi** chip for this router is the **Atheros** AR2414 chip and //not// the Broadcom. |
 +
 +
 +
 +===== Hardware Highlights =====
 +^ SoC ^ Ram ^ Flash ^ LAN ^ USB ^ Serial ^ JTag ^
 +|Broadcom BCM6348@256MHz | 16MiB | 4MiB | 4 x 1| USB 1.1 Host | Yes | Yes |
 +
 +===== Installation =====
 +The OEM firmware is Linux, you can reach it via telnet after opening the following web page of the router: http://​your_router_ip_address_here/​setup.cgi?​todo=debug
 +
 +The DG834GT became supported in  OpenWrt release 10.03 '​Backfire'​.
 +The image needed to flash onto a Broadcom 63xx-series board depends on the board, method you are using to flash, and, for web-based flash, on the version of the Broadcom code your router uses. The board name is 96348GW-10 and it has CFE codeversion 3.02. However, the quickest way to get OpenWRT on the device is using a precompiled image - the image file will be named openwrt-DG834GT_DG834PN-<​file_system>​-cfe.bin. ​ The [[http://​downloads.openwrt.org/​backfire/​10.03.1/​brcm63xx/​|Backfire 10.03.1]] release is well tested. ​ [[http://​downloads.openwrt.org/​barrier_breaker/​14.07/​brcm63xx/​generic/​openwrt-DG834GT_DG834PN-squashfs-cfe.bin|Barrier Breaker 14.07]] appears to work too.  Memory is tight with later releases, and you may need to reduce the number of services running and/or download package files directly using the full URL (instead of using opkg update to get the indexes).
 +
 +  * There is **NO** support for the ADSL modem currently!
 +  * The image file does NOT have support for WiFi, so you'll have to add it with <​code>​opkg update</​code>​ then <​code>​
 +  opkg install kmod-ath
 +  opkg install kmod-ath5k</​code>​
 +  ​
 +Equivalent for Barrier Breaker, but consuming less RAM:
 +<​code>​opkg install http://​downloads.openwrt.org/​barrier_breaker/​14.07/​brcm63xx/​generic/​packages/​base/​kmod-ath_3.10.49%2b2014-05-22-1_brcm63xx.ipk
 +opkg install http://​downloads.openwrt.org/​barrier_breaker/​14.07/​brcm63xx/​generic/​packages/​base/​kmod-ath5k_3.10.49%2b2014-05-22-1_brcm63xx.ipk</​code>​
 +  ​
 +
 +There are three known methods to install OpenWRT on the DG834GT:
 +==== How to flash firmware using Linux ====
 +
 +Convert an OpenWRT build (.bin file) to Netgear format (.img), and then use either NFTP or the router'​s web interface to flash the new image.
 +
 +=== Create the image ===
 +
 +  - Download the build image (.bin) from OpenWrt, e.g.: [[http://​downloads.openwrt.org/​backfire/​10.03.1/​brcm63xx/​openwrt-DG834GT_DG834PN-squashfs-cfe.bin|openwrt-DG834GT_DG834PN-squashfs-cfe.bin]] (recommended) OR [[http://​downloads.openwrt.org/​backfire/​10.03.1/​brcm63xx/​openwrt-DG834GT_DG834PN-jffs2-128k-cfe.bin|openwrt-DG834GT_DG834PN-jffs2-128k-cfe.bin]] OR [[http://​downloads.openwrt.org/​backfire/​10.03.1/​brcm63xx/​openwrt-DG834GT_DG834PN-jffs2-64k-cfe.bin|openwrt-DG834GT_DG834PN-jffs2-64k-cfe.bin]].
 +  - Get [[ftp://​downloads.netgear.com/​files/​GPL/​DG834GT_V1.02.16_NA_src.zip]] and unzip the  directory DG834GT_V1.02.16_NA_src. ​
 +      * Note : source code can now be found at [[http://​kb.netgear.com/​app/​answers/​detail/​a_id/​2649/​~/​netgear---open-source-code-for-programmers-%28gpl%29]]
 +      * Direct link for the last firmware (1.03.23) : [[http://​www.downloads.netgear.com/​files/​GPL/​DG834GT_V1.03.23_src.tar.bz2.zip]]
 +  - In DG834GT_V1.02.16_NA_src directory create an empty file named mkimage.sh and insert the code from post 424 on [[https://​forum.openwrt.org/​viewtopic.php?​pid=89333#​p89333]].
 +  - Put the OpenWrt image (.bin) in the DG834GT_V1.02.16_NA_src directory.
 +  - In a terminal cd into DG834GT_V1.02.16_NA_src and execute something like <​code>​./​mkimage.sh DG834GT_V1.02.16.img openwrt-96348gw-10-squashfs-cfe.bin openwrt-DG834GT-2.6.27.11.img</​code>​ Where first file is the Netgear supplied image, second file is OpenWrt downloaded one and third file is whatever you want to name the new image.
 +
 +=== Install using NFTP ===
 +
 +  - Get code for patched NFTP program from here [[http://​forum.kitz.co.uk/​index.php/​topic,​5842.msg148308.html#​msg1483088]] then compile NFTP to get a binary.
 +  - Put the newly created image e.g. named "​openwrt-DG834GT-2.6.27.11.img"​ in this example in the same folder as the binary NFTP file.
 +  - Put router in flashing mode by pulling out the power plug, start pressing the reset button, inserting power and then keep pressing reset until LEDs flash alternatively. Then execute something like <​code>​sudo ./ntfp -u eth0 openwrt-DG834GT-2.6.27.11.img</​code>​ where the last file is the new image created by mkimage.sh file earlier on.
 +  - Power cycle the router around 3 times, making sure everything has initialized properly before going for the next cycle.
 +
 +=== Install using web interface ===
 +
 +For an easier upload method than messing around with NFTP, once you have made the ''​openwrt-DG834GT-2.6.27.11.img''​ file, it can be uploaded through the original web interface / flash upgrade router procedure.
 +
 +I used the instructions above and loaded Backfire 10.03.1 successfully.
 +
 +NOTE: for users of a SKY DG834GT with the locked bootloader you still need to use NFTP to flash because the web interface will not work. The bootloader checks the image and it does not allow flashing.
 +
 +==== OEM installation on Windows using the Firmware Recovery Tool ====
 +
 +On Windows you can use Netgear'​s supplied firmware recovery tool, but you need to make some alterations to the image file before it will be acceptable to the tool. You need to prepend the second stage bootloader to the image, then pad the image out to make it a multiple of 1024 bytes, and then ensure that the Netgear model and version information is present.
 +
 +The first few parts of this are done based around the instructions found in [[https://​forum.openwrt.org/​viewtopic.php?​pid=144111#​p144111|this forum post]]. Roughly speaking the steps you'll need to follow are:
 +  - Start with an official firmware, and extract the first 65536 bytes. // head -c 65536 <​netgear-firmware.img>​ > 2bl.bin //
 +  - Figure out how much padding is needed to make the file length a multiple of 1024 bytes. // dd if=/​dev/​zero of=padding.bin bs=<​bytesneeded>​ count=1//
 +  - Prepend the extracted data to the beginning of the openwrt firmware and append the padding to the end. // cat 2bl.bin openwrt.bin padding.bin >​file_to_flash.img //
 +  - Use the [[http://​www.ph-mb.com/​downloads/​brcm_firmware_tool/​Broadcom_Firmware_Tool_v1.0_Beta1_standalone.rar|Broadcom Firmware Tool]] found from [[http://​www.skyuser.co.uk/​forum/​technical-discussion/​32854-firmware-image-editing-tool-dg834gt-sagem-f-st-broadcom-based-routers.html#​post235918|SkyUser Forum]] to add the Netgear information to the firmware file. This is done by loading the firmware image (file_to_flash.img) into the tool, selecting the Netgear/​Sercomm tab, then adding "​DG834GT"​ as the target platform and a version number as the "​version ID". You can then "Save As", ensuring the file is saved as a "​Netgear Firmware Image" rather than the default Broadcom Firmware Image"​.
 +  - Boot the DG834GT into recovery mode by holding the reset button down whilst powering it up. The power and status lights should flash alternately.
 +  - Ensure the new firmware file is in the same directory as the Netgear Firmware Recovery Tool (remove the existing firmware file to avoid confusion).
 +  - Use the Recovery Tool to flash the firmware on a 32bit Windows system. ​
 +
 +If you are working on Windows, this author would strongly suggest having UNIX tools at your disposal to make life a little easier. This could be as simple as [[http://​sourceforge.net/​projects/​unxutils/​|UnxUtils]] or as complex as [[http://​www.cygwin.com/​|Cygwin]]. Note that if you're using UnxUtils, you can't point dd at /dev/zero. Instead, point it at a real file, on the understanding that first few bytes (up to 1023) of the real file will turn up at the end of the image.
 +
 +If you don't get the padding right, then the Firmware Recovery Tool will hang at 99%, and the power and status lights will flash quickly. Don't panic - the chances are that the firmware has flashed ok, but you'll need to power cycle the router.
 +
 +The Netgear Firmware Recovery tool basically does the same as the NFTP tool, discovering the device using type 0x8888 Ethernet frames, and then communicating with the firmware using the same frame type. No TFTP is used by the Firmware Recovery tool or by NFTP. 
 +
 +==== TFTP and serial port method ====
 +
 +| {{:​meta:​icons:​tango:​48px-dialog-warning.svg.png?​nolink&​24x24}} | **WARNING:​** Some DG834GT devices appear to have problems with the bootloader and serial port. This may make the device'​s serial port effectively inaccessible! |
 +The second method needs access to the device serial port. You will need a level shifter to connect an RS232 port, or alternatively you may be able to use one of the older USB to mobile phone serial connection cable, or even something like the BusPirate. The DG834GT operates at 3.3V, so whatever you use must be able to interface at this voltage. The UART connection is a row of four pads below the WiFi card connector, see below for pinout. You will need to solder either pins or wires to the pads.  ​
 + 
 +  - Connect to the serial port on the DG834GT with the power off on the device.
 +  - Set your PC to have a static IP address in the 192.168.1.xxx/​24 range.
 +  - Start a TFTP server on your PC, and put the OpenWrt firmware file in it's root directory. (E.G. openwrt-DG834GT_DG834PN-squashfs-cfe.bin)
 +  - Ensure you have your terminal software set to 115200 baud, 8N1.
 +  - Power the DG834GT up, and quickly hit any key on your terminal.
 +  - This should get you the CFE> prompt. If you just got random rubbish on the screen, you have a DG834GT that has problems with the serial port and bootloader. You may have to try using NFTP or the Netgear Firmware Recovery tool instead.
 +  - In the serial terminal, type <​code>​flashimage [your_pc_ip_address]:​openwrt-DG834GT_DG834PN-squashfs-cfe.bin</​code>​
 +
 +==== Enjoy OpenWrt ====
 +
 +After the flashing has finished your router reboots. Wait for about two minutes until OpenWrt has booted, get a static IP address in ''​192.168.1.xxx/​24''​ range and then connect to the router at ''​192.168.1.1''​ via telnet. This is the default address for a fresh OpenWrt installation. ​ Set the password with ''​passwd''​ and log out using ''​exit''​. Telnet will not work anymore from this point on, but SSH will.
 +
 +Beside SSH you can now access the web interface on ''​http://​192.168.1.1''​ to complete basic configuration of your new router.
 +
 +==== WiFi ====
 +
 +The OpenWrt image file does NOT have support for WiFi, so you'll have to install the necessary kernel modules. To do so the router needs internet access, which you can get in two ways:
 +  * Connect the router to a wired network (easiest). Most probably you will have to [[toh:​netgear:​dg834gt#​assigning.a.wan.port.with.dhcp|assign a port from the switch to WAN and use DHCP]] to get a valid IP address.
 +  * If there is only a wireless network available you can [[toh:​netgear:​dg834gt#​using.a.gnu/​linux.pc.to.forward.internet|use a GNU/Linux PC with two network interfaces (wireless and ethernet) to forward internet]] to the DG834GT.
 +  ​
 +=== Assigning a WAN port with DHCP ===
 +
 +The OpenWrt image has a static IP address (''​192.168.1.1''​) which may not be in the subnet of the network the DG834GT is plugged into. To circumvent this you can use the VLAN functionality to separate one of the switch ports for usage as WAN port with DHCP. To do so replace the ''/​etc/​config/​network''​ with the following:
 +<​code>​
 +config '​switch'​ '​eth1'​
 + option '​enable'​ '​1'​
 + option '​enable_vlan'​ '​1'​
 + option '​reset'​ '​1'​
 +
 +config '​switch_vlan'​ '​vlan0'​
 + option '​vlan'​ '​0'​
 + option '​device'​ '​eth1'​
 + option '​ports'​ '1 2 3 5*'
 +
 +config '​switch_vlan'​ '​vlan1'​
 + option '​vlan'​ '​1'​
 + option '​device'​ '​eth1'​
 + option '​ports'​ '0 5t'
 +
 +config '​interface'​ '​loopback'​
 + option '​ifname'​ '​lo'​
 + option '​proto'​ '​static'​
 + option '​ipaddr'​ '​127.0.0.1'​
 + option '​netmask'​ '​255.0.0.0'​
 +
 +config '​interface'​ '​lan'​
 + option '​type'​ '​bridge'​
 + option '​ifname'​ '​eth1.0'​
 + option '​proto'​ '​static'​
 + option '​ipaddr'​ '​192.168.1.1'​
 + option '​netmask'​ '​255.255.255.0'​
 + option '​nat'​ '​1'​
 + option '​mtu'​ '​1500'​
 +
 +config '​interface'​ '​wan'​
 + option '​ifname'​ '​eth1.1'​
 + option '​mtu'​ '​1492'​
 + option '​proto'​ '​dhcp'​
 +</​code>​
 +This [[http://​www.hwupgrade.it/​forum/​showpost.php?​p=34766046&​postcount=130|configuration by misteroX]] separates port number 4 of the switch to be used as a WAN interface. It will try to automatically get an IP address using DHCP.
 +
 +Connect the router to your wired network using port 4 and use one of the remaining ports to connect to your PC. Reboot the router and use ''​ifconfig''​ to check if you have an IP assigned for ''​eth1.1''​. If so you can proceed to [[toh:​netgear:​dg834gt#​installing.the.driver|Installing the driver]].
 +
 +=== Using a GNU/Linux PC to forward internet ===
 +
 +During the Installation of the wireless driver the device self-reboots. This works around that. The following assumes that you have left the default IP address on the DG834GT.
 +
 +On the GNU/Linux PC configure the ethernet controller to the DG834GT with a static IP so you can telnet then SSH to it.
 +<​code>​
 +sudo ifconfig eth0 192.168.1.3 netmask 255.255.255.0
 +</​code>​
 +
 +== Configure DG834GT to use PC as internet provider ==
 +
 +Modify ''/​etc/​config/​network''​ so the gateway is the laptop. Add the following gateway line to the ''​config interface lan''​ section.
 +<​code>​
 +config interface lan
 + option type     ​bridge
 + option ifname ​  eth1
 + option gateway ​ 192.168.1.3
 +</​code>​
 +
 +Add to the ''​System;​Startup;​Local Startup''​ post boot script (via web interface) so it appends an external nameserver to resolve.conf. Alternatively you could edit ''/​etc/​rc.local''​. ''​8.8.8.8''​ is a valid name server.  ​
 +<​code>​
 +echo search lan > /​etc/​resolv.conf
 +echo nameserver 8.8.8.8 >> /​etc/​resolv.conf
 +exit 0
 +</​code>​
 +
 +== PC forwarding ==
 +
 +Configure the GNU/Linux PC to forward traffic from the ethernet to the internet with the following script. Tailor the interfaces to your environment.
 +<​code>​
 +#!/bin/bash
 +#assumes PC eth0 is connected to DG834GT and will have IP 192.168.1.3
 +#allow the netgear to get info from the inet via this laptop.
 +
 +function verbose ​
 +{
 +    echo $*
 +    $*
 +}
 +
 +echo 1 > /​proc/​sys/​net/​ipv4/​ip_forward
 +
 +IP=192.168.1.3
 +#internal
 +INT=eth0
 +EXT=wlan0
 +
 +#setup static IP on interface to the netgear
 +verbose ifconfig eth0 $IP netmask 255.255.255.0
 +
 +#set up routing
 +verbose iptables -t nat -A POSTROUTING -o $EXT -j MASQUERADE
 +#allow router to connect out and remote servers to respond
 +verbose iptables -A FORWARD -i $INT -o $EXT -j ACCEPT
 +verbose iptables -A FORWARD -i $EXT -o $INT -m state    --state RELATED,​ESTABLISHED -j ACCEPT
 +exit
 +</​code>​
 +
 +== PC looses internet ==
 +Occasionally the PC may loose the internet. It might prioritize routing traffic through the DG834GT rather than the interface to the internet. In the following replace 10.0.2.1 with your router'​s IP.
 +<​code>​
 +sudo route del default
 +sudo route add default gw 10.0.2.1
 +</​code>​
 +
 +=== Installing the driver ===
 +
 +At the shell:
 +<​code>​
 +opkg update
 +opkg install kmod-ath
 +opkg install kmod-ath5k
 +</​code>​
 +The DG834GT can appear to hang, as the files being downloaded and configured are large. ​  ​Downloading the dependencies separately is unnecessary,​ but gives more feedback. Note that the device may reboot between drivers.
 +
 +After the installation has finished edit ''/​etc/​config/​wireless''​ and comment out or delete the line:
 +<​code>​
 +option disabled 1
 +</​code>​
 +
 +Enter command ''​wifi''​. You should now see a wireless network with SSID "​OpenWrt"​ (if you did not change the default settings). The web interface will now have ''​Network;​Wifi''​ available.
 +
 +If you used the internet forwarding method with a PC undo the changes to ''/​etc/​config/​network''​ and ''​System;​Startup;​Local Startup''​.
 +
 +===== Hardware =====
 +
 +==== Info ====
 +| **[[wp>​Instruction set|Architecture]]:​** ​  | [[wp>​MIPS architecture|MIPS]] big endian ​  |
 +| **Vendor:​** ​                               | [[wp>​Broadcom]] ​                           |
 +| **[[doc:​techref:​Bootloader]]:​** ​           | [[doc:​techref:​bootloader:​CFE|CFE]] ​        |
 +| **Board Id:**                              | 96348GW-10 ​                |
 +| **[[doc:​hardware:​soc|System-On-Chip]]:​** ​  | {{:​media:​datasheets:​bcm6348_product_brief.pdf|BCM6348}}KPBG ​ |
 +| **[[doc:​hardware:​cpu|CPU]]/​Speed** ​        | BMIPS3300 V0.7 / 256 MHz   |
 +| **Flash-Chip:​** ​  | MX 29LV320BTC-70G ​                  |
 +| **Flash size:​** ​  | 4 MiB                               |
 +| **RAM chip:​** ​    | IC42S32400\\ W9812G2DH-7 ​           |
 +| **RAM size:​** ​    | 16 MiB (1Mx4x32bit) ​                |
 +| **Wireless:​** ​    | Atheros AR2414 MiniPCI (802.11bg) ​  |
 +| **Ethernet:​** ​    | {{:​media:​datasheets:​bcm5325_datasheet.pdf|BCM5325}} w/ vlan support [[doc:​techref:​swconfig]] |
 +| **Internet:​** ​    | ADSL2+ ​                   |
 +| **USB:​** ​         | Yes USB 1.1 unpopulated ​  |
 +| **[[doc:​hardware:​port.serial|Serial]]:​** ​  | [[#​Serial|Yes]] ​          |
 +| **[[doc:​hardware:​port.jtag|JTAG]]:​** ​      | [[#​JTAG|Yes]] ​            |
 +
 +==== Serial ====
 +Serial console is J503, below the Wifi card connector. No pins are pre-soldered.
 +
 +Settings are: 115200, 8N1  ​
 +
 +^ pin   ^ signal ​  ^
 +| 1     | GND      |
 +| 2     | TX       |
 +| 3     | 3V3      |
 +| 4     | RX       |
 +
 +==== JTAG ====
 +Jtag Port is J201; this port is verified.
 +
 +
 +Disposition on the board:
 +| 2   | 4   | 6   | 8   | 10   | 12   |
 +| 1   | 3   | 5   | 7   ​| ​   9 | 11   |
 +
 +
 +JTAG signals and pins
 +| nTRST   ​| ​   1 |    2 |   GND |
 +| TDI     ​| ​   3 |    4 |   GND |
 +| TDO     ​| ​   5 |    6 |   GND |
 +| TMS     ​| ​   7 |    8 |   GND |
 +| TCK     ​| ​   9 | 10   ​| ​  GND |
 +| nSRST   | 11   | 12   ​| ​  GND |
 +
 +
 +See [[doc:​hardware:​port.jtag]] for more JTAG details.
 +
 +
 +===== Recovery =====
 +
 +With access to Serial Console is possible to restore the firmware on the router from bootloader CFE. CFE can download the image with TFTP see the installation method 2.
 +
 +**Attention** to use the command **//e//** for erase the whole flash when CFE can't read the tag it delete all flash also the CFE. For example if the flash is empty by //dd if=/​dev/​zero of=/​dev/​mtd1//​ the tag not exist. When the CFE is erased the only method to restore it is the JTAG Port. Dump of the CFE with dd if=/​dev/​mtd2 is in format BigEndian, but the dump with JTag Cable is in format LittleEndian so for restore a CFE need convert the image file.
 +
 +Without access to Serail Console, if you wish to restore the unit to OPENWRT'​s defaults, you can execute the command "
 + mtd -r erase rootfs_data ", as a side note, DO NOT erase '​rootfs'​ or the device will be semi bricked, and your probably going to need to use a serial cable to recover it, as I do. I was hoping to trigger CFE to drop into a mode it might accept tftp, but instead Im pretty sure its stalling after the bootloader has finished, but cant find where to move onto next.
 +
 +===== Hardware mods ======
 +
 +==== USB port ====
 +
 +There is an unpopulated USB port near right from reset button.
 +
 +{{ :​oldwiki:​openwrtdocs:​hardware:​netgear:​100_6268.jpg }}
 +
 + If you want to use it you need to solder the USB connector and the following parts:
 +| C515   | Polarized capacitor, 470 uF                |
 +| C516   | Capacitor 100nF size: 0805                 |
 +| FB1    | Resistor 0 Ohm size: 0805                  |
 +| C124   | Capacitor 100nF size: 1210                 |
 +| U102   | 5 Volt voltage regulator SOT-223 package ​  |
 +| J502   | Simply short it with a wire                |
 +
 +
 +Warning!Be careful with the voltage regulator! If you want to use an USB device which is powered from the USB port (usb stick, webcamera, etc.), you **should not use SOT-223** package regulator, because it could not dissipate the amount of power.
 +
 +Let's calculate. The input voltage is 12 Volt (or a bit more) the output is 5 Volt. So the regulator will dissipate (12-5)*current power. For example my webcam need 100 mA power according to it's description. So the regulator in my case will dissipate 7 V *0,1A = 0,7 W power. This amount of power cannot be handled by an SOT-223 package. Regulators in TO-220 package will do it better. The best choice is a small switching mode DC-DC converter.
 +
 +{{ :​oldwiki:​openwrtdocs:​hardware:​netgear:​100_6269bc.jpg }}
 +
 +Unfortunatelly there are some hardly solderable 0402 size parts are missing too.
 +| R515, R514   | between 16 and 44 Ohm   |
 +| R516, R517   | 15 KOhm                 |
 +| C511, C512   | 47 or 50 pF             |
 +
 +There is an other thing what is have to be done:
 +You have to pull the BCM6348'​s USB_FLT pin to the 3V3. This pin is connected to a via located in the half way between C702 and C423.
 +
 +{{ :​inbox:​usb_2_blog.jpg }}
 +
 +Solder a thin Cuz wire to it and connect it to the 3V3. The easiest place to find the 3V3 is the serial connector (J503) third pin.
 +Connect to it with an 2K resistor. ​
 +
 +Power up your device, and do
 +<​code>​cat /​proc/​bus/​usb/​devices</​code> ​
 +and you should see your olugged in usb devices details there.
 +
 +==== SPI port ====
 +
 +There is a place to an unpopulated footprint for an SPI flash: the U504 right to the main flash.
 +
 +Pinout:
 +| SPI_SSB (Chip select) ​  ​| ​  1 |   2 |        3V3 |
 +| SPI_MISO ​               |   3 |   4 |        3V3 |
 +| GND                     ​| ​  5 |   6 |    SPI_CLK |
 +| GND                     ​| ​  7 |   8 |   ​SPI_MOSI |
 +
 +This pinout is verified on a board with desoldered CPU using this pad layout which is generated from the CPU's BSDL file:
 +
 +{{ doc:​hardware:​soc:​bcm6348_kpbg_pinout.png?​300 }}
 +
 +
 +I think it is possible to attach SPI devices to it, but until this time I have not succeded with the spidevtest.
 +The spi device file could be created with:
 +<​code>​mknod /dev/spi0 c 153 0 </​code>​
 +
 +
 +===== GPIOs =====
 +
 +I have traced all the GPIO signals on my device. ​
 +The connected means that there is a trace connected to the pad.
 +The nc means the pad is not connected.
 +Any placement notifications are mentioned in the LAN ports upper orientation.
 +
 +^ GPIO      ^ BGA pad   ^ connected ​                                                           ^
 +| GPIO_0 ​   | AB5      | _ (Power LED)                                                        |
 +| GPIO_1 ​   | AC5      | LED 2 (Orange Tick LED)                                              |
 +| GPIO_2 ​   | AD1      | connected (Orange ADSL LED)                                          |
 +| GPIO_3 ​   | AD2      | LED 4 (Wireless LED)                                                 |
 +| GPIO_4 ​   | AD4      | connected reset                                                      |
 +| GPIO_5 ​   | AD3      | LED 3 (Hidden LED)                                                   |
 +| GPIO_6 ​   | AE3      | connected ​                                                           |
 +| GPIO_7 ​   | AD5      | connected via left from the R514 label (Green ADSL LED)              |
 +| GPIO_8 ​   | AE5      | connected ​                                                           |
 +| GPIO_9 ​   | AE4      | connected ​                                                           |
 +| GPIO_10 ​  | AF4      | connected near the GPIO_13 via                                       |
 +| GPIO_11 ​  | AF3      | connected via under the BGA                                          |
 +| GPIO_12 ​  | AB9      | connected ​                                                           |
 +| GPIO_13 ​  | AF5      | connected via at the C511 upper left corner ​                         |
 +| GPIO_14 ​  | AC9      | connected ​                                                           |
 +| GPIO_15 ​  | AD9      | connected ​                                                           |
 +| GPIO_16 ​  | H4       | connected via near at the right upper corner of R204                 |
 +| GPIO_17 ​  | J2       | connected the trace goes under the R617                              |
 +| GPIO_18 ​  | E1       | NC                                                                   |
 +| GPIO_19 ​  | J4       | connected th the via near the J letter at the left side of the CPU   |
 +| GPIO_20 ​  | E4       | NC                                                                   |
 +| GPIO_21 ​  | M3       | NC                                                                   |
 +| GPIO_22 ​  | AB4      | NC                                                                   |
 +| GPIO_23 ​  | AB3      | NC                                                                   |
 +| GPIO_24 ​  | Y5       | NC                                                                   |
 +| GPIO_25 ​  | AA3      | NC                                                                   |
 +| GPIO_26 ​  | AA4      | NC                                                                   |
 +| GPIO_27 ​  | AA5      | NC                                                                   |
 +| GPIO_28 ​  | AC4      | NC                                                                   |
 +| GPIO_29 ​  | AC3      | connected ​                                                           |
 +| GPIO_30 ​  | AC2      | NC                                                                   |
 +| GPIO_31 ​  | AC1      | NC                                                                   |
 +| GPIO_32 ​  | AF9      | connected ​                                                           |
 +| GPIO_33 ​  | Y24      | NC                                                                   |
 +| GPIO_34 ​  | Y25      | NC                                                                   |
 +| GPIO_35 ​  | W24      | NC                                                                   |
 +| GPIO_36 ​  | W25      | NC                                                                   |
 +
 +===== Tags =====
 +[[meta:​tags|How to add tags]]
 +{{tag>​bcm63xx bcm6348}}