20181217_jeffrey - silenceuncrio/diary GitHub Wiki

0920

review

0930

jim 在週報問到 GRE with NHRP 的 schedule 怎麼又延了

areil 在 mail 說到這功能相當複雜

表示我會在 BUII meeting 做個簡單說明

明天下午 meeting 前有時間的話就簡單做個 wiki 吧

畢竟要滿足金主才行

0935

先把 m360 uboot 點燈做完

記得還要問一下 mitrastar 有什麼方式可以透過 linux 來 upgrade uboot

0950

上禮拜 mitrastar 給了關鍵的設定

diff --git a/include/configs/rt2880.h b/include/configs/rt2880.h
index 416fc3b..140764e 100644
--- a/include/configs/rt2880.h
+++ b/include/configs/rt2880.h
@@ -471,6 +471,26 @@ extern unsigned int  CFG_BLOCKSIZE;
 #define RT2880_REG_PIORESET     (RT2880_PRGIO_ADDR + 0x40)
 #endif

+
+
+#define RALINK_GPIOMODE_UART1  0x02
+#define RALINK_GPIOMODE_I2C            0x04
+#define RALINK_GPIOMODE_UART3  0x08
+#define RALINK_GPIOMODE_UART2  0x20
+#define RALINK_GPIOMODE_JTAG   0x80
+#define RALINK_GPIOMODE_WDT            0x100
+#define RALINK_GPIOMODE_PERST  0x400
+#define RALINK_GPIOMODE_MDIO   0x1000
+#define RALINK_GPIOMODE_GE1            0x4000
+#define RALINK_GPIOMODE_GE2            0x8000
+#define RALINK_GPIOMODE_SPI            0x10000
+#define RALINK_GPIOMODE_SDXC   0x40000
+#define RALINK_GPIOMODE_ESWINT 0x100000
+
+#define RALINK_GPIOMODE_DFT     (RALINK_GPIOMODE_UART2 | RALINK_GPIOMODE_UART3 |RALINK_GPIOMODE_JTAG| RALINK_GPIOMODE_GE2 |  RALINK_GPIOMODE_WDT)
+
+
+
 #define RALINK_REG(x)          (*((volatile u32 *)(x)))
 #if defined (RT6855A_FPGA_BOARD) || defined (RT6855A_ASIC_BOARD) || \
     defined (MT7621_FPGA_BOARD) || defined (MT7621_ASIC_BOARD) || defined (MT7628_FPGA_BOARD) || defined (MT7628_ASIC_BOARD)

再搭配以下的 code 便可以在第一時間把 power 燈點起來

diff --git a/lib_mips/board.c b/lib_mips/board.c
index a4f4827..852f274 100644
--- a/lib_mips/board.c
+++ b/lib_mips/board.c
@@ -1386,6 +1386,64 @@ int check_image_validation(void)
 #endif


