[PATCH 1/3] mpc83xx: Power Management support

Kumar Gala galak at kernel.crashing.org
Thu Jul 3 02:03:42 EST 2008


> diff --git a/arch/powerpc/platforms/83xx/suspend-asm.S b/arch/ 
> powerpc/platforms/83xx/suspend-asm.S
> new file mode 100644
> index 0000000..03e29a2
> --- /dev/null
> +++ b/arch/powerpc/platforms/83xx/suspend-asm.S
> @@ -0,0 +1,539 @@
> +/*
> + * Enter and leave sleep state on MPC83xx
> + *
> + * Author: Scott Wood <scottwood at freescale.com>
> + *
> + * Copyright (c) 2006 Freescale Semiconductor, Inc.
> + *
> + * This program is free software; you can redistribute it and/or  
> modify it
> + * under the terms of the GNU General Public License version 2 as  
> published
> + * by the Free Software Foundation.
> + */
> +
> +#include <asm/page.h>
> +#include <asm/ppc_asm.h>
> +#include <asm/reg.h>
> +#include <asm/asm-offsets.h>
> +
> +#define SS_MEMSAVE	0x00
> +#define SS_HID		0x08 /* 3 HIDs */
> +#define SS_IABR		0x14 /* 2 IABRs */
> +#define SS_IBCR		0x1c
> +#define SS_DABR		0x20 /* 2 DABRs */
> +#define SS_DBCR		0x28
> +#define SS_SP		0x2c
> +#define SS_SR		0x30 /* 16 segment registers */
> +#define SS_CURRENT	0x70
> +#define SS_MSR		0x74
> +#define SS_SDR1		0x78
> +#define SS_LR		0x7c
> +#define SS_SPRG		0x80 /* 4 SPRGs */
> +#define SS_DBAT		0x90 /* 8 DBATs */
> +#define SS_IBAT		0xd0 /* 8 IBATs */
> +#define SS_TB		0x110
> +#define SS_CR		0x118
> +#define SS_GPREG	0x11c /* r12-r31 */
> +#define STATE_SAVE_SIZE 0x16c
> +
> +	.section .data
> +	.align	5
> +
> +mpc83xx_sleep_save_area:
> +	.space	STATE_SAVE_SIZE
> +immrbase:
> +	.long	0

If we are going to allocate space for save area like this, can't we do  
this in C code.  Its less error prone and easier to extend over time.   
I know the powermac code does something similar but it places the save  
area on the stack.

It also seems like the core register save/restore should be shared  
between 83xx and 5{1,2}xx but that would be a longer term goal.

- k



More information about the Linuxppc-dev mailing list