T1042/T2080 u-boot移植(三):CPLD不能访问问题解决

u-boot起来之后,准备测试下板上的外设,包括CCSR,PCIE ,CPLD空间能否正常访问,因为phy的解复位由CPLD完成,所以CPLD 必须正常访问,而实际测试过程中发现CPLD无法正常访问。

Cpld地址为ffd00000

  1. boot下访问直接导致u-boot重启

提示错误如下:

=> md 0xffd00000

ffd00000:Machine check in kernel mode.

Caused by (from mcsr): mcsr = 0x0000a000

NIP: 7FF3B564 XER: 00000000 LR: 7FF3B53C REGS: 7faedb40 TRAP: 0200 DAR: 00000000

MSR: 00029200 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 00

 

GPR00: 7FF3B53C 7FAEDC30 7FAEDEF8 00000009 0000003A 00000030 00000020 FFFFFFFE

GPR08: 00000000 00000020 FFD00000 7FAEDC30 7FEFE444 00000000 00000004 00000000

GPR16: 00000004 7FF53478 00000000 0000002E FFFFFF97 7FF435BC 7FF4D1F4 7FF53470

GPR24: 7FF47C6C 00000009 00000008 FFD00000 FFD00000 00000040 7FF57950 00000004

MCSR=0x0000a000         MCSRR0=0x7ff3b564

MCSRR1=0x00029200       MCAR=0x00000000

Call backtrace:

7FF3B53C 7FEFE490 7FF16308 7FF06908 7FF070C8 7FF07178 7FF14C84

7FF04A6C 7FF07A38 7FF34A04 7FF07D70 7FEF1050

Skipping current instr, Returning to 0x7ff3b568

 00000030Machine check in kernel mode.

Caused by (from mcsr): mcsr = 0x0000a000

 

=> reginfo

TLBCAM entries

entry 00: V: 1 EPN 0xfffff000 RPN 0x7ffff000 size:4 KiB

entry 01: V: 1 EPN 0xfe000000 RPN 0xffe000000 size:16 MiB

entry 02: V: 1 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 03: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 04: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 05: V: 1 EPN 0xf4000000 RPN 0xff4000000 size:16 MiB

entry 06: V: 1 EPN 0xf5000000 RPN 0xff5000000 size:16 MiB

entry 07: V: 1 EPN 0xf6000000 RPN 0xff6000000 size:16 MiB

entry 08: V: 1 EPN 0xf7000000 RPN 0xff7000000 size:16 MiB

entry 09: V: 1 EPN 0xf0000000 RPN 0xf00000000 size:4 MiB

entry 10: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 11: V: 1 EPN 0xffd00000 RPN 0xfffd00000 size:256 KiB

entry 12: V: 1 EPN 0x00000000 RPN 0x00000000 size:1 GiB

entry 13: V: 1 EPN 0x40000000 RPN 0x40000000 size:1 GiB

entry 14: V: 0 EPN 0x00000000 RPN 0x00000000 size:4 KiB

entry 15: V: 0 EPN 0x00000000 RPN 0x00000000 size:4 KiB

entry 16: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 17: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 18: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 19: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 20: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 21: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 22: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 23: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 24: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 25: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 26: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 27: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 28: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 29: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 30: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 31: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 32: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 33: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 34: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 35: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 36: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 37: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 38: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 39: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 40: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 41: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 42: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 43: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 44: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 45: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 46: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 47: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 48: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 49: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 50: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 51: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 52: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 53: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 54: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 55: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 56: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 57: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 58: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 59: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 60: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 61: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 62: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

entry 63: V: 0 EPN 0x30000000 RPN 0x30000000 size:4 KiB

 

Local Access Window Configuration

LAWBARH00: 0x0000000f LAWBARL00: 0xf4000000 LAWAR00: 0x81800018

        (EN: 1 TGT: 0x18 SIZE: 32 MiB)

LAWBARH01: 0x0000000f LAWBARL01: 0xf6000000 LAWAR01: 0x83c00018

        (EN: 1 TGT: 0x3c SIZE: 32 MiB)

LAWBARH02: 0x0000000f LAWBARL02: 0xffd00000 LAWAR02: 0x81f00010

        (EN: 1 TGT: 0x1f SIZE: 128 KiB)

LAWBARH03: 0x0000000f LAWBARL03: 0x00000000 LAWAR03: 0x81d00015

        (EN: 1 TGT: 0x1d SIZE: 4 MiB)

LAWBARH04: 0x00000000 LAWBARL04: 0x00000000 LAWAR04: 0x00000000

        (EN: 0 TGT: 0x00 SIZE: 2 Bytes)

LAWBARH05: 0x00000000 LAWBARL05: 0x00000000 LAWAR05: 0x00000000

        (EN: 0 TGT: 0x00 SIZE: 2 Bytes)

