Hi Daniel,

On 3/31/22 01:56, Daniel Schwierzeck wrote:
Am Mittwoch, dem 30.03.2022 um 12:06 +0200 schrieb Stefan Roese:
This patchset adds the networking files and drivers including device
helper headers and C files. Please excuse the massive amount of files
in this patch series. Also the sometimes huge files (mostly headers
with register definitions) that I needed to include.

The infrastructure code with all the headers is ported mistly without
any intended functional changes from the 2013 Cavium / Marvell U-Boot
version. It has undergone many hours of extensive code cleanup and
reformatting. Some of it done by using tools (checkpatch, Lindent,
clang
format etc) and also some of it done manually, as I couldn't find
some
tools that could do the needed work in a reliable and functional way.
The result is that checkpatch now only throws a "few" warnings that
are
left. Some of those can't be removed without an even more extensive
cleanup / rewrite of the code, like the addition of typedefs.

The added header, helper and infrastructure files in the first part
of
the patch-series (patches 1-43) are the foundation, that is used by
the
main Octeon U-Boot ethernet driver (patch 50/52). Patches 47-49 add
the
DT nodes and properties to the corresponding dtsi / dts files.
Patches
51 & 52 finally enable the ethernet support both MIPS Octeon boards,
EBB7304 & NIC23.

All this is tested on the 2 Cavium / Marvell MIPS Octeon boards:
EBB7304 & NIC23

This patchset including the small Marvell PHY patches is available in
this gitlab branch:

https://source.denx.de/u-boot/custodians/u-boot-marvell/-/tree/mips-octeon-ethernet-v1-2022-03-30

Thanks,
Stefan

Aaron Williams (40):
   mips: octeon: Add misc cvmx-* header files
   mips: octeon: Add cvmx-ilk-defs.h header file
   mips: octeon: Add cvmx-iob-defs.h header file
   mips: octeon: Add cvmx-lbk-defs.h header file
   mips: octeon: Add cvmx-npei-defs.h header file
   mips: octeon: Add cvmx-pcsxx-defs.h header file
   mips: octeon: Add cvmx-xcv-defs.h header file
   mips: octeon: Add cvmx-helper-agl.c
   mips: octeon: Add cvmx-helper-bgx.c
   mips: octeon: Add cvmx-helper-board.c
   mips: octeon: Add cvmx-helper-fpa.c
   mips: octeon: Add cvmx-helper-igl.c
   mips: octeon: Add cvmx-helper-ipd.c
   mips: octeon: Add cvmx-helper-loop.c
   mips: octeon: Add cvmx-helper-npi.c
   mips: octeon: Add cvmx-helper-pki.c
   mips: octeon: Add cvmx-helper-pko.c
   mips: octeon: Add cvmx-helper-pko3.c
   mips: octeon: Add cvmx-helper-rgmii.c
   mips: octeon: Add cvmx-helper-sgmii.c
   mips: octeon: Add cvmx-helper-sfp.c
   mips: octeon: Add cvmx-helper-xaui.c
   mips: octeon: Add cvmx-agl.c
   mips: octeon: Add cvmx-cmd-queue.c
   mips: octeon: Add cvmx-fau-compat.c
   mips: octeon: Add cvmx-fpa.c
   mips: octeon: Add cvmx-fpa-resource.c
   mips: octeon: Add cvmx-global-resource.c
   mips: octeon: Add cvmx-ilk.c
   mips: octeon: Add cvmx-ipd.c
   mips: octeon: Add cvmx-pki.c
   mips: octeon: Add cvmx-pki-resources.c
   mips: octeon: Add cvmx-pko.c
   mips: octeon: Add cvmx-pko3.c
   mips: octeon: Add cvmx-pko3-queue.c
   mips: octeon: Add cvmx-pko3-compat.c
   mips: octeon: Add cvmx-pko3-resources.c
   mips: octeon: Add cvmx-pko-internal-ports-range.c
   mips: octeon: Add cvmx-qlm-tables.c
   mips: octeon: Add cvmx-range.c

are those 10 millions helper functions really used by the ethernet
driver? Do you really need features like SFP modules in U-Boot?

It's very hard to add the network support for those SoCs with their
quite complex devices and interfaces without using this proven code.
I agree, that this is not really appealing. And at least the NIC23
only supports network via SFP modules, so there is not alterative
interface here.

Maybe it helps to have a look at u-boot.map to see which functions are
unused and are discarded by the linker. Those functions could be
actually removed to reduce the LoC count ;)

Good idea, thanks. I was looking for something like this, but never got
the idea to actually look at the u-boot.map file to detect the unused
functions, so that I can remove them. I'll work on this to get the LoC
down a bit. ;)

Thanks,
Stefan


