From 34cf8e94c2dc66a7ba2bc4c0e74c096965c450dd Mon Sep 17 00:00:00 2001 From: John Crispin Date: Mon, 24 Dec 2007 23:06:11 +0000 Subject: add ifx adsl tools SVN-Revision: 9900 --- .../ifxmips_adsl/src/danube_show_firmware_date.c | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 package/ifxmips_adsl/src/danube_show_firmware_date.c (limited to 'package/ifxmips_adsl/src/danube_show_firmware_date.c') diff --git a/package/ifxmips_adsl/src/danube_show_firmware_date.c b/package/ifxmips_adsl/src/danube_show_firmware_date.c new file mode 100644 index 0000000000..94abc32ae0 --- /dev/null +++ b/package/ifxmips_adsl/src/danube_show_firmware_date.c @@ -0,0 +1,75 @@ +#define _IFXMIPS_ADSL_APP +#define u32 unsigned int +#define IFXMIPS_MEI_DEV "/dev/ifxmips/mei" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +u16 Message[16]__attribute__ ((aligned(4))); + +void makeCMV(u8 opcode, u8 group, u16 address, u16 index, int size, u16 * data); +void makeCMV(u8 opcode, u8 group, u16 address, u16 index, int size, u16 * data) +{ + memset(Message, 0, 16*2); + Message[0]= (opcode<<4) + (size&0xf); + if(opcode == H2D_DEBUG_WRITE_DM) + Message[1]= (group&0x7f); + else + Message[1]= (((index==0)?0:1)<<7) + (group&0x7f); + Message[2]= address; + Message[3]= index; + if((opcode == H2D_CMV_WRITE)||(opcode == H2D_DEBUG_WRITE_DM)) + memcpy(Message+4, data, size*2); + return; +} + + +int main(int argc, char **argv) +{ + int fd; + u16 temp=0; + u16 rt_buildcode_lsw=0, rt_buildcode_msw=0; + u32 rt_buildcode = 0; + + fd=open(IFXMIPS_MEI_DEV, O_RDWR); + if(fd<0){ + printf("\n\n autoboot open device fail"); + return -1; + } + + + makeCMV(H2D_CMV_READ, INFO, 55, 0, 1, &temp); + if(ioctl(fd, IFXMIPS_MEI_CMV_WINHOST, &Message)<0){ + printf("\n\n read INFO 55 0 fail"); + return -1; + } + rt_buildcode_lsw = Message[4]; + + makeCMV(H2D_CMV_READ, INFO, 55, 1, 1, &temp); + if(ioctl(fd, IFXMIPS_MEI_CMV_WINHOST, &Message)<0){ + printf("\n\n read INFO 55 1 fail"); + return -1; + } + rt_buildcode_msw = Message[4]; + + rt_buildcode = rt_buildcode_lsw + (rt_buildcode_msw << 16); + printf("date: %d, month: %d, hour: %d, minute: %d\n", + (rt_buildcode >> 0) & 0xFF, + (rt_buildcode >> 8) & 0xFF, + (rt_buildcode >> 16) & 0xFF, + (rt_buildcode >> 25) & 0xFF + ); + return 0; +} -- cgit v1.2.3