Changing PCIe related Registers (LAW, TAR, In/Outbound windows,CCSRBAR ...)

cancel
Showing results for 
Search instead for 
Did you mean: 

Changing PCIe related Registers (LAW, TAR, In/Outbound windows,CCSRBAR ...)

197 Views
Contributor I

On T1042D4-64B demo board, what is the way of changing PCIe related Registers I mentioned in the header(PEX registers)?

I want to make a new configuration for EP device because there is unlogged deadlocks on U-boot console (It hangs) when I plug EP device with its driver.

As I read in the documentation of T1040RM,

2.5.3.1 Illegal Interaction Between Inbound ATMUs and LAWs
Since both local access windows and inbound ATMUs map transactions to a target
interface, it is essential that they not contradict one another.
For example, it is considered a programming error to have an inbound ATMU map a
transaction target to the local memory space if the resulting translated local address is
mapped to an external peripheral interface by a local access window. Such programming
errors may result in unpredictable system deadlocks.

I think this causes my problem.

Labels (1)
0 Kudos
5 Replies

9 Views
NXP TechSupport
NXP TechSupport

Hello Ahmet Demir,

In u-boot header file, please modify the memory map in include/configs/T104xRDB.h to enlarge memory size in the following part to enlarge LAW and TLB configuration to support your PCIe EP device.

#ifdef CONFIG_PCIE1
#define CONFIG_SYS_PCIE1_MEM_VIRT       0x80000000
#define CONFIG_SYS_PCIE1_MEM_BUS        0xe0000000
#define CONFIG_SYS_PCIE1_MEM_PHYS       0xc00000000ull
#define CONFIG_SYS_PCIE1_MEM_SIZE       0x10000000      /* 256M */    ------>0x20000000
#define CONFIG_SYS_PCIE1_IO_VIRT        0xf8000000
#define CONFIG_SYS_PCIE1_IO_BUS         0x00000000
#define CONFIG_SYS_PCIE1_IO_PHYS        0xff8000000ull
#define CONFIG_SYS_PCIE1_IO_SIZE        0x00010000      /* 64k */        --------->0x00020000
#endif

Thanks,

Yiping

0 Kudos

9 Views
Contributor I

Hello yipingwang‌,

Thank you for the answer, Should I also change linux device tree too ?

Regards.

0 Kudos

9 Views
NXP TechSupport
NXP TechSupport

Yes, you also need to modify Linux device tree.

Thanks,

Yiping

0 Kudos

9 Views
Contributor I

Hello Mr. Wang, 

Which variable is responsible to change physical memory adress on endpoint device? (Not size, I mean start adress) and is there any way to change whole system memory map? 

#ifdef CONFIG_PCIE1
#define CONFIG_SYS_PCIE1_MEM_VIRT       0x80000000
#define CONFIG_SYS_PCIE1_MEM_BUS        0xe0000000
#define CONFIG_SYS_PCIE1_MEM_PHYS       0xc00000000ull
#define CONFIG_SYS_PCIE1_MEM_SIZE       0x10000000      /* 256M */    ------>0x20000000
#define CONFIG_SYS_PCIE1_IO_VIRT        0xf8000000
#define CONFIG_SYS_PCIE1_IO_BUS         0x00000000
#define CONFIG_SYS_PCIE1_IO_PHYS        0xff8000000ull
#define CONFIG_SYS_PCIE1_IO_SIZE        0x00010000      /* 64k */        --------->0x00020000
#endif

0 Kudos

9 Views
Contributor I

Is it possible with CodeWarrior? I need to know that. 

0 Kudos