[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

大破雑記帳

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

WG2200HP

WG1400HPやWG1800HP/HP2を把握した辺りで同様にQCA955xであることを把握し、そのうち調達しようかと考えていたもの。

ヤフオクで漁っていた際にジャンクで安価な出品を見付け、少々迷った末に確保。

既にサポート済のWG1400HP, WG1800HP/HP2に加えてサポートする為、弄っていくのでメモ。

Switch

確認中

zone WAN LAN
port (WG2200HP) INTERNET LAN1 LAN2 LAN3 LAN4
port (QCA8337) port1 port2 port3 port4 port5

MAC

確認中

Bootloader

  • help

      boot> help
      support commands ...
      load             load module
      boot             boot loaded module
      tftpd            start tftpd [tftpd [IP] [bfn]]
      dlmode           set tftpd download mode [bfn]
      reboot           reboot system
      help             help command
      macaddr          macaddr read/write
      configid         configid read/write
      randomkey        randomkey read/write
      serial           serial number read/write
      pkg_info         show package information
      presetid         preset id read/write
      version          show boot version
      mhx              mhx utility
      tp               test program
      errorlog         errorlog command
      additional       additional command
      rf-serial        rf-serial command
      rf-regdmn        rf-regdmn command
      time             Time command
      debug            debug command
      ?                help command
    
  • version

      boot> version
      boot version: 1.0.0
      system version: 3.34.29
      TP Version = 1.0.0
    
  • pkg_info

      boot> pkg_info
        PKG NAME : LIGHTNING3
        CPU   : Atheros/QCA9558
        RAM   : 128Mbyte
        Flash : 16Mbyte
          Device         : MX25L12845E(Macronix)
          Top Address    : 0xbf000000
          Config Address : 0xbf020000
          System Address : 0xbf040000
        Ether PHY : Atheros/QCA8337(SW)
        DIPSW : 0x3
    
  • debug ?

      boot> debug ?
      support commands ...
      memory           memory read/write
      flash            flash driver r/w
      fs               file system r/w
      load             load test (calc chksum)
      mii              mii control
      l2sw             l2sw control
      ether            ether control
      i2c              i2c control
    
  • debug fs ls

      boot> debug fs ls
      Firmware            5519156 bytes
      config.har             2388 bytes
      total 16515072, avail 10868352 bytes
    
  • debug l2sw register dump 0

      boot> debug l2sw register dump 0
      PHY:
      00 : 1000 1000 1000 1000 1000 
      01 : 7949 7949 7949 7949 7949 
      02 : 004d 004d 004d 004d 004d 
      03 : d036 d036 d036 d036 d036 
      04 : 1de1 1de1 1de1 1de1 1de1 
      05 : 0000 0000 0000 0000 0000 
      06 : 0004 0004 0004 0004 0004 
      07 : 2801 2801 2801 2801 2801 
      08 : 0000 0000 0000 0000 0000 
      09 : 0200 0200 0200 0200 0200 
      0a : 0000 0000 0000 0000 0000 
      0b : 0000 0000 0000 0000 0000 
      0c : 0000 0000 0000 0000 0000 
      0d : 4007 4007 4007 4007 4007 
      0e : 0000 0000 0000 0000 0000 
      0f : 2000 2000 2000 2000 2000 
      10 : 0862 0862 0862 0862 0862 
      11 : 0010 0010 0010 0010 0010 
      12 : 0000 0000 0000 0000 0000 
      13 : 0000 0000 0000 0000 0000 
      14 : 082c 082c 082c 082c 082c 
      15 : 0000 0000 0000 0000 0000 
      16 : 2400 2400 2400 2400 2400 
      17 : 0000 0000 0000 0000 0000 
      18 : 3200 3200 3200 3200 3200 
      19 : 1000 1000 1000 1000 1000 
      1a : 0000 0000 0000 0000 0000 
      1b : 0000 0000 0000 0000 0000 
      1c : 0000 0000 0000 0000 0000 
      1d : 0000 0000 0000 0000 0000 
      1e : 02ee 02ee 02ee 02ee 02ee 
      1f : 0000 0000 0000 0000 0000 
    
      DEBUG:
      00 : 02ee 02ee 02ee 02ee 02ee 
      01 : 02b2 01b1 01b1 02b2 02b2 
      02 : 3220 3110 3220 3110 3110 
      03 : 3f11 3f22 3f11 3f22 3f22 
      04 : fbbb fbbb fbbb fbbb fbbb 
      05 : 1c47 1c47 1c47 1c47 1c47 
      06 : 0000 0000 0000 0000 0000 
      07 : 0000 0000 0000 0000 0000 
      08 : 1c00 1c00 1c00 1c00 1c00 
      09 : 8000 8000 8000 8000 8000 
      0a : 3000 3000 3000 3000 3000 
      0b : bc40 bc40 bc40 bc40 bc40 
      0c : 6001 6001 6001 6001 6001 
      0d : 2820 c820 2820 2820 c820 
      0e : 0003 0003 0003 0003 0003 
      0f : 0030 0030 0030 0030 0030 
      10 : 0000 0000 0000 0000 0000 
      11 : 7552 7552 7552 7552 7552 
      12 : 4c04 4c04 4c04 4c04 4c04 
      13 : c01b c01b c01b c01b c01b 
      14 : 0752 0752 0752 0752 0752 
      15 : b220 b220 b220 b220 b220 
      16 : 8000 8000 8000 8000 8000 
      17 : 0000 0000 0000 0000 0000 
      18 : 62ea 62ea 62ea 62ea 62ea 
      19 : 01f4 01f4 01f4 01f4 01f4 
      1a : 01d7 01d7 01d7 01d7 01d7 
      1b : 0176 0176 0176 0176 0176 
      1c : 3cbb 3cbb 3cbb 3cbb 3cbb 
      1d : 00ec 00ec 00ec 00ec 00ec 
      1e : 0076 0076 0076 0076 0076 
      1f : 0000 0000 0000 0000 0000 
      20 : 0000 0000 0000 0000 0000 
      21 : 2d15 2d15 2d15 2d15 2d15 
      22 : 1f6a 1f6a 1f6a 1f6a 1f6a 
      23 : a200 a200 a200 a200 a200 
      24 : 1000 1000 1000 1000 1000 
      25 : 0000 0000 0000 0000 0000 
      26 : 0028 0000 0000 0000 0000 
      27 : 1000 1000 1000 1000 1000 
      28 : 0000 0000 0000 0000 0000 
      29 : 36dd 36dd 36dd 36dd 36dd 
      2a : 0000 0000 0000 0000 0000 
      2b : 3a98 3a98 3a98 3a98 3a98 
      2c : 0000 0000 0000 0000 0000 
      2d : 0000 0000 0000 0000 0000 
      2e : 0000 0000 0000 0000 0000 
      2f : 0000 0000 0000 0000 0000 
      30 : 0000 0000 0000 0000 0000 
      31 : 0000 0000 0000 0000 0000 
      32 : 2200 2200 2200 2200 2200 
      33 : 2200 2200 2200 2200 2200 
      34 : 2200 2200 2200 2200 2200 
      35 : 0000 0000 0000 0000 0000 
      36 : e1ec e1ec e1ec e1ec e1ec 
      37 : 6000 6000 6000 6000 6000 
      38 : 1111 1111 1111 1111 1111 
      39 : 7359 7359 7359 7359 7359 
      3a : ee6b ee6b ee6b ee6b ee6b 
      3b : 5a5a 5a5a 5a5a 5a5a 5a5a 
      3c : 5a5a 5a5a 5a5a 5a5a 5a5a 
      3d : 6860 6860 6860 6860 6860 
      3e : e0d8 e0d8 e0d8 e0d8 e0d8 
      3f : 8000 8000 8000 8000 8000 
    
      MMD3:
    
      MMD7:
    
      L2SW:
    
      0000 : 00001302 80000080 01000000 06000000 
      0010 : 002613a0 f0107650 00002586 00003f1f 
      0020 : 3f500000 00010082 00000000 00000000 
      0030 : 80000701 00000000 0f000000 00000000 
      0040 : 00700000 00000000 000088a8 00000000 
      0050 : cc36cc36 ca36ca36 c936c936 03ffff00 
      0060 : 00000001 00000000 00000000 00000000 
      0070 : b00ee060 03707f07 000005ee 0000004e 
      0080 : 00001280 00001280 00001280 00001280 
      0090 : 00001280 0000004e 00000000 00000000 
      00a0 : 00000000 00000000 00000000 00000000 
      00b0 : 00000000 00000000 00000000 00000618 
      00c0 : 00000000 00000000 80901040 00000000 
      00d0 : fffbff7e 00000001 00000100 000303ff 
      00e0 : c74164de 0002a545 2dc11c9c 00000000 
      00f0 : ff000083 00000000 a0000000 0200d600 
    
      0100 : 00000000 00000000 00000000 00000000 
      0110 : 00000000 00000000 00000000 00000000 
      0120 : 00240024 00000000 00240024 00000000 
      0130 : 00240024 00000000 00240024 00000000 
      0140 : 00240024 00000000 00240024 00000000 
      0150 : 00240024 00000000 00240024 00000000 
      0160 : 00240024 00000000 00240024 00000000 
      0170 : 00000000 00000000 00000000 00000000 
      0180 : 00000000 00000000 00000000 00000000 
      0190 : 00000000 00000000 00000000 00000000 
      01a0 : 00000000 00000000 00000000 00000000 
      01b0 : 00000000 00000000 00000000 00000000 
      01c0 : 00000000 00000000 00000000 00000000 
      01d0 : 00000000 00000000 00000000 00000000 
      01e0 : 00000000 00000000 00000000 00000000 
      01f0 : 00000000 00000000 00000000 00000000 
    
      0200 : 00000001 00005000 00400040 00000000 
      0210 : 00000000 00000000 00000000 00000000 
      0220 : 00000000 00000000 00000000 00000000 
      0230 : 00000000 00000000 00000000 00000000 
      0240 : 00000000 00000000 00000000 00000000 
      0250 : 00000000 00000000 00000000 00000000 
      0260 : 00000000 00000000 00000000 00000000 
      0270 : 0000000f 00000000 00000000 00000000 
      0280 : 00000000 00000000 00000000 00000000 
      0290 : 00000000 00000000 00000000 00000000 
      02a0 : 00000000 00000000 00000000 00000000 
      02b0 : 00000000 00000000 00000000 00000000 
      02c0 : 00000000 00000000 00000000 00000000 
      02d0 : 00000000 00000000 00000000 00000000 
      02e0 : 00000000 00000000 00000000 00000000 
      02f0 : 00000000 00000000 00000000 00000000 
    
      0400 : 00000000 00000000 00000000 00000000 
      0410 : 00000000 00000000 00000000 00000000 
      0420 : 00010001 00003040 00020001 00003040 
      0430 : 00010001 00003040 00010001 00003040 
      0440 : 00010001 00003040 00010001 00003040 
      0450 : 00020001 00003040 00000000 00000000 
      0460 : 00000000 00000000 00000000 00000000 
      0470 : c0a80000 ffff0000 00000000 00000000 
      0480 : 00000000 00000000 00000000 00000000 
      0490 : 00000000 00000000 00000000 00000000 
      04a0 : 00000000 00000000 00000000 00000000 
      04b0 : 00000000 00000000 00000000 00000000 
      04c0 : 00000000 00000000 00000000 00000000 
      04d0 : 00000000 00000000 00000000 00000000 
      04e0 : 00000000 00000000 00000000 00000000 
      04f0 : 00000000 00000000 00000000 00000000 
    
      0600 : 00000000 00000000 00000000 00000001 
      0610 : 00000000 00000001 d0e8002b 00000000 
      0620 : 001000f0 007f7f7f 00000000 00000000 
      0630 : 00000000 11111111 22222222 33333333 
      0640 : 44444444 55555555 66666666 77777777 
      0650 : 76543210 00000000 00000000 00000000 
      0660 : 0014003c 00000018 00007000 00140040 
      0670 : 00000018 00007000 00140039 00000018 
      0680 : 00007000 00140035 00000018 00007000 
      0690 : 0014002d 00000018 00007000 0014001d 
      06a0 : 00000018 00007000 00140002 00000018 
      06b0 : 00007000 00000000 00000000 00000000 
      06c0 : 00000000 00000000 00000000 00000000 
      06d0 : 00000000 00000000 00000000 00000000 
      06e0 : 00000000 00000000 00000000 00000000 
      06f0 : 00000000 00000000 00000000 00000000 
      0700 : 00000000 00000000 00000000 00000000 
      0710 : ffffffff ffffffff ffffffff 00000000 
    
      0800 : 01200188 00000000 007f000e 00000000 
      0810 : 54332201 33221100 00000000 00000000 
      0820 : 00000000 00000000 00000000 00000000 
      0830 : 10841041 00041041 00041041 00041041 
      0840 : 00041041 10841041 10841041 00000000 
      0850 : 00000000 00000000 00000000 00000000 
      0860 : 00000000 00000000 00000000 00000000 
      0870 : 00000000 00000000 00000000 00000000 
      0880 : 00000000 00000000 00000000 00000000 
      0890 : 7fff7fff 7fff7fff 7fff7fff 7fff7fff 
      08a0 : 7fff7fff 7fff7fff 00000000 00000002 
      08b0 : 7fff7fff 7fff7fff 7fff7fff 7fff7fff 
      08c0 : 7fff7fff 7fff7fff 00000000 00000002 
      08d0 : 7fff7fff 7fff7fff 7fff7fff 7fff7fff 
      08e0 : 7fff7fff 7fff7fff 00000000 00000002 
      08f0 : 7fff7fff 7fff7fff 7fff7fff 7fff7fff 
      0900 : 7fff7fff 7fff7fff 00000000 00000002 
      0910 : 7fff7fff 7fff7fff 7fff7fff 7fff7fff 
      0920 : 7fff7fff 7fff7fff 00000000 00000002 
      0930 : 7fff7fff 7fff7fff 7fff7fff 7fff7fff 
      0940 : 7fff7fff 7fff7fff 00000000 00000002 
      0950 : 7fff7fff 7fff7fff 7fff7fff 7fff7fff 
      0960 : 7fff7fff 7fff7fff 00000000 00000002 
      0970 : 28000000 000001c0 28000000 000001c2 
      0980 : 28000000 000001c2 28000000 000001c2 
      0990 : 28000000 000001c2 28000000 000001c2 
      09a0 : 28000000 000001c0 00000000 00000000 
      09b0 : 003a004a 003a004a 003a004a 003a004a 
      09c0 : 003a004a 003a004a 003a004a 00000000 
      09d0 : 00000000 00000000 00000000 00000000 
      09e0 : 00000000 00000000 00000000 00000000 
      09f0 : 00000000 00000000 00000000 00000000 
    
      VTU:
    
      ATU:
    
  • debug memory read 0xb8040000 0x70

      boot> debug memory read 0xb8040000 0x70
      b8040000:00a6031f 20bee62e 0000e400 00000000 .... ...........
      b8040010:00000000 00000000 00000000 00000000 ................
      b8040020:00000000 00000000 00000000 00000000 ................
      b8040030:0c080900 00160000 00000000 07000000 ................
      b8040040:00000006 00000908 00000000 00000000 ................
      b8040050:00000000 14130000 80808080 80808080 ................
      b8040060:80808080 80808080 00000000 00000002 ................
      boot> tftp
      RGMII calibration GE0 ... ETH_CFG: 00028001 ETH_XMII: 96000000
      phy0.0: "Atheros/QCA8337(phy)"
      phy0.1: "Atheros/QCA8337(SW)"
      active ch:1
      tftpd start 192.168.0.1
      boot> debug memory read 0xb8040000 0x70
      b8040000:00a6031f 20beee2e 0000ec00 00000000 .... ...........
      b8040010:00000000 00000000 00000000 00000000 ................
      b8040020:00000000 00000000 00000000 00000000 ................
      b8040030:0c080900 00160000 00000000 07000000 ................
      b8040040:00000006 00000908 00000000 00000000 ................
      b8040050:00000000 14130000 80808080 80808080 ................
      b8040060:80808080 80808080 00000000 00000002 ................
    
  • debug memory read 0xb8050000 0x54

      boot> debug memory read 0xb8050000 0x54
      b8050000:00021480 00213c00 00010000 00000400 .....!<.........
      b8050010:c00a0ffe 000a0000 00000014 00000000 ................
      b8050020:00000500 000a05e6 96000000 000010b3 ................
      b8050030:0a47f028 00004000 0523f828 41020ccc .G.(..@..#.(A...
      b8050040:781003ff 003c103f 03000000 00000007 x....<.?........
      b8050050:00000101
    
  • debug memory read 0xb8060000 0xd0

      boot> debug memory read 0xb8060000 0xd0
      b8060000:00000000 00000000 00000003 098963f4 ..............c.
      b8060010:00000701 00000000 00000020 2c044830 ........... ,.H0
      b8060020:00000000 00000000 00000000 00000000 ................
      b8060030:00000000 00000000 00000000 00000000 ................
      b8060040:00000000 00000000 00000000 00000000 ................
      b8060050:00000000 00000000 00000000 00000000 ................
      b8060060:00000000 00000000 00000000 00000000 ................
      b8060070:00000000 00000000 00000000 00000000 ................
      b8060080:00000000 00000000 00000000 00000000 ................
      b8060090:00001130 00000000 00000000 00000000 ...0............
      b80600a0:00000000 00000000 00000000 00000000 ................
      b80600b0:00031e5c 00033fc0 00000000 000a2000 ...\..?....... .
      b80600c0:00000000 000308f1 00000000 000003ff ................
      boot> tp usb
      USB Test .... USB not connect
      PASS
      boot> debug memory read 0xb8060000 0xd0
      b8060000:00000000 00000000 00000003 098961f4 ..............a.
      b8060010:00000701 00000000 00000020 2c044008 ........... ,.@.
      b8060020:00000000 00000000 00000000 00000000 ................
      b8060030:00000000 00000000 00000000 00000000 ................
      b8060040:00000000 00000000 00000000 00000000 ................
      b8060050:00000000 00000000 00000000 00000000 ................
      b8060060:00000000 00000000 00000000 00000000 ................
      b8060070:00000000 00000000 00000000 00000000 ................
      b8060080:00000000 00000000 00000000 00000000 ................
      b8060090:00001130 00000000 00000000 00000000 ...0............
      b80600a0:00000000 00000000 00000000 00000000 ................
      b80600b0:00031e5c 00033fc0 00000000 000a2000 ...\..?....... .
      b80600c0:00000000 000308f1 00000000 000003ff ................
    
  • debug memory read 0xb8070000 0x68

      boot> debug memory read 0xb8070000 0x68
      b8070000:00028001 00000000 0000000f 00000002 ................
      b8070010:0000ffff 0000001f 18838116 00000140 ...............@
      b8070020:0000004d 00000060 00000020 00000000 ...M...`... ....
      b8070030:00000000 000000a2 00001801 0000000e ................
      b8070040:00000000 00000000 00000020 2396e54a ........... #..J
      b8070050:04e29c45 00000030 0856070f 00000018 ...E...0.V......
      b8070060:00000000 00000000                   ........
    
  • debug memory read 0xb8116xxx 0x4

      boot> debug memory read 0xb8116184 0x4 
      b8116184:13010f00                            ....
      boot> debug memory read 0xb8116c84 0x4
      b8116c84:13010f00                            ....
      boot> debug memory read 0xb8116ec4 0x4
      b8116ec4:13010f00                            ....
      boot> debug memory read 0xb8116f04 0x4
      b8116f04:13010f00                            ....
      boot> debug memory read 0xb8116cc0 0x4
      b8116cc0:633c8178                            c<.x
      boot> debug memory read 0xb8116cc4 0x4
      b8116cc4:00380000                            .8..
      boot> debug memory read 0xb8116290 0x4
      b8116290:4b962d0f                            K.-.
    

Kernel

  • bootlog

    
      IPL:HARD-RESET
      memory test ... ok
      flinstall OK
    
      boot version: 1.0.0
    
      PKG "LIGHTNING3"
      CPU "Atheros/QCA9558"
      Revision 113.0 CLOCK 720.0 MHz
      HEAP MEMORY 262144 bytes
      Boot:InitFilesystem
      RGMII calibration GE0 ... ETH_CFG: 00028001 ETH_XMII: 96000000
      phy0.0: "Atheros/QCA8337(phy)"
      phy0.1: "Atheros/QCA8337(SW)"
      active ch:1
      post start
      DRAM Test ..... PASS
      Timer test .... PASS
      FLASH CHKSUM .. PASS
      LAN Test ...... 
      LoopBack count 0 .. 
      phy0.0: "Atheros/QCA8337(phy)"
      phy0.1: "Atheros/QCA8337(SW)"
      active ch:0
      active ch:1
      phy0.0: "Atheros/QCA8337(phy)"
      phy0.1: "Atheros/QCA8337(SW)"
      active ch:1
      PASS
      Package TYPE = 0x02
      post success
      now booting Firmware ...
      loaded Firmware
      config=0x80208483 status=0x00000000
      mips_pdcache_write_through=0
      mips_picache_line_size=32 mips_pdcache_line_size=32
        pagemask: 0x00000000
        status: 0x00000000
        config: 0x80208483
        cause: 0xc0008000
      load memory 0x2219000, 0x5de7000
      load memory 0x1000, 0x5f000
      Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002
          The NetBSD Foundation, Inc.  All rights reserved.
      Copyright (c) 1982, 1986, 1989, 1991, 1993
          The Regents of the University of California.  All rights reserved.
    
      NetBSD 1.6.1 (LIGHTNING3.tmp) #2: 2019-04-05 16:26:48 JST
          user@SIZNECATS142171:/home/user/git/LIGHTNING3_DEVEL_BRANCH/build/lightning3/kernel-obj/LIGHTNING3.tmp
    
      total memory = 128 MB
      avail memory = 89632 KB
      using 1024 buffers containing 4096 KB of memory
      mainbus0 (root)
      cpu0 at mainbus0: MIPS 74Kc (0x19750) Rev. 80 with software emulated floating point
      cpu0: 64KB/32B 4-way set-associative L1 Instruction cache, 32 TLB entries
      cpu0: 32KB/32B 4-way set-associative write-back L1 Data cache
      arspi0 at mainbus0
      arflash0 at mainbus0 addr 0xbf000000 size 16777216 bytes
      flash: id 0xc2 type 0x17 addr 0xbf000000 size 16777216 bytes
      pfmg: carrier mode 0 pkgid 0x1002 configid 0xff
      arrtc0 at mainbus0
      argiu0 at mainbus0
      btnu0 at argiu0 port 18
      btnu1 at argiu0 port 2
      btnu2 at argiu0 port 3
      ari2c0 at mainbus0: clk_sel=0(REFCLK), hcnt=0x28, lcnt=0x3e
      iic0 at ari2c0: I2C bus
      tca6416gpio0 at iic0 addr 0x76
      tcaled0 at tca6416gpio0
      qca0 at mainbus0nbuf_hdr_init: struct nbuf(132 bytes) mallocsize(1966080 bytes)
      mbuf_freeq_setup: mbuf_freeq_bufcount = 0
      mbuf_freeq_setup: mbuf_freeq_bufcount(6656,6656)
      Enterprise mode: 0x33fc0000
      Restoring Cal data from Flash
    
      ART Version : -48.0.0
      SW Image Version : -48.0.0.0.0
      Board Revision :  
      ar9300_attach: nf_2_nom -110 nf_2_max -60 nf_2_min -125 
      SPECTRAL : get_capability not registered
      HAL_CAP_PHYDIAG : Capable
      SPECTRAL : Need to fix the capablity check for RADAR (spectral_attach : 237)
      SPECTRAL : get_capability not registered
      HAL_CAP_RADAR   : Capable
      SPECTRAL : Need to fix the capablity check for SPECTRAL
       (spectral_attach : 242)
      SPECTRAL : get_capability not registered
      HAL_CAP_SPECTRAL_SCAN : Capable
      SPECTRAL : get_tsf64 not registered
      SPECTRAL : No ADVANCED SPECTRAL SUPPORT
      SPECTRAL :----- module attached
      Green-AP : Green-AP : Attached
    
      ath_get_caps[6323] rx chainmask mismatch actual 7 sc_chainmak 0
      ath_get_caps[6298] tx chainmask mismatch actual 7 sc_chainmak 0
      ath_attach_dfs[12907] dfsdomain 3
      dfs_attach: event log enabled by default
      SPECTRAL : module already attached
      qca0: Atheros 955X: memt=0x805d4e90, memh=0xb8100000 
      com0 at mainbus0: ns16550a, working fifo
      com0: console
      ehci0 at mainbus0ehci0: EHCI version 1.0
      usb0 at ehci0: USB revision 2.0
      uhub0 at usb0
      uhub0: QCA9558 EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
      uhub0: 1 port with 1 removable, self powered
      qcaled_998x0 at mainbus0
      ageth0 at mainbus0
      ath8327swsphy0 at ageth0 phy 0: Atheros QCA8337 10/100/1000 L2SW, rev. 6
      ath8327swsphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, auto
      ageth1 at mainbus0
      ath8327swlphy0 at ageth1 phy 1: Atheros QCA8337 10/100/1000 L2SW, rev. 6
      ath8327swlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, auto, 1000baseT-FDX FLAG0, 1000baseT-FDX FLAG1
      arpcieu0 at mainbus0:
      pci0 at arpcieu0 bus 0
      pci0: memory space enabled
      ath_pci_match
      qca1 at pci0 dev 0 function 0ath_pci_attach: LSDK-
      bus master
      disable ASPM on peregrine[0x80] lcr(0x10110000) --> (0x10110000)
       *********** Cascade *************
      qcaten1: WLAN MAC ADDRESS (98:f1:99:xx:xx:7f)
      __ol_ath_attach_alloc_scn: WLAN MAC ADDRESS (98:f1:99:xx:xx:7f) ic(0xc03a1000)
    
       ol_ath_pci_configure : num_desired MSI set to 0
    
       Using PCI Legacy Interrupt
      chip_id 0xa chip_revision 0x0 
    
       CLOCK PLL skipped 
      arpcieu1 at mainbus0:
      pci1 at arpcieu1 bus 1
      pci1: memory space enabled
      rtc: CLOCK INITIALIZED 
      kevt0: 
      logbuf: using 655360 bytes logging area
      md0: internal 27648 KB image area
      boot device: <unknown>
      root on md0a dumps on md0b
      root file system type: ffs
      Fri Jan  1 00:00:02 JST 2016
      /usr/local/www/.htpasswd file not exists.(ignore)
      Setting tty flags.
      net.inet6.ip6.forwarding: 0 -> 1
      net.inet6.ip6.accept_rtadv: 0 -> 0
      Building databases...
      mode switch: rt
      vathten0
      vathten1
      vathten4
      vathten2
      vathten3
      Starting wificonfig
      encrypt key mode AES
      encrypt key mode AES
      Starting evtmgr.
      Starting dlnamgr.
      Starting clid.
      Starting inetd.
      Starting procmon.
      Starting wzcm.
      Starting adp.
      Starting access_timer.
      Starting wdf.
      Starting cpu_therm_moni.
      Fri Jan  1 00:00:17 JST 2016
    
      NetBSD/scorpimips (Amnesiac) (console)
    
      login: 
    

WSR-1800AX4(無印/P/S) ヘッダメモ

構造

久しぶりに見直した際、なんとなく "0xFF でのxorっぽいな" とデコード試行したら正解だった

    0x0             0x4             0x8             0xc                
     +---------------------------------------------------------------+ 
0x00 |                        Encoded Data(xor)                  --->| 
     +---------------------------------------------------------------+ 
0x10 |--->                   (Encoded Data(xor))                 --->| 
     +---------------------------------------------------------------+ 
0x20 |--->                   (Encoded Data(xor))                     | 
     +---------------+-----------------------------------------------+ 
0x30 |   HDR CRC32   |                                                 
     +---------------+               |                                 
                                     | xor decode (0x0 - 0x30)         
                                     |                                 
                                     v                                 
                                                                       
    0x0             0x4             0x8             0xc                
     +---------------+---------------+-------------------------------+ 
0x00 |  Data CRC32   |  Data Length  |          ASCII data       --->| 
     +---------------+---------------+-------------------------------+ 
0x10 |---> ("FIRMWARE<prodid?>\x00<ver>\x00<prodname>")(reversed)--->| 
     +---------------------------------------------------------------+ 
0x20 |--->                                                           | 
     +---------------+-----------------------------------------------+ 
0x30 |   HDR CRC32   |                                                 
     +---------------+                                                 

HDR CRC32 はxorでエンコードされたヘッダ部分 (0x0 - 0x2F) を対象として算出した値

product name

WRTM から察するに製造はGemtekのようである

  • WSR-1800AX4: WRTM-353AX
  • WSR-1800AX4P: WRTM-353AX_P
  • WSR-1800AX4S: WRTM-353AX_S

2024年 OpenWrt活動振り返り

これは mstdn.maud.io Advent Calendar 2024 の記事です。

毎年何かしらの記事を書き散らしていますが、今年は2024年のOpenWrt活動を記憶の整理も兼ねて振り返ってみることにしました。

1月下旬のはじめ

 なんとなく市川大野のハードオフに行ってみたところ、ジャンクでWSR-2533DHPLSを発見。MediaTek MT7621A (MIPS 1004Kc 2C4T, 880MHz) 搭載であることを把握していたので少し迷って確保。

 ただ、2023年12月に実家からアパートに引っ越してまだ然程経っておらず、バタバタしていたのもあって作業開始は保留に。その間に他の海外勢が確保したらしく、PRが投げ込まれるなどした。これについてはWSR-2533DHPL2も絡んでくるので、続きはまた後で。

2月中旬頃

 突如としてELECOM公式の販売ルートで11ac (Wi-Fi 5)のAPであるWAB-I1750-PSがかなりの割引で販売され、一躍話題に。過去にOpenWrtでPRが投げ込まれていた(ただしその頃は既にクローズ済)こともあり、OpenWrtで動かそうとする動きも起きていた。

 個人的には、過去に上記PRを投げ込んだ方が作業していた際、それを眺めて気になって確保しており、しかし少し弄っただけで後は前述の方にお任せということで放置していた。

 しかし今回の盛り上がりを受けて、折角だからと仕舞い込んでいたWAB-I1750-PSを引っ張り出したほか、ハードウェアが近似であると予想できていたWAB-S600-PS, WAB-S1167-PS(+PoE用途でPanasonic GA-AS4TPoE+) も追加で調達し、まとめて投げ込むために作業を開始。 ハードウェアを調べ、放棄していた作業途中のコードを復活させて、前述の方の変更も取り込み、まとめ上げてPRを投げ込みマージされた。

 サポートがマージされた後、ふと気になってWAB-I1750-PSのみに搭載されている "CONSOLE" ポートを調べたところ、比較的容易に使用可能にできることがわかり、OpenWrtのシリアルコンソールとして構成したうえでPRを投げ込み、これもマージされた。

PoEで稼働中のWABシリーズ(左から600, 1167, 1750)

ちなみに、OpenWrtサポート作業中に使用するシリアルコンソールは内部のピンヘッダか、もしくは "SERVICE" ポートを過去に制作した基板を使用して接続していたものの、接続する為に都度筐体を開けるのは面倒だし、基板の方は他にCentury Systems MA-E3xxシリーズとの共用とした関係で面倒が発生していたので、3月頃に新しく "SERVICE" ポート用基板を設計して製造に投げた。この基板は今後東京方面のOSCの際に持ち込む予定なので、入用の方は声を掛けてください。

WABシリーズ "SERVICE" ポート用基板

3月上旬の終わり頃

 OSC 2024 Tokyo/Springに参加。今回も東海道らぐ展示ブースに便乗して置かせてもらい、

  • IIJ SA-W2
  • Fortinet FortiGate 52E
  • Fortinet FortiGate 30E
  • Panasonic Switch-M8eG PN28080K

の4機種を展示。FortiGate 52Eよりも認知度が高い50Eがいいかな?と思ったものの、この時50Eはアパートの最上位ルータとして稼働していたので、代打として52Eを持ち込んだ。内部にSSDを搭載する変わり種として良かったかも?

OSC 2024 Tokyo/Springでの展示

3月下旬

 ふらっと行った吉川のハードオフで、WSR-2533DHPL2とWMC-DLGST2(WMC-M1267GST2とWMC-S1267GS2のセット)を確保。

 WMCシリーズの2台については、これまでに投げ込んだELECOM WRC-*GS/GSV/GSTシリーズとほぼ共通のハードウェアを採用していることから、差分のみを記述してさっくり仕上げ、確保した翌日にはもうPRを投げ込み、少々時間を要したもののマージ達成。

 WSR-2533DHPL2に関しては、当時ハードウェアが近いWSR-2533DHPLSのサポートが他の方によって行われ、PRが投げられていたものの、NAND機特有の実装が抜けていることに気付いていた。この為、こちらでWSR-2533DHPL2とでコードを共通化したサポートを組み上げ、NAND機用の実装も追加したうえで前述の方に連絡の上PRを投げ込み、マージされた。

WMC-DLGST2とWSR-2533DHPL2、吉川ハードオフ前で

4月上旬

 3月末頃確保していた、Check Point V-80の作業を開始。聞いていた話では内部にMiniPCIeスロットとMicroSDカードスロットがあるということだったが、確保した個体では実装無しで悲しくなった。

 Marvellの64bit ARMが初めてであること、Linux Kernelの64bit ARMプラットフォームにおける仕様などの関係で手間取りつつ、ある程度問題無く動作するようになったので、PRを投入。ただ、必要が生じてOpenWrtのベースシステム周りにもいくらか手を入れた為か、OpenWrtチームメンバーからの反応が鈍く、現在停滞気味。

Check Point V-80(下)とFortinet FortiGate 30E(上) サイズ感はほぼ同じ

4月下旬

 諦め悪く、NetBSDベースなNEC Atermシリーズの作業を再開。2019年頃は某氏の私的forkのU-Bootを改変して使用していたものの、mainline U-BootにもAtheros AR934xのサポートが存在していることを知り、そちらでのサポートに挑戦した。

 結果として、アドレスなどを正しく構成してやれば拍子抜けしてしまうほどあっさりとAtermでのU-Bootの起動に成功した。ただ、ルータ内部のFlashストレージに存在するブートローダ領域があまりにも小さく、そこに収まりきるU-Bootを生成できるコンフィグを探るのに非常に時間を要した。最終的にかなりの機能やコマンドを削ったものの、一応は文鎮化時に復旧できるようにしたほか、U-BootからブートされるLinux Kernelも正常に動作するところまで持って行くことができた。

 そのほか、公式ファームウェアから投げ込めるOpenWrtファームウェアの生成などで手間取ったものの解決し、PRを投げ込んでマージされた。

その辺りのメモ記事:

memo205.hatenablog.jp

5月上旬のはじめ

 諦めの悪さ第2弾。過去に手を付けたものの、ブートローダの問題で中止し廃棄したNEC Aterm WG1400HPを再度確保し、今度はmainline U-BootにおけるQualcomm Atheros QCA955x SoCサポートを追加するところからトライ。

 OSどころかブートローダから弄る関係上、トラブル時にはブートローダを通した復旧が不可能となり完全に文鎮化することから、Flashチップを基板から剥がして変換基板に載せ、それを載せたユニバーサル基板を通してFlashライタと簡単に接続できるようにし、文鎮化からの復旧を前提とした体制を構築して作業を行った。QSDKやQCA955xを搭載するtp-link機のGPLソースコード、既存のQCA956xサポートを参考にして作業を進め、時間は掛ったものの、なんとか成功。

 その後WG1800HP, WG1800HP2も調達してコードを共通化し取りまとめ、PRを投げ込んでマージされた。

WG1400HPと分離されたFlashチップ

5月上旬の終わり頃

 これまた突如として秋葉原のショップなどでWRC-X1800GSが投げ売りされ始めた。当初眺めているだけだったものの、とある方より提供の話を頂いてそれを受け、作業開始。

 既にサポートされている11ac (Wi-Fi 5) 世代のWRC-*GS/GSV/GSTシリーズとは恐らく異なる製造元であり、またハードウェア自体もSoCは同一ながら無線他のハードウェアが異なっている為1から組み立てた。基板上のUART用ピンヘッダやファームウェア内部に存在するフラグ等を見るに、I-O DATAのMitraStar Technology Corp. (MSTC) 製の機種と近いようであった。

 少し手間取ったもののサポートを完了し、PRを投げ込んでマージされた。

WRC-X1800GS(簡易包装)

5月中旬

 Twitter(現X)で、10GbE対応スイッチが話題に。そのうちの一つであるSKS8300-8XはSFP+ポートを8つ搭載しながらも比較的安価であることから人気に火が付き、ネットユーザーにより解析が行われるなどしてRTL9303搭載であることが判明。

 これもとある方(WRC-X1800GSとは別の方)からGitHub Sponsorsで支援を頂いたので、Amazonで購入し作業開始。

 ただ、よくあるRealtek機と異なりKernelがJFFS2内に格納されていたり、そのバイナリが暗号化されている為OpenWrtでもそれに落とし込む必要が生じるなどしている他、それらを後回しにしてハードウェアサポートに手を付けたものの、どうにもSFP+ポートが接続されているRTL9303の SerDes (Serializer/Deserializer) が接続を検知できない状態であり、リンクが確立できず。ドライバをひっくり返して探ってみるも原因がわからず、現在まで保留中。

 少し前にrealtek targetのドライバに修正が入っていて気になっているので、再度の検証を予定。

SPI-NOR Flash周辺を弄っていた時にやらかして一部データを吹き飛ばして文鎮化、もう一台調達して復旧している図

9月上旬の終わり頃

 ふらっと行った吉川のハードオフにて、WSC-X1800GSを確保。8月の半ば頃に豊四季のハードオフでWMC-X1800GSTを先に確保しており、ハードウェアがほぼ共通であることからコードも共通化しサポートを行った。

 当初WRC-X1800GSと同じハードウェアかな?と思っていたものの、実際見てみると近くはありながらもLED等の割り当てが異なっており、WRCとは共通化できず別物として組み立てることとなった。

 "WPS" LEDがドライバ側で未実装と思われる仕組みを使用している為にOpenWrtでは使用不可であるものの、それ以外は特に問題は無く、既知のプラットフォームであることから然程時間は掛らずサポート作業を完了し、PRを投げ込んでマージされた。

WSC-X1800GS

10月中旬

 OpenWrt ForumのCheck Point機のスレッドで見掛けて気になっていた、V-81を思い切って確保。V-80以上に内部がゴツく、SFP+ではないのは少々残念ながらもSFPポートを搭載。

 SoCが近い系統故にV-80とコードを共通化できるかも?と思ったものの、SoC内のペリフェラルの取り扱いが予想以上にV-80搭載のものと異なっており、やむなく共通化を断念し詰めていくことに。V-81のSFPポートはRJ-45ポート1つとコンボになっており、ブート時に接続されいてる方で構成されるものの、一度切断すると再度SFPポートを使用するにはethtoolで明示的に切り替える必要がある模様。メーカー公式ドキュメントなどで明確にSFPポートが供給できる電力量は記載されていないものの、公式オプションとしてDSL用SFPモジュールが提供されており、ネット上で見付かる同様のモジュールでの電力仕様から、V-81のSFPポートの電力上限を設定した。なので、NTTの小型ONUも多分動作するようになっていると思われる。

 ちなみに、LAN側8ポートはスイッチングハブチップがSoCと10GbEで接続されており、トラフィックの処理にかなりの余裕があると思われる。

 ハードウェア部分は共通化を断念したものの、ファームウェア生成などは同じである為共通化しPRを投げたものの、こちらもまたOpenWrtのベースシステムの変更量故か停滞中...。

V-81 リア側

10月下旬

 OSC 2024 Tokyo/Fallに参加。今回も相変わらず東海道らぐに便乗し、

  • I-O DATA HDL2-A
  • NEC Aterm WG1400HP
  • Fortinet FortiGate 50E
  • Check Point V-80
  • Check Point V-81

の5機種を置かせて頂いた。後から気付いたけど、5台中マージ済みが2機種のみで、後はまだマージされていないというのはどうなんだ...。

OSC 2024 Tokyo/Fallでの展示

11月上旬

 HDL-A/HDL2-Aの作業を通して、同系統のMCUを載せていることから気になっていたHDL-XVを確保。

 こちらも数多くの機能をSoCではなくMCUが担っており、既に作成したHDL-A/HDL2-AのMCU用ドライバがある程度使えるかと思ったものの、LEDほかでいくらか差異があり、調整する必要が生じた。具体的にはLEDの色の数や点灯/点滅の割り当て違いなど。

 また、HDL-A/HDL2-Aとは異なりHDL-XV(+多分HDL-XR)ではSoCのEthernetではなくIntel 82574LをNICとして搭載しており、ネットワークを機能させる為にはドライバを追加したり、WoLを使用するにはethtoolで操作する必要が生じるなどした。

 現在はおおよそ大体の機能が動作する状態となり、細かいところを気付いたときに修正/改善中。HDL-XRは今のところ確保は未定。

HDL-XVにシリアルコンソールのUARTを接続

11月末頃

 WAB-I1750-PSにおいて、以前見掛けて気になりながらも対処を忘れていた、他の方によるコミットに起因してトラブルが起きていることを把握し、その修正を実施。

 具体的には、MACアドレスなど個体の情報を格納している領域を読み取るドライバが認識に失敗してデバイスが登録されず、WAB-I1750-PSのLANポート2つの内片方がそれに巻き込まれて認識されなくなり、もう片方の1ポートしか使用できない状態に陥っていた。基本的には前述の過去のコミットを撤回するのが妥当である為それを行い、正しく動作することを確認したうえでPRを投げ込んでマージされた。



2023年の12月からアパートへ移り、生活費諸々が全部自分に掛かってくるようになった関係上デバイスの調達は以前に比べて低調になったものの、振り返ってみると案外色々と手を出していてビビる。

11月末に吉川のハードオフで偶然Brainuxに対応しているらしいPW-SA2を見付けて確保し、ひとまずBrainuxをざっくり一通り動かしてみるなどした。が、それだけでは飽き足らず、搭載しているSoC(NXP IMX28シリーズ)がOpenWrtでもサポートされている (mxs target) ことから、そちらでもサポートできないかなぁとぼんやり思案中...。来年(2025年)もぼちぼちやっていきます。

mstdn.maud.io Advent Calendar、明日12/09は ゆんたん (@yuntan_t)氏です。

HDL-XV OpenWrtログ

ドライバ周りも大体調整終わったのでメモも兼ねて

  1. ブート
  2. 情報表示
  3. SSD追加接続
  4. 電源ボタンによるpoweroff
============================================================
  HDL-XV series Initial boot loader

  Copyright (C) 2008-2010 I-O DATA DEVICE, INC.
============================================================
 ** LOADER **
 ** MARVELL BOARD: HDLXV LE 

U-Boot 1.1.4 (Feb  2 2011 - 09:25:50) MV : 3.4.6 (I-O DATA 0.27)

U-Boot code: 00600000 -> 0066FFF0  BSS: -> 006AF730

Soc: 88F6281 A1 (DDR2)
CPU running @ 1000Mhz L2 running @ 500Mhz
SysClock = 250Mhz , TClock = 166Mhz 

DRAM CAS Latency = 3 tRP = 3 tRAS = 9 tRCD=3
DRAM CS[0] base 0x00000000   size 256MB 
DRAM Total size 256MB  16bit width
[8192kB@f8000000] Flash:  8 MB
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done

CPU : Marvell Feroceon (Rev 1)

Streaming disabled 
Write allocate disabled


USB 0: host mode
PCI 0: PCI Express Root Complex Interface
PEX interface detected Link X1
Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  0 

Reset IDE: 
Marvell Serial ATA Adapter
Integrated Sata device found
Port Multiplier found @ 0 1. Vendor: 11ab ports: 4
Port Multiplier found @ 0 1. Vendor: 11ab ports: 4
[0 1 0]: Enable DMA mode
  Device 1 @ 0 1 0:
            Model: KLEVV SSD NEO N500 120GB                
            Firm: R1001C0 
            Ser#: E201904120051111    
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 114473.4 MB = 111.7 GB (0x000000000DF94BB0 x 512)

reading initrd.xv

68 bytes read
reading uImage.xv

3285691 bytes read
## Booting image at 00800000 ...
   Image Name:   ARM OpenWrt Linux-6.6.61
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3285627 Bytes =  3.1 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 6.6.61 (musashino205@TAIHA.NET) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 13.3.0 r28114+38-84665993d6) 13.3.0, GNU ld (GNU Binutils) 2.42) #0 Sat Nov 23 12:23:56 2024
[    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: I-O DATA HDL-XV
[    0.000000] earlycon: ns16550a0 at MMIO 0xf1012000 (options '115200n8')
[    0.000000] printk: bootconsole [ns16550a0] enabled
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000] Kernel command line: console=ttyS0,115200 mtdparts=spi_flash:448k(u-boot),64k@448k(env),-(jffs2) root=/dev/md2 initrd=0x2000040,16M rw model=HDL-XV earlycon root=PARTUUID=5452574f-2211-4433-5566-778899aabb02 rootwait=20
[    0.000000] Unknown kernel command line parameters "mtdparts=spi_flash:448k(u-boot),64k@448k(env),-(jffs2) model=HDL-XV", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64960
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 232080K/262144K available (6991K kernel code, 591K rwdata, 1780K rodata, 1024K init, 223K bss, 30064K 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] clocksource: orion_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 11467562657 ns
[    0.000002] sched_clock: 32 bits at 167MHz, resolution 6ns, wraps every 12884901885ns
[    0.007837] Switching to timer-based delay loop, resolution 6ns
[    0.013877] Calibrating delay loop (skipped), value calculated using timer frequency.. 333.33 BogoMIPS (lpj=1666666)
[    0.024416] CPU: Testing write buffer coherency: ok
[    0.029452] pid_max: default: 32768 minimum: 301
[    0.047545] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.054887] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.074759] RCU Tasks Trace: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.
[    0.084358] Setting up static identity map for 0x100000 - 0x10003c
[    0.090862] mvebu-soc-id: MVEBU SoC ID=0x6281, Rev=0x3
[    0.103919] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.113782] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.124036] pinctrl core: initialized pinctrl subsystem
[    0.134379] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.141098] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.149743] thermal_sys: Registered thermal governor 'step_wise'
[    0.149808] cpuidle: using governor ladder
[    0.160449] Feroceon L2: Enabling L2
[    0.164052] Feroceon L2: Cache support initialised.
[    0.174249] No ATAGs?
[    0.186778] SCSI subsystem initialized
[    0.191220] usbcore: registered new interface driver usbfs
[    0.196732] usbcore: registered new interface driver hub
[    0.202088] usbcore: registered new device driver usb
[    0.208849] clocksource: Switched to clocksource orion_clocksource
[    0.228895] NET: Registered PF_INET protocol family
[    0.234019] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.242410] tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.250858] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.258577] TCP established hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.266251] TCP bind hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.273431] TCP: Hash tables configured (established 2048 bind 2048)
[    0.280512] MPTCP token hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.287982] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.294523] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.302285] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.307960] PCI: CLS 0 bytes, default 32
[    0.314321] Unpacking initramfs...
[    0.558782] Initramfs unpacking failed: invalid magic at start of compressed archive
[    0.631037] Freeing initrd memory: 16388K
[    0.635656] workingset: timestamp_bits=14 max_order=16 bucket_order=2
[    0.662238] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.668058] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.684566] kirkwood-pinctrl f1010000.pin-controller: registered pinctrl driver
[    0.693192] gpio gpiochip0: Static allocation of GPIO base is deprecated, use dynamic allocation.
[    0.702904] gpio gpiochip1: Static allocation of GPIO base is deprecated, use dynamic allocation.
[    0.712279] mvebu-pcie mbus@f1000000:pcie@82000000: host bridge /mbus@f1000000/pcie@82000000 ranges:
[    0.721442] mvebu-pcie mbus@f1000000:pcie@82000000:      MEM 0x00f1040000..0x00f1041fff -> 0x0000040000
[    0.730839] mvebu-pcie mbus@f1000000:pcie@82000000:      MEM 0xffffffffffffffff..0x00fffffffe -> 0x0100000000
[    0.740736] mvebu-pcie mbus@f1000000:pcie@82000000:       IO 0xffffffffffffffff..0x00fffffffe -> 0x0100000000
[    0.751103] mvebu-pcie mbus@f1000000:pcie@82000000: PCI host bridge to bus 0000:00
[    0.758649] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.764143] pci_bus 0000:00: root bus resource [mem 0xf1040000-0xf1041fff] (bus address [0x00040000-0x00041fff])
[    0.774295] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xefffffff]
[    0.781166] pci_bus 0000:00: root bus resource [io  0x1000-0xeffff]
[    0.787502] pci 0000:00:01.0: [11ab:6281] type 01 class 0x060400
[    0.794931] PCI: bus0: Fast back to back transfers disabled
[    0.800513] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    0.808649] pci 0000:01:00.0: [8086:10d3] type 00 class 0x020000
[    0.814682] pci 0000:01:00.0: reg 0x10: [mem 0x40000000-0x4001ffff]
[    0.820967] pci 0000:01:00.0: reg 0x18: [io  0xf0000000-0xf000001f]
[    0.827223] pci 0000:01:00.0: reg 0x1c: [mem 0x40020000-0x40023fff]
[    0.833614] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    0.839962] PCI: bus1: Fast back to back transfers disabled
[    0.845513] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    0.852145] pci 0000:00:01.0: BAR 8: assigned [mem 0xe0000000-0xe00fffff]
[    0.858928] pci 0000:00:01.0: BAR 7: assigned [io  0x10000-0x10fff]
[    0.865181] pci 0000:01:00.0: BAR 0: assigned [mem 0xe0000000-0xe001ffff]
[    0.871968] pci 0000:01:00.0: BAR 3: assigned [mem 0xe0020000-0xe0023fff]
[    0.878737] pci 0000:01:00.0: BAR 2: assigned [io  0x10000-0x1001f]
[    0.884996] pci 0000:00:01.0: PCI bridge to [bus 01]
[    0.889958] pci 0000:00:01.0:   bridge window [io  0x10000-0x10fff]
[    0.896210] pci 0000:00:01.0:   bridge window [mem 0xe0000000-0xe00fffff]
[    0.903694] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.911469] printk: console [ttyS0] disabled
[    0.916125] f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 26, base_baud = 10416666) is a 16550A
[    0.925112] printk: console [ttyS0] enabled
[    0.925112] printk: console [ttyS0] enabled
[    0.933457] printk: bootconsole [ns16550a0] disabled
[    0.933457] printk: bootconsole [ns16550a0] disabled
[    0.964280] f1012100.serial: ttyS1 at MMIO 0xf1012100 (irq = 27, base_baud = 10416666) is a 16550A
[    0.973442] serial serial0: tty port ttyS1 registered
[    0.997949] loop: module loaded
[    1.002089] sata_mv f1080000.sata: slots 32 ports 2
[    1.014835] scsi host0: sata_mv
[    1.020593] scsi host1: sata_mv
[    1.023988] landisk-r8c serial0-0: MCU: HDL-XV-0 v0.88
[    1.032191] ata1: SATA max UDMA/133 irq 28
[    1.036284] ata2: SATA max UDMA/133 irq 28
[    1.047094] spi-nor spi0.0: m25px64 (8192 Kbytes)
[    1.052733] 3 fixed-partitions partitions found on MTD device spi0.0
[    1.059105] Creating 3 MTD partitions on "spi0.0":
[    1.063883] 0x000000000000-0x000000070000 : "u-boot"
[    1.070604] 0x000000070000-0x000000080000 : "u-boot-env"
[    1.077562] 0x000000080000-0x000000800000 : "jffs2"
[    1.087831] orion-ehci f1050000.ehci: EHCI Host Controller
[    1.093384] orion-ehci f1050000.ehci: new USB bus registered, assigned bus number 1
[    1.101197] orion-ehci f1050000.ehci: irq 29, io mem 0xf1050000
[    1.128872] orion-ehci f1050000.ehci: USB 2.0 started, EHCI 1.00
[    1.135726] hub 1-0:1.0: USB hub found
[    1.140331] hub 1-0:1.0: 1 port detected
[    1.144812] usbcore: registered new interface driver usb-storage
[    1.151061] i2c_dev: i2c /dev entries driver
[    1.157308] orion_wdt: Initial timeout 25 sec
[    1.171747] marvell-cesa f1030000.crypto: CESA device successfully registered
[    1.180896] NET: Registered PF_INET6 protocol family
[    1.188923] Segment Routing with IPv6
[    1.192691] In-situ OAM (IOAM) with IPv6
[    1.196734] NET: Registered PF_PACKET protocol family
[    1.201815] 8021q: 802.1Q VLAN Support v1.8
[    1.258114] clk: Disabling unused clocks
[    1.373539] ata1: SATA link down (SStatus 0 SControl F300)
[    1.428863] usb 1-1: new high-speed USB device number 2 using orion-ehci
[    1.630378] hub 1-1:1.0: USB hub found
[    1.634681] hub 1-1:1.0: 2 ports detected
[    1.878867] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl F300)
[    1.885823] ata2.15: Port Multiplier 1.2, 0x11ab:0x4140 r193, 4 ports, feat 0x5/0x1f
[    1.906528] ata2.00: hard resetting link
[    2.409123] ata2.01: hard resetting link
[    2.742912] ata2.02: hard resetting link
[    3.072916] ata2.03: hard resetting link
[    3.431171] ata2.00: ATA-9: KLEVV SSD NEO N500 120GB, R1001C0, max UDMA/133
[    3.438112] ata2.00: 234441648 sectors, multi 1: LBA48 NCQ (depth 31/32)
[    3.481167] ata2.00: configured for UDMA/133
[    3.485620] ata2: EH complete
[    3.489098] scsi 1:0:0:0: Direct-Access     ATA      KLEVV SSD NEO N5 1C0  PQ: 0 ANSI: 5
[    3.498940] sd 1:0:0:0: [sda] 234441648 512-byte logical blocks: (120 GB/112 GiB)
[    3.506445] sd 1:0:0:0: [sda] Write Protect is off
[    3.511327] sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    3.520449] sd 1:0:0:0: [sda] Preferred minimum I/O size 512 bytes
[    3.531475]  sda: sda1 sda2 sda3
[    3.535296] sd 1:0:0:0: [sda] Attached SCSI disk
[    3.549685] EXT4-fs (sda2): mounted filesystem ff313567-e9f1-5a5d-9895-3ba130b4a864 r/w with ordered data mode. Quota mode: disabled.
[    3.561732] VFS: Mounted root (ext4 filesystem) on device 8:2.
[    3.571685] Freeing unused kernel image (initmem) memory: 1024K
[    3.577605] Run /sbin/init as init process
[    3.605103] init: Console is alive
[    3.608748] init: - watchdog -
[    3.627169] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.636898] pps_core: LinuxPPS API ver. 1 registered
[    3.641890] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    3.657585] PTP clock support registered
[    3.674001] button_hotplug: loading out-of-tree module taints kernel.
[    3.680966] Button Hotplug driver version 0.4.1
[    3.710651] rtc-rs5c372 0-0032: rs5c372a found, 24hr
[    3.723201] rtc-rs5c372 0-0032: registered as rtc0
[    3.729849] rtc-rs5c372 0-0032: setting system clock to 2024-11-23T12:35:31 UTC (1732365331)
[    3.745194] input: f1012100.serial:mcu:buttons as /devices/platform/ocp@f1000000/f1012100.serial/serial0/serial0-0/f1012100.serial:mcu:buttons/input/input0
[    3.759466] input: f1012100.serial:mcu:hdds as /devices/platform/ocp@f1000000/f1012100.serial/serial0/serial0-0/f1012100.serial:mcu:hdds/input/input1
[    3.814015] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.836339] init: - preinit -
[    6.408891] random: crng init done
Cannot parse config file '/etc/fw_env.config': No such file or directory
Failed to find NVMEM device
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
[   10.820466] mount_root: mounting /dev/root with options 
[   10.826385] EXT4-fs (sda2): re-mounted ff313567-e9f1-5a5d-9895-3ba130b4a864 r/w. Quota mode: disabled.
[   10.835988] mount_root: loading kmods from internal overlay
[   10.850991] kmodloader: loading kernel modules from //etc/modules-boot.d/*
[   10.859383] kmodloader: done loading kernel modules from //etc/modules-boot.d/*
[   11.314647] block: attempting to load /tmp/overlay/upper/etc/config/fstab
[   11.321680] block: unable to load configuration (fstab: Entry not found)
[   11.328501] block: attempting to load /tmp/overlay/etc/config/fstab
[   11.335002] block: unable to load configuration (fstab: Entry not found)
[   11.341845] block: attempting to load /etc/config/fstab
[   11.348295] block: extroot: not configured
[   11.352937] block: attempting to load /etc/config/fstab
[   11.358689] block: extroot: not configured
[   11.365347] urandom-seed: Seeding with /etc/urandom.seed
[   11.394097] procd: - early -
[   11.397148] procd: - watchdog -
[   11.992884] procd: - watchdog -
[   12.003409] procd: - ubus -
[   12.074225] procd: - init -
Please press Enter to activate this console.
[   12.661550] urngd: jent-rng init failed, err: 11
[   13.075424] kmodloader: loading kernel modules from /etc/modules.d/*
[   13.205631] hwmon hwmon0: temp1_input not attached to any thermal zone
[   13.236943] e1000e: Intel(R) PRO/1000 Network Driver
[   13.241958] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[   13.248074] pci 0000:00:01.0: enabling device (0140 -> 0143)
[   13.253918] e1000e 0000:01:00.0: Interrupt Throttling Rate (ints/sec) set to simplified (2000-8000 ints) mode
[   13.263811] e1000e 0000:01:00.0: Invalid Interrupt Mode value specified (1) defaulting to 0 (legacy)
[   13.377389] e1000e 0000:01:00.0 0000:01:00.0 (uninitialized): registered PHC clock
[   13.486601] e1000e 0000:01:00.0 eth0: (PCI Express:2.5GT/s:Width x1) 34:76:c5:1d:55:02
[   13.494542] e1000e 0000:01:00.0 eth0: Intel(R) PRO/1000 Network Connection
[   13.501472] e1000e 0000:01:00.0 eth0: MAC: 3, PHY: 8, PBA No: FFFFFF-0FF
[   13.554396] kmodloader: done loading kernel modules from /etc/modules.d/*
[   20.334533] 8021q: adding VLAN 0 to HW filter on device eth0
[   20.350783] br-lan: port 1(eth0) entered blocking state
[   20.356017] br-lan: port 1(eth0) entered disabled state
[   20.361304] e1000e 0000:01:00.0 eth0: entered allmulticast mode
[   20.367478] e1000e 0000:01:00.0 eth0: entered promiscuous mode
[   22.829937] e1000e 0000:01:00.0 eth0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
[   22.839190] br-lan: port 1(eth0) entered blocking state
[   22.844405] br-lan: port 1(eth0) entered forwarding state



BusyBox v1.36.1 (2024-11-23 10:45:09 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r28146+28-52b6c92479
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:~# ubus call system board
{
        "kernel": "6.6.61",
        "hostname": "OpenWrt",
        "system": "Feroceon 88FR131 rev 1 (v5l)",
        "model": "I-O DATA HDL-XV",
        "board_name": "iodata,hdl-xv",
        "rootfs_type": "ext4",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r28146+28-52b6c92479",
                "target": "kirkwood/nas",
                "description": "OpenWrt SNAPSHOT r28146+28-52b6c92479",
                "builddate": "1732364636"
        }
}
root@OpenWrt:~# ubus call system info
{
        "localtime": 1732366615,
        "uptime": 1289,
        "load": [
                0,
                0,
                0
        ],
        "memory": {
                "total": 255479808,
                "free": 237465600,
                "shared": 139264,
                "buffered": 1605632,
                "available": 215961600,
                "cached": 4575232
        },
        "root": {
                "total": 483668,
                "free": 473660,
                "used": 10008,
                "avail": 463668
        },
        "tmp": {
                "total": 124744,
                "free": 124608,
                "used": 136,
                "avail": 124608
        },
        "swap": {
                "total": 0,
                "free": 0
        }
}
root@OpenWrt:~# fdisk -l /dev/sda
GPT PMBR size mismatch (1034271 != 234441647) will be corrected by write.
Disk /dev/sda: 111.79 GiB, 120034123776 bytes, 234441648 sectors
Disk model: KLEVV SSD NEO N5
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 5452574F-2211-4433-5566-778899AABB00

Device     Start     End Sectors  Size Type
/dev/sda1   2048   34815   32768   16M Linux filesystem
/dev/sda2  34816 1034239  999424  488M Linux filesystem
/dev/sda3     34    2047    2014 1007K BIOS boot

Partition table entries are not in disk order.
root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               472.3M      9.8M    452.8M   2% /
tmpfs                   121.8M    136.0K    121.7M   0% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
root@OpenWrt:~# mount
/dev/root on / type ext4 (rw,noatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime)
tmpfs on /dev type tmpfs (rw,nosuid,noexec,noatime,size=512k,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,noatime,mode=600,ptmxmode=000)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,noatime)
bpffs on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,noatime,mode=700)
root@OpenWrt:~# 
root@OpenWrt:~# [ 1338.201189] ata2.02: ATA-9: KLEVV SSD NEO N500 120GB, R1001C0, max UDMA/133
[ 1338.208153] ata2.02: 234441648 sectors, multi 1: LBA48 NCQ (depth 31/32)
[ 1338.251183] ata2.02: configured for UDMA/133
[ 1338.259316] scsi 1:2:0:0: Direct-Access     ATA      KLEVV SSD NEO N5 1C0  PQ: 0 ANSI: 5
[ 1338.287615] hwmon hwmon1: temp1_input not attached to any thermal zone
[ 1338.294682] sd 1:2:0:0: [sdb] 234441648 512-byte logical blocks: (120 GB/112 GiB)
[ 1338.302232] sd 1:2:0:0: [sdb] Write Protect is off
[ 1338.307092] sd 1:2:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1338.316225] sd 1:2:0:0: [sdb] Preferred minimum I/O size 512 bytes
[ 1338.332178]  sdb: sdb1
[ 1338.334924] sd 1:2:0:0: [sdb] Attached SCSI disk

root@OpenWrt:~# [ 1353.592610] br-lan: port 1(eth0) entered disabled state
[ 1353.609240] e1000e 0000:01:00.0 eth0: left allmulticast mode
[ 1353.614914] e1000e 0000:01:00.0 eth0: left promiscuous mode
[ 1353.620756] br-lan: port 1(eth0) entered disabled state
[ 1353.715230] e1000e 0000:01:00.0 eth0: NIC Link is Down
[ 1354.594277] EXT4-fs (sda2): re-mounted ff313567-e9f1-5a5d-9895-3ba130b4a864 ro. Quota mode: disabled.
[ 1357.873265] sd 1:2:0:0: [sdb] Synchronizing SCSI cache
[ 1357.878577] sd 1:2:0:0: [sdb] Stopping disk
[ 1357.938923] sd 1:0:0:0: [sda] Synchronizing SCSI cache
[ 1357.944155] sd 1:0:0:0: [sda] Stopping disk
[ 1358.009465] e1000e: EEE TX LPI TIMER: 00000000
[ 1358.016690] reboot: Power down

HDL-XV R8C関連メモ

Linux Kernel

serdev

  • serdev受信時のcountは末尾の \0 を含まない
    • strscpy() でコピーする場合は \0 終端分を含めた count + 1 を渡す
      • この時、serdevのbuf内のcountと同じ長さである有効データが \0 で終端されていない場合、コピー先は有効データが \0 で終端されて返されるが戻り値が -E2BIG になることに留意する
  • serdevの受信バッファはcount上限以降に無関係のデータが付いていることが度々ある?
    • count内の有効データが \0 で終端されておらず、何も考えずにコピーすると無関係データを巻き込んで事故る
    • 他の用途のバッファと共用している?
      • count以降にEthernetやBlockデバイス絡みの文字列が混じることがある

input

  • 同一キーコード (KEY_*, BTN_*, SW_*, etc?) に対する、一つ前と同じ入力値は、input_event() (+ input_sync()) による送信を受けてもhandler等へのイベント送信を発生させない?
    • input_dev.keycode の登録状況に依存する?
    • input_dev側で前回の値を保持している可能性があり、初期値も input_event() または input_report_*() により送信されないと、実際の初期値からLinux Kernel側における初期値と同値へと変化した場合にLinux Kernel側で変化が検出できず、handler等へのイベント送信が発生しない可能性
      • 例:

        初期 初回変化 結果
        実: pressed (1)
        Linux: released (0)
        実: released (0)
        Linux: released (0)
        不検出

R8C

  • ボタン押下のタイミングによっては、コマンドのリプライとイベントコードが個々の \0 終端無しの改行による連続データで送られてくることがある?

HDL-XVのWake on LAN (Magic Packet) 有効化

Intel 82574Lを搭載しており、ethtoolでの通常のWoL有効化だけでは足りず、EEPROM内の値の変更が必要となる場合が存在する模様

参考: __resetscript_post_reset()(メーカーファームウェアreset.sh

# ethtool -e eth0
Offset          Values
------          ------
0x0000:         34 76 c5 1d 55 02 20 04 46 f7 90 10 ff ff ff ff 
0x0010:         ff ff ff ff 6b 02 00 00 86 80 d3 10 ff ff 58 81 
0x0020:         00 00 01 20 74 7e ff ff 00 10 c8 00 00 00 04 27 
0x0030:         c9 6c 50 21 3e 07 0b 46 07 2d 40 01 00 f0 84 06 
0x0040:         00 60 80 00 04 0f ff 7f 01 49 ec 92 5c fc 83 f0 
0x0050:         28 00 33 02 50 00 1f 7d 61 19 53 04 a0 00 ff ff 
0x0060:         ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
0x0070:         ff ff ff ff ff ff ff ff ff ff 30 01 ff ff 64 d5 
0x0080:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0x0090:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0x00a0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0x00b0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0x00c0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0x00d0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0x00e0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0x00f0:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
# ethtool -e eth0 | grep "^0x0040" | cut -d' ' -f10
49
# ethtool -E eth0 magic 0x10d38086 offset 0x49 value 0x4d
# ethtool -e eth0 | grep "^0x0040" | cut -d' ' -f10
4d
# ethtool eth0 | grep "^\sWake-on: "
        Wake-on: d
# ethtool -s eth0 wol g
# ethtool eth0 | grep "^\sWake-on: "
        Wake-on: g

調べてみたところ、0x490x4d への変更に当たって立てているビットはIntel 82574Lのデータシートに記載されている 6.1.1.27 Initialization Control 3 (Word 0x24)Bit 10: APM Enable の様である。APMWoLに相当する機能。

Marvell Armada 7K (88F70x0)/8K (88F80x0)のcp110 pinctrl

  • Armada 7K (88F70x0)は一つのcp110ユニット (cp0)が全てのピンを管理し、一部ピン (39-43)は利用不可
  • Armada 8K (88F80x0)は二つのcp110ユニット (cp0, cp1)が大体半分ずつを管理し、master (cp0) はピン32~62、slave (cp1)はピン0~31という、ユニットの数字とは逆の割り当て
    • cp1EthernetにRGMIIを使用する場合のpinctrl設定では、RGMIIのピン44~55は cp0 が管理する範囲である為、cp1 ではなく cp0 のpinctrlに置いたpinmuxノードをバインドする必要がある
      cp1 のpinctrlに置いた場合:

      [    0.677752] armada-cp110-pinctrl f4440000.system-controller:pinctrl: unsupported function ge1 on pin mpp44
      [    0.687454] armada-cp110-pinctrl f4440000.system-controller:pinctrl: unsupported function ge1 on pin mpp45
      [    0.697156] armada-cp110-pinctrl f4440000.system-controller:pinctrl: unsupported function ge1 on pin mpp46
      [    0.706857] armada-cp110-pinctrl f4440000.system-controller:pinctrl: unsupported function ge1 on pin mpp47
      [    0.716556] armada-cp110-pinctrl f4440000.system-controller:pinctrl: unsupported function ge1 on pin mpp48
      [    0.726255] armada-cp110-pinctrl f4440000.system-controller:pinctrl: unsupported function ge1 on pin mpp49
      [    0.735958] armada-cp110-pinctrl f4440000.system-controller:pinctrl: unsupported function ge1 on pin mpp50
      [    0.745658] armada-cp110-pinctrl f4440000.system-controller:pinctrl: unsupported function ge1 on pin mpp51
      [    0.755358] armada-cp110-pinctrl f4440000.system-controller:pinctrl: unsupported function ge1 on pin mpp52
      [    0.765057] armada-cp110-pinctrl f4440000.system-controller:pinctrl: unsupported function ge1 on pin mpp53
      [    0.774757] armada-cp110-pinctrl f4440000.system-controller:pinctrl: unsupported function ge1 on pin mpp54
      [    0.784460] armada-cp110-pinctrl f4440000.system-controller:pinctrl: unsupported function ge1 on pin mpp55
      [    0.794161] pinctrl core: failed to register map default (0): invalid type given
      
mpp Armada 7K (88F70x0)
cp0
Armada 8K (88F80x0)
cp0 (master) cp1 (slave)
0-31
32-62 32-38
39-43
44-62

参考

elixir.bootlin.com