Power Developer https://powerdeveloper.org/forums/ |
|
CAN bus https://powerdeveloper.org/forums/viewtopic.php?f=12&t=1466 |
Page 1 of 2 |
Author: | vedran [ Thu Jan 03, 2008 2:02 pm ] |
Post subject: | CAN bus |
Hi! Could someone please point me in the right direction to enable the CAN bus on efika 5200 board with openSUSE 10.3. |
Author: | Neko [ Thu Jan 03, 2008 4:53 pm ] |
Post subject: | Re: CAN bus |
Okay the configuration is as follows: CAN1 is connected to the CAN1 port - it's present on I2C1 pins (W19 and V19). The way I see it you need to look at Chapter 7 of the manual and look at the GPS Port Configuration Register, for the "ALT" bits - will set up alternative configuration so that CAN1 is on I2C1. Code: 01 = ALT CAN position: CAN1 on I2C1, CAN2 on Tmr0/1 pins, see Note 1
Doing this in my head, you can do this from Firmware using;Code: 0xf0000b00 dup l@ 0x10000000 and l!
You can then access the MSCAN bus at MBAR + 0x0900. I would suggest you perform that logic operation above and add in the code to a Forth script or your nvramrc to enable it on boot;Code:
s" /builtin" find-device
You may need to add a probe-all above it in nvramrc if it's not there, and put all this between that and "install-console banner" if that's present.new-device s" mscan" 2dup device-name device-type 0xf0000900 0x40 reg s" MPC52xx MSCAN Controller 1" encode-string s" .description" property s" mpc5200b-mscan" encode-string s" mpc5200-mscan" encode-string encode+ s" compatible" property 0 encode-int s" cell-index" property finish-device Please do not try this unless you're sure! Now all you need is a driver for the CAN bus, and you're all set (this at least gives any arch/powerpc-compliant driver all the things it needs from the firmware) As a side effect, it seems that the CAN pins on the bottom of the board are an effective I2C bus on boot without further configuration. You could add the bus with this snippet (mutually exclusive with the above): Code:
s" /builtin" find-device
There are obviously missing interrupt properties etc. but I will leave that as an exercise to the reader. new-device s" i2c" 2dup device-name device-type 0xf0003d00 0x1c reg s" MPC52xx i2c Controller 1" encode-string s" .description" property s" mpc5200b-i2c" encode-string s" mpc5200-i2c" encode-string encode+ s" compatible" property 0 encode-int s" cell-index" property finish-device If someone manages to test these please give me a nudge and I will integrate them happily into the Device Tree Supplement and Platform Specifications page! I know a lot of people wanted an I2C bus on their Efika for controlling devices, and this is the key information.. |
Author: | vedran [ Fri Feb 29, 2008 10:54 am ] |
Post subject: | CAN bus nightmare |
I tried that and it failed with: cpu_exception: SRR0 0x0101EE34 SRR1 0x00003030 MSR 0x00003030 LR 0x0101EE10 CTR 0x01018C84 CR 0x48002022 XER 0x20000000 DAR 0x709A2C93 DSISR 0x40000000 Type 3 GPR[] 0x0000000B 0x017FF5B0 0x00000000 0x0000000B 0x017FF5BC 0xFFFFFFFE 0x000000 07 0x017FF6B0 GPR[] 0x07C043E4 0x0000000B 0x00000000 0x017FF5B8 0x28004022 0x1001C0D0 0x000000 00 0xC6695D00 GPR[] 0xC0001FFF 0xC000002A 0x00001FFF 0x00000012 0x08000000 0x8000002A 0x002652 DA 0xF000002A GPR[] 0x00000000 0x00000001 0x00000000 0x00000000 0x017FF718 0x00000010 0x07C5D7 40 0x709A2C93 ibat0U 0x00001FFF ibat0L 0x00000012 ibat1U 0xF0001FFF ibat1L 0xF0000012 ibat2U 0x00000000 ibat2L 0x00000000 ibat3U 0x00000000 ibat3L 0x00000000 dbat0U 0xF0001FFF dbat0L 0xF000002A dbat1U 0x80001FFF dbat1L 0x8000002A dbat2U 0x00001FFF dbat2L 0x00000012 dbat3U 0xC0001FFF dbat3L 0xC000002A HID0 0x0000C000 deadend: |
Author: | Neko [ Sat Mar 01, 2008 3:40 pm ] |
Post subject: | Re: CAN bus nightmare |
Quote: I tried that and it failed with:
Just by running the code snippet?
|
Author: | vedran [ Mon Mar 03, 2008 4:41 am ] |
Post subject: | Nightmare continues |
There was also a snippet which is supposed to fix sound, but other than that nothing else. |
Author: | Neko [ Mon Mar 03, 2008 7:28 am ] |
Post subject: | Re: Nightmare continues |
Quote: There was also a snippet which is supposed to fix sound, but other than that nothing else.
Are you running the same firmware as me (20070122) as posted in Platform Support?Try without the sound fix, which should not even be required with this firmware. I am trying to reproduce the crash and burn here without success.. the new (possibly final) efika.forth will be delayed because of this extra testing, but it's worthwhile because of the problem. Can you reproduce it if you type out the snippet manually, word by word, pressing return at the relevant points (where it seems safe to do so, but you can literally press return instead of space because Forth is cool :)? |
Author: | vedran [ Tue Mar 04, 2008 4:23 am ] |
Post subject: | My bad! |
It was unrelated problem! The firmware update is the same, and it boots ok, but openSUSE 10.3 kernel complains something about duplicate entries in device tree. |
Author: | Neko [ Tue Mar 04, 2008 4:57 am ] |
Post subject: | Re: My bad! |
Quote: It was unrelated problem! The firmware update is the same, and it boots ok, but openSUSE 10.3 kernel complains something about duplicate entries in device tree.
Post the error please?
|
Author: | vedran [ Fri Mar 07, 2008 10:22 am ] |
Post subject: | Kernel error |
This is cut from dmesg: snip snip ---------- device-tree: Duplicate name in /builtin@F0000000, renamed to "mscan@F0000900#1" NET: Registered protocol family 16 kobject_add failed for f0000900.mscan with -EEXIST, don't try to register things with the same name in the same directory. Call Trace: [c0615e20] [c000843c] show_stack+0x58/0x188 (unreliable) [c0615e70] [c016cdac] kobject_shadow_add+0x160/0x1a4 [c0615e90] [c02266e8] device_add+0x90/0x4ec [c0615ed0] [c000a36c] of_device_register+0x24/0x34 [c0615ee0] [c000a8e4] of_platform_device_create+0x150/0x17c [c0615f00] [c000a93c] of_platform_bus_create+0x2c/0xb4 [c0615f20] [c000ab04] of_platform_bus_probe+0xe4/0x134 [c0615f40] [c04299cc] mpc52xx_declare_of_platform_devices+0x1c/0x40 [c0615f50] [c041c6c8] ppc_init+0x6c/0x84 [c0615f60] [c0416248] kernel_init+0xf0/0x288 [c0615ff0] [c00137d4] kernel_thread+0x44/0x60 arch/powerpc/platforms/52xx/mpc52xx_common.c: Error while probing of_platform bus PCI: Probing PCI hardware MPC52xx BestComm inited |
Author: | Neko [ Fri Mar 07, 2008 10:23 am ] |
Post subject: | Re: Kernel error |
Quote: This is cut from dmesg:
This looks as if you just ran the snippet twice?
|
Author: | vedran [ Mon Mar 10, 2008 4:33 am ] |
Post subject: | Mea culpa! |
It appears I did manage to screw up boot up precedure, so it DID run the snippet twice. Very sorry for that, I'm still new to the power architecture and openfirmware. But not one more thing that is bugging me, kernel driver for can controller (http://www.peak-system.com/linux/files/ ... 6.7.tar.gz) refuses to compile on openSUSE 10.3. Kernel headers and sources are both installed but it still nags that it still can find version.h file. Ideas are most welcome :-) Thanks! |
Author: | vedran [ Mon Mar 10, 2008 4:34 am ] |
Post subject: | |
that was supposed to be "can't find version.h file" :-) |
Author: | Neko [ Mon Mar 10, 2008 4:56 am ] |
Post subject: | |
Quote: that was supposed to be "can't find version.h file" :-)
I'm not even sure that version of the driver supports the MPC52xx..?Anyway, the instruction PDF coming with it explains; Quote: 2. The “/lib/modules/'uname -r'/build/include/linux/version.h“ file has to exist or being
Do you have your kernel build environment set up exactly how your distribution requires? The instructions imply that you are building the module for an already existing kernel - you should build one first, boot into it, and then compile against the running kernel, modules and installed kernel headers for that version.copied before from the path “/boot/vmlinuz.version.h“. version.h only gets generated from successful kernel builds :D |
Author: | vedran [ Mon Mar 10, 2008 7:05 am ] |
Post subject: | Works! |
There is nothing a little kernel update won't fix :-) Ran zypper up, to update the system, among other things it pulled the new kernel (2.6.22.17-0.1-default) and with that compile went on smoothly. Thanks again for your patience! :-) |
Author: | vedran [ Mon Mar 10, 2008 7:26 am ] |
Post subject: | Spoke to soon |
Kernel module compiles and loads ok, but it appears it can't find any interfaces. -- snip -- # cat /proc/pcan *------------ PEAK-Systems CAN interfaces (www.peak-system.com) ------------- *-------------------------- Release_20080220_n ---------------------------- *---------------- [mod] [isa] [pci] [dng] [par] [usb] [pcc] ----------------- *--------------------- 0 interfaces @ major 253 found ----------------------- *n -type- ndev --base-- irq --btr- --read-- --write- --irqs-- -errors- status -- end snip -- How can I be sure that the forth snippet did it job? |
Page 1 of 2 | All times are UTC-06:00 |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |