public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC PATCH 00/13] Nexell S5P6818 SoC support
Date: Thu, 30 Nov 2017 11:01:12 +0100	[thread overview]
Message-ID: <20171130110112.1fcf8653@jawa> (raw)
In-Reply-To: <20171130012511.16333-1-andre.przywara@arm.com>

Hi Andre,

> Hi,
> 
> this is a first draft of the things Amit and I have been working on in
> the last months. It introduces support for an SoC called "Nexell
> S5P6818". This is an Octa-core ARMv8 SoC with Cortex-A53 cores, which
> apparently is closely related to (older) Samsung SoCs. Many
> peripherals are compatible to Samsung IP (UART, MMC, Ethernet,
> timers, ...), but some core peripherals like the clocks and the pin
> controller seem to be completely different. We used the NanoPi M3
> board [1] for testing, which uses this SoC along with the usual
> suspects of on-board components and connectors. This port is done
> completely from scratch, by just looking at the manual. This allows a
> much cleaner and modern U-Boot support than the BSP code.
> 
> The ARM Generic Timer (aka. arch timer) does not seem to work on this
> SoC. Ideally there would be some (hidden?) register enabling the
> right clock source, though we haven't found one (yet). But as also
> other code for this SoC out there on the net does not seem to be able
> to use the arch timer, I am not too hopeful here. While this does not
> impose a real problem to U-Boot (patch 3/13 takes care of that), it
> is a showstopper for mainline arm64 Linux, which heavily relies on
> the arch timer (since it's a mandatory part of the ARMv8
> architecture). There is only a very small chance that the arch timer
> ever becomes optional in the mainline arm64 kernel. However our
> arm(32) kernel ports works quite nicely so far, also a (hacked) arm64
> kernel boots to the prompt. We will submit Linux patches at a later
> time.
> 
> We would be grateful to get some comments on the patches.
> The first five patches adapt existing code to simplify support for
> this SoC. The following six patches then successively enable and add
> SoC support, culmulating in the addition of a nanopi_m3_defconfig
> file in patch 11/13. The SoC support code is actually architecture
> agnostic, though up until the last patch it generates an AArch64
> binary. To overcome the problems with the arch timer mentioned above,
> the final patch switches the port over to AArch32, which can more
> naturally launch arm kernels.
> 
> This code so far does not include an SPL, instead it relies on some
> vendor provided code to initialise the DRAM and load U-Boot proper.
> The original BSP code provided a binary blob for that (called
> "secondboot"), although there is some GPLed version of that available
> on github([2]). We can load a 32-bit U-Boot with both the vendor blob
> and Rafaello's GPL version, the 64-bit version is only usable with
> the GPL code. Instruction on how to create a bootable SD card are
> contained in the arch/arm/mach-nexell/README file.
> 
> We would be very grateful to get some first feedback on those patches
> and the approach in general taken here.

Just to ask - why it is not possible to add this to:

/arch/arm/mach-exynos ? And start new mach-nexell ?

As fair as I remember, many Samsung SoCs (especially S5P) share IP
blocks, so maybe there is a place for unification?

Also, it would be quite challenging to support first armv8 Samsung soc
in the current directory structure.....


+CC Jaehoon - who may have some comments here.

