Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754213Ab3HPQCr (ORCPT ); Fri, 16 Aug 2013 12:02:47 -0400 Received: from avon.wwwdotorg.org ([70.85.31.133]:40570 "EHLO avon.wwwdotorg.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751527Ab3HPQCn (ORCPT ); Fri, 16 Aug 2013 12:02:43 -0400 Message-ID: <520E4D1F.3000509@wwwdotorg.org> Date: Fri, 16 Aug 2013 10:02:39 -0600 From: Stephen Warren User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130803 Thunderbird/17.0.8 MIME-Version: 1.0 To: Caizhiyong CC: Andrew Morton , Karel Zak , "linux-kernel@vger.kernel.org" , "Wanglin (Albert)" , Quyaxin Subject: Re: [PATCH] block: support embedded device command line partition References: <520CF92A.90909@wwwdotorg.org> In-Reply-To: X-Enigmail-Version: 1.4.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2887 Lines: 68 On 08/15/2013 08:54 PM, Caizhiyong wrote: >>> +blkdevparts=[;] >>> + := :[,] >>> + := [@](part-name) >>> + >>> + >>> + block device disk name, embedded device used fixed block device, >>> + it's disk name also fixed. such as: mmcblk0, mmcblk1, mmcblk0boot0. >> >> The device-name isn't always fixed. >> >> For example, what if there are multiple SDHCI controllers, one hosting a >> fixed eMMC device and the other an SD card? It's quite typical for the >> eMMC's device name (which is likely what should be affected by this >> feature) to be mmcblk0 when no SD card is present, yet be mmcblk1 when >> an SD card is present. Is there a more precise/stable way to define >> which device the command-line option applies to? > > Yes. Fixed is for single controller. > For multiple controllers, currently, there is not a simple way. > I tend to do something in the eMMC driver, such as initialize order, > but I have not tried. There have been proposals before to try and create a fixed naming for the controllers (or rather the block devices they generate...) but they've been rejected. I don't think we should rely on being able to do that. >>> + >>> + >>> + partition start address, in bytes. >>> + >>> +(part-name) >>> + partition name, kernel send uevent with "PARTNAME". application can create >>> + a link to block device partition with the name "PARTNAME". >>> + user space application can access partition by partition name. >> >> Do partitions usually have a PARTNAME attribute when probed through >> normal mechanisms like MBR? If so, I guess this is fine. >> >> Perhaps we can just use , as the delimiter for all fields, rather than >> special-casing part-name to use (), so: >> >> size,offset,partname,size,offset,partname,... >> >> The partname field could easily be empty if not needed. > > If no need partname, your bootargs are mmcblk0:1G,1G,1G,... Well, you always need the offset too. I don't think there's any harm in forcing all fields to be specified in all cases; it makes the whole system much more regular and less error-prone. Alternatively, use a different separator between fields for a given partition, and between partitions, e.g.: size,offset,partname;size,offset,partname That way, you know that if you see a ; you're looking at a new partition, and hence the partname field need not always be specified. Although, if you want to specify a partname but not an offset you'd still need empty fields, so just requiring all fields to always be present still seems safest to me. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/