いずれもメーカーブートローダからブートしたOpenWrt
DDR
dump
root@OpenWrt:/# for addr in $(seq 0 4 $((0x15c))); do ADDR=$((0x18000000 + addr)); VAL=$(devmem $ADDR 32); printf "0x%08x: $VAL\n" $ADDR; done 0x18000000: 0xEFAAF33B 0x18000004: 0xAEB2E1A8 0x18000008: 0x00000853 0x1800000c: 0x00000402 0x18000010: 0x00000000 0x18000014: 0x00004098 0x18000018: 0x000000FF 0x1800001c: 0x00000010 0x18000020: 0x00000010 0x18000024: 0x00000010 0x18000028: 0x00000010 0x1800002c: 0x00000000 0x18000030: 0x00000000 0x18000034: 0x00000000 0x18000038: 0x00513021 0x1800003c: 0x00000000 0x18000040: 0x00400020 0x18000044: 0x00000000 0x18000048: 0x00613100 0x1800004c: 0x00000000 0x18000050: 0x00003111 0x18000054: 0x00000000 0x18000058: 0x00200100 0x1800005c: 0x00000000 0x18000060: 0x00403121 0x18000064: 0x00000000 0x18000068: 0x00000000 0x1800006c: 0x00000000 0x18000070: 0x00712121 0x18000074: 0x00000000 0x18000078: 0x00710001 0x1800007c: 0x00000000 0x18000080: 0x00513131 0x18000084: 0x00000000 0x18000088: 0x00303111 0x1800008c: 0x00000000 0x18000090: 0x00702121 0x18000094: 0x00000000 0x18000098: 0x00001110 0x1800009c: 0x00000000 0x180000a0: 0x00000000 0x180000a4: 0x00000000 0x180000a8: 0x00000000 0x180000ac: 0x00000000 0x180000b0: 0x00000000 0x180000b4: 0x00000000 0x180000b8: 0x00001E7D 0x180000bc: 0x00000000 0x180000c0: 0x00000000 0x180000c4: 0x74444444 0x180000c8: 0x00000444 0x180000cc: 0x000FFFFF 0x180000d0: 0x000FFFFC 0x180000d4: 0x08116C08 0x180000d8: 0x00000000 0x180000dc: 0x7FFECDFA 0x180000e0: 0x1DF25EF2 0x180000e4: 0x00000A12 0x180000e8: 0x00000004 0x180000ec: 0x11A3C682 0x180000f0: 0xC774DDF4 0x180000f4: 0x00000000 0x180000f8: 0x0479DD02 0x180000fc: 0x366335B8 0x18000100: 0x00000000 0x18000104: 0x00000214 0x18000108: 0x401FC040 0x1800010c: 0x00000028 0x18000110: 0x1001C23C 0x18000114: 0x08820000 0x18000118: 0x10000101 0x1800011c: 0x00000000 0x18000120: 0x00000000 0x18000124: 0x00000000 0x18000128: 0x00000250 0x1800012c: 0x00000004 0x18000130: 0xFFFFFFFF 0x18000134: 0x00000004 0x18000138: 0xFFFFFFFF 0x1800013c: 0x00000002 0x18000140: 0x0000FFFF 0x18000144: 0x00000028 0x18000148: 0x00000008 0x1800014c: 0x00000002 0x18000150: 0x00000000 0x18000154: 0x00333333 0x18000158: 0x04210842 0x1800015c: 0x0000000A
GPIO
dump
root@OpenWrt:/# for addr in $(seq 0 4 $((0x6f))); do ADDR=$((0x18040000 + addr)); ADDR=$(printf "0x%08x\n" $ADDR); VAL=$(devmem $ADDR 32); printf "$ADDR: $VAL\n"; done 0x18040000: 0x00BE031F 0x18040004: 0x20FEEE2D 0x18040008: 0x0040EC00 0x1804000c: 0x00000000 0x18040010: 0x00000000 0x18040014: 0x0086000C 0x18040018: 0x00000000 0x1804001c: 0x00000000 0x18040020: 0x00000000 0x18040024: 0x0086000C 0x18040028: 0x00000000 0x1804002c: 0x00000000 0x18040030: 0x0C080900 0x18040034: 0x00160000 0x18040038: 0x00000000 0x1804003c: 0x00000000 0x18040040: 0x00000000 0x18040044: 0x00000908 0x18040048: 0x00000000 0x1804004c: 0x00000000 0x18040050: 0x00000000 0x18040054: 0x14130000 0x18040058: 0x80808080 0x1804005c: 0x80808080 0x18040060: 0x80808080 0x18040064: 0x80808080 0x18040068: 0x00000000 0x1804006c: 0x00000002
PLL
dump
root@OpenWrt:/# for addr in $(seq 0 4 $((0x50))); do ADDR=$((0x18050000 + addr)); VAL=$(devmem $ADDR 32); printf "0x%08x: $VAL\n" $ADDR; done 0x18050000: 0x00021480 0x18050004: 0x00213C00 0x18050008: 0x00010000 0x1805000c: 0x00000400 0x18050010: 0xC00A0FFE 0x18050014: 0x000A0000 0x18050018: 0x00000014 0x1805001c: 0x00000000 0x18050020: 0x00000500 0x18050024: 0x000A041A 0x18050028: 0x5A000000 0x1805002c: 0x000010B3 0x18050030: 0x0A47F028 0x18050034: 0x00004000 0x18050038: 0x0523F828 0x1805003c: 0x41020CCC 0x18050040: 0x781003FF 0x18050044: 0x003C103F 0x18050048: 0x03000000 0x1805004c: 0x00000007 0x18050050: 0x00000101
CPU_PLL_CONFIG
PLLPWD
:0x0
OUTDIV
:0x0
RANGE
:0x1
REFDIV
:0x1
NINT
:0x12
NFRAC
:0x0
CPU PLL Frequency = REFCLK/REFDIV * (NFRAC/2^6 + NINT) * 1/2^OUTDIV
REFCLK=40MHz
720,000,000 = 40000000/1 * (0 / 2^6 + 18) * 1 / 2^0
DDR_PLL_CONFIG
PLLPWD
:0x0
OUTDIV
:0x0
RANGE
:0x1
REFDIV
:0x1
NINT
:0xf
NFRAC
:0x0
CPU PLL Frequency = REFCLK/REFDIV * (NFRAC/2^10 + NINT) * 1/2^OUTDIV
REFCLK=40MHz
600,000,000 = 40000000/1 * (0 / 2^10 + 15) * 1 / 2^0
※ (AHB PLL Frequency
) = DDR PLL Frequency / (AHB_POST_DIV(reg->0x8, bits->19:15) + 1) = 200,000,000`
PLL=: - BYPASS: REFCLK - AHBCLK_FROM_DDRPLL=0: CPU PLL Frequency - AHBCLK_FROM_DDRPLL=1: DDR PLL Frequency AHB PLL Frequency = DDR PLL Frequency / (AHB_POST_DIV(reg->0x8, bits->19:15) + 1) = 200,000,000
RESET
dump
root@OpenWrt:/# for addr in $(seq 0 4 $((0xcc))); do ADDR=$((0x18060000 + addr)); VAL=$(devmem $ADDR 32); printf "0x%08x: $VAL\n" $ADDR; done 0x18060000: 0x00000000 0x18060004: 0x00000000 0x18060008: 0x80000003 0x1806000c: 0xCEEF4E50 0x18060010: 0x00000701 0x18060014: 0x0000000C 0x18060018: 0x00000000 0x1806001c: 0x24044808 0x18060020: 0x00000000 0x18060024: 0x00000000 0x18060028: 0x00000000 0x1806002c: 0x00000000 0x18060030: 0x00000000 0x18060034: 0x00000000 0x18060038: 0x00000000 0x1806003c: 0x00000000 0x18060040: 0x00000000 0x18060044: 0x00000000 0x18060048: 0x00000000 0x1806004c: 0x00000000 0x18060050: 0x00000000 0x18060054: 0x00000000 0x18060058: 0x00000000 0x1806005c: 0x00000000 0x18060060: 0x00000000 0x18060064: 0x00000000 0x18060068: 0x00000000 0x1806006c: 0x00000000 0x18060070: 0x00000000 0x18060074: 0x00000000 0x18060078: 0x00000000 0x1806007c: 0x00000000 0x18060080: 0x00000000 0x18060084: 0x00000000 0x18060088: 0x00000000 0x1806008c: 0x00000000 0x18060090: 0x00001130 0x18060094: 0x00000000 0x18060098: 0x00000000 0x1806009c: 0x00000000 0x180600a0: 0x00000000 0x180600a4: 0x00000000 0x180600a8: 0x00000000 0x180600ac: 0x00000000 0x180600b0: 0x00031E5E 0x180600b4: 0x00043FC0 0x180600b8: 0x00000000 0x180600bc: 0x000A6000 0x180600c0: 0x00000000 0x180600c4: 0x00030831 0x180600c8: 0x00000000 0x180600cc: 0x000003FF
GMAC Interface
dump
root@OpenWrt:/# for addr in $(seq 0 4 $((0x64))); do ADDR=$((0x18070000 + addr)); VAL=$(devmem $ADDR 32); printf "0x%08x: $VAL\n" $ADDR; done 0x18070000: 0x00028001 0x18070004: 0x00000000 0x18070008: 0x0000000F 0x1807000c: 0x00000002 0x18070010: 0x0000FFFF 0x18070014: 0x0000001F 0x18070018: 0x1F038116 0x1807001c: 0x00001140 0x18070020: 0x0000004D 0x18070024: 0x00000060 0x18070028: 0x00000020 0x1807002c: 0x00000000 0x18070030: 0x00000000 0x18070034: 0x000000A2 0x18070038: 0x00001801 0x1807003c: 0x0000000E 0x18070040: 0x00000000 0x18070044: 0x00000000 0x18070048: 0x00000020 0x1807004c: 0x2396E54A 0x18070050: 0x04E29C45 0x18070054: 0x00000030 0x18070058: 0x0806020F 0x1807005c: 0x00000018 0x18070060: 0x00000000 0x18070064: 0x00000000
OTP
dump
root@OpenWrt:/# for addr in $(seq 0 4 $((0x2c))); do ADDR=$((0x18131000 + addr)); VAL=$(devmem $ADDR 32); printf "0x%08x: $VAL\n" $ADDR; done 0x18131000: 0x00000000 0x18131004: 0x00000000 0x18131008: 0x0000007D 0x1813100c: 0x00000001 0x18131010: 0x00000005 0x18131014: 0x00000000 0x18131018: 0x00000004 0x1813101c: 0x00000004 0x18131020: 0x00000007 0x18131024: 0x00000000 0x18131028: 0x00000190 0x1813102c: 0x00000000
GMAC
dump
root@OpenWrt:/# for addr in $(seq 0 4 $((0x5c))); do ADDR=$((0x19000000 + addr)); VAL=$(devmem $ADDR 32); printf "0x%08x: $VAL\n" $ADDR; done 0x19000000: 0x0000000F 0x19000004: 0x00007215 0x19000008: 0x40605060 0x1900000c: 0x00A1F037 0x19000010: 0x000005F4 0x19000014: 0x00000000 0x19000018: 0x00000000 0x1900001c: 0x00000000 0x19000020: 0x00000006 0x19000024: 0x00000000 0x19000028: 0x0000111F 0x1900002c: 0x00000000 0x19000030: 0x00000000 0x19000034: 0x00000000 0x19000038: 0x00000000 0x1900003c: 0x00000008 0x19000040: 0xD10DE082 0x19000044: 0x66100000 0x19000048: 0x001F1F00 0x1900004c: 0x0010FFFF 0x19000050: 0x015500AA 0x19000054: 0x01F00140 0x19000058: 0x0000FFFF 0x1900005c: 0x000FEFEF root@OpenWrt:/# devmem 0x1900018c 32 0x00000001 root@OpenWrt:/# for addr in $(seq 0 4 $((0x5c))); do ADDR=$((0x1a000000 + addr)); VAL=$(devmem $ADDR 32); printf "0x%08x: $VAL\n" $ADDR; done 0x1a000000: 0x0000000F 0x1a000004: 0x00007215 0x1a000008: 0x40605060 0x1a00000c: 0x00A1F037 0x1a000010: 0x000005F4 0x1a000014: 0x00000000 0x1a000018: 0x00000000 0x1a00001c: 0x00000000 0x1a000020: 0x00000000 0x1a000024: 0x00000000 0x1a000028: 0x00000000 0x1a00002c: 0x00000000 0x1a000030: 0x00000000 0x1a000034: 0x00000000 0x1a000038: 0x00000000 0x1a00003c: 0x00000000 0x1a000040: 0xD00DE082 0x1a000044: 0x66100000 0x1a000048: 0x001F1F00 0x1a00004c: 0x0010FFFF 0x1a000050: 0x015500AA 0x1a000054: 0x01F00140 0x1a000058: 0x0000FFFF 0x1a00005c: 0x000FEFEF root@OpenWrt:/# devmem 0x1a00018c 32 0x00000001