> 
> Cheers,
> Andre.
> 
> [1] http://nanopi.io/nanopi-m3.html
> [2] https://github.com/rafaello7/bl1-nanopi-m3
> 
> Amit Singh Tomar (4):
>   reset: add driver for generic reset controllers
>   mmc: add MMC (glue) driver for Nexell SoCs
>   arm: nexell: add ARM64 MMU regions
>   arm: nexell: add timer support
> 
> Andre Przywara (9):
>   serial: s5p: rework Samsung UART driver to get rid of uart.h
>   serial: S5P/Samsung: refactor and Kconfig-ize UART selection
>   arm: move SYS_ARCH_TIMER to KConfig
>   arm: add basic framework for Nexell S5P6818 support
>   arm: nexell: embed NSIH header
>   arm: nexell: add UART support
>   arm: nexell: add preliminary S5P6818 SoC device tree
>   arm: add NanoPi M3 board support
>   arm: nexell: switch to 32-bit
> 
>  arch/arm/Kconfig                          |  29 +++++
>  arch/arm/Makefile                         |   1 +
>  arch/arm/cpu/armv8/Makefile               |   2 +-
>  arch/arm/dts/s5p6818-nanopi-m3.dts        |  30 +++++
>  arch/arm/dts/s5p6818.dtsi                 | 196
> ++++++++++++++++++++++++++++++
> arch/arm/dts/s5pc1xx-goni.dts             |   2 +-
> arch/arm/dts/s5pc1xx-smdkc100.dts         |   2 +-
> arch/arm/include/asm/arch-nexell/boot0.h  |  35 ++++++
> arch/arm/include/asm/arch-nexell/clk.h    |  15 +++
> arch/arm/include/asm/arch-nexell/pwm.h    |  62 ++++++++++
> arch/arm/mach-exynos/include/mach/uart.h  |  44 -------
> arch/arm/mach-imx/mx7ulp/Kconfig          |   1 +
> arch/arm/mach-nexell/Kconfig              |   9 ++
> arch/arm/mach-nexell/Makefile             |  10 ++
> arch/arm/mach-nexell/README               |  49 ++++++++
> arch/arm/mach-nexell/board.c              | 128 +++++++++++++++++++
> arch/arm/mach-nexell/mmu-arm64.c          |  39 ++++++
> arch/arm/mach-s5pc1xx/Kconfig             |   2 +
> arch/arm/mach-s5pc1xx/include/mach/uart.h |  44 -------
> configs/nanopi_m3_defconfig               |  12 ++
> drivers/mmc/Kconfig                       |   8 ++
> drivers/mmc/Makefile                      |   1 +
> drivers/mmc/nexell_dw_mmc.c               | 159
> ++++++++++++++++++++++++ drivers/reset/Kconfig
> |   6 + drivers/reset/Makefile                    |   1 +
> drivers/reset/reset-generic.c             | 111 +++++++++++++++++
> drivers/serial/Kconfig                    |   6 +
> drivers/serial/Makefile                   |   2 +-
> drivers/serial/serial_s5p.c               |  45 ++++++-
> include/configs/mx7ulp_evk.h              |   1 -
> include/configs/s5p6818.h                 |  35 ++++++
> include/configs/ti_armv7_keystone2.h      |   1 -
> scripts/config_whitelist.txt              |   1 - 33 files changed,
> 989 insertions(+), 100 deletions(-) create mode 100644
> arch/arm/dts/s5p6818-nanopi-m3.dts create mode 100644
> arch/arm/dts/s5p6818.dtsi create mode 100644
> arch/arm/include/asm/arch-nexell/boot0.h create mode 100644
> arch/arm/include/asm/arch-nexell/clk.h create mode 100644
> arch/arm/include/asm/arch-nexell/pwm.h delete mode 100644
> arch/arm/mach-exynos/include/mach/uart.h create mode 100644
> arch/arm/mach-nexell/Kconfig create mode 100644
> arch/arm/mach-nexell/Makefile create mode 100644
> arch/arm/mach-nexell/README create mode 100644
> arch/arm/mach-nexell/board.c create mode 100644
> arch/arm/mach-nexell/mmu-arm64.c delete mode 100644
> arch/arm/mach-s5pc1xx/include/mach/uart.h create mode 100644
> configs/nanopi_m3_defconfig create mode 100644
> drivers/mmc/nexell_dw_mmc.c create mode 100644
> drivers/reset/reset-generic.c create mode 100644
> include/configs/s5p6818.h
> 



Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20171130/d8c73e53/attachment.sig>

  parent reply	other threads:[~2017-11-30 10:01 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-30  1:24 [U-Boot] [RFC PATCH 00/13] Nexell S5P6818 SoC support Andre Przywara
2017-11-30  1:24 ` [U-Boot] [RFC PATCH 01/13] serial: s5p: rework Samsung UART driver to get rid of uart.h Andre Przywara
2017-12-02  3:30   ` Simon Glass
2017-12-04 10:21     ` Andre Przywara
2017-11-30  1:25 ` [U-Boot] [RFC PATCH 02/13] serial: S5P/Samsung: refactor and Kconfig-ize UART selection Andre Przywara
2017-12-02  3:30   ` Simon Glass
2017-11-30  1:25 ` [U-Boot] [RFC PATCH 03/13] arm: move SYS_ARCH_TIMER to KConfig Andre Przywara
2017-12-02  3:30   ` Simon Glass
2017-12-08  6:21   ` Tuomas Tynkkynen
2017-12-08  8:50     ` Andre Przywara
2018-04-12  1:27   ` Tuomas Tynkkynen
2017-11-30  1:25 ` [U-Boot] [RFC PATCH 04/13] reset: add driver for generic reset controllers Andre Przywara
2017-12-02  3:30   ` Simon Glass
2017-11-30  1:25 ` [U-Boot] [RFC PATCH 05/13] mmc: add MMC (glue) driver for Nexell SoCs Andre Przywara
2017-12-02  3:30   ` Simon Glass
2017-11-30  1:25 ` [U-Boot] [RFC PATCH 06/13] arm: add basic framework for Nexell S5P6818 support Andre Przywara
2017-12-02  3:30   ` Simon Glass
2017-11-30  1:25 ` [U-Boot] [RFC PATCH 07/13] arm: nexell: embed NSIH header Andre Przywara
2017-12-02  3:30   ` Simon Glass
2017-11-30  1:25 ` [U-Boot] [RFC PATCH 08/13] arm: nexell: add ARM64 MMU regions Andre Przywara
2017-12-02  3:31   ` Simon Glass
2017-11-30  1:25 ` [U-Boot] [RFC PATCH 09/13] arm: nexell: add UART support Andre Przywara
2017-12-02  3:31   ` Simon Glass
2017-11-30  1:25 ` [U-Boot] [RFC PATCH 10/13] arm: nexell: add timer support Andre Przywara
2017-12-02  3:31   ` Simon Glass
2017-11-30  1:25 ` [U-Boot] [RFC PATCH 11/13] arm: nexell: add preliminary S5P6818 SoC device tree Andre Przywara
2017-12-02  3:31   ` Simon Glass
2017-11-30  1:25 ` [U-Boot] [RFC PATCH 12/13] arm: add NanoPi M3 board support Andre Przywara
2017-12-02  3:31   ` Simon Glass
2017-11-30  1:25 ` [U-Boot] [RFC PATCH 13/13] arm: nexell: switch to 32-bit Andre Przywara
2017-12-02  3:32   ` Simon Glass
2017-11-30 10:01 ` Lukasz Majewski [this message]
2017-11-30 10:22   ` [U-Boot] [RFC PATCH 00/13] Nexell S5P6818 SoC support Lukasz Majewski
2017-11-30 10:52     ` Andre Przywara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171130110112.1fcf8653@jawa \
    --to=lukma@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox