* 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
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