Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
1be2f666
Unverified
Commit
1be2f666
authored
6 years ago
by
Dimitris Papastamos
Committed by
GitHub
6 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #1464 from antonio-nino-diaz-arm/an/rpi3-ints
rpi3: Implement simple interrupt routing
parents
fa7e2e69
d35de55e
master
v2.5
v2.5-rc1
v2.5-rc0
v2.4
v2.4-rc2
v2.4-rc1
v2.4-rc0
v2.3
v2.3-rc2
v2.3-rc1
v2.3-rc0
v2.2
v2.2-rc2
v2.2-rc1
v2.2-rc0
v2.1
v2.1-rc1
v2.1-rc0
v2.0
v2.0-rc0
v1.6
v1.6-rc1
v1.6-rc0
arm_cca_v0.2
arm_cca_v0.1
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
docs/plat/rpi3.rst
+6
-0
docs/plat/rpi3.rst
plat/rpi3/rpi3_common.c
+14
-7
plat/rpi3/rpi3_common.c
with
20 additions
and
7 deletions
+20
-7
docs/plat/rpi3.rst
View file @
1be2f666
...
...
@@ -243,6 +243,12 @@ The following build options are supported:
BL32_EXTRA1=tee-pager_v2.bin BL32_EXTRA2=tee-pageable_v2.bin``
to put the binaries into the FIP.
Note: If OP-TEE is used it may be needed to add the following options to the
Linux command line so that the USB driver doesn't use FIQs:
``dwc_otg.fiq_enable=0 dwc_otg.fiq_fsm_enable=0 dwc_otg.nak_holdoff=0``.
This will unfortunately reduce the performance of the USB driver. It is needed
when using Raspbian, for example.
- ``TRUSTED_BOARD_BOOT``: This port supports TBB. Set this option
``TRUSTED_BOARD_BOOT=1`` to enable it. In order to use TBB, you might
want to set ``GENERATE_COT=1`` to let the contents of the FIP automatically
...
...
This diff is collapsed.
Click to expand it.
plat/rpi3/rpi3_common.c
View file @
1be2f666
...
...
@@ -5,6 +5,7 @@
*/
#include <arch_helpers.h>
#include <assert.h>
#include <bl_common.h>
#include <console.h>
#include <debug.h>
...
...
@@ -198,15 +199,21 @@ unsigned int plat_get_syscnt_freq2(void)
uint32_t
plat_ic_get_pending_interrupt_type
(
void
)
{
ERROR
(
"rpi3: Interrupt routed to EL3.
\n
"
);
return
INTR_TYPE_INVAL
;
}
uint32_t
plat_interrupt_type_to_line
(
uint32_t
type
,
uint32_t
security_state
)
uint32_t
plat_interrupt_type_to_line
(
uint32_t
type
,
uint32_t
security_state
)
{
/* It is not expected to receive an interrupt route to EL3.
* Hence panic() to flag error.
*/
ERROR
(
"Interrupt not expected to be routed to EL3"
);
panic
();
assert
((
type
==
INTR_TYPE_S_EL1
)
||
(
type
==
INTR_TYPE_EL3
)
||
(
type
==
INTR_TYPE_NS
));
assert
(
sec_state_is_valid
(
security_state
));
/* Non-secure interrupts are signalled on the IRQ line always. */
if
(
type
==
INTR_TYPE_NS
)
return
__builtin_ctz
(
SCR_IRQ_BIT
);
/* Secure interrupts are signalled on the FIQ line always. */
return
__builtin_ctz
(
SCR_FIQ_BIT
);
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help