数码之家

 找回密码
 立即注册
搜索
查看: 6589|回复: 21

趁放假将50包邮的百为BV300榨干,软件全定制

[复制链接]
发表于 2020-10-4 00:08:55 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
背景
某鱼上起初想买个便宜的千兆交换机,看到了有人50卖这个没授权的机器,据说是流控百兆线速机器,6个千兆口。
让卖家拍照,看是13年左右的马牌,DDR有4颗于是果断买了。

主板号搜索到原厂信息:


                               
登录/注册后可看大图



CBA81D网络应用主板
CBA81D嵌入式网络应用主板
概述
CBA81D嵌入式网络应用主板采用业界最快的ARM网络处理器MARVELL 88F6281,最高主频可达1.5GHz,配合板载的大容量DDR II内存,千兆网络接口,可实现极高的数据吞吐率和路由转发速率。此外,CBA81D支持大容量的NAND FLASH,无论你的软件有多庞大,都可以轻松移植上板,无须绞尽脑汁进行软件裁剪。
作为网络应用主板,CBA81D在网络方面的接口非常丰富灵活,它提供6个千兆网络接口,可以按照用户要求任意配置,形成2 WAN + 4 LAN,3 WAN + 3 LAN甚至6 WAN的网口配置。此外,为照顾日益活跃的无线应用,CBA81D可以通过MINI-PCIE接口挂接各种WIFI模块,支持IEEE 802.11b/g/n的无线接入。CBA81D的USB接口可以帮助你轻松实现3G路由,形成ADSL+ 宽带 + 3G的复合路由或者多路由备份。
CBA81D在大容量存储方面也有足够强大的组合。它提供2个SATA接口,可以挂接具有SATA接口的机械式或电子式硬盘;它具有SD接口,最大写入速率在6MB/s以上。如果还希望更简单一些,那么板载的NAND FLASH将为你提供1GB以上的非易失存储空间。
image.png

图1 CBA81D主板

图1 CBA81D主板

主板特征
  • 最快的ARM CPU。88F6281最高主频可达1.5G Hz,远超XSCALE网络处理器,堪称业界最快的ARM网络处理器。
  • 板载512M字节DDR II内存,固定贴装,不惧振动;400M时钟频率,800M数据频率;最大支持内存空间达2GB;
  • 板载NAND FLASH空间可达1GB以上,还可以定制更大的存储容量;
  • 启动设备多样。可通过Bootstrap设置,选择从串行ROM、SPI FLASH或者NAND FLASH启动。
  • 支持一次访问达128字节的内存突发模式;
  • 支持时分复用接口(SLIC/SLAC/DAA/CODEC);
  • PCIE V1.1兼容接口,X1速率通道,2.5Gbps;
  • 可以作为PCIE HOST,也可作为PCIE Target;
  • SATA II接口,3Gbps速率,向后兼容SATA 1.5;
  • SATA接口的扩展DMA模式(EDMA);
  • 6个双工千兆网络接口,自适应协商,支持MDI/MDIX;硬件支持千兆网络接口的校验和的检验和生成;连接速率为100M时可实现线速路由;可以灵活配置,支持从2 WAN + 4 LAN到6 WAN的所有配置;
  • USB 2.0接口,可以工作于HOST或者Peripheral模式。可以挂接3G数传模块,实现有线和无线的多径路由或者路由备份;
  • MINI-PCIE接口,方便挂接IEEE 802.11b/g/n模块,提供WIFI热点;
  • 硬件集成加密和安全加速引擎(CESA);具有专门的DMA通道用于向CESA送数据;支持DES、3DES、AES的加密和验证;SHA1、MD5的加密和验证;
  • 两线串行接口(TWSI),可以配置为HOST或者SLAVE;TWSI同时可以作为串行ROM初始化接口;
  • 通用非同步收发接口(UART),16550兼容;UART具有2线MODEM信号功能;
  • 50位通用输入/输出接口(GPIO);
  • SPI串行FLASH接口,速率可达50MHz,可以直接从外部SPI FLASH引导启动;
  • 实时时钟(RTC),具有年、月、日、时、分、秒记录;
  • 在主电源关闭情况下,可在备用电源支持下继续维持计时;
  • 具有中断控制器;
  • 具有2个通用32位计数器和1个32位看门狗计数器;
  • 内部结构经高性能优化,包括高性能的MBus-L总线,低延迟的CPU核心;
  • 主板接口和安装尺寸符合三思科技RK01、RK06型机箱要求,可以有多款符合客户要求的设备出品。

性能指标
  • 指令执行速率:1200MIPS(目前厂家尚未批量提供1.5GHz CPU,量产CPU主频1.2GHz);
  • 内存:DDR II内存,512M字节,400M时钟频率,800M数据频率;最大支持内存空间达2GB;
  • Flash:支持最大16M字节的SPI FLASH或512M字节的NAND FLASH;
  • 网口:三个双工千兆网络接口,自适应协商,支持MDI/MDIX;硬件支持千兆网络接口的校验和的检验和生成;连接速率为100M时可实现线速路由;
  • 外部存储接口:SATA,实测速率为66MB/s(Buffer-Cache读)和50MB/s(磁盘持续读);USB,实测传输速率13MB/s;
  • 串口:采用RJ-45接口的Console口;
  • 实时时钟:包括千年历,断电后时钟仍然保持运转;
  • 看门狗:最长21.4秒;
  • 工作温度: -10°C ~ 50°C
  • 存储温度: -20°C ~ 60°C
  • 湿度: 0~90% ,无凝结
  • 电压输入: 110/220V AC,50/60Hz
  • 功耗: < 10W

