LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Find Resources
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Openrisc > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Jeremy Bennett<jeremy.bennett@e...>
    Date: Thu Aug 21 21:04:19 CEST 2008
    Subject: [openrisc] linux-2.6.23
    Top
    On Sun, 2008-08-17 at 16:37 +0200, rich_daddio@y... wrote:
    > Hi All,
    > Patch linux_2.6.23_or32_unified_simtested.bz2 for or32 & linux-2.6.23
    > is available:
    >
    > Get it at:
    > ftp www.meansoffreedom.com
    > u: download
    > p: download
    > cd mof_orsoc
    >
    > Note: Initially this was planned to be a scrub release, however due to
    > the feedback from Jeremy Bennett, the scrub has been pushed to 2.6.24
    > which will include the clean-up and Jeremy's ideas.
    >
    > As usual this was tested using the toolchain and simulator built with
    > toolchain script.
    > Availbable at:
    > http://www.opencores.com/projects.cgi/web/or1k/gnu_toolchain_port
    >
    > Enjoy,
    >
    > Rich d
    > _______________________________________________
    > http://www.opencores.org/mailman/listinfo/openrisc

    Hi Rich,

    This failed for me out of the box. The problem is with the Ethernet,
    since if I take that out of the configuration, everything works fine.
    It's just possible this is a simulator problem, although since the issue
    is code corruption (see below) that does not seem likely.

    Tested on Fedora 9, with GDB 6.8 and Or1ksim 0.2.0 with patches to
    support GDB 6.8. Without Ethernet works standalone and through GDB
    (which is much quicker now I have done some tuning).

    I still get the warning about "/bin/sh: can't access tty; job control
    turned off" and double # prompt when using telnet (but not xterm).

    With Ethernet, the system hung as follows:

    VFS: Disk quotas dquot_6.5.1
    Dquot-cache hash table entries: 2048 (order 0, 8192 bytes)
    Installing knfsd (copyright (C) 1996 okir@m...).
    io scheduler noop registered
    io scheduler anticipatory registered (default)
    io scheduler deadline registered
    io scheduler cfq registered
    Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing
    disabled
    serial8250.0: ttyS0 at MMIO 0x90000000 (irq = 2) is a 16550A
    console [ttyS0] enabled
    RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
    loop: module loaded
    TCP cubic registered
    NET: Registered protocol family 1
    NET: Registered protocol family 17
    NET: Registered protocol family 15
    ^C(sim) r
    00009944: 00000000 l.j 0x0 (executed) [cycle 4288328388, #199466680]
    00009948: c04bf9c8 l.mtspr r11,r31,0x11c8 (next insn) (delay insn)
    GPR00: 00000000 GPR01: c04bf938 GPR02: 00000000 GPR03: c04bf9c8
    GPR04: c04bf9c8 GPR05: 00000300 GPR06: 00000000 GPR07: 00000000
    GPR08: c0008a60 GPR09: c00099ec GPR10: 00000000 GPR11: 00000000
    GPR12: 00000000 GPR13: 00000017 GPR14: 00000052 GPR15: 00002000
    GPR16: 0000002c GPR17: e5a1c285 GPR18: 00000300 GPR19: 67ba8ba8
    GPR20: c04c81b0 GPR21: f25fb0c7 GPR22: c0278b08 GPR23: c054deac
    GPR24: c054dfc8 GPR25: 9204c4df GPR26: 00000000 GPR27: d3b657f8
    GPR28: 00000000 GPR29: 0a85e0b6 GPR30: c0284680 GPR31: c00098f8
    flag: 0
    (sim)

    This is corrupted code. It is part of the data_page_fault_handler, but
    the code at 0x9944 has been corrupted. The code should look like this:

    0xc0009930 <_data_page_fault_handler+56>: l.sw 80(r1),r19
    0xc0009934 <_data_page_fault_handler+60>: l.sw 84(r1),r20
    0xc0009938 <_data_page_fault_handler+64>: l.sw 88(r1),r21
    0xc000993c <_data_page_fault_handler+68>: l.sw 92(r1),r22
    0xc0009940 <_data_page_fault_handler+72>: l.sw 96(r1),r23
    0xc0009944 <_data_page_fault_handler+76>: l.sw 100(r1),r24
    0xc0009948 <_data_page_fault_handler+80>: l.sw 104(r1),r25
    0xc000994c <_data_page_fault_handler+84>: l.sw 108(r1),r26
    0xc0009950 <_data_page_fault_handler+88>: l.sw 112(r1),r27
    0xc0009954 <_data_page_fault_handler+92>: l.sw 116(r1),r28
    0xc0009958 <_data_page_fault_handler+96>: l.sw 120(r1),r29
    0xc000995c <_data_page_fault_handler+100>: l.sw 124(r1),r30
    0xc0009960 <_data_page_fault_handler+104>: l.sw 136(r1),r0
    0xc0009964 <_data_page_fault_handler+108>: l.addi r3,r1,0
    0xc0009968 <_data_page_fault_handler+112>: l.ori r5,r0,0x300
    0xc000996c <_data_page_fault_handler+116>: l.lwz r6,0(r3)

    But examination in the simulator shows it looks like this:

    i=9930 :: d4019850 l.sw 0x50(r1),r19
    i=9934 :: d401a054 l.sw 0x54(r1),r20
    i=9938 :: d401a858 l.sw 0x58(r1),r21
    i=993c :: d401b05c l.sw 0x5c(r1),r22
    i=9940 :: d401b860 l.sw 0x60(r1),r23
    i=9944 :: 00000000 l.j 0x0 i=9948 :: c04bf9c8 l.mtspr r11,r31,0x11c8 i=994c :: d401d06c l.sw 0x6c(r1),r26 i=9950 :: 00000300 l.j 0x300 i=9954 :: 00000000 l.j 0x0 i=9958 :: 00000000 l.j 0x0 i=995c :: c0008a60 l.mtspr r0,r17,0x260 i=9960 :: c00099ec l.mtspr r0,r19,0x1ec i=9964 :: 9c610000 l.addi r3,r1,0x0 i=9968 :: 00000000 l.j 0x0 i=996c :: 84c30000 l.lwz r6,0x0(r3) (addresses are relocated). Good news that there are fewer of the section mismatch warnings now. I did get some warnings from some of the OR32 architecture components: arch/or32/drivers/open_eth.c: In function `oeth_open': arch/or32/drivers/open_eth.c:190: warning: passing arg 2 of `request_irq' from incompatible pointer type LD arch/or32/drivers/built-in.o CC arch/or32/board/config.o arch/or32/board/config.c:133: warning: initialization from incompatible pointer type LD arch/or32/board/built-in.o gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o arch/or32/support/tools/bintoc arch/or32/support/tools/bintoc.c arch/or32/support/tools/bintoc.c:6: warning: return type defaults to ‘int’ arch/or32/support/tools/bintoc.c: In function ‘main’: arch/or32/support/tools/bintoc.c:13: warning: implicit declaration of function ‘exit’ arch/or32/support/tools/bintoc.c:13: warning: incompatible implicit declaration of built-in function ‘exit’ arch/or32/support/tools/bintoc.c:24: warning: implicit declaration of function ‘read’ arch/or32/support/tools/bintoc.c:55: warning: incompatible implicit declaration of built-in function ‘exit’ arch/or32/support/tools/bintoc .initrd < arch/or32/support/initrd-fb-03.ext2 |/opt/or32/bin/or32-uclinux-as -o arch/or32/support/initrd.o Hope this lets you track down the problem. For simulator purposes, the Ethernet is of little relevance. It might be best to leave it out of the default configuration (disable in sim.cfg as well). Users can put it back in if they have real hardware. ATB, Jeremy -- Tel: +44 (1202) 416955 Cell: +44 (7970) 676050 SkypeID: jeremybennett Email: jeremy.bennett@e... Web: www.embecosm.com

    ReferenceAuthor
    [openrisc] linux-2.6.23Rich_daddio

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.