mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-10-29 17:54:14 +08:00
Compare commits
14
Commits
f103daaafa
...
13b75a73c9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
13b75a73c9 | ||
|
|
c6fceae724 | ||
|
|
068ec4c510 | ||
|
|
3a92459190 | ||
|
|
5ffeb3d16a | ||
|
|
de705380c9 | ||
|
|
e4f3315af3 | ||
|
|
07ab04e668 | ||
|
|
c5ce24ff78 | ||
|
|
bcb237158f | ||
|
|
675faf0471 | ||
|
|
175ca9464a | ||
|
|
52b1d1a4ea | ||
|
|
48f28ae7ff |
No files matched your search
@@ -112,11 +112,14 @@ html_min: $(HTML)
|
||||
html_data.c html_data.h &: $(HTML) | tools html_min
|
||||
tools/output/fileadder -a $(HTML_LOCATION) -s $(IMAGESIZE) -b BANK1 -z -d $(HTML_MIN) -p html_data
|
||||
|
||||
$(VERSION_HEADER):
|
||||
$(VERSION_HEADER): FORCE
|
||||
@printf '%s\n' "#ifndef VERSION_H" "#define VERSION_H" \
|
||||
"#define VERSION_SW \"$(VERSION_EXTENSION)\"" \
|
||||
"#define BUILD_DATE \"$(BUILD_DATE)\"" \
|
||||
"#endif" > $(VERSION_HEADER)
|
||||
"#endif" > $(VERSION_HEADER).tmp
|
||||
@cmp -s $(VERSION_HEADER).tmp $(VERSION_HEADER) \
|
||||
&& rm -f $(VERSION_HEADER).tmp \
|
||||
|| mv $(VERSION_HEADER).tmp $(VERSION_HEADER)
|
||||
|
||||
httpd: html_data.h
|
||||
|
||||
@@ -162,11 +165,11 @@ $(BUILDDIR)/rtlplayground-$(FILENAME_EXTENSION).bin: $(BUILDDIR)/rtlplayground.i
|
||||
tools/output/imagebuilder -i $^ $@
|
||||
tools/output/fileadder -a $(DEFAULT_CONFIG_LOCATION) -s $(IMAGESIZE) -d config.txt $@
|
||||
tools/output/fileadder -a $(CONFIG_LOCATION) -s $(IMAGESIZE) -d config.txt $@
|
||||
tools/output/fileadder -a $(HTML_LOCATION) -s $(IMAGESIZE) -z -d $(HTML_MIN) -p html_data -b BANK1 $@
|
||||
tools/output/fileadder -a $(HTML_LOCATION) -s $(IMAGESIZE) -z -d $(HTML_MIN) -b BANK1 $@
|
||||
tools/output/crc_calculator -u $@
|
||||
ln -sf $(MACHINE)/rtlplayground-$(FILENAME_EXTENSION).bin output/rtlplayground.bin
|
||||
|
||||
.PHONY: clean distclean all $(SUBDIRS) $(SUBDIRSCLEAN) $(VERSION_HEADER) create_build_dir
|
||||
.PHONY: clean distclean all $(SUBDIRS) $(SUBDIRSCLEAN) create_build_dir
|
||||
|
||||
.PHONY:
|
||||
machine_check:
|
||||
|
||||
@@ -1171,6 +1171,32 @@ err:
|
||||
}
|
||||
|
||||
|
||||
static void print_temperature(uint16_t reg)
|
||||
{
|
||||
int16_t v;
|
||||
|
||||
reg_read(reg);
|
||||
v = SFR_DATA_U16;
|
||||
if (v < 0) {
|
||||
write_char('-');
|
||||
v = -v;
|
||||
}
|
||||
itoa(v >> 7);
|
||||
write_char('.');
|
||||
itoa(((v & 0x7f) * 10) >> 7);
|
||||
print_string(" C\n");
|
||||
}
|
||||
|
||||
|
||||
void parse_temp(void)
|
||||
{
|
||||
print_string("\nChip temperature: ");
|
||||
print_temperature(RTL837X_TM_RESULT);
|
||||
print_string("At power-on: ");
|
||||
print_temperature(RTL837X_TM_RESULT_POWERON);
|
||||
}
|
||||
|
||||
|
||||
void parse_sdsget(void)
|
||||
{
|
||||
__xdata uint8_t sds_id, page, reg, hex_size;
|
||||
@@ -1918,6 +1944,8 @@ void cmd_parser(void) __banked
|
||||
parse_eee();
|
||||
} else if (cmd_compare(0, "bw")) {
|
||||
parse_bw();
|
||||
} else if (cmd_compare(0, "temp")) {
|
||||
parse_temp();
|
||||
} else if (cmd_compare(0, "version")) {
|
||||
print_sw_version();
|
||||
} else if (cmd_compare(0, "time")) {
|
||||
|
||||
+5
-5
@@ -15,7 +15,7 @@ c_full:"full",c_half:"half",c_devices:"devices",c_yes:"yes",c_no:"no",
|
||||
d_ports:"Ports",d_ports_h:"click a port for details",d_system:"System",d_traffic:"Traffic",
|
||||
d_traffic_h:"packets/s, live",d_txpps:"TX pps",d_rxpps:"RX pps",d_txbad:"TX bad",d_rxbad:"RX bad",
|
||||
i_host:"Hostname",i_ip:"IP address",i_mask:"Netmask",i_gw:"Gateway",i_mac:"MAC",i_fw:"Firmware",
|
||||
i_built:"Built",i_hw:"Hardware",i_flash:"Flash",i_syslog:"Syslog",
|
||||
i_built:"Built",i_hw:"Hardware",i_temp:"Temperature",i_flash:"Flash",i_syslog:"Syslog",
|
||||
p_state:"State",p_disabled:"disabled",p_up:"up",p_txgb:"TX good / bad",p_rxgb:"RX good / bad",
|
||||
p_pkts:"pkts",p_module:"Module",p_temp:"Temperature",p_vcc:"Vcc",p_txbias:"TX bias",p_txpower:"TX power",
|
||||
p_rxpower:"RX power",p_txfault:"TX fault",p_txdis:"TX disabled",p_rxlos:"RX LOS",p_adv:"Advertising",
|
||||
@@ -128,7 +128,7 @@ c_full:"全二重",c_half:"半二重",c_devices:"デバイス",c_yes:"はい",c_
|
||||
d_ports:"ポート",d_ports_h:"ポートをクリックすると詳細を表示",d_system:"システム",d_traffic:"トラフィック",
|
||||
d_traffic_h:"パケット/秒、リアルタイム",d_txpps:"TX pps",d_rxpps:"RX pps",d_txbad:"TX 異常",d_rxbad:"RX 異常",
|
||||
i_host:"ホスト名",i_ip:"IP アドレス",i_mask:"ネットマスク",i_gw:"ゲートウェイ",i_mac:"MAC",i_fw:"ファームウェア",
|
||||
i_built:"ビルド日",i_hw:"ハードウェア",i_flash:"フラッシュ",i_syslog:"Syslog",
|
||||
i_built:"ビルド日",i_hw:"ハードウェア",i_temp:"温度",i_flash:"フラッシュ",i_syslog:"Syslog",
|
||||
p_state:"状態",p_disabled:"無効",p_up:"アップ",p_txgb:"TX 正常 / 異常",p_rxgb:"RX 正常 / 異常",
|
||||
p_pkts:"pkts",p_module:"モジュール",p_temp:"温度",p_vcc:"電圧",p_txbias:"TX バイアス",p_txpower:"TX 電力",
|
||||
p_rxpower:"RX 電力",p_txfault:"TX 障害",p_txdis:"TX 無効",p_rxlos:"RX 信号ロス",p_adv:"アドバタイズ",
|
||||
@@ -241,7 +241,7 @@ c_full:"全双工",c_half:"半双工",c_devices:"台设备",c_yes:"是",c_no:"
|
||||
d_ports:"端口",d_ports_h:"点击端口查看详情",d_system:"系统",d_traffic:"流量",
|
||||
d_traffic_h:"包/秒,实时",d_txpps:"TX pps",d_rxpps:"RX pps",d_txbad:"TX 错误",d_rxbad:"RX 错误",
|
||||
i_host:"主机名",i_ip:"IP 地址",i_mask:"子网掩码",i_gw:"网关",i_mac:"MAC",i_fw:"固件",
|
||||
i_built:"构建日期",i_hw:"硬件",i_flash:"Flash",i_syslog:"Syslog",
|
||||
i_built:"构建日期",i_hw:"硬件",i_temp:"温度",i_flash:"Flash",i_syslog:"Syslog",
|
||||
p_state:"状态",p_disabled:"已禁用",p_up:"已连接",p_txgb:"TX 正常 / 错误",p_rxgb:"RX 正常 / 错误",
|
||||
p_pkts:"个包",p_module:"模块",p_temp:"温度",p_vcc:"供电电压",p_txbias:"TX 偏置电流",p_txpower:"TX 光功率",
|
||||
p_rxpower:"RX 光功率",p_txfault:"TX 故障",p_txdis:"TX 禁用",p_rxlos:"RX 信号丢失",p_adv:"通告能力",
|
||||
@@ -916,7 +916,7 @@ function portDetail(i){
|
||||
function renderInfo(){
|
||||
var m=[["i_host","hostname"],["i_ip","ip_address"],["i_mask","ip_netmask"],
|
||||
["i_gw","ip_gateway"],["i_mac","mac_address"],["i_fw","sw_ver"],["i_built","build_date"],
|
||||
["i_hw","hw_ver"],["i_flash","flash_size"],["i_syslog","syslog_server"]];
|
||||
["i_hw","hw_ver"],["i_temp","chip_temp"],["i_flash","flash_size"],["i_syslog","syslog_server"]];
|
||||
var tb=$("sysinfo");tb.innerHTML="";
|
||||
m.forEach(function(r){
|
||||
var v=S.info[r[1]];
|
||||
@@ -1766,7 +1766,7 @@ $("sy-apply").addEventListener("click",function(){
|
||||
if(!/^[\x21-\x7e]{1,23}$/.test(hn)||/["\\]/.test(hn)){toast(t("sy_host_err"),"err");return;}
|
||||
cmds.push("hostname "+hn);
|
||||
}
|
||||
cmds.push("ip "+ip,"netmask "+mask,"gw "+gw);
|
||||
cmds.push("ip "+ip+"\nnetmask "+mask+"\ngw "+gw);
|
||||
var changingIp=ip!==S.info.ip_address;
|
||||
confirmModal(t("sy_net_q"),changingIp?t("sy_net_d",{ip:ip}):"",function(){
|
||||
postCmds(cmds).then(function(){
|
||||
|
||||
@@ -135,6 +135,23 @@ void string_to_html(__code const char *s)
|
||||
while (*s) char_to_html(*s++);
|
||||
}
|
||||
|
||||
static void temp_to_html(void)
|
||||
{
|
||||
int16_t v;
|
||||
|
||||
reg_read(RTL837X_TM_RESULT);
|
||||
v = SFR_DATA_U16;
|
||||
if (v < 0) {
|
||||
char_to_html('-');
|
||||
v = -v;
|
||||
}
|
||||
itoa_html(v >> 7);
|
||||
char_to_html('.');
|
||||
itoa_html(((v & 0x7f) * 10) >> 7);
|
||||
char_to_html(' ');
|
||||
char_to_html('C');
|
||||
}
|
||||
|
||||
uint16_t stat_content(void)
|
||||
{
|
||||
dbg_string("stat_content called\n");
|
||||
@@ -282,6 +299,8 @@ void send_basic_info(void)
|
||||
slen += strtox(outbuf + slen, BUILD_DATE);
|
||||
slen += strtox(outbuf + slen, "\",\"hw_ver\":\"");
|
||||
slen += strtox(outbuf + slen, machine.machine_name);
|
||||
slen += strtox(outbuf + slen, "\",\"chip_temp\":\"");
|
||||
temp_to_html();
|
||||
slen += strtox(outbuf + slen, "\",\"flash_size\":\"");
|
||||
string_to_html(get_flash_size_str());
|
||||
|
||||
|
||||
+7
-34
@@ -15,7 +15,11 @@
|
||||
|
||||
#if defined(MACHINE_KP_9000_6XH_X2) || \
|
||||
defined(MACHINE_KP_9000_6XH_X2_V2_1) || \
|
||||
defined(MACHINE_KP_9000_6XHML_X2_V2_1)
|
||||
defined(MACHINE_KP_9000_6XHML_X2_V2_1) || \
|
||||
defined(MACHINE_HI_K0402WS) || \
|
||||
defined(MACHINE_PCB_K0402WS_V2) || \
|
||||
defined(MACHINE_PCB_K0402WS_V3) || \
|
||||
defined(MACHINE_FNS1200P)
|
||||
void machine_custom_init(void) __banked
|
||||
{
|
||||
reg_bit_set(RTL837X_REG_LED_GLB_IO_EN, 6);
|
||||
@@ -42,18 +46,6 @@ void machine_custom_init(void) __banked
|
||||
}
|
||||
}
|
||||
|
||||
#elif defined(MACHINE_PCB_K0402WS_V3) || defined(MACHINE_HI_K0402WS)
|
||||
void machine_custom_init(void) __banked
|
||||
{
|
||||
reg_bit_set(RTL837X_REG_LED_GLB_IO_EN, 6);
|
||||
}
|
||||
|
||||
#elif defined(MACHINE_PCB_K0402WS_V2) || defined(MACHINE_FNS1200P)
|
||||
void machine_custom_init(void) __banked
|
||||
{
|
||||
reg_bit_set(RTL837X_REG_LED_GLB_IO_EN, 6);
|
||||
}
|
||||
|
||||
#elif defined MACHINE_PCB_SWTG024AS_A_2_0_1
|
||||
void machine_custom_init(void) __banked
|
||||
{
|
||||
@@ -63,27 +55,8 @@ void machine_custom_init(void) __banked
|
||||
reg_bit_clear(RTL837X_REG_LED_MODE, 7);
|
||||
}
|
||||
|
||||
#elif defined MACHINE_SWTG024AS_A_2_0_1_5C_1SFP
|
||||
void machine_custom_init(void) __banked
|
||||
{
|
||||
uint16_t pval;
|
||||
|
||||
reg_bit_set(RTL837X_REG_LED_GLB_IO_EN, 6);
|
||||
reg_bit_set(RTL837X_REG_LED_MODE, 17);
|
||||
reg_bit_clear(RTL837X_REG_LED_MODE, 9);
|
||||
reg_bit_clear(RTL837X_REG_LED_MODE, 7);
|
||||
|
||||
// OEM firmware sets these companion SDS0 polarity bits for the RTL8221B.
|
||||
sds_read(0, 0, 0);
|
||||
pval = SFR_DATA_U16;
|
||||
sds_write_v(0, 0, 0, pval | 0x100);
|
||||
|
||||
sds_read(0, 6, 2);
|
||||
pval = SFR_DATA_U16;
|
||||
sds_write_v(0, 6, 2, pval | 0x4000);
|
||||
}
|
||||
|
||||
#elif defined MACHINE_SWTG024AS_V2_0
|
||||
#elif defined(MACHINE_SWTG024AS_A_2_0_1_5C_1SFP) || \
|
||||
defined(MACHINE_SWTG024AS_V2_0)
|
||||
void machine_custom_init(void) __banked
|
||||
{
|
||||
uint16_t pval;
|
||||
|
||||
@@ -92,8 +92,18 @@ void static sds_init(void)
|
||||
}
|
||||
|
||||
|
||||
void static tm_init(void)
|
||||
{
|
||||
reg_read_m(RTL837X_TM_CTRL2);
|
||||
sfr_mask_data(0, TM_CTRL2_EN_LATCH, 0);
|
||||
reg_write_m(RTL837X_TM_CTRL2);
|
||||
}
|
||||
|
||||
|
||||
void rtl8373_init(void) __banked
|
||||
{
|
||||
tm_init();
|
||||
|
||||
print_string("\nrtl8373_init called\n");
|
||||
|
||||
// r65d8:3ffbedff R65d8-3ffbedff
|
||||
@@ -191,6 +201,8 @@ void rtl8373_init(void) __banked
|
||||
|
||||
void rtl8372_init(void) __banked
|
||||
{
|
||||
tm_init();
|
||||
|
||||
print_string("\nrtl8372_init called\n");
|
||||
|
||||
sds_init();
|
||||
|
||||
@@ -9,6 +9,13 @@
|
||||
#define RESET_SOC_BIT 0
|
||||
#define RESET_NIC_BIT 2
|
||||
|
||||
#define RTL837X_TM_CTRL2 0x0338
|
||||
#define TM_CTRL2_EN_LATCH 0x04
|
||||
#define RTL837X_TM_RESULT 0x0340
|
||||
#define RTL837X_TM_RESULT_POWERON 0x0350
|
||||
// Temperature: 19 bit value, bits 18:3 in the low 16 bits of the register,
|
||||
// bits 2:0 in bits 18:16. Bit 18 signed, bits 17:10 degrees C, bits 9:0 fraction.
|
||||
|
||||
#define RTL837X_REG_HW_CONF 0x6040
|
||||
// Bits 4 & 5: CLOCK DIVIDER from 125MHz for Timer
|
||||
|
||||
|
||||
+9
-5
@@ -338,15 +338,16 @@ int main(int argc, char **argv)
|
||||
if (stat(arguments.data_file, &s) == 0 && s.st_mode & S_IFDIR) {
|
||||
printf("Adding entries in directory %s\n", arguments.data_file);
|
||||
addsDir = true;
|
||||
DIR *dirptr = opendir(arguments.data_file);
|
||||
if (!dirptr) {
|
||||
struct dirent **entries;
|
||||
int n_entries = scandir(arguments.data_file, &entries, NULL, alphasort);
|
||||
if (n_entries < 0) {
|
||||
fprintf(stderr, "%s: ", arguments.data_file);
|
||||
perror("Error opening directory");
|
||||
return 5;
|
||||
}
|
||||
struct dirent *in_file;
|
||||
int addr = arguments.address;
|
||||
while ( (in_file = readdir(dirptr)) ) {
|
||||
for (int e = 0; e < n_entries; e++) {
|
||||
struct dirent *in_file = entries[e];
|
||||
snprintf(pathbuffer, PATH_SIZE, "%s/%s", arguments.data_file, in_file->d_name);
|
||||
if (stat(pathbuffer, &s) < 0) {
|
||||
fprintf(stderr, "%s: ", pathbuffer);
|
||||
@@ -377,6 +378,9 @@ int main(int argc, char **argv)
|
||||
addidx(in_file->d_name, addr, data_read);
|
||||
addr += data_read;
|
||||
}
|
||||
for (int e = 0; e < n_entries; e++)
|
||||
free(entries[e]);
|
||||
free(entries);
|
||||
} else {
|
||||
size_t data_read = addfile(arguments.data_file, arguments.address);
|
||||
|
||||
@@ -437,7 +441,7 @@ int main(int argc, char **argv)
|
||||
fputs(xbuf, ofile);
|
||||
fputs(fbuf, ofile);
|
||||
fclose(ofile);
|
||||
} else if (addsDir){
|
||||
} else if (addsDir && !argv[arg_index]) {
|
||||
puts(dbuf);
|
||||
puts(xbuf);
|
||||
puts(ibuf);
|
||||
|
||||
@@ -64,6 +64,8 @@
|
||||
|
||||
#include "../rtl837x_common.h"
|
||||
|
||||
#if UIP_FORWARDING
|
||||
|
||||
/*
|
||||
* The list of registered network interfaces.
|
||||
*/
|
||||
@@ -535,3 +537,5 @@ uip_fw_periodic(void)
|
||||
}
|
||||
}
|
||||
/*------------------------------------------------------------------------------*/
|
||||
|
||||
#endif /* UIP_FORWARDING */
|
||||
@@ -43,6 +43,8 @@
|
||||
#include "uip-neighbor.h"
|
||||
#include "../rtl837x_common.h"
|
||||
|
||||
#if UIP_CONF_IPV6
|
||||
|
||||
#pragma codeseg BANK1
|
||||
#pragma constseg BANK1
|
||||
|
||||
@@ -170,3 +172,5 @@ uip_neighbor_lookup(__xdata uip_ipaddr_t ipaddr)
|
||||
return NULL;
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
#endif /* UIP_CONF_IPV6 */
|
||||
@@ -464,6 +464,20 @@ extern __xdata uint8_t uip_buf[UIP_CONF_BUFFER_SIZE+2];
|
||||
#define UIP_BROADCAST UIP_CONF_BROADCAST
|
||||
#endif /* UIP_CONF_BROADCAST */
|
||||
|
||||
/**
|
||||
* Build the IP forwarding module.
|
||||
*
|
||||
* uip-fw.c forwards packets between several network interfaces. A
|
||||
* single-interface device does not call it and should not pay for it.
|
||||
*
|
||||
* \hideinitializer
|
||||
*/
|
||||
#ifndef UIP_CONF_FORWARDING
|
||||
#define UIP_FORWARDING 0
|
||||
#else /* UIP_CONF_FORWARDING */
|
||||
#define UIP_FORWARDING UIP_CONF_FORWARDING
|
||||
#endif /* UIP_CONF_FORWARDING */
|
||||
|
||||
/**
|
||||
* Print out a uIP log message.
|
||||
*
|
||||
|
||||
Reference in new issue
Block a user