软件支持
Bootloader支持Uboot 1.1.4。
系统软件支持Linux 2.6.31.8,Big endian和Little endian。

可以定制的扩展接口
  • 利用USB连接3G模块,支持3G拨号和路由;
  • 可通过PCIE连接WIFI模块,支持IEEE 802.11b/g;
  • 音频IIS/S/PDIF接口;
  • 采样频率44.1k/48k/96k Hz,采样深度16/20/24位;
  • 设备集成SD/SDIO/MMC接口,工作于HOST模式,速率高达50M Hz;
  • 可以接入1bit/4bit的SD/SDIO/MMC卡;
  • 硬件支持SD/SDIO/MMC接口上的CRC校验和生成;
  • 速率高达80M bps的MPEG/TS接口


  •                                
    登录/注册后可看大图

    玩起来还是比较坑,首先是根本没有公开硬件信息,这种主板都是定制的。搜索到 企智通 和 任ZI行 有同款主板,只是网络芯片配置不同。
我手里的硬件是88E1116R,88E6171R两张网卡,后者是6口交换机。
所以6月买到现在吃灰中,趁放假一步到胃全给搞定了!
整机内存512M,有一个232的console口可以调试。内部布局如下图:
(原生没wifi卡、sd卡和天线,有天线的洞洞和卡座,我的网口和网卡都焊接了的;隔壁盗的,已经合盖不想拆开拍)
image.png

                               
登录/注册后可看大图

非常宽敞,旁边还有空的螺柱预留,还可以挂不少东西。看了下电源波形都还好,电容性能至少退化不多。


定制的内容
硬件上补全没有贴的RTC锂电池充电电路,我焊了个L4148二级管和42K的0603电阻上去,实测40分钟从0.8v充到2.5v,断电时时间可以保留了。
重头戏还是软件,不然我不可能50包邮买到啦:
RESET键定义,LED灯(板载cpu旁边1个,背板上3个)引脚、USB电源控制、风扇控制、硬盘电源控制、交换机定义、sd卡读写保护和卡检测、cpu变频。

使用GPIOD系列工具一个个测,挂示波器上看,把按键和led、usb、风扇、硬盘电源、SD卡都找到线索了。
1. 硬盘12V和5V是共用一个GPIO控制的,风扇是同样型号的控制芯片。通过丝印反查到型号了:
image.png

2. 风扇轴老化了,给电得手碰下才可以动,无刷的没法直接通过开关PWM调速了。
3. USB电源是输入电源通过LM2576降压然后再到专用的USB保护芯片的,保护芯片型号如下:
image.png
可以看出用料还是比较足的,于是让我更有信息一鼓作气搞下去了。
4.SD卡检测脚和GPIO检测方法一样的,注意CD脚不是在边上的。
5.交换机芯片和独立网卡芯片是绑定在一个MDIO上的,链接到了主控的两个RGMII口。交换机芯片的地址没法直接看,手册一看CSDN上还要钱就放弃了,盲猜0x01一次就好。不是网上说的0x16/0x10/0x17这种。
6.CPU变频主要是为了节能,编译内核时选好驱动就行啦。默频400M,只有高峰期才会到1.2Ghz,这样会节能些,减少发热。发热过大网速会略微下降,应该是芯片物理特性决定的吧。
7.编译最新的openwrt,内核5.4。128M的flash布局如下:
0x000000000000-0x000000100000 : "u-boot"
0x000000100000-0x000000b00000 : "kernel"
0x000000b00000-0x000005b00000 : "rootfs"




                               
登录/注册后可看大图

信息收集差不多了,编写DTS,把上面所有设备都标准化,拒绝原始的gpio!编译系统从uboot刷进去,启动信息如下:

** BOARD ID: CBA81C LE


U-Boot 1.1.4 (Oct 16 2012 - 15:19:12) Marvell patched

U-Boot code: 00600000 -> 0067FFF0  BSS: -> 006CFD80

Soc: 88F6281 A1CPU running @ 1200Mhz L2 running @ 400Mhz

SysClock = 400Mhz , TClock = 200Mhz

DRAM (DDR2) CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6

DRAM CS[0] base 0x00000000   size 256MB

DRAM CS[1] base 0x10000000   size 256MB

DRAM Total size 512MB  16bit width

Addresses 8M - 0M are saved for the U-Boot usage.

Mem malloc Initialization (8M - 7M): Done

NAND:128 MB

Flash:  0 kB

CPU : Marvell Feroceon (Rev 1)

Streaming disabled

Write allocate disabled

Module 0 is RGMII

Module 1 is TDM

USB 0: host mode

PEX 0: interface detected no Link.

Net:   egiga0, egiga1 [PRIME]

Hit any key to stop autoboot:  0

NAND read: device 0 offset 0x100000, size 0xa00000

Reading data from 0xaff800 -- 100% complete.

10485760 bytes read: OK

## Booting image at 05000000 ...

Image Name:   ARM OpenWrt Linux-5.4.67

Created:      2020-09-24  20:38:37 UTC

Image Type:   ARM Linux Kernel Image (uncompressed)

Data Size:    2880270 Bytes =  2.7 MB

Load Address: 00008000

Entry Point:  00008000

Verifying Checksum ... OK

OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0

[    0.000000] Linux version 5.4.67 (root@chilau-debian) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r13489-5aa2ddd0d6)) #0 Thu Sep 24 20:38:37 2020

