Differences

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

toh:bt:homehub_v2b [2013/07/02 10:45]
lorema so is this supported or not?
toh:bt:homehub_v2b [2014/07/29 14:37] (current)
benm
Line 1: Line 1:
====== BT HomeHub 2.0 Type B ====== ====== BT HomeHub 2.0 Type B ======
 +
Black boxes given away with a bt broadband subscription. It comes in two versions Type A and Type B. The two versions look identical, and although they provide similar functionality, they are quite different on the inside. Black boxes given away with a bt broadband subscription. It comes in two versions Type A and Type B. The two versions look identical, and although they provide similar functionality, they are quite different on the inside.
Line 7: Line 8:
The homehub V2 includes ADSL2+, 802.11b/g/n wireless, host USB port, 4 wired ethernet ports, DECT, FXS & FXO ports and VOIP functionality. The homehub V2 includes ADSL2+, 802.11b/g/n wireless, host USB port, 4 wired ethernet ports, DECT, FXS & FXO ports and VOIP functionality.
-The firmware of both units can be successfully hacked for use on other ISPs (see www.psidoc.com).  The Type A firmware is a litlte more flexible than the Type B firmware in terms of what can be done after gaining access.  +The firmware of both units can be successfully hacked for use on other ISPs (see www.psidoc.com).  The Type A firmware is a litlte more flexible than the Type B firmware in terms of what can be done after gaining access. However, the Type B can be made to work with OpenWRT.
- +
-Until the patches come through to trunk, source mods for building OpenWRT for Type B are here: +
-https://sourceforge.net/p/hh2b4ever/code/ci/7c17843ab0596dccb2bd972ed9df6c4ccd9995a8/tree/ +
- +
-latest info:  binary at sourceforge for annexa works, although the leds are squiffy and the ADSL reports a fault but works. +
-see http://www.psidoc.com/showthread.php/495-OpenWRT-on-HHV2B for details +
- +
-News 25/3/2012: Thanks to blogic, some patches went into trunk today.... +
-[[toh:BT:homehub_v2b:trunkbuild|Building from trunk]] +
===== Supported Versions ===== ===== Supported Versions =====
^ Version/Model ^ Launch Date ^ S/N ^ OpenWrt Version Supported ^ Model Specific Notes ^ ^ Version/Model ^ Launch Date ^ S/N ^ OpenWrt Version Supported ^ Model Specific Notes ^
| Type A  |  | - |  ?  | - | | Type A  |  | - |  ?  | - |
-| Type B  |  | - |  ? | - |+| Type B  |  | - |  Barrier Breaker | - |
 +Attitude Adjustment contains a profile for the Type B, but support is incomplete. Unofficial patches do however exist to build a working image. A community build using these patches is also available, of trunk version 34686 (ie a snapshot shortly before the Attitude Adjustment release). See below for details.
 +Barrier Breaker contains full support for router/modem functionality on the Type B. Telephony (DECT and FXO/FXS) is not supported.
