* Virtex-4 TEMAC device driver available?
From: S. Egbert @ 2006-02-19 1:34 UTC (permalink / raw)
To: linuxppc-embedded
Dear Kashiwagi-San,
I noticed in your posting over at linuxppc-embedded in Jan 2006 about a
Xilinx demo code for the TEMAC driver.
So, I pulled the
http://www.xilinx.co.jp/ise/embedded/EDK/71i/mpmc_7_1_2.zip file and
browsed it.
Do you know where one can get a patch for Linux 2.4?
Thank you,
Steve Egbert
--
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GAT d- s++: !a C+++ UL++++ P+++ L+++ E W+++ N+ o++ K+++ w--
O- M+ V- PS PE++ Y+ PGP++ t++ 5++ X++ R tv- b++ DI+ D+
G++ e* h++ r+++ z
------END GEEK CODE BLOCK------
GPG Public Key: http://www.egbert.net/pgp
^ permalink raw reply
* Virtex-4 TEMAC device driver available?
From: S. Egbert @ 2006-02-19 1:36 UTC (permalink / raw)
To: linuxppc-embedded
Dear Mr. Lynch,
I noticed your posting on Linux PPC embedded news list in Jan 2006 about
the TEMAC driver for Linux.
So, I pulled a copy of Xilinx driver
(http://www.xilinx.co.jp/ise/embedded/EDK/71i/mpmc_7_1_2.zip) and
browsed it.
Did you have any luck thus far with the Linux 2.4 patch?
Coordially,
Steve
---
Steve Egbert
--
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GAT d- s++: !a C+++ UL++++ P+++ L+++ E W+++ N+ o++ K+++ w--
O- M+ V- PS PE++ Y+ PGP++ t++ 5++ X++ R tv- b++ DI+ D+
G++ e* h++ r+++ z
------END GEEK CODE BLOCK------
GPG Public Key: http://www.egbert.net/pgp
^ permalink raw reply
* altivec_unavailable_exception Oopses
From: Alan Curry @ 2006-02-19 4:10 UTC (permalink / raw)
To: linuxppc-dev
When running a CONFIG_ALTIVEC=n kernel on a G4, altivec_unavailable_exception
should send a SIGILL to any process that tries to execute a vector
instruction in user mode. For some reason, it's not doing that. Instead, it
either Oopses or continually retries the faulting instruction. Sometimes it
also prints the message indicating that fault happened in kernel mode.
I've tried 2.6.15.4 and 2.6.16-rc4. Although the log messages look different,
the general idea is the same.
Log messages from 2.6.15.4:
AltiVec used in kernel (task=dd77a050, pc=0)
AltiVec used in kernel (task=dd77a050, pc=0)
AltiVec used in kernel (task=dd77a050, pc=0)
AltiVec used in kernel (task=dd77a050, pc=0)
AltiVec used in kernel (task=dd77a050, pc=0)
AltiVec used in kernel (task=dd77a050, pc=0)
AltiVec used in kernel (task=dd77a050, pc=0)
AltiVec used in kernel (task=dd77a050, pc=0)
AltiVec used in kernel (task=dd77a050, pc=0)
[...much later, on another attempt...]
Oops: kernel access of bad area, sig: 11 [#1]
NIP: C0005ABC LR: C0004A5C SP: D17E9F20 REGS: d17e9e70 TRAP: 0300 Not tainted
MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 00000088, DSISR: 40000000
TASK = c93ad830[11262] 'mplayer' THREAD: d17e8000
Last syscall: 174
GPR00: C0004A5C D17E9F20 C93AD830 00000004 00000004 00030001 00000000 0F9E4C00
GPR08: 10530000 C0004A5C 00009032 C0320000 093ADA00 1053A930 00000001 00000000
GPR16: 10097774 00000000 00000000 10090000 00000000 30017480 00000000 7FA87A74
GPR24: 00000004 00000004 7FA87B14 7FA87A60 7FA87A74 300269E8 0FAFBA1C 00000004
NIP [c0005abc] altivec_unavailable_exception+0x24/0x94
LR [c0004a5c] ret_from_except+0x0/0x1c
Call trace:
[c0004a5c] ret_from_except+0x0/0x1c
Log messages from 2.6.16-rc4:
Unable to handle kernel paging request for data at address 0x00000088
Faulting instruction address: 0xc000e5a0
Oops: Kernel access of bad area, sig: 11 [#1]
Modules linked in: ipv6 ip_nat_tftp ip_conntrack_tf tp ip_nat_irc ip_conntrack_irc ip_nat_ftp ip_conntrack_ftp ip_nat_amanda ip_conntrack_amanda ipt_MASQUERADE iptable_nat ip_nat ip_conntrack nfnetlink ip_tables x_tables snd_via82xx gameport snd_ac97_codec snd_ac97_bus snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore uhci_hcd ohci_hcd usbcore ohci1394 ieee1394 unix dm_mod mv643xx_eth via_rhine psmouse i8042 atkbd serio libps2
NIP: C000E5A0 LR: C000F540 CTR: 00000000
REGS: d4e49e70 TRAP: 0300 Not tainted (2.6.16-rc4)
MSR: 00009032 <EE,ME,IR,DR> CR: 44000482 XER: 00000000
DAR: 00000088, DSISR: 40000000
TASK = dbc29440[1347] 'mplayer' THREAD: d4e48000
GPR00: C000F540 D4E49F20 DBC29440 00000004 00000004 00030001 00000000 0F9E4C00
GPR08: 104C0000 C000F540 00009032 C000E580 1BC29618 104CC6C0 100A0000 FFFFFFFF
GPR16: 00000000 00000000 00000000 10090000 00000000 30017720 10007CD0 103A3BA8
GPR24: 103A3C38 00000006 7FDB2B8C 00000000 7FDB2AF4 00000006 00000001 00000004
NIP [C000E5A0] altivec_unavailable_exception+0x20/0x84
LR [C000F540] ret_from_except+0x0/0x14
Call Trace:
[D4E49F20] [10003D85] 0x10003d85 (unreliable)
[D4E49F40] [C000F540] ret_from_except+0x0/0x14
--- Exception: f21 at 0x10014524
LR = 0x100144a0
Instruction dump:
bba10014 3863eba8 38210020 4bfff190 9421ffe0 7c0802a6 3ca00003 7c641b78
93e1001c 60a50001 90010024 7c7f1b78 <80030084> 38600004 70094000 801f0080
[...later, on second attempt...]
Oops: Unrecoverable VMX/Altivec Unavailable Exception, sig: 6 [#2]
Modules linked in: ppp_deflate zlib_deflate bsd_comp ppp_async crc_ccitt ppp_generic slhc ipv6 ip_nat_tftp ip_conntrack_tftp ip_nat_irc ip_conntrack_irc ip_nat_ftp ip_conntrack_ftp ip_nat_amanda ip_conntrack_amanda ipt_MASQUERADE iptable_nat ip_nat ip_conntrack nfnetlink ip_tables x_tables snd_via82xx gameport snd_ac97_codec snd_ac97_bus snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore uhci_hcd ohci_hcd usbcore ohci1394 ieee1394 unix dm_mod mv643xx_eth via_rhine psmouse i8042 atkbd serio libps2
NIP: 00000000 LR: 00000000 CTR: 00000000
REGS: 105bd458 TRAP: 0000 Not tainted (2.6.16-rc4)
MSR: 00000000 <> CR: 00000000 XER: 00000000
TASK = d3106050[1428] 'mplayer' THREAD: dc664000
GPR00: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
GPR08: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
GPR16: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
GPR24: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
NIP [00000000] 0x0
LR [00000000] 0x0
Call Trace:
[DC665ED0] [C0007674] show_stack+0x5c/0x184 (unreliable)
[DC665F00] [C00070B0] show_regs+0x180/0x1b8
[DC665F20] [C000D788] die+0x7c/0xe0
[DC665F40] [C000F540] ret_from_except+0x0/0x14
--- Exception: f21 at 0x10015374
LR = 0x10006438
Instruction dump:
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
/proc/cpuinfo while running the no-altivec 2.6.16-rc4:
processor : 0
cpu : 7447/7457
clock : 999.999990MHz
revision : 0.1 (pvr 8002 0101)
bogomips : 66.56
timebase : 33333333
machine : CHRP Pegasos2
^ permalink raw reply
* Re: 2.6.16-rc4: known regressions
From: Pekka Enberg @ 2006-02-19 11:06 UTC (permalink / raw)
To: Adrian Bunk
Cc: Andrew Morton, len.brown, Dmitry Torokhov, linux-acpi,
John Stultz, Meelis Roos, gregkh, Linux Kernel Mailing List,
linuxppc-dev, Linus Torvalds, linux-input, Sanjoy Mahajan
In-Reply-To: <20060217231444.GM4422@stusta.de>
On 2/18/06, Adrian Bunk <bunk@stusta.de> wrote:
> Subject : gnome-volume-manager broken on powerpc since 2.6.16-rc1
> References : http://bugzilla.kernel.org/show_bug.cgi?id=3D6021
> Submitter : John Stultz <johnstul@us.ibm.com>
> Status : still present in -git two days ago
This is not ppc only. I have the exact same problem on Gentoo
Linux/x86. No ipod events on 2.6.16-rc1, whereas 2.6.15 works fine.
Haven't had the time to investigate further yet, sorry.
Pekka
^ permalink raw reply
* Re: Virtex-4 TEMAC device driver available?
From: Yoshio Kashiwagi @ 2006-02-19 11:39 UTC (permalink / raw)
To: S. Egbert, linuxppc-embedded
In-Reply-To: <43F7CB11.5000202@sbcglobal.net>
Hello Steve San,
Strictly, GSRD differs from TEMAC.
Although both are embedded TEMAC is used in Virtex4, GSRD accesses
direct memory through MPMC. MPMC is a multi-port memory controller
for GSRD to access direct memory.
http://www.xilinx.com/esp/wired/optical/xlnx_net/gsrd_download.htm
Download of GSRD is linked out of the above-mentioned URL, and
becomes a place to be logged in (Registration for downloading the
reference design short cut).
http://www.xilinx.com/xlnx/xil_entry2.jsp?sMode=login&group=gsrd
Linux2.4 driver is contained in this GSRD. However, this Linux2.4
driver (adapter.c) has the fault which does not operate correctly,
when a 100BASE hub is connected. In order to correct this problem,
it is necessary to add the interrupt handling routine of PHY.
Although this GSRD is a reference design more nearly high-speed
than TEMAC, many FPGA resources are used for it.
I am going to create a TEMAC driver (Linux2.6) by a scratch, I
cannot make time for it now. Since it is due to make by the end of
this month, if it is completed, I'll announce it to this mailing
list.
I'll write the Linux2.6 TEMAC driver corresponding to the following
reference designs.
http://direct.xilinx.com/bvdocs/appnotes/xapp902.pdf
http://www.xilinx.com/bvdocs/appnotes/xapp902.zip
(The Linux driver is not contained in this reference design)
Best Regards,
Yoshio Kashiwagi - Nissin Systems
> Dear Kashiwagi-San,
>
> I noticed in your posting over at linuxppc-embedded in Jan 2006 about
a
> Xilinx demo code for the TEMAC driver.
>
> So, I pulled the
> http://www.xilinx.co.jp/ise/embedded/EDK/71i/mpmc_7_1_2.zip file and
> browsed it.
>
> Do you know where one can get a patch for Linux 2.4?
>
> Thank you,
>
> Steve Egbert
>
> --
> -----BEGIN GEEK CODE BLOCK-----
> Version: 3.12
> GAT d- s++: !a C+++ UL++++ P+++ L+++ E W+++ N+ o++ K+++ w--
> O- M+ V- PS PE++ Y+ PGP++ t++ 5++ X++ R tv- b++ DI+ D+
> G++ e* h++ r+++ z
> ------END GEEK CODE BLOCK------
> GPG Public Key: http://www.egbert.net/pgp
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
^ permalink raw reply
* [PATCH] powermac: Fix loss of ethernet PHY on sleep
From: Benjamin Herrenschmidt @ 2006-02-20 0:17 UTC (permalink / raw)
To: Andrew Morton; +Cc: linuxppc-dev list, Linus Torvalds, Linux Kernel list
Some recent PowerBook models tend to lose the ethernet PHY on
suspend/resume. It -seems- that they use a combo ethernet-firewire PHY
chip and the firewire PHY seems to die the same way when that happens.
Not trying to toggle the firewire cable power appears to fix it. So this
patch disables changes to the firewire cable power control GPIO on those
models. Please apply for 2.6.16.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Index: linux-work/arch/powerpc/platforms/powermac/feature.c
===================================================================
--- linux-work.orig/arch/powerpc/platforms/powermac/feature.c 2006-02-20 11:10:07.000000000 +1100
+++ linux-work/arch/powerpc/platforms/powermac/feature.c 2006-02-20 11:13:25.000000000 +1100
@@ -1648,10 +1648,10 @@
KL0_SCC_CELL_ENABLE);
MACIO_BIC(KEYLARGO_FCR1,
- /*KL1_USB2_CELL_ENABLE |*/
KL1_I2S0_CELL_ENABLE | KL1_I2S0_CLK_ENABLE_BIT |
KL1_I2S0_ENABLE | KL1_I2S1_CELL_ENABLE |
- KL1_I2S1_CLK_ENABLE_BIT | KL1_I2S1_ENABLE);
+ KL1_I2S1_CLK_ENABLE_BIT | KL1_I2S1_ENABLE |
+ KL1_EIDE0_ENABLE);
if (pmac_mb.board_flags & PMAC_MB_MOBILE)
MACIO_BIC(KEYLARGO_FCR1, KL1_UIDE_RESET_N);
@@ -2185,7 +2185,7 @@
},
{ "PowerMac10,1", "Mac mini",
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
- PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER,
+ PMAC_MB_MAY_SLEEP,
},
{ "iMac,1", "iMac (first generation)",
PMAC_TYPE_ORIG_IMAC, paddington_features,
@@ -2297,11 +2297,11 @@
},
{ "PowerBook5,8", "PowerBook G4 15\"",
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
- PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
+ PMAC_MB_MAY_SLEEP | PMAC_MB_MOBILE,
},
{ "PowerBook5,9", "PowerBook G4 17\"",
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
- PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
+ PMAC_MB_MAY_SLEEP | PMAC_MB_MOBILE,
},
{ "PowerBook6,1", "PowerBook G4 12\"",
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
^ permalink raw reply
* please pull powerpc-merge.git
From: Paul Mackerras @ 2006-02-20 6:08 UTC (permalink / raw)
To: torvalds; +Cc: linuxppc-dev
Linus,
Please do a pull from
git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge.git
There are 6 commits there with some bug fixes that should go in
2.6.16, including a fix for the xtime vs gettimeofday drift that uses
the current_tick_length() function that was recently added.
Thanks,
Paul.
Michael Ellerman:
powerpc: Don't start secondary CPUs in a UP && KEXEC kernel
powerpc: Make UP -> SMP kexec work again
powerpc: Fix bug in spinup of renumbered secondary threads
Olaf Hering:
powerpc: remove duplicate exports
Olof Johansson:
powerpc: Fix OOPS in lparcfg on G5
Paul Mackerras:
powerpc: Keep xtime and gettimeofday in sync
arch/powerpc/kernel/head_64.S | 4
arch/powerpc/kernel/lparcfg.c | 6 -
arch/powerpc/kernel/ppc_ksyms.c | 16 --
arch/powerpc/kernel/setup_64.c | 4
arch/powerpc/kernel/sys_ppc32.c | 4
arch/powerpc/kernel/time.c | 282 ++++++++++++----------------------
arch/powerpc/platforms/pseries/smp.c | 2
arch/ppc/kernel/ppc_ksyms.c | 8 -
arch/ppc/xmon/start.c | 15 --
include/asm-ppc/machdep.h | 13 --
10 files changed, 108 insertions(+), 246 deletions(-)
^ permalink raw reply
* Re: arch/ppc/82xx_io/uart.c bug found
From: Wojciech Kromer @ 2006-02-20 7:57 UTC (permalink / raw)
Cc: linuxppc-embedded
In-Reply-To: <0744a8b48857d469b3d4ceff6f7fd40f@embeddedalley.com>
>Three things....
>
>One, this code is obsolete and isn't used any more.
>
>
It's in latest linuxppc_2_4_devel from denx.de CVS.
>Two, it's not a bug, just a feature enhancement.
>
>
OK.
>Three, if you want us to actually do something about
>this I need a real patch against an up to date
>public source tree and indication it was actually
>tested on some platform.
>
>
I'm currently using CVS version from denx.de,
there are lot of features I'm using.
Just use this info as an information, not offcial bug note.
I spend few days finding it.
^ permalink raw reply
* Broken pcmcia on m8xx.
From: Hans Schillstrom @ 2006-02-20 11:24 UTC (permalink / raw)
To: linuxppc-dev list
Hello
I'm trying to get a flash disk working with 2.6.15 kernel
on a TQM860L board.( With 2.4.25 it works perfect.)
I added a printk in ide-probe.c to see the result from IDE_SELECT_REG
and it was 0xff ...
Does any one has an idea where to start searching or knows what is
wrong ?
Added some printouts from u-boot, linux 2.4.25 and 2.6.15
/Hans
U-BOOT Startup message:
=======================
PCMCIA: 3.3V card found: SanDisk SDP 5/3 0.6
Fixed Disk Card
IDE interface
[silicon] [unique] [single] [sleep] [standby] [idle] [low
power]
Bus 0: OK
Device 0: Model: SanDisk SDCFB-1024 Firm: Rev 0.00 Ser#: X0406
20050813225551
Type: Removable Hard Disk
Capacity: 977.4 MB = 0.9 GB (2001888 x 512)
Kernel 2.4.25 Startup:
======================
Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 50MHz system bus speed for PIO modes; override with
idebus=xx
PCMCIA slot B: phys mem e0000000...ec000000 (size 0c000000)
Card ID: SanDisk SDP 5/3 0.6
Fixed Disk Card
IDE interface
[silicon] [unique] [single] [sleep] [standby] [idle] [low power]
Probing IDE interface ide0...
hda: probing with STATUS(0x50) instead of ALTSTATUS(0xf6)
hda: SanDisk SDCFB-1024, CFA DISK drive
hdb: probing with STATUS(0x50) instead of ALTSTATUS(0xf6)
hdb: probing with STATUS(0x50) instead of ALTSTATUS(0xf6)
hdb: probing with STATUS(0x50) instead of ALTSTATUS(0xf6)
hdb: probing with STATUS(0x50) instead of ALTSTATUS(0xf6)
ide0 at 0x460df320-0x460df327,0x420df106 on irq 13
hda: attached ide-disk driver.
hda: 2001888 sectors (1025 MB) w/1KiB Cache, CHS=1986/16/63
Partition check:
hda: [PTBL] [993/32/63] hda1
TQM8xxL Bank 0: Found 2 x16 devices at 0x400000 in 32-bit mode
Kernel 2.6.15 startup:
========================
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 50MHz system bus speed for PIO modes; override with
idebus=xx
init_hwif_default()
PCMCIA slot B: phys mem e0000000...ec000000 (size 0c000000)
Card ID: SanDisk SDP 5/3 0.6
Fixed Disk Card
IDE interface
[silicon] [unique] [single] [sleep] [standby] [idle] [low power]
probing for hda: present=0, media=32, probetype=ATA
do_probe(ret:255)
Here is the my small modification of do_probe.
static int do_probe (ide_drive_t *drive, u8 cmd)
{
...
/* needed for some systems
* (e.g. crw9624 as drive0 with disk as slave)
*/
ide_delay_50ms();
SELECT_DRIVE(drive);
ide_delay_50ms();
printk("do_probe(inb:%d)\n",hwif->INB(IDE_SELECT_REG));
if (hwif->INB(IDE_SELECT_REG) != drive->select.all && !drive->present)
{
if (drive->select.b.unit != 0) {
/* exit with drive0 selected */
SELECT_DRIVE(&hwif->drives[0]);
/* allow BUSY_STAT to assert & clear */
ide_delay_50ms();
}
/* no i/f present: mmm.. this should be a 4 -ml */
return 3;
}
...
^ permalink raw reply
* RE: 82xx_io UART BRG's vs BUS CLK
From: Russell McGuire @ 2006-02-20 12:22 UTC (permalink / raw)
To: 'Jenkins, Clive', linuxppc-embedded
In-Reply-To: <35786B99AB3FDC45A8215724617919736D9236@gbrwgceumf01.eu.xerox.net>
Everyone,
Found a bug in the Linux 2.4.25 -> 2.4.26 and perhaps newer PPC kernels.
However, thanks for the U-boot tree, as it already had the fix. Thanks to
those who had hinted at something like this already. I have tested this out
and it works good for me on a MPC8280, with U-boot 1.1.2 and DENX Linux
2.4.25.
I don't have a patch file but the change is real simple if someone would
like to provide one.
/linux/arch/ppc/8260_io/commproc.c there is this bit of code.
--------------------------------------
/* This function is used by UARTS, or anything else that uses a 16x
* oversampled clock. */
void cpm2_setbrg(uint brg, uint rate)
{
volatile uint *bp;
/* This is good enough to get SMCs running.....
*/
if (brg < 4) {
bp = (uint *)&cpm2_immr->im_brgc1;
}
else {
bp = (uint *)&cpm2_immr->im_brgc5;
brg -= 4;
}
bp += brg;
*bp = ((BRG_UART_CLK / rate) << 1) | CPM_BRG_EN;
}
----------------------------------------
I recently put the correct frequency in U-boot to pass to linux, i.e.
66,666,666Mhz instead of 66,000,000Mhz. And this broke the BRG setups and I
could no longer run 115200 Baudrate.
So after looking around, I found that the Uboot 1.1.2 and newer code already
has a modified version of this code, and that it works correctly. Thanks
DENX!
See correct code below: note the cd--
-------------------------------------------------
void m8260_cpm_setbrg(uint brg, uint rate)
{
volatile uint *bp;
uint cd = BRG_UART_CLK / rate;
if ((BRG_UART_CLK % rate) < (rate / 2))
cd--;
if (brg < 4) {
bp = (uint *)&immr->im_brgc1;
}
else {
bp = (uint *)&immr->im_brgc5;
brg -= 4;
}
bp += brg;
*bp = (cd << 1) | CPM_BRG_EN;
}
----------------------------------------------------
-----Original Message-----
From: Jenkins, Clive [mailto:Clive.Jenkins@xerox.com]
Sent: Tuesday, February 14, 2006 3:24 AM
To: Russell McGuire; linuxppc-embedded@ozlabs.org
Subject: RE: 82xx_io UART BRG's vs BUS CLK
> I did some math on the BRG calculations and with 66Mhz the BRG divisor
is
> 17.8 I am assuming 17 gets written, and with 66.666Mhz then its 18.02
so
> thus 18 probably gets written. Should perhaps a constant minus 1 be
added to
> the code?
> Using:
> U-boot 1.1.2
> DENX Linux 2.4.25
> Is anyone aware of similar issues, or are there bug fixes past the
2.4.25
> Kernel for this?
> -Russ
Hi Russ
I am not familiar with your hardware, nor have I checked the code that
calculated the Baud rate divisor.
I would advise against "adding a constant -1", in favour of rounding
to the nearest integer. From your figures:
divisor = clock / (baudrate * 32)
To get a rounded result using real numbers:
divisor = integer_part_of((clock / (baudrate * 32)) + 1/2)
Using integer arithmetic, you can code this in C as:
divisor = ((clock / baudrate /16) + 1) >> 1;
I would check whether or not the code is doing this, or the equivalent,
and if not, change it. If the code is doing this, the divisor should be
18 in both cases.
Clive
^ permalink raw reply
* RE: 82xx_io UART BRG's vs BUS CLK
From: Jenkins, Clive @ 2006-02-20 13:32 UTC (permalink / raw)
To: Russell McGuire, linuxppc-embedded
Russ
In fact the CD field of the hardware register needs to be
programmed with (divisor - 1), so in a sense you were right
about "adding a constant -1"! But it still needs the rounding
I suggested.
The Denx code combines the rounding and decrementing.
Clive
-----Original Message-----
From: Russell McGuire [mailto:rmcguire@uwbt.com]=20
Sent: 20 February 2006 12:22
To: Jenkins, Clive; linuxppc-embedded@ozlabs.org
Subject: RE: 82xx_io UART BRG's vs BUS CLK
Everyone,
Found a bug in the Linux 2.4.25 -> 2.4.26 and perhaps newer PPC kernels.
However, thanks for the U-boot tree, as it already had the fix. Thanks
to
those who had hinted at something like this already. I have tested this
out
and it works good for me on a MPC8280, with U-boot 1.1.2 and DENX Linux
2.4.25.
I don't have a patch file but the change is real simple if someone would
like to provide one.
/linux/arch/ppc/8260_io/commproc.c there is this bit of code.
--------------------------------------
/* This function is used by UARTS, or anything else that uses a 16x
* oversampled clock. */
void cpm2_setbrg(uint brg, uint rate)
{
volatile uint *bp;
=20
/* This is good enough to get SMCs running.....
*/
if (brg < 4) {
bp =3D (uint *)&cpm2_immr->im_brgc1;
}
else {
bp =3D (uint *)&cpm2_immr->im_brgc5;
brg -=3D 4;
}
bp +=3D brg;
*bp =3D ((BRG_UART_CLK / rate) << 1) | CPM_BRG_EN;
}
----------------------------------------
I recently put the correct frequency in U-boot to pass to linux, i.e.
66,666,666Mhz instead of 66,000,000Mhz. And this broke the BRG setups
and I
could no longer run 115200 Baudrate.
So after looking around, I found that the Uboot 1.1.2 and newer code
already
has a modified version of this code, and that it works correctly. Thanks
DENX!
See correct code below: note the cd--
-------------------------------------------------
void m8260_cpm_setbrg(uint brg, uint rate)
{
volatile uint *bp;
uint cd =3D BRG_UART_CLK / rate;
if ((BRG_UART_CLK % rate) < (rate / 2))
cd--;
if (brg < 4) {
bp =3D (uint *)&immr->im_brgc1;
}
else {
bp =3D (uint *)&immr->im_brgc5;
brg -=3D 4;
}
bp +=3D brg;
*bp =3D (cd << 1) | CPM_BRG_EN; =20
}
----------------------------------------------------
-----Original Message-----
From: Jenkins, Clive [mailto:Clive.Jenkins@xerox.com]=20
Sent: Tuesday, February 14, 2006 3:24 AM
To: Russell McGuire; linuxppc-embedded@ozlabs.org
Subject: RE: 82xx_io UART BRG's vs BUS CLK
> I did some math on the BRG calculations and with 66Mhz the BRG divisor
is
> 17.8 I am assuming 17 gets written, and with 66.666Mhz then its 18.02
so
> thus 18 probably gets written. Should perhaps a constant minus 1 be
added to
> the code?
> Using:
> U-boot 1.1.2
> DENX Linux 2.4.25
> Is anyone aware of similar issues, or are there bug fixes past the
2.4.25
> Kernel for this?
> -Russ
Hi Russ
I am not familiar with your hardware, nor have I checked the code that
calculated the Baud rate divisor.
I would advise against "adding a constant -1", in favour of rounding
to the nearest integer. From your figures:
divisor =3D clock / (baudrate * 32)
To get a rounded result using real numbers:
divisor =3D integer_part_of((clock / (baudrate * 32)) + 1/2)
Using integer arithmetic, you can code this in C as:
divisor =3D ((clock / baudrate /16) + 1) >> 1;
I would check whether or not the code is doing this, or the equivalent,
and if not, change it. If the code is doing this, the divisor should be
18 in both cases.
Clive
^ permalink raw reply
* (no subject)
From: Bora KARTAL @ 2006-02-20 13:39 UTC (permalink / raw)
To: linuxppc-embedded
Hi,
I am trying to run linuxppc 2.4.20 with a nfs mounted root file system on=
=20a Motorolla MVME5100 board with a PowerPC 7410 processor. When I used =
the default kernel =FDmage sh=FDpped with MontaVista Linux development ki=
t, it boots up and works fine. But when I build up a custom kernel I am g=
etting the following exception during bootup.
=20
Residual-Data Located at: $1FE9077C
Exception: Program (Illegal Instruction)
SRR0 =3D00005000 SRR1 =3D00083040 Vector-Offset =3D00700
IP =3D00005000 MSR =3D00003040 CR =3D00000000 FPSCR =3D00000000
R0 =3D00000000 R1 =3D1FE00000 R2 =3D00000000 R3 =3D1FE9077C
R4 =3D00005000 R5 =3D00000000 R6 =3D00000000 R7 =3D00000000
R8 =3D00000000 R9 =3D00000000 R10 =3D00000000 R11 =3D00000000
R12 =3D00000000 R13 =3D00000000 R14 =3D00000000 R15 =3D00000000
R16 =3D00000000 R17 =3D00000000 R18 =3D00000000 R19 =3D00000000
R20 =3D00000000 R21 =3D00000000 R22 =3D00000000 R23 =3D00000000
R24 =3D00000000 R25 =3D00000000 R26 =3D00000000 R27 =3D00000000
R28 =3D00000000 R29 =3D00000000 R30 =3D00000000 R31 =3D00000000
SPR0 =3D00000000 SPR1 =3D00000000 SPR8 =3D00000000 SPR9 =3D00000000
00005000 7F454C46 WORD $7F454C46
Anybody can help?
Thanks,
Bora
######################################################################
Dikkat:
Bu elektronik posta mesaji kisisel ve ozeldir. Eger size=20
gonderilmediyse lutfen gondericiyi bilgilendirip mesaji siliniz.=20
Firmamiza gelen ve giden mesajlar virus taramasindan gecirilmekte,=20
guvenlik nedeni ile kontrol edilerek saklanmaktadir. Mesajdaki=20
gorusler ve bakis acisi gondericiye ait olup Aselsan A.S. resmi=20
gorusu olmak zorunda degildir.
######################################################################
Attention:=20
This e-mail message is privileged and confidential. If you are=20
not the intended recipient please delete the message and notify=20
the sender. E-mails to and from the company are monitored for=20
operational reasons and in accordance with lawful business practices.=20
Any views or opinions presented are solely those of the author and=20
do not necessarily represent the views of the company.
######################################################################
^ permalink raw reply
* MVME5100 Exception: Program (Illegal Instruction)
From: Bora KARTAL @ 2006-02-20 13:39 UTC (permalink / raw)
To: linuxppc-embedded
=20
Hi,
I am trying to run linuxppc 2.4.20 with a nfs mounted root file system on=
=20a Motorolla MVME5100 board with a PowerPC 7410 processor. When I used =
the default kernel =FDmage sh=FDpped with MontaVista Linux development ki=
t, it boots up and works fine. But when I build up a custom kernel I am g=
etting the following exception during bootup.
=20
Residual-Data Located at: $1FE9077C
Exception: Program (Illegal Instruction)
SRR0 =3D00005000 SRR1 =3D00083040 Vector-Offset =3D00700
IP =3D00005000 MSR =3D00003040 CR =3D00000000 FPSCR =3D00000000
R0 =3D00000000 R1 =3D1FE00000 R2 =3D00000000 R3 =3D1FE9077C
R4 =3D00005000 R5 =3D00000000 R6 =3D00000000 R7 =3D00000000
R8 =3D00000000 R9 =3D00000000 R10 =3D00000000 R11 =3D00000000
R12 =3D00000000 R13 =3D00000000 R14 =3D00000000 R15 =3D00000000
R16 =3D00000000 R17 =3D00000000 R18 =3D00000000 R19 =3D00000000
R20 =3D00000000 R21 =3D00000000 R22 =3D00000000 R23 =3D00000000
R24 =3D00000000 R25 =3D00000000 R26 =3D00000000 R27 =3D00000000
R28 =3D00000000 R29 =3D00000000 R30 =3D00000000 R31 =3D00000000
SPR0 =3D00000000 SPR1 =3D00000000 SPR8 =3D00000000 SPR9 =3D00000000
00005000 7F454C46 WORD $7F454C46
Anybody can help?
Thanks,
Bora
######################################################################
Dikkat:
Bu elektronik posta mesaji kisisel ve ozeldir. Eger size=20
gonderilmediyse lutfen gondericiyi bilgilendirip mesaji siliniz.=20
Firmamiza gelen ve giden mesajlar virus taramasindan gecirilmekte,=20
guvenlik nedeni ile kontrol edilerek saklanmaktadir. Mesajdaki=20
gorusler ve bakis acisi gondericiye ait olup Aselsan A.S. resmi=20
gorusu olmak zorunda degildir.
######################################################################
Attention:=20
This e-mail message is privileged and confidential. If you are=20
not the intended recipient please delete the message and notify=20
the sender. E-mails to and from the company are monitored for=20
operational reasons and in accordance with lawful business practices.=20
Any views or opinions presented are solely those of the author and=20
do not necessarily represent the views of the company.
######################################################################
^ permalink raw reply
* SCCx UART status on 8xx
From: Björn Östby @ 2006-02-20 13:37 UTC (permalink / raw)
To: linuxppc-embedded
Hello,
I'm messing with a mpc823e based board trying to enable the SCC3 UART. =
I'm using the 2.4.25 denx linux_ppc kernel and I've got SMC1 for console =
and SMC2 up and running but I'm in desperate need of another rs232 port =
(which is on SCC3 on my board).=20
Reading quite a lot of old posts on this mailing list got me confused =
whether the SCCx UART support in the kernel is ready to be used on 8xx =
or if there will take a large amount of hacking to get things going =
(reading the header of 8xx_io/uart.c got me wondering even more).
Current situation is that I have enabled the SCC3 UART in the kernel, =
set the correct CTS, RTS and CD signal options and finally disabled the =
SPI which (on my board at least) can override the UART on the third SCC =
port. During boot up I get the standard output:
>ttyS0 at 0x0280 is on SMC1 using BRG1
>ttyS1 at 0x0380 is on SMC2 using BRG2
>ttyS2 at 0x0200 is on SCC3 using BRG3
Writing to ttyS0 and ttyS1 works fine (the result pop up in the =
receiving terminal) but when trying ttyS2 nothing happens. I've checked =
the Tx signal and it appears as if data is sent (the signal gets noisy =
when starting the write procedure). I may also add that restaring the =
write application causes the kernel to hang (for ttyS2 only of course).
I've read some posts saying that Linux don't init other uart ports than =
the console port and that is the potential problem here, but it is =
unclear if this statement is true or not. I can also add to the problem =
description that my SMC2 port works fine for writing, but reading just =
hangs in the read() call. So, can anyone confirm any status on the SMCx =
and SCCx UART drivers for 2.4?
Best regards,
Bjorn ostby
^ permalink raw reply
* Re: SCCx UART status on 8xx
From: Aristeu Sergio Rozanski Filho @ 2006-02-20 14:18 UTC (permalink / raw)
To: Björn Östby; +Cc: fbl, linuxppc-embedded
In-Reply-To: <004B1D7A5257174C9044A1B7BD0E60ED0178CC4F@ratatosk.combitechsystems.com>
[-- Attachment #1: Type: text/plain, Size: 1994 bytes --]
On Mon, Feb 20, 2006 at 02:37:23PM +0100, Björn Östby wrote:
> Hello,
> I'm messing with a mpc823e based board trying to enable the SCC3 UART. I'm using the 2.4.25 denx linux_ppc kernel and I've got SMC1 for console and SMC2 up and running but I'm in desperate need of another rs232 port (which is on SCC3 on my board).
> Reading quite a lot of old posts on this mailing list got me confused whether the SCCx UART support in the kernel is ready to be used on 8xx or if there will take a large amount of hacking to get things going (reading the header of 8xx_io/uart.c got me wondering even more).
> Current situation is that I have enabled the SCC3 UART in the kernel, set the correct CTS, RTS and CD signal options and finally disabled the SPI which (on my board at least) can override the UART on the third SCC port. During boot up I get the standard output:
>
> >ttyS0 at 0x0280 is on SMC1 using BRG1
> >ttyS1 at 0x0380 is on SMC2 using BRG2
> >ttyS2 at 0x0200 is on SCC3 using BRG3
>
> Writing to ttyS0 and ttyS1 works fine (the result pop up in the receiving terminal) but when trying ttyS2 nothing happens. I've checked the Tx signal and it appears as if data is sent (the signal gets noisy when starting the write procedure). I may also add that restaring the write application causes the kernel to hang (for ttyS2 only of course).
>
> I've read some posts saying that Linux don't init other uart ports than the console port and that is the potential problem here, but it is unclear if this statement is true or not. I can also add to the problem description that my SMC2 port works fine for writing, but reading just hangs in the read() call. So, can anyone confirm any status on the SMCx and SCCx UART drivers for 2.4?
please try the two attached patches. the first one configures each SCC to
one BRG. the second one, makes use always of dpram memory. we're working on a
decent fix.
Marcelo: if you find the first one ok, you may apply it, but don't apply the
second
--
Aristeu
[-- Attachment #2: cpm_uart-configure_brgs_properly.patch --]
[-- Type: text/plain, Size: 1028 bytes --]
Index: stable/drivers/serial/cpm_uart/cpm_uart_cpm1.c
===================================================================
--- stable.orig/drivers/serial/cpm_uart/cpm_uart_cpm1.c 2006-02-17 17:11:37.000000000 -0200
+++ stable/drivers/serial/cpm_uart/cpm_uart_cpm1.c 2006-02-17 17:15:57.000000000 -0200
@@ -139,24 +139,31 @@
void scc1_lineif(struct uart_cpm_port *pinfo)
{
/* XXX SCC1: insert port configuration here */
+ cpmp->cp_sicr &= 0xFFFFFFC0;
pinfo->brg = 1;
}
void scc2_lineif(struct uart_cpm_port *pinfo)
{
/* XXX SCC2: insert port configuration here */
+ cpmp->cp_sicr &= 0xFFFFC0FF;
+ cpmp->cp_sicr |= 0x00000900;
pinfo->brg = 2;
}
void scc3_lineif(struct uart_cpm_port *pinfo)
{
/* XXX SCC3: insert port configuration here */
+ cpmp->cp_sicr &= 0xFFC0FFFF;
+ cpmp->cp_sicr |= 0x00140000;
pinfo->brg = 3;
}
void scc4_lineif(struct uart_cpm_port *pinfo)
{
/* XXX SCC4: insert port configuration here */
+ cpmp->cp_sicr &= 0xC0FFFFFF;
+ cpmp->cp_sicr |= 0x1BFFFFFF;
pinfo->brg = 4;
}
[-- Attachment #3: serial_alloc_bootmem.patch --]
[-- Type: text/plain, Size: 1131 bytes --]
Index: stable/drivers/serial/cpm_uart/cpm_uart_core.c
===================================================================
--- stable.orig/drivers/serial/cpm_uart/cpm_uart_core.c 2005-12-07 15:30:42.000000000 -0200
+++ stable/drivers/serial/cpm_uart/cpm_uart_core.c 2005-12-08 12:39:11.000000000 -0200
@@ -467,6 +467,7 @@
/* free interrupt handler */
free_irq(port->irq, port);
+#if 0
/* If the port is not the console, disable Rx and Tx. */
if (!(pinfo->flags & FLAG_CONSOLE)) {
/* Wait for all the BDs marked sent */
@@ -492,6 +493,7 @@
/* Shut them really down */
cpm_line_cr_cmd(line, CPM_CR_STOP_TX);
}
+#endif
}
static void cpm_uart_set_termios(struct uart_port *port,
@@ -896,7 +898,7 @@
pinfo->sccp->scc_gsmrl &= ~(SCC_GSMRL_ENR | SCC_GSMRL_ENT);
}
- ret = cpm_uart_allocbuf(pinfo, 0);
+ ret = cpm_uart_allocbuf(pinfo, 1);
if (ret)
return ret;
@@ -912,10 +914,12 @@
static void cpm_uart_release_port(struct uart_port *port)
{
+#if 0
struct uart_cpm_port *pinfo = (struct uart_cpm_port *)port;
if (!(pinfo->flags & FLAG_CONSOLE))
cpm_uart_freebuf(pinfo);
+#endif
}
/*
^ permalink raw reply
* Re: 440gx GPIO
From: Ed Goforth @ 2006-02-20 17:13 UTC (permalink / raw)
To: Howard, Marc, linuxppc-embedded
In-Reply-To: <91B22F93A880FA48879475E134D6F0BE023887B6@CA1EXCLV02.adcorp.kla-tencor.com>
On 2/14/06, Howard, Marc <Marc.Howard@kla-tencor.com> wrote:
>
> > -----Original Message-----
> > From:
> > linuxppc-embedded-bounces+marc.howard=3Dkla-tencor.com@ozlabs.or
> > g
> > [mailto:linuxppc-embedded-bounces+marc.howard=3Dkla-tencor.com@o
> > zlabs.org] On Behalf Of Ed Goforth
> > Sent: Tuesday, February 14, 2006 1:47 PM
> > To: linuxppc-embedded@ozlabs.org
> > Subject: Re: 440gx GPIO
> > .....
> > Well, I was able to manipulate GPIO9, GPIO10 and GPIO12. It's time to
> > turn it over to the hardware people.
> >
>
> It's AMCC's fault. They aren't listing the latest errata on their
> website. I downloaded their rev 3.1 ver 1.03 errata last August.
> However if you look today you get the rev 3.1 ver 1.02 release.
>
Do you recall if this errata is only against rev 3.1 chips? We are
currently using rev 2.1 (PVR ending in 892), but will be doing some
hardware refreshes sometime.
>
> Marc
Thanks,
Ed
^ permalink raw reply
* Re: 440gx GPIO
From: Ed Goforth @ 2006-02-20 17:20 UTC (permalink / raw)
To: Ed Goforth, linuxppc-embedded
In-Reply-To: <20060214170140.GB12465@gate.ebshome.net>
On 2/14/06, Eugene Surovegin <ebs@ebshome.net> wrote:
>
> Try writing the same GPIO output register value as you read from it
> (without clearing bit 11). Also, try changing some other GPIO bit
> (e.g. one which is not connected in your design). Maybe board hangs
> exactly because you set GPIO bit 11 low :).
Bingo! The board wasn't actually hanging. When we set GPIO11 low, it
is supposed to reset our on-board FPGAs. One of the FPGAs controls a
TX disable signal. And the (current) default on a reset is to leave
the TX disable low, hence no network after a FPGA reset. Doesn't work
well with a NFS root :)
>
> Also, connect scope to that GPIO pin and see what is really going on.
>
> --
> Eugene
^ permalink raw reply
* [PATCH] change compat shmget size arg to signed
From: Olaf Hering @ 2006-02-20 18:39 UTC (permalink / raw)
To: linuxppc-dev
change second arg (the 'size') to signed to handle a size of -1.
ltp test shmget02 fails. This patch fixes it.
Oddly, we see the failure only on a POWER4 LPAR with 4.6G ram.
Signed-off-by: Olaf Hering <olh@suse.de>
arch/powerpc/kernel/sys_ppc32.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: linux-2.6.16-rc4-olh/arch/powerpc/kernel/sys_ppc32.c
===================================================================
--- linux-2.6.16-rc4-olh.orig/arch/powerpc/kernel/sys_ppc32.c
+++ linux-2.6.16-rc4-olh/arch/powerpc/kernel/sys_ppc32.c
@@ -429,7 +429,7 @@ long compat_sys_ipc(u32 call, u32 first,
return sys_shmdt(compat_ptr(ptr));
case SHMGET:
/* sign extend key_t */
- return sys_shmget((int)first, second, third);
+ return sys_shmget((int)first, (int)second, third);
case SHMCTL:
/* sign extend shmid */
return compat_sys_shmctl((int)first, second, compat_ptr(ptr));
^ permalink raw reply
* Re: SCCx UART status on 8xx
From: Wolfgang Denk @ 2006-02-20 20:15 UTC (permalink / raw)
To: Björn Östby; +Cc: linuxppc-embedded
In-Reply-To: <004B1D7A5257174C9044A1B7BD0E60ED0178CC4F@ratatosk.combitechsystems.com>
In message <004B1D7A5257174C9044A1B7BD0E60ED0178CC4F@ratatosk.combitechsystems.com> you wrote:
>
> I'm messing with a mpc823e based board trying to enable the SCC3 UART. I'm using the 2.4.25 denx linux_ppc kernel and I've got SMC1 for console and SMC2 up and running but I'm in desperate need of another rs232 port (which is on SCC3 on my board).
> Reading quite a lot of old posts on this mailing list got me confused whether the SCCx UART support in the kernel is ready to be used on 8xx or if there will take a large amount of hacking to get things going (reading the header of 8xx_io/uart.c got me
> wondering even more).
All UARTS (up to 2 x SMC + 4 x SCC, depending on CPU model) can be
used with our tree, including hardware handshake.
> I've read some posts saying that Linux don't init other uart ports than the console port and that is the potential problem here, but it is unclear if this statement is true or not. I can also add to the problem description that my SMC2 port works fine f
> or writing, but reading just hangs in the read() call. So, can anyone confirm any status on the SMCx and SCCx UART drivers for 2.4?
Works fine on all board supported by us.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
The C-shell doesn't parse. It adhoculates.
- Casper.Dik@Holland.Sun.COM in <3ol96k$b2j@engnews2.Eng.Sun.COM>
^ permalink raw reply
* Re: SCCx UART status on 8xx
From: Dan Malek @ 2006-02-20 20:43 UTC (permalink / raw)
To: Wolfgang Denk; +Cc: Björn Östby, linuxppc-embedded
In-Reply-To: <20060220201504.C5289353C11@atlas.denx.de>
On Feb 20, 2006, at 3:15 PM, Wolfgang Denk wrote:
> All UARTS (up to 2 x SMC + 4 x SCC, depending on CPU model) can be
> used with our tree, including hardware handshake.
Except that you have to be careful about BRG allocation. At most,
the 8xx will have 4 BRGs, some only have 2. There have been various
implementations to work with this, some forced the BRGs to be
multiply mapped (where more than one UART had to run at the same rate)
while others silently returned errors and the UARTs were non-functional
although appeared for use.
Thanks.
-- Dan
^ permalink raw reply
* hello error during kernel compilation of ml300 powerpc405 plzz help
From: shivani kirubanandan @ 2006-02-21 3:12 UTC (permalink / raw)
To: linuxppc-embedded
hello ,
i encountered this error while tryin to compile a
ml300 xilinx specific powerpc405 kernel...plz help me
out!
make[1]: Leaving directory
`/home/shivani/downloads/linux-2.4.26/arch/ppc/4xx_io'
/opt/crosstool/gcc-3.3.2-glibc-2.3.2/powerpc-405-linux-gnu/bin/powerpc-405-linux-gnu-ld
-T arch/ppc/vmlinux.lds -Ttext 0xc0000000 -Bstatic
arch/ppc/kernel/head_4xx.o init/main.o init/version.o
init/do_mounts.o \
--start-group \
arch/ppc/kernel/kernel.o
arch/ppc/platforms/platform.o arch/ppc/mm/mm.o
arch/ppc/lib/lib.o kernel/kernel.o mm/mm.o fs/fs.o
ipc/ipc.o \
drivers/char/char.o drivers/block/block.o
drivers/misc/misc.o drivers/net/net.o
drivers/ide/idedriver.o drivers/scsi/scsidrv.o
drivers/cdrom/driver.o drivers/pci/driver.o
drivers/net/wireless/wireless_net.o
drivers/macintosh/macintosh.o drivers/video/video.o
drivers/usb/usbdrv.o drivers/media/media.o
drivers/input/inputdrv.o arch/ppc/4xx_io/4xx_io.o \
net/network.o \
/home/shivani/downloads/linux-2.4.26/lib/lib.a
\
--end-group \
-o vmlinux
drivers/char/char.o(.text+0x1d824): In function
`handle_kbd_event':
: undefined reference to `x8042_read_status'
drivers/char/char.o(.text+0x1d844): In function
`handle_kbd_event':
: undefined reference to `x8042_read_input'
drivers/char/char.o(.text+0x1d860): In function
`handle_kbd_event':
: undefined reference to `x8042_read_status'
drivers/char/char.o(.text+0x1dc64): In function
`kbd_write_command_w':
: undefined reference to `x8042_write_command'
drivers/char/char.o(.text+0x1dcb0): In function
`kbd_write_output_w':
: undefined reference to `x8042_write_output'
drivers/char/char.o(.text+0x1dd68): In function
`panic_blink':
: undefined reference to `x8042_read_status'
drivers/char/char.o(.text+0x1dd8c): In function
`panic_blink':
: undefined reference to `x8042_write_output'
drivers/char/char.o(.text+0x1ddb0): In function
`panic_blink':
: undefined reference to `x8042_read_status'
drivers/char/char.o(.text+0x1ddec): In function
`panic_blink':
: undefined reference to `x8042_write_output'
drivers/char/char.o(.text.init+0x1604): In function
`kbd_read_data':
: undefined reference to `x8042_read_status'
drivers/char/char.o(.text.init+0x162c): In function
`kbd_read_data':
: undefined reference to `x8042_read_input'
make: *** [vmlinux] Error 1
cheers
shivani
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply
* Uart on cpm2_io (was: Using modem signal in cpm2 uart for MPC8270)
From: Mathieu Deschamps @ 2006-02-21 8:58 UTC (permalink / raw)
To: linuxppc-embedded
Hello,
Sorry to come with this UART issue again but I had no answer and no
better idea but asking people who knows 82xx uart well, people who
designed it.
My issue about this uart could be approched elseway : why is there a
modem_control conditionnal compilation option when PQ2 SCCs
(in normal operation mode which is default) take care of CTS,CD signals
(Chap 20-8 GSMR_L register DIAG MPC8280 PQ2 Ref. Manual ) ?
I fell like that is clearly a design-time choice matter that I need to
clarify.
And simply :
Is this version is known to be broken when activating this option ?
Please let me know your thoughts on this, it is very valuable to me,
thanks.
Best Regards,
Mathieu
---------- Forwarded Message ----------
Subject: Using modem signal in cpm2 uart for MPC8270
Date: Friday 17 February 2006 11:12
From: Mathieu Deschamps <mathieu.deschamps@com2gether.net>
To: linuxppc-embedded@ozlabs.org
Hello ppc-embedded folks,
I'am looking for a hint in arch/ppc/cpm2_io/uart.c on enable modem signal
handling on MontaVista Linux 2.4.20. I know it's a bit ancient but some of
you may have a good memory :) I mentionned enabling modem signal because this
file seems to support modem, yet I come to the conclusion it is incomplete.
In void rs_8xx_interrupt function I've noticed it needs 'modem_control'
defined to get the call done and modem lines changed on interrup(1). Also it
needs defined 'notdef' to implement this code(2).
===(1)
#ifdef modem_control
check_modem_status(info);
#endif
===(2)
#ifdef notdef
/* I need to do this for the SCCs, so it is left as a reminder.
*/
static _INLINE_ void check_modem_status(struct async_struct *info)
{
[...]
}
#endif
===
Having this done is not sufficient, a lot of registers defined in
linux/serial_reg.h are reported missing. I have included this file, yet
other functions are missing, struct members also.
Here is compilation output :
===========================
uart.c: In function `check_modem_status':
uart.c:603: warning: implicit declaration of function `serial_in'
uart.c:638: error: structure has no member named `tqueue_hangup'
uart.c:650: warning: implicit declaration of function `serial_out'
uart.c:651: warning: passing arg 1 of `rs_sched_event' from incompatible
pointer type
uart.c: In function `rs_8xx_interrupt':
uart.c:709: warning: passing arg 1 of `check_modem_status' from incompatible
pointer type
uart.c: In function `startup':
uart.c:813: error: structure has no member named `MCR'
uart.c:815: error: structure has no member named `MCR'
uart.c: In function `change_speed':
uart.c:993: error: structure has no member named `IER'
uart.c:995: error: structure has no member named `IER'
uart.c:998: error: structure has no member named `IER'
uart.c:1005: error: structure has no member named `IER'
uart.c:1007: error: structure has no member named `IER'
uart.c: In function `rs_8xx_throttle':
uart.c:1255: error: structure has no member named `MCR'
uart.c:1258: error: structure has no member named `MCR'
uart.c: In function `rs_8xx_unthrottle':
uart.c:1284: error: structure has no member named `MCR'
uart.c:1286: error: structure has no member named `MCR'
uart.c: In function `get_modem_info':
uart.c:1327: error: structure has no member named `MCR'
uart.c: In function `set_modem_info':
uart.c:1358: error: structure has no member named `MCR'
uart.c:1360: error: structure has no member named `MCR'
uart.c:1363: error: structure has no member named `MCR'
uart.c:1365: error: structure has no member named `MCR'
uart.c:1370: error: structure has no member named `MCR'
uart.c:1372: error: structure has no member named `MCR'
uart.c:1375: error: structure has no member named `MCR'
uart.c:1377: error: structure has no member named `MCR'
uart.c:1381: error: structure has no member named `MCR'
uart.c:1381: error: structure has no member named `MCR'
uart.c:1398: error: structure has no member named `MCR'
uart.c: In function `begin_break':
uart.c:1417: warning: comparison is always false due to limited range of data
type
uart.c: In function `end_break':
uart.c:1461: warning: comparison is always false due to limited range of data
type
uart.c: In function `rs_8xx_ioctl':
uart.c:1600: error: `cprev' undeclared (first use in this function)
uart.c:1600: error: (Each undeclared identifier is reported only once
uart.c:1600: error: for each function it appears in.)
uart.c:1603: error: structure has no member named `delta_msr_wait'
uart.c: In function `rs_8xx_set_termios':
uart.c:1670: error: structure has no member named `MCR'
uart.c:1672: error: structure has no member named `MCR'
uart.c:1679: error: structure has no member named `MCR'
uart.c:1682: error: structure has no member named `MCR'
uart.c:1685: error: structure has no member named `MCR'
uart.c: In function `rs_8xx_wait_until_sent':
uart.c:1839: warning: unused variable `lsr'
=======
I wonder if modem support is incomplete or even if it was dropped in here but
was conceived for another arch .
Looking forward to read your inputs.
Best regards,
Mathieu Deschamps
_______________________________________________
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded
-------------------------------------------------------
^ permalink raw reply
* Re: Uart on cpm2_io (was: Using modem signal in cpm2 uart for MPC8270)
From: Wojciech Kromer @ 2006-02-21 9:20 UTC (permalink / raw)
To: linuxppc-embedded
In-Reply-To: <200602210954.51248.mathieu.deschamps@com2gether.net>
Dnia 2006-02-21 09:58, Użytkownik Mathieu Deschamps napisał:
> Hello,
>
> Sorry to come with this UART issue again but I had no answer and no
> better idea but asking people who knows 82xx uart well, people who
> designed it.
>
> My issue about this uart could be approched elseway : why is there a
> modem_control conditionnal compilation option when PQ2 SCCs
> (in normal operation mode which is default) take care of CTS,CD signals
> (Chap 20-8 GSMR_L register DIAG MPC8280 PQ2 Ref. Manual ) ?
>
> I fell like that is clearly a design-time choice matter that I need to
> clarify.
>
> And simply :
> Is this version is known to be broken when activating this option ?
>
Do not know what this option is, probably for disabling code from
another driver.
With latest CVS version from denx.de you have only to enable CTS/RTS..
signals in menuconfig.
(And read my prior post if you're using SCC4 with SCC_CONSOLE)
^ permalink raw reply
* RE: SCCx UART status on 8xx
From: Björn Östby @ 2006-02-21 11:01 UTC (permalink / raw)
To: Aristeu Sergio Rozanski Filho; +Cc: fbl, linuxppc-embedded
Hi all again,
-----Original Message-----
From: Aristeu Sergio Rozanski Filho [mailto:aris@mandriva.com]=20
Sent: den 20 februari 2006 15:19
To: Bj=F6rn =D6stby
Cc: linuxppc-embedded@ozlabs.org; marcelo.tosatti@cyclades.com; =
fbl@conectiva.com.br
Subject: Re: SCCx UART status on 8xx
On Mon, Feb 20, 2006 at 02:37:23PM +0100, Bj=F6rn =D6stby wrote:
> Hello,
> I'm messing with a mpc823e based board trying to enable the SCC3 UART. =
> I'm using the 2.4.25 denx linux_ppc kernel and I've got SMC1 for =
console and SMC2 up and running but I'm in desperate need of another =
rs232 port (which is on SCC3 on my board).
> Reading quite a lot of old posts on this mailing list got me confused =
whether the SCCx UART support in the kernel is ready to be used on 8xx =
or if there will take a large amount of hacking to get things going =
(reading the header of 8xx_io/uart.c got me wondering even more).
> Current situation is that I have enabled the SCC3 UART in the kernel, =
set the correct CTS, RTS and CD signal options and finally disabled the =
SPI which (on my board at least) can override the UART on the third SCC =
port. During boot up I get the standard output:
>=20
> >ttyS0 at 0x0280 is on SMC1 using BRG1
> >ttyS1 at 0x0380 is on SMC2 using BRG2
> >ttyS2 at 0x0200 is on SCC3 using BRG3
>=20
> Writing to ttyS0 and ttyS1 works fine (the result pop up in the=20
> receiving terminal) but when trying ttyS2 nothing happens. I've=20
> checked the Tx signal and it appears as if data is sent (the signal=20
> gets noisy when starting the write procedure). I may also add that=20
> restaring the write application causes the kernel to hang (for ttyS2=20
> only of course).
>=20
> I've read some posts saying that Linux don't init other uart ports=20
> than the console port and that is the potential problem here, but it =
is unclear if this >>
>statement is true or not. I can also add to the problem description =
that my SMC2 port works >fine for writing, but reading just hangs in the =
read() call. So, can anyone confirm any >
>status on the SMCx and SCCx UART drivers for 2.4?
>please try the two attached patches. the first one configures each SCC =
to one BRG. the second one, makes use always of dpram memory. we're =
working on a decent fix.
>Marcelo: if you find the first one ok, you may apply it, but don't =
apply the second
>
>--=20
>Aristeu
>
I would like to thank everyone who has given input to the discussion. =
Unfortunately the problems remain. I have not been able to try the =
patches since I reckon they are for Linux 2.6 specific while I'm using =
the 2.4 kernel (could be good to have in for future projects though). I =
did however triy remove the CTS, RTS and CD signal from the config as =
suggested which stopped the kernel from hanging. Might be a step in the =
right direction.
Best regards,
Bjorn Ostby
^ permalink raw reply
* Re: Uart on cpm2_io (was: Using modem signal in cpm2 uart for MPC8270)
From: Mathieu Deschamps @ 2006-02-21 16:44 UTC (permalink / raw)
To: Wojciech Kromer; +Cc: linuxppc-embedded
In-Reply-To: <43FADB46.6030109@dgt.com.pl>
On Tuesday 21 February 2006 10:20, Wojciech Kromer wrote:
> Dnia 2006-02-21 09:58, U=C5=BCytkownik Mathieu Deschamps napisa=C5=82:
> > Hello,
> >
> > Sorry to come with this UART issue again but I had no answer and no
> > better idea but asking people who knows 82xx uart well, people who
> > designed it.
> >
> > My issue about this uart could be approched elseway : why is there a
> > modem_control conditionnal compilation option when PQ2 SCCs
> > (in normal operation mode which is default) take care of CTS,CD signals
> > (Chap 20-8 GSMR_L register DIAG MPC8280 PQ2 Ref. Manual ) ?
> >
> > I fell like that is clearly a design-time choice matter that I need to
> > clarify.
> >
> > And simply :
> > Is this version is known to be broken when activating this option ?
>
> Do not know what this option is, probably for disabling code from
> another driver.
> With latest CVS version from denx.de you have only to enable CTS/RTS..
> signals in menuconfig.
> (And read my prior post if you're using SCC4 with SCC_CONSOLE)
>
>
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
Thanks for your reply,
<> Do not know what this option is, probably for disabling code from
<> another driver.
=2E..or rather to enable it...(default is disabled). Allthesame :=20
Now it's clear it has historical reason and that I should not meddle with i=
t=20
in getting it enable. I guess it may be used for non-PQ2 or rather for non=
=20
dedicated pins assignement capable cpu in order to implement thoses signals
handling.
About SCC4 my version includes that code you spoke about in your prior=20
posts, but I'll use SCC4 as usb and not as console. Thus maybe this
turned nouse and has vanished in your version and that's why it's call a=20
"feature enhancement" yet. =20
Best Regards,
=20
Mathieu Deschamps
Com2gether Design Center
Electronic and Embedded Engineering Services
www.com2gether.net=20
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox