[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