20170215_jeffrey - silenceuncrio/diary GitHub Wiki

0910

昨天拿給 morris 的 1 號 CPU 板 morris 試了幾次又掛了

拿回來接上 console

U-Boot 2015.04imx_v2015.04_4.1.15_1.2.0_ga+gede7538 (Jan 26 2017 - 04:01:06)

CPU:   Freescale i.MX6UL rev1.1 at 396 MHz
CPU:   Temperature 35 C
Reset cause: POR
Board: MX6UL 14x14 EVK
I2C:   ready
DRAM:  512 MiB
force_idle_bus: sda=0 scl=0 sda.gp=0x1d scl.gp=0x1c
NAND:  256 MiB
MMC:   FSL_SDHC: 0
Display: TFT43AB (480x272)
Video: 480x272x24
In:    serial
Out:   serial
Err:   serial
Net:   FEC1
Error: FEC1 address not set.

Normal Boot
Hit any key to stop autoboot:  0
## Error: "m300_boot" not defined
=>

## Error: "m300_boot" not defined

真的是蠻詭異的

這意味著昨天的 假設 是錯的

目前懷疑是 rc.local 每一次的 fw_setenv bootcmd 'run bootcmd_v1.1' 的某一次

就把 bootcmd_v1.1 洗掉了...

ariel 一早就拿了一片 M300 給我說他也不能開機

## Error: "bootcmd_v1.1" not defined

先利用 env default -f -a 來把 uboot env 恢復成 default

我要趕快把這問題解決

ariel 使用 m300 並不會像 morris 這樣很快的開關機

0945

1 號 CPU 板 一樣是利用 env default -f -a 來把 uboot env 恢復成 default

試著複製問題... 反覆在不同的時間點拔電又上電... 但複製不出來

試著請 morris 作跟昨天一樣的事情

發現新的問題... ethernet 1 reset pin 訊號異常

目前 reset 的相關動作存放在 reset_ethernet_and_mobile 這個 uboot env

=> print reset_ethernet_and_mobile
reset_ethernet_and_mobile=mw 0x020E00BC 00000005 1; mw 0x020E00C0 00000005 1;
mw 0x0209C004 40000000 1; mw 0x0209C004 80000000 1; mw 0x020AC004 00000080 1;
mw 0x0209C000 00000000 1; mw 0x0209C000 00000000 1; mw 0x020AC000 00000000 1;
sleep 1;
mw 0x0209C000 40000000 1; mw 0x0209C000 80000000 1; mw 0x020AC000 00000080 1
=>

ethernet 1 和 ethernet 2 由於是共用同一個 GPIO

設定暫存器的方式需要修正

=> print reset_ethernet_and_mobile
reset_ethernet_and_mobile=mw 0x020E00BC 00000005 1; mw 0x020E00C0 00000005 1;
reset_ethernet_and_mobile=mw 0x020E00BC 00000005 1; mw 0x020E00C0 00000005 1;
mw 0x0209C004 C0000000 1; mw 0x020AC004 00000080 1;
mw 0x0209C000 00000000 1; mw 0x020AC000 00000000 1;
sleep 1;
mw 0x0209C000 C0000000 1; mw 0x020AC000 00000080 1
=>

1030

這幾天在修正 firmware upgrade 相關事宜的過程

commit 的時候又把 FirmwareUpgrade.sh 的權限改成無法執行

想到自己 ubuntu 網路芳鄰的設定 - /etc/samba/smb.conf

[ubuntu]
path = /home/jeffrey
writable = yes
guest account = jeffrey
force user = jeffrey
public = yes
force group = jeffrey
browseable = yes

create mask = 0664
directory mask = 0775

來修正一下 create mask = 0664

改成 create mask = 0775

重新啟動 samba

  • sudo service smbd restart
  • sudo service nmbd restart

目前透過 window 上的 sublime 去編輯 ubuntu 利用 samba 分享出來的檔案後

發現已經不會再去修改原本的 0775 權限了

1300

還複製不出昨天的問題

先不要 commit... 多試一下

1315

覺得自己這一陣子在作 git push 的時候都太衝動了

不管改甚麼東西... 應該多測一陣子

確定沒問題再 commit 才對

不要貿貿然然地又製造一些歷史包袱出來

1335

今天為了 ethernet 1 和 ethernet 2 resst pin 的 GPIO 作了修正

相關部分如下

rc.local

# ======================================================================
# | apply the uboot env variables related to current application
# ======================================================================
/usr/sbin/icos/uboot_env.sh

# ======================================================================
# | run bootcmd_v1.1 define in uboot_env.sh
# ======================================================================
fw_setenv bootcmd 'run bootcmd_v1.2'

uboot_env.sh

# ======================================================================
# | bootcmd
# ======================================================================

# turn on the system LED first - shortest the bootdelay

fw_setenv bootdelay 1

fw_setenv bootcmd_v1.2 'run turnon_sysled; run reset_ethernet_and_mobile; \
run app_choose; \
echo run bootargs_${app_primary}; run bootargs_${app_primary}; \
run nandread_${app_primary}; \
setenv no_good ${no_good}x; \
saveenv; \
bootz ${loadaddr} - ${fdt_addr}'



# set the current uboot env version into uboot env MTD
fw_setenv uboot_env_ver $uboot_env_ver



# boudary for protect the uboot env
fw_setenv uboot_env_boudary_1 'therer are 3 boudary'
fw_setenv uboot_env_boudary_2 'therer are 3 boudary'
fw_setenv uboot_env_boudary_3 'therer are 3 boudary'

故意把 uboot_env_ver 設定的時間點放在 bootcmd_v1.2 後面

然後再新增三個沒用處的 uboot env

希望萬一昨天的現象再次產生時不見的 uboot env 會是這三個 uboot env 的其中一個

先用這樣的軟體燒錄在 morris 請我幫忙的 1 號 和 4 號 CPU 板讓 morris 明天能夠去進行 靜電 相關的測試

1345

回到目前的工作主軸 - Web server with HTTPS

記得 ariel 提過 M300 的 WAN 端要使用 HTTPS

LAN 端就使用目前的 HTTP 即可

先收集一下目前跟 web server 的現況

M300 開機時會執行 /etc/rc.local

...
/usr/sbin/icosconfig bootinit
...

關鍵就在 icosconfig bootinit

這會把 web 這個 icos module 帶起來

也就是 webcfg.cInitWeb()

webcfg.c 需要花時間 trace 一下

從目前的 source code 看來 WebOnOff.sh 已經沒再用了

跟 aaron 聊一下發現他不是最後經手的... 是 john

我先 trace 一下 有問題再找 john 聊

1500

協助 efm bridge 幫忙 upgrade 成 ACE 的版本

這次有 11 片

keep 一下那些 PCB 號碼已經做完了

使用的 firmware 是 D:\EfmBridge\ReleaseNew\branches\CID000_ACE\5640000.110.20151109-R948.bin

沒有 PCB 序號貼紙 - 標記 1 號 - 裡面還有 bootloader... 先跳過

PCB - 22FHU38M0000 - ok

沒有 PCB 序號貼紙 - 標記 2 號 - console 異常

沒有 PCB 序號貼紙 - 標記 3 號 - ok

  • 上電有嘶嘶聲
  • 裡面是舊的 ace 版本, 利用 http://192.168.10.250/ace2015_su 進入原本的 web ui 才能 upgrade

PCB - 22FJC3BV024F - 改 MCSV - ok

User: iwu@fbt&ND
Password: ************

Type ? for help

iwu@fbt&ND#set adv lab ffffffffffffffff

Set Label FFFFFFFFFFFFFFFF OK!

iwu@fbt&ND#wr

Are you sure? (y/n): y
Write configuration successful!

Do you want to reboot? (y/n): y

PCB - 22FJA3BX000C - ok

PCB - 22FJ23M50078 - ok

沒有 PCB 序號貼紙 - 標記 4 號 - ok

PCB - 22FHU3JA006D - ok

PCB - 22FJA3EV00BD - 沒電源孔

PCB - 22FJ23B9002D - ok

合計 8 片 ok, 3 片 有問題

先全部拿給 PHT 作後續處理... 順便聽 PHT 八卦一下

感覺 M300 團隊給別人的印象也不是很好...

我想我就聽聽就好... 別往心裡去

1610

回到 Web server with HTTPS

繼續收集 web server 的現況

目前追到 webcfg.cInitWeb()

最後經手的 john

先 trace 一下 有問題再找 john 聊

1800

下午有個印度的客戶來訪

不確定是不是 Schmid

不過該客戶是對我們 M300 很有興趣

目前因應該客戶的需求 arile 請我負責下述的項目

  • Web server with HTTPS
  • Web UI
  • DMZ
  • UPnP (IPv4v6)
  • RIP
  • OSPF

工作項目 Web Proxy priority 降低

FOTA 也降低

不過追加了 DMZ, UPnP (IPv4v6), RIPOSPF

這幾天要來 survey 一下才有辦法壓 schedule