blob: a64be25184dcba3131a4f1f74187e0854f0ec1d0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
SCP-firmware Change Log
=======================
Copyright (c) 2019, Arm Limited and Contributors. All rights reserved.
SCP-firmware - version 2.5.0
============================
New features
------------
- Module-based architecture with an event-driven execution model:
- Firmware code is organized into modules, where a module fulfills a well-
defined role (driver HAL, driver, protocol or service).
- A framework drives the initialization, orchestration of, and interactions
between modules.
- Processor-agnostic module code enables firmware portability across systems:
- Processor-dependent features (e.g. interrupt handling) are abstracted from
the modules by the framework.
- The framework relies on an interface whose implementation is processor-
dependent to provide these features.
- Module configurability easing the re-use of modules on different platforms:
- Strict split between the hardware and software feature configuration data
and module code.
- A native framework test suite provides rapid development and validation of the
core framework implementation.
- Support for Armv7-M control processor architecture based on CMSIS v5 and Keil
RTX 5.
- Provides system initialization support to enable boot of the application
cores.
- Provides the following runtime services:
- Power domain management
- System power management
- Performance domain management (Dynamic voltage and frequency scaling)
- Clock management
- Sensor management
- Provides a reference implementation of the System Control and Management
Interface v1.0 (SCMI, platform-side). The SCMI specification can be found
[here](http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/DEN0056A_System_Control_and_Management_Interface.pdf).
- Provides a build system supporting:
- The GNU Arm Embedded and Arm Compiler 6 toolchains
- Platforms with multiple firmware images
- In-source Doxygen documentation
- Support for the SGM-775 platform
Known issues
------------
- The build system does not configure the compiler to avoid code generation of
unaligned accesses. As ARMv7-M targets are configured to trap on unaligned
word or halfword accesses, this can result in hardware exceptions.
[This patch](https://github.com/ARM-software/SCP-firmware/commit/d2a77e0d4d0d369f7504c032a380578a4d145438)
fixes this issue.
SCP-firmware - version 2.5.0
============================
New features
------------
- Modules:
- CMN600 support
- DMC620 support
- apcontext: New module to zero the AP context area
- Platforms:
- Support for the SGI-575 platform
- Support for the Neoverse N1 reference design
Note: Juno, Neoverse N1 SDP, Neoverse E1 reference design and SynQuacer products
are NOT part of this release.
Changed
-------
- Build System:
- Name firmware bin and elf file by the name of the firmware
- Documentation:
- Emphasized that the order of the modules in the BS_FIRMWARE_MODULES list
in the firmware definition makefiles is the order in which the modules
are initialized, bound and started during the pre-runtime phase.
- Expand Doxygen use of param [out]
- Improve coding style and rules
- Framework:
- Improve error codes and their documentation
- Add fwk_module_get_sub_element_count API
- Improve unit testing of fwk_module.c
- Replace base alignment reference type with `max_align_t`
- Modules:
- sds: Make initialization deferring optional
- sds: Send notification once SDS is initialized
- scmi: Subscribe to SMT ready notifications and send notification when
service is initialized
- smt: Add logging on mailbox ownership error
- smt: Send notification when each SMT mailbox is initialized
- sid: Move to an always available interface
- system_power: Introduce platform interrupts and enable a configurable
number of system PPUs
- cmn600: Add the ccix programming for cmn600
Resolved issues
---------------
- Build System:
- Disable generation of unaligned accesses
- Framework:
- list: Always zero list nodes when removed from a list
- Zero event list node when duplicating an event
- Modules:
- cmn600: Fix inappropriately-initialised global state
- cmn600: Stop checking type of external nodes
- ppu_v0: Ensure bound_id is set when bound by system_power
- system_power: Fix extented PPU support
|