> -----Original Message-----
> From: Prafulla Wadaskar [mailto:[email protected]] 
> Sent: Monday, September 20, 2010 9:40 PM
> To: [email protected]
> Cc: Prabhanjan Sarnaik; Ashish Karkare; Prafulla Wadaskar; 
> Prafulla Wadaskar
> Subject: [PATCH v2] Kirkwood: print_cpuinfo fixed for valid 
> devid revid
> 
> From: Prafulla Wadaskar <[[email protected]]>
> 
> Earlier Device Identification register was used to detect
> the type for SoC, considering 88F6282 support to be added,
> It is not possible to detect the same using current
> algorithm.
> 
> With this patch, device ID is being read using PCIE devid
> register, also valid chip revision ID will also be read and
> displayed
> 
> Signed-off-by: Prafulla Wadaskar <[email protected]>
> ---
> Change log:
> v2: Updated as per review comments for V1
>       debug replaced by printf, sprintf removed
>       (??) kept as it is since we dont know future references 
> for revid
> 
>  arch/arm/cpu/arm926ejs/kirkwood/cpu.c    |   34 
> ++++++++++++++++++++---------
>  arch/arm/include/asm/arch-kirkwood/cpu.h |    2 +
>  2 files changed, 25 insertions(+), 11 deletions(-)
> 
> diff --git a/arch/arm/cpu/arm926ejs/kirkwood/cpu.c 
> b/arch/arm/cpu/arm926ejs/kirkwood/cpu.c
> index 82c978b..b4a4c04 100644
> --- a/arch/arm/cpu/arm926ejs/kirkwood/cpu.c
> +++ b/arch/arm/cpu/arm926ejs/kirkwood/cpu.c
> @@ -54,10 +54,11 @@ unsigned char get_random_hex(void)
>       u8 outbuf[BUFLEN];
>  
>       /*
> -      * in case of 88F6281/88F6192 A0,
> +      * in case of 88F6281/88F6282/88F6192 A0,
>        * Bit7 need to reset to generate random values in 
> KW_REG_UNDOC_0x1470
> -      * Soc reg offsets KW_REG_UNDOC_0x1470 and 
> KW_REG_UNDOC_0x1478 are reserved regs and
> -      * Does not have names at this moment (no errata available)
> +      * Soc reg offsets KW_REG_UNDOC_0x1470 and 
> KW_REG_UNDOC_0x1478 are
> +      * reserved regs and does not have names at this moment
> +      * (no errata available)
>        */
>       writel(readl(KW_REG_UNDOC_0x1478) & ~(1 << 7), 
> KW_REG_UNDOC_0x1478);
>       for (i = 0; i < BUFLEN; i++) {
> @@ -271,20 +272,31 @@ static void kw_sysrst_check(void)
>  #if defined(CONFIG_DISPLAY_CPUINFO)
>  int print_cpuinfo(void)
>  {
> -     char *name = "Unknown";
> +     char *rev;
> +     u16 devid = (readl(KW_REG_PCIE_DEVID) >> 16) & 0xffff;
> +     u8 revid = readl(KW_REG_PCIE_REVID) & 0xff;
>  
> -     switch (readl(KW_REG_DEVICE_ID) & 0x03) {
> -     case 1:
> -             name = "88F6192_A0";
> +     if ((readl(KW_REG_DEVICE_ID) & 0x03) > 2) {
> +             printf("Error.. %s:Unsupported Kirkwood SoC 
> 88F%04x\n", __FUNCTION__, devid);
> +             return -1;
> +     }
> +
> +     switch (revid) {
> +     case 0:
> +             rev = "Z0";
>               break;
>       case 2:
> -             name = "88F6281_A0";
> +             rev = "A0";
> +             break;
> +     case 3:
> +             rev = "A1";
>               break;
>       default:
> -             printf("SoC:   Unsupported Kirkwood\n");
> -             return -1;
> +             rev = "??";
> +             break;
>       }
> -     printf("SoC:   Kirkwood %s\n", name);
> +
> +     printf("SoC:   Kirkwood 88F%04x_%s\n", devid, rev);
>       return 0;
>  }
>  #endif /* CONFIG_DISPLAY_CPUINFO */
> diff --git a/arch/arm/include/asm/arch-kirkwood/cpu.h 
> b/arch/arm/include/asm/arch-kirkwood/cpu.h
> index b3022a3..d28c51a 100644
> --- a/arch/arm/include/asm/arch-kirkwood/cpu.h
> +++ b/arch/arm/include/asm/arch-kirkwood/cpu.h
> @@ -35,6 +35,8 @@
>  #define KWGBE_PORT_SERIAL_CONTROL1_REG(_x)   \
>               ((_x ? KW_EGIGA0_BASE : KW_EGIGA1_BASE) + 0x44c)
>  
> +#define KW_REG_PCIE_DEVID            (KW_REG_PCIE_BASE + 0x00)
> +#define KW_REG_PCIE_REVID            (KW_REG_PCIE_BASE + 0x08)
>  #define KW_REG_DEVICE_ID             (KW_MPP_BASE + 0x34)
>  #define KW_REG_SYSRST_CNT            (KW_MPP_BASE + 0x50)
>  #define SYSRST_CNT_1SEC_VAL          (25*1000000)
> -- 


Applied to u-boot-marvell.git master branch

Regards..
Prafulla . .
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to