+int flash_sec_erase(u32 addr) {
+
+ u32 a18_12;
+ u32 base;
+
+ a18_12=addr&0x00000fffff;
+ base=addr&0xff000000;
+
+ *((volatile u16 *)(base|(0x555<<1)))=0xaa;
+ *((volatile u16 *)(base|(0x2aa<<1)))=0x55;
+ *((volatile u16 *)(base|(0x555<<1)))=0x80;
+ *((volatile u16 *)(base|(0x555<<1)))=0xaa;
+ *((volatile u16 *)(base|(0x2aa<<1)))=0x55;
+ *((volatile u16 *)(base|(a18_12<<1)))=0x30;
+
+ return 0;
+}
+