[U-Boot] [PATCH] RFC: dm: Add proposed timeline and guide for porting serial drivers

Hans de Goede hdegoede at redhat.com
Sat Sep 5 15:52:03 CEST 2015


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 <sjg at chromium.org>

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/<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
>


More information about the U-Boot mailing list