diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/firmware-design.md | 5 | ||||
-rw-r--r-- | docs/porting-guide.md | 6 | ||||
-rw-r--r-- | docs/psci-pd-tree.md | 2 | ||||
-rw-r--r-- | docs/rt-svc-writers-guide.md | 41 |
4 files changed, 26 insertions, 28 deletions
diff --git a/docs/firmware-design.md b/docs/firmware-design.md index b99a2838..d9f9ff02 100644 --- a/docs/firmware-design.md +++ b/docs/firmware-design.md @@ -1779,10 +1779,11 @@ following categories (present as directories in the source code): the platform. * **Common code.** This is platform and architecture agnostic code. * **Library code.** This code comprises of functionality commonly used by all - other code. + other code. The PSCI implementation and other EL3 runtime frameworks reside + as Library components. * **Stage specific.** Code specific to a boot stage. * **Drivers.** -* **Services.** EL3 runtime services, e.g. PSCI or SPD. Specific SPD services +* **Services.** EL3 runtime services (eg: SPD). Specific SPD services reside in the `services/spd` directory (e.g. `services/spd/tspd`). Each boot loader stage uses code from one or more of the above mentioned diff --git a/docs/porting-guide.md b/docs/porting-guide.md index 23033d52..8dad4a05 100644 --- a/docs/porting-guide.md +++ b/docs/porting-guide.md @@ -545,7 +545,7 @@ reset vector code to perform the above tasks. ### Function : plat_get_my_entrypoint() [mandatory when PROGRAMMABLE_RESET_ADDRESS == 0] Argument : void - Return : unsigned long + Return : uintptr_t This function is called with the called with the MMU and caches disabled (`SCTLR_EL3.M` = 0 and `SCTLR_EL3.C` = 0). The function is responsible for @@ -748,7 +748,7 @@ provided in [plat/common/aarch64/platform_up_stack.S] and ### Function : plat_get_my_stack() Argument : void - Return : unsigned long + Return : uintptr_t This function returns the base address of the normal memory stack that has been allocated for the current CPU. For BL images that only require a @@ -966,7 +966,7 @@ This function helps fulfill requirements 4 and 5 above. ### Function : bl1_init_bl2_mem_layout() [optional] - Argument : meminfo *, meminfo *, unsigned int, unsigned long + Argument : meminfo *, meminfo * Return : void BL1 needs to tell the next stage the amount of secure RAM available diff --git a/docs/psci-pd-tree.md b/docs/psci-pd-tree.md index 6ae686d8..c253905c 100644 --- a/docs/psci-pd-tree.md +++ b/docs/psci-pd-tree.md @@ -203,7 +203,7 @@ typedef struct non_cpu_pwr_domain_node { } non_cpu_pd_node_t; typedef struct cpu_pwr_domain_node { - unsigned long mpidr; + u_register_t mpidr; /* Index of the parent power domain node */ unsigned int parent_node; diff --git a/docs/rt-svc-writers-guide.md b/docs/rt-svc-writers-guide.md index 40cee147..4b811fea 100644 --- a/docs/rt-svc-writers-guide.md +++ b/docs/rt-svc-writers-guide.md @@ -95,8 +95,7 @@ handler will be responsible for all SMC Functions within a given service type. ARM Trusted Firmware has a [`services`] directory in the source tree under which each owning entity can place the implementation of its runtime service. The -[PSCI] implementation is located here in the [`services/std_svc/psci`] -directory. +[PSCI] implementation is located here in the [`lib/psci`] directory. Runtime service sources will need to include the [`runtime_svc.h`] header file. @@ -114,7 +113,7 @@ initialization and call handler functions. is also used for diagnostic purposes * `_start` and `_end` values must be based on the `OEN_*` values defined in - [`smcc_helpers.h`] + [`smcc.h`] * `_type` must be one of `SMC_TYPE_FAST` or `SMC_TYPE_STD` @@ -124,12 +123,12 @@ initialization and call handler functions. * `_smch` is the SMC handler function with the `rt_svc_handle` signature: - typedef uint64_t (*rt_svc_handle)(uint32_t smc_fid, - uint64_t x1, uint64_t x2, - uint64_t x3, uint64_t x4, + typedef uintptr_t (*rt_svc_handle_t)(uint32_t smc_fid, + u_register_t x1, u_register_t x2, + u_register_t x3, u_register_t x4, void *cookie, void *handle, - uint64_t flags); + u_register_t flags); Details of the requirements and behavior of the two callbacks is provided in the following sections. @@ -189,12 +188,12 @@ SMC calls for a service are forwarded by the framework to the service's SMC handler function (`_smch` in the service declaration). This function must have the following signature: - typedef uint64_t (*rt_svc_handle)(uint32_t smc_fid, - uint64_t x1, uint64_t x2, - uint64_t x3, uint64_t x4, - void *reserved, - void *handle, - uint64_t flags); + typedef uintptr_t (*rt_svc_handle_t)(uint32_t smc_fid, + u_register_t x1, u_register_t x2, + u_register_t x3, u_register_t x4, + void *cookie, + void *handle, + u_register_t flags); The handler is responsible for: @@ -253,10 +252,9 @@ The handler is responsible for: SMC_RET3(handle, x0, x1, x2); SMC_RET4(handle, x0, x1, x2, x3); -The `reserved` parameter to the handler is reserved for future use and can be -ignored. The value returned by a SMC handler is also reserved for future use - -completion of the handler function must always be via one of the `SMC_RETn()` -macros. +The `cookie` parameter to the handler is reserved for future use and can be +ignored. The `handle` is returned by the SMC handler - completion of the +handler function must always be via one of the `SMC_RETn()` macros. NOTE: The PSCI and Test Secure-EL1 Payload Dispatcher services do not follow all of the above requirements yet. @@ -299,12 +297,11 @@ provide this information.... _Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved._ -[Firmware Design]: ./firmware-design.md - +[Firmware Design]: ./firmware-design.md [`services`]: ../services -[`services/std_svc/psci`]: ../services/std_svc/psci +[`lib/psci`]: ../lib/psci [`std_svc_setup.c`]: ../services/std_svc/std_svc_setup.c -[`runtime_svc.h`]: ../include/bl31/runtime_svc.h -[`smcc_helpers.h`]: ../include/common/smcc_helpers.h +[`runtime_svc.h`]: ../include/common/runtime_svc.h +[`smcc.h`]: ../include/lib/smcc.h [PSCI]: http://infocenter.arm.com/help/topic/com.arm.doc.den0022c/DEN0022C_Power_State_Coordination_Interface.pdf "Power State Coordination Interface PDD (ARM DEN 0022C)" [SMCCC]: http://infocenter.arm.com/help/topic/com.arm.doc.den0028a/index.html "SMC Calling Convention PDD (ARM DEN 0028A)" |