Re: [PATCH v2 02/18] ARM: i.MX8M: bundle imx-scratch code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jan 16, 2024 at 06:07:22PM +0100, Marco Felsch wrote:
> The scatch code spread over the code base which is ok as long as we use
> it for the bootrom-log only.
> 
> This commit bundles the scratch code into a own module to make it easier
> to adapt later on and to make the scratch space independent of
> CONFIG_ARCH_IMX_ROMAPI.
> 
> Signed-off-by: Marco Felsch <m.felsch@xxxxxxxxxxxxxx>
> ---
>  arch/arm/mach-imx/Makefile       |  2 +-
>  arch/arm/mach-imx/romapi.c       |  8 --------
>  arch/arm/mach-imx/scratch.c      | 25 +++++++++++++++++++++++++
>  arch/arm/mach-imx/xload-common.c |  8 --------
>  include/mach/imx/romapi.h        |  2 +-
>  include/mach/imx/scratch.h       | 17 +++++++++++++++++
>  include/mach/imx/xload.h         | 11 -----------
>  7 files changed, 44 insertions(+), 29 deletions(-)
>  create mode 100644 arch/arm/mach-imx/scratch.c
>  create mode 100644 include/mach/imx/scratch.h
> 
> diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
> index 3a51ae87813a..9505cffa8111 100644
> --- a/arch/arm/mach-imx/Makefile
> +++ b/arch/arm/mach-imx/Makefile
> @@ -17,7 +17,7 @@ CFLAGS_imx6.o := -march=armv7-a
>  lwl-$(CONFIG_ARCH_IMX6) += imx6-mmdc.o
>  obj-$(CONFIG_ARCH_IMX7) += imx7.o
>  obj-$(CONFIG_ARCH_VF610) += vf610.o
> -obj-pbl-$(CONFIG_ARCH_IMX8M) += imx8m.o
> +obj-pbl-$(CONFIG_ARCH_IMX8M) += imx8m.o scratch.o
>  obj-$(CONFIG_ARCH_IMX9) += imx9.o
>  lwl-$(CONFIG_ARCH_IMX_ATF) += atf.o
>  obj-pbl-$(CONFIG_ARCH_IMX8M) += tzasc.o
> diff --git a/arch/arm/mach-imx/romapi.c b/arch/arm/mach-imx/romapi.c
> index 6d47f3c6d4af..e11f38202461 100644
> --- a/arch/arm/mach-imx/romapi.c
> +++ b/arch/arm/mach-imx/romapi.c
> @@ -228,14 +228,6 @@ const u32 *imx8m_get_bootrom_log(void)
>  	return NULL;
>  }
>  
> -static int imx8m_reserve_scratch_area(void)
> -{
> -	return PTR_ERR_OR_ZERO(request_sdram_region("scratch area",
> -				    (ulong)arm_mem_scratch_get(),
> -				    sizeof(struct imx_scratch_space)));
> -}
> -device_initcall(imx8m_reserve_scratch_area);
> -
>  void imx8m_save_bootrom_log(void *dest)
>  {
>  	const u32 *rom_log;
> diff --git a/arch/arm/mach-imx/scratch.c b/arch/arm/mach-imx/scratch.c
> new file mode 100644
> index 000000000000..0828b55ff8e5
> --- /dev/null
> +++ b/arch/arm/mach-imx/scratch.c
> @@ -0,0 +1,25 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +
> +#include <asm/barebox-arm.h>
> +#include <init.h>
> +#include <linux/err.h>
> +#include <mach/imx/imx8m-regs.h>
> +#include <mach/imx/esdctl.h>
> +#include <mach/imx/scratch.h>
> +#include <memory.h>
> +
> +struct imx_scratch_space *__imx8m_scratch_space(int ddr_buswidth)
> +{
> +	ulong endmem = MX8M_DDR_CSD1_BASE_ADDR +
> +		imx8m_barebox_earlymem_size(ddr_buswidth);
> +
> +	return (void *)arm_mem_scratch(endmem);
> +}
> +
> +static int imx8m_reserve_scratch_area(void)
> +{
> +	return PTR_ERR_OR_ZERO(request_sdram_region("scratch area",
> +				    (ulong)arm_mem_scratch_get(),
> +				    sizeof(struct imx_scratch_space)));
> +}
> +device_initcall(imx8m_reserve_scratch_area);

This reservation doesn't seem to be i.MX specific. You could move this
to a more generic place.

Sascha

-- 
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 |




[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux