Fix TZC-400 peripheral detection
authorVikram Kanigiri <vikram.kanigiri@arm.com>
Tue, 20 Oct 2015 15:55:26 +0000 (16:55 +0100)
committerVikram Kanigiri <vikram.kanigiri@arm.com>
Fri, 27 Nov 2015 13:47:13 +0000 (13:47 +0000)
commit609ebce42596174e987c84854ae0cfca402f7a02
treee538c512c9d2c65eff5990116b952ad157b4089a
parent4a1dcde72fa43b2ffdc5d54a1932e727374d11c2
Fix TZC-400 peripheral detection

The TZC-400 driver implementation incorrectly uses the component
ID registers to detect the TZC-400 peripheral. As all ARM
peripherals share the same component ID, it doesn't allow to
uniquely identify the TZC-400 peripheral. This patch fixes the
TZC-400 driver by relying on the `part_number_0` and
`part_number_1` fields in the `PID` registers instead.
The `tzc_read_component_id` function has been replaced by
`tzc_read_peripheral_id`, which reads the 'part_number' values
and compares them with the TZC-400 peripheral ID.

Also, it adds a debug assertion to detect when the TZC driver
initialisation function is called multiple times.

Change-Id: I35949f6501a51c0a794144cd1c3a6db62440dce6
drivers/arm/tzc400/tzc400.c
include/drivers/arm/tzc400.h