From 627fe3d23eb4fff2f705a5bd604fc21556f4a2a8 Mon Sep 17 00:00:00 2001 From: Zhaoyifeng Date: Tue, 21 Apr 2015 12:57:56 +0800 Subject: [PATCH] NAND : add boot media check Add boot media check , if boot from EMMC,no need to enable nand clock. --- arch/arm/mach-rockchip/rknandbase.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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); -- 2.34.1