New platform/icecobe.c
I just noticed that after cvs sync the tree does no longer compile with framebuffer CONFIG_VT enabled and complains few undefined symbols. I added following lines to arch/ppc/platform/icecobe.c #ifdef CONFIG_VT extern void mpc5xxx_setkeycode(); extern void mpc5xxx_getkeycode(); extern void mpc5xxx_translate(); extern void mpc5xxx_unexpected_up(); extern void mpc5xxx_kbd_init_hw(); #endif Kate ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
BSP integration
I am making bsp for my new MPC5200 board ( itipower5200 ) http://www.iti.fi/iti5200.php I just like opinion that is it better that i make own version of linuxppc_2_4_devel tree to my site or is there willignes to take this board as option to stantard linuxppc_2_4_devel tree There is few additions for standard tree -RTL8201 PHY MDIO controll -TSC2301 Audio codec, ADC and Touch screen controller -MMC card interface using SPI -Spartann 2E/Opencores-PCI based display controller Of cource all drivers are GPL Kate ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
question on PPC performance
Now, I have another question to be answered. In Linux Kernel 2.4.x, where to configure cacheable or uncacheable area of SDRAM? ( I used Kernel 2.4.1 ) Thanks any help! John -Original Message- From: [EMAIL PROTECTED] [mailto:owner-linuxppc-embedded at lists.linuxppc.org]On Behalf Of VanBaren, Gerald (AGRE) Sent: Friday, January 30, 2004 9:33 PM To: linuxppc-embedded Subject: RE: question on PPC performance ...because you are NOT accessing SDRAM when you are accessing SDRAM. You are accessing the processor's internal cache, which is running at 200MHz. In fact, you probably are not even accessing internal cache -- IIRC, the 82xx has a write posting queue so, when you do a write, it gets queued but does not wait for the write to complete. When you do a read of the same location, the bus interface goes gets the value out of the write queue, so you are only reading and writing a hidden internal register in the 82xx, not SDRAM and probably not even the internal cache. Turn off the data cache and run your test again, you will be astounded at how slow it is. When you are accessing a port, you need a bus transaction. As your benchmark showed, it takes more time to access a built-in port via the 82xx internal bus. Since your bus is clocked at 66MHz and you are measuring 15nS, it appears that accessing the built-in 82xx ports is running at the bus speed. Your benchmark is very, very simplistic and you are getting correspondingly simplistic measurements. I don't see any calculation or compensation in your benchmark for the overhead of the loop. As pointed out above, it is not measuring what you think it is measuring. gvb -Original Message- From: owner-linuxppc-embedded at lists.linuxppc.org [mailto:owner-linuxppc-embedded at lists.linuxppc.org]On Behalf Of John Zhou Sent: Friday, January 30, 2004 6:32 AM To: 'linuxppc-embedded' Subject: RE: question on PPC performance my questions is: why is it 15 ns when accessing other devices such as port A/B/C/D, immr, etc, except accessing SDRAM, but about 5 ns when accessing SDRAM? Thanks in advance! John -Original Message- From: owner-linuxppc-embedded at lists.linuxppc.org [mailto:owner-linuxppc-embedded at lists.linuxppc.org]On Behalf Of John Zhou Sent: Friday, January 30, 2004 6:22 PM To: 'linuxppc-embedded' Subject: question on PPC performance Dear all, I have an question on PPC performance: I have linux running based on mpc8250 with 200/166/66 clock configuration. But, I found that every CPU instruction used about 5 ns when accessing SDRAM, otherwise, every CPU instruction used about 15 ns when accessing other devices such as port A/B/C/D, immr, etc, except accessing SDRAM. Thanks any help! John = The function I used is: void performance_test(void) { unsigned long i, d1, d2; static unsigned long kkk; unsigned short time; volatile unsigned long* portC = ( volatile unsigned long*)0xF0010D50; volatile unsigned long * tmp = kkk; *(volatile unsigned char*)0xF0010D80 = ~0xB0; *(volatile unsigned short*)0xF0010D92 = 0x0002; *(volatile unsigned char*)0xF0010D80 |= 0x10; *(volatile unsigned long*)0xF0010D44 = ~0x0002; d1 = *(volatile unsigned long*)0xF0010D50; d1 = ~0x0003; d2 = d1 | 0x0002; d1 |= 0x0001; *(volatile unsigned short*)0xF0010D9E = 0; for (i=0; i1000; i++) { *portC = d1; *portC = d2; } time = *(volatile unsigned short*)0xF0010D9E; printk (#test2: 2 access loop 1000 times use %dns\r\n, time*15); *(volatile unsigned short*)0xF0010D9E = 0; for (i=0; i1000; i++) { *tmp = d1; *tmp = d2; } time = *(volatile unsigned short*)0xF0010D9E; printk (#test3: 2 access loop 1000 times use %dns\r\n, time*15); } ** Sent via the linuxppc-embedded mail list. See
About cache of MPC82xx
Dear All, about cache of MPC82xx, which components can be cacheable? I know SDRAM can be used for cacheable memory. Can internal RAM of CPU be used for cacheable memory? do you know which document describe this feature? Thanks in advance! John ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
gcc for ppc/predefined macros
I just had to find out very painfully that my cross-gcc-3.3.2 doesn't have __powerpc__ as a predefined macro anymore: (SuSE-built-) gcc 2.95.3: .../powerpc-linux-cpp -dM ~/foo.h |grep -i pc #define powerpc 1 #define __PPC__ 1 #define PPC 1 #define _ARCH_PPC 1 #define __PPC 1 #define __powerpc__ 1 #define __powerpc 1 (gentoo-crossdev-build-) gcc 3.3.2: .../powerpc-unknown-eabi-cpp -dM ~/foo.h |grep -i pc #define _ARCH_PPC 1 #define __PPC 1 #define PPC 1 #define __PPC__ 1 The kernel relies on __powerpc__ in some places, in fact, the serial console won't work anymore since the LCR gets setup incorrectly in serial_console_setup located in serial.c. The workaround is easy, just added -D__powerpc__ to CFLAGS_KERNEL. -- Stefan Nickl Project Engineering Kontron Modular Computers Sudetenstr. 7 D-87600 Kaufbeuren Phone ++49/8341/803-294 ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
question about big initrd
Hi,all I have trouble with big ramdisk when I port mvl-2.1(liux kernel 2.4.17) to my board with cpu mpc8240, which has 128Mbyte SDRAM. I configure the linux kernel to support initrd and set initrd size as 20480(kbytes). When the actual size of my total ramdisk files is about 11Mbytes,the system boots up smoothly; but when the actual size of the total files is greater than 15Mbytes,the system fails to boot up and tells me ramdisk invalid compressed format or crc error or incomplete write, and so on. Any suggestion? Thanks in advance. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Is there any way for user space program to get IRQ from kernel space?
Hi, I am sure that user space program can't install ISR or get IRQ from hardware directly. I'd like to know there is any way a user space program to get waked up by a specific hardware IRQ. Create a character device which implements the poll() method,, and use select() in userspace. Alex ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Giga-bit Ethernet Support for PPC 440GX
Dear all, Does anyone know that the Giba-bit Ethernet support for PowerPC 440GX has been implemented in kernel and u-boot? Many thanks, --Yutao ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
gcc for ppc/predefined macros
On Mon, Feb 02, 2004 at 10:49:01AM +0100, Stefan Nickl wrote: I just had to find out very painfully that my cross-gcc-3.3.2 doesn't have __powerpc__ as a predefined macro anymore: (SuSE-built-) gcc 2.95.3: .../powerpc-linux-cpp -dM ~/foo.h |grep -i pc #define powerpc 1 #define __PPC__ 1 #define PPC 1 #define _ARCH_PPC 1 #define __PPC 1 #define __powerpc__ 1 #define __powerpc 1 (gentoo-crossdev-build-) gcc 3.3.2: .../powerpc-unknown-eabi-cpp -dM ~/foo.h |grep -i pc #define _ARCH_PPC 1 #define __PPC 1 #define PPC 1 #define __PPC__ 1 The kernel relies on __powerpc__ in some places, in fact, the serial console won't work anymore since the LCR gets setup incorrectly in serial_console_setup located in serial.c. I belive the problem is that you did not compile your cross-compiler correctly: $ ppc_7xx-cpp -dM /tmp/foo.h | grep pc #define __powerpc__ 1 #define __powerpc 1 #define powerpc 1 Make sure you do --target=powerpc-foo-linux when configuring gcc. -- Tom Rini http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Giga-bit Ethernet Support for PPC 440GX
On Mon, Feb 02, 2004 at 10:38:10AM -0800, Yutao He wrote: Dear all, Does anyone know that the Giba-bit Ethernet support for PowerPC 440GX has been implemented in kernel and u-boot? I have some functional kernel support for 440GX gige but am trying to get the 2.6 driver in-sync with the 2.4 driver before sending jgarzik the updates. This is dependent on related 2.6 OCP updates being taken as well. -Matt ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Fw: 2.6.0 Kernel
I have been using the 2.4.xx kernels successfully. I recently downloaded 2.6.0 to begin playing with it. All compiles happily until I get to UART.c. The compilation fails with many errors, for instance: uart.c:2920 request for member 'tx_bd_base' in something that is not a structure or union I suspect I'm missing something obvious that has changed in the include file structure, but I haven't done anything beyond 'make menuconfig' Any ideas? ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
ppcboot boot-up question
I'm using PPCBoot 2.0.0 I have my PPC 750 setup to delay for 5sec then boot from the DiskOnChip. This works properly, as long as I have an active serial connection to the board. However, I've noticed that if there is not an active serial connection to the board, the autoboot function will not work. If I reset the board, with no serial connection, then start minicom after 10 seconds I always find the following: = AT S7=45 S0=0 L1 V1 X4 c1 E1 Q0 syntax error = Does anyone know what I am doing wrong?? These are my environmental variables: baudrate=9600 preboot= clocks_in_mhz=1 hostname=spyder ethaddr=00:c0:e5:10:0:99 serverip=10.1.1.107 gatewayip=10.1.1.1 ipaddr=10.1.1.28 netmask=255.255.255.0 nfs_bootfile=gesppc2 doc_bootfile=no_nfs_pImage bootdelay=5 rootpath=/opt/timesys/linux/4.0/gesppc2/rfs bootcmd=docboot 600 0 bootargs=root=/dev/nftla1 rw ip=10.1.1.28::10.1.1.1:255.255.255.0:spyder:eth0:off autostart=yes autoload=yes stdin=serial stdout=serial stderr=serial Environment size: 438/4092 bytes ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
ppcboot boot-up question
You probably need the serial handshake lines properly terminated, or hardware handshaking disabled, so that your boot process isn't waiting for the handshake lines to go active. For a test, make a DB-9 (or whatever) with RTS connected to CTS and DSR connected to DTR and DCD. Plug this into your board and I suspect it will boot fine. The AT S7=45 S0=0 L1 V1 X4 c1 E1 Q0 is minicom trying to initialize your modem (which obviously doesn't exist). This can be ignored, but a better solution is to switch to ckermit (as Wolfgang would strongly recommend ;-) or change your minicom default initialization by deleting all the modem initialization strings. gvb -Original Message- From: owner-linuxppc-embedded at lists.linuxppc.org [mailto:owner-linuxppc-embedded at lists.linuxppc.org]On Behalf Of Todd Sent: Monday, February 02, 2004 4:40 PM To: linuxppc-embedded at lists.linuxppc.org Subject: ppcboot boot-up question I'm using PPCBoot 2.0.0 I have my PPC 750 setup to delay for 5sec then boot from the DiskOnChip. This works properly, as long as I have an active serial connection to the board. However, I've noticed that if there is not an active serial connection to the board, the autoboot function will not work. If I reset the board, with no serial connection, then start minicom after 10 seconds I always find the following: = AT S7=45 S0=0 L1 V1 X4 c1 E1 Q0 syntax error = Does anyone know what I am doing wrong?? These are my environmental variables: baudrate=9600 preboot= clocks_in_mhz=1 hostname=spyder ethaddr=00:c0:e5:10:0:99 serverip=10.1.1.107 gatewayip=10.1.1.1 ipaddr=10.1.1.28 netmask=255.255.255.0 nfs_bootfile=gesppc2 doc_bootfile=no_nfs_pImage bootdelay=5 rootpath=/opt/timesys/linux/4.0/gesppc2/rfs bootcmd=docboot 600 0 bootargs=root=/dev/nftla1 rw ip=10.1.1.28::10.1.1.1:255.255.255.0:spyder:eth0:off autostart=yes autoload=yes stdin=serial stdout=serial stderr=serial Environment size: 438/4092 bytes ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
ppcboot boot-up question
In message 20040202213949.30276.qmail at web40408.mail.yahoo.com you wrote: I'm using PPCBoot 2.0.0 ... which is ancient. I have my PPC 750 setup to delay for 5sec then boot from the DiskOnChip. This works properly, as long as I have an active serial connection to the board. However, I've noticed that if there is not an active serial connection to the board, the autoboot function will not work. If I reset the board, with no serial connection, then start minicom after 10 seconds I always find the following: = AT S7=45 S0=0 L1 V1 X4 c1 E1 Q0 syntax error It seems you configured miniom to send a modem init string. This is not expected by PPCBoot. Does anyone know what I am doing wrong?? You use minicom. You post to the wrong list (u-boot-users is a much better place for such questions). You don't provide any details. Maybe the serial driver on your board is waiting for a hardware handshake signal (DCD?) which is down while disconnected? What happens when you disconnect the cable? 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 I see that Microsoft's campaign to destroy all knowledge of any operating environment but its own environment-of-the-year has succeeded in creating a generation of users who don't understand the concept of a shell... -- L. Peter Deutsch in m0x5jNX-000R2UC at lamp.aladdin.com ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/