Re: [Nouveau] [PATCH v4] pmu/gk20a: PMU boot support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 21 May 2015 at 16:03, Alexandre Courbot <gnurou@xxxxxxxxx> wrote:
> On Fri, May 15, 2015 at 2:37 PM, Ben Skeggs <skeggsb@xxxxxxxxx> wrote:
>> On 12 May 2015 at 19:04, Alexandre Courbot <gnurou@xxxxxxxxx> wrote:
>>> Hi Ben,
>>>
>>> On Fri, May 1, 2015 at 8:01 AM, Ben Skeggs <skeggsb@xxxxxxxxx> wrote:
>>>> On 13 April 2015 at 20:42, Alexandre Courbot <acourbot@xxxxxxxxxx> wrote:
>>>>> Ben, I guess our main remaining concern with this patch is how it should
>>>>> integrate wrt. the existing PMU code. Since it is designed to interact with
>>>>> the NVIDIA firmware, maybe we should use a different base code, or do you
>>>>> think we can somehow share code and data structures?
>>>> Hey Alexandre,
>>>>
>>>> Sorry for the delay in responding to this.
>>>
>>> It is my turn to apologize - I was (well still am, technically :)) on
>>> holidays and have just started unpiling my inbox...
>>>
>>>>
>>>> My original thinking with transitioning to use NVIDIA's firmware was
>>>> that I'd modify our firmware interfaces to match yours, and share the
>>>> code.  I haven't started on any of this yet due to not having any word
>>>> on how you guys will be shipping the images, etc.  It would be nice to
>>>> have some communication on these things :)
>>>
>>> Indeed. For the first time with Maxwell GPUs, NVIDIA-provided firmware
>>> will be required for GPUs to operate properly. This raises several
>>> questions:
>>>
>>> - Should the firmware be released under /lib/firmware/nouveau or
>>> /lib/firmware/nvidia ? (this directory already exists for Tegra USB
>>> firmware and makes more sense to me, since the firmware is not
>>> Nouveau-specific)
>> I think /lib/firmware/nvidia makes sense here too.
>>
>>> - For GPCCS/FECS firmware, should we release the netlist "pack" file
>>> or adopt the same format as Nouveau does? (1 file per firmware)
>>> - Should we keep the current files names (e.g. nvxx_fucxxxx[cd]), or
>>> try to switch to more meaningful ones?
>> I'd actually prefer to have the entire netlists bundled, that gives us
>> updated reg/ctx production values too as you guys tweak/update them
>> for hw bugs (etc).  They're also nicer in that you get a single bundle
>> of everything that's required for that chipset+engine.
>
> Good for me - actually that's the solution I implemented first before
> deciding to go "à la Nouveau". ;) Some extra code will be needed, but
> nothing crazy, and we will limit that feature to these chips for which
> NVIDIA officially provides the firmware.
>
>> I don't have too much opinion on naming.  The current model of
>> nv{CHIPSET}_{UCODE_TYPE}{REGISTER_BASE}[CODE,DATA] was just nice and
>> convenient to snprintf into a buffer :)
>
> Since the firmware will be provided by us, shall we store it into
> nvidia/<chip>/gpcfe.bin on linux-firmware?
Sounds fine.

>
>>> - What about signature files that are required for secure boot?
>> As with above, if it's possible to ship them in a single file with the
>> ucode that it belongs to, that'd be ideal.  It's not a huge deal
>> though.
>
> So here we actually have several files - it is kind of a mess
> actually. However I could probably merge them into a single netlist
> file like we did for the GPC/FE CS code.
If that's possible, that'd be great.

>
>>> - Knowing that NVIDIA's firmware ABI is a (very slowly) moving target,
>>> it is worth to aim at ABI compatibility, or should we assume different
>>> paths for Nouveau and NVIDIA firmware? If ABI incompatibilities are
>>> introduced in the way, how do we handle versioning?
>> For incompatible changes, I think appending a -VERSION to each
>> firmware blob is probably the simplest approach.  The driver can
>> select the necessary codepath based on what it finds (probably trying
>> newer versions first, obviously).
>
> I agree. Hopefully we won't have too much of this.
>
>>> All these issues make me tend towards having a separate handling of
>>> NVIDIA-released firmware (location, format, and ABI). It will also
>>> make the firmware easier to release if conversions are not necessary
>>> on the way out. What are your thoughts on this?
>> I'm not entirely set here, either way.  I somewhat think that
>> initially I should adapt our interfaces to match, and a keep single
>> code path as long as we can.  A lot of the changes so far have seemed
>> minor enough we could stick conditionals on firmware version, and if
>> fw changes come along that warrant a radical change in handling from
>> the host, we can abstract it away then.
>>
>> But, I'm open to other suggestions :)
>
> Right now my main concern is to get secure boot support in, and the
> shortest path seems to be to not care about ABI compatibility between
> Nouveau and NV firmwares (at least for PMU). Basically I am hoping
> that you will agree to proceed this way in a first time. ^_^
If it's really that urgent, my suggestion is to submit the patches as
you did previously, keeping them confined to GK20A/GM20B, and I'll do
something nicer to support boards in general.

Frankly, I'd have had secure boot support in the driver already had
NVIDIA played things a little differently...  Going forward, I'd like
to see NVIDIA not treating the Tegra parts of nouveau as a little
black box where anything goes and things are different from the rest
of the driver.  The chips operate, for the most part, identically to
their big siblings...

Thanks,
Ben.
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux