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
robustel - configuration > DMVPN
確認無誤
不過第三台的設備要買什麼呢
剛剛已經請 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
可以找到福特椅子的零件照片
雖然前後固定螺絲的傾斜角度不一樣
但應該是可以固定的
可以嘗試看看
要不就是底下固定座不換邊
但椅子換邊鎖上去