* Linux process ABI broken in 2.6?
From: Joakim Tjernlund @ 2005-12-09 11:05 UTC (permalink / raw)
To: linuxppc-dev
> On Fri, 2005-12-09 at 00:07 +0100, Tjernlund wrote:
> > Seems like ppc32 kernel pass the application entry point address
> > in r7 and MSR in r8 when starting the application. The source might
be
> > ret_from_syscall, in entry.S:=20
> > ...
> > lwz r7,_NIP(r1)
> > lwz r8,_MSR(r1)
> > FIX_SRR1(r8, r0)
> > lwz r2,GPR2(r1)
> > lwz r1,GPR1(r1)
> > mtspr SPRN_SRR0,r7
> > mtspr SPRN_SRR1,r8
> > SYNC
> > RFI
> > I am not convinced this is the source, but a non zero r7
> > breaks static apps in uClibc.
> >=20
> > Is this on purpose and why?
> >=20
> > Secion 8.4.1 in
> >
http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-PPC32/LSB-Core-PPC3
2.html#PROCESSINITIALIZATION
> >=20
> > says:
> > "Contrary to what is stated in the Registers part of chapter 3 of
the System V Application Binary Interface PowerPC Processor
> > Supplement there are no values set in registers r3, r4, r5, r6 and
r7. Instead the values specified to appear in all of those
> > registers except r7 are placed on the stack. The value to be placed
into register r7, the termination function pointer is not passed
> > to the process."
> >=20
> > How do one not pass a termination function in r7 other than setting
> > r7 to zero?
>
> Just ignore those registers on entry. The semantics of a syscall are
to
> clobber all volatile registers and there is no point doing anything
> else.
>
> Ben.
[Sorry to break the thread, but I mailed from the wrong account which I
can't reach ATM]
Sure, but this syscall is a bit special as it has to prepare the runtime
env. for the new process.
Not having any defined value for register at process startup feels ..
An undefined r7 register makes it hard to differ between dynamic and
static apps in crt1.
I now understand why glibc has its own non standard __libc_start
function and I really don't
want that in uClibc. Is it too much trouble to define r7 to always have
a zero
value at process startup?
As far as I can tell 2.4 has all unused registers zeroed.
Jocke=20
^ permalink raw reply
* Re: Strange results with changing HZ
From: Wojciech Kromer @ 2005-12-09 10:33 UTC (permalink / raw)
To: linuxppc-embedded
In-Reply-To: <200511211243.13519.david.jander@protonic.nl>
Dnia 2005-11-21 12:43, Użytkownik David Jander napisał:
>On Monday 21 November 2005 08:44, Wojciech Kromer wrote:
>
>
>>My system is:
>> - 2.4.25 kernel from denx.de
>> - uclibc (gcc 3.4.2) + busybox
>> - changed HZ to 1000
>> - rebuild kernel only
>>
>>AFAIR there souldn't be any need to recompile user apps.
>>
>>
>
>Just an uneducated guess, but are you sure uclibc doesn't depend on HZ at all?
>Some things might be just straight syscalls, others might be implemented in
>userspace (inside uclibc)... for example alarm(1) programming an alarm on
>jiffies+1/HZ, and HZ being compiled in from kernel headers ?
>I may just be talking rubbish though.
>
>
Hmm, after recompiling whole uclibc stuff it seem to work same.
There should be kernel problem. Sleep & select works fine, but alarm
works 10 times faster.
Anyone tries to change HZ to 1000?
^ permalink raw reply
* Re: Linux process ABI broken in 2.6?
From: Paul Mackerras @ 2005-12-09 3:16 UTC (permalink / raw)
To: Tjernlund; +Cc: Linuxppc-Dev, 'Linh Dang', uclibc
In-Reply-To: <000e01c5fc4c$25b17cb0$020120ac@Jocke>
Tjernlund writes:
> Secion 8.4.1 in
> http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-PPC32/LSB-Core-PPC32.html#PROCESSINITIALIZATION
>
> says:
> "Contrary to what is stated in the Registers part of chapter 3 of the System V Application Binary Interface PowerPC Processor
> Supplement there are no values set in registers r3, r4, r5, r6 and r7. Instead the values specified to appear in all of those
> registers except r7 are placed on the stack. The value to be placed into register r7, the termination function pointer is not passed
> to the process."
>
> How do one not pass a termination function in r7 other than setting
> r7 to zero?
"Not passed" means that there is no value provided in any register or
word of memory that should be taken to be the address of a termination
function.
Paul.
^ permalink raw reply
* Re: Linux process ABI broken in 2.6?
From: Benjamin Herrenschmidt @ 2005-12-09 2:05 UTC (permalink / raw)
To: Tjernlund; +Cc: Linuxppc-Dev, 'Linh Dang', uclibc
In-Reply-To: <000e01c5fc4c$25b17cb0$020120ac@Jocke>
On Fri, 2005-12-09 at 00:07 +0100, Tjernlund wrote:
> Seems like ppc32 kernel pass the application entry point address
> in r7 and MSR in r8 when starting the application. The source might be
> ret_from_syscall, in entry.S:
> ...
> lwz r7,_NIP(r1)
> lwz r8,_MSR(r1)
> FIX_SRR1(r8, r0)
> lwz r2,GPR2(r1)
> lwz r1,GPR1(r1)
> mtspr SPRN_SRR0,r7
> mtspr SPRN_SRR1,r8
> SYNC
> RFI
> I am not convinced this is the source, but a non zero r7
> breaks static apps in uClibc.
>
> Is this on purpose and why?
>
> Secion 8.4.1 in
> http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-PPC32/LSB-Core-PPC32.html#PROCESSINITIALIZATION
>
> says:
> "Contrary to what is stated in the Registers part of chapter 3 of the System V Application Binary Interface PowerPC Processor
> Supplement there are no values set in registers r3, r4, r5, r6 and r7. Instead the values specified to appear in all of those
> registers except r7 are placed on the stack. The value to be placed into register r7, the termination function pointer is not passed
> to the process."
>
> How do one not pass a termination function in r7 other than setting
> r7 to zero?
Just ignore those registers on entry. The semantics of a syscall are to
clobber all volatile registers and there is no point doing anything
else.
Ben.
^ permalink raw reply
* Linux process ABI broken in 2.6?
From: Tjernlund @ 2005-12-08 23:07 UTC (permalink / raw)
To: Linuxppc-Dev; +Cc: uclibc, 'Linh Dang'
Seems like ppc32 kernel pass the application entry point address
in r7 and MSR in r8 when starting the application. The source might be
ret_from_syscall, in entry.S:
...
lwz r7,_NIP(r1)
lwz r8,_MSR(r1)
FIX_SRR1(r8, r0)
lwz r2,GPR2(r1)
lwz r1,GPR1(r1)
mtspr SPRN_SRR0,r7
mtspr SPRN_SRR1,r8
SYNC
RFI
I am not convinced this is the source, but a non zero r7
breaks static apps in uClibc.
Is this on purpose and why?
Secion 8.4.1 in
http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-PPC32/LSB-Core-PPC32.html#PROCESSINITIALIZATION
says:
"Contrary to what is stated in the Registers part of chapter 3 of the System V Application Binary Interface PowerPC Processor
Supplement there are no values set in registers r3, r4, r5, r6 and r7. Instead the values specified to appear in all of those
registers except r7 are placed on the stack. The value to be placed into register r7, the termination function pointer is not passed
to the process."
How do one not pass a termination function in r7 other than setting
r7 to zero?
Jocke
^ permalink raw reply
* Re: Need help for Linux hangs
From: Wolfgang Denk @ 2005-12-08 23:21 UTC (permalink / raw)
To: Vitaly Bordug; +Cc: jimmy liu, linuxppc-embedded
In-Reply-To: <439859BA.6060600@ru.mvista.com>
Dear Vitaly,
in message <439859BA.6060600@ru.mvista.com> you wrote:
> jimmy liu wrote:
> > I have U-Boot running on a board similar to
> > MPC8260ADS.
> > bootargs=root=/dev/ram rw console=ttyS0,115200
> try to set console=ttyCPM0,115200 in the bootargs.
^^^^^^^
> > When I run command: bootm ff060000 ff260000, the
> > prompt shows message:
> > ## Booting image at ff060000 ...
> > Image Name: Linux-2.4.25
^^^^^^
That's bad advice.
The 2.4.25 kernel will definitely NOT work with console=ttyCPM0
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
Immortality consists largely of boredom.
-- Zefrem Cochrane, "Metamorphosis", stardate 3219.8
^ permalink raw reply
* Re: Need help for Linux hangs
From: Wolfgang Denk @ 2005-12-08 23:19 UTC (permalink / raw)
To: jimmy liu; +Cc: linuxppc-embedded
In-Reply-To: <20051208151926.74524.qmail@web53105.mail.yahoo.com>
In message <20051208151926.74524.qmail@web53105.mail.yahoo.com> you wrote:
>
...
> Loading Ramdisk to 00e07000, end 00f8b96a ... OK
>
> The system hangs here. I have checked in the FAQs
> provided in the Denx's site, could not find the
> similar case.
Come on. "Linux hangs after uncompressing the kernel"
(http://www.denx.de/wiki/view/DULG/LinuxHangsAfterUncompressingKernel)
is not a "similar case"? To me it is.
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
Is the glass half empty, half full, or twice as large as it needs to
^ permalink raw reply
* Re: Denx vs kernel.org
From: Wolfgang Denk @ 2005-12-08 23:17 UTC (permalink / raw)
To: Marcelo Tosatti; +Cc: linuxppc-embedded
In-Reply-To: <20051208143149.GA14554@dmt.cnet>
In message <20051208143149.GA14554@dmt.cnet> you wrote:
>
> Is there a list of your fixes anywhere? Is the linux-2.6-denx tree
> public?
There is no formal list except for the hGIT history, or the postings
on tthis list. If you like, I can easily prepare a summary.
And yes, of course our tree is publicly available. See
http://www.denx.de/cgi-bin/gitweb.cgi?p=linux-2.6-denx.git
resp. {rsync,http}://www.denx.de/git/linux-2.6-denx.git
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
My challenge to the goto-less programmer is to recode tcp_input()
without any gotos ... without any loss of efficiency (there has to be
a catch). - W. R. Stevens
^ permalink raw reply
* Re: Video Card to Lite5200
From: Wolfgang Denk @ 2005-12-08 23:14 UTC (permalink / raw)
To: Alan Carvalho; +Cc: linuxppc-embedded
In-Reply-To: <dc70db7d0512080518r674f4025s8e52302e0d3f4249@mail.gmail.com>
In message <dc70db7d0512080518r674f4025s8e52302e0d3f4249@mail.gmail.com> you wrote:
>
> What you think?
> Is it normal Linux on Lite5200 don't show the PCI card info?
No - at least not if you expect the card to work.
Or maybe it *is* normal - as an indication that the card does not
work ;-)
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
"Just think, with VLSI we can have 100 ENIACS on a chip!"
- Alan Perlis
^ permalink raw reply
* Re: Video Card to Lite5200
From: Wolfgang Denk @ 2005-12-08 23:10 UTC (permalink / raw)
To: White; +Cc: linuxppc-embedded
In-Reply-To: <20051208065907.26c2b1d0@White64>
In message <20051208065907.26c2b1d0@White64> you wrote:
>
> DMA is a problem, because the implementation from Freescale use binary
> data, and has some dirty points. This would never be included in the
> mainstream kernel. Sylvian has included the new DMA .. works fine for
> FEC.
...did you try this on Rev. B (like B3) silicon?
What I cannot understand is why there were no attempots to co-operate
on this with Freescale. They offered their help here on the list...
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
Brain fried - Core dumped
^ permalink raw reply
* Re: Denx vs kernel.org
From: Kumar Gala @ 2005-12-08 22:27 UTC (permalink / raw)
To: Marcelo Tosatti; +Cc: linuxppc-embedded
In-Reply-To: <20051208143149.GA14554@dmt.cnet>
> Hi Wolfgang,
>
> Is there a list of your fixes anywhere? Is the linux-2.6-denx tree
> public?
http://www.denx.de/cgi-bin/gitweb.cgi?p=linux-2.6-denx.git
- kumar
^ permalink raw reply
* Re: Netpoll controller support for PPC EMAC driver
From: Eugene Surovegin @ 2005-12-08 18:01 UTC (permalink / raw)
To: Ruslan V. Sushko; +Cc: linuxppc-embedded
In-Reply-To: <1134045255.28438.4.camel@mephisto.spb.rtsoft.ru>
On Thu, Dec 08, 2005 at 03:34:15PM +0300, Ruslan V. Sushko wrote:
> This patch adds netpoll controller support for PPC EMAC driver
>
> Signed-off-by: Ruslan V. Sushko <rsushko@ru.mvista.com>
NAK. Please see long discussion on netdev couple of months ago about
netpoll and how it is horribly broken.
In short, to implement netpoll support in EMAC driver requires full
locking re-do (all locks must be IRQ disabling). I'm not gonna do
this, because it's wrong approach.
If you want netpoll support, figure out a way to do this correctly,
without penalizing users of EMAC driver by switching to IRQ locks.
--
Eugene
^ permalink raw reply
* Re: Netpoll controller support for PPC EMAC driver
From: Ruslan V. Sushko @ 2005-12-08 17:13 UTC (permalink / raw)
To: John W. Linville; +Cc: linuxppc-embedded
In-Reply-To: <20051208145714.GA16049@tuxdriver.com>
Please see my answers bellow.
John W. Linville wrote:
> On Thu, Dec 08, 2005 at 03:34:15PM +0300, Ruslan V. Sushko wrote:
>
>> This patch adds netpoll controller support for PPC EMAC driver
>>
>> Signed-off-by: Ruslan V. Sushko <rsushko@ru.mvista.com>
>>
>
> Patches in-line are easier to review... :-)
>
>
>> @@ -1071,8 +1071,16 @@ static int emac_start_xmit(struct sk_buf
>> struct ocp_enet_private *dev = ndev->priv;
>> unsigned int len = skb->len;
>> int slot;
>> + u16 ctrl;
>>
>> - u16 ctrl = EMAC_TX_CTRL_GFCS | EMAC_TX_CTRL_GP | MAL_TX_CTRL_READY |
>> +#ifdef CONFIG_NET_POLL_CONTROLLER
>> + if (unlikely(dev->tx_cnt == NUM_TX_BUFF)) {
>> + netif_stop_queue(ndev);
>> + return -EBUSY;
>> + }
>> +#endif
>>
>
> Why is this necessary?
>
When netpoll controller is enabled and packets are trapped bay netpoll
controller the netif_stop_queue function does nothing. As result the
packets which are queued for send may be overwritten/corrupted, because
CPU insert packets significantly faster then netdev send them.
>
>> +
>> + ctrl = EMAC_TX_CTRL_GFCS | EMAC_TX_CTRL_GP | MAL_TX_CTRL_READY |
>> MAL_TX_CTRL_LAST | emac_tx_csum(dev, skb);
>>
>> slot = dev->tx_slot++;
>> @@ -1938,6 +1946,33 @@ static int emac_ioctl(struct net_device
>> return -EOPNOTSUPP;
>> }
>> }
>> +#ifdef CONFIG_NET_POLL_CONTROLLER
>> +void
>> +poll_ctrl(struct net_device *dev)
>> +{
>> + int budget = 16;
>> + struct ibm_ocp_mal *mal = ((struct ocp_enet_private*)(dev->priv))->mal;
>> + struct net_device *poll_dev = &(mal->poll_dev);
>> +
>> + /* disable MAL interrupts */
>> + mal_disable_eob_irq(mal);
>> + netif_poll_disable(poll_dev);
>>
>
> Is the call to netif_poll_disable necessary? Aren't NAPI and netpoll
> aware of each other?
>
In this case the device instance passed to netpoll controller
functionality is not the same which used by NAPI. As result conflict
will occurred if netpoll controller invokes polling in the time of NAPI
poll working. Please see my comments below.
>
>> +
>> + emac_poll_rx(dev->priv, budget);
>> + emac_poll_tx(dev->priv);
>> +
>> + netif_poll_enable(poll_dev);
>> + /* Enable mal interrupts */
>> + mal_enable_eob_irq(mal);
>> +}
>> +
>> +int
>> +poll_fake(struct net_device *dev, int *budget)
>> +{
>> + /* It will be never invoked */
>> + return 0;
>> +}
>> +#endif
>>
>
> If it's never invoked, then why define it?
>
Please see my comments bellow.
>
>>
>> static int __init emac_probe(struct ocp_device *ocpdev)
>> {
>> @@ -2188,6 +2223,11 @@ static int __init emac_probe(struct ocp_
>> netif_carrier_off(ndev);
>> netif_stop_queue(ndev);
>>
>> +#ifdef CONFIG_NET_POLL_CONTROLLER
>> + ndev->poll_controller = poll_ctrl;
>> + ndev->poll = poll_fake;
>> +#endif
>> +
>>
>
> ->poll is not related to ->poll_controller. It is for NAPI, not
> netpoll.
>
The main idea is devices passed to netpoll controller are not the same
which is used for NAPI. This driver has three net_device instances. One
is virtual device which is used only for NAPI (for this device real NAPI
poll function is defined) and two others are usual devices without NAPI.
For each of these two devices poll handlers functions are defined
(emac_poll_rx and emac_poll_tx) which are invoked from NAPI device poll
handler. Function emac_poll_rx uses netif_receive_skb function to pass
skbs to high level. To pass skb to netpoll controller via
netif_receive_skb function the poll field must be defined:
-------------------- cut from netif_receive_skb (net/dev.c) ----------
if (skb->dev->poll && netpoll_rx(skb))
return NET_RX_DROP;
--------------------------------------------------------------------------------
So the poll_fake function and poll field are defined and initialized
only to cheat netif_receive_skb function. In same time the poll_fake
will be never invoked because devices for whom this function is defined
are not NAPI devices.
Thank you,
Ruslan
^ permalink raw reply
* Re: linux 2.4 on Xilinx ml403
From: Peter Ryser @ 2005-12-08 16:14 UTC (permalink / raw)
To: Paulinha; +Cc: linuxppc-embedded
In-Reply-To: <259581790512070010s3be8b3cfg6cfd17d2f503b0f7@mail.gmail.com>
Make sure your system.mss contains something like:
BEGIN OS
PARAMETER OS_NAME = linux_mvl31
PARAMETER OS_VER = 1.01.a
PARAMETER PROC_INSTANCE = ppc405_0
PARAMETER MEM_SIZE = 0x4000000
PARAMETER PLB_CLOCK_FREQ_HZ = 100000000
PARAMETER connected_periphs =
(RS232_Uart,IIC_EEPROM,SysACE_CompactFlash,Ethernet_MAC,opb_intc_0)
END
If it does not use XPS and in the menu select Platform Software
Settings. Use linux as Operating System and linux_mvl31_v1_01_a as the
MLD. The rerun the library generation. Also make sure that you have
enabled the interrupts for System ACE CF in the hardware.
- Peter
Paulinha wrote:
> Hi all,
>
> I have been trying to run linux 2.4.26 on Virtex 4 for a while and
> without success.
>
> I am trying to implement a simple design, with an UART, SystemACE and
> everything interrupt driven. When I try to make bzImage, there is an
> error in (SysACE) adapter.c file, because XPAR_INTC_0_SYSACE_0_VEC_ID
> is not defined.
>
> I have applied the patch given by Xilinx for switching from the ml300
> to the ml403, which copies the bsp, .config and xparameter files into
> the kernel.
>
> I am stucked here, and do not know how to keep going from that.
> Could anyone help me a little bit?
>
> Thanks and have a good day!
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Linuxppc-embedded mailing list
>Linuxppc-embedded@ozlabs.org
>https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
^ permalink raw reply
* Re: [PATCH] ppc32: Adds MPC885ADS, MPC866ADS and MPC8272ADS-specific platform stuff for fs_enet
From: Kumar Gala @ 2005-12-08 16:14 UTC (permalink / raw)
To: Vitaly Bordug; +Cc: linuxppc-embedded list
In-Reply-To: <439837D4.7090304@ru.mvista.com>
On Dec 8, 2005, at 7:40 AM, Vitaly Bordug wrote:
> Matt,
> Matthew McClintock wrote:
>> On Mon, 2005-11-28 at 10:00 -0700, Vitaly Bordug wrote:
>>> + mpc82xx_fcc1_pdata.dpram_offset =
>>> mpc82xx_fcc2_pdata.dpram_offset = (u32)cpm2_immr->im_dprambase;
>>> + mpc82xx_fcc1_pdata.fcc_regs_c =
>>> mpc82xx_fcc2_pdata.fcc_regs_c
>>> = (u32)cpm2_immr->im_fcc_c;
>> I'm not sure if this has already been discussed, but what is
>> stopping us
>> from including this in the platform definition files along with the
>> other offsets?
> IIRC, because these values could vary along the PQ2 family, when
> all the stuff in pq2_devices.c should be static and applicable to
> any PQ2 which does have the corresponding device.
How much variation is there? I'm not sure how or why it would be
different from how we handle the FEC and TSEC on 8540.
- kumar
^ permalink raw reply
* Linux on MPC866
From: Gil Madar @ 2005-12-08 16:10 UTC (permalink / raw)
Hi All,
I'm working on an MPC866 based board. I needed to make changes related to
the RTC, as the MPC866 lacks an RTC, which is one difference between a
MPC860 and an MPC866.
I have no dedicated RTC chip on the board.
I wish to know if somebody ran linux (2.6.14/2.4.25 kernels) on such a
board.
If so: Could [s]he share some insight? what other things to take care of?
Thanks,
Gil
^ permalink raw reply
* Re: Need help for Linux hangs
From: Vitaly Bordug @ 2005-12-08 16:05 UTC (permalink / raw)
To: jimmy liu; +Cc: linuxppc-embedded
In-Reply-To: <20051208151926.74524.qmail@web53105.mail.yahoo.com>
jimmy liu wrote:
> I have U-Boot running on a board similar to
> MPC8260ADS.
> bootargs=root=/dev/ram rw console=ttyS0,115200
try to set console=ttyCPM0,115200 in the bootargs.
> When I run command: bootm ff060000 ff260000, the
> prompt shows message:
> ## Booting image at ff060000 ...
> Image Name: Linux-2.4.25
> Image Type: PowerPC Linux Kernel Image (gzip
> compressed)
> Data Size: 621131 Bytes = 606.6 kB
> Load Address: 00000000
> Entry Point: 00000000
> Verifying Checksum ... OK
> Uncompressing Kernel Image ... OK
> ## Loading RAMDisk Image at ff260000 ...
> Image Name: Simple Embedded Linux Framework
> Image Type: PowerPC Linux RAMDisk Image (gzip
> compressed)
> Data Size: 1591658 Bytes = 1.5 MB
> Load Address: 00000000
> Entry Point: 00000000
> Verifying Checksum ... OK
> Loading Ramdisk to 00e07000, end 00f8b96a ... OK
>
> The system hangs here. I have checked in the FAQs
> provided in the Denx's site, could not find the
> similar case.
>
> I would appreciate any help.
>
> Thanks & Regards,
>
> Jimmy
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
>
--
Sincerely,
Vitaly
^ permalink raw reply
* Re: USB on MPC8272
From: Vitaly Bordug @ 2005-12-08 15:56 UTC (permalink / raw)
To: Kumar Gala; +Cc: Nathael PAJANI, linuxppc-embedded
In-Reply-To: <E3409EA9-80FF-4CFF-BF39-F2DE3BA4A609@kernel.crashing.org>
Kumar Gala wrote:
>
> On Nov 30, 2005, at 12:43 AM, Mike Rapoport wrote:
>
>> Nathael PAJANI wrote:
>>
>>> Hi all!
>>>
>>>
>>> I have to support USB hcd for an Actis board based on a MPC8248
>>> processor. I already have a 2.6.9 linux kernel running fine on it,
>>> and actualy have to use it rather than a newer one.
>>> I'm actualy looking for existing or ongoing jobs.
>>
>> Dear Nathael,
>> As far as I understand there are several drivers for the MPC8272 usb
>> host controller, and none of them is in
>> official kernel tree.
>> There's a driver in Metrowerks BSP for linux 2.6 for MPC8272 (the
>> Freescale driver), an orignally mpc8xx driver by Brad Parker ported to
>> linux 2.4 for MPC8272 by Pantelis Antoniou, there ought to be USB
>> driver by ArabellaSW also.
>> My driver ("http://cpm2usb.sourceforge.net./") is a port of the Brad
>> Parker's driver to linux 2.6 with some modifications.
>
> And, ideally we would like to see one driver get into the linux source
> tree that everyone is happy with. I'm told by someone that the FSL
> driver is suppose to have working host support "was tested/verified with
> keyboard/mouse/diskdrives/network".
>
We have that FS driver rework in progress, but even now it's quite hard to estimate the finish. The result will proceed upstream, anyway, but this is long-term I afraid.
> - kumar
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
>
--
Sincerely,
Vitaly
^ permalink raw reply
* Need help for Linux hangs
From: jimmy liu @ 2005-12-08 15:19 UTC (permalink / raw)
To: linuxppc-embedded
I have U-Boot running on a board similar to
MPC8260ADS.
bootargs=root=/dev/ram rw console=ttyS0,115200
When I run command: bootm ff060000 ff260000, the
prompt shows message:
## Booting image at ff060000 ...
Image Name: Linux-2.4.25
Image Type: PowerPC Linux Kernel Image (gzip
compressed)
Data Size: 621131 Bytes = 606.6 kB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
## Loading RAMDisk Image at ff260000 ...
Image Name: Simple Embedded Linux Framework
Image Type: PowerPC Linux RAMDisk Image (gzip
compressed)
Data Size: 1591658 Bytes = 1.5 MB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Ramdisk to 00e07000, end 00f8b96a ... OK
The system hangs here. I have checked in the FAQs
provided in the Denx's site, could not find the
similar case.
I would appreciate any help.
Thanks & Regards,
Jimmy
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply
* Re: Fix boot on some 12" powerbooks, need testers on others
From: Dustin Lang @ 2005-12-08 15:10 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: Guy Yasko, linuxppc-dev list
In-Reply-To: <1134038881.11760.11.camel@gaston>
It boots on my PowerBook6,2 (12" Oct'03).
Cheers,
dstn.
On Thu, 8 Dec 2005, Benjamin Herrenschmidt wrote:
> This patch against 2.6.15-rc5 might help fixing boot on some recent
> powerbooks like some 12" aluminium. However, I need urgently some
> testers with other models of powerbooks and mac mini to tell me if it
> causes any regression (that is before tomorrow) so it _might_ have a
> chance to make it in 2.6.15.
^ permalink raw reply
* Re: Netpoll controller support for PPC EMAC driver
From: John W. Linville @ 2005-12-08 14:57 UTC (permalink / raw)
To: Ruslan V. Sushko; +Cc: linuxppc-embedded
In-Reply-To: <1134045255.28438.4.camel@mephisto.spb.rtsoft.ru>
On Thu, Dec 08, 2005 at 03:34:15PM +0300, Ruslan V. Sushko wrote:
> This patch adds netpoll controller support for PPC EMAC driver
>
> Signed-off-by: Ruslan V. Sushko <rsushko@ru.mvista.com>
Patches in-line are easier to review... :-)
> @@ -1071,8 +1071,16 @@ static int emac_start_xmit(struct sk_buf
> struct ocp_enet_private *dev = ndev->priv;
> unsigned int len = skb->len;
> int slot;
> + u16 ctrl;
>
> - u16 ctrl = EMAC_TX_CTRL_GFCS | EMAC_TX_CTRL_GP | MAL_TX_CTRL_READY |
> +#ifdef CONFIG_NET_POLL_CONTROLLER
> + if (unlikely(dev->tx_cnt == NUM_TX_BUFF)) {
> + netif_stop_queue(ndev);
> + return -EBUSY;
> + }
> +#endif
Why is this necessary?
> +
> + ctrl = EMAC_TX_CTRL_GFCS | EMAC_TX_CTRL_GP | MAL_TX_CTRL_READY |
> MAL_TX_CTRL_LAST | emac_tx_csum(dev, skb);
>
> slot = dev->tx_slot++;
> @@ -1938,6 +1946,33 @@ static int emac_ioctl(struct net_device
> return -EOPNOTSUPP;
> }
> }
> +#ifdef CONFIG_NET_POLL_CONTROLLER
> +void
> +poll_ctrl(struct net_device *dev)
> +{
> + int budget = 16;
> + struct ibm_ocp_mal *mal = ((struct ocp_enet_private*)(dev->priv))->mal;
> + struct net_device *poll_dev = &(mal->poll_dev);
> +
> + /* disable MAL interrupts */
> + mal_disable_eob_irq(mal);
> + netif_poll_disable(poll_dev);
Is the call to netif_poll_disable necessary? Aren't NAPI and netpoll
aware of each other?
> +
> + emac_poll_rx(dev->priv, budget);
> + emac_poll_tx(dev->priv);
> +
> + netif_poll_enable(poll_dev);
> + /* Enable mal interrupts */
> + mal_enable_eob_irq(mal);
> +}
> +
> +int
> +poll_fake(struct net_device *dev, int *budget)
> +{
> + /* It will be never invoked */
> + return 0;
> +}
> +#endif
If it's never invoked, then why define it?
>
> static int __init emac_probe(struct ocp_device *ocpdev)
> {
> @@ -2188,6 +2223,11 @@ static int __init emac_probe(struct ocp_
> netif_carrier_off(ndev);
> netif_stop_queue(ndev);
>
> +#ifdef CONFIG_NET_POLL_CONTROLLER
> + ndev->poll_controller = poll_ctrl;
> + ndev->poll = poll_fake;
> +#endif
> +
->poll is not related to ->poll_controller. It is for NAPI, not
netpoll.
I'll defer to others to comment on the IBM EMAC manipulation code.
It looked reasonable to me at first glance.
John
--
John W. Linville
linville@tuxdriver.com
^ permalink raw reply
* Re: Denx vs kernel.org
From: Marcelo Tosatti @ 2005-12-08 14:31 UTC (permalink / raw)
To: Wolfgang Denk; +Cc: linuxppc-embedded
In-Reply-To: <20051206211459.E8976353F54@atlas.denx.de>
On Tue, Dec 06, 2005 at 10:14:59PM +0100, Wolfgang Denk wrote:
> In message <20051206164212.82779.qmail@web33505.mail.mud.yahoo.com> you wrote:
> > I'm looking at embedding linux into a PowerPC-based
> > system. I found the DENX website to be very helpful,
> > but I'm struggling to understand a few items:
>
> It would be helpful if you precisely stated which of the misc trees
> you are talking about.
>
> > 1) The source from kernel.org appears to have support
> > for the powerpc (arch/powerpc/8xx_io). But when using
> > 'make xconfig' I cannot select PowerPC from the list
> > of processors. Is this just a limitation on the the
> > configuration utility?
>
> Seems like you are trying to use the linux-2.6-denx tree and forgot
> to pass a "ARCH=ppc" argument to "make" (and did not set "ARCH=ppc"
> in your shell environment either).
>
> > 2) What is the difference between the sources on DENX
> > and kernel.org? Are there other places where PPC
>
> We have some stuff added which was submitted as patches to the list
> but not all of this has been accepted for or merged into the
> kernel.org tree yet.
Hi Wolfgang,
Is there a list of your fixes anywhere? Is the linux-2.6-denx tree
public?
^ permalink raw reply
* Re: [PATCH] ppc32: Adds MPC885ADS, MPC866ADS and MPC8272ADS-specific platform stuff for fs_enet
From: Vitaly Bordug @ 2005-12-08 13:40 UTC (permalink / raw)
To: Matthew McClintock; +Cc: linuxppc-embedded list
In-Reply-To: <1133848163.7932.2.camel@localhost.localdomain>
Matt,
Matthew McClintock wrote:
> On Mon, 2005-11-28 at 10:00 -0700, Vitaly Bordug wrote:
>> + mpc82xx_fcc1_pdata.dpram_offset =
>> mpc82xx_fcc2_pdata.dpram_offset = (u32)cpm2_immr->im_dprambase;
>> + mpc82xx_fcc1_pdata.fcc_regs_c = mpc82xx_fcc2_pdata.fcc_regs_c
>> = (u32)cpm2_immr->im_fcc_c;
>
> I'm not sure if this has already been discussed, but what is stopping us
> from including this in the platform definition files along with the
> other offsets?
IIRC, because these values could vary along the PQ2 family, when all the stuff in pq2_devices.c should be static and applicable to any PQ2 which does have the corresponding device.
>
> -Matthew
>
>
--
Sincerely,
Vitaly
^ permalink raw reply
* Re: Video Card to Lite5200
From: Alan Carvalho @ 2005-12-08 13:18 UTC (permalink / raw)
To: Wolfgang Denk; +Cc: linuxppc-embedded
In-Reply-To: <20051206203343.67682353F5E@atlas.denx.de>
[-- Attachment #1: Type: text/plain, Size: 1319 bytes --]
Hi Denx,
I still doing some tests with ATI Video cards, as I said before the card
work fine on my PC.
I compiled the 2.6.14 kernel to Lite5200 with /proc/pci support, then when I
execute:
/ # cat /proc/pci
PCI devices found:
Bus 0, device 26, function 0:
Class 0680: PCI device 1057:5803 (rev 0).
Master Capable. Latency=248.
Non-prefetchable 32 bit memory at 0xa0000000 [0xa003ffff].
/ #
It don't list the card placed at PCI slot, on PC using "lspci -v" I see:
0000:00:0c.0 VGA compatible controller: ATI Technologies Inc Rage Mobility
P/M (rev 64) (prog-if 00 [VGA])
Subsystem: 1002:4c52
Flags: bus master, stepping, medium devsel, latency 32, IRQ 10
Memory at ed000000 (32-bit, non-prefetchable) [size=16M]
I/O ports at d800 [size=256]
Memory at ec800000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at 20000000 [disabled] [size=128K]
Capabilities: [5c] Power Management version 1
What you think?
Is it normal Linux on Lite5200 don't show the PCI card info?
I am looking for an "ATI Rage XL Xpert98" because Linux kernel has support
to initialize it without BIOS help (CONFIG_FB_ATY_XL_INIT).
I see some post at some list from people using this board on no x86
platform.
Cheers,
Alan
[-- Attachment #2: Type: text/html, Size: 1812 bytes --]
^ permalink raw reply
* Netpoll controller support for PPC EMAC driver
From: Ruslan V. Sushko @ 2005-12-08 12:34 UTC (permalink / raw)
To: ebs; +Cc: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 123 bytes --]
This patch adds netpoll controller support for PPC EMAC driver
Signed-off-by: Ruslan V. Sushko <rsushko@ru.mvista.com>
[-- Attachment #2: ppc_emac_napi_netpoll.patch --]
[-- Type: text/x-patch, Size: 4097 bytes --]
This patch adds netpoll controller support for PPC EMAC driver
---
commit a482261f165edb7e6af363d13ea94e8e7429f085
tree b5bee5eb8a971c3f40867946225051e1ff320763
parent e4f5c82a92c2a546a16af1614114eec19120e40a
author Ruslan V. Sushko <rsushko@ru.mvista.com> Thu, 08 Dec 2005 15:22:38 +0300
committer Ruslan V. Sushko <rsushko@ru.mvista.com> Thu, 08 Dec 2005 15:22:38 +0300
drivers/net/ibm_emac/ibm_emac_core.c | 42 +++++++++++++++++++++++++++++++++-
drivers/net/ibm_emac/ibm_emac_mal.c | 14 -----------
drivers/net/ibm_emac/ibm_emac_mal.h | 12 ++++++++++
3 files changed, 53 insertions(+), 15 deletions(-)
diff --git a/drivers/net/ibm_emac/ibm_emac_core.c b/drivers/net/ibm_emac/ibm_emac_core.c
--- a/drivers/net/ibm_emac/ibm_emac_core.c
+++ b/drivers/net/ibm_emac/ibm_emac_core.c
@@ -1071,8 +1071,16 @@ static int emac_start_xmit(struct sk_buf
struct ocp_enet_private *dev = ndev->priv;
unsigned int len = skb->len;
int slot;
+ u16 ctrl;
- u16 ctrl = EMAC_TX_CTRL_GFCS | EMAC_TX_CTRL_GP | MAL_TX_CTRL_READY |
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ if (unlikely(dev->tx_cnt == NUM_TX_BUFF)) {
+ netif_stop_queue(ndev);
+ return -EBUSY;
+ }
+#endif
+
+ ctrl = EMAC_TX_CTRL_GFCS | EMAC_TX_CTRL_GP | MAL_TX_CTRL_READY |
MAL_TX_CTRL_LAST | emac_tx_csum(dev, skb);
slot = dev->tx_slot++;
@@ -1938,6 +1946,33 @@ static int emac_ioctl(struct net_device
return -EOPNOTSUPP;
}
}
+#ifdef CONFIG_NET_POLL_CONTROLLER
+void
+poll_ctrl(struct net_device *dev)
+{
+ int budget = 16;
+ struct ibm_ocp_mal *mal = ((struct ocp_enet_private*)(dev->priv))->mal;
+ struct net_device *poll_dev = &(mal->poll_dev);
+
+ /* disable MAL interrupts */
+ mal_disable_eob_irq(mal);
+ netif_poll_disable(poll_dev);
+
+ emac_poll_rx(dev->priv, budget);
+ emac_poll_tx(dev->priv);
+
+ netif_poll_enable(poll_dev);
+ /* Enable mal interrupts */
+ mal_enable_eob_irq(mal);
+}
+
+int
+poll_fake(struct net_device *dev, int *budget)
+{
+ /* It will be never invoked */
+ return 0;
+}
+#endif
static int __init emac_probe(struct ocp_device *ocpdev)
{
@@ -2188,6 +2223,11 @@ static int __init emac_probe(struct ocp_
netif_carrier_off(ndev);
netif_stop_queue(ndev);
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ ndev->poll_controller = poll_ctrl;
+ ndev->poll = poll_fake;
+#endif
+
err = register_netdev(ndev);
if (err) {
printk(KERN_ERR "emac%d: failed to register net device (%d)!\n",
diff --git a/drivers/net/ibm_emac/ibm_emac_mal.c b/drivers/net/ibm_emac/ibm_emac_mal.c
--- a/drivers/net/ibm_emac/ibm_emac_mal.c
+++ b/drivers/net/ibm_emac/ibm_emac_mal.c
@@ -155,20 +155,6 @@ void mal_poll_del(struct ibm_ocp_mal *ma
local_bh_enable();
}
-/* synchronized by mal_poll() */
-static inline void mal_enable_eob_irq(struct ibm_ocp_mal *mal)
-{
- MAL_DBG2("%d: enable_irq" NL, mal->def->index);
- set_mal_dcrn(mal, MAL_CFG, get_mal_dcrn(mal, MAL_CFG) | MAL_CFG_EOPIE);
-}
-
-/* synchronized by __LINK_STATE_RX_SCHED bit in ndev->state */
-static inline void mal_disable_eob_irq(struct ibm_ocp_mal *mal)
-{
- set_mal_dcrn(mal, MAL_CFG, get_mal_dcrn(mal, MAL_CFG) & ~MAL_CFG_EOPIE);
- MAL_DBG2("%d: disable_irq" NL, mal->def->index);
-}
-
static irqreturn_t mal_serr(int irq, void *dev_instance, struct pt_regs *regs)
{
struct ibm_ocp_mal *mal = dev_instance;
diff --git a/drivers/net/ibm_emac/ibm_emac_mal.h b/drivers/net/ibm_emac/ibm_emac_mal.h
--- a/drivers/net/ibm_emac/ibm_emac_mal.h
+++ b/drivers/net/ibm_emac/ibm_emac_mal.h
@@ -216,6 +216,18 @@ static inline void set_mal_dcrn(struct i
mtdcr(mal->dcrbase + reg, val);
}
+/* synchronized by mal_poll() */
+static inline void mal_enable_eob_irq(struct ibm_ocp_mal *mal)
+{
+ set_mal_dcrn(mal, MAL_CFG, get_mal_dcrn(mal, MAL_CFG) | MAL_CFG_EOPIE);
+}
+
+/* synchronized by __LINK_STATE_RX_SCHED bit in ndev->state */
+static inline void mal_disable_eob_irq(struct ibm_ocp_mal *mal)
+{
+ set_mal_dcrn(mal, MAL_CFG, get_mal_dcrn(mal, MAL_CFG) & ~MAL_CFG_EOPIE);
+}
+
/* Register MAL devices */
int mal_init(void) __init;
void mal_exit(void) __exit;
\f
!-------------------------------------------------------------flip-
^ 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