public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Timur Tabi <timur@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] libfdt: make fdt_increase_size() available to everyone
Date: Wed, 26 May 2010 13:23:00 -0500	[thread overview]
Message-ID: <4BFD6704.2040800@freescale.com> (raw)
In-Reply-To: <4BFD631F.2030401@freescale.com>

Scott Wood wrote:

> But you can reasonably allocate significantly more than you'll need 
> without actually causing the fdt to get that big.  The actual cap could 
> be a board specific magic number (like CONFIG_SYS_MALLOC_LEN), or we 
> could cap it at something based on the amount of RAM.

We have something like that already:

#ifndef CONFIG_SYS_FDT_PAD
#define CONFIG_SYS_FDT_PAD 0x3000
#endif

And Wolfgang doesn't like it.

I was going to do this in my board header file:

#define CONFIG_SYS_MAX_QE_FW_SIZE	0x4000

#define CONFIG_SYS_FDT_PAD (0x3000 + CONFIG_SYS_MAX_QE_FW_SIZE)

And I was even going to add code to the QE firmware functions to verify that
the firmware is not larger than CONFIG_SYS_MAX_QE_FW_SIZE.

>> The issue is that how those functions will look.
> 
> What functions?  I'm just talking about arbitrary code that runs before 
> the fdt is resized, and after relocation (or even before if we make it a 
> gd_t variable), and adds a certain amount to a variable.

Actually, that would be *during* relocation because we relocate and resize
the fdt in the same function: fdt_open_into().

Depending on the nature of the firmware, we may not know anything about the
firmware until we try to boot Linux, so we need to decide where this
arbitrary code is supposed to exist.

>> Kumar and I are advocating
>> a board-specific weak function that figures it all out at once and returns a
>> single number.
> 
> That seems an awkward combination of centralization (you need to combine 
> every fdt-expanding feature found on a board into the board file) and 
> decentralization (if such a feature is added or changed you may need to 
> update a bunch of board files).

We could have feature-specific functions that do the work of handling the
fdt size for a specific feature.  So qe_firmware_size(void *) would tell you
the size of the QE firmware, and your board's fdt_board_size() would just be
a front-end to qe_firmware_size().

Are you suggesting that we implement some user interface where the user, on
the command line, can specify any number and type of firmware binaries to
get embedded in the device tree?

-- 
Timur Tabi
Linux kernel developer at Freescale

  reply	other threads:[~2010-05-26 18:23 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-10 21:26 [U-Boot] [PATCH 2/3] libfdt: make fdt_increase_size() available to everyone Timur Tabi
2010-05-10 21:30 ` Timur Tabi
2010-05-13 17:46 ` Kumar Gala
2010-05-16  2:11 ` [U-Boot] " Gerald Van Baren
2010-05-16  4:13   ` Timur Tabi
2010-05-17 11:24     ` Jerry Van Baren
2010-05-17 13:16     ` Wolfgang Denk
2010-05-17 14:16       ` Timur Tabi
2010-05-17 20:33         ` Wolfgang Denk
2010-05-18 14:10           ` Timur Tabi
2010-05-18 15:18             ` Wolfgang Denk
2010-05-18 15:32               ` Timur Tabi
2010-05-18 22:20                 ` Wolfgang Denk
2010-05-19  0:51                   ` Timur Tabi
2010-05-19  6:54                     ` Wolfgang Denk
2010-05-19 14:57                       ` Timur Tabi
2010-05-19 15:14                         ` Wolfgang Denk
2010-05-19 15:34                           ` Timur Tabi
2010-05-19 15:44                             ` Wolfgang Denk
2010-05-19 21:46                               ` Kumar Gala
2010-05-19 22:06                                 ` Wolfgang Denk
2010-05-19 22:12                                   ` Timur Tabi
2010-05-20  8:28                                     ` Wolfgang Denk
2010-05-20 11:44                                       ` Timur Tabi
2010-05-25 16:07                                       ` Timur Tabi
2010-05-25 17:50                                         ` Wolfgang Denk
2010-05-25 18:01                                           ` Timur Tabi
2010-05-25 19:15                                             ` Wolfgang Denk
2010-05-25 19:28                                               ` Timur Tabi
2010-05-25 22:11                                                 ` Wolfgang Denk
2010-05-26 15:11                                                   ` Timur Tabi
2010-05-26 16:11                                                     ` Wolfgang Denk
2010-05-26 16:38                                                       ` Timur Tabi
2010-05-26 17:23                                                         ` Scott Wood
2010-05-26 17:56                                                           ` Timur Tabi
2010-05-26 18:06                                                             ` Scott Wood
2010-05-26 18:23                                                               ` Timur Tabi [this message]
2010-05-26 19:14                                                                 ` Wolfgang Denk
2010-05-26 19:08                                                         ` Wolfgang Denk
2010-05-20 13:34                                   ` Kumar Gala
2010-05-20 12:58                                 ` Timur Tabi
2010-05-17 11:25 ` [U-Boot] [PATCH 2/3] " Jerry Van Baren

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=4BFD6704.2040800@freescale.com \
    --to=timur@freescale.com \
    --cc=u-boot@lists.denx.de \
    /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