+
+#define _LED_GPIO_INTERNET    17
+#define _LED_GPIO_LAN         18
+#define _LED_GPIO_POWER       16
+#define _LED_GPIO_SIGNAL_LOW  13
+#define _LED_GPIO_SIGNAL_HIGH 14
+#define _LED_GPIO_SIGNAL_MID  15
+#define _LED_GPIO_SIM         22
+
+
+
+void ledInit(void)
+{
+    u32 value = 0;
+
+    /* set uartf_share_mode share pin to gpio mode */
+    value = le32_to_cpu(*(volatile u_long *)RT2880_GPIOMODE_REG);
+#if !defined (RT2880_ASIC_BOARD)
+    value &= ~0x1C;  //clear bit[2:4]UARTF_SHARE_MODE
+#endif
+#if defined (MT7620_ASIC_BOARD)
+    value &= ~0x2000;  //clear bit[13] WLAN_LED
+#endif
+    value |= RALINK_GPIOMODE_DFT;
+    *(volatile u_long *)(RT2880_GPIOMODE_REG) = cpu_to_le32(value);
+}
+
+
+
+void ledCtrl(unsigned char pin, unsigned char state)
+{
+    u32 value = 0;
+
+#if defined (MT7621_FPGA_BOARD) || defined (MT7621_ASIC_BOARD) || \
+    defined (MT7628_FPGA_BOARD) || defined (MT7628_ASIC_BOARD)
+    if ((0 <= pin) && (pin < 32))
+#else
+    if ((0 <= pin) && (pin <= 21))
+#endif
+    {
+        value = le32_to_cpu(*(volatile u_long *)RT2880_REG_PIODIR);
+        value |= (1 << pin);
+        *(volatile u_long *)(RT2880_REG_PIODIR) = cpu_to_le32(value);
+
+        value = le32_to_cpu(*(volatile u_long *)RT2880_REG_PIODATA);
+        if (0 == state) {
+            value &= ~(1 << pin);
+        }
+        else
+        {
+            value |= (1 << pin);
+        }
+        *(volatile u_long *)(RT2880_REG_PIODATA) = cpu_to_le32(value);
+    }
+}
+
+
+
 /************************************************************************
  *
  * This is the next part if the initialization sequence: we are now
@@ -2049,6 +2107,17 @@ __attribute__((nomips16)) void board_init_r (gd_t *id, ulong dest_addr)
        check_image_validation();
 #endif

+
+
+    ledInit();
+
+    ledCtrl(_LED_GPIO_POWER,    1);
+    ledCtrl(_LED_GPIO_LAN,      0);
+    ledCtrl(_LED_GPIO_INTERNET, 0);
+    ledCtrl(_LED_GPIO_SIM,      0);
+
+
+
 /*config bootdelay via environment parameter: bootdelay */
        {
            char * s;
(END)

不過一開始 _LED_GPIO_LAN_LED_GPIO_SIM 被點亮是硬體 pull high 的關係

等到 uboot 介入把這兩顆燈 熄滅 的時候已經過約一秒了

剛剛和 ariel 做了說明

也只能這樣了

上 code

commit 4abc7304c52fb408af74c069d6f3d258f4e2b87d
Refs: [master], {origin/master}, {origin/HEAD}
Author: jeffrey <[email protected]>
Date:   Mon Dec 17 10:04:15 2018 +0800

    turn on the power led and turn off the others at uboot
    - lan led and sim led turn on before uboot by hardware (pull high)
    - maybe 1 second later, uboot turn off them

 include/configs/rt2880.h | 20 ++++++++++++++
 lib_mips/board.c         | 69 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 89 insertions(+)

寫信問一下 peter

1015

先幫 DMVPN 準備一下 wiki

參考 Dynamic Multipoint VPN (DMVPN) - Presentations

可以獲得不少 presentation 的連結

找幾個適合的圖來起個頭

找 ariel 一起看一下 Cisco IOS DMVPN Overview

ariel 表示光第一張圖就可以把故事講完了

不過後續的測試最好有至少三台有支援 DMVPN 的機器才能進行完整的測試

目前已經有兩台

  • Cisco 2951
  • robustel R3000

我最好確定一下目前的 Robustel 是不是真的有 DMVPN

PC 的 測試網卡設成 自動取得 IP

Robustel 上電

測試網卡網路線連接 robustel 的 ETH1

乙太網路卡 測試:

   連線特定 DNS 尾碼 . . . . . . . . :
   描述 . . . . . . . . . . . . . . .: DM9621 USB To Fast Ethernet Adapter(KMDF)
   實體位址 . . . . . . . . . . . . .: 00-60-6E-92-EB-7C
   DHCP 已啟用 . . . . . . . . . . . : 是
   自動設定啟用 . . . . . . . . . . .: 是
   連結-本機 IPv6 位址 . . . . . . . : fe80::1085:7d7:dbd8:6de6%15(偏好選項)
   IPv4 位址 . . . . . . . . . . . . : 192.168.1.100(偏好選項)
   子網路遮罩 . . . . . . . . . . . .: 255.255.255.0
   租用取得 . . . . . . . . . . . . .: 2018年12月17日 上午 11:25:31
   租用到期 . . . . . . . . . . . . .: 2018年12月17日 下午 12:25:31
   預設閘道 . . . . . . . . . . . . .: 192.168.1.254
   DHCP 伺服器 . . . . . . . . . . . : 192.168.1.1
   DHCPv6 IAID . . . . . . . . . . . : 184574062
   DHCPv6 用戶端 DUID. . . . . . . . : 00-01-00-01-21-5A-72-3E-74-D4-35-67-57-A6
   DNS 伺服器 . . . . . . . . . . . .: 192.168.1.1
                                       192.168.1.254
   主要 WINS 伺服器 . . . . . . . . .: 192.168.1.1
   NetBIOS over Tcpip . . . . . . . .: 啟用

得知 robustel ip 為 192.168.1.1

robustel - login

image

robustel - configuration > DMVPN

image

確認無誤

不過第三台的設備要買什麼呢

剛剛已經請 shin 再幫忙找一下 Cisco 的設備

像 Cisco 2951 shin 大概買 2 萬多

這是比較實際的

總比再買一台 robustel 來的合適

1140

我想我可以先來做 M300 上的 wizard

先做在 develop branch 上

1150

survey 一下哪邊可以幫忙改副駕駛座的椅子方向

1300

還有一種改法不到1萬元

就是加裝第三排座椅

但置物空間會被犧牲掉

嬰兒車需要放在原本的第二排

1355

我需要先花時間了解 escape 副駕駛座怎麼把椅子拆掉

1600

M300 先 build 一版最新的 develop branch 來實作 wizard 功能

1700

利用關鍵字 ford escape seat track 可以找到福特椅子的零件照片

image

雖然前後固定螺絲的傾斜角度不一樣

但應該是可以固定的

可以嘗試看看

要不就是底下固定座不換邊

但椅子換邊鎖上去