Subject: Re: [PATCH v2] qe: add ability to upload QE firmware

From: Timur Tabi <[email-masked]>
Date: Wed, 05 Dec 2007 18:05:34 -0600

Arnd Bergmann wrote:

> What does the firmware node contain then? The way I read it, you only put
> metadata about the uploaded firmware in there, but not the blob itself, right?

That's correct.  The meta-data is only the information that a device driver 
would need to identify and interact with the microcode.

> Is there a case where you don't need the firmware in order to start the
> kernel, but still want to provide it in flash?

I don't think you'll ever need the firmware to *start* the kernel.

> In that case, I think it
> would really be better to just put the blob into the tree and only
> have the fw loading code in the kernel instead of duplicating it in the boot
> loader.

That would require the firmware to present in RAM for all time, since the device 
tree cannot be unloaded.  Besides, you might need to have the firmware loaded in 
U-Boot anyway.  If your console is connected to the QE, then you'll need the 
UART firmware loaded before you can see anything.  That's why U-Boot needs its 
own version.

> Regarding the question whether the firmware should be a device node or
> a property of another node, I'd prefer a simple property, because the
> firmware itself is not really a device you can access, but I don't care
> much about that.

Technically, the firmware could be considered a device on the QE, because it's 
loaded into I-RAM and it can significantly alter the behavior of the device. 
Having it its own node also lets me compartmentalize it.  If I want to expand 
the node and add more properties, it's cleaner.

-- 
Timur Tabi
Linux kernel developer at Freescale