NAND : add boot media check
authorZhaoyifeng <zyf@rock-chips.com>
Tue, 21 Apr 2015 04:57:56 +0000 (12:57 +0800)
committerZhaoyifeng <zyf@rock-chips.com>
Tue, 21 Apr 2015 04:57:56 +0000 (12:57 +0800)
    Add boot media check , if boot from EMMC,no need to enable nand clock.

arch/arm/mach-rockchip/rknandbase.c

index deefabb67f37e409151c84353d0f941ebf333ae8..bda37fab9b2fe258a7ef3e0cb577618da3e9c775 100755 (executable)
@@ -208,6 +208,14 @@ int rknand_nandc_irq_init(int id,int mode,void * pfun)
 }\r
 EXPORT_SYMBOL(rknand_nandc_irq_init);\r
 \r
+/*1:flash 2:emmc 4:sdcard0 8:sdcard1*/
+static int rknand_boot_media = 2;
+int rknand_get_boot_media(void)
+{
+       return rknand_boot_media;
+}
+EXPORT_SYMBOL(rknand_get_boot_media);
+
 static int rknand_probe(struct platform_device *pdev)\r
 {\r
        unsigned int id = 0;\r
@@ -241,7 +249,12 @@ static int rknand_probe(struct platform_device *pdev)
     if(id == 0)\r
        {\r
         memcpy(nand_idb_data,membase+0x1000,0x800);\r
-       }\r
+               if (*(int *)(&nand_idb_data[0]) == 0x44535953) {
+                       rknand_boot_media = *(int *)(&nand_idb_data[8]);
+                       if (rknand_boot_media == 2) /*boot from emmc*/
+                               return -1;
+               }
+       }
        else if(id >= 2)\r
        {\r
                dev_err(&pdev->dev, "nandc id = %d error!\n",id);\r