Line 32: Line 25:
===== Installation ===== ===== Installation =====
-->[[doc:howto:generic.flashing]]+These instructions assume you have already unblocked your Home Hub 2B, have updated uboot and have access to the uboot console. If you have not yet done this, see next section. 
 + 
 +The main main flash memory on the Home Hub 2B is nand, not nor, As a result, a squashfs/ubifs overlay is used instead of the standard squashfs/jffs2 overlay image used on most other routers, Similarly, a ubifs image is used instead of a jffs2 image. Also, there are two separate files to flashed, on for the kernel, the other for the (ubinized) root filesytem. 
 + 
 +You will need the following files: 
 + 
 +openwrt-lantiq-xway-BTHOMEHUBV2B-uImage 
 +(kernel image to install) 
 + 
 +openwrt-lantiq-xway-BTHOMEHUBV2B-uImage-initramfs 
 +(initramfs image, used only during the installation process) 
 + 
 +plus one of the following root filesystem images:  
 + 
 +openwrt-lantiq-xway-BTHOMEHUBV2B-squashfs-ubinized.bin 
 +(squashfs/ubifs overlay) 
 + 
 +openwrt-lantiq-xway-BTHOMEHUBV2B-ubifs-ubinized.bin 
 +(ubifs) 
 + 
 +The following instructions assume you are using the overlay image. Simply replace openwrt-lantiq-xway-BTHOMEHUBV2B-squashfs-ubinized.bin with openwrt-lantiq-xway-BTHOMEHUBV2B-ubifs-ubinized.bin if you prefer to use the pure ubifs image. 
 + 
 +Copy kernel images to your tftpboot folder: 
 + 
 +    cp openwrt-lantiq-xway-BTHOMEHUBV2B-uImage-initramfs /var/lib/tftpboot/ 
 +    cp openwrt-lantiq-xway-BTHOMEHUBV2B-uImage /var/lib/tftpboot/ 
 + 
 +From the uboot prompt on the Home Hub: 
 + 
 +    tftpboot 81000000 openwrt-lantiq-xway-BTHOMEHUBV2B-uImage 
 +    nand erase 0x004000 0x1ffC000 
 +    nand write 81000000 0x004000 0x160000 
 + 
 +DO NOT BOOT THIS IMAGE YET! Instead, load the ramdisk image and boot that: 
 + 
 +    tftpboot 81000000 openwrt-lantiq-xway-BTHOMEHUBV2B-uImage-initramfs 
 +    bootm 81000000 
 + 
 +VERY IMPORTANT! The above lines are only for the very first time that you install a ubi-enabled image. On subsequent occasions you should not erase the whole nand, only the kernel partition, otherwise wear leveling data for the ubi partition will be lost. So for subsequent installs the above five lines become: 
 + 
 +    tftpboot 81000000 openwrt-lantiq-xway-BTHOMEHUBV2B-uImage 
 +    nand erase 0x004000 0x160000 
 +    nand write 81000000 0x004000 0x160000 
 + 
 +    tftpboot 81000000 openwrt-lantiq-xway-BTHOMEHUBV2B-uImage-initramfs 
 +    bootm 81000000 
 + 
 +Now log in to a console on the Home Hub, make sure that the dropbearkey process has finished running and enable ssh by setting a root password. 
 + 
 +From the PC, copy the ubinized root filesystem image to the Home Hub: 
 + 
 +    scp openwrt-lantiq-xway-BTHOMEHUBV2B-squashfs-ubinized.bin root@192.168.1.1:/tmp 
 + 
 +On the Home Hub, format the ubi partition using the ubi image just copied: 
 + 
 +    ubidetach -p /dev/mtd7 
 +    ubiformat /dev/mtd7 -f /tmp/openwrt-lantiq-xway-BTHOMEHUBV2B-squashfs-ubinized.bin 
 + 
 +    reboot 
 + 
 +At this point cross your fingers and hope that everything works!!! 
 + 
 +===== Support and Links ===== 
 + 
 +Following the sad closure of http://psidoc.com, the best source of support is probably http://openwrt.ebilan.co.uk. 
 + 
 +Instructions on how to obtain access to the bootloader can be found here: 
 +http://openwrt.ebilan.co.uk/viewtopic.php?f=11&t=6 
 + 
 +Unofficial patches and a community build based on them can be found here: 
 +http://openwrt.ebilan.co.uk/viewtopic.php?f=4&t=3 
 + 
 +For reference, the initial work done to get OpenWRT running on the Home Hub 2B is available here: 
 + 
 +http://sourceforge.net/projects/hh2b4ever/ 
 + 
 +https://sourceforge.net/p/hh2b4ever/code/ci/7c17843ab0596dccb2bd972ed9df6c4ccd9995a8/tree/ 
 + 
 + 
