usb hub problem on 8270
Hi, I found some time to adapt m8xxhci.c (for 823/850) to the 8270 with limited success. We use TOUT3 (from timer3) to DREQ0/1 to enable SOF transmitting which works more or less as one of my hubs is detected but after the host driver received the hub's device description, I get a time-out and, well that's it. Even after resetting the 8270 and cpm I'm unable to communicate to the hub: m8xxhci: initializing controller m8xxhci_setup() usb.c: new USB bus registered, assigned bus number 1 m8xxhci_start_controller() hp c029, immap f000, usbprmap f0008b00, usbregs f0011b60, cp f00119c0 m8xxhci:MPC8270 mask 0 m8xxhci: USING CLK8 for USB clock! m8xxhci: ring sizes: rx 32, tx 40 endpoint 0 0x140, epb f140 rstate f0008b08 set up tx ring @ c029 set up rx ring @ f170 tbptr 0278 usep4190208 @ f0011b64 m8xxhci: assert reset m8xxhci: enable USB controller m8xxhci_timer_setup() m8xxhci: timer, intfreq 26600, busfreq , count 995 m8xxhci: timer bytes/count 1.28 m8xxhci: usb bus is idle usb.c: kmalloc IF c026cb00, numif 1 usb.c: new device strings: Mfr=0, Product=2, SerialNumber=1 usb.c: USB device number 1 default language ID 0x0 Product: USB MPC8xx Root Hub SerialNumber: f0011b60 hub.c: USB hub found hub.c: 1 port detected hub.c: standalone hub hub.c: individual port power switching hub.c: no over-current protection hub.c: Port indicators are not supported hub.c: power on to power good time: 2ms hub.c: hub controller current requirement: 0mA hub.c: port removable status: R hub.c: local power source is good hub.c: no over-current condition exists rh_submit_urb() int pipe hub.c: enabling power on all ports rh_port_power(1) usb.c: hub driver claimed interface c026cb00 m8xxhci: initializing done idle_bus() 1; d+ one, d- zero, connect full-sp hub.c: port 1, portstatus 101, change 1, 12 Mb/s hub.c: port 1 connection change hub.c: port 1, portstatus 101, change 1, 12 Mb/s hub.c: port 1, portstatus 101, change 0, 12 Mb/s portstatus 101, change 0, 12 Mb/s hub.c: port 1, portstatus 101, change 0, 12 Mb/s hub.c: port 1, portstatus 101, change 0, 12 Mb/s rh_port_reset(1) m8xxhci: assert reset hub.c: port 1, portstatus 103, change 0, 12 Mb/s hub.c: new USB device -1, assigned address 2 usb.c: kmalloc IF c026cce0, numif 1 usb.c: new device strings: Mfr=0, Product=2, SerialNumber=0 usb.c: USB device number 2 default language ID 0x409 Product: Standard USB Hub hub.c: USB hub found hub.c: 4 ports detected hub.c: standalone hub hub.c: ganged power switching hub.c: global over-current protection hub.c: Port indicators are not supported hub.c: power on to power good time: 100ms hub.c: hub controller current requirement: 64mA hub.c: port removable status: hub.c: local power source is good hub.c: no over-current condition exists hub.c: enabling power on all ports usb.c: hub driver claimed interface c026cce0 complete_qe(qe=c02910fc,status=-110) hub.c: nonzero status in irq -110 looking in /proc/driver/usb I see some timeouts: USB host controller v1.2: controller enabled root hub port state connected, status CCS PES PPS oe 1; bus 10 idle 1 ints: cpm 66, timer 367332, isrs 367385 idle 66, rst 0, bsy 0, rxb 24, txb 46 errs: tx0 19, timeout 19, underrun 0 rx 0, nak 0, stall 0, mismatch 0 comp: iso 0, intr 2, ctrl 14, bulk 0 root hub sends 1441 retransmits19 tx restarts19 frame lists: current c0294360, next c0294394 active_qe: current: c0294360, total_bytes 0 next: c0294394, total_bytes 0 event message: event logging: disabled Nothing that is connected to the hub is detected (obviously) Does somebody has had some similar problems with 8xx? Might it be my SOF timing which is not accurate? thanks for any advise, Jaap-Jan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Solution Update [WAS: Re: EDK6.1 vs. EDK3.2 clarification]
Hi there, I thought it prudent to update anyone who later reads this thread as to the cause and outcome of this issue which was ongoing for a while. It turns out that I had not correctly initialised the cache controller in my firmware and today was able to prove that this had worked on the old hardware generated with EDK3.2 however this was not the case with EDK6.1 for whatever reason. It was not the Linux kernel at fault. Perhaps I could moan about the various documentation and other issues but it comes down to a bit of code which got changed at some point, continued to work ok but later caused a hiccup with new hardware as the data cache not being properly flushed on startup resulted in fun. Bottom line is I now once more have a fully working Insight Memec V2P port with EDK6.1 hardware and our custom modules are now in again. I think someone else had similar symptoms... Cheers, Jon. P.S. Thanks for reading. P.P.S. I am going to FOSDEM in the morning if anyone cares. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
PPCBOOT in customised MPC860T board
In message <01c3f71c$1372ee30$7ec7c7c7 at dkhoo> you wrote: > > Perhaps you should try the u-boot forum and use pick a tqm board as your > guide for the u-boot port. But briefly for u-boot port: The TQM may be a good choice for a model, or may be not. It dopeneds onthe hardware. It is not possible to give a general recommendation. > 1. Change Makefile to use your cross compiler and add your board config No such change is necessary nor encouraged. Just export the CROSS_COMPILE envrionment variable as needed. > 4. Create the include/asm/yourboard.h Not much to do here basically > #define IMAP_ADDR/SIZE to get the board going. (look at tqm board for > guidance) Don't forget to make sure to use the correct definition of bd_info. > the options. To save time, right after I do a "make menuconfig" and the > .config > file is generated in the top directory, I copy the .config file and replace > arch/ppc/defconfig with it. A much better and less intrusive way is to copy .config to arch/ppc/configs/_defconfig so you can use the standard "make _config ; make oldconfig ; make dep ; make uImage" command sequence. Best regards, Wolfgang Denk -- See us @ Embedded World, Nuremberg, Feb 17 - 19, Hall 12.0 Booth 440 Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd at denx.de "Don't try to outweird me, three-eyes. I get stranger things than you free with my breakfast cereal." - Zaphod Beeblebrox in "Hitchhiker's Guide to the Galaxy" ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
PPCBOOT in customised MPC860T board
In message <4034377A.03.00996 at RAMANAYV> you wrote: > > I was working in MPC860T customised board and trying to port linux through > PPCBOOT. Please don't post the same message to several malining lists without any indication of doing so. PPCBoot is a dead project. It was put to rest one and a half years ago. > can you give me breif guidence to boot PPCBOOT in my board and to port > linux-2.4.19 based kernel. PPCBoot support has been discontinued. Please use U-Boot instead. Wolfgang Denk -- See us @ Embedded World, Nuremberg, Feb 17 - 19, Hall 12.0 Booth 440 Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd at denx.de The faster I go, the behinder I get. -- Lewis Carroll ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
[PATCH] Xilinx ML300 board support in linuxppc-2.4 tree
Hi, The patch fixes/updates ML300 support in linuxppc-2.4 tree. This is mostly a move from linuxppc_2_4_devel tree with few additions: - /proc/interrupts now contains correct information about whether the interrupt is edge triggered or level sensitive (linuxppc_2_4_devel tree shows all the interrupts as edge triggered). For this arch/ppc/platforms/xilinx_ml300.c sets the proper bit in irq_desc[], and arch/ppc/kernel/xilinx_pic.c uses this information to decide when to acknowledge the interrupt. - GPIO driver is fixed to support the GPIO IP as it is in EDK (GPIO IP changed from V2PDK to EDK). - xilinx_ml300_defconfig matches the EDK reference design (http://www.xilinx.com/ise/embedded/edk_examples.htm, example #6). The following devices are supported by default: GPIO, IIC/RTC, UARTs (two 16x50 compatible ones), SPI, TFT LCD, PS/2 (kbd and mouse), System ACE, touchscreen, 10/100 ethernet. UART Lite driver is included in the patch. But the reference design doesn't have UART Lites, so none is in the default configuration. The patch itself can be found here: http://source.mvista.com/~ank/xilinx_ml300.03.diff The patch is against the kernel version 2.4.25-rc2. Best regards, Andrei Konovalov ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Simple module question
look into wait queues. -Original Message- From: Karsten Jeppesen [mailto:[EMAIL PROTECTED] Sent: Thursday, February 19, 2004 3:29 PM To: linuxppc-embedded at lists.linuxppc.org Subject: Simple module question Aren't they all.. I am doing some heavy work in a write function. But I have a poll wait loop (waiting for flash program end) where a lot of time is wasted. How do I tell the scheduler that I would like t surrender the CPU for others to use? I tried calling scheduler(), but that only crashed the kernel. What is the correct way? Sincerely, Karsten ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
2.6 kernel ppc tree
Marcus Overhagen wrote: >>The 8xx stuff hasn't worked at all for a long time..if ever. > > Well, it was working in 2.4.4 ... I meant in 2.6.x, as we have been discussing. It works fine in all 2.4 and prior releases. -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Simple module question
Aren't they all.. I am doing some heavy work in a write function. But I have a poll wait loop (waiting for flash program end) where a lot of time is wasted. How do I tell the scheduler that I would like t surrender the CPU for others to use? I tried calling scheduler(), but that only crashed the kernel. What is the correct way? Sincerely, Karsten ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
2.6 kernel ppc tree
"Dan Malek" wrote: > Marcus Overhagen wrote: > > > I tried compiling 2.6.3 for a MPC850 based board today, > > OK, everyone, just wait a day or so... Ok, you convinced me. I'll wait until VM updates are done :) Thanks to Rod Boyce, who sent me the 2.5 uart.c I tried compiling. I also noticed that some defines for enet.c were missing from commproc.h and these errors: | arch/ppc/kernel/entry.S(__ksymtab+0x3e0): undefined reference to `request_8xxirq' | arch/ppc/syslib/built-in.o: In function `m8xx_calibrate_decr': | arch/ppc/syslib/built-in.o(.init.text+0x124): undefined reference to `request_8xxirq' | arch/ppc/syslib/built-in.o(.init.text+0x124): relocation truncated to fit: R_PPC_REL24 request_8xxirq > The 8xx stuff hasn't worked at all for a long time..if ever. Well, it was working in 2.4.4 as publish in ELDK 2.1 at www.denx.de However, the uart.c driver in that package has some enhancements, compared to the mainline 2.4.25 kernel (or it was removed for 2.4.25) Especially the ability to configure a wide variety of different pins, and hardware handshake. Unfortunately, RTS handshake as implemented in 2.4.4 is not working with the MPC850, since the MPC850 doesn't do a correct UART like RTS signal, instead it activates /RTS only during transmit. I need to fix that, and will wait with 2.6 until you are finished. Luckily, MPC850 can do at least a correct /CTS handshake when bit FLC in registert PSMR is set, and you can control /RTS in UART like fashion by programming it as general IO pin. > Tom fixed up the drivers for me, I'm working on the VM updates. Thats great. > Stop trying to compile it and complaining about it because it > is known to not work properly :-) Yeah, now I know :) BTW, this is not a complaint! Marcus ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
PPCBOOT in customised MPC860T board
Ramana, Perhaps you should try the u-boot forum and use pick a tqm board as your guide for the u-boot port. But briefly for u-boot port: 1. Change Makefile to use your cross compiler and add your board config 2. Create a file named your_board.h in u-boot-x.x.x/include/configs for your board configs. 3. Create a dir for your board under u-boot-x.x.x/board and in it a) write/copy some flash routines in say flash.c b) write/copy some ram routines in say your_board.c c) write/copy other files like Makefile, etc 4. Modify u-boot-x.x.x/include/commproc.h to your board specs. 5. Compile and burn the u-boot.bin through BDM(I use DENX's $50 BDM4GDB but that required on the MPCBDM so invest in a BDI2000.) For the kernel(for 2.4.22 but 2.4.19 is similar): 1. Change the Makefile to use the right cross-compiler and also to tell it to build a ppc kerel. For example, add an entry "YOUR_BOARD CONFIG_YOURBOARD \" in the list of boards under "if [ "$CONFIG_8xx" = "y" ]; then" 2. Modify arch/ppc/config.in to add your board name to list of boards already present in the kernel for your cpu family. #if defined(CONFIG_YOURBOARD) #include #endif Please note that different kernel versions have different organizations so yourboard.h which you will create later may have to be placed in a different location. 3. Add the following to include/asm/mpc8xx.h: #if defined(CONFIG_YOURBOARD) #include #endif 4. Create the include/asm/yourboard.h Not much to do here basically #define IMAP_ADDR/SIZE to get the board going. (look at tqm board for guidance) 5. This next step is optional but it saves me a lot of time when I clean and rebuild my kernel. When I clean my kernel, the .config file which was created when I do a "make menuconfig" or "make config" is wiped out and the next time when I build a kernel, the default config file "arch/ppc/defconfig is used which usually means I have to reconfigure a lot of the options. To save time, right after I do a "make menuconfig" and the .config file is generated in the top directory, I copy the .config file and replace arch/ppc/defconfig with it. 6. (If your board has ethernet) Add board specific scc ethernet pin info to include/asm/commproc.h(find a spot somewhere between the list of boards and possibly change arch/ppc/8xx_io/fec.c to get fast ethernet(fec) to work. 7. whatever else you need. Hopes this helps Dennis Khoo Software Engineer Adapcom, INC. - Original Message - From: "RamanaYV" <[EMAIL PROTECTED]> To: Sent: Wednesday, February 18, 2004 8:11 PM Subject: PPCBOOT in customised MPC860T board > > I was working in MPC860T customised board and trying to port linux through > PPCBOOT. > > can you give me breif guidence to boot PPCBOOT in my board and to port > linux-2.4.19 based kernel. > > Thank you, > Ramana > > ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
PPCBOOT in customised MPC860T board
I was working in MPC860T customised board and trying to port linux through PPCBOOT. can you give me breif guidence to boot PPCBOOT in my board and to port linux-2.4.19 based kernel. Thank you, Ramana ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
2.6 kernel ppc tree
Tom, You are correct I'm sure I have no time on this and I'm trying to get a image to build so I can see what is missing and then start debugging the image. I have to start somewhere and this is where I started. I also see there is a newer version so I will make another attempt in the next few day with that. Rod Boyce -Original Message- From: Tom Rini [mailto:[EMAIL PROTECTED] Sent: Thursday, February 19, 2004 8:03 AM To: Rod Boyce Cc: Lokesh Kumar; linuxppc-embedded at lists.linuxppc.org Subject: Re: 2.6 kernel ppc tree That issue in particular has been fixed in later versions. But commenting out the ret_from_interrupt lines isn't quite enough to get the platform booting :) -- Tom Rini http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/