mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Ahmad Fatoum <a.fatoum@pengutronix.de>
Cc: BAREBOX <barebox@lists.infradead.org>
Subject: Re: [PATCH v2 30/33] ARM: k3: add AM62l3 EVM board support
Date: Tue, 17 Jun 2025 11:18:12 +0200	[thread overview]
Message-ID: <aFEy1K1jErUcOzrq@pengutronix.de> (raw)
In-Reply-To: <a0256cdf-a7a5-4fb1-8f3b-fa33ca523ac2@pengutronix.de>

On Mon, Jun 16, 2025 at 02:03:57PM +0200, Ahmad Fatoum wrote:
> 
> 
> On 6/5/25 14:42, Sascha Hauer wrote:
> > Add support for the AM62l3 EVM board [1]. Currently supported are:
> > 
> > - DRAM
> > - eMMC
> > - SD card
> > - Ethernet
> > - USB
> > 
> > [1] https://www.ti.com/tool/TMDS62LEVM
> > 
> > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> > ---
> >  arch/arm/boards/Makefile              |  1 +
> >  arch/arm/boards/am62lx-evm/Makefile   |  1 +
> >  arch/arm/boards/am62lx-evm/lowlevel.c | 37 ++++++++++++++++++++
> >  arch/arm/dts/Makefile                 |  1 +
> >  arch/arm/mach-k3/Kconfig              |  6 ++++
> >  images/Makefile.k3                    | 63 +++++++++++++++++++++++++++++++++--
> >  6 files changed, 107 insertions(+), 2 deletions(-)
> > 
> > diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile
> > index 908497cd8b0509bdca01c9ccfbb1501654051bda..ac1fa74d4c03de7a462746cb93a061017cd2b64d 100644
> > --- a/arch/arm/boards/Makefile
> > +++ b/arch/arm/boards/Makefile
> > @@ -5,6 +5,7 @@ obj-$(CONFIG_MACH_ADVANTECH_ROM_742X)		+= advantech-mx6/
> >  obj-$(CONFIG_MACH_AFI_GF)			+= afi-gf/
> >  obj-$(CONFIG_MACH_ANIMEO_IP)			+= animeo_ip/
> >  obj-$(CONFIG_MACH_AM625_SK)			+= am625-sk/
> > +obj-$(CONFIG_MACH_AM62LX_EVM)			+= am62lx-evm/
> >  obj-$(CONFIG_MACH_AT91RM9200EK)			+= at91rm9200ek/
> >  obj-$(CONFIG_MACH_AT91SAM9260EK)		+= at91sam9260ek/
> >  obj-$(CONFIG_MACH_AT91SAM9261EK)		+= at91sam9261ek/
> > diff --git a/arch/arm/boards/am62lx-evm/Makefile b/arch/arm/boards/am62lx-evm/Makefile
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..562535d391d66ae2068377967c4c84844cddd380
> > --- /dev/null
> > +++ b/arch/arm/boards/am62lx-evm/Makefile
> > @@ -0,0 +1 @@
> > +pbl-y += lowlevel.o
> > diff --git a/arch/arm/boards/am62lx-evm/lowlevel.c b/arch/arm/boards/am62lx-evm/lowlevel.c
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..c2f5771dcf53fb49f3d7e1cf9fd0e8a93d0323d7
> > --- /dev/null
> > +++ b/arch/arm/boards/am62lx-evm/lowlevel.c
> > @@ -0,0 +1,37 @@
> > +// SPDX-License-Identifier: GPL-2.0-only
> > +
> > +#include <common.h>
> > +#include <asm/barebox-arm-head.h>
> > +#include <asm/barebox-arm.h>
> > +#include <mach/k3/debug_ll.h>
> > +#include <debug_ll.h>
> > +#include <pbl.h>
> > +#include <cache.h>
> > +#include <pbl/handoff-data.h>
> > +#include <compressed-dtb.h>
> > +#include <mach/k3/common.h>
> > +
> > +#define SECURE_SIZE 0x600000
> > +
> > +static noinline void am62lx_evm_continue(void)
> > +{
> > +	extern char __dtb_z_k3_am62l3_evm_start[];
> > +
> > +	pbl_set_putc((void *)debug_ll_ns16550_putc, IOMEM(AM62X_UART_UART0_BASE));
> 
> Why do you need to cast the function pointer?

pbl_set_putc() takes a void(void *ctx, int c) argument whereas debug_ll_ns16550_putc
has the prototype void debug_ll_ns16550_putc(void __iomem *base, char c)

I guess this needs some cleanup.

Sascha


> 
> > +
> > +	putc_ll('>');
> > +
> > +	barebox_arm_entry(0x80000000 + SECURE_SIZE, SZ_2G - SECURE_SIZE, __dtb_z_k3_am62l3_evm_start);
> > +}
> > +
> > +ENTRY_FUNCTION_WITHSTACK(start_am62lx_evm, 0x80800000, r0, r1, r2)
> > +{
> > +	writel(0x00000000, 0x040841b8);
> > +
> > +	k3_debug_ll_init(IOMEM(AM62X_UART_UART0_BASE));
> > +
> > +	relocate_to_current_adr();
> > +	setup_c();
> > +
> > +	am62lx_evm_continue();
> > +}
> > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> > index 3044c9bf120f9ece9564164b3fa569f4b7be1881..6612a514523103fdaaae026527f3441ebc57d228 100644
> > --- a/arch/arm/dts/Makefile
> > +++ b/arch/arm/dts/Makefile
> > @@ -7,6 +7,7 @@ obj- += dummy.o
> >  lwl-$(CONFIG_MACH_ADVANTECH_ROM_742X) += imx6dl-advantech-rom-7421.dtb.o
> >  lwl-$(CONFIG_MACH_AFI_GF) += am335x-afi-gf.dtb.o
> >  lwl-$(CONFIG_MACH_AM625_SK) += k3-am625-sk.dtb.o k3-am625-r5-sk.dtb.o k3-am625sip-r5-sk.dtb.o
> > +lwl-$(CONFIG_MACH_AM62LX_EVM) += k3-am62l3-evm.dtb.o
> >  lwl-$(CONFIG_MACH_BEAGLEBONE) += am335x-bone.dtb.o am335x-boneblack.dtb.o am335x-bone-common.dtb.o
> >  lwl-$(CONFIG_MACH_BEAGLEPLAY) += k3-am625-beagleplay.dtb.o k3-am625-r5-beagleplay.dtb.o
> >  lwl-$(CONFIG_MACH_CLEP7212) += ep7212-clep7212.dtb.o
> > diff --git a/arch/arm/mach-k3/Kconfig b/arch/arm/mach-k3/Kconfig
> > index cda44807e8a1db7c2f701309948c7bd1a863d365..338421a8af1715c72a23adc41fb7a21d69091585 100644
> > --- a/arch/arm/mach-k3/Kconfig
> > +++ b/arch/arm/mach-k3/Kconfig
> > @@ -46,6 +46,12 @@ config MACH_BEAGLEPLAY
> >  	help
> >  	  Say Y here if you are using a TI AM62x based BeaglePlay board
> >  
> > +config MACH_AM62LX_EVM
> > +	bool "TI AM62Lx EVM"
> > +	select MACH_AM62LX
> > +	help
> > +	  Say Y here if you are using a TI AM62Lx EVM board
> > +
> >  config ARCH_K3_AUTHENTICATE_IMAGE
> >  	bool "Force authentication of FIP image against ROM API"
> >  	help
> > diff --git a/images/Makefile.k3 b/images/Makefile.k3
> > index 12db9c59a96eade62679987aedb9b5433cec3c2f..ed8cdf126a9d4487e3423fcb6959c2d2a1fff3bf 100644
> > --- a/images/Makefile.k3
> > +++ b/images/Makefile.k3
> > @@ -17,6 +17,9 @@ image-$(CONFIG_MACH_BEAGLEPLAY) += barebox-beagleplay.img
> >  
> >  endif
> >  
> > +KEY_custmpk=$(srctree)/arch/arm/mach-k3/custMpk.pem
> > +KEY_degenerate=$(srctree)/arch/arm/mach-k3/ti-degenerate-key.pem
> > +
> >  ifdef CONFIG_MACH_K3_CORTEX_R5
> >  
> >  SYSFWDATA_am625=$(objtree)/arch/arm/mach-k3/combined-sysfw-cfg-am62x.k3cfg
> > @@ -24,8 +27,6 @@ DMDATA_am625=$(objtree)/arch/arm/mach-k3/combined-dm-cfg-am62x.k3cfg
> >  SYSFW_am625_hs_fs=$(FIRMWARE_DIR)/ti-linux-firmware/ti-sysfw/ti-fs-firmware-am62x-hs-fs-enc.bin
> >  SYSFW_am625_gp=$(FIRMWARE_DIR)/ti-linux-firmware/ti-sysfw/ti-fs-firmware-am62x-gp.bin
> >  INNERDATA_am625=$(FIRMWARE_DIR)/ti-linux-firmware/ti-sysfw/ti-fs-firmware-am62x-hs-fs-cert.bin
> > -KEY_custmpk=$(srctree)/arch/arm/mach-k3/custMpk.pem
> > -KEY_degenerate=$(srctree)/arch/arm/mach-k3/ti-degenerate-key.pem
> >  
> >  ## TI am625(sip)-SK ##
> >  SYSFW_start_am625_sk_r5.pblb.k3_am62x_img=$(SYSFW_am625_hs_fs)
> > @@ -60,6 +61,29 @@ image-$(CONFIG_MACH_BEAGLEPLAY) += barebox-beagleplay-r5.img
> >  
> >  endif
> >  
> > +SYSFWDATA_am62lx=$(objtree)/arch/arm/mach-k3/combined-sysfw-cfg-am62l.k3cfg
> > +SYSFW_am62lx_hs_fs=$(FIRMWARE_DIR)/ti-linux-firmware/ti-sysfw/ti-fs-firmware-am62lx-hs-fs-enc.bin
> > +INNERDATA_am62lx=$(FIRMWARE_DIR)/ti-linux-firmware/ti-sysfw/ti-fs-firmware-am62lx-hs-fs-cert.bin
> > +
> > +## TI am62lx-EVM ##
> > +SYSFW_start_am62lx_evm.pblb.k3_am62lx_img=$(SYSFW_am62lx_hs_fs)
> > +SYSFWDATA_start_am62lx_evm.pblb.k3_am62lx_img=$(SYSFWDATA_am62lx)
> > +TFA_start_am62lx_evm.pblb.k3_am62lx_img=$(FIRMWARE_DIR)/am62lx-bl31.bin
> > +INNERDATA_start_am62lx_evm.pblb.k3_am62lx_img=$(INNERDATA_am62lx)
> > +KEY_start_am62lx_evm.pblb.k3_am62lx_img=$(KEY_custmpk)
> > +
> > +SYSFW_start_am62lx_evm.pblb.k3_am62lx_tiboot3_img=$(SYSFW_am62lx_hs_fs)
> > +SYSFWDATA_start_am62lx_evm.pblb.k3_am62lx_tiboot3_img=$(SYSFWDATA_am62lx)
> > +INNERDATA_start_am62lx_evm.pblb.k3_am62lx_tiboot3_img=$(INNERDATA_am62lx)
> > +TFA_BL1_start_am62lx_evm.pblb.k3_am62lx_tiboot3_img=$(FIRMWARE_DIR)/am62lx-bl1.bin
> > +KEY_start_am62lx_evm.pblb.k3_am62lx_tiboot3_img=$(KEY_custmpk)
> > +
> > +pblb-$(CONFIG_MACH_AM62LX_EVM) += start_am62lx_evm
> > +FILE_barebox-am62lx-evm.img = start_am62lx_evm.pblb.k3_am62lx_img
> > +image-$(CONFIG_MACH_AM62LX_EVM) += barebox-am62lx-evm.img barebox-am62lx-evm-tiboot3.img
> > +
> > +FILE_barebox-am62lx-evm-tiboot3.img = start_am62lx_evm.pblb.k3_am62lx_tiboot3_img
> > +
> >  quiet_cmd_k3_am62x_image = K3_am62x_IMG   $@
> >        cmd_k3_am62x_image = \
> >  		if [ -n "$(INNERDATA_$(@F))" ]; then				\
> > @@ -74,5 +98,40 @@ quiet_cmd_k3_am62x_image = K3_am62x_IMG   $@
> >  			$(DMDATA_$(@F)):17:16:0:43c3a800			\
> >  			--key $(KEY_$(@F)) --out $@
> >  
> > +quiet_cmd_k3_am62lx_image = K3_am62lx_IMG   $@
> > +      cmd_k3_am62lx_image = \
> > +		if [ -n "$(INNERDATA_$(@F))" ]; then				\
> > +			inner="$(INNERDATA_$(@F)):3:0:0:00000000";		\
> > +		fi;								\
> > +										\
> > +		if [ -n "$(FIRMWARE_DIR)/am62lx-bl32.bin" ]; then		\
> > +			optee=$(FIRMWARE_DIR)/am62lx-bl32.bin:17:16:0:80200000;	\
> > +		fi;								\
> > +										\
> > +		$(srctree)/scripts/k3img					\
> > +			$(TFA_$(@F)):1:16:0:80000000				\
> > +			$(SYSFW_$(@F)):2:0:0:00040000				\
> > +			$(SYSFWDATA_$(@F)):18:0:0:0006c000			\
> > +			$$inner							\
> > +			$$optee							\
> > +			$<:17:16:0:82000000					\
> > +			--key $(KEY_$(@F)) --out $@
> > +
> > +quiet_cmd_k3_am62lx_tiboot3_image = K3_am62lx_tiboot3_IMG   $@
> > +      cmd_k3_am62lx_tiboot3_image = \
> > +		$(srctree)/scripts/k3img					\
> > +			$(TFA_BL1_$(@F)):1:16:160:70800000			\
> > +			$(SYSFW_$(@F)):2:0:0:00040000				\
> > +			$(SYSFWDATA_$(@F)):18:0:0:0006c000			\
> > +			$(INNERDATA_$(@F)):3:0:0:00000000			\
> > +			--key $(KEY_$(@F))					\
> > +			--out $@
> > +
> >  $(obj)/%.k3_am62x_img: $(obj)/% scripts/k3img FORCE
> >  	$(call if_changed,k3_am62x_image)
> > +
> > +$(obj)/%.k3_am62lx_img: $(obj)/% scripts/k3img FORCE
> > +	$(call if_changed,k3_am62lx_image)
> > +
> > +$(obj)/%.k3_am62lx_tiboot3_img: $(obj)/% scripts/k3img FORCE
> > +	$(call if_changed,k3_am62lx_tiboot3_image)
> > 
> 
> -- 
> Pengutronix e.K.                  |                             |
> Steuerwalder Str. 21              | http://www.pengutronix.de/  |
> 31137 Hildesheim, Germany         | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686  | Fax:   +49-5121-206917-5555 |
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



  reply	other threads:[~2025-06-17  9:29 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-05 12:42 [PATCH v2 00/33] ARM: K3: add support for AM62L Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 01/33] scripts/k3img: make more flexible Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 02/33] images: K3: rename %.k3img target to %.k3_am62x_img Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 03/33] ARM: K3: prepare support for other SoCs Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 04/33] ARM: dts: add k3-am62l dts(i) files Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 05/33] ARM: dts: am62l: Fix assigned-clock-parents Sascha Hauer
