LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* swsusp for ppc440
From: Hiroyuki Machida @ 2005-07-17  7:16 UTC (permalink / raw)
  To: linuxppc-embedded


Today I worked for enabling swsusp for ppc440, again
on kernel 2.6.12.
I wrote some changes for arch/ppc/kernel/swsusp.S, however 
kernel was stopped, before hibernation is taken place with
following messages.

	# echo disk > state
	PM: prepare: Attempting to freeze processes.
	Stopping tasks: ===|
	Freeing memory... done (0 pages freed)
	PM: prepare: OK.
	ide-disk 0.0: suspending
	serial8250 serial8250: suspending
	
	 .. nothing happen
	
It seems to be stopped at console device.
Do anyone point out where and how to exclude system devices
like console and swap from device suspend procedure as 
preparation of swsusp?

Thanks,
Hiroyuki Machida

^ permalink raw reply

* swsusp for ppc440
From: Hiroyuki Machida @ 2005-07-17  7:11 UTC (permalink / raw)
  To: linuxppc-embedded


Today I worked for enabling swsusp for ppc440, at 2.6.12.
I wrote changes for arch/ppc/kernel/swsusp.S, however
kernel is stopped, before hibernation is taken place
with following messages.

	# echo disk > state
	PM: prepare: Attempting to freeze processes.
	Stopping tasks: ===|
	Freeing memory... done (0 pages freed)
	PM: prepare: OK.
	ide-disk 0.0: suspending
	serial8250 serial8250: suspending
	
	 .. nothing happen
	
It seems to be stopped at console device.
Do anyone point out where and how to exclude system devices
like console and swap from device suspend procedure as 
preparation of swsusp?

Thanks,
Hiroyuki Machida

^ permalink raw reply

* [PATCH] ppc32: Register definition for MPC52xx
From: Grant Likely @ 2005-07-17  7:06 UTC (permalink / raw)
  To: linuxppc-embedded, Sylvain Munaut

Here are additional register definitions for the MPC52xx.  CDM clock
enables and port config bit settings in mpc52xx.h.  Registers needed
to support non-UART PSC modes in mpc52xx_psc.h.  Drivers which use
these regs/bits are to follow once I'm happy with them, but I thought
that others may be interested in them now.

Cheers,
g.

Signed-off-by: Grant Likely <grant.likely@gdcanada.com>

General Dynamics Canada, Ltd. relinquishes copywrite on this patch to
the public domain

--- k/include/asm-ppc/mpc52xx.h  (mode:100644)
+++ l/include/asm-ppc/mpc52xx.h  (mode:100644)
@@ -146,6 +146,28 @@ enum ppc_sys_devices {
 #define MPC52xx_XLB_ARB_IRQ=09=09(MPC52xx_PERP_IRQ_BASE + 21)
 #define MPC52xx_BDLC_IRQ=09=09(MPC52xx_PERP_IRQ_BASE + 22)
=20
+/* CDM Cloke enable bits */
+#define MPC52xx_CDM_CLKENABLE_MEM_CLK=09=09(0x00080000)
+#define MPC52xx_CDM_CLKENABLE_PCI_CLK=09=09(0x00040000)
+#define MPC52xx_CDM_CLKENABLE_LPC_CLK=09=09(0x00020000)
+#define MPC52xx_CDM_CLKENABLE_SIT_CLK=09=09(0x00010000)
+#define MPC52xx_CDM_CLKENABLE_SCOM_CLK=09=09(0x00008000)
+#define MPC52xx_CDM_CLKENABLE_ATA_CLK=09=09(0x00004000)
+#define MPC52xx_CDM_CLKENABLE_ETH_CLK=09=09(0x00002000)
+#define MPC52xx_CDM_CLKENABLE_USB_CLK=09=09(0x00001000)
+#define MPC52xx_CDM_CLKENABLE_SPI_CLK=09=09(0x00000800)
+#define MPC52xx_CDM_CLKENABLE_BDLC_CLK=09=09(0x00000400)
+#define MPC52xx_CDM_CLKENABLE_IRRX_CLK=09=09(0x00000200)
+#define MPC52xx_CDM_CLKENABLE_IRTX_CLK=09=09(0x00000100)
+#define MPC52xx_CDM_CLKENABLE_PSC345_CLK=09(0x00000080)
+#define MPC52xx_CDM_CLKENABLE_PSC2_CLK=09=09(0x00000040)
+#define MPC52xx_CDM_CLKENABLE_PSC1_CLK=09=09(0x00000020)
+#define MPC52xx_CDM_CLKENABLE_PSC6_CLK=09=09(0x00000010)
+#define MPC52xx_CDM_CLKENABLE_MSCAN_CLK=09=09(0x00000008)
+#define MPC52xx_CDM_CLKENABLE_I2C_CLK=09=09(0x00000004)
+#define MPC52xx_CDM_CLKENABLE_TIMER_CLK=09=09(0x00000002)
+#define MPC52xx_CDM_CLKENABLE_GPIO_CLK=09=09(0x00000001)
+
=20
=20
 /* =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D */
@@ -266,6 +288,49 @@ struct mpc52xx_rtc {
 };
=20
  /* GPIO */
+#define PORT_CONFIG_CS1=09=09=090x80000000
+#define PORT_CONFIG_ALT_MASK=09=090x30000000
+#define PORT_CONFIG_CS7=09=09=090x08000000
+#define PORT_CONFIG_CS6=09=09=090x04000000
+#define PORT_CONFIG_ATA=09=09=090x03000000
+#define PORT_CONFIG_IR_USB_CLK=09=090x00800000
+#define PORT_CONFIG_IRDA_MASK=09=090x00700000 /* PSC6 */
+#define PORT_CONFIG_IRDA_GPIO=09=090x00000000
+#define PORT_CONFIG_IRDA_UART=09=090x00500000
+#define PORT_CONFIG_IRDA_CODEC=09=090x00700000
+#define PORT_CONFIG_ETHER_MASK=09=090x000F0000
+#define PORT_CONFIG_PCI_DIS=09=090x00008000
+#define PORT_CONFIG_USB_SE=09=090x00004000 /* Single ended mode */
+#define PORT_CONFIG_USB_MASK=09=090x00004000 /* (USB1 or 2 UARTs) */
+#define PORT_CONFIG_USB_USB=09=090x00001000
+#define PORT_CONFIG_USB_2UART=09=090x00002000
+#define PORT_CONFIG_PSC3_MASK=09=090x00000F00
+#define PORT_CONFIG_PSC3_GPIO=09=090x00000000
+#define PORT_CONFIG_PSC3_USB2=09=090x00000100
+#define PORT_CONFIG_PSC3_UART=09=090x00000400
+#define PORT_CONFIG_PSC3_UARTE_CD=090x00000500
+#define PORT_CONFIG_PSC3_CODEC=09=090x00000600
+#define PORT_CONFIG_PSC3_CODEC_MCLK=090x00000700
+#define PORT_CONFIG_PSC3_SPI=09=090x00000800
+#define PORT_CONFIG_PSC3_SPI_UART=090x00000C00
+#define PORT_CONFIG_PSC3_SPI_UARTE=090x00000D00
+#define PORT_CONFIG_PSC3_SPI_CODEC=090x00000E00
+#define PORT_CONFIG_PSC2_MASK=09=090x00000070
+#define PORT_CONFIG_PSC2_GPIO=09=090x00000000
+#define PORT_CONFIG_PSC2_CAN=09=090x00000010
+#define PORT_CONFIG_PSC2_AC97=09=090x00000020
+#define PORT_CONFIG_PSC2_UART=09=090x00000040
+#define PORT_CONFIG_PSC2_UARTE_CD=090x00000050
+#define PORT_CONFIG_PSC2_CODEC=09=090x00000060
+#define PORT_CONFIG_PSC2_CODEC_MCLK=090x00000070
+#define PORT_CONFIG_PSC1_MASK=09=090x00000007
+#define PORT_CONFIG_PSC1_GPIO=09=090x00000000
+#define PORT_CONFIG_PSC1_AC97=09=090x00000002
+#define PORT_CONFIG_PSC1_UART=09=090x00000004
+#define PORT_CONFIG_PSC1_UARTE_CD=090x00000005
+#define PORT_CONFIG_PSC1_CODEC=09=090x00000006
+#define PORT_CONFIG_PSC1_CODEC_MCLK=090x00000007
+
  struct mpc52xx_gpio {
  =09u32=09port_config;=09/* GPIO + 0x00 */
  =09u32=09simple_gpioe;=09/* GPIO + 0x04 */
--- k/include/asm-ppc/mpc52xx_psc.h  (mode:100644)
+++ l/include/asm-ppc/mpc52xx_psc.h  (mode:100644)
@@ -72,6 +72,51 @@
 #define MPC52xx_PSC_D_CTS=09=090x10
 #define MPC52xx_PSC_D_DCD=09=090x20
=20
+/* PSC Serial Interface Control Register (SICR) bits */
+/* SICR Field masks */
+#define MPC52xx_PSC_SICR_ACRB=09=090x80000000
+#define MPC52xx_PSC_SICR_AWR=09=090x40000000
+#define MPC52xx_PSC_SICR_DTS1=09=090x20000000
+#define MPC52xx_PSC_SICR_SHDIR=09=090x10000000
+#define MPC52xx_PSC_SICR_SIM=09=090x0F000000
+#define MPC52xx_PSC_SICR_GENCLK=09=090x00800000
+#define MPC52xx_PSC_SICR_MULTIWD=090x00400000
+#define MPC52xx_PSC_SICR_CLKPOL=09=090x00200000
+#define MPC52xx_PSC_SICR_SYNCPOL=090x00100000
+#define MPC52xx_PSC_SICR_CELLSLAVE=090x00080000
+#define MPC52xx_PSC_SICR_CELL2XCLK=090x00040000
+#define MPC52xx_PSC_SICR_SPI=09=090x00008000
+#define MPC52xx_PSC_SICR_MSTR=09=090x00004000
+#define MPC52xx_PSC_SICR_CPOL=09=090x00002000
+#define MPC52xx_PSC_SICR_CPHA=09=090x00001000
+#define MPC52xx_PSC_SICR_USEEOF=09=090x00000800
+/* Operation modes */
+#define MPC52xx_PSC_SICR_SIM_UART=09=090x00000000
+#define MPC52xx_PSC_SICR_SIM_UART_DCD=09=090x08000000
+#define MPC52xx_PSC_SICR_SIM_CODEC8=09=090x01000000
+#define MPC52xx_PSC_SICR_SIM_CODEC16=09=090x02000000
+#define MPC52xx_PSC_SICR_SIM_AC97=09=090x03000000
+#define MPC52xx_PSC_SICR_SIM_SIR=09=090x04000000
+#define MPC52xx_PSC_SICR_SIM_SIR_DCD=09=090x0C000000
+#define MPC52xx_PSC_SICR_SIM_MIR=09=090x05000000
+#define MPC52xx_PSC_SICR_SIM_FIR=09=090x06000000
+#define MPC52xx_PSC_SICR_SIM_CODEC24=09=090x07000000
+#define MPC52xx_PSC_SICR_SIM_CODEC32=09=090x0F000000
+
+/* IRCR1 bit masks */
+#define MPC52xx_PSC_IRCR1_FD=09=09=090x04
+#define MPC52xx_PSC_IRCR1_SIPEN=09=09=090x02
+#define MPC52xx_PSC_IRCR1_SPUL=09=09=090x01
+
+/* IRCR2 bit masks */
+#define MPC52xx_PSC_IRCR2_SIPREQ=09=090x04
+#define MPC52xx_PSC_IRCR2_ABORT=09=09=090x02
+#define MPC52xx_PSC_IRCR2_NXTEOF=09=090x01
+
+/* Codec Clock Register fields */
+#define MPC52xx_PSC_CCR_FRAME_SYNC_DIV=09=090xFF00
+#define MPC52xx_PSC_CCR_BIT_CLK_DIV=09=090xFF00
+
  /* PSC mode fields */
 #define MPC52xx_PSC_MODE_5_BITS=09=09=090x00
 #define MPC52xx_PSC_MODE_6_BITS=09=09=090x01

^ permalink raw reply

* ppc_sys.c with platform device model or create opb bus?
From: Yasushi SHOJI @ 2005-07-17  6:26 UTC (permalink / raw)
  To: linuxppc-embedded

Hi all,

I've been reading some posts regarding to the transition of OCP to
platform device mode while searching for a good way to implement a
device driver for our fpga base platform. And now I have one question
regarding to ppc_sys.c

  should I use ppc_sys_*() for platform like fpga?

since I'm working on FPGA base platform, ppc_sys_spec seems to be too
static. that is, IMHO, having static array of device list isn't ideal
for a dynamic system like fpga.

I feel that the ppc_sys_spec is for SoC, which doesn't dynamically
change the peripherals it has.  otoh, fpga based platform can have
arbitrary number of devices if you configured so.

I usually implement a device with PLB or OPB.  for those bus, should I
use platform device model or create new buses for each?

regards,
--
        yashi

^ permalink raw reply

* Re: 8272ADS and Linux 2.6.12
From: Mike Rapoport @ 2005-07-17  6:52 UTC (permalink / raw)
  To: SIP COP 009; +Cc: linuxppc-embedded
In-Reply-To: <5a4792c0050713235574522cfb@mail.gmail.com>

SIP COP 009 wrote:

>Hello,
>
>We have a MPC8272 Eval Board which came with Linux 2.4 and U-boot. We
>wanted to move to 2.6. I downloaded the latest 2.6.12 sources and
>compiled the sources for this platform. The kernel is built, have run
>the mkimage tool, but the kernel wont boot.  It just hangs after
>decompressing the image.
>
>  
>

>Any ideas  ? Anything different that needs to be done for 2.6 ? Or any
>known issues ?
>
>  
>
If you're using the u-boot that came with MPC8272 Eval board it may 
happen that BCSR is mapped differently in u-boot and the kernel 2.6. 
That's what happened when I tried to boot linux 2.6 on MPC8272ADS. Check 
the value of CFG_BCSR in u-boot/include/configs/MPC8260ADS.h and 
BCSR_ADDR in linux/arch/ppc/platforms/pq2ads.h

>Thanks!
>ashutosh
>  
>
-- 
Sincerely yours,
Mike 

^ permalink raw reply

* Re: Re: help: FCC_ENET OF MPC8250?
From: gqbenjamin @ 2005-07-17  4:04 UTC (permalink / raw)
  To: Alex Zeffertt; +Cc: linuxppc-embedded

Thanks for your replying.
I have resolved that problem.
I found a bug in function *fcc_enet_start_xmit*.
In linux-2.6.12 and linux-2.6.9, the bug had been 
patched by Dan Malek. 
In fcc_net.c of linux-2.6.5,  
at the end of *fcc_enet_start_xmit* :

if (bdp->cbd_sc & BD_ENET_TX_READY) {
	netif_stop_queue(dev);
	cep->tx_full = 1;
	}

This cann't be used to decide TX-BD is full.
If the rate of transmit is too high, the *skbuf*
in TX-BD probably have not chance to be free befor 
a new one had been put in. So, memory been lost.


> On Wed, 13 Jul 2005 10:42:52 +0800 (CST)
> gqbenjamin@21cn.com wrote:
> 
> > Hi,
> > 
> > I use a device, like SMARTBITS, to test the Ethernet rate of mpc8250. The kernel is linux-2.4.20
> > with CONFIG_FCC_LXT971 and CONFIG_USE_MDIO, and do 'cat "1">/proc/sys/net/ipv4/ip_forward'.
> > 
> > If the rate of sending IP packet been set too high, for example 100 Mbps Full Duplex and each
> > packet is 1514 Bytes. Later, the kernel print '... Memory squeeze, dropping packet' on uart. Stop
> > sending IP packet and do 'cat /proc/meminfo', the *MemFree* become small.
> > 
> > Try again, the *MemFree* become smaller, just look like some allocated memory (skbuf) do not be
> > free.
> > 
> > Final, the kernel break down, because all memory have been used.
> 
> 
> It sounds to me like the problem may be that fcc_enet_rx() is consuming all the memory.  This
> function is called in interrupt context and spins round the rx buffer descriptor ring until it finds
> an empty buffer descriptor.  There is no check to stop it going round more than once and each time
> it finds a BD it does a dev_alloc_skb().
> 
> It is possible that you are receiving data at a high enough rate that fcc_enet_rx() never exits.
> 
> What is more likely is that there isn't enough time between rx interrupts for the CPU to tx all the
> queued packets.
> 
> 
> > 
> > Q. How can I do to let kernel do not break down? Is it a kernel promblem?
> > 
> 
> This is just a guess, but... it may help to move fcc_enet_rx() from the interrupt handler to a
> bottom half.  If you do this you should also ensure that it cannot process the rx buffer descriptor
> ring more than once per call.  This may give the CPU *more* chance to tx queued packets by lowering
> the rx priority a little.
> 
> I don't know if this would work but I'd be interested to find out.
> 
> Alex
----------------------------------------------
vgoÌåÑé×ÀÃæ¿ì¸Ð£¬ÏíÊÜ¿íÆµÀÖȤ£¡ 
http://vgo.21cn.com 
µãÕâÀïÃâ·ÑÌåÑé·¢ËÍ4G´ó¸½¼þ 
http://mail.21cn.com/huodong/0504/mail/ 
²ÊÆÁÊÖ»ú°×ËÍÀ²!¸Ï¿ìÀ´ÄÃ! 
http://qipai.g.21cn.com 
Öǻ۴óÌôÕ½¾ÍÔڵͼ۶ᱦ 
http://super.21cn.com/ 
ÌåÑéÁíÀàÔ¼»á£¬¸ÐÊܱðÑùÀËÂþ 
http://y.21cn.com/club/ 
СÁéͨ¶ÌÐÅÖÐÐÄ£¬¶ÌÐÅ÷ÈÁ¦ÎÞ¼« 
http://pas.21cn.com/ 
È«ÄÜÁÄ2005°æÉÁÁÁµÇ³¡£¡ 
http://callme.21cn.com 

^ permalink raw reply

* Re: bug in arch/ppc/kernel/misc.S: __ashrdi3?
From: Benjamin Herrenschmidt @ 2005-07-16 18:24 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: linuxppc-dev
In-Reply-To: <jeackmbped.fsf@sykes.suse.de>

On Sat, 2005-07-16 at 20:02 +0200, Andreas Schwab wrote:
> Benjamin Herrenschmidt <benh@kernel.crashing.org> writes:
> 
> > On Fri, 2005-07-15 at 18:01 +0200, Frank van Maarseveen wrote:
> >> I don't really grok the code but an operand seems to be missing and the
> >> assembler makes something out of it I don't trust:
> >> 
> >> _GLOBAL(__ashrdi3)
> >> 	...
> >> 	rlwinm  r8,r7,0,32      # t3 = (count < 32) ? 32 : 0
> >
> > This is equivalent to r8 = r7 & 32. It will definitely not do what the
> > comment says though. If (count < 64), however, it will do something
> > like r8 = (r7 < 32) ? 0 : 32. Paul, maybe we should dbl check what's
> > going in there ?
> 
> r7 is count + 32, and ((count + 32) & 32) is equivalent to the expression
> above if count < 64.

Ok, with some context it makes more sense :)

Ben.

^ permalink raw reply

* Re: bug in arch/ppc/kernel/misc.S: __ashrdi3?
From: Andreas Schwab @ 2005-07-16 18:02 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev
In-Reply-To: <1121535588.14393.18.camel@gaston>

Benjamin Herrenschmidt <benh@kernel.crashing.org> writes:

> On Fri, 2005-07-15 at 18:01 +0200, Frank van Maarseveen wrote:
>> I don't really grok the code but an operand seems to be missing and the
>> assembler makes something out of it I don't trust:
>> 
>> _GLOBAL(__ashrdi3)
>> 	...
>> 	rlwinm  r8,r7,0,32      # t3 = (count < 32) ? 32 : 0
>
> This is equivalent to r8 = r7 & 32. It will definitely not do what the
> comment says though. If (count < 64), however, it will do something
> like r8 = (r7 < 32) ? 0 : 32. Paul, maybe we should dbl check what's
> going in there ?

r7 is count + 32, and ((count + 32) & 32) is equivalent to the expression
above if count < 64.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply

* Re: bug in arch/ppc/kernel/misc.S: __ashrdi3?
From: Benjamin Herrenschmidt @ 2005-07-16 17:39 UTC (permalink / raw)
  To: Frank van Maarseveen; +Cc: linuxppc-dev
In-Reply-To: <20050715160115.GA22990@janus>

On Fri, 2005-07-15 at 18:01 +0200, Frank van Maarseveen wrote:
> I don't really grok the code but an operand seems to be missing and the
> assembler makes something out of it I don't trust:
> 
> _GLOBAL(__ashrdi3)
> 	...
> 	rlwinm  r8,r7,0,32      # t3 = (count < 32) ? 32 : 0

This is equivalent to r8 = r7 & 32. It will definitely not do what the
comment says though. If (count < 64), however, it will do something
like r8 = (r7 < 32) ? 0 : 32. Paul, maybe we should dbl check what's
going in there ?

>    0:   54 e8 06 b4     rlwinm  r8,r7,0,26,26

This is the same.

The assembler, when provided with only one argument after the shift
count, will generate ME and MB to represent the mask whose value is
given in argument. (If you give an argument which doesn't contain a
single contiguous range of 1 bits, I suppose it will error out).

Ben.

^ permalink raw reply

* 827x/8x Linux USB Host driver
From: Russell McGuire @ 2005-07-16 15:55 UTC (permalink / raw)
  To: linuxppc-embedded



Does anyone know of the existence of an open source USB host driver for the
827x/8x PowerQUIC II processors for Linux 2.4.2x?

This CPU introduced a USB host controller inside the CPU vs the 8260, which
doesn't have one.


Thanks,

-Russ

^ permalink raw reply

* [PATCH] make a few functions static in pmac_setup.c
From: Olaf Hering @ 2005-07-15 21:23 UTC (permalink / raw)
  To: Andrew Morton, linuxppc-dev


Making a few functions static saves a few bytes, but only on ppc32.

     text	   data	    bss	    dec	    hex	filename
  3752421	1605208	 345608	5703237	 570645	../O-ppc64_iSeries_defconfig/vmlinux
  3709411	2042552	 339992	6091955	 5cf4b3	../O-ppc64_maple_defconfig/vmlinux
  5397329	3054824	 679856	9132009	 8b57e9	../O-ppc64_pSeries_defconfig/vmlinux
 -3882695	 417552	 197760	4498007	 44a257	../O-ppc_common_defconfig/vmlinux
 -3414510	 574500	 241440	4230450	 408d32	../O-ppc_pmac_defconfig/vmlinux
 +3882627	 417168	 197760	4497555	 44a093	../O-ppc_common_defconfig/vmlinux
 +3414442	 575428	 241440	4231310	 40908e	../O-ppc_pmac_defconfig/vmlinux

Signed-off-by: Olaf Hering <olh@suse.de>

 arch/ppc/platforms/pmac_setup.c |   16 ++++++++--------
 arch/ppc64/kernel/pmac_setup.c  |   12 ++++++------
 2 files changed, 14 insertions(+), 14 deletions(-)

Index: linux-2.6.13-rc3-olh/arch/ppc/platforms/pmac_setup.c
===================================================================
--- linux-2.6.13-rc3-olh.orig/arch/ppc/platforms/pmac_setup.c
+++ linux-2.6.13-rc3-olh/arch/ppc/platforms/pmac_setup.c
@@ -113,7 +113,7 @@ extern int pmac_newworld;
 extern void zs_kgdb_hook(int tty_num);
 static void ohare_init(void);
 #ifdef CONFIG_BOOTX_TEXT
-void pmac_progress(char *s, unsigned short hex);
+static void pmac_progress(char *s, unsigned short hex);
 #endif
 
 sys_ctrler_t sys_ctrler = SYS_CTRLER_UNKNOWN;
@@ -123,7 +123,7 @@ extern struct smp_ops_t psurge_smp_ops;
 extern struct smp_ops_t core99_smp_ops;
 #endif /* CONFIG_SMP */
 
-int __pmac
+static int __pmac
 pmac_show_cpuinfo(struct seq_file *m)
 {
 	struct device_node *np;
@@ -227,7 +227,7 @@ pmac_show_cpuinfo(struct seq_file *m)
 	return 0;
 }
 
-int __openfirmware
+static int __openfirmware
 pmac_show_percpuinfo(struct seq_file *m, int i)
 {
 #ifdef CONFIG_CPU_FREQ_PMAC
@@ -415,7 +415,7 @@ find_ide_boot(void)
 }
 #endif /* CONFIG_BLK_DEV_IDE && CONFIG_BLK_DEV_IDE_PMAC */
 
-void __init
+static void __init
 find_boot_device(void)
 {
 #if defined(CONFIG_BLK_DEV_IDE) && defined(CONFIG_BLK_DEV_IDE_PMAC)
@@ -512,7 +512,7 @@ note_bootable_part(dev_t dev, int part, 
 	}
 }
 
-void __pmac
+static void __pmac
 pmac_restart(char *cmd)
 {
 #ifdef CONFIG_ADB_CUDA
@@ -537,7 +537,7 @@ pmac_restart(char *cmd)
 	}
 }
 
