From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Warren Date: Thu, 23 Jul 2015 22:20:13 -0600 Subject: [U-Boot] [PATCH 00/20] arm: rpi: Enable USB and Ethernet driver model Raspberry Pi In-Reply-To: <20150716141009.GC29918@amd> References: <1436324032-17931-1-git-send-email-sjg@chromium.org> <55A0AAD3.2050302@wwwdotorg.org> <55A495AA.6080609@wwwdotorg.org> <20150716141009.GC29918@amd> Message-ID: <55B1BCFD.8070309@wwwdotorg.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 07/16/2015 08:10 AM, Pavel Machek wrote: > On Mon 2015-07-13 22:52:58, Stephen Warren wrote: >> On 07/11/2015 08:04 AM, Simon Glass wrote: >>> Hi Stephen, >>> >>> On 10 July 2015 at 23:34, Stephen Warren wrote: >>>> On 07/07/2015 08:53 PM, Simon Glass wrote: >>>>> Raspberry Pi uses a DWC2 USB controller and a SMSC USB Ethernet adaptor. >>>>> Neither of these currently support driver model. >>>>> >>>>> This series does the following: >>>>> - Move Raspberry Pi to use device tree control (u-boot-dtb.bin instead of >>>>> u-boot.bin) >>>> >>>> I'd strongly prefer not to do this. For one thing, it means we'd need >>>> different U-Boot builds for each of the different RPi models, and we >>>> currently don't need that (or perhaps we require users to create their >>>> own u-boot-dtb.bin by choosing the right DTB to append). If it >>> >>> Why does device tree change how things work now? The get_board_rev() >>> function currently deals with this. It doesn't look like rpi_board_rev >>> is used anywhere else. >> >> Without a DT, the code is free to make all the board-rev-specific >> decisions at run-time without external influence. >> >> With a DT, we either have to: >> >> a) Pick the DT for one particular board and use that everywhere, even if >> it's incorrect for the actual board in use. > > Is that an option? I mean... if you can tolerate incorrect values for > something, perhaps that something should not be in the dtb in the > first place? Indeed I would certainly rather not have U-Boot use a DT that contains invalid information. >> b) Build a different U-Boot + DTB image for each board-rev, and put the >> correct one on the SD card. > > d) Build U-Boot + set of DTB images, then pick up the right one at the > runtime? Perhaps that'd work. >> Neither of those options seem like a good idea to me. > > Stuff that can be autodetected does not belong to the device tree... I tend to agree, but then you need platform-specific code to do the auto-detection, and there's pushback on that since a large benefit of DT is to remove platform-specific code from SW and just represent the information in DT. Put another way, DT seems to end up being "nothing" (DT not used) or "everything" (even representing some auto-probed data). Not great, but.