From: Andrey Smirnov <andrew.smirnov@gmail.com>
To: barebox@lists.infradead.org
Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
Subject: [PATCH v4 00/54] ARM: i.MX8MQ and EVK support
Date: Mon, 11 Jun 2018 18:52:32 -0700 [thread overview]
Message-ID: <20180612015326.26192-1-andrew.smirnov@gmail.com> (raw)
Everyone:
Picking up where Sascha left off, this is the next version of the
patchset that adds support for i.MX8MQ EVK board.
This patchest is also availible at:
https://github.com/ndreys/barebox/tree/imx8m-support-v4
Changes since [v3]:
- Timeout/delay functions were moved into lib/ instead of being
inline in order to avoid image size increase.
- Imx-image chages were reworked to fix regression identified by
Alexander Kurz in [regression1]
- Minor fix to "clock: Use udelay() to implement mdelay()" (33/54)
to prevent 32-bit ARM EABI toolchain from issuing a call to
unsigned long division helper
- Imx_v8_defconfig was modified to be as close to imx_v7_defconfig
as possible.
Removed options:
CONFIG_PBL_CONSOLE=y
CONFIG_CONSOLE_RATP=y
Added options:
CONFIG_CONSOLE_ACTIVATE_NONE=y
CONFIG_CMD_DHCP=y
CONFIG_CMD_MIITOOL=y
CONFIG_CMD_PING=y
CONFIG_CMD_I2C=y
CONFIG_NET=y
CONFIG_NET_NETCONSOLE=y
CONFIG_NET_RESOLV=y
CONFIG_DRIVER_NET_FEC_IMX=y
CONFIG_I2C=y
CONFIG_I2C_IMX=y
CONFIG_FS_TFTP=y
CONFIG_FS_NFS=y
Changes since [v2]:
- i.MX8 specific eSDHC bootstrap code code fixed to function
correctly with high capacity SD cards
- DDR PHY firmware converted to use Sascha's firmware framework and
be SoC specific (can be shared among different boards)
- DDR register definitions moved to imx8-ddrc.h as well as cleaned
up to contain only constants that are being used
- Incorporated imx-image i.MX8 work done by Sascha as well as extend
it to create valid AArch64 header
- Patchset is rebase on latest 'next' branch to accomodate recent
OCOTP changes
Changes since [v1]:
- The patchset now allows building 1st stage bootloader that can be
progammed on SD card and booted standalone
Currently out of scope of this patch (not tested or documented, will
be coming in a follow up series):
- Integration of ARM Trusted Firmware
- Booting Linux kernel
Current assumptions (all subject to change, but listed below to be
explicit):
- DDR initialization code is auto-generated by i.MX8M DDR Tool and
used as close to as-is as possible.
Feedback is wellcome!
Thanks,
Andrey Smirnov
[v1] http://lists.infradead.org/pipermail/barebox/2018-March/032386.html
[v2] http://lists.infradead.org/pipermail/barebox/2018-May/033149.html
[v3] http://lists.infradead.org/pipermail/barebox/2018-June/033390.html
[regression1] http://lists.infradead.org/pipermail/barebox/2018-June/033475.html
Andrey Smirnov (37):
net: fec_imx: Make use of IS_ALIGNED
ARM: i.MX: Split shared CCM code into a separate file
ARM: i.MX: Add IOMUX pad constants for i.MX8
ARM: i.MX: Add basic CCM constants for i.MX8
ARM: Add constants and helpers for system counter interface
clocksource: armv8-timer: Convert explicit assembly into helpers
ARM: i.MX8: Initialize system counter
ARM: i.MX: boot: Fix address casting on 64-bit platforms
ARM: boot: Add trivial i.MX8 support
ARM: i.MX: xload-esdhc: Rework to make code be less i.MX6-specific
ARM: i.MX: xload-esdhc: Allow custom buffer address, device offset
ARM: i.MX: xload-esdhc: Add support for i.MX8
pinctrl: i.MX: Add support for i.MX8
Documentation: imx: Change block size for 'dd' to 1024
Documentation: i.MX: Add missing <soctype>
clocksource: armv8-timer: Make armv8_clocksource_read() static
clocksource: armv8-timer: Make use of postcore_platform_driver()
Port <linux/iopoll.h> from U-Boot
common/clock: Move delay and timeout functions to lib/
clock: Use udelay() to implement mdelay()
ARM: i.MX8: Add DDRC PHY and DDR CTL base addresses
ARM: i.MX8: Add DDRC PHY support code
ARM: Specify HAVE_PBL_IMAGE for CPU_64
ARM: lib64: Make string functions aware of MMU configuration
ARM: mmu: Make use of dsb() and isb() helpers
ARM: cache: Remove unused cache ops struct
ARM: no-mmu: Disable building for ARMv8
ARM: interrupts64: Include ESR value in exception traceback
ARM: mmu64: Trivial code simplification
ARM: mmu64: Make use of create_table()
ARM: mmu64: Convert flags in arch_remap_range()
ARM: include: dma: Add missing no-MMU stubs
scripts: imx-image: Drop error return from write_dcd()
scripts: imx-image: Limit v2 header size to HEADER_LEN
scripts: imx-image: Use a loop to create multiple header copies
scripts: imx-image: Share the code to write barebox header
ARM: Introduce imx_v8_defconfig
Sascha Hauer (17):
ARM: i.MX: xload: Fix compiler warning
ARM: i.MX: compile arm32 specific errata only for CPU32
ARM: Add i.MX8 support
aarch64: Add i.MX8 debug UART support
Include our own include/dt-bindings
mci: imx-esdhc: use dma mapping functions
net: fec_imx: remove unnecessary DMA sync ops
net: fec_imx: Use dma mapping functions
clock: Add i.MX8MQ clock driver
serial: i.MX: Add i.MX8 support
mmc: i.MX esdhc: Add i.MX8 support
gpio: i.MX: Add i.MX8mq support
ARM: i.MX: ocotp: Add i.MX8MQ support
Kbuild: Add $(quote)
Add builtin firmware support
scripts: imx-image: Add i.MX8MQ support
ARM: i.MX8: Add i.MX8mq EVK support
Documentation/boards/imx.rst | 15 +-
Documentation/boards/imx/nxp-imx8mq-evk.rst | 116 ++
Makefile | 2 +-
arch/arm/Kconfig | 8 +
arch/arm/boards/Makefile | 1 +
arch/arm/boards/nxp-imx8mq-evk/.gitignore | 1 +
arch/arm/boards/nxp-imx8mq-evk/Makefile | 4 +
arch/arm/boards/nxp-imx8mq-evk/board.c | 44 +
arch/arm/boards/nxp-imx8mq-evk/ddr.h | 28 +
arch/arm/boards/nxp-imx8mq-evk/ddr_init.c | 223 ++++
arch/arm/boards/nxp-imx8mq-evk/ddrphy_train.c | 1026 +++++++++++++++++
.../flash-header-imx8mq-evk.imxcfg | 4 +
arch/arm/boards/nxp-imx8mq-evk/lowlevel.c | 81 ++
arch/arm/configs/imx_v8_defconfig | 107 ++
arch/arm/cpu/Kconfig | 1 +
arch/arm/cpu/Makefile | 2 +-
arch/arm/cpu/cache.c | 1 -
arch/arm/cpu/interrupts_64.c | 3 +-
arch/arm/cpu/mmu_64.c | 25 +-
arch/arm/cpu/mmu_64.h | 4 +-
arch/arm/dts/Makefile | 1 +
arch/arm/dts/imx8mq-evk.dts | 444 +++++++
arch/arm/dts/imx8mq-pinfunc.h | 623 ++++++++++
arch/arm/dts/imx8mq.dtsi | 624 ++++++++++
arch/arm/include/asm/dma.h | 11 +
arch/arm/include/asm/syscounter.h | 24 +
arch/arm/include/asm/system.h | 24 +
arch/arm/lib64/Makefile | 2 +-
arch/arm/lib64/memcpy.S | 6 +-
arch/arm/lib64/memset.S | 4 +-
arch/arm/lib64/string.c | 22 +
arch/arm/mach-imx/Kconfig | 14 +
arch/arm/mach-imx/Makefile | 2 +
arch/arm/mach-imx/boot.c | 8 +-
arch/arm/mach-imx/cpu_init.c | 2 +
arch/arm/mach-imx/imx.c | 4 +
arch/arm/mach-imx/imx8-ddrc.c | 107 ++
arch/arm/mach-imx/imx8mq.c | 85 ++
arch/arm/mach-imx/include/mach/ccm.h | 20 +
arch/arm/mach-imx/include/mach/debug_ll.h | 11 +
arch/arm/mach-imx/include/mach/generic.h | 15 +
.../arm/mach-imx/include/mach/imx7-ccm-regs.h | 16 +-
.../arm/mach-imx/include/mach/imx8-ccm-regs.h | 15 +
arch/arm/mach-imx/include/mach/imx8-ddrc.h | 66 ++
arch/arm/mach-imx/include/mach/imx8mq-regs.h | 123 ++
.../arm/mach-imx/include/mach/imx_cpu_types.h | 1 +
arch/arm/mach-imx/include/mach/iomux-mx8.h | 645 +++++++++++
arch/arm/mach-imx/include/mach/iomux-v3.h | 9 +
arch/arm/mach-imx/include/mach/xload.h | 2 +-
arch/arm/mach-imx/xload-esdhc.c | 121 +-
arch/mips/dts/include/dt-bindings | 1 -
common/Kconfig | 8 +
common/clock.c | 52 -
drivers/clk/imx/Makefile | 3 +
drivers/clk/imx/clk-frac-pll.c | 226 ++++
drivers/clk/imx/clk-imx8mq.c | 580 ++++++++++
drivers/clk/imx/clk-sccg-pll.c | 242 ++++
drivers/clk/imx/clk.h | 27 +
drivers/clocksource/armv8-timer.c | 21 +-
drivers/gpio/gpio-imx.c | 3 +
drivers/mci/imx-esdhc.c | 54 +-
drivers/net/fec_imx.c | 19 +-
drivers/net/fec_imx.h | 1 +
drivers/nvmem/Kconfig | 2 +-
drivers/nvmem/ocotp.c | 10 +
drivers/pinctrl/imx-iomux-v3.c | 56 +-
drivers/serial/serial_imx.c | 5 +-
firmware/Kconfig | 10 +
firmware/Makefile | 61 +
images/Makefile.imx | 7 +
include/dt-bindings/clock/imx8mq-clock.h | 629 ++++++++++
include/firmware.h | 8 +
include/linux/iopoll.h | 69 ++
include/serial/imx-uart.h | 5 +
include/string.h | 3 +
lib/Makefile | 1 +
lib/clock.c | 74 ++
lib/string.c | 18 +-
scripts/Kbuild.include | 1 +
scripts/Makefile.lib | 1 +
scripts/imx/imx-image.c | 140 ++-
scripts/imx/imx.c | 23 +-
scripts/imx/imx.h | 2 +
83 files changed, 6848 insertions(+), 261 deletions(-)
create mode 100644 Documentation/boards/imx/nxp-imx8mq-evk.rst
create mode 100644 arch/arm/boards/nxp-imx8mq-evk/.gitignore
create mode 100644 arch/arm/boards/nxp-imx8mq-evk/Makefile
create mode 100644 arch/arm/boards/nxp-imx8mq-evk/board.c
create mode 100644 arch/arm/boards/nxp-imx8mq-evk/ddr.h
create mode 100644 arch/arm/boards/nxp-imx8mq-evk/ddr_init.c
create mode 100644 arch/arm/boards/nxp-imx8mq-evk/ddrphy_train.c
create mode 100644 arch/arm/boards/nxp-imx8mq-evk/flash-header-imx8mq-evk.imxcfg
create mode 100644 arch/arm/boards/nxp-imx8mq-evk/lowlevel.c
create mode 100644 arch/arm/configs/imx_v8_defconfig
create mode 100644 arch/arm/dts/imx8mq-evk.dts
create mode 100644 arch/arm/dts/imx8mq-pinfunc.h
create mode 100644 arch/arm/dts/imx8mq.dtsi
create mode 100644 arch/arm/include/asm/syscounter.h
create mode 100644 arch/arm/lib64/string.c
create mode 100644 arch/arm/mach-imx/imx8-ddrc.c
create mode 100644 arch/arm/mach-imx/imx8mq.c
create mode 100644 arch/arm/mach-imx/include/mach/ccm.h
create mode 100644 arch/arm/mach-imx/include/mach/imx8-ccm-regs.h
create mode 100644 arch/arm/mach-imx/include/mach/imx8-ddrc.h
create mode 100644 arch/arm/mach-imx/include/mach/imx8mq-regs.h
create mode 100644 arch/arm/mach-imx/include/mach/iomux-mx8.h
delete mode 120000 arch/mips/dts/include/dt-bindings
create mode 100644 drivers/clk/imx/clk-frac-pll.c
create mode 100644 drivers/clk/imx/clk-imx8mq.c
create mode 100644 drivers/clk/imx/clk-sccg-pll.c
create mode 100644 firmware/Kconfig
create mode 100644 firmware/Makefile
create mode 100644 include/dt-bindings/clock/imx8mq-clock.h
create mode 100644 include/linux/iopoll.h
create mode 100644 lib/clock.c
--
2.17.0
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next reply other threads:[~2018-06-12 1:55 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-12 1:52 Andrey Smirnov [this message]
2018-06-12 1:52 ` [PATCH v4 01/54] ARM: i.MX: xload: Fix compiler warning Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 02/54] ARM: i.MX: compile arm32 specific errata only for CPU32 Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 03/54] ARM: Add i.MX8 support Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 04/54] aarch64: Add i.MX8 debug UART support Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 05/54] Include our own include/dt-bindings Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 06/54] mci: imx-esdhc: use dma mapping functions Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 07/54] net: fec_imx: remove unnecessary DMA sync ops Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 08/54] net: fec_imx: Use dma mapping functions Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 09/54] net: fec_imx: Make use of IS_ALIGNED Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 10/54] clock: Add i.MX8MQ clock driver Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 11/54] serial: i.MX: Add i.MX8 support Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 12/54] mmc: i.MX esdhc: " Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 13/54] gpio: i.MX: Add i.MX8mq support Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 14/54] ARM: i.MX: ocotp: Add i.MX8MQ support Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 15/54] ARM: i.MX: Split shared CCM code into a separate file Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 16/54] ARM: i.MX: Add IOMUX pad constants for i.MX8 Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 17/54] ARM: i.MX: Add basic CCM " Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 18/54] ARM: Add constants and helpers for system counter interface Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 19/54] clocksource: armv8-timer: Convert explicit assembly into helpers Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 20/54] ARM: i.MX8: Initialize system counter Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 21/54] ARM: i.MX: boot: Fix address casting on 64-bit platforms Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 22/54] ARM: boot: Add trivial i.MX8 support Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 23/54] ARM: i.MX: xload-esdhc: Rework to make code be less i.MX6-specific Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 24/54] ARM: i.MX: xload-esdhc: Allow custom buffer address, device offset Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 25/54] ARM: i.MX: xload-esdhc: Add support for i.MX8 Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 26/54] pinctrl: i.MX: " Andrey Smirnov
2018-06-12 1:52 ` [PATCH v4 27/54] Documentation: imx: Change block size for 'dd' to 1024 Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 28/54] Documentation: i.MX: Add missing <soctype> Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 29/54] clocksource: armv8-timer: Make armv8_clocksource_read() static Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 30/54] clocksource: armv8-timer: Make use of postcore_platform_driver() Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 31/54] Port <linux/iopoll.h> from U-Boot Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 32/54] common/clock: Move delay and timeout functions to lib/ Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 33/54] clock: Use udelay() to implement mdelay() Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 34/54] ARM: i.MX8: Add DDRC PHY and DDR CTL base addresses Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 35/54] Kbuild: Add $(quote) Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 36/54] Add builtin firmware support Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 37/54] ARM: i.MX8: Add DDRC PHY support code Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 38/54] ARM: Specify HAVE_PBL_IMAGE for CPU_64 Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 39/54] ARM: lib64: Make string functions aware of MMU configuration Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 40/54] ARM: mmu: Make use of dsb() and isb() helpers Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 41/54] ARM: cache: Remove unused cache ops struct Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 42/54] ARM: no-mmu: Disable building for ARMv8 Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 43/54] ARM: interrupts64: Include ESR value in exception traceback Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 44/54] ARM: mmu64: Trivial code simplification Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 45/54] ARM: mmu64: Make use of create_table() Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 46/54] ARM: mmu64: Convert flags in arch_remap_range() Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 47/54] ARM: include: dma: Add missing no-MMU stubs Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 48/54] scripts: imx-image: Drop error return from write_dcd() Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 49/54] scripts: imx-image: Limit v2 header size to HEADER_LEN Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 50/54] scripts: imx-image: Use a loop to create multiple header copies Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 51/54] scripts: imx-image: Share the code to write barebox header Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 52/54] scripts: imx-image: Add i.MX8MQ support Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 53/54] ARM: i.MX8: Add i.MX8mq EVK support Andrey Smirnov
2018-06-12 2:58 ` Fabio Estevam
2018-06-12 14:52 ` Andrey Smirnov
2018-06-12 5:49 ` Holger Schurig
2018-06-12 14:53 ` Andrey Smirnov
2018-06-12 1:53 ` [PATCH v4 54/54] ARM: Introduce imx_v8_defconfig Andrey Smirnov
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=20180612015326.26192-1-andrew.smirnov@gmail.com \
--to=andrew.smirnov@gmail.com \
--cc=barebox@lists.infradead.org \
/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