UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor andreslc47
Visitor
2,813 Views
Registered: ‎06-19-2012

Problem with lltemac driver of Linux using MicroBlaze

Hello everybody,

 

I'm using EDK 12.1 to embed Linux on the Xilinx ML505 board.

I could get the embedded linux command line in the serial interface but I couldn't get the Hard Ethernet MAC working in Linux.

 

I followed this tutorial:

http://xilinx.wikidot.com/microblaze-linux

 

My Default kernel command string is:

console=ttyUL0 root=/dev/ram ip=on

 

My Initramfs source file is:

initramfs_minimal.cpio.gz

 

 

Microblaze kernel configuration is:

 

#
# Definitions for MICROBLAZE0
#
CONFIG_KERNEL_BASE_ADDR=0X50000000
CONFIG_XILINX_MICROBLAZE0_FAMILY="virtex5"
CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1
CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR=1
CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1
CONFIG_XILINX_MICROBLAZE0_USE_DIV=1
CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL=2
CONFIG_XILINX_MICROBLAZE0_USE_FPU=2
CONFIG_XILINX_MICROBLAZE0_HW_VER="7.30.a"

 

 

The boot process is:

 

Early console on uartlite at 0x84000000                                                         

bootconsole [earlyser0] enabled                                                                 

Ramdisk addr 0x0000003f, Compiled-in FDT at 0xc028c2c0                                          

Linux version 3.6.0-dirty (root@Workstation) (gcc version 4.6.2 20111018 (prerelease) (crosstool-NG 1.14.1) ) #9 Fri Apr 5 15:14:01 PET 2013

setup_cpuinfo: initialising

setup_cpuinfo: Using full CPU PVR support

cache: wt_msr_noirq

setup_memory: max_mapnr: 0x10000

setup_memory: min_low_pfn: 0x50000

setup_memory: max_low_pfn: 0x60000

setup_memory: max_pfn: 0x60000

Zone ranges:

  DMA      [mem 0x50000000-0x5fffffff]

  Normal   empty

Movable zone start for each node

Early memory node ranges

  node   0: [mem 0x50000000-0x5fffffff]

On node 0 totalpages: 65536

free_area_init_node: node 0, pgdat c0358fb4, node_mem_map c0500000

  DMA zone: 512 pages used for memmap

  DMA zone: 0 pages reserved

  DMA zone: 65024 pages, LIFO batch:15

early_printk_console remapping from 0x84000000 to 0xffffd000

pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768

pcpu-alloc: [0] 0

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024

Kernel command line: console=ttyUL0 root=/dev/ram ip=192.168.1.47

PID hash table entries: 1024 (order: 0, 4096 bytes)

Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)

Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)

Memory: 255068k/262144k available (3320k kernel code, 7076k reserved, 110k data, 169k bss, 908k init)

Kernel virtual memory layout:

  * 0xffffe000..0xfffff000  : fixmap

  * 0xffffd000..0xffffe000  : early ioremap

  * 0xf0000000..0xffffd000  : vmalloc & ioremap

NR_IRQS:33

interrupt-controller #0 at 0xf0000000, num_irq=6, edge=0x28

No chosen timer found, using default

timer #0 at 0xf0002000, irq=3

microblaze_timer_set_mode: shutdown

microblaze_timer_set_mode: periodic

Calibrating delay loop... 61.84 BogoMIPS (lpj=309248)

pid_max: default: 4096 minimum: 301

Mount-cache hash table entries: 512

NET: Registered protocol family 16

bio: create slab <bio-0> at 0

Switching to clocksource microblaze_clocksource

NET: Registered protocol family 2

TCP established hash table entries: 8192 (order: 4, 65536 bytes)

TCP bind hash table entries: 8192 (order: 5, 163840 bytes)

TCP: Hash tables configured (established 8192 bind 8192)

TCP: reno registered

UDP hash table entries: 128 (order: 0, 6144 bytes)

UDP-Lite hash table entries: 128 (order: 0, 6144 bytes)

NET: Registered protocol family 1

RPC: Registered named UNIX socket transport module.

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

RPC: Registered tcp NFSv4.1 backchannel transport module.

OF: no ranges; cannot translate

OF: no ranges; cannot translate

msgmni has been set to 498

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

84000000.serial: ttyUL0 at MMIO 0x84000000 (irq = 5) is a uartlite

console [ttyUL0] enabled, bootconsole disabled

console [ttyUL0] enabled, bootconsole disabled

brd: module loaded

Device Tree Probing 'ethernet'

OF: no ranges; cannot translate

xilinx_lltemac ethernet.2: invalid address

xilinx_lltemac: probe of ethernet.2 failed with error -22

TCP: cubic registered

NET: Registered protocol family 1wFreeing unused kernel memory: 908k freed

Starting rcS...

++ Creating device points

++ Mounting filesystem

++ Loading system loggers

++ Starting telnet daemon

rcS Complete

/bin/sh: can't access tty; job control turned off

/ #

 

I don't understand what cause this problem.
I tried many ways to workaround this problem like changing the "Default kernel command string" putting ip=192.168.1.10 or ip=dhcp, using the old linux kernel and applying a patch in the dts. In spite of this changes, I couldn't get the ethernet interface working correctly.
 
Is there someone who had a similar problem and got a solution?.
I need some help.
 
 
Andres.
 
 
 
 

 

 

 

 

 

 

 

 

 

 

 

0 Kudos
2 Replies
Adventurer
Adventurer
2,777 Views
Registered: ‎01-29-2008

Re: Problem with lltemac driver of Linux using MicroBlaze

