Temat: Wymiana RAM w TD-W8970 v1.2
Zachciało mi się rozbudować pamięć tytułowego sprzętu, głównie dla zabawy i sprawdzenia, czy da się przelutować pamięć BGA z kości SO-DIMM bez sit, kulek czy pasty. Okazuje się, że się da i sprzęt działa, ale wykrywa tylko połowę ze 128MiB.
Pomyślałem sobie: bootloader, więc podszperałem trochę i znalazłem ten link. Ściągnąłem, zmieniłem w konfigu RAM na 128 oraz procesor i pamięć na 600 i 300MHz, skompilowałem i dupa:
ROM VER: 1.1.4
CFG 05
ROM VER: 1.1.4
CFG 05
DDR autotuning Rev 0.3d
DDR size from 0xa0000000 - 0xa3ffffff
DDR check ok... start booting...
U-Boot 2010.06-LANTIQ-v-2.0.40 (Apr 07 2017 - 18:30:26)
CLOCK CPU 600M RAM 300M
DRAM: 128 MiB
Using default environment
In: serial
Out: serial
Err: serial
Net: Internal phy(GE) firmware version: 0x841d
vr9 Switch8192 KiB W25Q64 at 0:3 is now current device
Type "run flash_nfs" to mount root filesystem over NFS
Hit any key to stop autoboot: 0
8192 KiB W25Q64 at 0:3 is now current device
8192 KiB W25Q64 at 0:3 is now current device
Uncompressing ...
Starting kernel ...
[ 0.000000] Linux version 3.18.29 (cezary@eko.one.pl) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 unknown) ) #3 Fri Apr 15 21:37:33 CEST 2016
[ 0.000000] SoC: VR9 rev 1.2
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019556 (MIPS 34Kc)
[ 0.000000] MIPS: machine is TDW8970 - TP-LINK TD-W8970
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 04000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x00000000-0x03ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000-0x03ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x00000000-0x03ffffff]
[ 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] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
[ 0.000000] Kernel command line: console=ttyLTQ0,115200 init=/etc/preinit
[ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Writing ErrCtl register=00030400
[ 0.000000] Readback ErrCtl register=00030400
[ 0.000000] Memory: 59812K/65536K available (3454K kernel code, 152K rwdata, 1028K rodata, 208K init, 206K bss, 5724K reserved)
[ 0.000000] NR_IRQS:256
[ 0.000000] CPU Clock: 600MHz
[ 0.000000] Calibrating delay loop... 397.82 BogoMIPS (lpj=795648)
[ 0.032000] pid_max: default: 32768 minimum: 301
[ 0.036000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.040000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.044000] pinctrl core: initialized pinctrl subsystem
[ 0.048000] NET: Registered protocol family 16
[ 0.052000] pinctrl-xway 1e100b10.pinmux: Init done
[ 0.056000] dma-xway 1e104100.dma: Init done - hw rev: 7, ports: 7, channels: 28
[ 0.160000] dcdc-xrx200 1f106a00.dcdc: Core Voltage : 1016 mV
[ 0.272000] ath9k,eeprom ath9k_eep: failed to load eeprom address
[ 0.284000] usbcore: registered new interface driver usbfs
[ 0.288000] usbcore: registered new interface driver hub
[ 0.292000] usbcore: registered new device driver usb
[ 0.296000] PCI host bridge to bus 0000:00
[ 0.300000] pci_bus 0000:00: root bus resource [mem 0x1c000000-0x1cffffff]
[ 0.304000] pci_bus 0000:00: root bus resource [io 0x1d800000-0x1d8fffff]
[ 0.308000] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 0.312000] ifx_pcie_rc_class_early_fixup: fixed pcie host bridge to pci-pci bridge
[ 0.324000] pci 0000:00:00.0: BAR 8: assigned [mem 0x1c000000-0x1c0fffff]
[ 0.328000] pci 0000:00:00.0: BAR 9: assigned [mem 0x1c100000-0x1c1fffff pref]
[ 0.332000] pci 0000:01:00.0: BAR 0: assigned [mem 0x1c000000-0x1c01ffff 64bit]
[ 0.336000] pci 0000:01:00.0: BAR 6: assigned [mem 0x1c100000-0x1c10ffff pref]
[ 0.340000] pci 0000:00:00.0: PCI bridge to [bus 01]
[ 0.344000] pci 0000:00:00.0: bridge window [mem 0x1c000000-0x1c0fffff]
[ 0.348000] pci 0000:00:00.0: bridge window [mem 0x1c100000-0x1c1fffff pref]
[ 0.352000] ifx_pcie_bios_map_irq port 0 dev 0000:00:00.0 slot 0 pin 1
[ 0.356000] ifx_pcie_bios_map_irq dev 0000:00:00.0 irq 144 assigned
[ 0.360000] ifx_pcie_bios_map_irq port 0 dev 0000:01:00.0 slot 0 pin 1
[ 0.364000] ifx_pcie_bios_map_irq dev 0000:01:00.0 irq 144 assigned
[ 0.368000] Switched to clocksource MIPS
[ 0.372000] NET: Registered protocol family 2
[ 0.376000] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.384000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.388000] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.396000] TCP: reno registered
[ 0.400000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.404000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.412000] NET: Registered protocol family 1
[ 0.416000] gptu: totally 6 16-bit timers/counters
[ 0.420000] gptu: misc_register on minor 63
[ 0.424000] gptu: succeeded to request irq 126
[ 0.432000] gptu: succeeded to request irq 127
[ 0.436000] gptu: succeeded to request irq 128
[ 0.440000] gptu: succeeded to request irq 129
[ 0.444000] gptu: succeeded to request irq 130
[ 0.448000] gptu: succeeded to request irq 131
[ 0.452000] phy-xrx200 gphy-xrx200: requesting lantiq/vr9_phy11g_a2x.bin
[ 0.460000] phy-xrx200 gphy-xrx200: booting GPHY0 firmware at 3940000
[ 0.468000] phy-xrx200 gphy-xrx200: booting GPHY1 firmware at 3940000
[ 0.576000] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.596000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.600000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.616000] msgmni has been set to 116
[ 0.620000] io scheduler noop registered
[ 0.624000] io scheduler deadline registered (default)
[ 0.628000] 1e100c00.serial: ttyLTQ0 at MMIO 0x1e100c00 (irq = 112, base_baud = 0) is a lantiq,asc
[ 0.640000] console [ttyLTQ0] enabled
[ 0.640000] console [ttyLTQ0] enabled
[ 0.648000] bootconsole [early0] disabled
[ 0.648000] bootconsole [early0] disabled
[ 0.660000] m25p80 spi32766.0: found s25fl064k, expected en25q64
[ 0.664000] m25p80 spi32766.0: s25fl064k (8192 Kbytes)
[ 0.668000] 4 ofpart partitions found on MTD device spi32766.0
[ 0.676000] Creating 4 MTD partitions on "spi32766.0":
[ 0.680000] 0x000000000000-0x000000020000 : "u-boot"
[ 0.684000] 0x000000020000-0x0000007c0000 : "firmware"
[ 0.692000] 0x0000001a6bf8-0x0000007c0000 : "rootfs"
[ 0.696000] mtd: device 2 (rootfs) set to be root filesystem
[ 0.704000] 1 squashfs-split partitions found on MTD device rootfs
[ 0.708000] 0x0000005c0000-0x0000007c0000 : "rootfs_data"
[ 1.464000] 0x0000007c0000-0x0000007d0000 : "config"
[ 1.468000] 0x0000007d0000-0x000000800000 : "boardconfig"
[ 1.576000] libphy: lantiq,xrx200-mdio: probed
[ 1.648000] eth0: attached PHY [Lantiq XWAY PEF7071] (phy_addr=0:00, irq=-1)
[ 1.716000] eth0: attached PHY [Lantiq XWAY PEF7071] (phy_addr=0:05, irq=-1)
[ 1.784000] eth0: attached PHY [Lantiq XWAY VR9 GPHY 11G v1.4] (phy_addr=0:11, irq=-1)
[ 1.852000] eth0: attached PHY [Lantiq XWAY VR9 GPHY 11G v1.4] (phy_addr=0:13, irq=-1)
[ 1.860000] wdt 1f8803f0.watchdog: Init done
[ 1.864000] TCP: cubic registered
[ 1.864000] NET: Registered protocol family 17
[ 1.868000] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[ 1.880000] Bridge firewalling registered
[ 1.884000] 8021q: 802.1Q VLAN Support v1.8
[ 1.956000] ath9k,eeprom ath9k_eep: using led pin 0.
[ 1.960000] ath9k,eeprom ath9k_eep: loaded ath9k eeprom
[ 1.968000] UBIFS error (pid 1): ubifs_mount: cannot open "ubi0:rootfs", error -19
[ 2.080000] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
[ 2.088000] Freeing unused kernel memory: 208K (8048c000 - 804c0000)
[ 15.272000] init: Console is alive
[ 15.272000] init: - watchdog -
[ 32.968000] random: nonblocking pool is initialized
[ 37.644000] SCSI subsystem initialized
[ 37.652000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 37.660000] ehci-platform: EHCI generic platform driver
[ 37.668000] dwc2 1e101000.ifxhcd: requested GPIO 489
[ 38.528000] dwc2 1e101000.ifxhcd: DWC OTG Controller
[ 38.528000] dwc2 1e101000.ifxhcd: new USB bus registered, assigned bus number 1
[ 38.536000] dwc2 1e101000.ifxhcd: irq 62, io mem 0x00000000
[ 38.544000] dwc2 1e101000.ifxhcd: Hardware does not support descriptor DMA mode -
[ 38.544000] dwc2 1e101000.ifxhcd: falling back to buffer DMA mode.
[ 38.556000] hub 1-0:1.0: USB hub found
[ 38.560000] hub 1-0:1.0: 1 port detected
[ 39.424000] dwc2 1e106000.ifxhcd: DWC OTG Controller
[ 39.424000] dwc2 1e106000.ifxhcd: new USB bus registered, assigned bus number 2
[ 39.432000] dwc2 1e106000.ifxhcd: irq 91, io mem 0x00000000
[ 39.440000] dwc2 1e106000.ifxhcd: Hardware does not support descriptor DMA mode -
[ 39.440000] dwc2 1e106000.ifxhcd: falling back to buffer DMA mode.
[ 39.452000] hub 2-0:1.0: USB hub found
[ 39.456000] hub 2-0:1.0: 1 port detected
[ 39.464000] usbcore: registered new interface driver usb-storage
[ 40.468000] init: - preinit -
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[ 44.144000] mount_root: loading kmods from internal overlay
[ 50.080000] jffs2: notice: (312) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[ 50.096000] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
[ 50.180000] block: extroot: not configured
[ 51.440000] jffs2: notice: (309) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[ 56.060000] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
[ 56.120000] block: extroot: not configured
[ 56.124000] mount_root: switching to jffs2 overlay
[ 56.168000] procd: - early -
[ 56.172000] procd: - watchdog -
[ 56.964000] procd: - ubus -
[ 57.972000] procd: - init -
Please press Enter to activate this console.
[ 65.980000] IFXOS, Version 1.5.14 (c) Copyright 2009, Lantiq Deutschland GmbH
[ 65.992000] NET: Registered protocol family 8
[ 65.996000] NET: Registered protocol family 20
[ 66.016000] gre: GRE over IPv4 demultiplexor driver
[ 66.020000] ip_gre: GRE over IPv4 tunneling driver
[ 66.032000] PPP generic driver version 2.4.2
[ 66.052000] MEI CPE Driver, Version 1.2.0
[ 66.056000] (c) Copyright 2009, Infineon Technologies AG
### MEI CPE - MEI CPE - MEI CPE - MEI CPE ###
Lantiq CPE API Driver version: DSL CPE API V4.11.4
[ 66.080000]
[ 66.080000] Predefined debug level: 2
[ 66.100000] u32 classifier
[ 66.104000] input device check on
[ 66.108000] Actions configured
[ 66.116000] Mirror/redirect action on
[ 66.180000] fuse init (API version 7.23)
[ 66.204000] usbcore: registered new interface driver cdc_acm
[ 66.208000] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 66.216000] usbcore: registered new interface driver cdc_wdm
[ 66.224000] Loading modules backported from Linux version v4.4-rc5-1913-gc8fdf68
[ 66.232000] Backport generated by backports.git backports-20151218-0-g2f58d9d
[ 66.256000] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 66.284000] Infineon Technologies DEU driver version 2.0.0
[ 66.288000] IFX DEU DES initialized (multiblock).
[ 66.300000] IFX DEU AES initialized (multiblock).
[ 66.312000] IFX DEU ARC4 initialized (multiblock).
[ 66.312000] IFX DEU SHA1 initialized.
[ 66.320000] IFX DEU MD5 initialized.
[ 66.320000] IFX DEU SHA1_HMAC initialized.
[ 66.328000] IFX DEU MD5_HMAC initialized.
[ 66.336000] nf_conntrack version 0.5.0 (937 buckets, 3748 max)
[ 66.376000] PPP MPPE Compression module registered
[ 66.380000] NET: Registered protocol family 24
[ 66.384000] PPTP driver version 0.8.5
[ 66.392000] usbcore: registered new interface driver usblp
[ 66.408000] usbcore: registered new interface driver usbserial
[ 66.412000] usbcore: registered new interface driver usbserial_generic
[ 66.416000] usbserial: USB Serial support registered for generic
[ 66.492000] xt_time: kernel timezone is -0000
[ 66.500000] usbcore: registered new interface driver cdc_ether
[ 66.508000] usbcore: registered new interface driver cdc_ncm
[ 66.724000] usbcore: registered new interface driver huawei_cdc_ncm
[ 66.976000] usbcore: registered new interface driver qmi_wwan
[ 66.984000] usbcore: registered new interface driver rndis_host
[ 66.992000] usbcore: registered new interface driver sierra
[ 66.996000] usbserial: USB Serial support registered for Sierra USB modem
[ 67.004000] usbcore: registered new interface driver sierra_net
[ 67.040000] usbcore: registered new interface driver cdc_mbim
[ 67.048000] usbcore: registered new interface driver option
[ 67.056000] usbserial: USB Serial support registered for GSM modem (1-port)
[ 67.064000] usbcore: registered new interface driver qcserial
[ 67.068000] usbserial: USB Serial support registered for Qualcomm USB modem
[ 67.088000] PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
[ 67.092000] PCI: Enabling device 0000:01:00.0 (0000 -> 0002)
[ 67.116000] ieee80211 phy0: Atheros AR9300 Rev:3 mem=0xbc000000, irq=144
ioctl ATM_SETESI: No such device
[ 81.968000] PTM 1.0.27 PTM (E1) firmware version 0.30
[ 81.968000] ifxmips_ptm: PTM init succeed
[ 82.404000] device eth0.1 entered promiscuous mode
[ 82.404000] device eth0 entered promiscuous mode
[ 103.016000] device wlan0 entered promiscuous mode
[ 103.016000] br-lan: port 2(wlan0) entered forwarding state
[ 103.024000] br-lan: port 2(wlan0) entered forwarding state
[ 103.128000] PCIe RC error intr 161
[ 103.128000] PCIe RC error intr 161
[ 103.252000] br-lan: port 2(wlan0) entered disabled state
[ 109.004000] br-lan: port 2(wlan0) entered forwarding state
[ 109.008000] br-lan: port 2(wlan0) entered forwarding state
[ 111.012000] br-lan: port 2(wlan0) entered forwarding state
BusyBox v1.23.2 (2016-03-29 22:00:35 CEST) built-in shell (ash)
_ _____ _____
| | / ____|_ _|
| | _ _| | | |
| | | | | | | | |
| |___| |_| | |____ _| |_
|______\__,_|\_____|_____|
----------------------------------------------------------------
| |
| OpenWrt Chaos Calmer 15.05.1 (r49172) |
| Build time: 2016-04-15 21:34 CEST |
| |
| Cezary Jackiewicz (obsy), http://eko.one.pl |
| |
----------------------------------------------------------------
| Machine: TP-LINK TD-W8970 |
| Uptime: 0d, 00:03:02 |
| Load: 1.53 1.10 0.45 |
| Flash: total: 2MB, free: 1.8MB, used: 11% |
| Memory: total: 58.6MB, free: 43.3MB, used: 26% |
| WAN: |
| LAN: 192.168.1.1 |
| radio0: mode: ap, ssid: OpenWrt, channel: 11, conn: 0 |
----------------------------------------------------------------
root@OpenWrt:/# free
total used free shared buffers
Mem: 60020 29436 30584 84 3716
-/+ buffers: 25720 34300
Swap: 0 0 0
root@OpenWrt:/#Niby U-boot pokazuje 128MiB, ale system tego nie widzi. Proszę o pomoc, co na to poradzić?
Użyłem pamięci Samsung K4T1G164QF-BCF7, takiej samej jak w ruterze BT HomeHub 5.0 Type A, który ma identyczny procesor.
Zastanawia mnie linijka DDR size from 0xa0000000 - 0xa3ffffff. Wynika z niej, że w systemie jest 64MiB ramu i to przed U-Bootem. Czyżby więc nic z tego?