linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Documentation: ARM: EXYNOS: Describe boot loaders interface
@ 2015-06-06 10:05 Krzysztof Kozlowski
  2015-06-06 11:01 ` Peter Chubb
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2015-06-06 10:05 UTC (permalink / raw)
  To: linux-arm-kernel

Various boot loaders for Exynos based boards use certain memory
addresses during booting for different purposes. Mostly this is one of
following :
1. as a CPU boot address,
2. for storing magic cookie related to low power mode (AFTR, sleep).

The document, based solely on kernel source code, tries to group the
information scattered over different files. This would help in the
future when adding support for new SoC or when extending features
related to low power modes.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
---
 Documentation/arm/Samsung/Bootloader-interface.txt | 53 ++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 Documentation/arm/Samsung/Bootloader-interface.txt

diff --git a/Documentation/arm/Samsung/Bootloader-interface.txt b/Documentation/arm/Samsung/Bootloader-interface.txt
new file mode 100644
index 000000000000..b96ead9a6919
--- /dev/null
+++ b/Documentation/arm/Samsung/Bootloader-interface.txt
@@ -0,0 +1,53 @@
+      Interface between kernel and boot loaders on Exynos boards
+      ==========================================================
+
+Author: Krzysztof Kozlowski
+Date  : 6 June 2015
+
+The document tries to describe currently used interface between Linux kernel
+and boot loaders on Samsung Exynos based boards. This is not a definition
+of interface but rather a description of existing state, a reference
+for information purpose only.
+
+In the document "boot loader" means any of following: U-boot, proprietary
+SBOOT or any other firmware for ARMv7 and ARMv8 initializing the board before
+executing kernel.
+
+
+1. Non-Secure mode
+Address:      sysram_ns_base_addr
+Offset        Value                                        Purpose
+=============================================================================
+0x08          exynos_cpu_resume_ns                         System suspend
+0x0c          0x00000bad (Magic cookie)                    System suspend
+0x1c          exynos4_secondary_startup                    Secondary CPU boot
+0x1c + 4*cpu  exynos4_secondary_startup (Exynos4412)       Secondary CPU boot
+0x20          0xfcba0d10 (Magic cookie)                    AFTR
+0x24          exynos_cpu_resume_ns                         AFTR
+0x28 + 4*cpu  0x8 (Magic cookie, Exynos3250)               AFTR
+
+
+2. Secure mode
+Address:      sysram_base_addr
+Offset        Value                                        Purpose
+=============================================================================
+0x00          exynos4_secondary_startup                    Secondary CPU boot
+0x04          exynos4_secondary_startup (Exynos542x)       Secondary CPU boot
+4*cpu         exynos4_secondary_startup (Exynos4412)       Secondary CPU boot
+0x20          exynos_cpu_resume (Exynos4210 r1.0)          AFTR
+0x24          0xfcba0d10 (Magic cookie, Exynos4210 r1.0)   AFTR
+
+Address:      pmu_base_addr
+Offset        Value                                        Purpose
+=============================================================================
+0x0800        exynos_cpu_resume                            AFTR
+0x0814        exynos4_secondary_startup (Exynos4210 r1.1)  Secondary CPU boot
+0x0818        0xfcba0d10 (Magic cookie, Exynos4210 r1.1)   AFTR
+0x081C        exynos_cpu_resume (Exynos4210 r1.1)          AFTR
+
+
+3. Other (regardless of secure/non-secure mode)
+Address:      pmu_base_addr
+Offset        Value                           Purpose
+=============================================================================
+0x0908        Non-zero (only Exynos3250)      Secondary CPU boot up indicator
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH] Documentation: ARM: EXYNOS: Describe boot loaders interface
  2015-06-06 10:05 [PATCH] Documentation: ARM: EXYNOS: Describe boot loaders interface Krzysztof Kozlowski
@ 2015-06-06 11:01 ` Peter Chubb
  2015-06-06 11:43   ` Krzysztof Kozłowski
  2015-06-08 22:40 ` Jonathan Corbet
  2015-06-16 23:12 ` Kevin Hilman
  2 siblings, 1 reply; 5+ messages in thread
From: Peter Chubb @ 2015-06-06 11:01 UTC (permalink / raw)
  To: linux-arm-kernel

>>>>> "Krzysztof" == Krzysztof Kozlowski <k.kozlowski.k@gmail.com> writes:

Krzysztof> Various boot loaders for Exynos based boards use certain
Krzysztof> memory addresses during booting for different
Krzysztof> purposes. Mostly this is one of following : 1. as a CPU
Krzysztof> boot address, 2. for storing magic cookie related to low
Krzysztof> power mode (AFTR, sleep).

Krzysztof> The document, based solely on kernel source code, tries to
Krzysztof> group the information scattered over different files. This
Krzysztof> would help in the future when adding support for new SoC or
Krzysztof> when extending features related to low power modes.

Is it worth grabbing the info from u=boot and documenting it here
(it's not documented other than in the hardkenel U=Boot source)?

I can send you the info, or you can see it in
https://github.com/hardkernel/u-boot/blob/odroidxu3-v2012.07/board/samsung/smdk5420/lowlevel_init.S
at symbol nscode_base near line 104

-- 
Dr Peter Chubb				        peter.chubb AT nicta.com.au
http://www.ssrg.nicta.com.au          Software Systems Research Group/NICTA

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] Documentation: ARM: EXYNOS: Describe boot loaders interface
  2015-06-06 11:01 ` Peter Chubb
@ 2015-06-06 11:43   ` Krzysztof Kozłowski
  0 siblings, 0 replies; 5+ messages in thread
From: Krzysztof Kozłowski @ 2015-06-06 11:43 UTC (permalink / raw)
  To: linux-arm-kernel

2015-06-06 20:01 GMT+09:00 Peter Chubb <peter.chubb@nicta.com.au>:
>>>>>> "Krzysztof" == Krzysztof Kozlowski <k.kozlowski.k@gmail.com> writes:
>
> Krzysztof> Various boot loaders for Exynos based boards use certain
> Krzysztof> memory addresses during booting for different
> Krzysztof> purposes. Mostly this is one of following : 1. as a CPU
> Krzysztof> boot address, 2. for storing magic cookie related to low
> Krzysztof> power mode (AFTR, sleep).
>
> Krzysztof> The document, based solely on kernel source code, tries to
> Krzysztof> group the information scattered over different files. This
> Krzysztof> would help in the future when adding support for new SoC or
> Krzysztof> when extending features related to low power modes.
>
> Is it worth grabbing the info from u=boot and documenting it here
> (it's not documented other than in the hardkenel U=Boot source)?
>
> I can send you the info, or you can see it in
> https://github.com/hardkernel/u-boot/blob/odroidxu3-v2012.07/board/samsung/smdk5420/lowlevel_init.S
> at symbol nscode_base near line 104

Hi,

+CC ?ukasz Majewski (u-boot)

The patch actually covers u-boot. What is missing:
1, Reset - I think kernel does not set it.
2. LPA - There is no mainline support for it yet so I did not add it.
It should be added along with cpuidle LPA.
3. MCPM and Exynos542x stuff. There are some exceptions and weird
comments in the kernel (like "To increase the stability of KFC reset
we need to program  the PMU SPARE3 register"). It would take me some
more time to understand it so I wanted to start with basic version and
get comments.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] Documentation: ARM: EXYNOS: Describe boot loaders interface
  2015-06-06 10:05 [PATCH] Documentation: ARM: EXYNOS: Describe boot loaders interface Krzysztof Kozlowski
  2015-06-06 11:01 ` Peter Chubb
@ 2015-06-08 22:40 ` Jonathan Corbet
  2015-06-16 23:12 ` Kevin Hilman
  2 siblings, 0 replies; 5+ messages in thread
From: Jonathan Corbet @ 2015-06-08 22:40 UTC (permalink / raw)
  To: linux-arm-kernel

On Sat,  6 Jun 2015 19:05:51 +0900
Krzysztof Kozlowski <k.kozlowski.k@gmail.com> wrote:

> The document, based solely on kernel source code, tries to group the
> information scattered over different files. This would help in the
> future when adding support for new SoC or when extending features
> related to low power modes.

I've applied this to the docs tree, thanks.

jon

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] Documentation: ARM: EXYNOS: Describe boot loaders interface
  2015-06-06 10:05 [PATCH] Documentation: ARM: EXYNOS: Describe boot loaders interface Krzysztof Kozlowski
  2015-06-06 11:01 ` Peter Chubb
  2015-06-08 22:40 ` Jonathan Corbet
@ 2015-06-16 23:12 ` Kevin Hilman
  2 siblings, 0 replies; 5+ messages in thread
From: Kevin Hilman @ 2015-06-16 23:12 UTC (permalink / raw)
  To: linux-arm-kernel

Krzysztof Kozlowski <k.kozlowski.k@gmail.com> writes:

> Various boot loaders for Exynos based boards use certain memory
> addresses during booting for different purposes. Mostly this is one of
> following :
> 1. as a CPU boot address,
> 2. for storing magic cookie related to low power mode (AFTR, sleep).
>
> The document, based solely on kernel source code, tries to group the
> information scattered over different files. This would help in the
> future when adding support for new SoC or when extending features
> related to low power modes.
>
> Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>

Very nice, thank you for taking the time to pull all of this together
into one location.

Kevin

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-06-16 23:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-06 10:05 [PATCH] Documentation: ARM: EXYNOS: Describe boot loaders interface Krzysztof Kozlowski
2015-06-06 11:01 ` Peter Chubb
2015-06-06 11:43   ` Krzysztof Kozłowski
2015-06-08 22:40 ` Jonathan Corbet
2015-06-16 23:12 ` Kevin Hilman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).