Stefan Roese (12):
   mips: octeon: Misc changes to existing headers for upcoming eth
     support
   mips: octeon: Misc changes to existing C files for upcoming eth
     support
   mips: octeon: Makefile: Enable building of the newly added C files
   mips: octeon: cpu.c: Move bootmem init to arch_early_init_r()
   mips: octeon: cpu.c: Implement configure_lmtdma_window()
   mips: octeon: octeon_common.h: Move init SP because of increased
image
     size
   mips: octeon: mrvl,cn73xx.dtsi: Add ethernet (BGX) and SMI DT nodes
   mips: octeon: mrvl,octeon-ebb7304.dts: Add ethernet DT support
   mips: octeon: mrvl,octeon-nic23.dts: Add ethernet DT support
   net: Add ethernet support for MIPS Octeon
   mips: octeon: ebb7304: Enable ethernet support
   mips: octeon: nic23: Enable ethernet support

  arch/mips/Kconfig                             |    1 +
  arch/mips/dts/mrvl,cn73xx.dtsi                |   35 +
  arch/mips/dts/mrvl,octeon-ebb7304.dts         |   45 +
  arch/mips/dts/mrvl,octeon-nic23.dts           |  238 ++
  arch/mips/mach-octeon/Makefile                |   35 +-
  arch/mips/mach-octeon/cpu.c                   |   47 +-
  arch/mips/mach-octeon/cvmx-agl.c              |  216 +
  arch/mips/mach-octeon/cvmx-bootmem.c          |    3 +-
  arch/mips/mach-octeon/cvmx-cmd-queue.c        |  449 +++
  arch/mips/mach-octeon/cvmx-fau-compat.c       |   53 +
  arch/mips/mach-octeon/cvmx-fpa-resource.c     |  305 ++
  arch/mips/mach-octeon/cvmx-fpa.c              | 1672 ++++++++
  arch/mips/mach-octeon/cvmx-global-resources.c |  639 +++
  arch/mips/mach-octeon/cvmx-helper-agl.c       |  231 ++
  arch/mips/mach-octeon/cvmx-helper-bgx.c       | 3215 +++++++++++++++
  arch/mips/mach-octeon/cvmx-helper-board.c     | 2030 ++++++++++
  arch/mips/mach-octeon/cvmx-helper-cfg.c       |   67 +-
  arch/mips/mach-octeon/cvmx-helper-fdt.c       |  645 ++-
  arch/mips/mach-octeon/cvmx-helper-fpa.c       |  329 ++
  arch/mips/mach-octeon/cvmx-helper-ilk.c       |  926 +++++
  arch/mips/mach-octeon/cvmx-helper-ipd.c       |  313 ++
  arch/mips/mach-octeon/cvmx-helper-loop.c      |  178 +
  arch/mips/mach-octeon/cvmx-helper-npi.c       |  146 +
  arch/mips/mach-octeon/cvmx-helper-pki.c       | 2156 ++++++++++
  arch/mips/mach-octeon/cvmx-helper-pko.c       |  312 ++
  arch/mips/mach-octeon/cvmx-helper-pko3.c      | 1252 ++++++
  arch/mips/mach-octeon/cvmx-helper-rgmii.c     |  431 ++
  arch/mips/mach-octeon/cvmx-helper-sfp.c       | 1877 +++++++++
  arch/mips/mach-octeon/cvmx-helper-sgmii.c     |  781 ++++
  arch/mips/mach-octeon/cvmx-helper-xaui.c      |  587 +++
  arch/mips/mach-octeon/cvmx-helper.c           |   45 +-
  arch/mips/mach-octeon/cvmx-ilk.c              | 1618 ++++++++
  arch/mips/mach-octeon/cvmx-ipd.c              |  690 ++++
  arch/mips/mach-octeon/cvmx-pki-resources.c    |  519 +++
  arch/mips/mach-octeon/cvmx-pki.c              | 1619 ++++++++
  .../cvmx-pko-internal-ports-range.c           |  164 +
  arch/mips/mach-octeon/cvmx-pko.c              | 1110 ++++++
  arch/mips/mach-octeon/cvmx-pko3-compat.c      |  656 +++
  arch/mips/mach-octeon/cvmx-pko3-queue.c       | 1331 ++++++
  arch/mips/mach-octeon/cvmx-pko3-resources.c   |  229 ++
  arch/mips/mach-octeon/cvmx-pko3.c             | 2143 ++++++++++
  arch/mips/mach-octeon/cvmx-qlm-tables.c       |  292 ++
  arch/mips/mach-octeon/cvmx-range.c            |  344 ++
  arch/mips/mach-octeon/include/mach/cvmx-agl.h |   45 +
  .../mach-octeon/include/mach/cvmx-bootmem.h   |    3 +-
  .../mach-octeon/include/mach/cvmx-config.h    |  128 +
  arch/mips/mach-octeon/include/mach/cvmx-fau.h |  581 +++
  arch/mips/mach-octeon/include/mach/cvmx-fpa.h |    3 +-
  .../mips/mach-octeon/include/mach/cvmx-fpa3.h |   37 -
  .../include/mach/cvmx-helper-board.h          |    6 +-
  .../include/mach/cvmx-helper-fdt.h            |   40 +-
  .../include/mach/cvmx-helper-pko.h            |    2 +-
  .../mach-octeon/include/mach/cvmx-helper.h    |   20 +
  .../mach-octeon/include/mach/cvmx-ilk-defs.h  | 2269 +++++++++++
  .../mach-octeon/include/mach/cvmx-iob-defs.h  | 1328 ++++++
  .../mach-octeon/include/mach/cvmx-lbk-defs.h  |  157 +
  .../mips/mach-octeon/include/mach/cvmx-mdio.h |  516 +++
  .../mach-octeon/include/mach/cvmx-npei-defs.h | 3550
