[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [microblaze-uclinux] [PATCH] return from interrupt.
Sorry to hear you have problems but the patch is right and necessary for
every possible combination of configurations.
--
I have experienced a number of weired issues one where adding two nop
instructions caused the kernel not to boot anymore.
I also see a problem writing to the msr when trying to turn interrupt
off. It do not always work. I put in a check on every place that do it
and to retry until it is working. With that fix things are a lot more
stable but I have not done a proper patch for it as it's only a
workaround for what I consider to be a bad synthesis of the CPU.
Maybe there is some validation software to run on microblaze to catch
this type of problems if not Xilinx should create it. It's really time
consuming trying to solve problems resulting from errors like that.
On Tue, 2007-11-13 at 19:42 +0100, Brettschneider Falk wrote:
> Hi,
> hmm...doesn't work here. I tried that patch and after that uClinux crashes or maybe just hangs while booting.
> Below is the boot messages output, more below the old well working boot messages output:
> CU, F@lk
>
> Kenneth Johansson wrote:
> > It was possible to get a process stuck in an infinite loop on the rfid
> > instruction.
> >
> > The problem was that it was possible to get an interrupt
> > during context
> > restore and when that happened after R14 was restored it
> > resulted in an
> > infinite loop that gradually shrink down to include just the rfid
> > instruction.
>
> Linux version 2.6.20-uc0 (devel@linux) (gcc version 3.4.1 ( PetaLinux 0.20 Build -rc1 050607 )) #30 PREEMPT Tue Nov 13 19:02:39 CET 2007
> setup_cpuinfo: initialising
> setup_cpuinfo: No PVR support in CPU. Using static compile-time info
> set_cpuinfo_static: Using static CPU info.
> setup_memory: max_mapnr: 0x81fff
> setup_memory: min_low_pfn: 0x80000
> setup_memory: max_low_pfn: 0x2000
> On node 0 totalpages: 8192
> DMA zone: 64 pages used for memmap
> DMA zone: 0 pages reserved
> DMA zone: 8128 pages, LIFO batch:0
> Normal zone: 0 pages used for memmap
> Built 1 zonelists. Total pages: 8128
> Kernel command line: mtdparts=physmap-flash.0:6m(reserved)ro,10m(user) macaddr=00:0A:35:00:22:02
> OPB INTC #0 at 0xFFFF3000
> PID hash table entries: 128 (order: 7, 512 bytes)
> Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
> Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
> Memory: 30456k/32768k available
> Calibrating delay loop... 46.89 BogoMIPS (lpj=234496)
> Mount-cache hash table entries: 512
> NET: Registered protocol family 16
> NET: Registered protocol family 2
> IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
> TCP established hash table entries: 1024 (order: 0, 4096 bytes)
> TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
> TCP: Hash tables configured (established 1024 bind 1024)
> TCP reno registered
> JFFS2 version 2.2. (C) 2001-2006 Red Hat, Inc.
> io scheduler noop registered
> io scheduler anticipatory registered
> io scheduler deadline registered
> io scheduler cfq registered (default)
> uartlite.0: ttyS0 at MMIO 0xffff2000 (irq = 1) is a uartlite
> RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
> vsint: loading interrupt handler driver...
> eth0: using fifo mode.
> eth0: No PHY detected. Assuming a PHY at address 0.
> eth0: Xilinx EMAC #0 at 0x40C00000 mapped to 0x40C00000, irq=5
> eth0: id 2.0l; block id 11, type 1
> BO EMAC: Returning Device List
> physmap platform flash device: 01000000 at fe000000
> physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
> Amd/Fujitsu Extended Query Table at 0x0040
> physmap-flash.0: CFI does not contain boot bank location. Assuming top.
> number of CFI chips: 1
> cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
> 2 cmdlinepart partitions found on MTD device physmap-flash.0
> Creating 2 MTD partitions on "physmap-flash.0":
> 0x00000000-0x00600000 : "reserved"
> 0x00600000-0x01000000 : "user"
> uclinux[mtd]: RAM probe address=0x801b0908 size=0x49000
> Creating 1 MTD partitions on "RAM":
> 0x00000000-0x00049000 : "ROMfs"
> uclinux[mtd]: set ROMfs to be root filesystem index=2
> TCP bic registered
> TCP cubic registered
> TCP westwood registered
> TCP htcp registered
> NET: Registered protocol family 1
> VFS: Mounted root (cramfs filesystem) readonly.
> Freeing unused kernel memory: 80k freed
> init started: BusyBox v1.00 (2007.11.13-17:39+0000) multi-call binary
> init started: BusyBox v1.00 (2007.11.13-17:39+0000) multi-call binary
> Starting pid 13, console F8: '8à'
> Could not run '8à': No such file or directory
> Could not run '8à': No such file or directory
> Starting pid 15, console F8: 'p°'
> Could not run 'p°': No such file or directory
> Could not run 'p°': No such file or directory
> Starting pid 16, console F8: '8à'
> Could not run '8à': No such file or directory
> Could not run '8à': No such file or directory
> Starting pid 17, console F8: '8à'
> Could not run '8à': No such file or directory
> Could not run '8à': No such file or directory
>
>
> ====================================
> Linux version 2.6.20-uc0 (devel@linux) (gcc version 3.4.1 ( PetaLinux 0.20 Build -rc1 050607 )) #29 PREEMPT Tue Nov 13 18:36:08 CET 2007
> setup_cpuinfo: initialising
> setup_cpuinfo: No PVR support in CPU. Using static compile-time info
> set_cpuinfo_static: Using static CPU info.
> setup_memory: max_mapnr: 0x81fff
> setup_memory: min_low_pfn: 0x80000
> setup_memory: max_low_pfn: 0x2000
> On node 0 totalpages: 8192
> DMA zone: 64 pages used for memmap
> DMA zone: 0 pages reserved
> DMA zone: 8128 pages, LIFO batch:0
> Normal zone: 0 pages used for memmap
> Built 1 zonelists. Total pages: 8128
> Kernel command line: mtdparts=physmap-flash.0:6m(reserved)ro,10m(user) macaddr=00:0A:35:00:22:02
> OPB INTC #0 at 0xFFFF3000
> PID hash table entries: 128 (order: 7, 512 bytes)
> Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
> Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
> Memory: 30456k/32768k available
> Calibrating delay loop... 46.89 BogoMIPS (lpj=234496)
> Mount-cache hash table entries: 512
> NET: Registered protocol family 16
> NET: Registered protocol family 2
> IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
> TCP established hash table entries: 1024 (order: 0, 4096 bytes)
> TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
> TCP: Hash tables configured (established 1024 bind 1024)
> TCP reno registered
> JFFS2 version 2.2. (C) 2001-2006 Red Hat, Inc.
> io scheduler noop registered
> io scheduler anticipatory registered
> io scheduler deadline registered
> io scheduler cfq registered (default)
> uartlite.0: ttyS0 at MMIO 0xffff2000 (irq = 1) is a uartlite
> RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
> vsint: loading interrupt handler driver...
> eth0: using fifo mode.
> eth0: No PHY detected. Assuming a PHY at address 0.
> eth0: Xilinx EMAC #0 at 0x40C00000 mapped to 0x40C00000, irq=5
> eth0: id 2.0l; block id 11, type 1
> BO EMAC: Returning Device List
> physmap platform flash device: 01000000 at fe000000
> physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
> Amd/Fujitsu Extended Query Table at 0x0040
> physmap-flash.0: CFI does not contain boot bank location. Assuming top.
> number of CFI chips: 1
> cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
> 2 cmdlinepart partitions found on MTD device physmap-flash.0
> Creating 2 MTD partitions on "physmap-flash.0":
> 0x00000000-0x00600000 : "reserved"
> 0x00600000-0x01000000 : "user"
> uclinux[mtd]: RAM probe address=0x801b0908 size=0x49000
> Creating 1 MTD partitions on "RAM":
> 0x00000000-0x00049000 : "ROMfs"
> uclinux[mtd]: set ROMfs to be root filesystem index=2
> TCP bic registered
> TCP cubic registered
> TCP westwood registered
> TCP htcp registered
> NET: Registered protocol family 1
> VFS: Mounted root (cramfs filesystem) readonly.
> Freeing unused kernel memory: 80k freed
> init started: BusyBox v1.00 (2007.11.13-17:39+0000) multi-call binary
> init started: BusyBox v1.00 (2007.11.13-17:39+0000) multi-call binary
> Starting pid 14, console : '/etc/rc.sysinit'
> Mounting proc:
> Mounting var:
> Populating /var:
> Running local start scripts.
> Mounting sysfs:
> Setting hostname:
> Setting up interface lo:
> Setting up interface eth0:
> Starting portmap:
>
> ___________________________
> microblaze-uclinux mailing list
> microblaze-uclinux@xxxxxxxxxxxxxx
> Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
> Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
>
>
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/