From 83000f03073890325b1ccc2f73c1b573030e0699 Mon Sep 17 00:00:00 2001 From: Mandy Lavi Date: Wed, 22 Apr 2015 00:15:26 +0900 Subject: fmd: chage IRAM_SIZE macro to depend on FMan block version Change-Id: Ia3943df8ebeca664c64782b3eb76f26dafde4fd7 Signed-off-by: Mandy Lavi Reviewed-on: http://git.am.freescale.net:8181/35431 Reviewed-by: Liron Himi Tested-by: Honghua Yin Reviewed-by: Honghua Yin diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/fm.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/fm.c index 7225ad6..16dd8aa 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/fm.c +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/fm.c @@ -397,18 +397,20 @@ static t_Error ClearIRam(t_Fm *p_Fm) { t_FMIramRegs *p_Iram; int i; + int iram_size; ASSERT_COND(p_Fm); p_Iram = (t_FMIramRegs *)UINT_TO_PTR(p_Fm->baseAddr + FM_MM_IMEM); + iram_size = FM_IRAM_SIZE(p_Fm->p_FmStateStruct->revInfo.majorRev,p_Fm->p_FmStateStruct->revInfo.minorRev); /* Enable the auto-increment */ WRITE_UINT32(p_Iram->iadd, IRAM_IADD_AIE); while (GET_UINT32(p_Iram->iadd) != IRAM_IADD_AIE) ; - for (i=0; i < (FM_IRAM_SIZE/4); i++) + for (i=0; i < (iram_size/4); i++) WRITE_UINT32(p_Iram->idata, 0xffffffff); - WRITE_UINT32(p_Iram->iadd, FM_IRAM_SIZE - 4); + WRITE_UINT32(p_Iram->iadd, iram_size - 4); CORE_MemoryBarrier(); while (GET_UINT32(p_Iram->idata) != 0xffffffff) ; diff --git a/drivers/net/ethernet/freescale/fman/inc/integrations/FMANV3H/dpaa_integration_ext.h b/drivers/net/ethernet/freescale/fman/inc/integrations/FMANV3H/dpaa_integration_ext.h index ce6fba1..7dbb9b5 100644 --- a/drivers/net/ethernet/freescale/fman/inc/integrations/FMANV3H/dpaa_integration_ext.h +++ b/drivers/net/ethernet/freescale/fman/inc/integrations/FMANV3H/dpaa_integration_ext.h @@ -213,7 +213,7 @@ typedef enum /* RAMs defines */ #define FM_MURAM_SIZE (384 * KILOBYTE) -#define FM_IRAM_SIZE ( 64 * KILOBYTE) +#define FM_IRAM_SIZE(major, minor) (64 * KILOBYTE) #define FM_NUM_OF_CTRL 4 /* PCD defines */ diff --git a/drivers/net/ethernet/freescale/fman/inc/integrations/FMANV3L/dpaa_integration_ext.h b/drivers/net/ethernet/freescale/fman/inc/integrations/FMANV3L/dpaa_integration_ext.h index 13b14b0..ced3629 100644 --- a/drivers/net/ethernet/freescale/fman/inc/integrations/FMANV3L/dpaa_integration_ext.h +++ b/drivers/net/ethernet/freescale/fman/inc/integrations/FMANV3L/dpaa_integration_ext.h @@ -213,7 +213,8 @@ typedef enum /* RAMs defines */ #define FM_MURAM_SIZE (192 * KILOBYTE) -#define FM_IRAM_SIZE (32 * KILOBYTE) +#define FM_IRAM_SIZE(major, minor) \ + (((major == 6) && ((minor == 4) )) ? (64 * KILOBYTE) : (32 * KILOBYTE)) #define FM_NUM_OF_CTRL 2 /* PCD defines */ diff --git a/drivers/net/ethernet/freescale/fman/inc/integrations/P1023/dpaa_integration_ext.h b/drivers/net/ethernet/freescale/fman/inc/integrations/P1023/dpaa_integration_ext.h index ce9c7cd..7b5390d 100644 --- a/drivers/net/ethernet/freescale/fman/inc/integrations/P1023/dpaa_integration_ext.h +++ b/drivers/net/ethernet/freescale/fman/inc/integrations/P1023/dpaa_integration_ext.h @@ -136,7 +136,7 @@ typedef enum { /* Rams defines */ #define FM_MURAM_SIZE (64*KILOBYTE) -#define FM_IRAM_SIZE (32*KILOBYTE) +#define FM_IRAM_SIZE(major, minor) (32 * KILOBYTE) #define FM_NUM_OF_CTRL 2 /* PCD defines */ diff --git a/drivers/net/ethernet/freescale/fman/inc/integrations/P3040_P4080_P5020/dpaa_integration_ext.h b/drivers/net/ethernet/freescale/fman/inc/integrations/P3040_P4080_P5020/dpaa_integration_ext.h index f4e5980..6e2b925 100644 --- a/drivers/net/ethernet/freescale/fman/inc/integrations/P3040_P4080_P5020/dpaa_integration_ext.h +++ b/drivers/net/ethernet/freescale/fman/inc/integrations/P3040_P4080_P5020/dpaa_integration_ext.h @@ -179,7 +179,7 @@ typedef enum /* Rams defines */ #define FM_MURAM_SIZE (160*KILOBYTE) -#define FM_IRAM_SIZE ( 64*KILOBYTE) +#define FM_IRAM_SIZE(major, minor) (64 * KILOBYTE) #define FM_NUM_OF_CTRL 2 /* PCD defines */ -- cgit v0.10.2