}\r
EXPORT_SYMBOL(rknand_get_part_info); \r
\r
-static char sn_data[512];\r
-static char vendor0[512];\r
-\r
+static char nand_idb_data[2048];\r
char GetSNSectorInfo(char * pbuf)\r
{\r
- memcpy(pbuf,sn_data,0x200);\r
+ memcpy(pbuf,&nand_idb_data[0x600],0x200);\r
return 0;\r
}\r
\r
char GetSNSectorInfoBeforeNandInit(char * pbuf)\r
{\r
- memcpy(pbuf,sn_data,0x200);\r
+ memcpy(pbuf,&nand_idb_data[0x600],0x200);\r
return 0;\r
} \r
\r
char GetVendor0InfoBeforeNandInit(char * pbuf)\r
{\r
- memcpy(pbuf,vendor0 + 8,504);\r
+ memcpy(pbuf,&nand_idb_data[0x400+8],504);\r
return 0;\r
}\r
\r
+char* rknand_get_idb_data(void)\r
+{\r
+ return nand_idb_data;\r
+}\r
+EXPORT_SYMBOL(rknand_get_idb_data);\r
+\r
int GetParamterInfo(char * pbuf , int len)\r
{\r
int ret = -1;\r
\r
unsigned long rknand_dma_flush_dcache(unsigned long ptr,int size,int dir)\r
{\r
+#ifdef CONFIG_ARM64\r
+ __flush_dcache_area((void *)ptr, size + 63);\r
+#else\r
__cpuc_flush_dcache_area((void*)ptr, size + 63);\r
+#endif\r
return ((unsigned long )virt_to_phys((void *)ptr));\r
}\r
EXPORT_SYMBOL(rknand_dma_flush_dcache);\r
}\r
EXPORT_SYMBOL(rknand_flash_cs_init);\r
\r
-int rknand_get_reg_addr(int *pNandc0,int *pNandc1,int *pSDMMC0,int *pSDMMC1,int *pSDMMC2)\r
+int rknand_get_reg_addr(unsigned long *pNandc0,unsigned long *pNandc1,unsigned long *pSDMMC0,unsigned long *pSDMMC1,unsigned long *pSDMMC2)\r
{\r
- *pNandc0 = (int)g_nandc_info[0].reg_base;\r
- *pNandc1 = (int)g_nandc_info[1].reg_base;\r
+ *pNandc0 = (unsigned long)g_nandc_info[0].reg_base;\r
+ *pNandc1 = (unsigned long)g_nandc_info[1].reg_base;\r
return 0;\r
}\r
EXPORT_SYMBOL(rknand_get_reg_addr);\r
#endif\r
if(id == 0)\r
{\r
- memcpy(vendor0,membase+0x1400,0x200);\r
- memcpy(sn_data,membase+0x1600,0x200);\r
+ memcpy(nand_idb_data,membase+0x1000,0x800);\r
}\r
else if(id >= 2)\r
{\r