大破雑記帳

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

WR9500N GPIO/PLLメモ

結局未だに諦めが悪くNetBSDAterm弄ってる

GPIO

dump (メーカーブートローダからブートした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: 0x0003DB1F
0x18040004: 0x0017BA39
0x18040008: 0x00142000
0x1804000c: 0x00000000
0x18040010: 0x00000000
0x18040014: 0x00019808
0x18040018: 0x00000000
0x1804001c: 0x00000000
0x18040020: 0x00000000
0x18040024: 0x00019808
0x18040028: 0x000F8000
0x1804002c: 0x00000000
0x18040030: 0x0B0A0900
0x18040034: 0x00180000
0x18040038: 0x00000000
0x1804003c: 0x2F2E0000
0x18040040: 0x00000000
0x18040044: 0x00000908
0x18040048: 0x00000000
0x1804004c: 0x00000000
0x18040050: 0x00000C0B
0x18040054: 0x00000000
0x18040058: 0x00000000
0x1804005c: 0x00000000
0x18040060: 0x00000000
0x18040064: 0x0D0F110E
0x18040068: 0x00000000
0x1804006c: 0x00000002

GPIO_OE (0x0)

  • output: GPIO 5-7, 10, 13, 18-22
    • GPIO 18:
  • input : GPIO 0-4, 8, 9, 11, 12, 14-17

GPIO_IN (0x4)

  • val=0: 1, 2, 6-8, 10, 14, 19, 21, 22
  • val=1: 0, 3-5, 9, 11-13, 15-18, 20

GPIO_OUT (0x8)

  • val=0: 0-12, 14-17, 19, 21, 22
  • val=1: 13, 18, 20

GPIO_SET (0xc)

(write-only)

GPIO_CLEAR (0x10)

(write-only)

GPIO_INT (0x14)

  • enable : 3, 11, 12, 15, 16
  • disable: 0-2, 4-10, 13, 14, 17-22

GPIO_INT_TYPE (0x18)

  • edge : 0-22
  • level: (none)

GPIO_INT_POLARITY (0x1c)

  • LOW/FALLING: 0-22
  • HIGH/RISING: (none)

GPIO_INT_PENDING (0x20)

  • PENDING: (none)
  • NONE : 0-22

GPIO_INT_MASK (0x24)

  • mask: 3, 11, 12, 15, 16
  • none: 0-2, 4-10, 13, 14, 17-22

GPIO_IN_ETH_SWITCH_LED (0x28)

(保留)

GPIO_OUT_FUNCTION0 (0x2c)

  • gpio0: -
  • gpio1: -
  • gpio2: -
  • gpio3: -

GPIO_OUT_FUNCTION1 (0x30)

  • gpio4: -
  • gpio5: SPI_CS_0
  • gpio6: SPI_CLK
  • gpio7: SPI_MOSI

GPIO_OUT_FUNCTION2 (0x34)

  • gpio8: -
  • gpio9: -
  • gpio10: UART0_SOUT
  • gpio11: -

GPIO_OUT_FUNCTION3 (0x38)

  • gpio12: -
  • gpio13: -
  • gpio14: -
  • gpio15: -

GPIO_OUT_FUNCTION4 (0x3c)

  • gpio16: -
  • gpio17: -
  • gpio18: ATT_LED
  • gpio19: PWR_LED

GPIO_OUT_FUNCTION (0x40)

  • gpio20: -
  • gpio21: -
  • gpio22: -

GPIO_IN_ENABLE0 (0x44)

  • SPI_DATA_IN: gpio8
  • UART0_SIN : gpio9

GPIO_IN_ENABLE1 (0x48)

  • I2SEXT_MCLK: -
  • I2SEXTCLK : -
  • I2S0_MIC_SD: -
  • I2S0_WS : -

GPIO_IN_ENABLE2 (0x4c)

  • ETH_RX_CRS: -
  • ETH_RX_COL: -
  • ETH_RX_ERR: -

GPIO_IN_ENABLE3 (0x50)

  • BOOT_EXT_MDC: -
  • BOOT_EXT_MDO: -

GPIO_IN_ENABLE4 (0x54)

  • SLIC_PCM_FS_IN: -
  • SLIC_DATA_IN : -

GPIO_IN_ENABLE9 (0x68)

  • UART1_CTS: -
  • UART1_RD : -

GPIO_FUNCTION (0x6c)

DISABLE_JTAG: Yes

PLL

dump (メーカーブートローダからブートしたOpenWrt)

root@OpenWrt:/# for addr in $(seq 0 4 $((0x48))); do ADDR=$((0x18050000 + addr)); ADDR=$(printf "0x%08x\n" $ADDR); VAL=$(devmem $ADDR 32); printf "$ADDR: $VAL\n"; done
0x18050000: 0x40021380
0x18050004: 0x40213000
0x18050008: 0x01308000
0x1805000c: 0x00000000
0x18050010: 0x40000400
0x18050014: 0xC009FFFE
0x18050018: 0x0009F33A
0x1805001c: 0x00000014
0x18050020: 0x00000000
0x18050024: 0x00000530
0x18050028: 0x0009BA0B
0x1805002c: 0x06000000
0x18050030: 0x000010B3
0x18050034: 0x0A47F028
0x18050038: 0x00004000
0x1805003c: 0x0523F828
0x18050040: 0x41020CCC
0x18050044: 0x78100000
0x18050048: 0x003C1000

PCIE_PLL_CONFIG (0x10)

  • REFDIV : 1
  • BYPASS : 0
  • PLLPWD : 1
  • UPDATING: 0

PCIE_PLL_DITHER_DIV_MAX (0x14)

  • DIV_MAX_FRAC: 0x3FFF
  • DIV_MAX_INT : 0x13
  • USE_MAX : 1
  • EN_DITHER : 1

PCIE_PLL_DITHER_DIV_MIN (0x18)

  • DIV_MIN_FRAC: 0x399D
  • DIV_MIN_INT : 0x13

PCIE_PLL_DITHER_STEP (0x1c)

  • STEP_FRAC : 0xA
  • STEP_INT : 0
  • UPDATE_CNT: 0