+++++++++++++++++
  .../include/mach/cvmx-pcsxx-defs.h            |  787 ++++
  .../include/mach/cvmx-pki-cluster.h           |  343 ++
  arch/mips/mach-octeon/include/mach/cvmx-pko.h |  213 +
  .../include/mach/cvmx-pko3-resources.h        |   36 +
  .../mips/mach-octeon/include/mach/cvmx-pko3.h | 1052 +++++
  .../mach-octeon/include/mach/cvmx-range.h     |   23 +
  .../mips/mach-octeon/include/mach/cvmx-regs.h |  100 +-
  .../mach-octeon/include/mach/cvmx-xcv-defs.h  |  226 ++
  .../mach-octeon/include/mach/octeon_eth.h     |   54 +-
  board/Marvell/octeon_nic23/board.c            |   87 +-
  configs/octeon_ebb7304_defconfig              |    7 +
  configs/octeon_nic23_defconfig                |   10 +-
  drivers/net/Kconfig                           |    7 +
  drivers/net/Makefile                          |    1 +
  drivers/net/octeon/Makefile                   |    6 +
  drivers/net/octeon/octeon_eth.c               | 1060 +++++
  drivers/net/octeon/octeon_mdio.c              |  226 ++
  include/configs/octeon_common.h               |    2 +-
  include/configs/octeon_ebb7304.h              |    2 +
  77 files changed, 42315 insertions(+), 586 deletions(-)
  create mode 100644 arch/mips/mach-octeon/cvmx-agl.c
  create mode 100644 arch/mips/mach-octeon/cvmx-cmd-queue.c
  create mode 100644 arch/mips/mach-octeon/cvmx-fau-compat.c
  create mode 100644 arch/mips/mach-octeon/cvmx-fpa-resource.c
  create mode 100644 arch/mips/mach-octeon/cvmx-fpa.c
  create mode 100644 arch/mips/mach-octeon/cvmx-global-resources.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-agl.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-bgx.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-board.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-fpa.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-ilk.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-ipd.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-loop.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-npi.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-pki.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-pko.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-pko3.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-rgmii.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-sfp.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-sgmii.c
  create mode 100644 arch/mips/mach-octeon/cvmx-helper-xaui.c
  create mode 100644 arch/mips/mach-octeon/cvmx-ilk.c
  create mode 100644 arch/mips/mach-octeon/cvmx-ipd.c
  create mode 100644 arch/mips/mach-octeon/cvmx-pki-resources.c
  create mode 100644 arch/mips/mach-octeon/cvmx-pki.c
  create mode 100644 arch/mips/mach-octeon/cvmx-pko-internal-ports-
range.c
  create mode 100644 arch/mips/mach-octeon/cvmx-pko.c
  create mode 100644 arch/mips/mach-octeon/cvmx-pko3-compat.c
  create mode 100644 arch/mips/mach-octeon/cvmx-pko3-queue.c
  create mode 100644 arch/mips/mach-octeon/cvmx-pko3-resources.c
  create mode 100644 arch/mips/mach-octeon/cvmx-pko3.c
  create mode 100644 arch/mips/mach-octeon/cvmx-qlm-tables.c
  create mode 100644 arch/mips/mach-octeon/cvmx-range.c
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-agl.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-config.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-fau.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-ilk-
defs.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-iob-
defs.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-lbk-
defs.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-mdio.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-npei-
defs.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-pcsxx-
defs.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-pki-
cluster.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-pko.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-pko3-
resources.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-pko3.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-range.h
  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx-xcv-
defs.h
  create mode 100644 drivers/net/octeon/Makefile
  create mode 100644 drivers/net/octeon/octeon_eth.c
  create mode 100644 drivers/net/octeon/octeon_mdio.c


Viele Grüße,
Stefan Roese

--
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: s...@denx.de

Reply via email to