Re: UBIFS LEB properties tree with odd addresses

From: Richard Weinberger
Date: Thu Oct 27 2016 - 10:40:18 EST


Naga Sureshkumar Relli,

On 26.10.2016 14:11, Naga Sureshkumar Relli wrote:
> Hi Richard,
>
> -----Original Message-----
> From: Richard Weinberger [mailto:richard@xxxxxx]
> Sent: Wednesday, October 26, 2016 2:44 AM
> To: Naga Sureshkumar Relli <nagasure@xxxxxxxxxx>; Christoph Hellwig <hch@xxxxxxxxxxxxx>
> Cc: dwmw2@xxxxxxxxxxxxx; computersforpeace@xxxxxxxxx; dedekind1@xxxxxxxxx; adrian.hunter@xxxxxxxxx; michal.simek@xxxxxxxxxx; Punnaiah Choudary Kalluri <punnaia@xxxxxxxxxx>; linux-mtd@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
> Subject: Re: UBIFS LEB properties tree with odd addresses
>
> Naga Sureshkumar Relli,
>> Even bytes i.e. 0, 2, 4,... are transmitted on Lower Data Bus
>> Odd bytes i.e. 1, 3, 5,.. are transmitted on Upper Data Bus.
>
>> But these details are hidden from UBI?
>
> Yes, Our controller driver will take care of these byte striping.
>
>> So for temporary hack we did the following change In fs/ubifs/lpt.c In
>> do_calc_lpt_geom(), added the following
>> + if (c->pnode_sz % 2)
>> + c->pnode_sz += 1;
>> + if (c->ltab_sz % 2)
>> + c->ltab_sz += 1;
>>
>> Please kindly suggest, I need your inputs, changing the pnode_sz and ltab_sz to even in lpt.c, will it impact on any others?
>
>> Hmm, the calculations in lpt.c use basic properties of the MTD (number of blocks, etc...).
>> Can you please double check which property causes the failure and also verify whether the MTD driver provides correct properties. i.e. page sizes, block size, number of blocks, ...
>
> Yes, only pnode_sz and ltab_sz are odd values

Hm, these values depend only on basic MTD prperties AFAICT.

> And MTD info, here are my logs
> In Single Flash mode:
> Mtd->erasesize = 64KiB
> Mtd->size = 64MiB
> Mtd->numeraseregions = 0
> Nor->pagesize = 256
>
> In Dual parallel mode:
> Mtd->erasesize = 128KiB
> Mtd->size = 128MiB
> Mtd->numeraseregions = 0
> Nor->pagesize = 512

How does UBI report them?
Maybe you miss some bit and set incorrect MTD properties.

A 128MiB MTD with 128KiB erase size is nothing special.

Thanks,
//richard