[PATCH 00/19] sunxi: SPL cleanup part 1

Andre Przywara andre.przywara at arm.com
Wed Jan 3 01:12:20 CET 2024


This is the first part of a series to clean up the Allwinner SPL a bit.
One big driver for this whole clean up is to eventually accommodate the
RISC-V chips, which share most platform devices, but cannot use any code
that currently lives under arch/arm. So the idea is to disentangle the
code, to get a cleaner separation between ARM specific and platform
specific code. Another related reason is that the RISC-V port aims to
use a DM SPL, so we want to split off code bits that won't be needed when
we have the DM framework in the SPL.

This first part of the series is mostly preparation, and some smaller
cleanups, of code that was around for a long time and missed some
updates.
We start with some removal of no longer needed definitions, in the first
seven patches. The next seven patches tighten the SPL clock code: quite
some functions were compiled for U-Boot proper, however were not needed
there. Sorting this out helps to identify legacy code.
The final five patches move the SPL pinmux setup code into separate
functions and files, and convert the #ifdef hell into proper C "if"
statements.

It would be great if Samuel can have a look and say whether this is
helpful or not. For instance I don't really know how much of the SPL
clock code will be needed for the RISC-V port, since we don't really
model the bus clocks in the DT at all, and currently don't support PLLs
in the DM clock code.

Much of this first series should be good regardless, for instance the
replacement of #ifdef's with C "if" statements, since that became
tedious to expand for new SoCs and boards. But if some parts should live
in a different directory, or should be grouped differently, this can
certainly be factored in.

Please have a look, review and test!

Cheers,
Andre

Andre Przywara (19):
  sunxi: cleanup sunxi-common.h
  sunxi: sun50i-h6: remove unneeded base addresses from header
  sunxi: sun4i: remove unneeded base addresses from header
  sunxi: sun9i: remove unneeded base addresses from header
  sunxi: move #ifdef guards around tzpc_init() to header file
  sunxi: remove common.h inclusion
  sunxi: simplify U-Boot proper only builds
  sunxi: remove unneeded i2c_init_board() call for U-Boot proper
  sunxi: compile clock.c for SPL only
  sunxi: sun4i: make more clock functions SPL only
  sunxi: sun6i: make more clock functions SPL only
  sunxi: sun50i_h6: make more clock functions SPL only
  sunxi: sun8i_a83t: make more clock functions SPL only
  sunxi: sun9i: make more clock functions SPL only
  sunxi: move pinmux setup into separate SPL only file
  sunxi: SPL pinmux: rewrite without #ifdefs
  sunxi: move UART pinmux setup into separate file
  sunxi: SPL pinmux: split out UART pinmux per port
  sunxi: SPL pinmux: rewrite UART setup without #ifdefs

 arch/arm/Kconfig                              |   4 +-
 arch/arm/include/asm/arch-sunxi/clock_sun9i.h |   3 -
 arch/arm/include/asm/arch-sunxi/cpu_sun4i.h   |  47 ---
 .../include/asm/arch-sunxi/cpu_sun50i_h6.h    |  21 --
 arch/arm/include/asm/arch-sunxi/cpu_sun9i.h   |  41 ---
 arch/arm/include/asm/arch-sunxi/tzpc.h        |   6 +
 arch/arm/mach-sunxi/Kconfig                   |  16 +-
 arch/arm/mach-sunxi/Makefile                  |   4 +-
 arch/arm/mach-sunxi/board.c                   | 113 +------
 arch/arm/mach-sunxi/clock.c                   |   3 -
 arch/arm/mach-sunxi/clock_sun4i.c             |   6 +-
 arch/arm/mach-sunxi/clock_sun50i_h6.c         |  58 ++--
 arch/arm/mach-sunxi/clock_sun6i.c             |   4 +-
 arch/arm/mach-sunxi/clock_sun8i_a83t.c        |   6 +-
 arch/arm/mach-sunxi/clock_sun9i.c             |  98 +++---
 arch/arm/mach-sunxi/cpu_info.c                |   1 -
 arch/arm/mach-sunxi/dram_helpers.c            |   3 +-
 arch/arm/mach-sunxi/dram_sun4i.c              |   1 -
 arch/arm/mach-sunxi/dram_sun50i_h6.c          |   1 -
 arch/arm/mach-sunxi/dram_sun50i_h616.c        |   1 -
 arch/arm/mach-sunxi/dram_sun6i.c              |   1 -
 arch/arm/mach-sunxi/dram_sun8i_a23.c          |   1 -
 arch/arm/mach-sunxi/dram_sun8i_a33.c          |   1 -
 arch/arm/mach-sunxi/dram_sun8i_a83t.c         |   1 -
 arch/arm/mach-sunxi/dram_sun9i.c              |   1 -
 arch/arm/mach-sunxi/dram_suniv.c              |   2 +-
 arch/arm/mach-sunxi/dram_sunxi_dw.c           |   1 -
 arch/arm/mach-sunxi/gtbus_sun9i.c             |   1 -
 arch/arm/mach-sunxi/pmic_bus.c                |   1 -
 arch/arm/mach-sunxi/prcm.c                    |   1 -
 arch/arm/mach-sunxi/spl_pinmux.c              | 312 +++++++++++++++++
 arch/arm/mach-sunxi/spl_spi_sunxi.c           |   1 -
 arch/arm/mach-sunxi/timer.c                   |   1 -
 arch/arm/mach-sunxi/uart_pinmux.c             | 158 +++++++++
 board/sunxi/board.c                           | 318 +-----------------
 include/configs/sunxi-common.h                |  56 +--
 36 files changed, 592 insertions(+), 702 deletions(-)
 create mode 100644 arch/arm/mach-sunxi/spl_pinmux.c
 create mode 100644 arch/arm/mach-sunxi/uart_pinmux.c

-- 
2.35.8



More information about the U-Boot mailing list