public inbox for linuxppc-dev@ozlabs.org 
 help / color / mirror / Atom feed
From: Timur Tabi <timur@freescale•com>
To: Grant Likely <grant.likely@secretlab•ca>
Cc: Mitch Bradley <wmb@firmworks•com>,
	Scott Wood <scottwood@freescale•com>,
	devicetree-discuss@lists•ozlabs.org, linuxppc-dev@ozlabs•org
Subject: Re: [PATCH] powerpc/fsl: add device tree binding for QE firmware
Date: Thu, 25 Mar 2010 12:03:17 -0500	[thread overview]
Message-ID: <4BAB9755.2080408@freescale.com> (raw)
In-Reply-To: <fa686aa41003250959v401d14e0g151aa54a57eea39@mail.gmail.com>

Grant Likely wrote:
> For indirect firmware, create a /chosen/firmware node.  Don't add a
> compatible property, 

Oh, I don't like that idea at all.  The compatible property is useful for me to know *how* to parse the binary blob.  

> compatible is for devices and this node is for
> blob data.

But the blob has a format.  For QE firmware, for example, it's this:

struct qe_firmware {
	struct qe_header {
		u32 length;	/* Length of the entire structure, in bytes */
		u8 magic[3];	/* Set to { 'Q', 'E', 'F' } */
		u8 version;	/* Version of this layout. First ver is '1' */
	} header;
	u8 id[62];		/* Null-terminated identifier string */
	u8 split;		/* 0 = shared I-RAM, 1 = split I-RAM */
	u8 count;		/* Number of microcode[] structures */
	struct {
		u16 model;	/* The SOC model  */
		u8 major;	/* The SOC revision major */
		u8 minor;	/* The SOC revision minor */
	} __attribute__ ((packed)) soc;
	u8 padding[4];		/* Reserved, for alignment */
	u64 extended_modes;	/* Extended modes */
	u32 vtraps[8];		/* Virtual trap addresses */
	u8 reserved[4];		/* Reserved, for future expansion */
	struct qe_microcode {
		u8 id[32];	/* Null-terminated identifier */
		u32 traps[16];	/* Trap addresses, 0 == ignore */
		u32 eccr;	/* The value for the ECCR register */
		u32 iram_offset;/* Offset into I-RAM for the code */
		u32 count;	/* Number of 32-bit words of the code */
		u32 code_offset;/* Offset of the actual microcode */
		u8 major;	/* The microcode version major */
		u8 minor;	/* The microcode version minor */
		u8 revision;	/* The microcode version revision */
		u8 padding;	/* Reserved, for alignment */
		u8 reserved[4];	/* Reserved, for future expansion */
	} __attribute__ ((packed)) microcode[1];
	/* All microcode binaries should be located here */
	/* CRC32 should be located here, after the microcode binaries */
} __attribute__ ((packed));

>  Put each firmware blob into a separate property, and make
> the names reasonable (ie. mpc<blah>-qe-firmware).  Have the QE
> reference the firmware blob by property name.

I don't like the idea of using the property name as a pseudo-compatible string.

-- 
Timur Tabi
Linux kernel developer at Freescale

  reply	other threads:[~2010-03-25 17:03 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-23 21:42 [PATCH] powerpc/fsl: add device tree binding for QE firmware Timur Tabi
2010-03-24  6:07 ` Grant Likely
2010-03-24 12:05   ` Timur Tabi
2010-03-24 17:00     ` Segher Boessenkool
2010-03-24 17:07       ` Grant Likely
2010-03-24 17:31         ` Timur Tabi
2010-03-24 18:10           ` Grant Likely
2010-03-24 18:21             ` Mitch Bradley
2010-03-24 18:25             ` Timur Tabi
2010-03-24 18:24           ` M. Warner Losh
2010-03-24 18:31             ` Timur Tabi
2010-03-25  1:49           ` Segher Boessenkool
2010-03-25 14:42             ` Timur Tabi
2010-03-25 16:10               ` Grant Likely
2010-03-25 16:34                 ` Scott Wood
2010-03-25 16:46                   ` Timur Tabi
2010-03-26 18:23                     ` Rafal Jaworowski
2010-03-25 23:53               ` M. Warner Losh
2010-03-26  0:22                 ` Timur Tabi
2010-03-25 15:16             ` Scott Wood
2010-03-25 15:29               ` Mitch Bradley
2010-03-25 16:16                 ` Grant Likely
2010-03-25 16:36                   ` Timur Tabi
2010-03-25 16:50                     ` Scott Wood
2010-03-25 16:59                     ` Grant Likely
2010-03-25 17:03                       ` Timur Tabi [this message]
2010-03-25 17:35                         ` Grant Likely
2010-03-25 18:05                           ` Timur Tabi
2010-03-25 19:53                           ` Scott Wood
2010-03-25 20:04                             ` Timur Tabi
2010-03-25 21:54                               ` Grant Likely
2010-03-25 22:19                                 ` Timur Tabi
2010-03-25 21:39                             ` Grant Likely
2010-03-25 22:47                               ` Scott Wood
2010-03-25 21:22                       ` David Gibson
2010-03-26  1:26                     ` Grant Likely
2010-03-26 15:17                       ` Timur Tabi
2010-03-26 18:20                         ` Grant Likely
2010-03-26 18:39                           ` Timur Tabi
2010-03-26 18:44                             ` Grant Likely
2010-03-26 18:48                               ` Timur Tabi
2010-03-26 18:56                                 ` Grant Likely
2010-03-26 18:58                                 ` Mitch Bradley
2010-03-26 19:07                                   ` Grant Likely
2010-03-26 18:48                             ` Mitch Bradley
2010-03-24 18:27         ` Scott Wood

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=4BAB9755.2080408@freescale.com \
    --to=timur@freescale$(echo .)com \
    --cc=devicetree-discuss@lists$(echo .)ozlabs.org \
    --cc=grant.likely@secretlab$(echo .)ca \
    --cc=linuxppc-dev@ozlabs$(echo .)org \
    --cc=scottwood@freescale$(echo .)com \
    --cc=wmb@firmworks$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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