From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Date: Sat, 5 Sep 2015 15:52:03 +0200 Subject: [U-Boot] [PATCH] RFC: dm: Add proposed timeline and guide for porting serial drivers In-Reply-To: <1441460717-23318-1-git-send-email-sjg@chromium.org> References: <1441460717-23318-1-git-send-email-sjg@chromium.org> Message-ID: <55EAF383.60101@redhat.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, On 05-09-15 15:45, Simon Glass wrote: > Add a README with a brief guide to porting serial drivers over to use > driver model. > > Add a timeline also. > > Signed-off-by: Simon Glass I assume that the purpose of the timeline is to retire the non dm serial drivers ? What about SPL use ? I do not see the SPL for sunxi move to dm / devicetree anytime soon, there simply does not seem to be enough space. With the new nand SPL support we have already been hitting the 24k limit without bringing in dm + a dtb + a dtb parser ... Which reminds me I still need to look at your version of the patch for only using malloc_simple.c in the SPL and not build in dl_malloc.c, that saves about 1k which we could use really well. I still have this on my todo list. Regards, Hans > --- > I intend to cc the final patch to all U-Boot maintainers using something > like this: > > (for f in $(find . -name MAINTAINERS); do grep ^M: $f; done) | \ > awk '{$1=""; print "Series-cc:" $0}' |sort | uniq > > This is about 229 email address, of which 217 seem to be different people. > > doc/driver-model/serial-howto.txt | 58 +++++++++++++++++++++++++++++++++++++++ > 1 file changed, 58 insertions(+) > create mode 100644 doc/driver-model/serial-howto.txt > > diff --git a/doc/driver-model/serial-howto.txt b/doc/driver-model/serial-howto.txt > new file mode 100644 > index 0000000..76a75da > --- /dev/null > +++ b/doc/driver-model/serial-howto.txt > @@ -0,0 +1,58 @@ > +How to port a serial driver to driver model > +=========================================== > + > +About 16 of 33 serial drivers have been converted as at September 2015. It > +is time for maintainers to start converting over the remaining serial drivers: > + > + altera_jtag_uart.c > + altera_uart.c > + arm_dcc.c > + lpc32xx_hsuart.c > + mcfuart.c > + mxs_auart.c > + opencores_yanu.c > + serial_bfin.c > + serial_imx.c > + serial_lpuart.c > + serial_max3100.c > + serial_pxa.c > + serial_s3c24x0.c > + serial_sa1100.c > + serial_stm32.c > + serial_xuartlite.c > + usbtty.c > + > +You should complete this by Christmas 2015. > + > +Here is a suggested approach for converting your serial driver over to driver > +model. Please feel free to update this file with your ideas and suggestions. > + > +- #ifdef out all your own serial driver code (#ifndef CONFIG_DM_SERIAL) > +- Define CONFIG_DM_SERIAL for your board, vendor or architecture > +- If the board does not already use driver model, you need CONFIG_DM also > +- Your board should then build, but will not boot since there will be no serial > + driver > +- Add the U_BOOT_DRIVER piece at the end (e.g. copy serial_s5p.c for example) > +- Add a private struct for the driver data - avoid using static variables > +- Implement each of the driver methods, perhaps by calling your old methods > +- You may need to adjust the function parameters so that the old and new > + implementations can share most of the existing code > +- If you convert all existing users of the driver, remove the pre-driver-model > + code > + > +In terms of patches a conversion series typically has these patches: > +- clean up / prepare the driver for conversion > +- add driver model code > +- convert at least one existing board to use driver model serial > +- (if no boards remain that don't use driver model) remove the old code > + > +This may be a good time to move your board to use device tree also. Mostly > +this involves these steps: > + > +- define CONFIG_OF_CONTROL and CONFIG_OF_SEPARATE > +- add your device tree files to arch//dts > +- update the Makefile there > +- Add stdout-path to your /chosen device tree node if it is not already there > +- build and get u-boot-dtb.bin so you can test it > +- Your drivers can now use device tree > +- For device tree in SPL, define CONFIG_SPL_OF_CONTROL >