custom PPC405GPr board almost boots - one last step
Greetings: Well I'm getting much further now. Problem was I did not have ext2 filesystem in my kernel configuration. Now the initialization seems to complete and it looks to me like either a prompt is trying to print out, or some other type of text. In any case I am wonder when the boot gets as far as this one does, can or does something happen to the serial port? Does it try to bring up a console on the serial port and somehow is getting confused? Thanks Jerry See trace below: U-Boot 0.2.0 (Apr 4 2003 - 16:29:38) CPU: IBM PowerPC 405GPr Rev. A at 133 MHz (PLB=66, OPB=16, EBC=16 MHz PCI async ext clock used, internal PCI arbiter enabled 16 kB I-Cache 16 kB D-Cache Board: ### No HW ID - assuming WALNUT405 I2C: ready HDRAM: 64 MB Now running in RAM - U-Boot at: 03fcf000 FLASH: 512 kB *** Warning - bad CRC, using default environment PCI: Bus Dev VenId DevId Class Int PCI Autoconfig: Memory region: [2000-27ff] PCI Autoconfig: I/O region: [80-3ff] PCI Scan: Found Bus 0, Device 0, Function 0 PCI Scan: Found Bus 0, Device 7, Function 0 PCI Autoconfig: BAR 0, Mem, size=0x100, address=0x2000 PCI Autoconfig: BAR 1, I/O, size=0xff04, No room in resource PCI Autoconfig: BAR 2, I/O, size=0x100, address=0x100 00 07 1394 0978 0200 1c In:serial Out: serial Err: serial U-Boot relocated to 03fcf000 IDE: Bus 0: port = c OK Device 0: Model: SanDisk SDCFB-32 Firm: Vdg 1.23. Ser#: 109907A2203F1542 Type: Removable Hard Disk Capacity: 30.6 MB = 0.0 GB (62720 x 512) => => bootm 0x10 0x000 30 ## Booting image at 0010 ... Image Name: Linux-2.4.18_mvl30-walnut Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size:351692 Bytes = 343.4 kB Load Address: Entry Point: Verifying Checksum ... OK Uncompressing Kernel Image ... OK ## Current stack ends at 0x03F9EBE8 => set upper limit to 0x0080 ## cmdline at 0x007FFF00 ... 0x007FFF7E memstart= 0x memsize = 0x0400 flashstart = 0xFFF8 flashsize = 0x0008 flashoffset = 0x00031000 sramstart = 0x sramsize= 0x bootflags = 0x001E8480 procfreq=133 MHz plb_busfreq = 66.500 MHz pci_busfreq = 33.250 MHz ethaddr = 00:00:E0:18:94:38 IP addr = 0.192.168.0 baudrate= 9600 bps ## Loading RAMDisk Image at 0030 ... Image Name: Simple Embedded Linux Framework Image Type: PowerPC Linux RAMDisk Image (gzip compressed) Data Size:1476478 Bytes = 1.4 MB Load Address: Entry Point: Verifying Checksum ... OK ## initrd at 0x00300040 ... 0x004687BD (len=1476478=0x16877E) Loading Ramdisk to 03e35000, end 03f9d77e ... OK ## Transferring control to Linux (at address ) ... Linux version 2.4.18_mvl30-walnut (root at hhl) (gcc version 3.2.1 20020930 (MontaVista)) #35 Fri Apr 4 18:37:14 EST 2003 <6>IBM Sycamore (IBM405GPr) Platform On node 0 totalpages: 16384 zone(0): 16384 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: root=/dev/ram rw ramdisk_size=4096 console=ttyS0,9600n8 console=tty0 ip=192.168.2.176:192.168.2.190:192.168.2.79:255.2 Calibrating delay loop... 132.71 BogoMIPS Memory: 62156k available (600k kernel code, 264k data, 36k init, 0k highmem) Dentry-cache hash table entries: 8192 (order: 4, 65536 bytes) Inode-cache hash table entries: 4096 (order: 3, 32768 bytes) Mount-cache hash table entries: 1024 (order: 1, 8192 bytes) Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes) Page-cache hash table entries: 16384 (order: 4, 65536 bytes) POSIX conformance testing by UNIFIX Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 OCP uart ver 1.2 init complete Starting kswapd Disabling the Out Of Memory Killer Serial driver version 5.05c (2001-07-08) with no serial options enabled ttyS00 at 0x (irq = 0) is a 16550A ttyS01 at 0x (irq = 1) is a 16550A block: 128 slots per queue, batch=32 RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize loop: loaded (max 8 devices) Tracer: Initialization complete RAMDISK: Compressed image found at block 0 Freeing initrd memory: 1441k freed VFS: Mounted root (ext2 filesystem). Freeing unused kernel memory: 36k init .? 9H?.6??.??).?)!).!)!?..??..???9.???.?)..??...?1.??1?9?.6?..)!?..!!.)...? 3H.?...!)!.&?...?!? ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Linux training
In message you wrote: > > I was wondering if anyone can direct me to training courses on porting > embedded Linux to single board computers. Thank you for any direction and I > welcome all comments. DENX offers such courses. Please feel free to ask for details. Best regards, Wolfgang Denk -- Software Engineering: Embedded and Realtime Systems, Embedded Linux Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd at denx.de A memorandum is written not to inform the reader, but to protect the writer. -- Dean Acheson ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
custom PPC405GPr board almost boots - one last step
On Fri, Apr 04, 2003 at 11:24:16PM -0500, Jerry Walden wrote: > Well I'm getting much further now. Problem was I did not have ext2 > filesystem in > my kernel configuration. Now the initialization seems to complete and it > looks to > me like either a prompt is trying to print out, or some other type of text. > In any > case I am wonder when the boot gets as far as this one does, can or does > something > happen to the serial port? Does it try to bring up a console on the serial > port > and somehow is getting confused? > .? > 9H?.6??.??).?)!).!)!?..??..???9.???.?)..??...?1.??1?9?.6?..)!?..!!.)...? > 3H.?...!)!.&?...?!? Check the baud rate of ttyS0 in /etc/inittab If you are booting with 9600, then you need to have something like: # Example how to put a getty on a serial line (for a terminal) # T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 --Chris ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
glibc vs. newlib
Darin.Johnson at nokia.com wrote: > What are the experiences and tradeoffs of using newlib vs. glibc? I'm > targetting 16M board (maybe some 8M), no swap space, and I'm concerned that > adding glibc will suck much of this up. At the same time we'd also like to > be able to use off-the-shelf components like dhcpd or telnetd, and are not > sure if newlib would give us too many headaches there. > > Darin Johnson I strongly recommend you stay away from newlib. My recommendation is to use glibc "optimized" (there are numerous programs that will re-link glibc based on particular requirements you may have.) Or if you need a more "generic solution" look into uclibc. --Mark ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
dcbz works on 862 everywhere!
> Joakim Tjernlund wrote: > > > hmm, no response from the maintainer(s). You don't agree? > > It's interesting to watch these hacks, but I can't justify > complicating a general purpose function with more bus cycles by > emulating a functional problem. By not using these instructions > we have a working system that costs just a few more cycles during > the memory copy/zero operations. If we had _working_ dcbz > instructions, it would be a gain to use them, but from a system > perspective it is going to cost more to "fix up" these than > the code that already exists. Look a little harder. I am not talking just about dcbz, dcbi has the same problem. As it stands today, there are real bugs w.r.t dcbi. consistent_alloc() causes DTLB errors with a incorrect address in DAR. Just force DAR to an invalid address in the DTLB Miss handler before you leave it and see if you kernel boots. > As I said in the past, I'm sensitive to the code in the TLB exception > processing. So do something to remove code and streamline the process > and I'm really interested. Do something to add more code and it's > going to get placed pretty low in my pile of things to do. Yes I know, but you are not reading what am writing. For instance, the change below does not add to the fast path of the DTLB Miss handler and it fixes a real problem: > I just want to point out(again) that TLB Miss caused by most of the > dcxx(dcbf, dcbi, dcbst, dcbz) instructions that end up in the slow > path(DataAccess) > don't work with the current impl. since DAR isn't set. The code fragment below > will fix that(from my earlier patch). This won't affect the fast path at all > since it all of it can be in the slow path. > > + /* Copy 20 msb from EPN to DAR since the dcxx instructions fails > + * update the DAR when they cause a DTLB Miss. > + */ > + mfspr r21, MD_EPN > + rlwinm r21, r21, 0, 0, 19 > + mfspr r20, DAR > + rlwinm r20, r20, 0, 20, 31 > + or r20, r20, r21 > + mtspr DAR, r20 Go back and think dcbi instead of dcbz. Jocke ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Linux training
Hello Steven, Friday, April 04, 2003, 1:13:08 PM, you wrote: SB> I was wondering if anyone can direct me to training courses on porting SB> embedded Linux to single board computers. Thank you for any direction and I SB> welcome all comments. I know that Red Hat has something in this line. Look up at their web site. Best regards, Ricardomailto:scop at digitel.com.br ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
dcbz works on 862 everywhere!
> > The current implementation relies on TLB Miss always setting EPN > > (and other hardware assist registers) correctly, and TLB Error > > relies on DAR being set correctly. Everything works fine until > > you get a TLB Error on a dcbz/dcbt that doesn't properly update DAR. > > In this case EPN isn't set correctly either. > > I just want to point out(again) that TLB Miss caused by most of the > dcxx(dcbf, dcbi, dcbst, dcbz) instructions that end up in the slow > path(DataAccess) > don't work with the current impl. since DAR isn't set. The code fragment below > will fix that(from my earlier patch). This won't affect the fast path at all > since it all of it can be in the slow path. > > + /* Copy 20 msb from EPN to DAR since the dcxx instructions fails > + * update the DAR when they cause a DTLB Miss. > + */ > + mfspr r21, MD_EPN > + rlwinm r21, r21, 0, 0, 19 > + mfspr r20, DAR > + rlwinm r20, r20, 0, 20, 31 > + or r20, r20, r21 > + mtspr DAR, r20 > > It is hard to end up in slow path for kernel space addresses, but > it's not impossible I guess. Comments? hmm, no response from the maintainer(s). You don't agree? Did another test. I tagged DAR with a bad address(0xdead) in the TLB Miss handler(after the mtspr MD_RPN, r20) shortly before rfi. Now the kernel won't boot. It turns out it's consistent_alloc that is doing a invalidate_dcache_range(). According to a comment, memory is allocated from the vmalloc memory space. Doing a invalidate_dcache_range() on this memory causes a DTLB error with the change bit cleared and since DAR isn't set by dcbi, linux hangs. Clearly, the DTLB exeception procedure still is buggy. Jocke ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
glibc vs. newlib
On Fri, 2003-04-04 at 16:08, Darin.Johnson at nokia.com wrote: > > What are the experiences and tradeoffs of using newlib vs. glibc? I'm > targetting 16M board (maybe some 8M), no swap space, and I'm concerned that > adding glibc will suck much of this up. At the same time we'd also like to > be able to use off-the-shelf components like dhcpd or telnetd, and are not > sure if newlib would give us too many headaches there. newlib doesn't really have everything you'd want. You might look into uclibc or dietlibc as a lighter weight library. -- .. | Mind: Embedded Linux and eCos Development| || | Gary Thomas email: gary.thomas at mind.be | | Mind ( http://mind.be ) tel:+1 (970) 229-1963 | | gpg: http://www.chez-thomas.org/gary/gpg_key.asc | '' ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Linux crash when big application executing on PPC405GP board
Hi, Board: CSB272 IBM PPC405GP Linux kernel version: 2.4.17 Linux kernel can boot nfs root filesystem on the board. Shell works correctly. However the system will oops when execute big applications, such as copying a file which is larger than 2MBytes. The following is ksymoops: The size of vmlinux.srec is 2.076Mbytes. root at 192.9.200.145:/# cp vmlinux.srec vmlinux.srec.bak Oops: kernel access of bad area, sig: 11 NIP: C002CA74 XER: LR: C002CA50 SP: C017BDA0 REGS: c017bce0 TRAP: 0800 Using defaults from ksymoops -t elf32-little -a unknown MSR: 1030 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 11 TASK = c0179ff0[0] 'swapper' Last syscall: 120 last math last altivec GPR00: C01D26D0 C017BDA0 C0179FF0 0001 9030 0006 C02C9015 FC18 GPR08: C1FD2240 38300D0A C02D3640 42333846 4222 10021A24 0030 GPR16: 0001 1032 0017BEA0 C0002BCC GPR24: C0003F78 C01A 0010 C018 0020 C01D26C8 C017BDA8 C01D26C0 Call backtrace: C0016750 C00EBDB0 C00D7930 C00D7CD4 C0003EC8 C0003FB4 C0002BCC C0021F90 C00044E0 C0004508 C000240C C018C794 C0002318 Kernel panic: Aiee, killing interrupt handler! Warning (Oops_read): Code line not seen, dumping what data is available >>???; c002ca74<= Trace; c0016750 Trace; c00ebdb0 Trace; c00d7930 Trace; c00d7cd4 Trace; c0003ec8 Trace; c0003fb4 Trace; c0002bcc Trace; c0021f90 Trace; c00044e0 Trace; c0004508 Trace; c000240c Trace; c018c794 Trace; c0002318 Hope for helps Jikun Sun ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
glibc vs. newlib
What are the experiences and tradeoffs of using newlib vs. glibc? I'm targetting 16M board (maybe some 8M), no swap space, and I'm concerned that adding glibc will suck much of this up. At the same time we'd also like to be able to use off-the-shelf components like dhcpd or telnetd, and are not sure if newlib would give us too many headaches there. Darin Johnson ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Linux on Force Computers CPCI-3750 eth drivers
On Fri, Apr 04, 2003 at 01:49:13PM +0200, luca gambazzi wrote: > > Hi > > i'm still trying to bild a running linux kernel for a Force Computers > CPCI-3750. > > I've got one more error, the ethernet card doesn't work. > is a Digital DS21143 Tulip > > i've installed the kernel drivers (i've tried with 2.4 and 2.5 > penguinppc kernel tree), and the drivers found in > http://sourceforge.net/projects/tulip, but the error is always the same. > > NETDEV WATCHDOG: eth0: transmit timed out Assuming you are booting with the pcore kernel, are you sure that the pci interrupt routing for the 3750 is identical to the 6750? Regards, -- Matt Porter porter at cox.net This is Linux Country. On a quiet night, you can hear Windows reboot. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Linux on Force Computers CPCI-3750 eth drivers
On Fri, Apr 04, 2003 at 01:49:13PM +0200, luca gambazzi wrote: > Hi > > i'm still trying to bild a running linux kernel for a Force Computers > CPCI-3750. > > I've got one more error, the ethernet card doesn't work. > is a Digital DS21143 Tulip > > i've installed the kernel drivers (i've tried with 2.4 and 2.5 > penguinppc kernel tree), and the drivers found in > http://sourceforge.net/projects/tulip, but the error is always the same. > > NETDEV WATCHDOG: eth0: transmit timed out > > here can you find a bootlog (kernelboot.txt), the tcpdump on my pc, and > the .config file I used in this case (config_2_5_66.txt) Don't use CONFIG_TULIP, use CONFIG_DE4X5 and poke the upstream authors abotu this issue. -- Tom Rini http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Linux on Force Computers CPCI-3750 eth drivers
Hi i'm still trying to bild a running linux kernel for a Force Computers CPCI-3750. I've got one more error, the ethernet card doesn't work. is a Digital DS21143 Tulip i've installed the kernel drivers (i've tried with 2.4 and 2.5 penguinppc kernel tree), and the drivers found in http://sourceforge.net/projects/tulip, but the error is always the same. NETDEV WATCHDOG: eth0: transmit timed out here can you find a bootlog (kernelboot.txt), the tcpdump on my pc, and the .config file I used in this case (config_2_5_66.txt) http://lsa1pc32.epfl.ch/~gamba/robox/ Maybe somebody has experence with this kind of error and can help me. Thanks a lot Luca Gambazzi PS Tom: I don't find the .config file who caused the crash I've posted last week, i'll search in my pc, sorry ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Linux training
>I was wondering if anyone can direct me to training courses on porting >embedded Linux to single board computers. Thank you for any direction and I >welcome all comments. MontaVista does this as well: http://www.mvista.com/training/index.html -- Todd ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Linux training
I was wondering if anyone can direct me to training courses on porting embedded Linux to single board computers. Thank you for any direction and I welcome all comments. Steven Blakeslee ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
dcbz works on 862 everywhere!
Joakim Tjernlund wrote: > hmm, no response from the maintainer(s). You don't agree? It's interesting to watch these hacks, but I can't justify complicating a general purpose function with more bus cycles by emulating a functional problem. By not using these instructions we have a working system that costs just a few more cycles during the memory copy/zero operations. If we had _working_ dcbz instructions, it would be a gain to use them, but from a system perspective it is going to cost more to "fix up" these than the code that already exists. As I said in the past, I'm sensitive to the code in the TLB exception processing. So do something to remove code and streamline the process and I'm really interested. Do something to add more code and it's going to get placed pretty low in my pile of things to do. Thanks. -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Catching bus errors in kernel mode
Hi, I'm using DENX ELDK 2.0 on a mpc855t based custom board, and I am currently writing a loadable kernel module that drives a custom FPGA. The FPGA might optionally not be there in production, but the module must be loaded anyway, and therefore must check for the presence of the FPGA. There is no dedicated signal provided (and will not be), so the only option is reading from the FPGA's address and catching a possible bus error. What would be the cleanest way to achieve this? Thanks in advance, Albert. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
ppc linux kernel 2.4.4 for ppc440/EBony using ELDK 2.0.2?
Hi, in message <005301c2fa43$73a1c690$1464a8c0 at sjeng3> you wrote: > > I've got the linuxppc_2_4_devel tree, made config for 440/Ebony, > then when I compiled the kernel, I got this problem: ... > /home/lxl/linuxppc_2_4_devel/include/linux/kernel.h:10: stdarg.h: No such > file or directory ... > This is indeed weird, how could ppc_4xx-gcc not find "stdarg.h"? the same > version > still works for the stable linuxppc-2.4.4, and I saw > /home/lxl/linuxppc_2_4_devel/include/linux/kernel.h > also has #include but ppc_4xx-gcc has no problem finding > stdarg.h. > I doubt checked and made sure I have stdarg.h at > $(eldk_root)/ppc_4xx/usr/lib/gcc-lib/ppc-linux/2.95.4/include/stdarg.h > > Anybody has this problem? or has any idea how I can make it work? This is a known problem. We use the following modification to the top level makefile in our version of the source tree (see module linuxppc_2_4_devel on our CVS server): Index: Makefile === RCS file: /cvsroot/linuxppc_2_4_devel/Makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- Makefile1 Dec 2002 22:42:52 - 1.6 +++ Makefile1 Dec 2002 23:36:15 - 1.7 ... @@ -261,7 +263,8 @@ # 'kbuild_2_4_nostdinc :=' or -I/usr/include for kernel code and you are not UML # then your code is broken! KAO. -kbuild_2_4_nostdinc:= -nostdinc $(shell $(CC) -print-search-dirs | sed -ne 's/install: \(.*\)/-I \1include/gp') +kbuild_2_4_nostdinc:= -nostdinc $(shell $(CC) -print-search-dirs | \ + sed -ne 's/install: \(.*\)/-I \1include/gp') export kbuild_2_4_nostdinc export CPPFLAGS CFLAGS CFLAGS_KERNEL AFLAGS AFLAGS_KERNEL ... Best regards, Wolfgang Denk -- Software Engineering: Embedded and Realtime Systems, Embedded Linux Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd at denx.de Intel told us the Pentium would have "RISK" features... ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/