From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerry Van Baren Date: Fri, 02 Sep 2011 07:42:32 -0400 Subject: [U-Boot] [RFC PATCH 0/4] Run-time configuration of U-Boot via a flat device tree (fdt) In-Reply-To: <1314910149-9755-1-git-send-email-sjg@chromium.org> References: <1314910149-9755-1-git-send-email-sjg@chromium.org> Message-ID: <4E60C128.8050207@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Simon, On 09/01/2011 04:49 PM, Simon Glass wrote: > At present in U-Boot configuration is mostly done using CONFIG options in the > board file. This patch set aims to make it possible for a single U-Boot > binary to support multiple boards, with the exact configuration of each board > controlled by a flat device tree (fdt). This is the approach recently taken > by the ARM Linux kernel and has been used by PowerPC for some time. Very exciting. I've thought about doing this for years, but never had the ambition (or time). [snip] > and add some defines to your board (only ARM is currently supported): > > #define CONFIG_OF_CONTROL (to enable run-time config control via fdt) > #define CONFIG_OF_EMBED or CONFIG_OF_SEPARATE > (either build the fdt blob into U-Boot, or create a separate u-boot.dtb) > #define CONFIG_DEFAULT_DEVICE_TREE "" > (to specify the name of the device tree file is > board///.dts) > > This patch set does not include any drivers which actually use the fdt. I have > some concerns about spreading fdt code around the U-Boot code base so am > thinking of having a support file which makes this easier. I can provide a > UART driver modified to use fdt if there is interest. Please. A concrete reference is very useful, especially for discussion. > It is important to understand that the fdt only selects options available in > the platform / drivers. It cannot add new drivers (yet). So you must still > have the CONFIG option to enable the driver. For example, you need to define > CONFIG_SYS_NS16550 to bring in the NS16550 driver, but can use the fdt to > specific the UART clock, peripheral address, etc. In very broad terms, the > CONFIG options in general control *what* driver files are pulled in, and the > fdt controls *how* those files work. Sounds reasonable and practical. One of the things u-boot struggles with is staying small (but it is nice to be able to make it all inclusive and big if you have the flash). > While only ARM is supported in this patch series, it should be easy enough to > add support for other architectures. Exercise left for the students. :-) [snip] Thanks! gvb