LAWBARH06: 0x00000000 LAWBARL06: 0x00000000 LAWAR06: 0x00000000

        (EN: 0 TGT: 0x00 SIZE: 2 Bytes)

LAWBARH07: 0x00000000 LAWBARL07: 0x00000000 LAWAR07: 0x00000000

        (EN: 0 TGT: 0x00 SIZE: 2 Bytes)

LAWBARH08: 0x00000000 LAWBARL08: 0x00000000 LAWAR08: 0x00000000

        (EN: 0 TGT: 0x00 SIZE: 2 Bytes)

LAWBARH09: 0x00000000 LAWBARL09: 0x00000000 LAWAR09: 0x00000000

        (EN: 0 TGT: 0x00 SIZE: 2 Bytes)

LAWBARH10: 0x00000000 LAWBARL10: 0x00000000 LAWAR10: 0x00000000

        (EN: 0 TGT: 0x00 SIZE: 2 Bytes)

LAWBARH11: 0x00000000 LAWBARL11: 0x00000000 LAWAR11: 0x00000000

        (EN: 0 TGT: 0x00 SIZE: 2 Bytes)

LAWBARH12: 0x00000000 LAWBARL12: 0x00000000 LAWAR12: 0x00000000

        (EN: 0 TGT: 0x00 SIZE: 2 Bytes)

LAWBARH13: 0x00000000 LAWBARL13: 0x00000000 LAWAR13: 0x00000000

        (EN: 0 TGT: 0x00 SIZE: 2 Bytes)

LAWBARH14: 0x00000000 LAWBARL14: 0x00000000 LAWAR14: 0x00000000

        (EN: 0 TGT: 0x00 SIZE: 2 Bytes)

LAWBARH15: 0x00000000 LAWBARL15: 0x00000000 LAWAR15: 0x8100001e

        (EN: 1 TGT: 0x10 SIZE: 2 GiB)

IFC Controller Registers

CSPR0:0xFFD00105        AMASK0:0xFFFF0000       CSOR0:0x00020181

IFC_FTIM0:0x10040004

IFC_FTIM1:0x01001800

IFC_FTIM2:0x01100040

IFC_FTIM3:0x00000000

CSPR1:0x00000000        AMASK1:0x00000000       CSOR1:0x0000000C

IFC_FTIM0:0x00000000

IFC_FTIM1:0x00000000

IFC_FTIM2:0x00000000

IFC_FTIM3:0x00000000

CSPR2:0x00000000        AMASK2:0x00000000       CSOR2:0x0000000C

IFC_FTIM0:0x00000000

IFC_FTIM1:0x00000000

IFC_FTIM2:0x00000000

IFC_FTIM3:0x00000000

CSPR3:0x00000000        AMASK3:0x00000000       CSOR3:0x0000000C

IFC_FTIM0:0x00000000

IFC_FTIM1:0x00000000

IFC_FTIM2:0x00000000

IFC_FTIM3:0x00000000

CSPR4:0x00000000        AMASK4:0x00000000       CSOR4:0x0000000C

IFC_FTIM0:0x00000000

IFC_FTIM1:0x00000000

IFC_FTIM2:0x00000000

IFC_FTIM3:0x00000000

CSPR5:0x00000000        AMASK5:0x00000000       CSOR5:0x0000000C

IFC_FTIM0:0x00000000

IFC_FTIM1:0x00000000

IFC_FTIM2:0x00000000

IFC_FTIM3:0x00000000

CSPR6:0x00000000        AMASK6:0x00000000       CSOR6:0x0000000C

IFC_FTIM0:0x00000000

解决思路:

CPLD 可以访问了,根本原因我现在使用36bit物理地址,所以下面宏必须要打开


#define CONFIG_SYS_CPLD_BASE        0xffd00000
#ifdef CONFIG_ENABLE_36BIT_PHYS
#define CONFIG_SYS_CPLD_BASE_PHYS    (0xf00000000ull | CONFIG_SYS_CPLD_BASE)
#else
#define CONFIG_SYS_CPLD_BASE_PHYS    CONFIG_SYS_CPLD_BASE
#endif
#define  CONFIG_SYS_CSPR0_EXT        (0x0f)
#define CONFIG_SYS_CSPR0            (CSPR_PHYS_ADDR(CONFIG_SYS_CPLD_BASE_PHYS) \
                                        | CSPR_PORT_SIZE_16 \
                                        | CSPR_MSEL_GPCM | CSPR_V)
#define CONFIG_SYS_AMASK0        IFC_AMASK(64*1024)
#define CONFIG_SYS_CSOR0        0x00020181

/* CPLD Timing parameters for IFC CS0 */
#define CONFIG_SYS_CS0_FTIM0        0x10040004
#define CONFIG_SYS_CS0_FTIM1        0x01001800
#define CONFIG_SYS_CS0_FTIM2        0x01100040
#define CONFIG_SYS_CS0_FTIM3        0x00000000

各类问题欢迎进群讨论:QQ群:245079182

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值