"user_property" パーティション
このパーティション内のボリュームが削除されていた場合は、stockファームでのブート中に再構築される(再起動を挟む)
"user_property_ubi"
- システム設定保存用(他の場所に無い個体情報の格納は恐らく無し)
"extra_property"
- syslog保存用(gzip圧縮済)
stockにおける更新時の挙動
- 更新開始
- "rootfs_recovery" パーティションに書き込み
- 再起動
- U-Bootが "rootfs" と "rootfs_recovery" それぞれの "fw_hash" ボリュームに存在するMD5ハッシュを比較
- 比較したMD5ハッシュが同じならばそのまま "rootfs" に存在するkernelとrootfsでブート、異なるなら "rootfs_recovery" のkernelとrootfsでブート(以降 "rootfs_recovery" でブートしたものとする)
- ブート中にFSの正常性が確認できれば "rootfs_recovery" の中身を "rootfs" へ丸ごとコピー
- コピー実施前に取得したハッシュと比較し、一致していれば成功扱いで再起動
- U-Bootが "rootfs" と "rootfs_recovery" のMD5ハッシュを比較して一致していれば "rootfs" でブート
- ブート完了でファームウェアの更新も終了
主/副ファームウェアの状況による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, rootfs_recoveryのどちらにもボリュームが存在しない
- rootfs_recoveryでブートされる
なお、この状態でstockファームがブートされた場合はrootfs_recovery → rootfsのコピーが発生するものの fw_hash ボリュームが欠落したまま復旧されない為、再起動毎にU-Bootが常にrootfs_recoveryをブートし続けbootloopに陥る
- rootfs_recoveryでブートされる
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: *