Skip to content
GitLab
Menu
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
f3974ea5
Commit
f3974ea5
authored
Dec 02, 2015
by
danh-arm
Browse files
Merge pull request #446 from vikramkanigiri/vk/tzc-400
Fix TZC-400 peripheral detection
parents
3138dac6
609ebce4
Changes
2
Hide whitespace changes
Inline
Side-by-side
drivers/arm/tzc400/tzc400.c
View file @
f3974ea5
...
...
@@ -118,14 +118,13 @@ static inline void tzc_write_region_id_access(uintptr_t base,
REGION_NUM_OFF
(
region
),
val
);
}
static
u
int32_
t
tzc_read_
component
_id
(
uintptr_t
base
)
static
u
nsigned
in
t
tzc_read_
peripheral
_id
(
uintptr_t
base
)
{
u
int32_
t
id
;
u
nsigned
in
t
id
;
id
=
mmio_read_8
(
base
+
CID0_OFF
);
id
|=
(
mmio_read_8
(
base
+
CID1_OFF
)
<<
8
);
id
|=
(
mmio_read_8
(
base
+
CID2_OFF
)
<<
16
);
id
|=
(
mmio_read_8
(
base
+
CID3_OFF
)
<<
24
);
id
=
mmio_read_8
(
base
+
PID0_OFF
);
/* Masks jep106_id_3_0 part in PID1 */
id
|=
((
mmio_read_8
(
base
+
PID1_OFF
)
&
0xF
)
<<
8
);
return
id
;
}
...
...
@@ -166,17 +165,21 @@ static void tzc_set_gate_keeper(uintptr_t base, uint8_t filter, uint32_t val)
void
tzc_init
(
uintptr_t
base
)
{
uint32_t
tzc_id
,
tzc_build
;
unsigned
int
tzc_id
;
unsigned
int
tzc_build
;
assert
(
base
);
/* Assert if already initialised */
assert
(
!
tzc
.
base
);
tzc
.
base
=
base
;
/*
* We expect to see a tzc400. Check component ID. The TZC-400 TRM shows
* component ID is expected to be "0xB105F00D".
* We expect to see a tzc400. Check peripheral ID.
*/
tzc_id
=
tzc_read_
component
_id
(
tzc
.
base
);
if
(
tzc_id
!=
TZC400_
COMPONENT
_ID
)
{
tzc_id
=
tzc_read_
peripheral
_id
(
tzc
.
base
);
if
(
tzc_id
!=
TZC400_
PERIPHERAL
_ID
)
{
ERROR
(
"TZC : Wrong device ID (0x%x).
\n
"
,
tzc_id
);
panic
();
}
...
...
include/drivers/arm/tzc400.h
View file @
f3974ea5
...
...
@@ -147,7 +147,9 @@
#define TZC_REGION_ACCESS_RDWR(id) \
(TZC_REGION_ACCESS_RD(id) | TZC_REGION_ACCESS_WR(id))
#define TZC400_COMPONENT_ID 0xb105f00d
/* Consist of part_number_1 and part_number_0 */
#define TZC400_PERIPHERAL_ID 0x0460
#ifndef __ASSEMBLY__
...
...
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