[U-Boot] [PATCH 2/3] ARM: board: cm_fx6: fixup mtd partitions in the fdt

Christopher Spinrath
2016-07-11T11:54:22Z

Hi Nikita,

On 10.07.2016 09:52, Nikita Kiryanov wrote:
> Hi Christopher,
>
> On Thu, Jul 07, 2016 at 03:30:25PM +0200, Christopher Spinrath wrote:
>> Hi Nikita,
>>
>> On 07/07/2016 10:53 AM, Nikita Kiryanov wrote:
>>> On Wed, Jun 22, 2016 at 07:17:53PM +0300, Igor Grinberg wrote:
>>>> On 06/19/2016 06:44 PM, Christopher Spinrath wrote:
>>>>> The cm-fx6 module has an on-board st,m25p compatible spi flash chip
>>>>> used for u-boot (binary & environment). Overwrite the partitions in
>>>>> the device tree by the partition table provided in the mtdparts
>>>>> environment variable, if it is set.
>>>>>
>>>>> This allows to specify a kernel independent partitioning in the
>>>>> environment and provides a convient way for the user to adapt the
>>>>> partition table.
>>>>>
>>>>> Signed-off-by: Christopher Spinrath <christopher.spinrath@rwth-aachen.de>
>>>>> ---
>>>>> board/compulab/cm_fx6/cm_fx6.c | 16 +++++++++++++++-
>>>>> 1 file changed, 15 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/board/compulab/cm_fx6/cm_fx6.c b/board/compulab/cm_fx6/cm_fx6.c
>>>>> index 712057a..81a7ae2 100644
>>>>> --- a/board/compulab/cm_fx6/cm_fx6.c
>>>>> +++ b/board/compulab/cm_fx6/cm_fx6.c
>>>>
>>>> [...]
>>>>
>>>>> +#ifdef CONFIG_FDT_FIXUP_PARTITIONS
>>>>> +struct node_info nodes[] = {
>>>>> + { "st,m25p", MTD_DEV_TYPE_NOR, },
>>>>
>>>> Nikita, is this enough for all flashes we assemble on cm-fx6?
>>>
>>> Yes, CM-FX6 is using M25PX16 and SST25VF016B, both of which are
>>> supported by the m25p80.c driver. However, on the mainline branch
>>> I don't see "m25p" in the list of device ids, and IIRC the request
>>> is to favor "jedec,spi-nor" as compatible string over device specific
>>> ones.
>>
>> Linux is going to use "st,m25p", "jedec,spi-nor" as compatible list
>> (currently queued for inclusion in v4.8:
>> https://git.kernel.org/cgit/linux/kernel/git/arm/arm-soc.git/tree/arch/arm/boot/dts/imx6q-cm-fx6.dts?h=next/dt#n123
>> ).
>>
>> I have chosen "st,m25p" here to cover both the mainline and CompuLab's
>> device trees (I have seen some where "jedec,spi-nor" is not in the
>> list). However, if you prefer I will switch to "jedec,spi-nor"
>> (excluding some device trees) in v2.
>
> Does it have to be an "or" situation? m25p is necessary to serve older CM-FX6
> kernels, but it is not supported in the mainline kernel, so the correct
> course of actions seems to be to use both "st,m25p" and "jedec,spi-nor".

This has nothing to do with the kernel itself; the compatible is only
used to find the correct dt node describing the flash chip and as I said
in my previous email, the upstream device tree node is going to have the
st,m25p compatible string.

On the other hand, m25p is not documented but it used to be in upstream
device trees. Since it has been removed from most of them recently, I
agree that having both compatibles is a good idea. From a quick look at
the source code it should be possible. I will verify this for v2.

Thanks,
Christopher