[PATCH v3 00/12] Initial multi-platform support
Shawn Guo
shawn.guo at linaro.org
Thu Sep 13 20:58:40 EDT 2012
On Mon, Sep 10, 2012 at 08:07:11PM +0100, Jamie Iles wrote:
> 8<---
>
> Subject: [PATCH] ARM: picoxcell: fixup multiplatform breakage.
>
> The debug macros had a dependency on mach headers. Break that
> dependency and restore building.
>
> Signed-off-by: Jamie Iles <jamie at jamieiles.com>
> ---
> arch/arm/include/debug/picoxcell.S | 4 ++--
> arch/arm/mach-picoxcell/common.c | 11 ++++++-----
> arch/arm/mach-picoxcell/picoxcell_soc.h | 25 -------------------------
> 3 files changed, 8 insertions(+), 32 deletions(-)
> delete mode 100644 arch/arm/mach-picoxcell/picoxcell_soc.h
>
> diff --git a/arch/arm/include/debug/picoxcell.S b/arch/arm/include/debug/picoxcell.S
> index 58d4ee3..7419deb 100644
> --- a/arch/arm/include/debug/picoxcell.S
> +++ b/arch/arm/include/debug/picoxcell.S
> @@ -9,10 +9,10 @@
> * accesses to the 8250.
> */
> #include <linux/serial_reg.h>
> -#include <mach/hardware.h>
> -#include <mach/map.h>
>
> #define UART_SHIFT 2
> +#define PICOXCELL_UART1_BASE 0x80230000
> +#define PHYS_TO_IO(x) (((x) & 0x00ffffff) | 0xfe000000)
...
>
> .macro addruart, rp, rv, tmp
> ldr \rv, =PHYS_TO_IO(PICOXCELL_UART1_BASE)
> diff --git a/arch/arm/mach-picoxcell/common.c b/arch/arm/mach-picoxcell/common.c
> index a8b70b5..f6c0849 100644
> --- a/arch/arm/mach-picoxcell/common.c
> +++ b/arch/arm/mach-picoxcell/common.c
> @@ -20,14 +20,15 @@
> #include <asm/hardware/vic.h>
> #include <asm/mach/map.h>
>
> -#include "picoxcell_soc.h"
> #include "common.h"
>
> -#define PHYS_TO_IO(x) (((x) & 0x00ffffff) | 0xfe000000)
> +#define PHYS_TO_IO(x) (((x) & 0x00ffffff) | 0xfe000000)
So you end up with defining the same thing at two places. You need to
somehow ensure any update to PHYS_TO_IO needs to get applied on both
to keep them synchronized. This is difficult for maintaining.
We're running into the exactly same problem when moving debug-macro.S
for imx. I believe this is a common issue which needs a common
solution.
I would propose to have the static mapping below (imx example) defined
in something like arch/arm/include/asm/mach/map_imx.h, so that both
imx machine code and ll-debug code can include it.
#define IMX_IO_P2V(x) ( \
(((x) & 0x80000000) >> 7) | \
(0xf4000000 + \
(((x) & 0x50000000) >> 6) + \
(((x) & 0x0b000000) >> 4) + \
(((x) & 0x000fffff))))
Thoughts?
Regards,
Shawn
> +#define PICOXCELL_PERIPH_BASE 0x80000000
> +#define PICOXCELL_PERIPH_LENGTH SZ_4M
>
> -#define WDT_CTRL_REG_EN_MASK (1 << 0)
> -#define WDT_CTRL_REG_OFFS (0x00)
> -#define WDT_TIMEOUT_REG_OFFS (0x04)
> +#define WDT_CTRL_REG_EN_MASK (1 << 0)
> +#define WDT_CTRL_REG_OFFS (0x00)
> +#define WDT_TIMEOUT_REG_OFFS (0x04)
> static void __iomem *wdt_regs;
>
> /*
> diff --git a/arch/arm/mach-picoxcell/picoxcell_soc.h b/arch/arm/mach-picoxcell/picoxcell_soc.h
> deleted file mode 100644
> index 5566fc8..0000000
> --- a/arch/arm/mach-picoxcell/picoxcell_soc.h
> +++ /dev/null
> @@ -1,25 +0,0 @@
> -/*
> - * Copyright (c) 2011 Picochip Ltd., Jamie Iles
> - *
> - * This file contains the hardware definitions of the picoXcell SoC devices.
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License as published by
> - * the Free Software Foundation; either version 2 of the License, or
> - * (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - */
> -#ifndef __PICOXCELL_SOC_H__
> -#define __PICOXCELL_SOC_H__
> -
> -#define PICOXCELL_UART1_BASE 0x80230000
> -#define PICOXCELL_PERIPH_BASE 0x80000000
> -#define PICOXCELL_PERIPH_LENGTH SZ_4M
> -#define PICOXCELL_VIC0_BASE 0x80060000
> -#define PICOXCELL_VIC1_BASE 0x80064000
> -
> -#endif /* __PICOXCELL_SOC_H__ */
> --
> 1.7.9.5
>
More information about the linux-arm-kernel
mailing list