From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Warren Date: Wed, 13 Mar 2013 11:01:21 -0600 Subject: [U-Boot] [PATCH v1] DOS_PBR block type is also valid dos block type. In-Reply-To: <5140AE9F.9020204@wwwdotorg.org> References: <1362995768-30954-1-git-send-email-sonic.adi@gmail.com> <513E1425.2030604@wwwdotorg.org> <513E9C79.2000708@wwwdotorg.org> <5140AE9F.9020204@wwwdotorg.org> Message-ID: <5140B0E1.8030009@wwwdotorg.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 03/13/2013 10:51 AM, Stephen Warren wrote: > On 03/12/2013 08:58 PM, Sonic Zhang wrote: >> Hi Stephen, >> >> On Tue, Mar 12, 2013 at 11:09 AM, Stephen Warren wrote: >>> On 03/11/2013 08:57 PM, Sonic Zhang wrote: >>>> Hi Stephen, >>>> >>>> >>>> On Tue, Mar 12, 2013 at 1:28 AM, Stephen Warren wrote: >>>>> On 03/11/2013 03:56 AM, sonic.adi at gmail.com wrote: >>>>>> From: Sonic Zhang >>>>>> >>>>>> - Should return 0 for both DOS_MBR and DOS_PBR block types in test_part_dos(). >>>>> >>>>> What problem does this solve? >>>>> >>>>> I don't believe this change is correct. The purpose of test_part_dos() >>>>> is to determine whether a block device contains an MS-DOS partition table. >>>>> >>>>> Such a partition table is present in an MBR, but not a PBR. A PBR >>>>> contains a *FAT file-system, and does not include a partition table. >>>> >>>> The SD card formated by windows 7 into one FAT partition can't be >>>> initialized correct in u-boot function init_part() after you reuses >>>> function test_block_type() in function test_part_dos(). So, files on >>>> that partition can't be displayed when run command "fatls mmc 0". >>>> >>>> The only difference in your change is to mark dos partition with flag >>>> DOS_PBR invalid. >>> >>> I did test a raw FAT filesystem on an SD card without any partition >>> table, and it worked fine. Admittedly I created the layout/filesystem >>> with Linux rather than Windows, but I don't think the layout would be >>> any difference. What if you "fatls mmc 0:0" rather than "fatls mmc 0"; >>> does that make any difference? >> >> "fatls mmc 0:0" makes no difference. > > I have reproduced this. However, I believe it's not a simple "the code > is wrong" issue, but rather some kind of issue with stale state sticking > around. Oh, actually perhaps I haven't. What is the exact error message that you see? If I apply your patch, it doesn't solve the problem that I described; I suspect the problem you're seeing is something different.