-void __pmac
+static void __pmac
 pmac_power_off(void)
 {
 #ifdef CONFIG_ADB_CUDA
@@ -562,7 +562,7 @@ pmac_power_off(void)
 	}
 }
 
-void __pmac
+static void __pmac
 pmac_halt(void)
 {
    pmac_power_off();
@@ -715,7 +715,7 @@ pmac_init(unsigned long r3, unsigned lon
 }
 
 #ifdef CONFIG_BOOTX_TEXT
-void __init
+static void __init
 pmac_progress(char *s, unsigned short hex)
 {
 	if (boot_text_mapped) {
Index: linux-2.6.13-rc3-olh/arch/ppc64/kernel/pmac_setup.c
===================================================================
--- linux-2.6.13-rc3-olh.orig/arch/ppc64/kernel/pmac_setup.c
+++ linux-2.6.13-rc3-olh/arch/ppc64/kernel/pmac_setup.c
@@ -97,7 +97,7 @@ EXPORT_SYMBOL(smu_cmdbuf_abs);
 
 extern void udbg_init_scc(struct device_node *np);
 
-void __pmac pmac_show_cpuinfo(struct seq_file *m)
+static void __pmac pmac_show_cpuinfo(struct seq_file *m)
 {
 	struct device_node *np;
 	char *pp;
@@ -144,7 +144,7 @@ void __pmac pmac_show_cpuinfo(struct seq
 }
 
 
-void __init pmac_setup_arch(void)
+static void __init pmac_setup_arch(void)
 {
 	/* init to some ~sane value until calibrate_delay() runs */
 	loops_per_jiffy = 50000000;
@@ -230,7 +230,7 @@ void __pmac note_bootable_part(dev_t dev
 	}
 }
 
-void __pmac pmac_restart(char *cmd)
+static void __pmac pmac_restart(char *cmd)
 {
 	switch(sys_ctrler) {
 #ifdef CONFIG_ADB_PMU
@@ -249,7 +249,7 @@ void __pmac pmac_restart(char *cmd)
 	}
 }
 
-void __pmac pmac_power_off(void)
+static void __pmac pmac_power_off(void)
 {
 	switch(sys_ctrler) {
 #ifdef CONFIG_ADB_PMU
@@ -267,7 +267,7 @@ void __pmac pmac_power_off(void)
 	}
 }
 
-void __pmac pmac_halt(void)
+static void __pmac pmac_halt(void)
 {
 	pmac_power_off();
 }
@@ -327,7 +327,7 @@ static void __init init_boot_display(voi
 /* 
  * Early initialization.
  */
-void __init pmac_init_early(void)
+static void __init pmac_init_early(void)
 {
 	DBG(" -> pmac_init_early\n");
 

^ permalink raw reply

* OLS 2005 attendees
From: Hollis Blanchard @ 2005-07-15 18:43 UTC (permalink / raw)
  To: PPC64-dev List, Linux PPC Dev, linuxppc-embedded

As Ottawa Linux Symposium 2005 approaches, I've made a wiki page 
listing some of the PowerPC people attending, preseeding it with some 
people I already know will be there: 
http://oss.gonicus.de/openpower/index.php/LinuxSymposium2005

If you're going, you can add your info to the list and maybe we can all 
get together...

-Hollis

^ permalink raw reply

* OLS 2005 attendees
From: Hollis Blanchard @ 2005-07-15 18:42 UTC (permalink / raw)
  To: PPC64-dev List, Linux PPC Dev, linuxppc-embedded

As Ottawa Linux Symposium 2005 approaches, I've made a wiki page 
listing some of the PowerPC people attending, preseeding it with some 
people I already know will be there: 
http://oss.gonicus.de/openpower/index.php/LinuxSymposium2005

If you're going, you can add your info to the list and maybe we can all 
get together...

-Hollis

^ permalink raw reply

* Re: bug in arch/ppc/kernel/misc.S: __ashrdi3?
From: Andreas Schwab @ 2005-07-15 18:22 UTC (permalink / raw)
  To: Frank van Maarseveen; +Cc: linuxppc-dev
In-Reply-To: <20050715160115.GA22990@janus>

Frank van Maarseveen <frankvm@frankvm.com> writes:

> I don't really grok the code but an operand seems to be missing and the
> assembler makes something out of it I don't trust:
>
> _GLOBAL(__ashrdi3)
> 	...
> 	rlwinm  r8,r7,0,32      # t3 = (count < 32) ? 32 : 0

32 == 0x80000000 >> 26

> 00000000 <f>:
> f():
>    0:   54 e8 06 b4     rlwinm  r8,r7,0,26,26

The mask begins at bit 26 and ends at bit 26 (counted from the left).

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply

* Re: arch/ppc/kernel/misc.S: .align 5?
From: Andreas Schwab @ 2005-07-15 18:11 UTC (permalink / raw)
  To: Frank van Maarseveen; +Cc: linuxppc-dev
In-Reply-To: <20050715162741.GA23228@janus>

Frank van Maarseveen <frankvm@frankvm.com> writes:

> At least in 2.6.12.2 I see this in arch/ppc/kernel/misc.S:
>
> 	.text
>
> 	.align  5

.align == .p2align on ppc.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply

* Re: boot failure help needed
From: Wolfgang Denk @ 2005-07-15 16:54 UTC (permalink / raw)
  To: Susheel Raj; +Cc: linuxppc-embedded
In-Reply-To: <20050715122030.13663.qmail@web8506.mail.in.yahoo.com>

In message <20050715122030.13663.qmail@web8506.mail.in.yahoo.com> you wrote:
> 
> now the problem is that if i use MPC5200 Rev A then
> the kernel boots without any problem and gets into the
> command 
> 
> but when i am using MPC5200 Rev B it shows like this

You need BAPI v2.2 for the Rev. B processors.

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
God runs electromagnetics by wave theory on  Monday,  Wednesday,  and
Friday,  and the Devil runs them by quantum theory on Tuesday, Thurs-
day, and Saturday.                                   -- William Bragg

^ permalink raw reply

* arch/ppc/kernel/misc.S: .align 5?
From: Frank van Maarseveen @ 2005-07-15 16:27 UTC (permalink / raw)
  To: linuxppc-dev

At least in 2.6.12.2 I see this in arch/ppc/kernel/misc.S:

	.text

	.align  5
_GLOBAL(__delay)
	cmpwi   0,r3,0


-- 
Frank

^ permalink raw reply

* bug in arch/ppc/kernel/misc.S: __ashrdi3?
From: Frank van Maarseveen @ 2005-07-15 16:01 UTC (permalink / raw)
  To: linuxppc-dev

I don't really grok the code but an operand seems to be missing and the
assembler makes something out of it I don't trust:

_GLOBAL(__ashrdi3)
	...
	rlwinm  r8,r7,0,32      # t3 = (count < 32) ? 32 : 0

Trying it out:

$ cat a.c
void f(void)
{
        __asm("rlwinm  8,7,0,32");
}
$ ppc_4xx-gcc -O2 -c a.c
$ ppc-linux-objdump -S a.o

a.o:     file format elf32-powerpc

Disassembly of section .text:

00000000 <f>:
f():
   0:   54 e8 06 b4     rlwinm  r8,r7,0,26,26
   4:   4e 80 00 20     blr

-- 
Frank

^ permalink raw reply

* Re: 8272ADS and Linux 2.6.12
From: Allen Curtis @ 2005-07-15 15:29 UTC (permalink / raw)
  To: SIP COP 009; +Cc: linuxppc-embedded
In-Reply-To: <5a4792c00507150714243238da@mail.gmail.com>

> Here's my serial config..., also these dont show up if i just
> run "make ads8272_defconfig". I have to explicitly go and enable the
> serial options.
>
> #
> # Serial drivers
> #
> CONFIG_SERIAL_8250=y
> CONFIG_SERIAL_8250_CONSOLE=y
> CONFIG_SERIAL_8250_NR_UARTS=4
> # CONFIG_SERIAL_8250_EXTENDED is not set
>
> #
> # Non-8250 serial port support
> #
> CONFIG_SERIAL_CORE=y
> CONFIG_SERIAL_CORE_CONSOLE=y
> # CONFIG_SERIAL_CPM is not set
> # CONFIG_SERIAL_JSM is not set
> CONFIG_UNIX98_PTYS=y
> CONFIG_LEGACY_PTYS=y
> CONFIG_LEGACY_PTY_COUNT=256

Unless something has changed recently, the 8272 is configured like a 
8260 and uses arch/ppc/8260_io/uart.c. CONFIG_SERIAL_CONSOLE should be 
defined. By default, SMC1 will be your console port. I will very later 
but you may want to have a look for yourself.

Regards

^ permalink raw reply

* Re: MPC5200B boot failure help needed
From: David Wolfe @ 2005-07-15 15:17 UTC (permalink / raw)
  To: linuxppc-embedded
In-Reply-To: <20050715122030.13663.qmail@web8506.mail.in.yahoo.com>

[ Susheel Raj writes: ]
> now the problem is that if i use MPC5200 Rev A then
> the kernel boots without any problem and gets into the
> command 
> 
> but when i am using MPC5200 Rev B it shows like this

If you're using rev.B1 silicon (mask M08A), you'll need to set the as
of yet undocumented TXW_MASK bit (13 in PPC bit ordering) in the Rx
FIFO control register (MBAR + 0x318c). Thus, set &fec->rfifo_cntrl to
0x0f040000 in mpc5xxx_fec_setup().

Rev.B2 (mask M62C) forces TXW_MASK to zero, but also masks the TXW
interrupt (0x40000000) in the status register resulting in no change
from rev.A (L25R) silicon.

If you're still having problems with Ethernet, I would suggest debugging
it with a root file system on something other than NFS. E.g. ramdisk,
MTD or ATA.

-- 
David Wolfe
Infotainment, Multimedia and Telematics Division
Freescale Semiconductor

^ permalink raw reply

* Re: ELDK 3.1.1 and E500
From: Kumar Gala @ 2005-07-15 15:01 UTC (permalink / raw)
  To: Klemen Porenta; +Cc: linuxppc-embedded
In-Reply-To: <20050715133409.GTCT2352.mta1.siol.net@[10.10.10.170]>

If you add a -mno-string to the compile line that should help

- kumar

On Jul 15, 2005, at 8:34 AM, Klemen Porenta wrote:
>
> Hi folks,I have one problem regarding gcc compiler for e500.
>
> I have compiled u-boot 1.1.2 for my target board ADS8560 with ELDK  
> 3.1.1. If I am correct it is using gcc version 3.3.3.
>
> Everything is compiled ok and if I start u-boot on my target I get  
> program exception (illegal instruction) on stswi instruction. This  
> instruction is defined in Book E bot not implemented in e500 as I  
> read in Freescale documentation.
>
> This is my gcc call for compiling console.c where I get illegal  
> instruction:
> ppc_85xx-gcc -g  -Os   -fPIC -ffixed-r14 -meabi -D__KERNEL__ - 
> DTEXT_BASE=0xfff80000 -I/users/rdhw/kpor/sw/linux/u-boot-1.1.2/ 
> include -fno-builtin -ffreestanding -nostdinc -isystem /opt/ 
> eldk3.1.1/usr/bin/../lib/gcc-lib/ppc-linux/3.3.3/include -pipe  - 
> DCONFIG_PPC -D__powerpc__ -DCONFIG_MPC85xx -DCONFIG_E500 -ffixed-r2  
> -ffixed-r29 -Wa,-me500 -msoft-float -DCONFIG_MPC85xx=1 - 
> DCONFIG_MPC8560=1 -DCONFIG_E500=1 -Wall -Wstrict-prototypes -c -o  
> console.o console.c
>
> What am I doing wrong or is this gcc problem?
>
> Thanks in advance, Klemen
>
>
>

^ permalink raw reply

* MPC8540 DMA routines (channel 0 broken?)
From: Clemens Koller @ 2005-07-15 15:01 UTC (permalink / raw)
  To: linuxppc-embedded

Hello,

I am about to bring Jason McMullan's DMA routines up to linux-2.6
Currently I am in the process of getting the things started step
by step.

Until today I had a pretty hard time for some basic direct dma
transfers because it seems that dma channel 0 doesn't work at all
on my hardware (PPC8540PX833LB 2L71V MSIA QEAD0412).
The status register always stays 0x0 (means everything is happy and
okay) but it doesn't copy any data. I cannot even trigger a
programming error by a wrong configuration!
But when I let ch 1,2,3 do the work, everything
seems to work fine!
I havent found anything in the errata sheets or in the web.
Can a DMA machine crash that it stays completely unusable?
Have anybody seen similar things like that?

Some other questions:
I would also suggest to put my revised and almost
complete immap_85xx.h and the mpc85xx_dma module into the
current linux tree (Kumar?) to get things like that
started more easily.
Why is Jason's work not in the Kernel?

If you are fine with that, I can offer some patches.
But I first need to strip tons of the debug stuff from
the last two weeks. :-/

Best greets,

Clemens Koller
_______________________________
R&D Imaging Devices
Anagramm GmbH
Rupert-Mayer-Str. 45/1
81379 Muenchen
Germany

http://www.anagramm.de
Phone: +49-89-741518-50
Fax: +49-89-741518-19

^ permalink raw reply

* ELDK 3.1.1 and E500
From: Klemen Porenta @ 2005-07-15 13:34 UTC (permalink / raw)
  To: linuxppc-embedded

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=8859_2, Size: 1031 bytes --]

Hi folks,I have one problem regarding gcc compiler for e500. 

I have compiled u-boot 1.1.2 for my target board ADS8560 with ELDK 3.1.1. If I am correct it is using gcc version 3.3.3.

Everything is compiled ok and if I start u-boot on my target I get program exception (illegal instruction) on stswi instruction. This instruction is defined in Book E bot not implemented in e500 as I read in Freescale documentation. 

This is my gcc call for compiling console.c where I get illegal instruction:
ppc_85xx-gcc -g  -Os   -fPIC -ffixed-r14 -meabi -D__KERNEL__ -DTEXT_BASE=0xfff80000 -I/users/rdhw/kpor/sw/linux/u-boot-1.1.2/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/eldk3.1.1/usr/bin/../lib/gcc-lib/ppc-linux/3.3.3/include -pipe  -DCONFIG_PPC -D__powerpc__ -DCONFIG_MPC85xx -DCONFIG_E500 -ffixed-r2 -ffixed-r29 -Wa,-me500 -msoft-float -DCONFIG_MPC85xx=1 -DCONFIG_MPC8560=1 -DCONFIG_E500=1 -Wall -Wstrict-prototypes -c -o console.o console.c

What am I doing wrong or is this gcc problem?

Thanks in advance, Klemen

^ permalink raw reply

* Re: PATCH: Add memreserve to DTC
From: Jon Loeliger @ 2005-07-15 14:30 UTC (permalink / raw)
  To: David Gibson; +Cc: linuxppc64-dev, linuxppc-dev@ozlabs.org
In-Reply-To: <20050715071924.GA16797@localhost.localdomain>

On Fri, 2005-07-15 at 02:19, David Gibson wrote:

> 
> Ok, I've merged this, 

Excellent, thanks!

> although I've tweaked things substantially in the process.

No problem.

>   I did rename "header_tree" to "boot_info", moved some

Oh, good!

> things around, and changed the syntax.  Reserve ranges can now be
> specified either as an address and length:
> 
> 	/memreserve/	10000000 00002000;
> 
> or as an (inclusive) address range:
> 
> 	/memreserve/	10000000-10001fff;
> 
> I am a bit worried that those two forms may be hard to distinguish at
> a glance.  Any sugggestions for changes to the syntax soon please, I'd
> really like to keep the source syntax as stable as possible.

Oh man.  With syntax you can demystify those in any number
of ways.  Just a matter of what you are wanting.  You can
always add sugar:

    /memreserve_block/    10000000 00002000;
    /memreserve_range/    10000000 10001fff;

    /memreserve/    10000000 /for/     2000;        //  or /size/ ?
    /memreserve/    10000000 /through/ 10001fff;

    /memreserve/    10000000 00002000;
    /memreserve/   [10000000, 10001fff];     // or [10000000, 10002000)?

Stuff like that maybe?

jdl

^ permalink raw reply

* Re: 8272ADS and Linux 2.6.12
From: SIP COP 009 @ 2005-07-15 14:14 UTC (permalink / raw)
  To: Allen Curtis; +Cc: linuxppc-embedded
In-Reply-To: <ef81e8ced15bf8004ec0cd927d7cff8e@onz.com>

Here's my serial config..., also these dont show up if i just=20
run "make ads8272_defconfig". I have to explicitly go and enable the
serial options.


#
# Serial drivers
#
CONFIG_SERIAL_8250=3Dy
CONFIG_SERIAL_8250_CONSOLE=3Dy
CONFIG_SERIAL_8250_NR_UARTS=3D4
# CONFIG_SERIAL_8250_EXTENDED is not set

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=3Dy
CONFIG_SERIAL_CORE_CONSOLE=3Dy
# CONFIG_SERIAL_CPM is not set
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=3Dy
CONFIG_LEGACY_PTYS=3Dy
CONFIG_LEGACY_PTY_COUNT=3D256

Thanks!
ashutosh

On 7/14/05, Allen Curtis <acurtis@onz.com> wrote:
> > =3D> setenv bootargs console=3DttyCPM0,115200  root=3D/dev/ram
> > =3D> bootm fe600000
> > ## Booting image at fe600000 ...
> >    Image Name:   2.6.12 for 8272
> >    Image Type:   PowerPC Linux Kernel Image (gzip compressed)
> >    Data Size:    875845 Bytes =3D 855.3 kB
> >    Load Address: 00000000
> >    Entry Point:  00000000
> >    Verifying Checksum ... OK
> >    Uncompressing Kernel Image ... OK
> >
>=20
> Can you provide your kernel configuration information regarding the
> serial ports. Which serial port is your console port? Check the
> following configuration options:
>   CONFIG_SERIAL_CONSOLE
>   CONFIG_SCC_CONSOLE
>   CONFIG_SERIAL_CORE
>   CONFIG_SERIAL_CORE_CONSOLE
>=20
> Another observation is that you are trying to boot with a RAM disk but
> you have not provided the RAM disk address to the bootm command. This
> is not your current problem since you don't get that far.
>=20
> - Allen
>=20
>

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox