cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
zben
Adventurer
Adventurer
9,642 Views
Registered: ‎01-29-2008

Linux on AXI architecture : Flash issues

Jump to solution

Hi all,

 

I succceed to run Linux on AXI architecture on a ML605 board, using the reference design http://www.xilinx.com/products/boards/v6embd/reference_designs.htm

 

I only change the UART16550 to an UART lite (since I use to use it on PLB architecture).

Network works pretty well with the Hard Ethernet block and DMA.

 

However I have issues regarding Flash :

  • First the latest device tree version from git://git.xilinx.com/device-tree.git is not able to create the .dts file correctly since only my AXI-Lite bus appears (my Flash is on an other AXI bus dedicated to memories). I think Xilinx will correct this soon.
  • So linnj helps me and gives me its .dts file including the memory AXI bus. So I have 2 buses in my device-tree : AXI_MM: axi@0 for my Flash and AXI_Lite: axi@1 for the rest of the system (UART, Ethernet ...).  (see http://forums.xilinx.com/xlnx/attachments/xlnx/ELINUX/3041/1/ml605_le.dts.txt )
  • However it seems that my kernel is not able to access the Flash, I have the following error : 
console [ttyUL0] enabled
of:of-flash 60000000.flash: do_map_probe() failed
Xilinx Axi Ethernet MDIO: probed

 

However it seems the Kernel succeed to parse the device tree since I have :

/proc/device-tree/axi@0/flash@60000000/

 

I have the same kernel configuration regarding my .config used with PLB architecture. With PLB and this .config I can access the Flash normally. Therefore I think there is an issue regarding Flash that may come from device-tree.

Maybe I need to put my Flash on the AXI-Lite Bus ...

I need to check the reference design (ucf and so on...) but if linnj or other user have any idea it can help me a lot.

 

Since I'm here, I noticed that XST compilation is very long to run with the AXI architecture (while it was quite fast with PLB).

Why does this appen ? Does Xilinx plans to enhance its speed

It takes near 1hour for my design, using a Intel Core2 Duo @2.40GHz with 4GB RAM and a Linux and ISE12.4.

 

Thank you for help, best regards

 

0 Kudos
1 Solution

Accepted Solutions
zben
Adventurer
Adventurer
11,179 Views
Registered: ‎01-29-2008

Hello,

 

My issue is corrected by the latest version of Xilinx tools and/or Linux kernel.

 

I use :

  • ISE/EDK/SDK 13.1 to generate a system from scratch (EDK wizard for ML605). Now the Flash is by default connected to the AXI_lite bus (without cache)
  • The latest versions of : device-tree, linux kernel and microblaze little endian tool chain

Now my Flash is well supported in my system, so for me this thread is closed.

 

However I tried to put Ethernet core (not Ethernet lite core) with interrupt and DMA but the Linux kernel is not able to manage it :

of:xilinx_axienet 79a40000.axi-ethernet: could not determine irqs
of:xilinx_axienet: probe of 79a40000.axi-ethernet failed with error -12

TCP cubic registered
NET: Registered protocol family aFreeing unused kernel memory: 4258k freed
Initializing random number generator... done.
Starting network...
ip: can't find device 'eth0'
ip: SIOCGIFFLAGS: No such device
ip: can't find device 'eth0'

Maybe it is too soon to test this core, for now I will use the default Ethernet lite core.

 

Best regards and thank you for support

 

of:xilinx_axienet 79a40000.axi-ethernet: could not determine irqs
of:xilinx_axienet: probe of 79a40000.axi-ethernet failed with error -12
TCP cubic registered
NET: Registered protocol family aFreeing unused kernel memory: 4258k freed
Initializing random number generator... done.
Starting network...
ip: can't find device 'eth0'
ip: SIOCGIFFLAGS: No such device
ip: can't find device 'eth0'

View solution in original post

0 Kudos
9 Replies
zben
Adventurer
Adventurer
9,612 Views
Registered: ‎01-29-2008

Hi,

I try to put my Flash outside the µBlaze cache range and to put it on the AXI-Lite bus (I believed that the errors comes from a device tree or cache issue).

 

But it still doesn't work.

Find in attachment my .dts file , my kernel log (with mtd debug at the maximum) and my .config for Kernel

Maybe it is an issue related to the littleendiannes of my system ...

 

Thank you for help

 

PS : my MTD related kernel options :

 

cat .config |grep -i mtd |grep -v "#"

CONFIG_MTD=y
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=3
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_OF_PARTS=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_JEDECPROBE=y
CONFIG_MTD_GEN_PROBE=y
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_CFI_AMDSTD=y
CONFIG_MTD_CFI_STAA=y
CONFIG_MTD_CFI_UTIL=y
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_PHYSMAP_COMPAT=y
CONFIG_MTD_PHYSMAP_START=0x60000000
CONFIG_MTD_PHYSMAP_LEN=0x2000000
CONFIG_MTD_PHYSMAP_BANKWIDTH=2
CONFIG_MTD_PHYSMAP_OF=y

0 Kudos
zben
Adventurer
Adventurer
9,610 Views
Registered: ‎01-29-2008

my .dts

0 Kudos
zben
Adventurer
Adventurer
9,609 Views
Registered: ‎01-29-2008

My .config

0 Kudos
zben
Adventurer
Adventurer
9,372 Views
Registered: ‎01-29-2008

Hello,

 

I have still no solution to my issue.

Even with the new git update of the device-tree from Xilinx and with new git kernel update.

 

I still don't have any Flash Memory controller in my .dts file if I put my Flash on the same AXI bus than my DDR. I can add it manually as I say without any success.

If I try to put my flash on my AXI-lite bus (with UART, Ethernet ...) Linux kernel fails to access the Flash.

 

Does anyone have ever succeed to manage a Flash memory with the AXI architecture ?

Does Xilinx is aware of this issue and does Xilinx plan to provide a solution ?

 

Best regards

0 Kudos
linnj
Xilinx Employee
Xilinx Employee
9,367 Views
Registered: ‎09-10-2008
Sorry for the delay.

I think flash works in the reference design when it's not on the lite AXI, can you replicate that?

Thanks.
0 Kudos
zben
Adventurer
Adventurer
9,344 Views
Registered: ‎01-29-2008

No problem for the delay, thank you for answer.

 

Using the reference design (http://www.xilinx.com/products/boards/v6embd/reference_designs.htm) I have quite the same issue except that kernel does not complains about : of:of-flash 60000000.flash: do_map_probe() failed

 

I still cannot access the flash using mtd tools

# mtd_debug info /dev/mtd0 
MTD_open
open(): No such device

Maybe can I perform a manual test that does not require mtd tools.

 

Can you confirm that you have the same issue with this reference design ? Maybe I have done something wrong.

FYI : I use the latest versions of device-tree and kernel for Xilinx git and ISE12.4. Still the same MTD option in my kernel configuration but maybe the issue comes from here :

CONFIG_MTD=y
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=3
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_GEN_PROBE=y
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_CFI_UTIL=y
CONFIG_MTD_COMPLEX_MAPPINGS=y
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_PHYSMAP_OF=y

 

Thank you for help, best regards

 

 

 

PS : With this reference design I have the following error that I don't have with my own design :

of:xilinx_axienet 80680000.axi-ethernet: could not determine irqs
of:xilinx_axienet: probe of 80680000.axi-ethernet failed with error -12

I don't test the network, maybe it works even with this error

 

 

0 Kudos
zben
Adventurer
Adventurer
11,180 Views
Registered: ‎01-29-2008

Hello,

 

My issue is corrected by the latest version of Xilinx tools and/or Linux kernel.

 

I use :

  • ISE/EDK/SDK 13.1 to generate a system from scratch (EDK wizard for ML605). Now the Flash is by default connected to the AXI_lite bus (without cache)
  • The latest versions of : device-tree, linux kernel and microblaze little endian tool chain

Now my Flash is well supported in my system, so for me this thread is closed.

 

However I tried to put Ethernet core (not Ethernet lite core) with interrupt and DMA but the Linux kernel is not able to manage it :

of:xilinx_axienet 79a40000.axi-ethernet: could not determine irqs
of:xilinx_axienet: probe of 79a40000.axi-ethernet failed with error -12

TCP cubic registered
NET: Registered protocol family aFreeing unused kernel memory: 4258k freed
Initializing random number generator... done.
Starting network...
ip: can't find device 'eth0'
ip: SIOCGIFFLAGS: No such device
ip: can't find device 'eth0'

Maybe it is too soon to test this core, for now I will use the default Ethernet lite core.

 

Best regards and thank you for support

 

of:xilinx_axienet 79a40000.axi-ethernet: could not determine irqs
of:xilinx_axienet: probe of 79a40000.axi-ethernet failed with error -12
TCP cubic registered
NET: Registered protocol family aFreeing unused kernel memory: 4258k freed
Initializing random number generator... done.
Starting network...
ip: can't find device 'eth0'
ip: SIOCGIFFLAGS: No such device
ip: can't find device 'eth0'

View solution in original post

0 Kudos
linnj
Xilinx Employee
Xilinx Employee
9,044 Views
Registered: ‎09-10-2008

This should not be an issue with 13.1 and axi ethernet, but I can't say testing is what it should be these days.

 

I'm asking questions to see what has been tested.

 

Sorry for the problems.

0 Kudos
linnj
Xilinx Employee
Xilinx Employee
9,025 Views
Registered: ‎09-10-2008

OK, I found the issue and reverted the top 2 commits in the device tree generator repository. You can either clone/pull it again, or do the same if you have a git repo.

 

The top 2 commits added support for AXI DMA, but broke AXI Ethernet in the process.  The root of this is that the AXI Ethernet does not use the AXI DMA driver as a sub driver, but has it's own implementation.

 

We'll have to get the AXI DMA fixed in the device tree generator, but it won't affect the AXI Ethernet.  I retested on the Xilinx reference design and didn't see an issue now.

 

Thanks for bringing that to our attention, sorry for your inconvenience.

0 Kudos