compact flash driver
Dear sir Do you have compact flash card driver supported in u-boot.I need it.If you don't have it .Can you tell me how the CF card initialize if you know how to initialize it?
undefined symbols of modules
Hello, when i try to compile my kernel extension as modul, i get some undefined references. But a look in System.map shows, that the relevant symbols are defined in the main kernel. Why then those undefined references ? Any hint is appreciated! bye Josef make ARCH=ppc -C linux modules make[1]: Entering directory `/scratch-local/esm/linux' CHK include/linux/version.h Building modules, stage 2. MODPOST *** Warning: cpm_load_patch [drivers/usb/host/m82xx-hcd.ko] undefined! *** Warning: cpmp [drivers/usb/host/m82xx-hcd.ko] undefined!
undefined symbols of modules
On Tue, May 30, 2006 at 09:45:46AM +0200, Josef Angermeier wrote: Hello, when i try to compile my kernel extension as modul, i get some undefined references. But a look in System.map shows, that the relevant symbols are defined in the main kernel. Why then those undefined references ? Symbol must be exported to be available for modules, just being listed in System.map isn't enough. Try adding EXPORT_SYMBOL(...) for those undefined references. -- Eugene
LXT973 support (dual PHY with single MDIO)
Hi everybody, I'm trying to bring up the two ethernet ports on a LXT973 dual-PHY chip. I've declared two FCC platform devices, which are detected and handled by the driver/net/fs_enet driver. My issue comes from MDIO support. The LXT973 has a single MDIO port which answers to two addresses, one for each PHY. The MDC and MDIO lines are connected to GPIO pins (no PHY interrupt), so I'm using the bitbang MDIO driver. I've declared a MPC82xx_MDIO_BB platform device, and set bus_id to 0:00 for both FCC ethernet devices. The first ethernet device works fine, but the second complains that the PHY is already in use. As the PHY read/write accesses are protected by the bus-mdio_lock, I thought about declaring a second MDIO platform device using the same I/O pins as the first. Does anybody knows any problem I could run into using that approach ? Is there a better method to handle the LXT973 MDIO ? Thanks in advance for any help you can provide. Best regards, Laurent Pinchart
LXT973 support (dual PHY with single MDIO)
I'm sucesfully using this chip with denx.de 2.4.25 kernel and single MDIO port. You need to change auto PHY-addr detection method. By default it detects both PHYs on same addr.
[SOLVED] LXT973 support (dual PHY with single MDIO)
Hi, once again, posting to a mailing list helped me solving my problem. It should have been obvious that the MDIO bus is really a bus, and can as such support several devices. The issue was that the drivers/net/fs_enet driver set bus-phy_mask to ~0x9, and the LXT973 uses addresses 0 and 1. Address 1 thus never got probed. What's the reason for probing addresses 0 and 3 only ? Laurent Pinchart
Can't get CoralP drivers to work
In message 1402.194.3.133.184.114040.squirrel at webmail.enib.fr you wrote: This seems ok to me but I don't have any video signal. My screen remains blank. What's your boot arguments? Where is your console device, on the serial port or on the frame buffer? My boot arguments : # more /proc/cmdline console=tty0 console=ttyS1,9600 devfs=mount ip=bootp root=/dev/nfs rw My console is on the serial port (ttyS1 on SMC2). xf86OpenConsole: Cannot open /dev/tty0 (No such file or directory) ... Did you enable all of the following options in your kernel config? CONFIG_FB=y CONFIG_DUMMY_CONSOLE=y CONFIG_FB_MB86290=y CONFIG_FBCON_ADVANCED=y CONFIG_FBCON_CFB16=y CONFIG_FBCON_FONTS=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_VT=y CONFIG_VT_CONSOLE=y My guess is that CONFIG_VT and/or CONFIG_VT_CONSOLE might be missing. All those options are enabled. As I said earlier, when the driver loads, my monitor don't receive any video signal. I can force it by calling at the end of the initialization of the driver : reg = MB86290FB_READ_DISP_REGISTER(GDC_DISP_REG_EXT_MODE); MB86290FB_WRITE_DISP_REGISTER(GDC_DISP_REG_EXT_MODE, reg | 0x8001); This command enables the display, and garbage appears on the monitor. Then if i do : # cat /dev/urandom /dev/fb0 I should see dummy pixels on the screen but in fact nothing happens. This is still the same garbage on the screen. I use a custom processor card based on a MPC8270. I can't figure out if the problem comes from the configuration of my kernel (all the needed options are enabled) or if it is in the code of the initialisation of my platform. This is the first time I try to use framebuffer graphics, so I'm new with it. Can the framebuffer work from a serial console on a platform without keyboard ? Thanks for your help.
Linux kernel thread with Linux 2.6.x
Hi, Thanks for your answer, but a tasklet runs in interrupt context (in_interrupt() != 0) so it doesn't support schedule() call included in down semaphore function. Any other idea ? Laurent. -Message d'origine- De : Thiago Galesi [mailto:thiagogalesi at gmail.com] Envoy? : lun. 29 mai 2006 18:13 ? : Laurent Lagrange Cc : linuxppc-embedded at ozlabs.org Objet : Re: Linux kernel thread with Linux 2.6.x As the interrupt handler can't be scheduled, I have made a kernel thread which waits forever on a semaphore. This semaphore is set when a received packet interrupt occured. You should look into tasklets for this. Not that your system is not OK, but, as you said it, it's not fast enough. Note that you still have some limitations using tasklets, but it's more flexible than Interrupt handlers.
fs_enet segfaults when adding network interface to bridge
Hi everybody, I ran into a segfault in the fs_enet driver when adding the network interface to an ethernet bridge. This only happens when the interface is down. - Kernel version - Linux tbox-cp11 2.6.17-rc3-g7f02f290-dirty #549 Tue May 30 13:25:37 CEST 2006 ppc unknown (from main linux-2.6 git repository) - End of kernel version - - Oops report - Oops: kernel access of bad area, sig: 11 [#1] NIP: C0109884 LR: C010D420 CTR: REGS: c027d7f0 TRAP: 0300 Tainted: P (2.6.17-rc3-g7f02f290-dirty) MSR: 9032 EE,ME,IR,DR CR: 24000222 XER: DAR: 0140, DSISR: 2000 TASK = c0851090[42] 'brctl' THREAD: c027c000 GPR00: C010D414 C027D8A0 C0851090 C027D8D0 F0A0 EFFF GPR08: C026E380 C021 C023 C021 1001D150 00FFE000 0001 GPR16: 007FFF00 7FDD0AC0 10072C94 7FDD0AD8 10072CA4 GPR24: 1A48 C027D8D0 C027D8D0 C08A1A60 C027DC50 C08A1800 NIP [C0109884] phy_ethtool_gset+0x0/0x48 LR [C010D420] fs_get_settings+0x34/0x48 Call Trace: [C027D8A0] [C010D414] fs_get_settings+0x28/0x48 (unreliable) [C027D8C0] [C013DDC0] dev_ethtool+0x9bc/0x13c8 [C027DC40] [C018CBC0] port_cost+0x58/0x108 [C027DCB0] [C018D3E8] br_add_if+0x174/0x2f4 [C027DCE0] [C018D9AC] add_del_if+0x94/0x98 [C027DD00] [C018DD68] br_dev_ioctl+0x70/0xae4 [C027DE00] [C013B42C] dev_ifsioc+0x17c/0x404 [C027DE20] [C013BA4C] dev_ioctl+0x398/0x4e8 [C027DEB0] [C012EEFC] sock_ioctl+0x154/0x220 [C027DEE0] [C0067164] do_ioctl+0x88/0x9c [C027DEF0] [C0067230] vfs_ioctl+0xb8/0x3f0 [C027DF10] [C00675A8] sys_ioctl+0x40/0x74 [C027DF40] [C00040E0] ret_from_syscall+0x0/0x38 Instruction dump: 7c0803a6 4e800020 2f80 409eff78 4bb8 8804000e 2b81 40bdff70 3860ffea 4bd4 61200040 4b84 81230140 91240004 80030144 90040008 - End of oops report - - Source lines - [C0109884] phy_ethtool_gset+0x0/0x48 (drivers/net/phy/phy.c:290) [C010D414] fs_get_settings+0x28/0x48 (drivers/net/fs_enet/fs_enet-main.c:885) [C013DDC0] dev_ethtool+0x9bc/0x13c8 (net/core/ethtool.c:122) [C018CBC0] port_cost+0x58/0x108 (net/bridge/br_if.c:54) - End of source lines - phy_ethtool_gset segfaults when trying to access phydev-supported because phydev is NULL. As I'm not familiar with the fs_enet driver, I'm looking for advices regarding what to fix and how to fix it. Laurent Pinchart
Linux kernel thread with Linux 2.6.x
On Tue, 30 May 2006 11:46:09 +0200, Laurent Lagrange wrote: Thanks for your answer, but a tasklet runs in interrupt context (in_interrupt() != 0) so it doesn't support schedule() call included in down semaphore function. Do you have code you can show? J?rn -- Data expands to fill the space available for storage. -- Parkinson's Law
Can't get CoralP drivers to work
Does the 8270 swap bytes on the PCI bus? The CoralP drivers are written for the 5200, which assumes any PCI card to be little-endian, and thus swaps bytes. That is, if you write a 32-bit word, say 0x01020304, the 5200 PCI will actually write 0x04030201. So if 8270 does *not* swap bytes like that it would be a problem. I checked this and the byte swapping is OK.
fs_enet turns promiscous mode off in restart()
Hi everybody, I'm having an issue with promiscuous mode in the fs_enet driver. The restart() function in drivers/net/fs_enet/mac-fcc.c writes to the FPSMR register: W32(fccp, fcc_fpsmr, FCC_PSMR_ENCRC); This disable promiscuous mode. Shouldn't set_multicast_list() be called at the end of restart() to restore promiscuous (and multicast) settings ? A similar issue exists for the FEC and SCC backends. Laurent Pinchart
Linux kernel thread with Linux 2.6.x
Hi, do you have to use the semaphore or does a spinlock also meet your needs? If you are in kernel 2.4 you can use one of the task_queues (e.g the scheduler queue, timer and immediate queue also run at irq context) but that won't have a better speed than your solution because it also gets the processor when tasks are scheduled (all 10ms I think). In 2.6 it would be the work_queue (schedule_work()). So the best way is to use spinlocks and do the work in a tasklet at interrupt context. Oliver J?rn Engel schrieb: On Tue, 30 May 2006 11:46:09 +0200, Laurent Lagrange wrote: Thanks for your answer, but a tasklet runs in interrupt context (in_interrupt() != 0) so it doesn't support schedule() call included in down semaphore function. Do you have code you can show? J?rn
MPC8270 on Microsys PM827 Kernel 2.6 Oops: kernel access of bad area, sig: 11 [#1]
Hello I compile my kernel with pm82x_deconfig and PCI disabled. Did I forgot something ?? After error Oops: kernel access of bad area, sig: 11 [#1] the Board restarts. Thanks for Helping Freddy U-Boot 1.1.4 (May 15 2006 - 09:13:13) MPC8260 Reset Status: External Soft, External Hard MPC8260 Clock Configuration - Bus-to-Core Mult 2.5x, VCO Div 4, 60x Bus Freq 20-60 , Core Freq 50-120 - dfbrg 0, corecnf 0x11, busdf 3, cpmdf 1, plldf 0, pllmf 3, pcidf 3 - vco_out 4, scc_clk 1, brg_clk 1 - cpu_clk 25000, cpm_clk 2, bus_clk 1 CPU: MPC8260 (HiP7 Rev 13, Mask 0.1 1K49M) at 250 MHz Board: PM828 I2C: ready DRAM: (60x:9COL) 128 MB FLASH: 32 MB In:serial Out: serial Err: serial DOC: No DiskOnChip found Net: FCC1 ETHERNET, FCC2 ETHERNET BEDBUG:ready Hit any key to stop autoboot: 0 Using FCC1 ETHERNET device TFTP from server 192.168.0.1; our IP address is 192.168.0.2 Filename 'uImage-2.6'. Load address: 0x40 Loading: # # ### done Bytes transferred = 945041 (e6b91 hex) ## Booting image at 0040 ... Image Name: Linux-2.6.14 Created: 2006-05-30 7:59:00 UTC Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size:944977 Bytes = 922.8 kB Load Address: Entry Point: Verifying Checksum ... OK Uncompressing Kernel Image ... OK Linux version 2.6.14 (root at c3415) (gcc version 4.0.0 (DENX ELDK 4.0 4.0.0)) #1 Tue May 30 09:58:59 CEST 2006 Microsys PM82x PowerPC port Built 1 zonelists Kernel command line: root=/dev/nfs rw nfsroot=192.168.0.1:/lop/eldk400/ppc_6xx/ console=ttyCPM1 ip=192.168.0.2:192.168.0.1:192.168.0.1:255.255.255.0:ppc_82xx::off panic=1 PID hash table entries: 1024 (order: 10, 16384 bytes) Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) Memory: 127744k available (1556k kernel code, 384k data, 100k init, 0k highmem) Mount-cache hash table entries: 512 softlockup thread 0 started up. NET: Registered protocol family 16 Generic RTC Driver v1.07 Serial: CPM driver $Revision: 0.01 $ ttyCPM0 at MMIO 0xf0011a80 (irq = 4) is a CPM UART ttyCPM1 at MMIO 0xf0011a90 (irq = 5) is a CPM UART ttyCPM2 at MMIO 0xf0011a00 (irq = 40) is a CPM UART ttyCPM3 at MMIO 0xf0011a20 (irq = 41) is a CPM UART ttyCPM4 at MMIO 0xf0011a40 (irq = 42) is a CPM UART ttyCPM5 at MMIO 0xf0011a60 (irq = 43) is a CPM UART io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize NFTL driver: nftlcore.c $Revision: 1.97 $, nftlmount.c $Revision: 1.40 $ Oops: kernel access of bad area, sig: 11 [#1] NIP: C0107A14 LR: C0106660 SP: C036FE30 REGS: c036fd80 TRAP: 0300Not tainted MSR: 3032 EE: 0 PR: 0 FP: 1 ME: 1 IR/DR: 11 DAR: , DSISR: 2000 TASK = c0349ae0[1] 'swapper' THREAD: c036e000 Last syscall: 120 GPR00: C036FE38 C036FE30 C0349AE0 C7CD5EE0 C036FE68 2AA8 C9002AA8 00AA00AA GPR08: 00AA00AA C036FE40 9032 1032 00AA00AA FFFDFFB7 07FFC000 0001 GPR16: 0080 07FFF7BC C018 07FF9484 07FAE1C0 0001 GPR24: C036FE58 C7CD5EE0 C01F C7CD5EE0 C01C4BF4 C036FF18 C036FE68 Call trace: [000d] [c0106104] [c010637c] [c01011ec] [c01e1ed4] [c00039e8] [c0006b84] Kernel panic - not syncing: Attempted to kill init! 0Rebooting in 1 seconds..
fs_enet segfaults when adding network interface to bridge
On Tue, 30 May 2006 13:51:11 +0200 Laurent Pinchart laurent.pinchart at tbox.biz wrote: Hi everybody, I ran into a segfault in the fs_enet driver when adding the network interface to an ethernet bridge. This only happens when the interface is down. - Kernel version - Linux tbox-cp11 2.6.17-rc3-g7f02f290-dirty #549 Tue May 30 13:25:37 CEST 2006 ppc unknown (from main linux-2.6 git repository) - End of kernel version - - Oops report - Oops: kernel access of bad area, sig: 11 [#1] NIP: C0109884 LR: C010D420 CTR: REGS: c027d7f0 TRAP: 0300 Tainted: P (2.6.17-rc3-g7f02f290-dirty) MSR: 9032 EE,ME,IR,DR CR: 24000222 XER: DAR: 0140, DSISR: 2000 TASK = c0851090[42] 'brctl' THREAD: c027c000 GPR00: C010D414 C027D8A0 C0851090 C027D8D0 F0A0 EFFF GPR08: C026E380 C021 C023 C021 1001D150 00FFE000 0001 GPR16: 007FFF00 7FDD0AC0 10072C94 7FDD0AD8 10072CA4 GPR24: 1A48 C027D8D0 C027D8D0 C08A1A60 C027DC50 C08A1800 NIP [C0109884] phy_ethtool_gset+0x0/0x48 LR [C010D420] fs_get_settings+0x34/0x48 Call Trace: [C027D8A0] [C010D414] fs_get_settings+0x28/0x48 (unreliable) [C027D8C0] [C013DDC0] dev_ethtool+0x9bc/0x13c8 [C027DC40] [C018CBC0] port_cost+0x58/0x108 [C027DCB0] [C018D3E8] br_add_if+0x174/0x2f4 [C027DCE0] [C018D9AC] add_del_if+0x94/0x98 [C027DD00] [C018DD68] br_dev_ioctl+0x70/0xae4 [C027DE00] [C013B42C] dev_ifsioc+0x17c/0x404 [C027DE20] [C013BA4C] dev_ioctl+0x398/0x4e8 [C027DEB0] [C012EEFC] sock_ioctl+0x154/0x220 [C027DEE0] [C0067164] do_ioctl+0x88/0x9c [C027DEF0] [C0067230] vfs_ioctl+0xb8/0x3f0 [C027DF10] [C00675A8] sys_ioctl+0x40/0x74 [C027DF40] [C00040E0] ret_from_syscall+0x0/0x38 Instruction dump: 7c0803a6 4e800020 2f80 409eff78 4bb8 8804000e 2b81 40bdff70 3860ffea 4bd4 61200040 4b84 81230140 91240004 80030144 90040008 - End of oops report - - Source lines - [C0109884] phy_ethtool_gset+0x0/0x48 (drivers/net/phy/phy.c:290) [C010D414] fs_get_settings+0x28/0x48 (drivers/net/fs_enet/fs_enet-main.c:885) [C013DDC0] dev_ethtool+0x9bc/0x13c8 (net/core/ethtool.c:122) [C018CBC0] port_cost+0x58/0x108 (net/bridge/br_if.c:54) - End of source lines - phy_ethtool_gset segfaults when trying to access phydev-supported because phydev is NULL. As I'm not familiar with the fs_enet driver, I'm looking for advices regarding what to fix and how to fix it. IIRC, fs_enet got bound to phydev only being -up. So in down state, phydev may be either null, or last assigned (need to have a look into source to tell for certain). So what is the proper behavior from your point of view? -- Sincerely, Vitaly
fs_enet segfaults when adding network interface to bridge
Hi everybody, I ran into a segfault in the fs_enet driver when adding the network interface to an ethernet bridge. This only happens when the interface is down. - Kernel version - Linux tbox-cp11 2.6.17-rc3-g7f02f290-dirty #549 Tue May 30 13:25:37 CEST 2006 ppc unknown (from main linux-2.6 git repository) - End of kernel version - - Oops report - Oops: kernel access of bad area, sig: 11 [#1] NIP: C0109884 LR: C010D420 CTR: REGS: c027d7f0 TRAP: 0300 Tainted: P (2.6.17-rc3-g7f02f290-dirty) MSR: 9032 EE,ME,IR,DR CR: 24000222 XER: DAR: 0140, DSISR: 2000 TASK = c0851090[42] 'brctl' THREAD: c027c000 GPR00: C010D414 C027D8A0 C0851090 C027D8D0 F0A0 EFFF GPR08: C026E380 C021 C023 C021 1001D150 00FFE000 0001 GPR16: 007FFF00 7FDD0AC0 10072C94 7FDD0AD8 10072CA4 GPR24: 1A48 C027D8D0 C027D8D0 C08A1A60 C027DC50 C08A1800 NIP [C0109884] phy_ethtool_gset+0x0/0x48 LR [C010D420] fs_get_settings+0x34/0x48 Call Trace: [C027D8A0] [C010D414] fs_get_settings+0x28/0x48 (unreliable) [C027D8C0] [C013DDC0] dev_ethtool+0x9bc/0x13c8 [C027DC40] [C018CBC0] port_cost+0x58/0x108 [C027DCB0] [C018D3E8] br_add_if+0x174/0x2f4 [C027DCE0] [C018D9AC] add_del_if+0x94/0x98 [C027DD00] [C018DD68] br_dev_ioctl+0x70/0xae4 [C027DE00] [C013B42C] dev_ifsioc+0x17c/0x404 [C027DE20] [C013BA4C] dev_ioctl+0x398/0x4e8 [C027DEB0] [C012EEFC] sock_ioctl+0x154/0x220 [C027DEE0] [C0067164] do_ioctl+0x88/0x9c [C027DEF0] [C0067230] vfs_ioctl+0xb8/0x3f0 [C027DF10] [C00675A8] sys_ioctl+0x40/0x74 [C027DF40] [C00040E0] ret_from_syscall+0x0/0x38 Instruction dump: 7c0803a6 4e800020 2f80 409eff78 4bb8 8804000e 2b81 40bdff70 3860ffea 4bd4 61200040 4b84 81230140 91240004 80030144 90040008 - End of oops report - - Source lines - [C0109884] phy_ethtool_gset+0x0/0x48 (drivers/net/phy/phy.c:290) [C010D414] fs_get_settings+0x28/0x48 (drivers/net/fs_enet/fs_enet-main.c:885) [C013DDC0] dev_ethtool+0x9bc/0x13c8 (net/core/ethtool.c:122) [C018CBC0] port_cost+0x58/0x108 (net/bridge/br_if.c:54) - End of source lines - phy_ethtool_gset segfaults when trying to access phydev-supported because phydev is NULL. As I'm not familiar with the fs_enet driver, I'm looking for advices regarding what to fix and how to fix it. IIRC, fs_enet got bound to phydev only being -up. So in down state, phydev may be either null, or last assigned (need to have a look into source to tell for certain). So what is the proper behavior from your point of view? I have no idea :-) What I know is that the driver should not segfault when asked to report the port speed. Either we should return an error or have the phy device bound to fs_enet at all time. It might also be a bridge issue, maybe the bridge code should turn the interface up before reading its speed. How do other ethernet drivers proceed ? Laurent Pinchart
regarding mvme6100 on kernel 2.6.13
Hi all, I'm porting mvme6100 for 2.6.13. But its hanging after Now Booting the kernel.. Can anybody guide me in this regard. thanks and regards -- ___ Search for businesses by name, location, or phone number. -Lycos Yellow Pages http://r.lycos.com/r/yp_emailfooter/http://yellowpages.lycos.com/default.asp?SRC=lycos10
[SOLVED] LXT973 support (dual PHY with single MDIO)
On Tue, 30 May 2006 11:28:48 +0200 Laurent Pinchart laurent.pinchart at tbox.biz wrote: Hi, once again, posting to a mailing list helped me solving my problem. It should have been obvious that the MDIO bus is really a bus, and can as such support several devices. The issue was that the drivers/net/fs_enet driver set bus-phy_mask to ~0x9, and the LXT973 uses addresses 0 and 1. Address 1 thus never got probed. What's the reason for probing addresses 0 and 3 only ? The reason is obvious: bitbang read of PHY id with not-existent PHY, does not return expected (0, iirc), that confuse mdio bus device-driver bound (it assumes error and returns -1), and prevents from probing other phys. So, as that seems to be a feature on CPM2 only, we are working that around specifying phy_mask to prevent probing inexistent phys w/over bitbang thing. -- Sincerely, Vitaly
regarding mvme6100 on kernel 2.6.13
On Tuesday 30 May 2006 09:09, Kiran Kumar.A wrote: Hi all, I'm porting mvme6100 for 2.6.13. But its hanging after Now Booting the kernel.. Can anybody guide me in this regard. thanks and regards Eh, it's probably not hanging at all - you're just not seeing anything because the device naming scheme changed and the serial console not getting initialized correctly. Be sure that in your platform_notify function has a '.' in the platform device name - this was added around 2.6.11 or so. An example from another board I have: static int xes_mv64x60_platform_notify(struct device *dev) { static struct { char *bus_id; void ((*rtn) (struct platform_device * pdev)); } dev_map[] = { #ifdef CONFIG_SERIAL_MPSC { MPSC_CTLR_NAME .0, xes_mv64x60_fixup_mpsc_pdata}, { MPSC_CTLR_NAME .1, xes_mv64x60_fixup_mpsc_pdata}, #endif } Also, be sure to enable early boot messages - they help a lot. Also, don't overlook setting console=ttyMM0,9600 in the kernel args. - Brent
Setting ID cache enable in the same mtspr instruction
On Mon, May 29, 2006 at 02:15:14PM +0200, Roger Larsson wrote: Is the patch reversed? Sure looks like it. diff -Naur old new patch And what about comments, are they all still valid? enable and invalidate caches is now only Data cache... In cases when I am writing code like this I try to include the reason why it is not optimized together in one write... (or soon someone will do that optimization). Good point. /RogerL Also, please send the patches *inline*. Mark
execve of /sbin/init fails
Hi, I am trying to bring up a custom board with a PPC405 processor running Linux 2.4.20 (MontaVista Release) and am having problems with the call to execve(/sbin/init, argv_init, envp_init) not returning in the file main.c. The processor just hangs and there is no output on the terminal. I have tried to see if I can run bin/sh and even this execve call does not return. Some things about the board are, the networking option has been disabled in the Linux .config file. I am running U-Boot 1.1.1 as the bootloader and am downloading the uImage (compressed kernel) and the initrd.boot (filesystem) into RAM and accessing the filesystem in RAM. Any help as to what could be causing this to happen or how to debug this issue would be appreciated. Also, I've tried to capture the return value of the execve call but since the call does not return, this has not helped any. Thanks, Chetan Anantharaman -- next part -- An HTML attachment was scrubbed... URL: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20060530/09c64124/attachment.htm
Can't get CoralP drivers to work
In message 1664.194.3.133.184.1148981963.squirrel at webmail.enib.fr you wrote: This is the first time I try to use framebuffer graphics, so I'm new with it. Can the framebuffer work from a serial console on a platform without keyboard ? Yes, it can. We used it on a couple of MPC5200 systems; usually these were used without keyboard. Best regards, Wolfgang Denk -- Software Engineering: Embedded and Realtime Systems, Embedded Linux Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de On a clear disk you can seek forever.
MPC8270 on Microsys PM827 Kernel 2.6 Oops: kernel access of bad area, sig: 11 [#1]
In message CC692F5386B0AA47A62B7484A7CA2B6D02B52CB0 at frmx1.litef.de you wrote: I compile my kernel with pm82x_deconfig and PCI disabled. ... MPC8260 Reset Status: External Soft, External Hard Why do you use pm82x_deconfig with a MPC8260 processor? You should use pm826_deconfig instead. Best regards, Wolfgang Denk -- Software Engineering: Embedded and Realtime Systems, Embedded Linux Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de That's the thing about people who think they hate computers. What they really hate is lousy programmers. - Larry Niven and Jerry Pournelle in Oath of Fealty
execve of /sbin/init fails
Anantharaman Chetan-W16155 Chetan.S.Anantharaman at motorola.com To: linuxppc-embedded at ozlabs.org Sent by: cc: linuxppc-embedded-bounces+jeff.fellin=rflelect.com Subject: execve of /sbin/init fails @ozlabs.org 05/30/2006 15:59 Hi, I am trying to bring up a custom board with a PPC405 processor running Linux 2.4.20 (MontaVista Release) and am having problems with the call to execve(?/sbin/init?, argv_init, envp_init) not returning in the file main.c. The processor just hangs and there is no output on the terminal. I have tried to see if I can run ?bin/sh? and even this execve call does not return. Some things about the board are, the networking option has been disabled in the Linux .config file. I am running U-Boot 1.1.1 as the bootloader and am downloading the uImage (compressed kernel) and the initrd.boot (filesystem) into RAM and accessing the filesystem in RAM. Chetan, I would check the contents of the initrd filesystem you created to verify the files are in the image. If they are monitor the console output to verfiy the ramdisk filesystem is found and installed into ram. Jeff Fellin Any help as to what could be causing this to happen or how to debug this issue would be appreciated. Also, I?ve tried to capture the return value of the execve call but since the call does not return, this has not helped any. Thanks, Chetan Anantharaman ___ Linuxppc-embedded mailing list Linuxppc-embedded at ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-embedded
execve of /sbin/init fails
You could also try compiling init statically. I've had success with that in the past until I figured out what the actual problem was. On 5/30/06, Anantharaman Chetan-W16155 Chetan.S.Anantharaman at motorola.com wrote: Hi, I am trying to bring up a custom board with a PPC405 processor running Linux 2.4.20 (MontaVista Release) and am having problems with the call to execve(/sbin/init, argv_init, envp_init) not returning in the file main.c. The processor just hangs and there is no output on the terminal. I have tried to see if I can run bin/sh and even this execve call does not return. Some things about the board are, the networking option has been disabled in the Linux .config file. I am running U-Boot 1.1.1 as the bootloader and am downloading the uImage (compressed kernel) and the initrd.boot (filesystem) into RAM and accessing the filesystem in RAM. Any help as to what could be causing this to happen or how to debug this issue would be appreciated. Also, I've tried to capture the return value of the execve call but since the call does not return, this has not helped any. Thanks, Chetan Anantharaman ___ Linuxppc-embedded mailing list Linuxppc-embedded at ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-embedded
execve of /sbin/init fails
On 5/30/06, Anantharaman Chetan-W16155 Chetan.S.Anantharaman at motorola.com wrote: Hi, I am trying to bring up a custom board with a PPC405 processor running Linux 2.4.20 (MontaVista Release) and am having problems with the call to execve(/sbin/init, argv_init, envp_init) not returning in the file main.c. Hmm.. Ok.. so I've read the other suggestions all good, but I think we are missing some info. Are you running Busybox? If you are using Busybox, what version? Also, what init are you using? Are you using busyboxes? The ramdisk suggestion was a good one. First off, check what is in your ramdisk. Also check the rights of the files in the ramdisk. Make sure you have the execute bit set. I've seen exactly what you are seeing when my rights on the file init were messed up. Also I think I've seen a hang with an older version of Busybox using their version of init. I just got sysinit and that seemed to fix it, (Although I had to reconfig Busybox to not use their version of init) The processor just hangs and there is no output on the terminal. When you say the process just hangs, where are you in the boot cycle? Is it before you see the linux kernel starting to load? Or do you see any kernel messages start to spew out? Hope this helps a little. -stv
fs_enet segfaults when adding network interface to bridge
On May 30, 2006, at 08:39, Laurent Pinchart wrote: Hi everybody, I ran into a segfault in the fs_enet driver when adding the network interface to an ethernet bridge. This only happens when the interface is down. - Kernel version - Linux tbox-cp11 2.6.17-rc3-g7f02f290-dirty #549 Tue May 30 13:25:37 CEST 2006 ppc unknown (from main linux-2.6 git repository) - End of kernel version - - Oops report - Oops: kernel access of bad area, sig: 11 [#1] NIP: C0109884 LR: C010D420 CTR: REGS: c027d7f0 TRAP: 0300 Tainted: P (2.6.17-rc3- g7f02f290-dirty) MSR: 9032 EE,ME,IR,DR CR: 24000222 XER: DAR: 0140, DSISR: 2000 TASK = c0851090[42] 'brctl' THREAD: c027c000 GPR00: C010D414 C027D8A0 C0851090 C027D8D0 F0A0 EFFF GPR08: C026E380 C021 C023 C021 1001D150 00FFE000 0001 GPR16: 007FFF00 7FDD0AC0 10072C94 7FDD0AD8 10072CA4 GPR24: 1A48 C027D8D0 C027D8D0 C08A1A60 C027DC50 C08A1800 NIP [C0109884] phy_ethtool_gset+0x0/0x48 LR [C010D420] fs_get_settings+0x34/0x48 Call Trace: [C027D8A0] [C010D414] fs_get_settings+0x28/0x48 (unreliable) [C027D8C0] [C013DDC0] dev_ethtool+0x9bc/0x13c8 [C027DC40] [C018CBC0] port_cost+0x58/0x108 [C027DCB0] [C018D3E8] br_add_if+0x174/0x2f4 [C027DCE0] [C018D9AC] add_del_if+0x94/0x98 [C027DD00] [C018DD68] br_dev_ioctl+0x70/0xae4 [C027DE00] [C013B42C] dev_ifsioc+0x17c/0x404 [C027DE20] [C013BA4C] dev_ioctl+0x398/0x4e8 [C027DEB0] [C012EEFC] sock_ioctl+0x154/0x220 [C027DEE0] [C0067164] do_ioctl+0x88/0x9c [C027DEF0] [C0067230] vfs_ioctl+0xb8/0x3f0 [C027DF10] [C00675A8] sys_ioctl+0x40/0x74 [C027DF40] [C00040E0] ret_from_syscall+0x0/0x38 Instruction dump: 7c0803a6 4e800020 2f80 409eff78 4bb8 8804000e 2b81 40bdff70 3860ffea 4bd4 61200040 4b84 81230140 91240004 80030144 90040008 - End of oops report - - Source lines - [C0109884] phy_ethtool_gset+0x0/0x48 (drivers/net/phy/phy.c:290) [C010D414] fs_get_settings+0x28/0x48 (drivers/net/fs_enet/fs_enet-main.c:885) [C013DDC0] dev_ethtool+0x9bc/0x13c8 (net/core/ethtool.c:122) [C018CBC0] port_cost+0x58/0x108 (net/bridge/br_if.c:54) - End of source lines - phy_ethtool_gset segfaults when trying to access phydev-supported because phydev is NULL. As I'm not familiar with the fs_enet driver, I'm looking for advices regarding what to fix and how to fix it. IIRC, fs_enet got bound to phydev only being -up. So in down state, phydev may be either null, or last assigned (need to have a look into source to tell for certain). So what is the proper behavior from your point of view? I have no idea :-) What I know is that the driver should not segfault when asked to report the port speed. Either we should return an error or have the phy device bound to fs_enet at all time. It might also be a bridge issue, maybe the bridge code should turn the interface up before reading its speed. How do other ethernet drivers proceed ? Well, gianfar only invokes phy_ethtool_gset() after checking to see that phydev is not NULL. fs_enet should do this as well. It may be preferable to move that check into phy_ethtool_gset(). Certainly a workable solution, though I'm inclined to feel that the PHY layer should be able to assume that a given PHY exists. The sort of problem also exists if you try to use ethtool to find the ring sizes before the device has been opened. Anyway, the easy fix is for fs_enet to check for NULL before calling phy_ethtool_gset(). Andy
Linux kernel thread with Linux 2.6.x
Couldn't you use a work_queue? For the PHY Layer, the MDIO transactions can't occur at interrupt time (they need to be interruptible), so the interrupt handler calls schedule_work() to get the interrupt handled. I'm not sure how much faster it is (if at all), but it's another method, and sounds less complicated than waiting on a semaphore. Of course, I would suggest trying to avoid the buffer allocation functions you are using, or defer the work using NAPI, but it's impossible for me to tell whether that's a reasonable solution for you. On May 29, 2006, at 10:35, Laurent Lagrange wrote: Hello everybody, I'm writing a custom network driver based on a MPC8260 FCC device for a 2.6.9 linux kernel. In this driver, I need to use specific buffer allocation functions which use down and up semaphore functions. As the interrupt handler can't be scheduled, I have made a kernel thread which waits forever on a semaphore. This semaphore is set when a received packet interrupt occured. All that mechanism works but the performances are very poor. Is there any solution to increase the kthread priority in the scheduler ? Is there another solution than the semaphore to quickly wake up a kthread ? Thanks a lot for your help. Laurent ___ Linuxppc-embedded mailing list Linuxppc-embedded at ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-embedded
execve of /sbin/init fails
On 5/30/06, Steve Iribarne (GMail) netstv at gmail.com wrote: On 5/30/06, Anantharaman Chetan-W16155 Chetan.S.Anantharaman at motorola.com wrote: Hi, I am trying to bring up a custom board with a PPC405 processor running Linux 2.4.20 (MontaVista Release) and am having problems with the call to execve(/sbin/init, argv_init, envp_init) not returning in the file main.c. Hmm.. Ok.. so I've read the other suggestions all good, but I think we are missing some info. Are you running Busybox? If you are using Busybox, what version? Also, what init are you using? Are you using busyboxes? The ramdisk suggestion was a good one. First off, check what is in your ramdisk. Also check the rights of the files in the ramdisk. Make sure you have the execute bit set. I've seen exactly what you are seeing when my rights on the file init were messed up. Also I think I've seen a hang with an older version of Busybox using their version of init. I just got sysinit and that seemed to fix it, (Although I had to reconfig Busybox to not use their version of init) I guess I totally assumed busybox was being used, so good suggestion. I too saw this with an older version of busybox (0.60 maybe?) and I ended up editing the config to contain only init and then compiled it statically and placed it on the rootfs. It turned out to be just the right size and functionality for my needs. I think I later updated to a 1.0 or 1.1-series and didn't have to use the same hack. The processor just hangs and there is no output on the terminal. When you say the process just hangs, where are you in the boot cycle? Is it before you see the linux kernel starting to load? Or do you see any kernel messages start to spew out? Hope this helps a little. -stv ___ Linuxppc-embedded mailing list Linuxppc-embedded at ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-embedded
execve of /sbin/init fails
Thanks for your reply. Yes, the file /sbin/init is in the ramdisk file system with execute permissions on it. I am running Busybox (how can I check the version?), but my /sbin/init is not Busybox's init. One thing I'd like to mention is, I have used the same ramdisk filesystem and the same version of Linux 2.4 kernel and U-Boot bootloader and have been able to successfully execute the /sbin/init. This board has a Xilinx Virtex 2 Pro FPGA with a PPC405. On my new board, with a Xilinx Virtex 4 FX100 FPGA, with the kernel running on a PPC405 and the same filesystem, the execve of /sbin/init hangs. By hangs, I mean there is no output on the console after the below output and it does not return (which indicates that it has not encountered an error of some sort, since execve returns on error only). So, I am not sure where it is stuck and is there any way to tell where it's stuck at? Hope this above info and below screen capture provide a bit more background to the issue. Below is a capture of the screen output: Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 OCP uart ver 1.6.2 init complete LSP Revision 42 ikconfig 0.5 with /proc/ikconfig Starting kswapd Disabling the Out Of Memory Killer Journalled Block Device driver loaded devfs: v1.12c (20020818) Richard Gooch (rgooch at atnf.csiro.au) devfs: boot_options: 0x1 pty: 256 Unix98 ptys configured Serial driver version 5.05c (2001-07-08) with no serial options enabled ttyS00 at 0xfdfff003 (irq = 22) is a 16550A xgpio #0 at 0x5000 mapped to 0xC500 RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize loop: loaded (max 8 devices) Tracer: Initialization complete RAMDISK: Compressed image found at block 0 Freeing initrd memory: 5104k freed EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended VFS: Mounted root (ext2 filesystem). Mounted devfs on /dev Freeing unused kernel memory: 40k init -Original Message- From: Jeff.Fellin at rflelect.com [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 30, 2006 3:55 PM To: Anantharaman Chetan-W16155 Cc: linuxppc-embedded at ozlabs.org; linuxppc-embedded-bounces+jeff.fellin=rflelect.com at ozlabs.org Subject: Re: execve of /sbin/init fails Anantharaman Chetan-W16155 Chetan.S.Anantharaman at motorola.com To: linuxppc-embedded at ozlabs.org Sent by: cc: linuxppc-embedded-bounces+jeff.fellin=rflelect.com Subject: execve of /sbin/init fails @ozlabs.org 05/30/2006 15:59 Hi, I am trying to bring up a custom board with a PPC405 processor running Linux 2.4.20 (MontaVista Release) and am having problems with the call to execve(/sbin/init, argv_init, envp_init) not returning in the file main.c. The processor just hangs and there is no output on the terminal. I have tried to see if I can run bin/sh and even this execve call does not return. Some things about the board are, the networking option has been disabled in the Linux .config file. I am running U-Boot 1.1.1 as the bootloader and am downloading the uImage (compressed kernel) and the initrd.boot (filesystem) into RAM and accessing the filesystem in RAM. Chetan, I would check the contents of the initrd filesystem you created to verify the files are in the image. If they are monitor the console output to verfiy the ramdisk filesystem is found and installed into ram. Jeff Fellin Any help as to what could be causing this to happen or how to debug this issue would be appreciated. Also, I've tried to capture the return value of the execve call but since the call does not return, this has not helped any. Thanks, Chetan Anantharaman ___ Linuxppc-embedded mailing list Linuxppc-embedded at ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-embedded
[SOLVED] LXT973 support (dual PHY with single MDIO)
On May 30, 2006, at 09:22, Vitaly Bordug wrote: On Tue, 30 May 2006 11:28:48 +0200 Laurent Pinchart laurent.pinchart at tbox.biz wrote: Hi, once again, posting to a mailing list helped me solving my problem. It should have been obvious that the MDIO bus is really a bus, and can as such support several devices. The issue was that the drivers/net/fs_enet driver set bus-phy_mask to ~0x9, and the LXT973 uses addresses 0 and 1. Address 1 thus never got probed. What's the reason for probing addresses 0 and 3 only ? The reason is obvious: bitbang read of PHY id with not-existent PHY, does not return expected (0, iirc), that confuse mdio bus device-driver bound (it assumes error and returns -1), and prevents from probing other phys. So, as that seems to be a feature on CPM2 only, we are working that around specifying phy_mask to prevent probing inexistent phys w/over bitbang thing. Hopefully, this isn't being set in the driver, but is set in the board code, instead. This is a board-specific setting. Andy
PPC exception 0x320
Jeanwelly, I'd really like to help you here, but you still haven't explained what you mean by PPC alarmed exception 0x320. Since there is no such exception that I'm aware of on the 750, I'm trying very hard to figure out what you mean, and it's impossible for me to do that without more information from you. I need to know exactly what it is that you're seeing in order to help you. If the kernel is printing out a message, please include the *entire message* in your email. Are you getting a message that says Bad trap at PC: .? A quick mini-tutorial on PPC exceptions: Whenever hardware detects an exception condition, the hardware starts executing at a vector location for that particular exception. On the PPC 750, these exception vectors are, for the most part, aligned at multiples of 0x100. There is a list of exception vectors and their associated causes in Table 4.2 of the User's manual (see below for a URL). Some exceptions are caused by software, and others, like the Decrementer Interrupt, are generated by the hardware itself. There is often more than one way to cause a particular exception. For example, a DSI exception can be caused by a miss in the hardware page table, or by a load to a direct-store segment, among other things. *All* of these events will result in running the exception vector starting at 0x300 because all of these conditions cause a DSI. Although there are multiple causes for DSI, they all go to the same vector address. The system software at that address must use methods described in the user's manual to determine what kind of DSI exception has occurred so it can handle the fault. While the hardware detects the exception, it is the job of the system software to handle it. The User's manual for a processor will list the events that hardware will detect and cause an exception. You have to look at your system software source code to figure out if your operating system supports a given exception. In Linux, this code is mostly in arch/ppc/head.S and arch/ppc/traps.c. You can get a copy of the 750 User's Manual at: http://www.freescale.com/files/32bit/doc/ref_manual/MPC750UM.pdf The exception information is in Chapter 4. Cheers, Becky On May 29, 2006, at 9:22 AM, jeanwelly wrote: Hi Becky Bruce, Sorry for late response. I got mail traffic... I encountered the exception 0x320 which caused the PPC card crash. Based on my understanding, I think exception is a HW behaviour, so I guess there maybe exist some reference on all the supported exceptions of some version of PPC. Do you know this? My system take that exception as an unknown exception and crash the card. So, I think the exception is from the PPC CPU, but don't the concrete meanings. Appreciate your suggestions. --- Jeanwelly Is there some error message you can show me? -B On Apr 25, 2006, at 10:03 AM, jeanwelly wrote: Hi Becky Bruce, I'm using PPC 750... Just as you said, 0x300 is for DSI, and I guess they are a set of exceptions, not just one. And 0x320 is one of them. I got a board crash, and PPC alarmed exception 0x320. Could you show me the mechanism of handling of a special exception not one set. === 2006-04-25 02:53:35 === Could you try to be more specific? What processor do you have, what linux version are you running, and what do you mean exactly when you say you encountered PPC exception 0x320? As far as I know, the powerpc architecture does not define an exception 0x320. 0x300 is usually DSI on classic powerpc parts. BookE parts handle things differently. Thanks, -Becky On Apr 24, 2006, at 8:51 AM, jeanwelly wrote: Hi, I encountered PPC exception 0x320, but don't know what it for. Any one could help me on this? Thanks! jeanwelly jeanwelly at 126.com ??2006-04-24 ___ Linuxppc-embedded mailing list Linuxppc-embedded at ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-embedded . = = = = = = = = = = = = = = = = = = = = ? ?? jeanwelly jeanwelly at 126.com ??2006-04-25 . = = = = = = = = = = = = = = = = = = = = ? ?? jeanwelly jeanwelly at 126.com ??2006-05-29