[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=0005397f

[    0.000000] CPU: VIVT data cache, VIVT instruction cache

[    0.000000] OF: fdt: Machine model: CBA81D for Marvell 88F6281

[    0.000000] Memory policy: Data cache writeback

[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129920

[    0.000000] Kernel command line: console=ttyS0,115200n8 earlyprintk mtdparts=orion_nand:0x100000@0x0(u-boot),0xa00000@0x100000(kernel),0x5000000@0xb00000(rootfs) root=/dev/mtdblock3

[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)

[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)

[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off

[    0.000000] Memory: 509408K/524288K available (5523K kernel code, 210K rwdata, 1988K rodata, 1024K init, 338K bss, 14880K reserved, 0K cma-reserved)

[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16

[    0.000000] random: get_random_bytes called from start_kernel+0x2d0/0x4f8 with crng_init=0

[    0.000000] clocksource: orion_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9556302233 ns

[    0.000008] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737418237ns

[    0.000038] Switching to timer-based delay loop, resolution 5ns

[    0.000113] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=2000000)

[    0.000132] pid_max: default: 32768 minimum: 301

[    0.000355] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)

[    0.000377] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)

[    0.001319] CPU: Testing write buffer coherency: ok

[    0.002186] Setting up static identity map for 0x100000 - 0x10003c

[    0.002423] mvebu-soc-id: MVEBU SoC ID=0x6281, Rev=0x3

[    0.006957] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns

[    0.006981] futex hash table entries: 256 (order: -1, 3072 bytes, linear)

[    0.007120] pinctrl core: initialized pinctrl subsystem

[    0.008194] NET: Registered protocol family 16

[    0.008748] DMA: preallocated 256 KiB pool for atomic coherent allocations

[    0.009889] cpuidle: using governor ladder

[    0.010332] Feroceon L2: Enabling L2

[    0.010372] Feroceon L2: Cache support initialised.

[    0.015254] No ATAGs?

[    0.044396] SCSI subsystem initialized

[    0.045439] usbcore: registered new interface driver usbfs

[    0.045508] usbcore: registered new interface driver hub

[    0.045568] usbcore: registered new device driver usb

[    0.045696] pps_core: LinuxPPS API ver. 1 registered

[    0.045704] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>

[    0.047497] workqueue: max_active 576 requested for napi_workq is out of range, clamping between 1 and 512

[    0.049903] clocksource: Switched to clocksource orion_clocksource

[    0.050217] FS-Cache: Loaded

[    0.050303] CacheFiles: Loaded

[    0.050819] thermal_sys: Registered thermal governor 'step_wise'

[    0.051052] NET: Registered protocol family 2

[    0.051601] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)

[    0.051636] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)

[    0.051689] TCP bind hash table entries: 4096 (order: 2, 16384 bytes, linear)

[    0.051739] TCP: Hash tables configured (established 4096 bind 4096)

[    0.051819] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)

[    0.051843] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)

[    0.052015] NET: Registered protocol family 1

[    0.052045] PCI: CLS 0 bytes, default 32

[    0.055306] workingset: timestamp_bits=14 max_order=17 bucket_order=3

[    0.062543] squashfs: version 4.0 (2009/01/31) Phillip Lougher

[    0.062555] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.

[    0.074739] kirkwood-pinctrl f1010000.pin-controller: registered pinctrl driver

[    0.075740] mvebu-gpio f1010140.gpio: IRQ index 3 not found

[    0.076164] mvebu-pcie mbus@f1000000:pcie@82000000: PCI host bridge to bus 0000:00

[    0.076181] pci_bus 0000:00: root bus resource [bus 00-ff]

[    0.076194] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xefffffff]

[    0.076205] pci_bus 0000:00: root bus resource [io  0x1000-0xeffff]

[    0.076296] pci 0000:00:01.0: [11ab:6281] type 01 class 0x060400

[    0.076326] pci 0000:00:01.0: reg 0x38: [mem 0x00000000-0x000007ff pref]

[    0.077528] PCI: bus0: Fast back to back transfers disabled

[    0.077544] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring

[    0.078673] PCI: bus1: Fast back to back transfers enabled

[    0.078689] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01

[    0.078875] pci 0000:00:01.0: BAR 6: assigned [mem 0xe0000000-0xe00007ff pref]

[    0.078889] pci 0000:00:01.0: PCI bridge to [bus 01]

[    0.079378] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled

[    0.080069] printk: console [ttyS0] disabled

[    0.080147] f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 25, base_baud = 12500000) is a 16550A

[    0.570806] printk: console [ttyS0] enabled

[    0.579244] loop: module loaded

[    0.582933] nand: device found, Manufacturer ID: 0xec, Chip ID: 0xf1

[    0.589315] nand: Samsung NAND 128MiB 3,3V 8-bit

[    0.593976] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64

[    0.601598] Scanning device for bad blocks

[    0.714057] 3 cmdlinepart partitions found on MTD device orion_nand

[    0.720365] Creating 3 MTD partitions on "orion_nand":

[    0.725527] 0x000000000000-0x000000100000 : "u-boot"

[    0.731186] 0x000000100000-0x000000b00000 : "kernel"

[    0.736829] 0x000000b00000-0x000005b00000 : "rootfs"

[    0.742776] mtd: device 2 (rootfs) set to be root filesystem

[    0.748569] 1 squashfs-split partitions found on MTD device rootfs

[    0.754808] 0x000001b80000-0x000005b00000 : "rootfs_data"

[    0.762020] libphy: Fixed MDIO Bus: probed

[    0.766599] tun: Universal TUN/TAP device driver, 1.6

[    0.780254] dsa-loop fixed-0:1f: DSA mockup driver: 0x1f

[    0.785979] libphy: orion_mdio_bus: probed

[    0.791374] mv88e6085 f1072004.mdio-bus-mii:01: switch 0x1710 detected: Marvell 88E6171, revision 2

[    0.824529] random: fast init done

[    1.009441] libphy: mv88e6xxx SMI: probed

[    1.021214] mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4

[    1.029326] mv643xx_eth_port mv643xx_eth_port.0 eth0: port 0 with MAC address 00:11:22:33:44:54

[    1.038596] mv643xx_eth_port mv643xx_eth_port.1 eth1: port 0 with MAC address 00:11:22:33:44:60

[    1.047777] sky2: driver version 1.30

[    1.051532] PPP generic driver version 2.4.2

[    1.055910] PPP Deflate Compression module registered

[    1.061009] PPP MPPE Compression module registered

[    1.065820] NET: Registered protocol family 24

[    1.070311] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

[    1.076867] ehci-orion: EHCI orion driver

[    1.081059] orion-ehci f1050000.ehci: EHCI Host Controller

[    1.086589] orion-ehci f1050000.ehci: new USB bus registered, assigned bus number 1

[    1.094420] orion-ehci f1050000.ehci: irq 29, io mem 0xf1050000

[    1.129925] orion-ehci f1050000.ehci: USB 2.0 started, EHCI 1.00

[    1.136551] hub 1-0:1.0: USB hub found

[    1.140564] hub 1-0:1.0: 1 port detected

[    1.144884] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver

[    1.151135] ohci-platform: OHCI generic platform driver

[    1.157162] usbcore: registered new interface driver uas

[    1.162619] usbcore: registered new interface driver usb-storage

[    1.168729] mousedev: PS/2 mouse device common for all mice

[    1.174969] rtc-mv f1010300.rtc: registered as rtc0

[    1.179981] i2c /dev entries driver

[    1.183674] pps_ldisc: PPS line discipline registered

[    1.189388] watchdog: f1020300.watchdog-timer: driver supplied timeout (4294967295) out of range

[    1.198406] orion_wdt: Initial timeout 10 sec

[    1.203766] mvsdio f1090000.mvsdio: Got CD GPIO

[    1.208346] mvsdio f1090000.mvsdio: Got WP GPIO

[    1.242017] marvell-cesa f1030000.crypto: CESA device successfully registered

[    1.249502] GACT probability on

[    1.252702] Mirror/redirect action on

[    1.256392] Simple TC action Loaded

[    1.260389] netem: version 1.3

[    1.264036] IPVS: Registered protocols ()

[    1.268948] IPVS: Connection hash table configured (size=4096, memory=32Kbytes)

[    1.276490] IPVS: ipvs loaded.

[    1.279754] ipip: IPv4 and MPLS over IPv4 tunneling driver

[    1.286247] NET: Registered protocol family 10

[    1.292845] Segment Routing with IPv6

[    1.298565] bpfilter: Loaded bpfilter_umh pid 630

[    1.303656] NET: Registered protocol family 17

[    1.308229] Bridge firewalling registered

[    1.312430] 8021q: 802.1Q VLAN Support v1.8

[    1.319763] regulator@2 GPIO handle specifies active low - ignored

[    1.326242] dsa-loop fixed-0:1f: DSA mockup driver: 0x1f

[    1.333830] libphy: dsa slave smi: probed

[    1.338006] dsa-loop fixed-0:1f lan1 (uninitialized): PHY [dsa-0.0:00] driver [Generic PHY]

[    1.347159] dsa-loop fixed-0:1f lan2 (uninitialized): PHY [dsa-0.0:01] driver [Generic PHY]

[    1.356267] dsa-loop fixed-0:1f lan3 (uninitialized): PHY [dsa-0.0:02] driver [Generic PHY]

[    1.365360] dsa-loop fixed-0:1f lan4 (uninitialized): PHY [dsa-0.0:03] driver [Generic PHY]

[    1.374386] DSA: tree 0 setup

[    1.379361] mv88e6085 f1072004.mdio-bus-mii:01: switch 0x1710 detected: Marvell 88E6171, revision 2

[    1.392068] mmc0: new high speed SD card at address 21d1

[    1.590912] libphy: mv88e6xxx SMI: probed

[    1.604911] mv88e6085: probe of f1072004.mdio-bus-mii:01 failed with error -16

[    1.613668] mvsw61xx 1.mvsw61xx: Found MV88E6171 at f1072004.mdio-bus-mii:01

[    1.620811] mvsw61xx 1.mvsw61xx: Using indirect addressing

[    1.657639] rtc-mv f1010300.rtc: setting system clock to 2020-10-03T15:38:23 UTC (1601739503)

[    1.672565] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.

[    1.682609] Freeing unused kernel memory: 1024K

[    1.687191] Run /sbin/init as init process

[    2.121101] init: Console is alive

[    2.124674] init: - watchdog -

[    4.110698] kmodloader: loading kernel modules from /etc/modules-boot.d/*

[    4.274064] raid6: using algorithm int32x8 gen() 0 MB/s

[    4.279313] raid6: .... xor() 0 MB/s, rmw enabled

[    4.284074] raid6: using intx1 recovery algorithm

[    4.297552] xor: measuring software checksum speed

[    4.399911]    arm4regs  :   742.400 MB/sec

[    4.499913]    8regs     :   630.400 MB/sec

[    4.599909]    32regs    :   824.000 MB/sec

[    4.604108] xor: using function: 32regs (824.000 MB/sec)

[    4.810200] Btrfs loaded, crc32c=crc32c-generic

[    4.827882] ehci-fsl: Freescale EHCI Host controller driver

[    4.839069] ehci-platform: EHCI generic platform driver

[    4.863395] sata_mv f1080000.sata: slots 32 ports 2

[    4.875548] scsi host0: sata_mv

[    4.879465] scsi host1: sata_mv

[    4.882840] ata1: SATA max UDMA/133 irq 32

[    4.886966] ata2: SATA max UDMA/133 irq 32

[    5.221607] ata1: SATA link down (SStatus 0 SControl F300)

[    5.551575] ata2: SATA link down (SStatus 0 SControl F300)

[    5.574423] mmcblk0: mmc0:21d1 APPSD 1.88 GiB

[    5.580749]  mmcblk0: p1

[    5.597686] kmodloader: done loading kernel modules from /etc/modules-boot.d/*

[    5.607777] init: - preinit -

[    6.372446] random: jshn: uninitialized urandom read (4 bytes read)

[    6.414213] random: jshn: uninitialized urandom read (4 bytes read)

[    6.521113] random: jshn: uninitialized urandom read (4 bytes read)

[    7.128176] mv643xx_eth_port mv643xx_eth_port.0 eth0: link up, 1000 Mb/s, full duplex, flow control disabled

[    7.139422] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

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

[    9.316838] mount_root: loading kmods from internal overlay

[    9.361222] kmodloader: loading kernel modules from //etc/modules-boot.d/*

[    9.372211] kmodloader: done loading kernel modules from //etc/modules-boot.d/*

[    9.416502] __nand_correct_data: uncorrectable ECC error

[    9.421878] __nand_correct_data: uncorrectable ECC error

[    9.427219] blk_update_request: I/O error, dev mtdblock0, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 0

[    9.438119] __nand_correct_data: uncorrectable ECC error

[    9.443478] __nand_correct_data: uncorrectable ECC error

[    9.448816] blk_update_request: I/O error, dev mtdblock0, sector 8 op 0x0:(READ) flags 0x80700 phys_seg 3 prio class 0

[    9.459706] __nand_correct_data: uncorrectable ECC error

[    9.465052] __nand_correct_data: uncorrectable ECC error

[    9.470403] blk_update_request: I/O error, dev mtdblock0, sector 16 op 0x0:(READ) flags 0x80700 phys_seg 2 prio class 0

[    9.481382] __nand_correct_data: uncorrectable ECC error

[    9.486715] __nand_correct_data: uncorrectable ECC error

[    9.492065] blk_update_request: I/O error, dev mtdblock0, sector 24 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0

[    9.503077] __nand_correct_data: uncorrectable ECC error

[    9.508410] __nand_correct_data: uncorrectable ECC error

[    9.513767] blk_update_request: I/O error, dev mtdblock0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0

[    9.524177] Buffer I/O error on dev mtdblock0, logical block 0, async page read

[    9.608825] __nand_correct_data: uncorrectable ECC error

[    9.614216] __nand_correct_data: uncorrectable ECC error

[    9.619557] blk_update_request: I/O error, dev mtdblock0, sector 32 op 0x0:(READ) flags 0x80700 phys_seg 2 prio class 0

[    9.630544] __nand_correct_data: uncorrectable ECC error

[    9.635879] __nand_correct_data: uncorrectable ECC error

[    9.641230] blk_update_request: I/O error, dev mtdblock0, sector 40 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0

[    9.652207] __nand_correct_data: uncorrectable ECC error

[    9.657539] __nand_correct_data: uncorrectable ECC error

[    9.662891] blk_update_request: I/O error, dev mtdblock0, sector 48 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0

[    9.673867] __nand_correct_data: uncorrectable ECC error

[    9.679200] __nand_correct_data: uncorrectable ECC error

[    9.684550] blk_update_request: I/O error, dev mtdblock0, sector 56 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0

[    9.695527] __nand_correct_data: uncorrectable ECC error

[    9.700875] __nand_correct_data: uncorrectable ECC error

[    9.706212] blk_update_request: I/O error, dev mtdblock0, sector 64 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0

[    9.717188] __nand_correct_data: uncorrectable ECC error

[    9.722536] __nand_correct_data: uncorrectable ECC error

[    9.728005] __nand_correct_data: uncorrectable ECC error

[    9.733348] __nand_correct_data: uncorrectable ECC error

[    9.738818] __nand_correct_data: uncorrectable ECC error

[    9.744161] __nand_correct_data: uncorrectable ECC error

[    9.749668] __nand_correct_data: uncorrectable ECC error

[    9.755021] __nand_correct_data: uncorrectable ECC error

[    9.760379] Buffer I/O error on dev mtdblock0, logical block 1, async page read

[   10.183618] block: attempting to load /etc/config/fstab

[   10.190154] block: unable to load configuration (fstab: Entry not found)

[   10.196945] block: no usable configuration

[   10.626484] jffs2: notice: (843) jffs2_build_xattr_subsystem: complete building xattr subsystem, 7 of xdatum (0 unchecked, 1 orphan) and 10 of xref (3 dead, 0 orphan) found.

[   10.649783] __nand_correct_data: uncorrectable ECC error

[   10.655174] __nand_correct_data: uncorrectable ECC error

[   10.660666] __nand_correct_data: uncorrectable ECC error

[   10.665999] __nand_correct_data: uncorrectable ECC error

[   10.671485] __nand_correct_data: uncorrectable ECC error

[   10.676820] __nand_correct_data: uncorrectable ECC error

[   10.682303] __nand_correct_data: uncorrectable ECC error

[   10.687632] __nand_correct_data: uncorrectable ECC error

[   10.693152] __nand_correct_data: uncorrectable ECC error

[   10.698489] __nand_correct_data: uncorrectable ECC error

[   10.703847] Buffer I/O error on dev mtdblock0, logical block 0, async page read

[   10.713355] __nand_correct_data: uncorrectable ECC error

[   10.718695] __nand_correct_data: uncorrectable ECC error

[   10.724216] __nand_correct_data: uncorrectable ECC error

[   10.729549] __nand_correct_data: uncorrectable ECC error

[   10.735045] __nand_correct_data: uncorrectable ECC error

[   10.740397] __nand_correct_data: uncorrectable ECC error

[   10.745865] __nand_correct_data: uncorrectable ECC error

[   10.751220] __nand_correct_data: uncorrectable ECC error

[   10.756696] __nand_correct_data: uncorrectable ECC error

[   10.762047] __nand_correct_data: uncorrectable ECC error

[   10.767517] __nand_correct_data: uncorrectable ECC error

[   10.772872] __nand_correct_data: uncorrectable ECC error

[   10.778347] __nand_correct_data: uncorrectable ECC error

[   10.783690] __nand_correct_data: uncorrectable ECC error

[   10.789159] __nand_correct_data: uncorrectable ECC error

[   10.794503] __nand_correct_data: uncorrectable ECC error

[   10.800006] __nand_correct_data: uncorrectable ECC error

[   10.805344] __nand_correct_data: uncorrectable ECC error

[   10.810696] Buffer I/O error on dev mtdblock0, logical block 1, async page read

[   11.238493] block: attempting to load /etc/config/fstab

[   11.243914] block: unable to load configuration (fstab: Entry not found)

[   11.257462] block: no usable configuration

[   11.263156] mount_root: switching to jffs2 overlay

[   11.318793] overlayfs: upper fs does not support tmpfile.

[   11.330522] urandom-seed: Seeding with /etc/urandom.seed

[   11.409141] procd: - early -

[   11.412706] procd: - watchdog -

[   11.741312] urandom_read: 6 callbacks suppressed

[   11.741319] random: jshn: uninitialized urandom read (4 bytes read)

[   12.038099] procd: - watchdog -

[   12.043263] procd: - ubus -

[   12.171684] procd: - init -

Please press Enter to activate this console.

[   12.833204] kmodloader: loading kernel modules from /etc/modules.d/*

[   12.848247] urngd: v1.0.2 started.

[   13.036133] random: crng init done

[   13.202625] NET: Registered protocol family 8

[   13.207025] NET: Registered protocol family 20

[   13.308253] Key type cifs.idmap registered

[   13.340130] ntfs: driver 2.1.32 [Flags: R/O MODULE].

[   13.528971] l2tp_core: L2TP core driver, V2.0

[   13.545870] l2tp_netlink: L2TP netlink interface

[   13.569488] gre: GRE over IPv4 demultiplexor driver

[   13.591620] ip_gre: GRE over IPv4 tunneling driver

[   13.621476] ip6_gre: GRE over IPv6 tunneling driver

[   13.659810] Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

[   13.878134] cryptodev: driver 1.10 loaded.

[   13.917325] gpio-fan backplane-fan: GPIO fan initialized

[   13.950749] hidraw: raw HID events driver (C) Jiri Kosina

[   13.995954] u32 classifier

[   13.998697]     input device check on

[   14.002402]     Actions configured

[   14.054187] fuse: init (API version 7.31)

[   14.168609] Loading modules backported from Linux version v5.8-0-gbcf876870b95

[   14.175924] Backport generated by backports.git v5.8-1-0-g79400d9e

[   14.348106] l2tp_ppp: PPPoL2TP kernel driver, V2.0

[   14.422401] nf_conntrack_rtsp v0.7 loading

[   14.477742] nf_nat_rtsp v0.7 loading

[   14.642742] PPTP driver version 0.8.5

[   14.675493] usbcore: registered new interface driver ums-alauda

[   14.710052] usbcore: registered new interface driver ums-cypress

[   14.717670] usbcore: registered new interface driver ums-datafab

[   14.747126] usbcore: registered new interface driver ums-freecom

[   14.767030] usbcore: registered new interface driver ums-isd200

[   14.810049] usbcore: registered new interface driver ums-jumpshot

[   14.817310] usbcore: registered new interface driver ums-karma

[   14.844013] usbcore: registered new interface driver ums-sddr09

[   14.864118] usbcore: registered new interface driver ums-sddr55

[   14.894969] usbcore: registered new interface driver ums-usbat

[   14.951031] usbcore: registered new interface driver usbhid

[   14.956630] usbhid: USB HID core driver

[   15.006377] wireguard: WireGuard 1.0.20200908 loaded. See www.wireguard.com for information.

[   15.014908] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.

[   15.541452] xt_time: kernel timezone is -0000

[   15.553850] usbcore: registered new interface driver cdc_ether

[   15.693492] Intel(R) Wireless WiFi driver for Linux

[   15.824202] usbcore: registered new interface driver rndis_host

[   15.853031] usbcore: registered new interface driver snd-usb-audio

[   15.893340] Broadcom 43xx driver loaded [ Features: PNL ]

[   15.948942] kmodloader: done loading kernel modules from /etc/modules.d/*

[   26.957579] __nand_correct_data: uncorrectable ECC error

[   26.962971] __nand_correct_data: uncorrectable ECC error

[   26.968306] print_req_error: 18 callbacks suppressed

[   26.968315] blk_update_request: I/O error, dev mtdblock0, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 0

[   26.984213] __nand_correct_data: uncorrectable ECC error

[   26.989542] __nand_correct_data: uncorrectable ECC error

[   26.994895] blk_update_request: I/O error, dev mtdblock0, sector 8 op 0x0:(READ) flags 0x80700 phys_seg 3 prio class 0

[   27.005784] __nand_correct_data: uncorrectable ECC error

[   27.011132] __nand_correct_data: uncorrectable ECC error

[   27.016468] blk_update_request: I/O error, dev mtdblock0, sector 16 op 0x0:(READ) flags 0x80700 phys_seg 2 prio class 0

[   27.027445] __nand_correct_data: uncorrectable ECC error

[   27.032795] __nand_correct_data: uncorrectable ECC error

[   27.038137] blk_update_request: I/O error, dev mtdblock0, sector 24 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0

[   27.049151] __nand_correct_data: uncorrectable ECC error

[   27.054500] __nand_correct_data: uncorrectable ECC error

[   27.059840] blk_update_request: I/O error, dev mtdblock0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0

[   27.070251] Buffer I/O error on dev mtdblock0, logical block 0, async page read

[   27.371648] __nand_correct_data: uncorrectable ECC error

[   27.376990] __nand_correct_data: uncorrectable ECC error

[   27.382392] blk_update_request: I/O error, dev mtdblock0, sector 32 op 0x0:(READ) flags 0x80700 phys_seg 8 prio class 0

[   27.393387] __nand_correct_data: uncorrectable ECC error

[   27.398720] __nand_correct_data: uncorrectable ECC error

[   27.404074] blk_update_request: I/O error, dev mtdblock0, sector 40 op 0x0:(READ) flags 0x80700 phys_seg 7 prio class 0

[   27.415060] __nand_correct_data: uncorrectable ECC error

[   27.420405] __nand_correct_data: uncorrectable ECC error

[   27.425740] blk_update_request: I/O error, dev mtdblock0, sector 48 op 0x0:(READ) flags 0x80700 phys_seg 6 prio class 0

[   27.436719] __nand_correct_data: uncorrectable ECC error

[   27.442065] __nand_correct_data: uncorrectable ECC error

[   27.447401] blk_update_request: I/O error, dev mtdblock0, sector 56 op 0x0:(READ) flags 0x80700 phys_seg 5 prio class 0

[   27.458379] __nand_correct_data: uncorrectable ECC error

[   27.463729] __nand_correct_data: uncorrectable ECC error

[   27.469071] blk_update_request: I/O error, dev mtdblock0, sector 64 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 0

[   27.480049] __nand_correct_data: uncorrectable ECC error

[   27.485378] __nand_correct_data: uncorrectable ECC error

[   27.490863] __nand_correct_data: uncorrectable ECC error

[   27.496201] __nand_correct_data: uncorrectable ECC error

[   27.501685] __nand_correct_data: uncorrectable ECC error

[   27.507013] __nand_correct_data: uncorrectable ECC error

[   27.512534] __nand_correct_data: uncorrectable ECC error

[   27.517870] __nand_correct_data: uncorrectable ECC error

[   27.523229] Buffer I/O error on dev mtdblock0, logical block 1, async page read

[   32.212155] mv643xx_eth_port mv643xx_eth_port.0 eth0: link up, 1000 Mb/s, full duplex, flow control disabled

[   32.270322] br-lan: port 1(eth0) entered blocking state

[   32.275576] br-lan: port 1(eth0) entered disabled state

[   32.281137] device eth0 entered promiscuous mode

[   32.723784] br-lan: port 2(eth0.1) entered blocking state

[   32.729216] br-lan: port 2(eth0.1) entered disabled state

[   32.734935] device eth0.1 entered promiscuous mode

[   32.739950] br-lan: port 2(eth0.1) entered blocking state

[   32.745375] br-lan: port 2(eth0.1) entered forwarding state

[   32.751436] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready

[   32.911557] mv643xx_eth_port mv643xx_eth_port.1 eth1: link up, 1000 Mb/s, full duplex, flow control disabled

[   33.220075] br-lan: port 1(eth0) entered blocking state

[   33.225334] br-lan: port 1(eth0) entered forwarding state

[   33.231220] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

__nand_correct_data报错可以忽略,可能是nand读写算法不一致引起的,uboot分区实际上没问题的,在uboot里能正常读取。内核已经编全了无线、文件系统、USB系列驱动。

sd卡插拔都能正常检测了,只读也能检测,风扇、硬盘和USB电源也能控了,神清气爽!!

image.png


LED检测到了,背板上RUN被我设置成1s闪一次了,主板上那个看不到的被设置成heartbeat模式了,看起来更有科技感。

image.png

交换机能成功配置,编号也和背板上文字一致(ETH0是88E1112R的,被我设置成WAN口了)。
image.png
iperf的结果(上面是ETH0的独立网卡芯片,下面是交换机芯片):
image.png
看来交换机上每个口分配到100M是没问题的,难怪主打百兆线速流控,简直是小房东的神器呀。
不过我还是个小打工仔,就扔货架上亮(晾)着吧:
image.png


                               
登录/注册后可看大图



美中不足是USB老是无法通信,用示波器看D-波形上升沿不够锐利,打阻抗也有点不对,可能是芯片受了伤吧,资料也不多于是作罢;没法通讯也不影响我拿来点个LED台灯,好歹开关能远程控制了不是。。。。
可以提高的地方是交换机芯片上可以加散热片,这样高温不会降速。


                               
登录/注册后可看大图



至此,主板上所有能看到的芯片都摸了一通,能控制的东西都可以从系统控制了,可以说是榨干了~~

固件太大懒得传网盘维护了。Makefile直接拷贝其它同样U的就行啦。记得kernel_menuconfig里选上对应的驱动,主要是marvell、orion开头名字的那些,可以参考上面日志信息看需要哪些。
编出来的initramfs文件没法启动是因为自带UBOOT的bug,没法加载太大的固件镜像,所以建议先tftp将rootfs写进nand以后再启动内核uImage。

最后附上今天一天的成果,纯手工打造的DTS文件,免得后来人费劲。
这老古董还能用用,扩展性比现在的设备强多了。

kirkwood-cba81d.zip (1.9 KB, 下载次数: 0, 售价: 10 家元)





打赏

参与人数 2家元 +29 收起 理由
a2432061667 + 9 優秀文章
wulishui + 20

查看全部打赏

发表于 2020-10-4 08:00:42 | 显示全部楼层
加精的帖子,沙发我来坐:lol:
回复 支持 1 反对 0

使用道具 举报

发表于 2020-10-4 08:10:35 | 显示全部楼层
我仅能用牛掰来表达我的心情:praise:
回复 支持 反对

使用道具 举报

发表于 2020-10-4 09:02:03 | 显示全部楼层
蛇精的节奏,火钳流明
回复 支持 反对

使用道具 举报

发表于 2020-10-4 10:04:27 来自手机浏览器 | 显示全部楼层
这个装上openwrt能达到六口都千兆网络吗?我有个安卓双网口机器,nxpmix6的cpu,不知道可不可以刷openwrt。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-4 10:07:43 | 显示全部楼层
qq78406945 发表于 2020-10-4 10:04
这个装上openwrt能达到六口都千兆网络吗?我有个安卓双网口机器,nxpmix6的cpu,不知道可不可以刷openwrt。 ...

看最后测速图,6口协商都是千兆,其实交换机总带宽600M、独立口ETH0有快800M。本身就是设计成百兆流控的机器,保证交换机上每个口都能上百兆而已,给小房东用的。
万物皆可刷,就看你想不想付出时间去折腾。NXP的很好折腾,完全可以。
回复 支持 反对

使用道具 举报

发表于 2020-10-4 10:37:59 | 显示全部楼层
厉害了我的哥,这都能折腾能用。卖家没涨价么?
回复 支持 反对

使用道具 举报

发表于 2020-10-4 11:59:16 | 显示全部楼层
4颗DDR吓我一跳,以为起码4G,谁知道512M......
回复 支持 反对

使用道具 举报

发表于 2020-10-4 12:33:04 | 显示全部楼层
这不是马牌路由么,貌似可以刷黑群晖,咸鱼有人在卖
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-4 15:01:58 | 显示全部楼层
珜羽 发表于 2020-10-4 10:37
厉害了我的哥,这都能折腾能用。卖家没涨价么?

他知道能刷,但是不会刷,没办法。。。
回复 支持 反对

使用道具 举报

发表于 2020-10-4 22:45:49 | 显示全部楼层
功耗,性能不知道测试如何.

回复 支持 反对

使用道具 举报

发表于 2020-10-5 01:27:10 | 显示全部楼层
就说这PCB怎么看怎么眼熟,好像在哪见过,也不是人人影视啊,想了半天想起来,应该是在别的论坛的店铺中见过,PCB完全相同,隔壁论坛有对应的一些教程 https://bbs.nas66.com/forum.php? ... &extra=page%3D1

                               
登录/注册后可看大图
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-5 14:08:58 | 显示全部楼层
bnnyygy 发表于 2020-10-4 22:45
功耗,性能不知道测试如何.

交流输入功率整机在8.5W到10.5W波动,性能就不要多想,ARM v5TE能有多好的性能呀。不过主频最高能上1.2G,比AR系列还是强很多。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-5 14:13:13 | 显示全部楼层
muzhi 发表于 2020-10-5 01:27
就说这PCB怎么看怎么眼熟,好像在哪见过,也不是人人影视啊,想了半天想起来,应该是在别的论坛的店铺中见 ...

是的,这个板号是公用的ARM开发板,CBA81D。
厂家根据不同客户再改改配置、定制下网口什么的。
网络上其它固件全都看过了,没一个把所有功能开发出来的,大多只有网能通的效果。只有我这个是板子上所有功能都研究了并且集成进系统的。
回复 支持 反对

使用道具 举报

发表于 2020-10-18 01:28:28 来自手机浏览器 | 显示全部楼层
厉害了:praise:            
回复 支持 反对

使用道具 举报

发表于 2021-9-3 14:17:05 | 显示全部楼层
是的,这个板号是公用的ARM开发板,CBA81D。
回复 支持 反对

使用道具 举报

发表于 2021-9-5 20:49:32 来自手机浏览器 | 显示全部楼层
我折腾的是F660 v3光猫。折腾到现在从头到脚都是gpl软件,uboot都是自己移植的,openwrt用的3.14.79内核:lol:,是marvell 88f6560处理器。顺便问问怎么检测按键gpio的啊?我在uboot里通过写内存只能发现led灯对应gpio,按键的gpio一直找不到。marvell的东西真的不错,就是f660 v3的无线是焊死的,rtl8192ce这个废物连驱动都不完善。还剩下光口和adsl口我就不抱希望了,反正也没啥大用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-8 00:16:18 来自手机浏览器 | 显示全部楼层
k9f2g08u0m 发表于 2021-9-5 20:49
我折腾的是F660 v3光猫。折腾到现在从头到脚都是gpl软件,uboot都是自己移植的,openwrt用的3.14.79内核:lo ...

先把所有口设成IO,不要只输入或者输出,然后用GPIO工具配合脚本一个个自动写,挂示波器在需要查找的脚上,如果找对了屏幕上数字和波形变化肯定会对应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-3-29 05:51 , Processed in 0.218400 second(s), 18 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表