===== Firmware ===== ===== Firmware =====
Line 77: Line 149:
| **Vendor:**          | [[wp>Lantiq]]  | | **Vendor:**          | [[wp>Lantiq]]  |
| **[[doc:techref:Bootloader]]:**    | [[doc:techref:bootloader:uboot|U-Boot]] | | **[[doc:techref:Bootloader]]:**    | [[doc:techref:bootloader:uboot|U-Boot]] |
-| **[[doc:hardware:soc|System-On-Chip]]:**  |[[http://www.lantiq.com/products/broadband-customer-premises-equipment/adsl/xwaytm-danube/xwaytm-danube-s/|Lantiq Danube-S PSB 50712]] @ 333MHz +| **[[doc:hardware:soc|System-On-Chip]]:**  |[[http://pdf.datasheetarchive.com/indexerfiles/Datasheets-UD3/DSAUD0055683.pdf|Lantiq Danube PSB-S 50712 (MIPS 24Kec)]]| 
-| **[[doc:hardware:cpu|CPU]]/Speed:**        | MIPS34Kc@333 MHz |+| **[[doc:hardware:cpu|CPU]]/Speed:**        | 333 MHz Dual Core|
|**NOR Flash:** |[[http://www.spansion.com/Support/Datasheets/S29AL004D_00.pdf|Spansion S29AL004D]]  4MiB | |**NOR Flash:** |[[http://www.spansion.com/Support/Datasheets/S29AL004D_00.pdf|Spansion S29AL004D]]  4MiB |
|**NAND Flash:** |[[http://www.kontest.ru/datasheet/samsung/k9f5608u0d.pdf|Samsung K9F5608U0D-JIB0]] 32MiB | |**NAND Flash:** |[[http://www.kontest.ru/datasheet/samsung/k9f5608u0d.pdf|Samsung K9F5608U0D-JIB0]] 32MiB |
Line 107: Line 179:
==== GPIOs ==== ==== GPIOs ====
-The CPU has 2 x 16 possible GPIO\\ +The CPU has 2 x 16 possible GPIO pins.\\ 
-The board provides a further 24? GPOs (for leds) controlled by stp\\ +For each pin there are control bits:\\ 
-for each pin there are control bits  +DIR: direction (0=input, 1=output)\\ 
-dir = direction +IN/OUT: value read from/written to pin\\ 
-out = value? +ALTSEL0/ALTSEL1: function multiplexed to the pin (see pinctrl driver)\\ 
-altsel0/altsel1 +OD: 0=open drain, 1='normal mode' push-pull\\ 
-od - 0=open drain, 1='normal mode' puch pull +PUDSEL: pullup/down select (1=up)\\ 
-pudsel = pullup/down select 1=up +PUDEN: pullup/down enable (1=enabled)\\
-puden = pull up/down enable+
uboot initial values\\ uboot initial values\\
Line 123: Line 194:
|GPIO-01|0 in |1 |1 |0 |1 |0 |0 | FXO Interrupt| |GPIO-01|0 in |1 |1 |0 |1 |0 |0 | FXO Interrupt|
|GPIO-02|0 in |1 |0 |0 |1 |0 |0 | Reset button| |GPIO-02|0 in |1 |0 |0 |1 |0 |0 | Reset button|
-|GPIO-03|1 out|1 |1 |0 |1 |0 |0 | CLK-OUT2 - (25mhz for amd9669i? - danube_clock.c in u-boot)|+|GPIO-03|1 out |1 |0 |0 |1 |0 |0 | CLK-OUT2 - (25mhz for amd9669i? - danube_clock.c in u-boot)|
|GPIO-04|1 out|1 |1 |0 |1 |0 |0 | - stp-st (maybe also likely boot clock select 1 = 36mhz)| |GPIO-04|1 out|1 |1 |0 |1 |0 |0 | - stp-st (maybe also likely boot clock select 1 = 36mhz)|
|GPIO-05|1 out|1 |1 |0 |1 |0 |0 | - stp-d| |GPIO-05|1 out|1 |1 |0 |1 |0 |0 | - stp-d|
Line 136: Line 207:
|GPIO-12|0 in |1 |1 |0 |1 |0 |0 || |GPIO-12|0 in |1 |1 |0 |1 |0 |0 ||
|GPIO-13|1 out|1 |1 |0 |1 |0 |0 |- USB Power| |GPIO-13|1 out|1 |1 |0 |1 |0 |0 |- USB Power|
-|GPIO-14|0 in |1 |0 |0 |1 |1 |1 | find handset button - pulled up+|GPIO-14|0 in |1 |0 |0 |1 |1 |1 |-| 
-|GPIO-15|0 in |1 |0 |0 |0 |0 |0 |-| +|GPIO-15|0 in |1 |0 |0 |0 |0 |0 |- find handset button|
|name|dir|out|altsel0|altsel1|od|pudsel|puden|usage| |name|dir|out|altsel0|altsel1|od|pudsel|puden|usage|
|-      |BE  |D7|87|00|FC|50|50|-| |-      |BE  |D7|87|00|FC|50|50|-|
Line 188: Line 259:
|INIT_VAL_P1_PUDEN      |0850| |INIT_VAL_P1_PUDEN      |0850|
 +The board provides a further 24? GPOs (for leds) controlled by stp.\\
==== Buttons ==== ==== Buttons ====
Line 229: Line 301:
The calibration data is stored in the first 0x4000 bytes of the nand\\ The calibration data is stored in the first 0x4000 bytes of the nand\\
-the first 0x60 of these contain PCI register fixups, organised as Reg16:Value32.  These need to be written to the PCI register space BEFORE the PCI device is probed...  This leads to the issue that the PCI device is probed before the nand is active, so before we can get to the data, so a scheme of hardcoding these register fixups and calling the writing routine as a DECLARE_PCI_FIXUP_EARLY routine works.  The actual eeprom data can be read later as part of the ath9k initialisation by utilising the hook ltqpci_plat_dev_init().\\ +the first 0x60 of these contain PCI register fixups, organised as Reg16:Value32.  These need to be written to the PCI register space BEFORE the PCI device is probed...  Support for this is now in trunk (Barrier Breaker).
- +
-The eeprom data needs to be byte-swapped, then the data which is meant to be words byte swapped again.  We can't currently tell Ath9k to handle this without patching ath9k, but once done, it works.\\+
-unfortunately, wireless (PCI) and NAND (EBU) interact.  for the moment, PCI gets inhibited while the nand chip is selected; I felt it better to have some wireless degradation rather than file system corruption.\\+unfortunately, wireless (PCI) and NAND (EBU) interact.  for the moment, PCI gets inhibited while the nand chip is selected; I felt it better to have some wireless degradation rather than file system corruption.

Back to top

toh/bt/homehub_v2b.1372754725.txt.bz2 · Last modified: 2013/07/02 10:45 by lorema