Your device tree is probably not good.

You should post it to and maybe we can help

0 Kudos
Visitor djungewelter
Visitor
1,204 Views
Registered: ‎01-04-2013

Re: Problem with lltemac driver of Linux using MicroBlaze

I am running in the same Problem right now with a propritary board and a Spartan3AN. I use ISE 14.7 System Suite and the tag linux-xlnx-v14.7 out of the linux-xlnx git repository

 

This is the kernel boot:

[    0.000000] bootconsole [earlyser0] enabled
[    0.000000] Ramdisk addr 0x0000002e,
[    0.000000] Compiled-in FDT at 0x1c32a248
[    0.000000] Oops: kernel access of bad area, sig: 11
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.10.0 #41
[    0.000000] task: 1c40d2b8 ti: 1c402000 task.ti: 1c402000
[    0.000000]  Registers dump: mode=1C403E94
[    0.000000]  r1=1C40C000, r2=1C401AB8, r3=113FF000, r4=113FF000
[    0.000000]  r5=113FF000, r6=00000000, r7=00000FFF, r8=11400000
[    0.000000]  r9=00001000, r10=00000001, r11=00000000, r12=10000000
[    0.000000]  r13=54C72D20, r14=00001000, r15=1C3213A0, r16=00000000
[    0.000000]  r17=1C1F55F8, r18=00000000, r19=113FF000, r20=00000000
[    0.000000]  r21=00000000, r22=1C40C1C0, r23=1C40C000, r24=10000000
[    0.000000]  r25=1C32A248, r26=00000000, r27=00000000, r28=00000000
[    0.000000]  r29=00400000, r30=00000300, r31=1C40D2B8, rPC=1C1F55F8
[    0.000000]  msr=00004600, ear=113FF000, esr=000004D2, fsr=1C329E44
[    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
[    0.000000] Early console on uartlite at 0x40030000
[    0.000000] bootconsole [earlyser0] enabled
[    0.000000] Ramdisk addr 0x00000039,
[    0.000000] Compiled-in FDT at 0x1c32ad38
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.10.0 (djungewelter@kahoolawe) (gcc version 4.6.4 20120924 (Xilinx 14.1 Build EDK_P.13 28 Sep 2013) (crosstool-NG 1.18.0) ) #42 Tue Sep 1 17:40:00 CEST 2015
[    0.000000] setup_cpuinfo: initialising
[    0.000000] setup_cpuinfo: Using full CPU PVR support
[    0.000000] wt_msr_noirq
[    0.000000] setup_memory: max_mapnr: 0x10000
[    0.000000] setup_memory: min_low_pfn: 0x10000
[    0.000000] setup_memory: max_low_pfn: 0x20000
[    0.000000] setup_memory: max_pfn: 0x20000
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x10000000-0x1fffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x10000000-0x1fffffff]
[    0.000000] On node 0 totalpages: 65536
[    0.000000] free_area_init_node: node 0, pgdat 1c425a38, node_mem_map 1d0ad000
[    0.000000]   DMA zone: 512 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 65536 pages, LIFO batch:15
[    0.000000] early_printk_console remapping from 0x40030000 to 0xffffd000
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyS0,115200n8 console=ttyUL0,115200n8 root=/dev/ram
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Sorting __ex_table...
[    0.000000] Memory: 242516k/262144k available (4104k kernel code, 19628k reserved, 145k data, 587k bss, 12223k init)
[    0.000000] Kernel virtual memory layout:
[    0.000000]   * 0xffffe000..0xfffff000  : fixmap
[    0.000000]   * 0xffffd000..0xffffe000  : early ioremap
[    0.000000]   * 0x4c000000..0xffffd000  : vmalloc & ioremap
[    0.000000] NR_IRQS:33
[    0.000000] /plb@0/interrupt-controller@40020000: num_irq=7, edge=0x3f
[    0.000000] /plb@0/timer@40070000: irq=1
[    0.000000] xilinx_timer_set_mode: shutdown
[    0.000000] xilinx_timer_set_mode: periodic
[    0.149139] Calibrating delay loop... 1.10 BogoMIPS (lpj=5536)
[    0.305080] pid_max: default: 32768 minimum: 301
[    0.570092] Mount-cache hash table entries: 512
[   12.597979] device: 'platform': device_add
[   12.687290] bus: 'platform': registered
[   12.773356] bus: 'cpu': registered
[   12.783440] device: 'cpu': device_add
[   12.800028] device: 'cpu0': device_add
[   12.809293] bus: 'cpu': add device cpu0
[   13.119276] bus: 'workqueue': registered
[   13.130011] device: 'workqueue': device_add
[   13.280578] NET: Registered protocol family 16
[   13.369345] device class 'bdi': registering
[   13.477150] device class 'tty': registering
[   17.086072] device: 'writeback': device_add
[   17.095523] bus: 'workqueue': add device writeback
[   17.119851] device: 'default': device_add
[   17.259994] bio: create slab <bio-0> at 0
[   17.403088] device class 'block': registering
[   17.509280] device class 'misc': registering
[   17.588575] device class 'mdio_bus': registering
[   17.744150] bus: 'mdio_bus': registered
[   17.749164] bus: 'mdio_bus': add driver Generic PHY
[   17.920108] bus: 'serio': registered
[   17.926041] device class 'input': registering
[   18.144925] device class 'net': registering
[   18.295135] device: 'lo': device_add
[   18.649990] Switching to clocksource xilinx_clocksource
[   18.786882] device class 'mem': registering
[   18.866508] device: 'mem': device_add
[   18.953278] device: 'null': device_add
[   19.035496] device: 'zero': device_add
[   19.117076] device: 'full': device_add
[   19.199906] device: 'random': device_add
[   19.284001] device: 'urandom': device_add
[   19.391259] device: 'kmsg': device_add
[   19.477418] device: 'tty': device_add
[   19.565421] device: 'console': device_add
[   19.644604] device class 'firmware': registering
[   19.907550] NET: Registered protocol family 2
[   20.376137] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[   20.440371] TCP bind hash table entries: 2048 (order: 3, 40960 bytes)
[   20.478760] TCP: Hash tables configured (established 2048 bind 2048)
[   21.017614] TCP: reno registered
[   21.024231] UDP hash table entries: 256 (order: 1, 12288 bytes)
[   21.040502] UDP-Lite hash table entries: 256 (order: 1, 12288 bytes)
[   21.296885] NET: Registered protocol family 1
[   76.412960] device: 'plb.0': device_add
[   76.422449] bus: 'platform': add device plb.0
[   76.514069] device: '40060000.mb-fpga-info': device_add
[   76.524905] bus: 'platform': add device 40060000.mb-fpga-info
[   76.613320] device: 'mpmc.1': device_add
[   76.622399] bus: 'platform': add device mpmc.1
[   76.718199] device: '40030000.serial': device_add
[   76.729434] bus: 'platform': add device 40030000.serial
[   76.823536] device: '40080000.vsc3008-3308-config-interface': device_add
[   76.836575] bus: 'platform': add device 40080000.vsc3008-3308-config-interface
[   76.935097] device: '40020000.interrupt-controller': device_add
[   76.947211] bus: 'platform': add device 40020000.interrupt-controller
[   77.043965] device: '40040000.xps-interfpga': device_add
[   77.054904] bus: 'platform': add device 40040000.xps-interfpga
[   77.155391] device: 'xps-ll-temac.2': device_add
[   77.178216] bus: 'platform': add device xps-ll-temac.2
[   77.263558] OF: no ranges; cannot translate
[   77.276606] OF: no ranges; cannot translate
[   77.286301] device: 'ethernet.3': device_add
[   77.295879] bus: 'platform': add device ethernet.3
[   77.393583] device: '20000000.flash': device_add
[   77.403619] bus: 'platform': add device 20000000.flash
[   77.501200] device: '40070000.timer': device_add
[   77.511220] bus: 'platform': add device 40070000.timer
[   77.590050] Skipping unavailable RESET gpio -2 (reset)
[   77.780300] bus: 'clocksource': registered
[   77.791352] device: 'clocksource': device_add
[   77.803660] device: 'clocksource0': device_add
[   77.813487] bus: 'clocksource': add device clocksource0
[   77.906785] bus: 'platform': add driver alarmtimer
[   77.991123] Registering platform device 'alarmtimer'. Parent at platform
[   78.001532] device: 'alarmtimer': device_add
[   78.011053] bus: 'platform': add device alarmtimer
[   78.084717] bus: 'platform': driver_probe_device: matched device alarmtimer with driver alarmtimer
[   78.097158] bus: 'platform': really_probe: probing driver alarmtimer with device alarmtimer
[   78.113044] driver: 'alarmtimer': driver_bound: bound to device 'alarmtimer'
[   78.123613] bus: 'platform': really_probe: bound device alarmtimer to driver alarmtimer
[   78.250987] audit: initializing netlink socket (disabled)
[   78.311540] type=2000 audit(696.670:1): initialized
[   79.173925] ROMFS MTD (C) 2007 Red Hat, Inc.
[   79.204867] msgmni has been set to 473
[   80.190195] io scheduler noop registered
[   80.195331] io scheduler deadline registered
[   80.216360] io scheduler cfq registered (default)
[   80.310428] bus: 'platform': add driver uartlite
[   80.338235] bus: 'platform': driver_probe_device: matched device 40030000.serial with driver uartlite
[   80.351232] bus: 'platform': really_probe: probing driver uartlite with device 40030000.serial
[   80.370749] 40030000.serial: ttyUL0 at MMIO 0x40030000 (irq = 2) is a uartlite
[   80.381838] console [ttyUL0] enabled, bootconsole disabled
[   80.381838] console [ttyUL0] enabled, bootconsole disabled
[   80.402418] device: 'ttyUL0': device_add
[   80.505818] driver: '40030000.serial': driver_bound: bound to device 'uartlite'
[   80.516915] bus: 'platform': really_probe: bound device 40030000.serial to driver uartlite
[   80.644086] device: 'ttyprintk': device_add
[   81.531184] device: '1:0': device_add
[   81.612237] device: 'ram0': device_add
[   81.775266] device: '1:1': device_add
[   81.857148] device: 'ram1': device_add
[   82.007407] device: '1:2': device_add
[   82.089827] device: 'ram2': device_add
[   82.240828] device: '1:3': device_add
[   82.337109] device: 'ram3': device_add
[   82.474599] device: '1:4': device_add
[   82.570717] device: 'ram4': device_add
[   82.707883] device: '1:5': device_add
[   82.791148] device: 'ram5': device_add
[   82.942970] device: '1:6': device_add
[   83.024818] device: 'ram6': device_add
[   83.190650] device: '1:7': device_add
[   83.272472] device: 'ram7': device_add
[   83.424381] device: '1:8': device_add
[   83.506083] device: 'ram8': device_add
[   83.657826] device: '1:9': device_add
[   83.741025] device: 'ram9': device_add
[   83.892580] device: '1:10': device_add
[   84.002216] device: 'ram10': device_add
[   84.271920] device: '1:11': device_add
[   84.374091] device: 'ram11': device_add
[   84.531093] device: '1:12': device_add
[   84.614000] device: 'ram12': device_add
[   84.772231] device: '1:13': device_add
[   84.855649] device: 'ram13': device_add
[   85.012942] device: '1:14': device_add
[   85.095691] device: 'ram14': device_add
[   85.253803] device: '1:15': device_add
[   85.336859] device: 'ram15': device_add
[   85.475997] brd: module loaded
[   85.481616] device class 'mtd': registering
[   85.585897] device: 'mtd-unmap': device_add
[   85.686733] device: 'mtd-romap': device_add
[   85.773563] device: 'mtd-rwmap': device_add
[   85.882330] bus: 'mdio_bus': add driver Vitesse VSC8244
[   85.960747] bus: 'mdio_bus': add driver Vitesse VSC8221
[   86.038034] bus: 'platform': add driver xilinx_lltemac
[   86.077413] bus: 'platform': driver_probe_device: matched device ethernet.3 with driver xilinx_lltemac
[   86.090506] bus: 'platform': really_probe: probing driver xilinx_lltemac with device ethernet.3
[   86.106281] Device Tree Probing 'ethernet'
[   86.114417] OF: no ranges; cannot translate
[   86.122343] xilinx_lltemac ethernet.3: invalid address
[   86.132199] xilinx_lltemac: probe of ethernet.3 failed with error -22
[   86.212894] device class 'uio': registering
[   86.288254] Oops: kernel access of bad area, sig: 11
[   86.295500] CPU: 0 PID: 1 Comm: swapper Not tainted 3.10.0 #42
[   86.303298] task: 2b830be0 ti: 2b834000 task.ti: 2b834000
[   86.310012]  Registers dump: mode=1F835DF0
[   86.315977]  r1=00000000, r2=00000000, r3=00006502, r4=00000000
[   86.323995]  r5=1C4208F0, r6=2919A300, r7=0000006F, r8=1C40E600
[   86.331830]  r9=00000000, r10=00000000, r11=00000000, r12=00000000
[   86.340092]  r13=00000000, r14=1C01446C, r15=1C25F508, r16=00000000
[   86.348520]  r17=1C25F558, r18=7FFFFF90, r19=00000011, r20=1C321BB0
[   86.356774]  r21=00000000, r22=00000000, r23=00000002, r24=00006502
[   86.365012]  r25=00000000, r26=00000048, r27=00000000, r28=00000000
[   86.373357]  r29=00000000, r30=00000000, r31=2B830BE0, rPC=1C25F558
[   86.381721]  msr=00004600, ear=00000064, esr=000002F2, fsr=1C43C3C4
[   86.393438] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[   86.393438]

