|
@@ -21,8 +21,11 @@
|
|
|
#define FAIL -1
|
|
|
#define YES 1
|
|
|
#define NO 0
|
|
|
+#define ON 1
|
|
|
+#define OFF 0
|
|
|
#define HEADER_LENGTH 48
|
|
|
|
|
|
+
|
|
|
struct SysConfigAndInfo *ShmSysConfigAndInfo;
|
|
|
struct StatusCodeData *ShmStatusCodeData;
|
|
|
struct FanModuleData *ShmFanModuleData;
|
|
@@ -122,6 +125,52 @@ int runShellCmd(const char*cmd)
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+int config_upgrade_flag(unsigned int upgradeFlag, unsigned char isSetFlag)
|
|
|
+{
|
|
|
+ int result = FAIL;
|
|
|
+ int fd;
|
|
|
+ unsigned char envFlash[512*1024];
|
|
|
+ system("rm -f /tmp/envFlash");
|
|
|
+ DEBUG_INFO("Read /dev/mtd2.\n");
|
|
|
+ runShellCmd("nanddump -s 0x0 -l 0x80000 -f /tmp/envFlash /dev/mtd2");
|
|
|
+
|
|
|
+ fd = open("/tmp/envFlash", O_RDWR);
|
|
|
+ if(fd < 0)
|
|
|
+ {
|
|
|
+ DEBUG_ERROR("Open envFlash NG.\n");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ read(fd,envFlash,ARRAY_SIZE(envFlash));
|
|
|
+ close(fd);
|
|
|
+ system("rm -f /tmp/envFlash");
|
|
|
+
|
|
|
+ envFlash[upgradeFlag] = (isSetFlag?0x00:0xff);
|
|
|
+
|
|
|
+ fd = open("/tmp/envFlash", O_RDWR | O_CREAT | O_EXCL);
|
|
|
+ if(fd < 0)
|
|
|
+ {
|
|
|
+ DEBUG_ERROR("Open envFlash NG.\n");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ write(fd,envFlash,ARRAY_SIZE(envFlash));
|
|
|
+ close(fd);
|
|
|
+
|
|
|
+ DEBUG_INFO("Erase /dev/mtd2.\n");
|
|
|
+ runShellCmd("flash_erase /dev/mtd2 0 0");
|
|
|
+
|
|
|
+ DEBUG_INFO("Write /dev/mtd2.\n");
|
|
|
+ runShellCmd("nandwrite -p /dev/mtd2 /tmp/envFlash");
|
|
|
+
|
|
|
+ system("rm -f /tmp/envFlash");
|
|
|
+ result = PASS;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
int Upgrade_Flash(unsigned int Type,char *SourcePath,char *ModelName)
|
|
|
{
|
|
|
int result = FAIL;
|
|
@@ -309,15 +358,15 @@ int Upgrade_Flash(unsigned int Type,char *SourcePath,char *ModelName)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ config_upgrade_flag(UPGRADE_FLAG_DTS, ON);
|
|
|
DEBUG_INFO("Erase /dev/mtd4.\n");
|
|
|
runShellCmd("flash_erase /dev/mtd4 0 0");
|
|
|
-
|
|
|
DEBUG_INFO("Write /dev/mtd4.\n");
|
|
|
runShellCmd("nandwrite -p /dev/mtd4 /mnt/imgBuffer");
|
|
|
+ config_upgrade_flag(UPGRADE_FLAG_DTS, OFF);
|
|
|
|
|
|
DEBUG_INFO("Erase /dev/mtd5.\n");
|
|
|
runShellCmd("flash_erase /dev/mtd5 0 0");
|
|
|
-
|
|
|
DEBUG_INFO("Write /dev/mtd5.\n");
|
|
|
runShellCmd("nandwrite -p /dev/mtd5 /mnt/imgBuffer");
|
|
|
|
|
@@ -346,10 +395,12 @@ int Upgrade_Flash(unsigned int Type,char *SourcePath,char *ModelName)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ config_upgrade_flag(UPGRADE_FLAG_KERNEL, ON);
|
|
|
DEBUG_INFO("Erase /dev/mtd6.\n");
|
|
|
runShellCmd("flash_erase /dev/mtd6 0 0");
|
|
|
DEBUG_INFO("Write /dev/mtd6.\n");
|
|
|
runShellCmd("nandwrite -p /dev/mtd6 /mnt/imgBuffer");
|
|
|
+ config_upgrade_flag(UPGRADE_FLAG_KERNEL, OFF);
|
|
|
|
|
|
DEBUG_INFO("Erase /dev/mtd7.\n");
|
|
|
runShellCmd("flash_erase /dev/mtd7 0 0");
|
|
@@ -380,10 +431,12 @@ int Upgrade_Flash(unsigned int Type,char *SourcePath,char *ModelName)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ config_upgrade_flag(UPGRADE_FLAG_ROOTFS, ON);
|
|
|
DEBUG_INFO("Erase /dev/mtd8.\n");
|
|
|
runShellCmd("flash_erase /dev/mtd8 0 0");
|
|
|
DEBUG_INFO("Write /dev/mtd8.\n");
|
|
|
runShellCmd("nandwrite -p /dev/mtd8 /mnt/imgBuffer");
|
|
|
+ config_upgrade_flag(UPGRADE_FLAG_ROOTFS, OFF);
|
|
|
|
|
|
DEBUG_INFO("Erase /dev/mtd9.\n");
|
|
|
runShellCmd("flash_erase /dev/mtd9 0 0");
|