[PATCH 2/2] ARM: i.MX5/mm: use static mapping for TZIC

Jason Hui jason.hui at linaro.org
Tue Aug 23 04:27:21 EDT 2011


Hi, Uwe,

2011/8/23 Uwe Kleine-König <u.kleine-koenig at pengutronix.de>:
> Hello Jason,
>
> On Mon, Aug 22, 2011 at 07:53:25PM +0800, Jason Liu wrote:
>> We can use static mapping for TZIC to get rid of the
>> duplicated code for ioremap and the error handling of
>> ioremap, which will made code more clean and consistent.
>>
>> Signed-off-by: Jason Liu <jason.hui at linaro.org>
>> ---
>>  arch/arm/mach-mx5/mm.c                |   20 ++++----------------
>>  arch/arm/plat-mxc/include/mach/mx51.h |    1 +
>>  arch/arm/plat-mxc/include/mach/mx53.h |    1 +
>>  3 files changed, 6 insertions(+), 16 deletions(-)
>>
>> diff --git a/arch/arm/mach-mx5/mm.c b/arch/arm/mach-mx5/mm.c
>> index f8ebe37..adfe889 100644
>> --- a/arch/arm/mach-mx5/mm.c
>> +++ b/arch/arm/mach-mx5/mm.c
>> @@ -25,6 +25,7 @@
>>   * Define the MX51 memory map.
>>   */
>>  static struct map_desc mx51_io_desc[] __initdata = {
>> +     imx_map_entry(MX51, TZIC, MT_DEVICE),
>>       imx_map_entry(MX51, IRAM, MT_DEVICE),
>>       imx_map_entry(MX51, DEBUG, MT_DEVICE),
>>       imx_map_entry(MX51, AIPS1, MT_DEVICE),
>> @@ -36,6 +37,7 @@ static struct map_desc mx51_io_desc[] __initdata = {
>>   * Define the MX53 memory map.
>>   */
>>  static struct map_desc mx53_io_desc[] __initdata = {
>> +     imx_map_entry(MX53, TZIC, MT_DEVICE),
>>       imx_map_entry(MX53, AIPS1, MT_DEVICE),
>>       imx_map_entry(MX53, SPBA0, MT_DEVICE),
>>       imx_map_entry(MX53, AIPS2, MT_DEVICE),
>> @@ -100,32 +102,18 @@ void __init imx50_init_early(void)
>>  void __init mx51_init_irq(void)
>>  {
>>       unsigned long tzic_addr;
>> -     void __iomem *tzic_virt;
>>
>>       if (mx51_revision() < IMX_CHIP_REVISION_2_0)
>>               tzic_addr = MX51_TZIC_BASE_ADDR_TO1;
>>       else
>>               tzic_addr = MX51_TZIC_BASE_ADDR;
>>
>> -     tzic_virt = ioremap(tzic_addr, SZ_16K);
>> -     if (!tzic_virt)
>> -             panic("unable to map TZIC interrupt controller\n");
>> -
>> -     tzic_init_irq(tzic_virt);
>> +     tzic_init_irq(MX51_IO_ADDRESS(tzic_addr));
> arch/arm/plat-mxc/include/mach/hardware.h has a list of all SoCs with
> the memory areas mapped that you are expected to update if you add
> another mapping. If you had done that, you would have noticed that
> MX51_TZIC_BASE_ADDR (== 0xe0000000) maps to the very same address as
> MX51_DEBUG_BASE_ADDR (== 0x60000000).
> So only one of these two can be statically mapped (or the function needs
> to change).

Yes, right. But I think we can get rid of DEBUG mapping, this is
useless and no-one
use it. And I also want to clean up the following def, it is dead code.

-#define MX51_DEBUG_BASE_ADDR           0x60000000
-#define MX51_DEBUG_SIZE                        SZ_1M
-
-#define MX51_ETB_BASE_ADDR             (MX51_DEBUG_BASE_ADDR + 0x01000)
-#define MX51_ETM_BASE_ADDR             (MX51_DEBUG_BASE_ADDR + 0x02000)
-#define MX51_TPIU_BASE_ADDR            (MX51_DEBUG_BASE_ADDR + 0x03000)
-#define MX51_CTI0_BASE_ADDR            (MX51_DEBUG_BASE_ADDR + 0x04000)
-#define MX51_CTI1_BASE_ADDR            (MX51_DEBUG_BASE_ADDR + 0x05000)
-#define MX51_CTI2_BASE_ADDR            (MX51_DEBUG_BASE_ADDR + 0x06000)
-#define MX51_CTI3_BASE_ADDR            (MX51_DEBUG_BASE_ADDR + 0x07000)
-#define MX51_CORTEX_DBG_BASE_ADDR      (MX51_DEBUG_BASE_ADDR + 0x08000)

>
> Having said that it would be nice to use a static mapping for TZIC. Do
> we really need MX51_DEBUG mapped?

IMHO, I think we don't need MX51_DEBUG  mapping.

I will give one v2 patch to include the above comments if you allow.

Thanks for your review.

Jason

>
> Best regards
> Uwe
>
> --
> Pengutronix e.K.                           | Uwe Kleine-König            |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
>



More information about the linux-arm-kernel mailing list