Breno wrote: > Wolfgang Grandegger wrote: >> Breno wrote: >> >>> Wolfgang Grandegger wrote: >>> >>>> Breno wrote: >>>> >>>> >>>>> Wolfgang Grandegger wrote: >>>>> >>>>> >>>>>> Wolfgang Grandegger wrote: >>>>>> >>>>>> >>>>>>> [EMAIL PROTECTED] wrote: >>>>>>> >>>>>>> >>>>>>>>> Breno wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>>> Wolfgang Grandegger wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> Breno wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> Wolfgang Grandegger wrote: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> Breno wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Wolfgang, I got the cannetdriver26 as you suggested some >>>>>>>>>>>>>> e-mail >>>>>>>>>>>>>> ago. Sorry my ignorance but how can I get it working o my >>>>>>>>>>>>>> kernel. I >>>>>>>>>>>>>> mentioned before that you have a script do get it build. >>>>>>>>>>>>>> Could you >>>>>>>>>>>>>> help me again on this issue? >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> For what kernel? >>>>>>>>>>>>> >>>>>>>>>>>>> Wolfgang. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> Hi Wolfgang, I got a DENX Linux 2.6 Kernel Tree from DENX >>>>>>>>>>>> project. >>>>>>>>>>>> The last >>>>>>>>>>>> commit I have is: >>>>>>>>>>>> >>>>>>>>>>>> commit 76e8fbcc9e3e928a6898a93e6077264f5cb8f432 >>>>>>>>>>>> Author: Wolfgang Grandegger <[EMAIL PROTECTED]> >>>>>>>>>>>> Date: Thu Mar 27 17:41:09 2008 +0100 >>>>>>>>>>>> >>>>>>>>>>>> Socket-CAN: merge with SVN trunk revision 690 >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> Can you use linux-2.6.25.4 from kernel.org for your hardware? >>>>>>>>>>> >>>>>>>>>>> Wolfgang. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> But it doesn't have support for Xenomai, rigth? If so, which >>>>>>>>>> version >>>>>>>>>> should I use? >>>>>>>>>> >>>>>>>>>> >>>>>>>>> You are right, an ADEOS i-Pipe patch is not yet avaliable for >>>>>>>>> 2.6.25. >>>>>>>>> Just to understand your requirements. You want to use the Xenomai >>>>>>>>> real-time extension because you have hard real-time requirements, >>>>>>>>> right? >>>>>>>>> Do you want to access the CAN bus from a Xenomai real-time task? >>>>>>>>> If yes, >>>>>>>>> then you should use RT-Socket-CAN. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> Anyway,I got the Denx-2.6.25 and I wanna configure it on my system >>>>>>>>>> regardless of this >>>>>>>>>> version doesn't have Xenomai support. To get an correct kernel >>>>>>>>>> image on >>>>>>>>>> my >>>>>>>>>> present tree(2.6.24-commit >>>>>>>>>> 76e8fbcc9e3e928a6898a93e6077264f5cb8f432 ) I >>>>>>>>>> executed make lite5200_defconfig, at the kernel option and I set >>>>>>>>>> lite5200.dts >>>>>>>>>> and then do make zImage. That new tree seems have some >>>>>>>>>> differences, do >>>>>>>>>> you >>>>>>>>>> know what commands do I have to execute? I'm using lite5200 powerpc >>>>>>>>>> board. >>>>>>>>>> >>>>>>>>>> >>>>>>>>> It does not make sense to switch to 2.6.25 now if you have real-time >>>>>>>>> requirements. Please stop jumping from one setup to another. If >>>>>>>>> something is not working, I'm willing to help. >>>>>>>>> >>>>>>>>> Wolfgang. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> Hi Wolfgang, thanks for your support. I'm intending to use CAN >>>>>>>> along with >>>>>>>> rt-tasks. I had dropped the rt-socket CAN because of the error it >>>>>>>> appears >>>>>>>> when I send messages as explained some e-mails ago. For example: >>>>>>>> >>>>>>>> ./rtcanconfig rtcan0 -b100000 start ---> works properly! >>>>>>>> ./rtcanrecv rtcan1 & >>>>>>>> ./rtcansend rtcan0 -i0x123 1 2 3 4 5 6 7 8 >>>>>>>> #0 [8] <0x123> 00 00 00 04 05 06 07 08 ---> it seems to lose the >>>>>>>> threes >>>>>>>> first data. >>>>>>>> >>>>>>>> >>>>>>> Then let's try to fix that. Have you built and ran rtcansend and >>>>>>> rtcanrecv as I suggested (the one created by "$ make" in the >>>>>>> Xenomai top >>>>>>> directory)? Did it make a difference? >>>>>>> >>>>>>> Do you see errors when you use the rtcanrecv option "-e 0xffff"? >>>>>>> >>>>>>> ./rtcanrecv -e 0xffff rtcan1 >>>>>>> >>>>>>> >>>>>>> >>>>>>>> My socket-can applications works perfectly!!! >>>>>>>> >>>>>>>> >>>>>>> Fine, but it's not useful to call Socket-CAN from an Xenomai real-time >>>>>>> application. You will loose determinism. >>>>>>> >>>>>>> And we should continue this thread with CC to the Xenomai-help mailing >>>>>>> list because it might be useful for others as well. >>>>>>> >>>>>>> >>>>>> Maybe there is something wrong with your MSCAN clock settings. >>>>>> >>>>>> What frequency have you specified for >>>>>> CONFIG_XENO_DRIVERS_CAN_MSCAN_CLOCK (check your kernel .config)? >>>>>> >>>>>> And what MPC5200 CPU do you have? Could you show use the initial output >>>>>> of your bootloader? >>>>>> >>>>>> Wolfgang. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>> Hi Wolfgang, I have a stick on my board with lite5200 v2.0b. And at the >>>>> top of my processor chip I have MPC5200b. The clock frequency is >>>>> 400MHz. >>>>> >>>>> >>>> Well, this information does not match the boot output below. >>>> >>>> >>>> >>>>> My first messages on boot process is: >>>>> >>>>> U-Boot 1.1.4 (Feb 10 2006 - 11:06:33) >>>>> CPU: MPC5200 v1.2 at 462 MHz >>>>> >>>>> >>>> Seems to be a Rev. A CPU at 462 MHz. 1.1.4 is very old, though. >>>> >>>> >>>> >>>>> Bus 132 MHz, IPB 66 MHz, PCI 33 MHz >>>>> >>>>> Board: Motorola MPC5200 (IceCube) >>>>> >>>>> >>>> BTW: do you have one or two PCI connectors on the board? >>>> >>>> >>>> >>>>> I2C: 85 kHz, ready >>>>> DRAM: 64 MB >>>>> FLASH: 16 MB >>>>> PCI: Bus Dev VenId DevId Class Int >>>>> 00 1a 1057 5803 0680 00 >>>>> In: serial >>>>> Out: serial >>>>> Err: serial >>>>> Net: FEC ETHERNET >>>>> IDE: Bus 0: not available Autostarting. Press any key to >>>>> abort... >>>>> Hit any key to stop autoboot: 5 >>>>> => tftp >>>>> Using FEC ETHERNET device >>>>> TFTP from server 192.168.1.100; our IP address is 192.168.1.101 >>>>> Filename '5200/cuImage.52xx'. >>>>> Load address: 0x100000 >>>>> Loading: >>>>> *################################################################# >>>>> ################################################################# >>>>> ################################################################# >>>>> ################################################################# >>>>> done >>>>> Bytes transferred = 1329135 (1447ef hex) >>>>> => bootm >>>>> ## Booting image at 00100000 ... >>>>> Image Name: Linux-2.6.24.4-g5e9901e9-dirty >>>>> Created: 2008-04-15 16:35:09 UTC >>>>> Image Type: PowerPC Linux Kernel Image (gzip compressed) >>>>> Data Size: 1329071 Bytes = 1.3 MB >>>>> Load Address: 00400000 >>>>> Entry Point: 0040055c >>>>> Verifying Checksum ... OK >>>>> Uncompressing Kernel Image ... OK >>>>> >>>>> >>>>> The frequency specified on CONFIG_XENO_DRIVERS_CAN_MSCAN_CLOCK is >>>>> 66000000Hz. Is that correct? >>>>> >>>>> >>>> For MPC5200 Rev. B CPU, it should be 33000000, but you have an old Rev. >>>> A CPU and in that case 66000000 is correct. >>>> >>>> There is some help for corresponding Kconfig option: >>>> >>>> config XENO_DRIVERS_CAN_MSCAN_CLOCK >>>> depends on XENO_DRIVERS_CAN_MSCAN >>>> int "Clock Frequency in Hz" >>>> default 66000000 >>>> help >>>> >>>> The MSCAN driver selects the oscillator clock (SYS_XTAL_IN) as >>>> clock source for MSCAN, which is typically 33 MHz. Due to a >>>> hardware bug on the MPC5200 Rev. A chips, the IP bus clock >>>> (IP_CLK) is used instead, which is typically 66 or 132 MHz. >>>> >>>> How does your CAN cabling look like. Is the CAN bus properly terminated >>>> on both ends? >>>> >>>> Wolfgang. >>>> >>>> >>> Hi Wolfgang, it's not a professional cable!!! I just use a 10 pins flat >>> cable to connect CAN0 and CAN1 on board interfaces for testings, I >>> mean, I don't have a bus exactly but just a simple cable. Could you >>> pass me a good reference of cables for a property use? >>> >> >> Handmade cables are OK but you need proper termination with 120 Ohm at >> both ends of the cable. Either there is on-board termination, sometimes >> selectable via jumpers, or you have to add resistors at the end of your >> cable. Take an Ohmmeter and measure the resistance between pin 2 and 7 >> of your connector. >> >> Wolfgang. >> > Hi Wolfgang, I got the rt-socket working now. I did your suggestion > about xenomai make and make install steps.
Good news. > But It doesn't mean that all application I have made using Xenomai API I > have to follow those steps, right? I can use the Makefile in > Xenomais/examples just as is to generate my "executables". Of course, no problem if you build your application correctly. In the meantime I have verified that RT-Socket-CAN is working correctly on my TQM5200 board. The attached log file might be useful for you as well. Wolfgang.
$ export CROSS_COMPILE=ppc_6xx $ cd <work-dir> >>> Get the sources $ git clone git://git.denx.de/linux-2.6-denx.git $ export KDIR=$PWD/linux-2.6-denx $ svn co http://svn.gna.org/svn/xenomai/branches/v2.4.x xenomai-2.4.x $ export XDIR=$PWD/xenomai-2.4.x $ cd $KDIR $ git checkout origin/DENX-v2.6.24-stable >>> Prepare kernel to use Xenomai $ cd $XDIR $ scripts/prepare-kernel.sh --linux=$KDIR --verbose --arch=powerpc >>> Configure and make the Linux kernel with RT-Socket-CAN support $ cd $KDIR $ make ARCH=powerpc tqm5200_defconfig $ make ARCH=powerpc menuconfig ... enable RT-Socket-CAN and MSCAN driver ... <*> RT-Socket-CAN, CAN raw socket interface [*] Enable debug output (NEW) [ ] Enable TX loopback to local sockets (NEW) (1024) Size of receive ring buffers (must be 2^N) (NEW) (4) Maximum number of devices (NEW) (16) Maximum number of receive filters per device (NEW) < > Virtual CAN bus driver (NEW) <*> MSCAN driver for MPC52xx [*] Enable CAN 1 (NEW) [*] Enable CAN 2 (NEW) (66000000) Clock Frequency in Hz (NEW) Pin Configuration (CAN 1 on I2C1 pins, CAN 2 on TMR01 pin ... $ make ARCH=powerpc uImage $ cp -p arch/powerpc/boot/uImage /tftpboot/tqm5200/ >>> Configure, make and install the Xenomai user space utilities $ cd $XDIR $ ./configure --host=ppc-linux --prefix=/root/xeno-rsc $ make $ export DESTDIR=/opt/eldk/ppc_6xx $ make install >>> Boot the new kernel and mount the rootfs /opt/eldk/ppc_6xx ## Booting kernel from Legacy Image at 00600000 ... Image Name: Linux-2.6.24.7-dirty Created: 2008-05-23 13:01:44 UTC Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 1694392 Bytes = 1.6 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK ## Flattened Device Tree blob at 00000000 Booting using the fdt blob at 0x5f0000 Using tqm5200 machine description Linux version 2.6.24.7-dirty ([EMAIL PROTECTED]) (gcc version 4.0.0 (DENX ELDK 4.1 4.0.0)) #2 Fri May 23 15:01:42 CEST 2008 Zone PFN ranges: DMA 0 -> 32768 Normal 32768 -> 32768 Movable zone start PFN for each node early_node_map[1] active PFN ranges 0: 0 -> 32768 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 Kernel command line: root=/dev/nfs rw nfsroot=10.0.30.2:/opt/eldk4/ppc_6xx ip=10.0.30.210:10.0.30.2:::tqm5200:eth0:off panic=1 console=ttyPSC0,115200 MPC52xx PIC is up and running! PID hash table entries: 512 (order: 9, 2048 bytes) clocksource: timebase mult[79364d9] shift[22] registered I-pipe 2.1-03: pipeline enabled. console [ttyPSC0] enabled Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 125908k/131072k available (3364k kernel code, 5004k reserved, 152k data, 288k bss, 160k init) SLUB: Genslabs=11, HWalign=32, Order=0-1, MinObjects=4, CPUs=1, Nodes=1 Mount-cache hash table entries: 512 net_namespace: 64 bytes NET: Registered protocol family 16 PCI: Probing PCI hardware DMA: MPC52xx BestComm driver DMA: MPC52xx BestComm engine @f0001200 ok ! SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb Time: timebase clocksource has been installed. NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 2, 16384 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered I-pipe: Domain Xenomai registered. Xenomai: hal/powerpc started. Xenomai: real-time nucleus v2.5-devel (Flying In A Blue Dream) loaded. Xenomai: starting native API services. Xenomai: starting POSIX services. Xenomai: starting RTDM services. JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc. io scheduler noop registered io scheduler anticipatory registered (default) io scheduler deadline registered io scheduler cfq registered Generic RTC Driver v1.07 Serial: MPC52xx PSC UART driver f0002000.serial: ttyPSC0 at MMIO 0xf0002000 (irq = 129) is a MPC52xx PSC f0002200.serial: ttyPSC1 at MMIO 0xf0002200 (irq = 130) is a MPC52xx PSC f0002400.serial: ttyPSC2 at MMIO 0xf0002400 (irq = 131) is a MPC52xx PSC RAMDISK driver initialized: 16 RAM disks of 32768K size 1024 blocksize loop: module loaded mpc52xx MII bus: probed Driver 'sd' needs updating - please use bus_type methods ata: MPC52xx IDE/ATA libata driver scsi0 : mpc52xx_ata ata1: PATA max PIO4 ata_regs 0xf0003a00 irq 135 usbmon: debugfs is not available ppc-of-ohci f0001000.usb: OF OHCI ppc-of-ohci f0001000.usb: new USB bus registered, assigned bus number 1 ppc-of-ohci f0001000.usb: irq 134, io mem 0xf0001000 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. i2c /dev entries driver RT-Socket-CAN 0.90.2 - (C) 2006 RT-Socket-CAN Development Team MSCAN: CAN 1 routed to I2C1 pins and CAN2 to TMR01 pins rtcan: registered rtcan0 rtcan0: MSCAN driver loaded (port 1, base-addr 0xf0000900 irq 145) rtcan: registered rtcan1 rtcan1: MSCAN driver loaded (port 2, base-addr 0xf0000980 irq 146) RTCAN SJA1000 driver initialized PEAK-PCI-CAN: initializing device 001c:0001 PEAK-PCI-CAN: base_addr=c907c000 conf_addr=c907a000 irq=16 rtcan: registered rtcan2 PEAK-PCI-CAN: base_addr=c907e400 conf_addr=c907a000 irq=16 rtcan: registered rtcan3 TCP cubic registered Initializing XFRM netlink socket NET: Registered protocol family 1 NET: Registered protocol family 17 RPC: Registered udp transport module. RPC: Registered tcp transport module. drivers/rtc/hctosys.c: unable to open rtc device (rtc0) net eth0: attached phy 0 to driver LXT971 IP-Config: Guessing netmask 255.0.0.0 IP-Config: Complete: device=eth0, addr=10.0.30.210, mask=255.0.0.0, gw=255.255.255.255, host=tqm5200, domain=, nis-domain=(none), bootserver=10.0.30.2, rootserver=10.0.30.2, rootpath= Looking up port of RPC 100003/2 on 10.0.30.2 PHY: f0003000:00 - Link is Up - 100/Full Looking up port of RPC 100005/1 on 10.0.30.2 VFS: Mounted root (nfs filesystem). Freeing unused kernel memory: 160k init modprobe: FATAL: Could not load /lib/modules/2.6.24.7-dirty/modules.dep: No such file or directory modprobe: FATAL: Could not load /lib/modules/2.6.24.7-dirty/modules.dep: No such file or directory INIT: version 2.85 booting Welcome to DENX Embedded Linux Environment Press 'I' to enter interactive startup. Building the cache [ OK ] storage network audio done[ OK ] Timed out waiting for time change. Setting clock : Thu Oct 24 04:56:47 UTC 1963 [ OK ] Setting hostname tqm5200: [ OK ] Mounting local filesystems: [ OK ] Enabling swap space: [ OK ] INIT: Entering runlevel: 3 Entering non-interactive startup Bringing up loopback interface: [ OK ] Starting system logger: [ OK ] Starting kernel logger: [ OK ] Starting portmap: portmap: fork: No such device[ OK ] Mounting NFS filesystems: [ OK ] Mounting other filesystems: [ OK ] Starting xinetd: [ OK ] DENX ELDK version 4.1 build 2007-01-19 Linux 2.6.24.7-dirty on a ppc tqm5200 login: root Last login: Thu Oct 24 04:58:31 from 10.0.30.2 # export PATH=$PATH:/root/xeno-rsc/sbin:/root/xeno-rsc/bin # rtcanconfig rtcan0 -b 500000 up # rtcanconfig rtcan1 -b 500000 up # cat /proc/rtcan/devices Name___________ _Baudrate State___ TX_Counter RX_Counter ____Errors rtcan0 500000 active 0 0 0 rtcan1 500000 active 0 0 0 rtcan2 undefined stopped 0 0 0 rtcan3 undefined stopped 0 0 0 # cat /proc/rtcan/rtcan0/info Device rtcan0 Controller MSCAN-MPC5200 Board unkown Clock-Hz 33000000 Baudrate 500000 Bit-time brp=3 prop_seg=0 phase_seg1=16 phase_seg2=5 sjw=1 sam=0 Ctrl-Mode State active TX-Counter 0 RX-Counter 0 Errors 0 Refcount 0 # cat /proc/rtcan/rtcan2/info Device rtcan2 Controller SJA1000 Board PEAK-PCI Clock-Hz 8000000 Baudrate undefined Bit-time brp=0 prop_seg=0 phase_seg1=0 phase_seg2=0 sjw=0 sam=0 Ctrl-Mode State stopped TX-Counter 0 RX-Counter 0 Errors 0 Refcount 0 # rtcanrecv -v -e 0xffff & interface all Using err_mask=0xffff #0: (2) <0x001> [8] 01 02 03 04 05 06 07 08 #1: (2) <0x001> [8] 01 02 03 04 05 06 07 08 #2: (2) <0x001> [8] 01 02 03 04 05 06 07 08 #3: (2) <0x001> [8] 01 02 03 04 05 06 07 08 #4: (2) <0x001> [8] 01 02 03 04 05 06 07 08 #5: (2) <0x001> [8] 01 02 03 04 05 06 07 08 #6: (2) <0x001> [8] 01 02 03 04 05 06 07 08 #7: (2) <0x001> [8] 01 02 03 04 05 06 07 08 #8: (2) <0x001> [8] 01 02 03 04 05 06 07 08 #9: (2) <0x001> [8] 01 02 03 04 05 06 07 08 # rtcansend -d 500 -l 10 rtcan0 1 2 3 4 5 6 7 8 # cat /proc/rtcan/devices Name___________ _Baudrate State___ TX_Counter RX_Counter ____Errors rtcan0 500000 active 10 0 0 rtcan1 500000 active 0 10 0 rtcan2 undefined stopped 0 0 0 rtcan3 undefined stopped 0 0 0
_______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
