On 13 November 2012 06:12, Stephen Warren <swarren@xxxxxxxxxxxxx> wrote: > On 11/11/2012 05:50 AM, Jonas Gorski wrote: >> Add empty board files for all boards supported by the legacy board >> support. > >> diff --git a/arch/mips/bcm63xx/dts/96328avng.dts b/arch/mips/bcm63xx/dts/96328avng.dts > >> +/ { >> + model = "96328avng"; >> + compatible = "96328avng"; > > The board should be compatible with both the board name and the SoC on > the board. I know that right now the MIPS code is choosing the DT to use > based on the board name, but I think it's more typical to pass an > explicit DT to the kernel, and then choose the kernel support to execute > based on the compatible value (certainly this is the case on ARM and I > assume other architectures too). That would require the DT content to > include the SoC name in the compatible property, so that the kernel > support didn't then need to contain a table of all supported board names. I'll add the SoC name to the compatible line. >> + ubus@10000000 { >> + >> + }; > > Do you need to include this empty node in each file? I guess it gets > added to in the next patch so it's not a big deal though. It's just there so it is already present when adding blocks to it. It is/was mainly for making reordering patches easier. > >> diff --git a/arch/mips/bcm63xx/dts/Kconfig b/arch/mips/bcm63xx/dts/Kconfig > >> +config BOARD_96328AVNG >> + bool "96328avng reference board" >> + select BCM63XX_CPU_6328 > > Why not simply compile all DTs whenever the SoC support is enabled? I > suppose you're trying to avoid packing all the DTs into the kernel > image. Does it make more sense to amend the MIPS kernel boot process so > that a single user-/firmware-selected DT is passed to the kernel, rather > than packing the DTs into the kernel and selecting one? The plan is to add support for an externally attached DT (but not present yet), and eventually add support for a bootloader passed DT, but since I don't know yet how these will work, I didn't want to add something based on guesses. My reasoning for allowing (de-)selecting each board is to dampen the bloat from the dtbs - after these few blocks the combined dtbs are already four times as large as the old board setup code including all boards. Especially older devices are constrained to 4 or even 2 MB flash, so every kB counts there. Jonas