2025-06-16 11:41   ` Ahmad Fatoum
2025-06-17  9:10     ` Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 06/33] ARM: K3: add am62lx base support Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 07/33] ARM: Makefile: descend into mach-* for cleaning Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 08/33] ARM: k3: rename yaml files from am625 to am62x Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 09/33] firmware: add ti-linux-firmware submodule Sascha Hauer
2025-06-16 11:54   ` Ahmad Fatoum
2025-06-05 12:42 ` [PATCH v2 10/33] scripts/ti-board-config.py: fix length Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 11/33] ARM: k3: add yaml files for AM62l Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 12/33] k3: ringacc: pass ringrt address in struct k3_ringacc_init_data Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 13/33] drivers: soc: ti: k3-ringacc: handle absence of tisci Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 14/33] drivers: soc: ti: k3-ringacc: fix k3_ringacc_ring_reset_sci Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 15/33] dma: ti: k3-psil: Add PSIL data for AM62L Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 16/33] dma: ti: k3-udma: Refactor common bits for AM62L support Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 17/33] dma: ti: k3-udma-common: Update common code for AM62L DMAs Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 18/33] dma: ti: k3-udma-am62l: Add AM62L support DMA drivers Sascha Hauer
2025-06-16 11:57   ` Ahmad Fatoum
2025-06-17  8:20     ` Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 19/33] ARM: dts: am62l: Add ethernet ports Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 20/33] ARM: dts: am62l evm: " Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 21/33] ARM: k3: am62l: add barebox specific am62l.dtsi Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 22/33] net: davinci_mdio: Use fallback clock rate Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 23/33] firmware: arm_scmi: Add support for clock parents Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 24/33] clk: add struct clk_parent_data Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 25/33] clk: arm_scmi: implement clock parent setting Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 26/33] ARM: dts: am62l3-evm: add MMC aliases Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 27/33] dma: ti: k3-udma: limit asel to am625 Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 28/33] gpio: increase ARCH_NR_GPIOS to 512 Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 29/33] ARM: dts: k3-am62l: reserve memory for TF-A and OP-TEE Sascha Hauer
2025-06-16 12:01   ` Ahmad Fatoum
2025-06-05 12:42 ` [PATCH v2 30/33] ARM: k3: add AM62l3 EVM board support Sascha Hauer
2025-06-16 12:03   ` Ahmad Fatoum
2025-06-17  9:18     ` Sascha Hauer [this message]
2025-06-05 12:42 ` [PATCH v2 31/33] ARM: K3: am62l: add serial aliases Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 32/33] Documentation: boards: k3: split generic and am62x specific documentation Sascha Hauer
2025-06-05 12:42 ` [PATCH v2 33/33] Documentation: boards: k3: add AM62lx documentation Sascha Hauer
2025-06-17  6:54 ` [PATCH v2 00/33] ARM: K3: add support for AM62L Sascha Hauer

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=aFEy1K1jErUcOzrq@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=a.fatoum@pengutronix.de \
    --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