From: Zhaoyifeng Date: Tue, 21 Apr 2015 04:57:56 +0000 (+0800) Subject: NAND : add boot media check X-Git-Tag: firefly_0821_release~4158^2~172 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=627fe3d23eb4fff2f705a5bd604fc21556f4a2a8;p=firefly-linux-kernel-4.4.55.git NAND : add boot media check Add boot media check , if boot from EMMC,no need to enable nand clock. --- diff --git a/arch/arm/mach-rockchip/rknandbase.c b/arch/arm/mach-rockchip/rknandbase.c index deefabb67f37..bda37fab9b2f 100755 --- a/arch/arm/mach-rockchip/rknandbase.c +++ b/arch/arm/mach-rockchip/rknandbase.c @@ -208,6 +208,14 @@ int rknand_nandc_irq_init(int id,int mode,void * pfun) } EXPORT_SYMBOL(rknand_nandc_irq_init); +/*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) { unsigned int id = 0; @@ -241,7 +249,12 @@ static int rknand_probe(struct platform_device *pdev) if(id == 0) { memcpy(nand_idb_data,membase+0x1000,0x800); - } + 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) { dev_err(&pdev->dev, "nandc id = %d error!\n",id);