And i'm quit sure, that it's an issue of the device tree generator v2.1.0 that is unfortunatly not any longer available in any xilinx site or git repository.

I fetched it from another website... cannot remember unfortunatly.

There must be a missing argument for the ll_temac instance, but i cannot find it.

I already added a missing line "xlnx, kind-of-intr = " for the xps_timer instance. This lead into hang on Calibrating delay loop.

 

My questions now:

1) Am I right that it's an issue of the DTS?

2) Where/What is the newest and hopefully working device tree generator for ISE 14.7?

or at least

What is the missing argument in the DTS for ll_temac?

 

My DTS:

/*
 * Device Tree Generator version: 1.3
 *
 * (C) Copyright 2007-2008 Xilinx, Inc.
 * (C) Copyright 2007-2008 Michal Simek
 *
 * Michal SIMEK <monstr@monstr.eu>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA 02111-1307 USA
 *
 * CAUTION: This file is automatically generated by libgen.
 * Version: Xilinx EDK 14.7 EDK_P.20131013
 *
 * XPS project directory: device-tree_bsp_0
 */

/dts-v1/;
/ {
	#address-cells = <1>;
	#size-cells = <1>;
	compatible = "xlnx,microblaze";
	model = "testing";
	aliases {
		ethernet0 = &xps_ll_temac_0;
		serial0 = &rs232;
	} ;
	chosen {
		bootargs = "console=ttyS0 root=/dev/ram";
		linux,stdout-path = "/plb@0/serial@40030000";
	} ;
	cpus {
		#address-cells = <1>;
		#cpus = <0x1>;
		#size-cells = <0>;
		microblaze_0: cpu@0 {
			clock-frequency = <62500000>;
			compatible = "xlnx,microblaze-8.50.c";
			d-cache-line-size = <0x10>;
			d-cache-size = <0x100>;
			device_type = "cpu";
			i-cache-line-size = <0x20>;
			i-cache-size = <0x100>;
			model = "microblaze,8.50.c";
			reg = <0>;
			timebase-frequency = <62500000>;
			xlnx,addr-tag-bits = <0x0>;
			xlnx,allow-dcache-wr = <0x1>;
			xlnx,allow-icache-wr = <0x1>;
			xlnx,area-optimized = <0x0>;
			xlnx,avoid-primitives = <0x0>;
			xlnx,base-vectors = <0x0>;
			xlnx,branch-target-cache-size = <0x0>;
			xlnx,cache-byte-size = <0x100>;
			xlnx,d-axi = <0x0>;
			xlnx,d-lmb = <0x1>;
			xlnx,d-plb = <0x1>;
			xlnx,data-size = <0x20>;
			xlnx,dcache-addr-tag = <0x0>;
			xlnx,dcache-always-used = <0x1>;
			xlnx,dcache-byte-size = <0x100>;
			xlnx,dcache-data-width = <0x0>;
			xlnx,dcache-force-tag-lutram = <0x1>;
			xlnx,dcache-interface = <0x0>;
			xlnx,dcache-line-len = <0x4>;
			xlnx,dcache-use-fsl = <0x1>;
			xlnx,dcache-use-writeback = <0x0>;
			xlnx,dcache-victims = <0x0>;
			xlnx,debug-enabled = <0x1>;
			xlnx,div-zero-exception = <0x1>;
			xlnx,dynamic-bus-sizing = <0x1>;
			xlnx,ecc-use-ce-exception = <0x0>;
			xlnx,edge-is-positive = <0x1>;
			xlnx,endianness = <0x0>;
			xlnx,family = "spartan3a";
			xlnx,fault-tolerant = <0x0>;
			xlnx,fpu-exception = <0x0>;
			xlnx,freq = <0x3b9aca0>;
			xlnx,fsl-data-size = <0x20>;
			xlnx,fsl-exception = <0x0>;
			xlnx,fsl-links = <0x0>;
			xlnx,i-axi = <0x0>;
			xlnx,i-lmb = <0x1>;
			xlnx,i-plb = <0x1>;
			xlnx,icache-always-used = <0x1>;
			xlnx,icache-data-width = <0x0>;
			xlnx,icache-force-tag-lutram = <0x0>;
			xlnx,icache-interface = <0x0>;
			xlnx,icache-line-len = <0x8>;
			xlnx,icache-streams = <0x1>;
			xlnx,icache-use-fsl = <0x1>;
			xlnx,icache-victims = <0x8>;
			xlnx,ill-opcode-exception = <0x1>;
			xlnx,instance = "microblaze_0";
			xlnx,interconnect = <0x1>;
			xlnx,interconnect-m-axi-dc-read-issuing = <0x2>;
			xlnx,interconnect-m-axi-dc-write-issuing = <0x20>;
			xlnx,interconnect-m-axi-dp-read-issuing = <0x1>;
			xlnx,interconnect-m-axi-dp-write-issuing = <0x1>;
			xlnx,interconnect-m-axi-ic-read-issuing = <0x2>;
			xlnx,interconnect-m-axi-ip-read-issuing = <0x1>;
			xlnx,interrupt-is-edge = <0x0>;
			xlnx,lockstep-slave = <0x0>;
			xlnx,m-axi-d-bus-exception = <0x0>;
			xlnx,m-axi-dc-addr-width = <0x20>;
			xlnx,m-axi-dc-aruser-width = <0x5>;
			xlnx,m-axi-dc-awuser-width = <0x5>;
			xlnx,m-axi-dc-buser-width = <0x1>;
			xlnx,m-axi-dc-data-width = <0x20>;
			xlnx,m-axi-dc-exclusive-access = <0x0>;
			xlnx,m-axi-dc-protocol = "AXI4";
			xlnx,m-axi-dc-ruser-width = <0x1>;
			xlnx,m-axi-dc-supports-narrow-burst = <0x0>;
			xlnx,m-axi-dc-supports-read = <0x1>;
			xlnx,m-axi-dc-supports-threads = <0x0>;
			xlnx,m-axi-dc-supports-user-signals = <0x1>;
			xlnx,m-axi-dc-supports-write = <0x1>;
			xlnx,m-axi-dc-thread-id-width = <0x1>;
			xlnx,m-axi-dc-user-value = <0x1f>;
			xlnx,m-axi-dc-wuser-width = <0x1>;
			xlnx,m-axi-dp-addr-width = <0x20>;
			xlnx,m-axi-dp-data-width = <0x20>;
			xlnx,m-axi-dp-exclusive-access = <0x0>;
			xlnx,m-axi-dp-protocol = "AXI4LITE";
			xlnx,m-axi-dp-supports-narrow-burst = <0x0>;
			xlnx,m-axi-dp-supports-read = <0x1>;
			xlnx,m-axi-dp-supports-threads = <0x0>;
			xlnx,m-axi-dp-supports-write = <0x1>;
			xlnx,m-axi-dp-thread-id-width = <0x1>;
			xlnx,m-axi-i-bus-exception = <0x0>;
			xlnx,m-axi-ic-addr-width = <0x20>;
			xlnx,m-axi-ic-aruser-width = <0x5>;
			xlnx,m-axi-ic-awuser-width = <0x5>;
			xlnx,m-axi-ic-buser-width = <0x1>;
			xlnx,m-axi-ic-data-width = <0x20>;
			xlnx,m-axi-ic-protocol = "AXI4";
			xlnx,m-axi-ic-ruser-width = <0x1>;
			xlnx,m-axi-ic-supports-narrow-burst = <0x0>;
			xlnx,m-axi-ic-supports-read = <0x1>;
			xlnx,m-axi-ic-supports-threads = <0x0>;
			xlnx,m-axi-ic-supports-user-signals = <0x1>;
			xlnx,m-axi-ic-supports-write = <0x0>;
			xlnx,m-axi-ic-thread-id-width = <0x1>;
			xlnx,m-axi-ic-user-value = <0x1f>;
			xlnx,m-axi-ic-wuser-width = <0x1>;
			xlnx,m-axi-ip-addr-width = <0x20>;
			xlnx,m-axi-ip-data-width = <0x20>;
			xlnx,m-axi-ip-protocol = "AXI4LITE";
			xlnx,m-axi-ip-supports-narrow-burst = <0x0>;
			xlnx,m-axi-ip-supports-read = <0x1>;
			xlnx,m-axi-ip-supports-threads = <0x0>;
			xlnx,m-axi-ip-supports-write = <0x0>;
			xlnx,m-axi-ip-thread-id-width = <0x1>;
			xlnx,m0-axis-data-width = <0x20>;
			xlnx,m0-axis-protocol = "GENERIC";
			xlnx,m1-axis-data-width = <0x20>;
			xlnx,m1-axis-protocol = "GENERIC";
			xlnx,m10-axis-data-width = <0x20>;
			xlnx,m10-axis-protocol = "GENERIC";
			xlnx,m11-axis-data-width = <0x20>;
			xlnx,m11-axis-protocol = "GENERIC";
			xlnx,m12-axis-data-width = <0x20>;
			xlnx,m12-axis-protocol = "GENERIC";
			xlnx,m13-axis-data-width = <0x20>;
			xlnx,m13-axis-protocol = "GENERIC";
			xlnx,m14-axis-data-width = <0x20>;
			xlnx,m14-axis-protocol = "GENERIC";
			xlnx,m15-axis-data-width = <0x20>;
			xlnx,m15-axis-protocol = "GENERIC";
			xlnx,m2-axis-data-width = <0x20>;
			xlnx,m2-axis-protocol = "GENERIC";
			xlnx,m3-axis-data-width = <0x20>;
			xlnx,m3-axis-protocol = "GENERIC";
			xlnx,m4-axis-data-width = <0x20>;
			xlnx,m4-axis-protocol = "GENERIC";
			xlnx,m5-axis-data-width = <0x20>;
			xlnx,m5-axis-protocol = "GENERIC";
			xlnx,m6-axis-data-width = <0x20>;
			xlnx,m6-axis-protocol = "GENERIC";
			xlnx,m7-axis-data-width = <0x20>;
			xlnx,m7-axis-protocol = "GENERIC";
			xlnx,m8-axis-data-width = <0x20>;
			xlnx,m8-axis-protocol = "GENERIC";
			xlnx,m9-axis-data-width = <0x20>;
			xlnx,m9-axis-protocol = "GENERIC";
			xlnx,mmu-dtlb-size = <0x4>;
			xlnx,mmu-itlb-size = <0x2>;
			xlnx,mmu-privileged-instr = <0x0>;
			xlnx,mmu-tlb-access = <0x3>;
			xlnx,mmu-zones = <0x2>;
			xlnx,number-of-pc-brk = <0x1>;
			xlnx,number-of-rd-addr-brk = <0x0>;
			xlnx,number-of-wr-addr-brk = <0x0>;
			xlnx,opcode-0x0-illegal = <0x1>;
			xlnx,optimization = <0x0>;
			xlnx,pc-width = <0x20>;
			xlnx,pvr = <0x2>;
			xlnx,pvr-user1 = <0x0>;
			xlnx,pvr-user2 = <0x0>;
			xlnx,reset-msr = <0x0>;
			xlnx,s0-axis-data-width = <0x20>;
			xlnx,s0-axis-protocol = "GENERIC";
			xlnx,s1-axis-data-width = <0x20>;
			xlnx,s1-axis-protocol = "GENERIC";
			xlnx,s10-axis-data-width = <0x20>;
			xlnx,s10-axis-protocol = "GENERIC";
			xlnx,s11-axis-data-width = <0x20>;
			xlnx,s11-axis-protocol = "GENERIC";
			xlnx,s12-axis-data-width = <0x20>;
			xlnx,s12-axis-protocol = "GENERIC";
			xlnx,s13-axis-data-width = <0x20>;
			xlnx,s13-axis-protocol = "GENERIC";
			xlnx,s14-axis-data-width = <0x20>;
			xlnx,s14-axis-protocol = "GENERIC";
			xlnx,s15-axis-data-width = <0x20>;
			xlnx,s15-axis-protocol = "GENERIC";
			xlnx,s2-axis-data-width = <0x20>;
			xlnx,s2-axis-protocol = "GENERIC";
			xlnx,s3-axis-data-width = <0x20>;
			xlnx,s3-axis-protocol = "GENERIC";
			xlnx,s4-axis-data-width = <0x20>;
			xlnx,s4-axis-protocol = "GENERIC";
			xlnx,s5-axis-data-width = <0x20>;
			xlnx,s5-axis-protocol = "GENERIC";
			xlnx,s6-axis-data-width = <0x20>;
			xlnx,s6-axis-protocol = "GENERIC";
			xlnx,s7-axis-data-width = <0x20>;
			xlnx,s7-axis-protocol = "GENERIC";
			xlnx,s8-axis-data-width = <0x20>;
			xlnx,s8-axis-protocol = "GENERIC";
			xlnx,s9-axis-data-width = <0x20>;
			xlnx,s9-axis-protocol = "GENERIC";
			xlnx,sco = <0x0>;
			xlnx,stream-interconnect = <0x0>;
			xlnx,unaligned-exceptions = <0x1>;
			xlnx,use-barrel = <0x1>;
			xlnx,use-branch-target-cache = <0x0>;
			xlnx,use-dcache = <0x0>;
			xlnx,use-div = <0x1>;
			xlnx,use-ext-brk = <0x1>;
			xlnx,use-ext-nm-brk = <0x1>;
			xlnx,use-extended-fsl-instr = <0x0>;
			xlnx,use-fpu = <0x0>;
			xlnx,use-hw-mul = <0x1>;
			xlnx,use-icache = <0x0>;
			xlnx,use-interrupt = <0x1>;
			xlnx,use-mmu = <0x3>;
			xlnx,use-msr-instr = <0x1>;
			xlnx,use-pcmp-instr = <0x1>;
			xlnx,use-reorder-instr = <0x1>;
			xlnx,use-stack-protection = <0x0>;
		} ;
	} ;
	mb_plb: plb@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "xlnx,plb-v46-1.05.a", "xlnx,plb-v46-1.00.a", "simple-bus";
		ranges ;
		mb_fpga_info_0: mb-fpga-info@40060000 {
			compatible = "xlnx,mb-fpga-info-1.00.a";
			reg = < 0x40060000 0x10000 >;
			xlnx,family = "spartan3a";
			xlnx,include-dphase-timer = <0x0>;
		} ;
		mpmc@10000000 {
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "xlnx,mpmc-6.06.a";
			ranges ;
			PIM1: sdma@40050080 {
				compatible = "xlnx,ll-dma-1.00.a";
				interrupt-parent = <&xps_intc_0>;
				interrupts = < 6 2 5 2 >;
				reg = < 0x40050080 0x80 >;
			} ;
		} ;
		rs232: serial@40030000 {
			clock-frequency = <62500000>;
			compatible = "xlnx,xps-uartlite-1.02.a", "xlnx,xps-uartlite-1.00.a";
			current-speed = <115200>;
			device_type = "serial";
			interrupt-parent = <&xps_intc_0>;
			interrupts = < 2 0 >;
			port-number = <0>;
			reg = < 0x40030000 0x10000 >;
			xlnx,baudrate = <0x1c200>;
			xlnx,data-bits = <0x8>;
			xlnx,family = "spartan3a";
			xlnx,odd-parity = <0x0>;
			xlnx,use-parity = <0x0>;
		} ;
		vsc3008_3308_config_interface_0: vsc3008-3308-config-interface@40080000 {
			compatible = "xlnx,vsc3008-3308-config-interface-1.00.a";
			reg = < 0x40080000 0x10000 >;
			xlnx,family = "spartan3a";
			xlnx,include-dphase-timer = <0x0>;
			xlnx,num-crosspoints = <0x10>;
			xlnx,vitesse = "VSC3308";
		} ;
		xps_intc_0: interrupt-controller@40020000 {
			#interrupt-cells = <0x2>;
			compatible = "xlnx,xps-intc-2.01.a", "xlnx,xps-intc-1.00.a";
			interrupt-controller ;
			reg = < 0x40020000 0x10000 >;
			xlnx,kind-of-intr = <0x3F>;
			xlnx,num-intr-inputs = <0x7>;
		} ;
		xps_interfpga_0: xps-interfpga@40040000 {
			compatible = "xlnx,xps-interfpga-1.00.a";
			reg = < 0x40040000 0x10000 >;
			xlnx,family = "spartan3a";
			xlnx,include-crc = "TRUE";
			xlnx,include-dphase-timer = <0x1>;
			xlnx,include-right-if = "FALSE";
			xlnx,include-top-if = "FALSE";
			xlnx,mplb-awidth = <0x20>;
			xlnx,mplb-clk-period-ps = <0x3e80>;
			xlnx,mplb-dwidth = <0x20>;
			xlnx,mplb-native-dwidth = <0x20>;
			xlnx,mplb-p2p = <0x0>;
			xlnx,mplb-smallest-slave = <0x20>;
		} ;
		xps_ll_temac_0: xps-ll-temac@80000000 {
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "xlnx,compound";
			ethernet@80000000 {
				compatible = "xlnx,xps-ll-temac-2.03.a", "xlnx,xps-ll-temac-1.00.a";
				device_type = "network";
				interrupt-parent = <&xps_intc_0>;
				interrupts = < 1 2 >;
				llink-connected = <&PIM1>;
				local-mac-address = [ 00 0a 35 00 00 00 ];
				reg = < 0x80000000 0x40 >;
				xlnx,avb = <0x0>;
				xlnx,bus2core-clk-ratio = <0x1>;
				xlnx,mcast-extend = <0x0>;
				xlnx,phy-type = <0x1>;
				xlnx,phyaddr = <0x1>;
				xlnx,rxcsum = <0x1>;
				xlnx,rxfifo = <0x800>;
				xlnx,rxvlan-strp = <0x0>;
				xlnx,rxvlan-tag = <0x0>;
				xlnx,rxvlan-tran = <0x0>;
				xlnx,stats = <0x0>;
				xlnx,temac-type = <0x2>;
				xlnx,txcsum = <0x1>;
				xlnx,txfifo = <0x800>;
				xlnx,txvlan-strp = <0x0>;
				xlnx,txvlan-tag = <0x0>;
				xlnx,txvlan-tran = <0x0>;
			} ;
		} ;
		xps_mch_emc_0: flash@20000000 {
			bank-width = <2>;
			compatible = "xlnx,xps-mch-emc-3.01.a", "cfi-flash";
			reg = < 0x20000000 0x8000000 >;
			xlnx,family = "spartan3a";
			xlnx,include-datawidth-matching-0 = <0x1>;
			xlnx,include-datawidth-matching-1 = <0x1>;
			xlnx,include-datawidth-matching-2 = <0x1>;
			xlnx,include-datawidth-matching-3 = <0x1>;
			xlnx,include-negedge-ioregs = <0x0>;
			xlnx,include-plb-ipif = <0x1>;
			xlnx,include-wrbuf = <0x1>;
			xlnx,max-mem-width = <0x10>;
			xlnx,mch-native-dwidth = <0x20>;
			xlnx,mch-splb-awidth = <0x20>;
			xlnx,mch-splb-clk-period-ps = <0x3e80>;
			xlnx,mch0-accessbuf-depth = <0x10>;
			xlnx,mch0-protocol = <0x0>;
			xlnx,mch0-rddatabuf-depth = <0x10>;
			xlnx,mch1-accessbuf-depth = <0x10>;
			xlnx,mch1-protocol = <0x0>;
			xlnx,mch1-rddatabuf-depth = <0x10>;
			xlnx,mch2-accessbuf-depth = <0x10>;
			xlnx,mch2-protocol = <0x0>;
			xlnx,mch2-rddatabuf-depth = <0x10>;
			xlnx,mch3-accessbuf-depth = <0x10>;
			xlnx,mch3-protocol = <0x0>;
			xlnx,mch3-rddatabuf-depth = <0x10>;
			xlnx,mem0-width = <0x10>;
			xlnx,mem1-width = <0x10>;
			xlnx,mem2-width = <0x10>;
			xlnx,mem3-width = <0x10>;
			xlnx,num-banks-mem = <0x1>;
			xlnx,num-channels = <0x0>;
			xlnx,pagemode-flash-0 = <0x1>;
			xlnx,pagemode-flash-1 = <0x1>;
			xlnx,pagemode-flash-2 = <0x0>;
			xlnx,pagemode-flash-3 = <0x1>;
			xlnx,priority-mode = <0x0>;
			xlnx,synch-mem-0 = <0x0>;
			xlnx,synch-mem-1 = <0x1>;
			xlnx,synch-mem-2 = <0x1>;
			xlnx,synch-mem-3 = <0x1>;
			xlnx,synch-pipedelay-0 = <0x1>;
			xlnx,synch-pipedelay-1 = <0x2>;
			xlnx,synch-pipedelay-2 = <0x2>;
			xlnx,synch-pipedelay-3 = <0x2>;
			xlnx,tavdv-ps-mem-0 = <0x17318>;
			xlnx,tavdv-ps-mem-1 = <0x3a98>;
			xlnx,tavdv-ps-mem-2 = <0x3a98>;
			xlnx,tavdv-ps-mem-3 = <0x3a98>;
			xlnx,tcedv-ps-mem-0 = <0x17318>;
			xlnx,tcedv-ps-mem-1 = <0x3a98>;
			xlnx,tcedv-ps-mem-2 = <0x3a98>;
			xlnx,tcedv-ps-mem-3 = <0x3a98>;
			xlnx,thzce-ps-mem-0 = <0x4e20>;
			xlnx,thzce-ps-mem-1 = <0x1b58>;
			xlnx,thzce-ps-mem-2 = <0x1b58>;
			xlnx,thzce-ps-mem-3 = <0x1b58>;
			xlnx,thzoe-ps-mem-0 = <0x3a98>;
			xlnx,thzoe-ps-mem-1 = <0x1b58>;
			xlnx,thzoe-ps-mem-2 = <0x1b58>;
			xlnx,thzoe-ps-mem-3 = <0x1b58>;
			xlnx,tlzwe-ps-mem-0 = <0x0>;
			xlnx,tlzwe-ps-mem-1 = <0x0>;
			xlnx,tlzwe-ps-mem-2 = <0x0>;
			xlnx,tlzwe-ps-mem-3 = <0x0>;
			xlnx,tpacc-ps-flash-0 = <0x61a8>;
			xlnx,tpacc-ps-flash-1 = <0x61a8>;
			xlnx,tpacc-ps-flash-2 = <0x61a8>;
			xlnx,tpacc-ps-flash-3 = <0x61a8>;
			xlnx,twc-ps-mem-0 = <0x11170>;
			xlnx,twc-ps-mem-1 = <0x3a98>;
			xlnx,twc-ps-mem-2 = <0x3a98>;
			xlnx,twc-ps-mem-3 = <0x3a98>;
			xlnx,twp-ps-mem-0 = <0xc350>;
			xlnx,twp-ps-mem-1 = <0x2ee0>;
			xlnx,twp-ps-mem-2 = <0x2ee0>;
			xlnx,twp-ps-mem-3 = <0x2ee0>;
			xlnx,xcl0-linesize = <0x4>;
			xlnx,xcl0-writexfer = <0x1>;
			xlnx,xcl1-linesize = <0x4>;
			xlnx,xcl1-writexfer = <0x1>;
			xlnx,xcl2-linesize = <0x4>;
			xlnx,xcl2-writexfer = <0x1>;
			xlnx,xcl3-linesize = <0x4>;
			xlnx,xcl3-writexfer = <0x1>;
		} ;
		xps_timer_0: timer@40070000 {
			compatible = "xlnx,xps-timer-1.02.a", "xlnx,xps-timer-1.00.a";
			interrupt-parent = <&xps_intc_0>;
			interrupts = < 0 0 >;
			reg = < 0x40070000 0x10000 >;
			xlnx,count-width = <0x20>;
			xlnx,family = "spartan3a";
			xlnx,gen0-assert = <0x1>;
			xlnx,gen1-assert = <0x1>;
			xlnx,one-timer-only = <0x0>;
			xlnx,trig0-assert = <0x1>;
			xlnx,trig1-assert = <0x1>;
		} ;
	} ;
	mpmc_0: memory@10000000 {
		device_type = "memory";
		reg = < 0x10000000 0x10000000 >;
	} ;
}  ;


 

0 Kudos