From: Nishanth Menon <nm@ti.com>
To: Paul Walmsley <paul@pwsan.com>
Cc: "Pandita, Vikram" <vikram.pandita@ti.com>,
"Woodruff, Richard" <r-woodruff2@ti.com>,
"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>
Subject: Re: [PATCH v2 1/2] omap: add bits for future 3430/3630 ES revisions
Date: Tue, 20 Oct 2009 20:15:45 -0500 [thread overview]
Message-ID: <4ADE60C1.9060503@ti.com> (raw)
In-Reply-To: <4ADE5EE4.2030901@ti.com>
Nishanth Menon had written, on 10/20/2009 08:07 PM, the following:
> Paul Walmsley had written, on 10/20/2009 06:14 PM, the following:
>> Hi Vikram, Nishanth, Richard,
>>
>> a few comments on this:
>>
>> On Tue, 20 Oct 2009, Vikram Pandita wrote:
>>
>>> Add bits for future expansion of omap_chip_id type field.
>>> This is needed to accomodate 3630ES1 chip id which is bit10
>> ...
>>
>>> diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h
>>> index 7cb0556..922bf1c 100644
>>> --- a/arch/arm/plat-omap/include/plat/cpu.h
>>> +++ b/arch/arm/plat-omap/include/plat/cpu.h
>>> @@ -45,7 +45,7 @@ int omap_type(void);
>>>
>>> struct omap_chip_id {
>>> u8 oc;
>>> - u8 type;
>>> + u32 type;
>>> };
>> Just wanted to understand the motivation for using the u32.
>>
>> Earlier in the life of these patches, two comments were mentioned: the
>> desire to 'futureproof' and the desire to reserve space for other
>> 34xx-family parts.
>>
>> Regarding 'futureproofing:' that's part of the reason that a separate
>> struct was defined for this: to prevent code that uses it from depending
>> on the size of the type. (Originally it was a typedef, but Linus hates
>> typedefs...) So it shouldn't matter how big or small the type is here, as
>> long as it can handle all of the bits allocated for it.
>>
>> Also mentioned was the idea of reserving space for other 34xx-family
>> chips. I'd suggest simply renumbering the bits when and if those versions
>> appear. Code that uses the omap_chip_id system should always use the
>> macros (e.g. CHIP_IS_OMAP3430) and not encode separate bit shift values,
>> so renumbering should be completely safe and transparent for core code.
>> Module code shouldn't be using the omap_chip code, it's for core usage
>> only.
>>
>> So, since only one bit is being added, why not continue the use of the u8?
>> Then when the next bits need to be added, the type can be expanded at that
>> point, and the bits renumbered if necessary. This should be a completely
>> transparent operation for code that uses it. Vikram's original patch:
>>
>> http://patchwork.kernel.org/patch/54847/
>>
>> should be fine.
>
> Assumptions:
> a) omap_chip_id is supposedly constant for all devices within the same
> family. 3630, 3430 rev x will belong to the same family.
> b) we prefer bitops to using cpu_is_blahblah() for reasons of
> performance (if it could be argued so)..
>
> Issues with the strategy of restricting to the current 8 bits:
> a) Why extrabits now:
> we have 8 bits now and we would have used all 8 bits with 3630 with the
> mentioned patch. What do we do with the next revision of 3430? Do we
> want to increase the size once it comes along? OR Do we want to do it
> right now? Why wait till we get additional silicons to go figure how to
> add those bits as Richard pointed out, when there could be one more in
> the pipeline?
>
> b) How much extra bits should we add?
> It does not matter when you pull in extra bits - u'd have to go u16 for
> next rev of 3430, it is gonna be a single entry, what if we end up (god
> forbid) further revisions of 3630 or even a new gen of omap3 family -
> call it 3XYZ devices?
> Further how expensive is it to add the u16 Vs u32 size from a memory
> usage perspective?
>
> Either way, we could choose:
> a) We can choose to stick with u8 and take the next rev of 3430 ES
> revision when the time is right
> b) we can choose to stick with u16 for the known future (+allowing for 5
> more revisions of silicons) of OMAP3.
> c) We can choose to say - no one really knows how many ES/variants of a
> silicon family could happen for OMAP3/OMAP4/5/6/7 etc.. and choose u32
> giving us a limit beyond which we might choose to rearchitect things.
>
> The choice is upto this community to make.. options are very easy to
> implement ;).
>
forgot to add an important option (if I understood Paul correctly):
d) Renumber and change the implementation of GE macros.. and check if
any other places we have'nt mixed up stuff.
--
Regards,
Nishanth Menon
/me feels much better now ;)
next prev parent reply other threads:[~2009-10-21 1:15 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-20 22:26 [PATCH v2 1/2] omap: add bits for future 3430/3630 ES revisions Vikram Pandita
2009-10-20 22:26 ` [PATCH v2 2/2] omap: 3630: update is_chip variable Vikram Pandita
2009-10-20 23:14 ` [PATCH v2 1/2] omap: add bits for future 3430/3630 ES revisions Paul Walmsley
2009-10-21 1:07 ` Nishanth Menon
2009-10-21 1:15 ` Nishanth Menon [this message]
2009-11-02 13:12 ` Alexander Shishkin
2009-11-02 14:13 ` Nishanth Menon
2009-11-02 17:01 ` Alexander Shishkin
2009-11-02 17:49 ` Nishanth Menon
2009-12-15 21:26 ` Paul Walmsley
2009-10-21 17:48 ` Pandita, Vikram
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4ADE60C1.9060503@ti.com \
--to=nm@ti.com \
--cc=linux-omap@vger.kernel.org \
--cc=paul@pwsan.com \
--cc=r-woodruff2@ti.com \
--cc=vikram.pandita@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox