Re: [U-Boot] [PATCH V2 2/3] mx7: psci: add basic psci support

Hello Li,
(sorry for my dropping other receipients from the discussion; restoring them
On Tue, 20 Oct 2015 15:04:40 +0000, Li Frank Frank.Li@freescale.com wrote:
-----Original Message----- From: Albert ARIBAUD [mailto:albert.u.boot@aribaud.net] Sent: Tuesday, October 20, 2015 9:55 AM To: Li Frank-B20596 Frank.Li@freescale.com Subject: Re: [U-Boot] [PATCH V2 2/3] mx7: psci: add basic psci support
Hello Li,
On Tue, 20 Oct 2015 14:29:46 +0000, Li Frank Frank.Li@freescale.com wrote:
-----Original Message----- From: Albert ARIBAUD [mailto:albert.u.boot@aribaud.net] Sent: Tuesday, October 20, 2015 9:25 AM To: Li Frank-B20596 Frank.Li@freescale.com Cc: Fan Peng-B51431 Peng.Fan@freescale.com; u-boot@lists.denx.de; Estevam Fabio-R49496 Fabio.Estevam@freescale.com Subject: Re: [U-Boot] [PATCH V2 2/3] mx7: psci: add basic psci support
Hello Li,
On Tue, 20 Oct 2015 14:05:45 +0000, Li Frank Frank.Li@freescale.com wrote:
-----Original Message----- From: Peng Fan [mailto:Peng.Fan@freescale.com] Sent: Tuesday, October 20, 2015 1:00 AM To: u-boot@lists.denx.de Cc: Fan Peng-B51431 Peng.Fan@freescale.com; Li Frank-B20596 Frank.Li@freescale.com; Stefano Babic sbabic@denx.de; Estevam Fabio- R49496 Fabio.Estevam@freescale.com Subject: [PATCH V2 2/3] mx7: psci: add basic psci support
- add basic psci support for imx7 chip.
- support cpu_on and cpu_off.
- switch to non-secure mode when boot linux kernel.
- set csu allow accessing all peripherial register in non-secure mode.
Signed-off-by: Frank Li Frank.Li@freescale.com Signed-off-by: Peng Fan Peng.Fan@freescale.com Cc: Stefano Babic sbabic@denx.de Cc: Fabio Estevam fabio.estevam@freescale.com
Changes V2: Refine commit msg.
arch/arm/cpu/armv7/mx7/Makefile | 4 ++ arch/arm/cpu/armv7/mx7/psci-mx7.c | 78 +++++++++++++++++++++++++++++++++++++++ arch/arm/cpu/armv7/mx7/psci.S | 54
+++++++++++++++++++++++++++
arch/arm/cpu/armv7/mx7/soc.c | 9 +++++ 4 files changed, 145 insertions(+) create mode 100644 arch/arm/cpu/armv7/mx7/psci-mx7.c create mode 100644 arch/arm/cpu/armv7/mx7/psci.S
diff --git a/arch/arm/cpu/armv7/mx7/Makefile b/arch/arm/cpu/armv7/mx7/Makefile index e6ecef0..f25461c 100644 --- a/arch/arm/cpu/armv7/mx7/Makefile +++ b/arch/arm/cpu/armv7/mx7/Makefile @@ -6,3 +6,7 @@ #
obj-y := soc.o clock.o clock_slice.o
+ifdef CONFIG_ARMV7_PSCI +obj-y += psci.o psci-mx7.o
Obj-y += psci-mx7.o psci.o The otherwise psci_text_end will not be last one.
I don't like this object module order sensitivity.
The object module order of secure code modules should not affect the resulting binary to the point of possibly preventing it from working -- after all, the object module order of 'vanilla' image code does not matter (1). We don't have this kind of problem when defining the image start and end, why would we have it with the secure code start and
end?
Secure code use psci_text_end to calculate stack top point.
Yes, and that does not require defining psci_text_end in an object module, nor does it require specific object module ordering.
If psci_text_end in mid of secure text, And psci_text_end + 1k < total secure text size, stack will overwrite the code.
This is a good reason to allocate the PSCCI stack and create a symbol for its top in the linker script.
IOW, psci_text_end could (and should) be defined in the linker script, not in an object module.
I agree. The other platform put psci_text_end to object module.
Which 'other platform' is this?
arch/arm/cpu/armv7/sunxi arch/arm/cpu/armv7/ls102xa
Ok, but they all use the same routine for moving the PSCI code and setting its stack, right?
Amicalement,

-----Original Message----- From: Albert ARIBAUD [mailto:albert.u.boot@aribaud.net] Sent: Tuesday, October 20, 2015 4:04 PM To: Li Frank-B20596 Frank.Li@freescale.com Cc: Fan Peng-B51431 Peng.Fan@freescale.com; Estevam Fabio-R49496 Fabio.Estevam@freescale.com; u-boot@lists.denx.de Subject: Re: [U-Boot] [PATCH V2 2/3] mx7: psci: add basic psci support
Hello Li,
(sorry for my dropping other receipients from the discussion; restoring them
On Tue, 20 Oct 2015 15:04:40 +0000, Li Frank Frank.Li@freescale.com wrote:
-----Original Message----- From: Albert ARIBAUD [mailto:albert.u.boot@aribaud.net] Sent: Tuesday, October 20, 2015 9:55 AM To: Li Frank-B20596 Frank.Li@freescale.com Subject: Re: [U-Boot] [PATCH V2 2/3] mx7: psci: add basic psci support
Hello Li,
On Tue, 20 Oct 2015 14:29:46 +0000, Li Frank Frank.Li@freescale.com wrote:
-----Original Message----- From: Albert ARIBAUD [mailto:albert.u.boot@aribaud.net] Sent: Tuesday, October 20, 2015 9:25 AM To: Li Frank-B20596 Frank.Li@freescale.com Cc: Fan Peng-B51431 Peng.Fan@freescale.com; u-boot@lists.denx.de; Estevam Fabio-R49496 Fabio.Estevam@freescale.com Subject: Re: [U-Boot] [PATCH V2 2/3] mx7: psci: add basic psci support
Hello Li,
On Tue, 20 Oct 2015 14:05:45 +0000, Li Frank Frank.Li@freescale.com wrote:
> -----Original Message----- > From: Peng Fan [mailto:Peng.Fan@freescale.com] > Sent: Tuesday, October 20, 2015 1:00 AM > To: u-boot@lists.denx.de > Cc: Fan Peng-B51431 Peng.Fan@freescale.com; Li > Frank-B20596 Frank.Li@freescale.com; Stefano Babic > sbabic@denx.de; Estevam > Fabio- > R49496 Fabio.Estevam@freescale.com > Subject: [PATCH V2 2/3] mx7: psci: add basic psci support > > 1. add basic psci support for imx7 chip. > 2. support cpu_on and cpu_off. > 3. switch to non-secure mode when boot linux kernel. > 4. set csu allow accessing all peripherial register in non-secure
mode.
> > Signed-off-by: Frank Li Frank.Li@freescale.com > Signed-off-by: Peng Fan Peng.Fan@freescale.com > Cc: Stefano Babic sbabic@denx.de > Cc: Fabio Estevam fabio.estevam@freescale.com > --- > > Changes V2: > Refine commit msg. > > arch/arm/cpu/armv7/mx7/Makefile | 4 ++ > arch/arm/cpu/armv7/mx7/psci-mx7.c | 78 > +++++++++++++++++++++++++++++++++++++++ > arch/arm/cpu/armv7/mx7/psci.S | 54
+++++++++++++++++++++++++++
> arch/arm/cpu/armv7/mx7/soc.c | 9 +++++ > 4 files changed, 145 insertions(+) create mode 100644 > arch/arm/cpu/armv7/mx7/psci-mx7.c create mode > 100644 arch/arm/cpu/armv7/mx7/psci.S > > diff --git a/arch/arm/cpu/armv7/mx7/Makefile > b/arch/arm/cpu/armv7/mx7/Makefile index e6ecef0..f25461c > 100644 > --- a/arch/arm/cpu/armv7/mx7/Makefile > +++ b/arch/arm/cpu/armv7/mx7/Makefile > @@ -6,3 +6,7 @@ > # > > obj-y := soc.o clock.o clock_slice.o > + > +ifdef CONFIG_ARMV7_PSCI > +obj-y += psci.o psci-mx7.o
Obj-y += psci-mx7.o psci.o The otherwise psci_text_end will not be last one.
I don't like this object module order sensitivity.
The object module order of secure code modules should not affect the resulting binary to the point of possibly preventing it from working -- after all, the object module order of 'vanilla' image code does not matter (1). We don't have this kind of problem when defining the image start and end, why would we have it with the secure code start and
end?
Secure code use psci_text_end to calculate stack top point.
Yes, and that does not require defining psci_text_end in an object module, nor does it require specific object module ordering.
If psci_text_end in mid of secure text, And psci_text_end + 1k < total secure text size, stack will overwrite the code.
This is a good reason to allocate the PSCCI stack and create a symbol for its top in the linker script.
IOW, psci_text_end could (and should) be defined in the linker script, not in an object module.
I agree. The other platform put psci_text_end to object module.
Which 'other platform' is this?
arch/arm/cpu/armv7/sunxi arch/arm/cpu/armv7/ls102xa
Ok, but they all use the same routine for moving the PSCI code and setting its stack, right?
Yes.
Best regards Frank Li
Amicalement,
Albert.
participants (2)
-
Albert ARIBAUD
-
Li Frank