大破雑記帳

個人用メモな雑記ブログ いろんなことをざっくりと。

WXR-5950AX12メモ

"user_property" パーティション

このパーティション内のボリュームが削除されていた場合は、stockファームでのブート中に再構築される(再起動を挟む)

  • "user_property_ubi"
    • システム設定保存用(他の場所に無い個体情報の格納は恐らく無し)
  • "extra_property"
    • syslog保存用(gzip圧縮済)

stockにおける更新時の挙動

  1. 更新開始
  2. "rootfs_recovery" パーティションに書き込み
  3. 再起動
  4. U-Bootが "rootfs" と "rootfs_recovery" それぞれの "fw_hash" ボリュームに存在するMD5ハッシュを比較
  5. 比較したMD5ハッシュが同じならばそのまま "rootfs" に存在するkernelとrootfsでブート、異なるなら "rootfs_recovery" のkernelとrootfsでブート(以降 "rootfs_recovery" でブートしたものとする)
  6. ブート中にFSの正常性が確認できれば "rootfs_recovery" の中身を "rootfs" へ丸ごとコピー
  7. コピー実施前に取得したハッシュと比較し、一致していれば成功扱いで再起動
  8. U-Bootが "rootfs" と "rootfs_recovery" のMD5ハッシュを比較して一致していれば "rootfs" でブート
  9. ブート完了でファームウェアの更新も終了

主/副ファームウェアの状況によるU-Bootの挙動

WXR-2533DHP(2)と異なり、片方に問題があってもU-BootではなくOSにコピーなど復旧作業を任せている印象

  • # fw_hashボリューム

    U-BootにおけるMD5ハッシュのチェックは単純にrootfsとrootfs_recoveryのものに対する文字列での比較のみである模様(ハッシュ文字列のサイズがMD5の長さでなくても問題無い)

    • ボリュームが存在しハッシュが rootfs != rootfs_recovery
      • rootfs_recoveryでブートされる
    • rootfsのボリュームが存在しない
      • rootfs_recoveryでブートされる
    • rootfs_recoveryのボリュームが存在しない
      • rootfsでブートされる
        なお、この状態でstockファームがブートされても消えたrootfs_recoveryのfw_hashボリュームの復旧は行われない模様(rootfs → rootfs_recovery のコピーなどが発生しない)
    • rootfs, rootfs_recoveryのどちらにもボリュームが存在しない
      • rootfs_recoveryでブートされる
        なお、この状態でstockファームがブートされた場合はrootfs_recovery → rootfsのコピーが発生するものの fw_hash ボリュームが欠落したまま復旧されない為、再起動毎にU-Bootが常にrootfs_recoveryをブートし続けbootloopに陥る

AOSSボタンを押しながらブート

Format: Log Type - Time(microsec) - Message - Optional Info
Log Type: B - Since Boot(Power On Reset),  D - Delta,  S - Statistic
S - QC_IMAGE_VERSION_STRING=BOOT.BF.3.3.1-00147
S - IMAGE_VARIANT_STRING=HAACANAZA
S - OEM_IMAGE_VERSION_STRING=CRM
S - Boot Config, 0x000002e5
B -       201 - PBL, Start
B -      2734 - bootable_media_detect_entry, Start
B -      3441 - bootable_media_detect_success, Start
B -      3445 - elf_loader_entry, Start
B -      6108 - auth_hash_seg_entry, Start
B -      6351 - auth_hash_seg_exit, Start
B -     68463 - elf_segs_hash_verify_entry, Start
B -    131158 - PBL, End
B -    217739 - SBL1, Start
B -    297100 - GCC [RstStat:0x10, RstDbg:0x600000] WDog Stat : 0x4
B -    306982 - pm_device_init, Start
B -    488976 - PM_SET_VAL:Skip
D -    179889 - pm_device_init, Delta
B -    491233 - pm_driver_init, Start
D -      5337 - pm_driver_init, Delta
B -    497760 - clock_init, Start
D -      2104 - clock_init, Delta
B -    501786 - boot_flash_init, Start
D -     12474 - boot_flash_init, Delta
B -    517951 - boot_config_data_table_init, Start
D -      3080 - boot_config_data_table_init, Delta - (575 Bytes)
B -    525423 - Boot Setting :  0x00000618
B -    529358 - CDT version:2,Platform ID:8,Major ID:1,Minor ID:0,Subtype:0
B -    536281 - sbl1_ddr_set_params, Start
B -    540094 - CPR configuration: 0x30c
B -    543449 - cpr_init, Start
B -    546316 - Rail:0 Mode: 5 Voltage: 800000
B -    551440 - CL CPR settled at 752000mV
B -    554276 - Rail:1 Mode: 5 Voltage: 880000
B -    558546 - Rail:1 Mode: 7 Voltage: 896000
D -     16531 - cpr_init, Delta
B -    565317 - Pre_DDR_clock_init, Start
B -    569435 - Pre_DDR_clock_init, End
B -    572729 - DDR Type : PCDDR3
B -    578493 - do ddr sanity test, Start
D -      1037 - do ddr sanity test, Delta
B -    583251 - DDR: Start of HAL DDR Boot Training
B -    587979 - DDR: End of HAL DDR Boot Training
B -    593682 - DDR: Checksum to be stored on flash is 1692210399
B -    603991 - Image Load, Start
D -    223931 - QSEE Image Loaded, Delta - (1373936 Bytes)
B -    828014 - Image Load, Start
D -        61 - SEC Image Loaded, Delta - (0 Bytes)
B -    835700 - Image Load, Start
D -     10705 - DEVCFG Image Loaded, Delta - (26004 Bytes)
B -    846497 - Image Load, Start
D -     25223 - RPM Image Loaded, Delta - (105964 Bytes)
B -    871812 - Image Load, Start
D -     96075 - APPSBL Image Loaded, Delta - (586920 Bytes)
B -    968009 - QSEE Execution, Start
D -        61 - QSEE Execution, Delta
B -    973804 - USB D+ check, Start
D -         0 - USB D+ check, Delta
B -    980209 - SBL1, End
D -    764788 - SBL1, Delta
S - Flash Throughput, 6728 KB/s  (2094071 Bytes,  311218 us)
S - DDR Frequency, 466 MHz
S - Core 0 Frequency, 1651 MHz

U-Boot 2016.01 [BUFFALO U-Boot Ver.1.01] (Jul 12 2019 - 17:37:52 +0900)

DRAM:  smem ram ptable found: ver: 1 len: 4
### Sys Mem Test Start: 41300000 - 4A900000
Memory Test start(0x41300000) end(0x4A900000) size(157286400)
Data line test start:0x41300000 pattern 0x00000001 0x00000003 0x00000007 0x0000000F 0x00000005 0x00000015 0x00000055 0xAAAAAAAA
Address line test start:0x41300000 len:0x9600000 pattern 0xAAAAAAAA 0x55555555
Fill test patnum:2
fill Pattern 5555AAAA  Writing...   Reading...
fill Pattern AAAA5555  Writing...   Reading...
### System Memory Test OK
### Work Memory Test Start: 50000000 - 80000000
Memory Test start(0x50000000) end(0x80000000) size(805306368)
Data line test start:0x50000000 pattern 0x00000001 0x00000003 0x00000007 0x0000000F 0x00000005 0x00000015 0x00000055 0xAAAAAAAA
Address line test start:0x50000000 len:0x30000000 pattern 0xAAAAAAAA 0x55555555
Fill test patnum:2
fill Pattern 5555AAAA  Writing...   Reading...
fill Pattern AAAA5555  Writing...   Reading...
### Work Memory Test OK 40000000
1 GiB
NAND:  ONFI device found
ID = 1590aaef
Vendor = ef
Device = aa
SF: Unsupported flash IDs: manuf ff, jedec ffff, ext_jedec ffff
ipq_spi: SPI Flash not found (bus/cs/speed/mode) = (0/0/48000000/0)
256 MiB
MMC:   : 0
In:    serial@78B3000
Out:   serial@78B3000
Err:   serial@78B3000
check product = WXR-5950AX12 / WXR-5950AX12 (32)
check ethaddr = 50:c4:dd:cb:ef:28 / 50:c4:dd:cb:ef:28 (6)
check wlan0addr = 50:c4:dd:cb:ef:30 / 50:c4:dd:cb:ef:30 (6)
check wlan1addr = 50:c4:dd:cb:ef:38 / 50:c4:dd:cb:ef:38 (6)
check wlan2addr = 00:00:00:00:00:00 / 00:00:00:00:00:00 (6)
check hw_rev = 0 / 0 (4)
check custom_id = 0 / 0 (4)
check melco_id = RD_18021 / RD_18021 (12)
check region = JP / JP (4)
check product_vendor = BUFFALO / BUFFALO (16)
check pincode = 98296002 / 98296002 (16)
check psk = hs54jg4775x44 / hs54jg4775x44 (16)
check admin_passwd = 7kam7e6h / 7kam7e6h (16)
machid: 8010000
Card did not respond to voltage select!
### AOSS check(51)  press!!

Net:   MAC0 addr:50:c4:dd:cb:ef:28
PHY ID1: 0x4d
PHY ID2: 0xd0b1

NAND read: Offset exceeds device limit
PHY ID1: 0x31c3
PHY ID2: 0x1c12

NAND read: Offset exceeds device limit
PHY ID1: 0x31c3
PHY ID2: 0x1c12
EDMA ver 1 hw init
Num rings - TxDesc:1 (0-0) TxCmpl:1 (7-7)
RxDesc:1 (15-15) RxFill:1 (7-7)
ipq807x_edma_alloc_rings: successfull
ipq807x_edma_setup_ring_resources: successfull
ipq807x_edma_configure_rings: successfull
ipq807x_edma_hw_init: successfull
eth0
ipq807x_eth_halt: done
eth0 PHY0 Down Speed :10 Half duplex
eth0 PHY1 Down Speed :10 Half duplex
eth0 PHY2 Down Speed :10 Half duplex
eth0 PHY3 up Speed :10 Full duplex
eth0 PHY4 Down Speed :10000 Full duplex
eth0 PHY5 Down Speed :10000 Full duplex
ipq807x_eth_init: done
Using eth0 device
TFTP from server 192.168.11.10; our IP address is 192.168.11.1
Filename 'WXR-5950AX12-initramfs.uImage'.
Load address: 0x44000000
Loading: *