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
7cc287de
Commit
7cc287de
authored
5 years ago
by
Paul Beesley
Committed by
TrustedFirmware Code Review
5 years ago
Browse files
Options
Download
Plain Diff
Merge "rcar_gen3: plat: Rename RCAR_PRODUCT_* to PRR_PRODUCT_*" into integration
parents
44f4bb24
df51d8fe
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
arm_cca_v0.2
arm_cca_v0.1
No related merge requests found
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
drivers/renesas/rcar/emmc/emmc_interrupt.c
+7
-7
drivers/renesas/rcar/emmc/emmc_interrupt.c
drivers/renesas/rcar/emmc/emmc_mount.c
+7
-7
drivers/renesas/rcar/emmc/emmc_mount.c
drivers/renesas/rcar/iic_dvfs/iic_dvfs.c
+3
-3
drivers/renesas/rcar/iic_dvfs/iic_dvfs.c
drivers/renesas/rcar/pfc/M3/pfc_init_m3.c
+5
-5
drivers/renesas/rcar/pfc/M3/pfc_init_m3.c
drivers/renesas/rcar/pfc/pfc_init.c
+5
-5
drivers/renesas/rcar/pfc/pfc_init.c
drivers/renesas/rcar/pwrc/pwrc.c
+16
-16
drivers/renesas/rcar/pwrc/pwrc.c
drivers/renesas/rcar/rom/rom_api.c
+11
-11
drivers/renesas/rcar/rom/rom_api.c
drivers/renesas/rcar/rpc/rpc_driver.c
+3
-3
drivers/renesas/rcar/rpc/rpc_driver.c
drivers/renesas/rcar/watchdog/swdt.c
+3
-3
drivers/renesas/rcar/watchdog/swdt.c
plat/renesas/rcar/bl2_cpg_init.c
+18
-18
plat/renesas/rcar/bl2_cpg_init.c
plat/renesas/rcar/bl2_plat_setup.c
+49
-49
plat/renesas/rcar/bl2_plat_setup.c
plat/renesas/rcar/bl31_plat_setup.c
+2
-2
plat/renesas/rcar/bl31_plat_setup.c
plat/renesas/rcar/include/rcar_def.h
+6
-18
plat/renesas/rcar/include/rcar_def.h
with
135 additions
and
147 deletions
+135
-147
drivers/renesas/rcar/emmc/emmc_interrupt.c
View file @
7cc287de
/*
* Copyright (c) 2015-201
8
, Renesas Electronics Corporation. All rights
* Copyright (c) 2015-201
9
, Renesas Electronics Corporation. All rights
* reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
...
...
@@ -26,17 +26,17 @@ uint32_t emmc_interrupt(void)
uint32_t
end_bit
;
prr_data
=
mmio_read_32
((
uintptr_t
)
RCAR_PRR
);
cut_ver
=
prr_data
&
R
CA
R_CUT_MASK
;
if
((
prr_data
&
R
CA
R_PRODUCT_MASK
)
==
R
CA
R_PRODUCT_H3
)
{
if
(
cut_ver
==
RCAR_CUT_VER
10
)
{
cut_ver
=
prr_data
&
P
RR_CUT_MASK
;
if
((
prr_data
&
P
RR_PRODUCT_MASK
)
==
P
RR_PRODUCT_H3
)
{
if
(
cut_ver
==
PRR_PRODUCT_
10
)
{
end_bit
=
BIT17
;
}
else
if
(
cut_ver
==
RCAR_CUT_VER
11
)
{
}
else
if
(
cut_ver
==
PRR_PRODUCT_
11
)
{
end_bit
=
BIT17
;
}
else
{
end_bit
=
BIT20
;
}
}
else
if
((
prr_data
&
R
CA
R_PRODUCT_MASK
)
==
R
CA
R_PRODUCT_M3
)
{
if
(
cut_ver
==
RCAR_CUT_VER
10
)
{
}
else
if
((
prr_data
&
P
RR_PRODUCT_MASK
)
==
P
RR_PRODUCT_M3
)
{
if
(
cut_ver
==
PRR_PRODUCT_
10
)
{
end_bit
=
BIT17
;
}
else
{
end_bit
=
BIT20
;
...
...
This diff is collapsed.
Click to expand it.
drivers/renesas/rcar/emmc/emmc_mount.c
View file @
7cc287de
/*
* Copyright (c) 2015-201
7
, Renesas Electronics Corporation. All rights reserved.
* Copyright (c) 2015-201
9
, Renesas Electronics Corporation. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -29,14 +29,14 @@ static void emmc_set_bootpartition(void)
{
uint32_t
reg
;
reg
=
mmio_read_32
(
RCAR_PRR
)
&
(
R
CA
R_PRODUCT_MASK
|
R
CA
R_CUT_MASK
);
if
(
reg
==
R
CA
R_PRODUCT_M3_CUT10
)
{
reg
=
mmio_read_32
(
RCAR_PRR
)
&
(
P
RR_PRODUCT_MASK
|
P
RR_CUT_MASK
);
if
(
reg
==
P
RR_PRODUCT_M3_CUT10
)
{
mmc_drv_obj
.
boot_partition_en
=
(
EMMC_PARTITION_ID
)
((
mmc_drv_obj
.
ext_csd_data
[
179
]
&
EMMC_BOOT_PARTITION_EN_MASK
)
>>
EMMC_BOOT_PARTITION_EN_SHIFT
);
}
else
if
((
reg
==
R
CA
R_PRODUCT_H3_CUT20
)
||
(
reg
==
R
CA
R_PRODUCT_M3_CUT11
))
{
}
else
if
((
reg
==
P
RR_PRODUCT_H3_CUT20
)
||
(
reg
==
P
RR_PRODUCT_M3_CUT11
))
{
mmc_drv_obj
.
boot_partition_en
=
mmc_drv_obj
.
partition_access
;
}
else
{
if
((
mmio_read_32
(
MFISBTSTSR
)
&
MFISBTSTSR_BOOT_PARTITION
)
!=
...
...
@@ -460,8 +460,8 @@ static void emmc_get_partition_access(void)
uint32_t
reg
;
EMMC_ERROR_CODE
result
;
reg
=
mmio_read_32
(
RCAR_PRR
)
&
(
R
CA
R_PRODUCT_MASK
|
R
CA
R_CUT_MASK
);
if
((
reg
==
R
CA
R_PRODUCT_H3_CUT20
)
||
(
reg
==
R
CA
R_PRODUCT_M3_CUT11
))
{
reg
=
mmio_read_32
(
RCAR_PRR
)
&
(
P
RR_PRODUCT_MASK
|
P
RR_CUT_MASK
);
if
((
reg
==
P
RR_PRODUCT_H3_CUT20
)
||
(
reg
==
P
RR_PRODUCT_M3_CUT11
))
{
SETR_32
(
SD_OPTION
,
0x000060EEU
);
/* 8 bits width */
/* CMD8 (EXT_CSD) */
emmc_make_trans_cmd
(
CMD8_SEND_EXT_CSD
,
0x00000000U
,
...
...
This diff is collapsed.
Click to expand it.
drivers/renesas/rcar/iic_dvfs/iic_dvfs.c
View file @
7cc287de
/*
* Copyright (c) 2015-201
8
, Renesas Electronics Corporation. All rights reserved.
* Copyright (c) 2015-201
9
, Renesas Electronics Corporation. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -189,8 +189,8 @@ IIC_DVFS_FUNC(start, DVFS_STATE_T * state)
mode
=
mmio_read_8
(
IIC_DVFS_REG_ICCR
)
|
IIC_DVFS_BIT_ICCR_ENABLE
;
mmio_write_8
(
IIC_DVFS_REG_ICCR
,
mode
);
lsi_product
=
mmio_read_32
(
RCAR_PRR
)
&
R
CA
R_PRODUCT_MASK
;
if
(
lsi_product
==
R
CA
R_PRODUCT_E3
)
lsi_product
=
mmio_read_32
(
RCAR_PRR
)
&
P
RR_PRODUCT_MASK
;
if
(
lsi_product
==
P
RR_PRODUCT_E3
)
goto
start
;
reg
=
mmio_read_32
(
RCAR_MODEMR
)
&
CHECK_MD13_MD14
;
...
...
This diff is collapsed.
Click to expand it.
drivers/renesas/rcar/pfc/M3/pfc_init_m3.c
View file @
7cc287de
...
...
@@ -615,8 +615,8 @@ static void start_rtdma0_descriptor(void)
uint32_t
reg
;
reg
=
mmio_read_32
(
RCAR_PRR
);
reg
&=
(
R
CA
R_PRODUCT_MASK
|
R
CA
R_CUT_MASK
);
if
(
reg
==
(
R
CA
R_PRODUCT_M3_CUT10
))
{
reg
&=
(
P
RR_PRODUCT_MASK
|
P
RR_CUT_MASK
);
if
(
reg
==
(
P
RR_PRODUCT_M3_CUT10
))
{
/* Enable clock supply to RTDMAC. */
mstpcr_write
(
CPG_SCMSTPCR0
,
CPG_MSTPSR0
,
SCMSTPCR0_RTDMAC
);
...
...
@@ -654,14 +654,14 @@ static void pfc_reg_write(uint32_t addr, uint32_t data)
uint32_t
prr
;
prr
=
mmio_read_32
(
RCAR_PRR
);
prr
&=
(
R
CA
R_PRODUCT_MASK
|
R
CA
R_CUT_MASK
);
prr
&=
(
P
RR_PRODUCT_MASK
|
P
RR_CUT_MASK
);
mmio_write_32
(
PFC_PMMR
,
~
data
);
if
(
prr
==
(
R
CA
R_PRODUCT_M3_CUT10
))
{
if
(
prr
==
(
P
RR_PRODUCT_M3_CUT10
))
{
mmio_write_16
(
SCIF3_SCFCR
,
SCFCR_DATA
);
/* Dummy write */
}
mmio_write_32
((
uintptr_t
)
addr
,
data
);
if
(
prr
==
(
R
CA
R_PRODUCT_M3_CUT10
))
{
if
(
prr
==
(
P
RR_PRODUCT_M3_CUT10
))
{
mmio_write_16
(
SCIF3_SCFCR
,
SCFCR_DATA
);
/* Dummy write */
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/renesas/rcar/pfc/pfc_init.c
View file @
7cc287de
...
...
@@ -57,8 +57,8 @@ void rcar_pfc_init(void)
reg
=
mmio_read_32
(
RCAR_PRR
);
#if RCAR_LSI == RCAR_AUTO
switch
(
reg
&
R
CA
R_PRODUCT_MASK
)
{
case
R
CA
R_PRODUCT_H3
:
switch
(
reg
&
P
RR_PRODUCT_MASK
)
{
case
P
RR_PRODUCT_H3
:
switch
(
reg
&
PRR_CUT_MASK
)
{
case
PRR_PRODUCT_10
:
/* H3 Ver.1.0 */
pfc_init_h3_v1
();
...
...
@@ -71,13 +71,13 @@ void rcar_pfc_init(void)
break
;
}
break
;
case
R
CA
R_PRODUCT_M3
:
case
P
RR_PRODUCT_M3
:
pfc_init_m3
();
break
;
case
R
CA
R_PRODUCT_M3N
:
case
P
RR_PRODUCT_M3N
:
pfc_init_m3n
();
break
;
case
R
CA
R_PRODUCT_V3M
:
case
P
RR_PRODUCT_V3M
:
pfc_init_v3m
();
break
;
default:
...
...
This diff is collapsed.
Click to expand it.
drivers/renesas/rcar/pwrc/pwrc.c
View file @
7cc287de
/*
* Copyright (c) 2015-201
8
, Renesas Electronics Corporation. All rights reserved.
* Copyright (c) 2015-201
9
, Renesas Electronics Corporation. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -314,16 +314,16 @@ void rcar_pwrc_clusteroff(uint64_t mpidr)
rcar_lock_get
();
reg
=
mmio_read_32
(
RCAR_PRR
);
product
=
reg
&
R
CA
R_PRODUCT_MASK
;
cut
=
reg
&
R
CA
R_CUT_MASK
;
product
=
reg
&
P
RR_PRODUCT_MASK
;
cut
=
reg
&
P
RR_CUT_MASK
;
c
=
rcar_pwrc_get_mpidr_cluster
(
mpidr
);
dst
=
IS_CA53
(
c
)
?
RCAR_CA53CPUCMCR
:
RCAR_CA57CPUCMCR
;
if
(
R
CA
R_PRODUCT_M3
==
product
&&
cut
<
RCAR_CUT_VER
30
)
if
(
P
RR_PRODUCT_M3
==
product
&&
cut
<
PRR_PRODUCT_
30
)
goto
done
;
if
(
R
CA
R_PRODUCT_H3
==
product
&&
cut
<=
RCAR_CUT_VER
20
)
if
(
P
RR_PRODUCT_H3
==
product
&&
cut
<=
PRR_PRODUCT_
20
)
goto
done
;
/* all of the CPUs in the cluster is in the CoreStandby mode */
...
...
@@ -424,13 +424,13 @@ static void __attribute__ ((section(".system_ram")))
uint32_t
reg
=
mmio_read_32
(
RCAR_PRR
);
uint32_t
cut
,
product
;
product
=
reg
&
R
CA
R_PRODUCT_MASK
;
cut
=
reg
&
R
CA
R_CUT_MASK
;
product
=
reg
&
P
RR_PRODUCT_MASK
;
cut
=
reg
&
P
RR_CUT_MASK
;
if
(
product
==
R
CA
R_PRODUCT_M3
&&
cut
<
RCAR_CUT_VER
30
)
if
(
product
==
P
RR_PRODUCT_M3
&&
cut
<
PRR_PRODUCT_
30
)
goto
self_refresh
;
if
(
product
==
R
CA
R_PRODUCT_H3
&&
cut
<
RCAR_CUT_VER
20
)
if
(
product
==
P
RR_PRODUCT_H3
&&
cut
<
PRR_PRODUCT_
20
)
goto
self_refresh
;
mmio_write_32
(
DBSC4_REG_DBSYSCNT0
,
DBSC4_SET_DBSYSCNT0_WRITE_ENABLE
);
...
...
@@ -445,16 +445,16 @@ self_refresh:
/* Set the Self-Refresh mode */
mmio_write_32
(
DBSC4_REG_DBACEN
,
0
);
if
(
product
==
R
CA
R_PRODUCT_H3
&&
cut
<
RCAR_CUT_VER
20
)
if
(
product
==
P
RR_PRODUCT_H3
&&
cut
<
PRR_PRODUCT_
20
)
rcar_micro_delay
(
100
);
else
if
(
product
==
R
CA
R_PRODUCT_H3
)
{
else
if
(
product
==
P
RR_PRODUCT_H3
)
{
mmio_write_32
(
DBSC4_REG_DBCAM0CTRL0
,
1
);
DBCAM_FLUSH
(
0
);
DBCAM_FLUSH
(
1
);
DBCAM_FLUSH
(
2
);
DBCAM_FLUSH
(
3
);
mmio_write_32
(
DBSC4_REG_DBCAM0CTRL0
,
0
);
}
else
if
(
product
==
R
CA
R_PRODUCT_M3
)
{
}
else
if
(
product
==
P
RR_PRODUCT_M3
)
{
mmio_write_32
(
DBSC4_REG_DBCAM0CTRL0
,
1
);
DBCAM_FLUSH
(
0
);
DBCAM_FLUSH
(
1
);
...
...
@@ -499,10 +499,10 @@ self_refresh:
mmio_write_32
(
DBSC4_REG_DBRFEN
,
0U
);
rcar_micro_delay
(
1U
);
if
(
product
==
R
CA
R_PRODUCT_M3
&&
cut
<
RCAR_CUT_VER
30
)
if
(
product
==
P
RR_PRODUCT_M3
&&
cut
<
PRR_PRODUCT_
30
)
return
;
if
(
product
==
R
CA
R_PRODUCT_H3
&&
cut
<
RCAR_CUT_VER
20
)
if
(
product
==
P
RR_PRODUCT_H3
&&
cut
<
PRR_PRODUCT_
20
)
return
;
mmio_write_32
(
DBSC4_REG_DBSYSCNT0
,
DBSC4_SET_DBSYSCNT0_WRITE_DISABLE
);
...
...
@@ -648,9 +648,9 @@ void __attribute__ ((section(".system_ram"))) __attribute__ ((noinline))
uint32_t
reg
,
product
;
reg
=
mmio_read_32
(
RCAR_PRR
);
product
=
reg
&
R
CA
R_PRODUCT_MASK
;
product
=
reg
&
P
RR_PRODUCT_MASK
;
if
(
product
!=
R
CA
R_PRODUCT_E3
)
if
(
product
!=
P
RR_PRODUCT_E3
)
rcar_pwrc_set_self_refresh
();
else
rcar_pwrc_set_self_refresh_e3
();
...
...
This diff is collapsed.
Click to expand it.
drivers/renesas/rcar/rom/rom_api.c
View file @
7cc287de
/*
* Copyright (c) 2015-201
8
, Renesas Electronics Corporation. All rights reserved.
* Copyright (c) 2015-201
9
, Renesas Electronics Corporation. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -30,30 +30,30 @@ static uint32_t get_table_index(void)
uint32_t
cut_ver
;
uint32_t
index
;
product
=
mmio_read_32
(
RCAR_PRR
)
&
R
CA
R_PRODUCT_MASK
;
cut_ver
=
mmio_read_32
(
RCAR_PRR
)
&
R
CA
R_CUT_MASK
;
product
=
mmio_read_32
(
RCAR_PRR
)
&
P
RR_PRODUCT_MASK
;
cut_ver
=
mmio_read_32
(
RCAR_PRR
)
&
P
RR_CUT_MASK
;
switch
(
product
)
{
case
R
CA
R_PRODUCT_H3
:
if
(
cut_ver
==
RCAR_CUT_VER
10
)
case
P
RR_PRODUCT_H3
:
if
(
cut_ver
==
PRR_PRODUCT_
10
)
index
=
OLD_API_TABLE1
;
else
if
(
cut_ver
==
RCAR_CUT_VER
11
)
else
if
(
cut_ver
==
PRR_PRODUCT_
11
)
index
=
OLD_API_TABLE1
;
else
if
(
cut_ver
==
RCAR_CUT_VER
20
)
else
if
(
cut_ver
==
PRR_PRODUCT_
20
)
index
=
OLD_API_TABLE2
;
else
/* Later than H3 Ver.2.0 */
index
=
NEW_API_TABLE
;
break
;
case
R
CA
R_PRODUCT_M3
:
if
(
cut_ver
==
RCAR_CUT_VER
10
)
case
P
RR_PRODUCT_M3
:
if
(
cut_ver
==
PRR_PRODUCT_
10
)
index
=
OLD_API_TABLE3
;
else
/* M3 Ver.1.1 or later */
index
=
NEW_API_TABLE
;
break
;
case
R
CA
R_PRODUCT_V3M
:
if
(
cut_ver
==
RCAR_CUT_VER
10
)
case
P
RR_PRODUCT_V3M
:
if
(
cut_ver
==
PRR_PRODUCT_
10
)
/* V3M WS1.0 */
index
=
NEW_API_TABLE2
;
else
...
...
This diff is collapsed.
Click to expand it.
drivers/renesas/rcar/rpc/rpc_driver.c
View file @
7cc287de
...
...
@@ -34,10 +34,10 @@ static void rpc_setup(void)
if
(
mmio_read_32
(
RPC_CMNCR
)
&
RPC_CMNCR_MD_BIT
)
mmio_clrbits_32
(
RPC_CMNCR
,
RPC_CMNCR_MD_BIT
);
product
=
mmio_read_32
(
RCAR_PRR
)
&
R
CA
R_PRODUCT_MASK
;
cut
=
mmio_read_32
(
RCAR_PRR
)
&
R
CA
R_CUT_MASK
;
product
=
mmio_read_32
(
RCAR_PRR
)
&
P
RR_PRODUCT_MASK
;
cut
=
mmio_read_32
(
RCAR_PRR
)
&
P
RR_CUT_MASK
;
if
((
product
==
R
CA
R_PRODUCT_M3
)
&&
(
cut
<
RCAR_CUT_VER
30
))
if
((
product
==
P
RR_PRODUCT_M3
)
&&
(
cut
<
PRR_PRODUCT_
30
))
phy_strtim
=
RPC_PHYCNT_STRTIM_M3V1
;
else
phy_strtim
=
RPC_PHYCNT_STRTIM
;
...
...
This diff is collapsed.
Click to expand it.
drivers/renesas/rcar/watchdog/swdt.c
View file @
7cc287de
/*
* Copyright (c) 2015-201
8
, Renesas Electronics Corporation. All rights reserved.
* Copyright (c) 2015-201
9
, Renesas Electronics Corporation. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -82,7 +82,7 @@ void rcar_swdt_init(void)
uint32_t
reg
,
val
,
product_cut
,
chk_data
;
reg
=
mmio_read_32
(
RCAR_PRR
);
product_cut
=
reg
&
(
R
CA
R_PRODUCT_MASK
|
R
CA
R_CUT_MASK
);
product_cut
=
reg
&
(
P
RR_PRODUCT_MASK
|
P
RR_CUT_MASK
);
reg
=
mmio_read_32
(
RCAR_MODEMR
);
chk_data
=
reg
&
CHECK_MD13_MD14
;
...
...
@@ -108,7 +108,7 @@ void rcar_swdt_init(void)
val
|=
WTCNT_COUNT_8p22k
;
break
;
case
MD14_MD13_TYPE_3
:
val
|=
product_cut
==
(
R
CA
R_PRODUCT_H3
|
RCAR_CUT_VER
10
)
?
val
|=
product_cut
==
(
P
RR_PRODUCT_H3
|
PRR_PRODUCT_
10
)
?
WTCNT_COUNT_8p13k_H3VER10
:
WTCNT_COUNT_8p13k
;
break
;
default:
...
...
This diff is collapsed.
Click to expand it.
plat/renesas/rcar/bl2_cpg_init.c
View file @
7cc287de
/*
* Copyright (c) 2015-201
8
, Renesas Electronics Corporation. All rights reserved.
* Copyright (c) 2015-201
9
, Renesas Electronics Corporation. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
...
...
@@ -109,12 +109,12 @@ static void bl2_secure_cpg_init(void)
#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RCAR_H3) || (RCAR_LSI == RCAR_H3N)
static
void
bl2_realtime_cpg_init_h3
(
void
)
{
uint32_t
cut
=
mmio_read_32
(
RCAR_PRR
)
&
R
CA
R_CUT_MASK
;
uint32_t
cut
=
mmio_read_32
(
RCAR_PRR
)
&
P
RR_CUT_MASK
;
uint32_t
cr0
,
cr8
;
cr0
=
(
cut
==
RCAR_CUT_VER
10
||
cut
==
RCAR_CUT_VER
11
)
?
cr0
=
(
cut
==
PRR_PRODUCT_
10
||
cut
==
PRR_PRODUCT_
11
)
?
0x00200000U
:
0x00210000U
;
cr8
=
(
cut
==
RCAR_CUT_VER
10
||
cut
==
RCAR_CUT_VER
11
)
?
cr8
=
(
cut
==
PRR_PRODUCT_
10
||
cut
==
PRR_PRODUCT_
11
)
?
0x01F1FFF4U
:
0x01F1FFF7U
;
cpg_write
(
RMSTPCR0
,
cr0
);
...
...
@@ -329,7 +329,7 @@ void bl2_cpg_init(void)
{
uint32_t
boot_cpu
=
mmio_read_32
(
RCAR_MODEMR
)
&
MODEMR_BOOT_CPU_MASK
;
#if RCAR_LSI == RCAR_AUTO
uint32_t
product
=
mmio_read_32
(
RCAR_PRR
)
&
R
CA
R_PRODUCT_MASK
;
uint32_t
product
=
mmio_read_32
(
RCAR_PRR
)
&
P
RR_PRODUCT_MASK
;
#endif
bl2_secure_cpg_init
();
...
...
@@ -338,22 +338,22 @@ void bl2_cpg_init(void)
#if RCAR_LSI == RCAR_AUTO
switch
(
product
)
{
case
R
CA
R_PRODUCT_H3
:
case
P
RR_PRODUCT_H3
:
bl2_realtime_cpg_init_h3
();
break
;
case
R
CA
R_PRODUCT_M3
:
case
P
RR_PRODUCT_M3
:
bl2_realtime_cpg_init_m3
();
break
;
case
R
CA
R_PRODUCT_M3N
:
case
P
RR_PRODUCT_M3N
:
bl2_realtime_cpg_init_m3n
();
break
;
case
R
CA
R_PRODUCT_V3M
:
case
P
RR_PRODUCT_V3M
:
bl2_realtime_cpg_init_v3m
();
break
;
case
R
CA
R_PRODUCT_E3
:
case
P
RR_PRODUCT_E3
:
bl2_realtime_cpg_init_e3
();
break
;
case
R
CA
R_PRODUCT_D3
:
case
P
RR_PRODUCT_D3
:
bl2_realtime_cpg_init_d3
();
break
;
default:
...
...
@@ -381,25 +381,25 @@ void bl2_cpg_init(void)
void
bl2_system_cpg_init
(
void
)
{
#if RCAR_LSI == RCAR_AUTO
uint32_t
product
=
mmio_read_32
(
RCAR_PRR
)
&
R
CA
R_PRODUCT_MASK
;
uint32_t
product
=
mmio_read_32
(
RCAR_PRR
)
&
P
RR_PRODUCT_MASK
;
switch
(
product
)
{
case
R
CA
R_PRODUCT_H3
:
case
P
RR_PRODUCT_H3
:
bl2_system_cpg_init_h3
();
break
;
case
R
CA
R_PRODUCT_M3
:
case
P
RR_PRODUCT_M3
:
bl2_system_cpg_init_m3
();
break
;
case
R
CA
R_PRODUCT_M3N
:
case
P
RR_PRODUCT_M3N
:
bl2_system_cpg_init_m3n
();
break
;
case
R
CA
R_PRODUCT_V3M
:
case
P
RR_PRODUCT_V3M
:
bl2_system_cpg_init_v3m
();
break
;
case
R
CA
R_PRODUCT_E3
:
case
P
RR_PRODUCT_E3
:
bl2_system_cpg_init_e3
();
break
;
case
R
CA
R_PRODUCT_D3
:
case
P
RR_PRODUCT_D3
:
bl2_system_cpg_init_d3
();
break
;
default:
...
...
This diff is collapsed.
Click to expand it.
plat/renesas/rcar/bl2_plat_setup.c
View file @
7cc287de
...
...
@@ -65,22 +65,22 @@ static void bl2_init_generic_timer(void);
/* R-Car Gen3 product check */
#if (RCAR_LSI == RCAR_H3) || (RCAR_LSI == RCAR_H3N)
#define TARGET_PRODUCT R
CA
R_PRODUCT_H3
#define TARGET_PRODUCT
P
RR_PRODUCT_H3
#define TARGET_NAME "R-Car H3"
#elif RCAR_LSI == RCAR_M3
#define TARGET_PRODUCT R
CA
R_PRODUCT_M3
#define TARGET_PRODUCT
P
RR_PRODUCT_M3
#define TARGET_NAME "R-Car M3"
#elif RCAR_LSI == RCAR_M3N
#define TARGET_PRODUCT R
CA
R_PRODUCT_M3N
#define TARGET_PRODUCT
P
RR_PRODUCT_M3N
#define TARGET_NAME "R-Car M3N"
#elif RCAR_LSI == RCAR_V3M
#define TARGET_PRODUCT R
CA
R_PRODUCT_V3M
#define TARGET_PRODUCT
P
RR_PRODUCT_V3M
#define TARGET_NAME "R-Car V3M"
#elif RCAR_LSI == RCAR_E3
#define TARGET_PRODUCT R
CA
R_PRODUCT_E3
#define TARGET_PRODUCT
P
RR_PRODUCT_E3
#define TARGET_NAME "R-Car E3"
#elif RCAR_LSI == RCAR_D3
#define TARGET_PRODUCT R
CA
R_PRODUCT_D3
#define TARGET_PRODUCT
P
RR_PRODUCT_D3
#define TARGET_NAME "R-Car D3"
#elif RCAR_LSI == RCAR_AUTO
#define TARGET_NAME "R-Car H3/M3/M3N/V3M"
...
...
@@ -238,17 +238,17 @@ void bl2_plat_flush_bl31_params(void)
bl2_secure_setting
();
reg
=
mmio_read_32
(
RCAR_PRR
);
product_cut
=
reg
&
(
R
CA
R_PRODUCT_MASK
|
R
CA
R_CUT_MASK
);
product
=
reg
&
R
CA
R_PRODUCT_MASK
;
cut
=
reg
&
R
CA
R_CUT_MASK
;
product_cut
=
reg
&
(
P
RR_PRODUCT_MASK
|
P
RR_CUT_MASK
);
product
=
reg
&
P
RR_PRODUCT_MASK
;
cut
=
reg
&
P
RR_CUT_MASK
;
if
(
product
==
R
CA
R_PRODUCT_M3
&&
RCAR_CUT_VER
30
>
cut
)
if
(
product
==
P
RR_PRODUCT_M3
&&
PRR_PRODUCT_
30
>
cut
)
goto
tlb
;
if
(
product
==
R
CA
R_PRODUCT_H3
&&
RCAR_CUT_VER
20
>
cut
)
if
(
product
==
P
RR_PRODUCT_H3
&&
PRR_PRODUCT_
20
>
cut
)
goto
tlb
;
if
(
product
==
R
CA
R_PRODUCT_D3
)
if
(
product
==
P
RR_PRODUCT_D3
)
goto
tlb
;
/* Disable MFIS write protection */
...
...
@@ -261,28 +261,28 @@ tlb:
boot_cpu
!=
MODEMR_BOOT_CPU_CA53
)
goto
mmu
;
if
(
product_cut
==
R
CA
R_PRODUCT_H3_CUT20
)
{
if
(
product_cut
==
P
RR_PRODUCT_H3_CUT20
)
{
mmio_write_32
(
IPMMUVI0_IMSCTLR
,
IMSCTLR_DISCACHE
);
mmio_write_32
(
IPMMUVI1_IMSCTLR
,
IMSCTLR_DISCACHE
);
mmio_write_32
(
IPMMUPV0_IMSCTLR
,
IMSCTLR_DISCACHE
);
mmio_write_32
(
IPMMUPV1_IMSCTLR
,
IMSCTLR_DISCACHE
);
mmio_write_32
(
IPMMUPV2_IMSCTLR
,
IMSCTLR_DISCACHE
);
mmio_write_32
(
IPMMUPV3_IMSCTLR
,
IMSCTLR_DISCACHE
);
}
else
if
(
product_cut
==
(
R
CA
R_PRODUCT_M3N
|
RCAR_CUT_VER
10
)
||
product_cut
==
(
R
CA
R_PRODUCT_M3N
|
RCAR_CUT_VER
11
))
{
}
else
if
(
product_cut
==
(
P
RR_PRODUCT_M3N
|
PRR_PRODUCT_
10
)
||
product_cut
==
(
P
RR_PRODUCT_M3N
|
PRR_PRODUCT_
11
))
{
mmio_write_32
(
IPMMUVI0_IMSCTLR
,
IMSCTLR_DISCACHE
);
mmio_write_32
(
IPMMUPV0_IMSCTLR
,
IMSCTLR_DISCACHE
);
}
else
if
((
product_cut
==
(
R
CA
R_PRODUCT_E3
|
RCAR_CUT_VER
10
))
||
(
product_cut
==
(
R
CA
R_PRODUCT_E3
|
RCAR_CUT_VER
11
)))
{
}
else
if
((
product_cut
==
(
P
RR_PRODUCT_E3
|
PRR_PRODUCT_
10
))
||
(
product_cut
==
(
P
RR_PRODUCT_E3
|
PRR_PRODUCT_
11
)))
{
mmio_write_32
(
IPMMUVI0_IMSCTLR
,
IMSCTLR_DISCACHE
);
mmio_write_32
(
IPMMUVP0_IMSCTLR
,
IMSCTLR_DISCACHE
);
mmio_write_32
(
IPMMUPV0_IMSCTLR
,
IMSCTLR_DISCACHE
);
}
if
(
product_cut
==
(
R
CA
R_PRODUCT_H3_CUT20
)
||
product_cut
==
(
R
CA
R_PRODUCT_M3N
|
RCAR_CUT_VER
10
)
||
product_cut
==
(
R
CA
R_PRODUCT_M3N
|
RCAR_CUT_VER
11
)
||
product_cut
==
(
R
CA
R_PRODUCT_E3
|
RCAR_CUT_VER
10
))
{
if
(
product_cut
==
(
P
RR_PRODUCT_H3_CUT20
)
||
product_cut
==
(
P
RR_PRODUCT_M3N
|
PRR_PRODUCT_
10
)
||
product_cut
==
(
P
RR_PRODUCT_M3N
|
PRR_PRODUCT_
11
)
||
product_cut
==
(
P
RR_PRODUCT_E3
|
PRR_PRODUCT_
10
))
{
mmio_write_32
(
IPMMUHC_IMSCTLR
,
IMSCTLR_DISCACHE
);
mmio_write_32
(
IPMMURT_IMSCTLR
,
IMSCTLR_DISCACHE
);
mmio_write_32
(
IPMMUMP_IMSCTLR
,
IMSCTLR_DISCACHE
);
...
...
@@ -458,28 +458,28 @@ static void bl2_populate_compatible_string(void *fdt)
}
reg
=
mmio_read_32
(
RCAR_PRR
);
switch
(
reg
&
R
CA
R_PRODUCT_MASK
)
{
case
R
CA
R_PRODUCT_H3
:
switch
(
reg
&
P
RR_PRODUCT_MASK
)
{
case
P
RR_PRODUCT_H3
:
ret
=
fdt_appendprop_string
(
fdt
,
0
,
"compatible"
,
"renesas,r8a7795"
);
break
;
case
R
CA
R_PRODUCT_M3
:
case
P
RR_PRODUCT_M3
:
ret
=
fdt_appendprop_string
(
fdt
,
0
,
"compatible"
,
"renesas,r8a7796"
);
break
;
case
R
CA
R_PRODUCT_M3N
:
case
P
RR_PRODUCT_M3N
:
ret
=
fdt_appendprop_string
(
fdt
,
0
,
"compatible"
,
"renesas,r8a77965"
);
break
;
case
R
CA
R_PRODUCT_V3M
:
case
P
RR_PRODUCT_V3M
:
ret
=
fdt_appendprop_string
(
fdt
,
0
,
"compatible"
,
"renesas,r8a77970"
);
break
;
case
R
CA
R_PRODUCT_E3
:
case
P
RR_PRODUCT_E3
:
ret
=
fdt_appendprop_string
(
fdt
,
0
,
"compatible"
,
"renesas,r8a77990"
);
break
;
case
R
CA
R_PRODUCT_D3
:
case
P
RR_PRODUCT_D3
:
ret
=
fdt_appendprop_string
(
fdt
,
0
,
"compatible"
,
"renesas,r8a77995"
);
break
;
...
...
@@ -572,7 +572,7 @@ static void bl2_advertise_dram_size(uint32_t product)
};
switch
(
product
)
{
case
R
CA
R_PRODUCT_H3
:
case
P
RR_PRODUCT_H3
:
#if (RCAR_DRAM_LPDDR4_MEMCONF == 0)
/* 4GB(1GBx4) */
dram_config
[
1
]
=
0x40000000ULL
;
...
...
@@ -594,7 +594,7 @@ static void bl2_advertise_dram_size(uint32_t product)
#endif
/* RCAR_DRAM_LPDDR4_MEMCONF == 0 */
break
;
case
R
CA
R_PRODUCT_M3
:
case
P
RR_PRODUCT_M3
:
#if (RCAR_GEN3_ULCB == 1)
/* 2GB(1GBx2 2ch split) */
dram_config
[
1
]
=
0x40000000ULL
;
...
...
@@ -606,17 +606,17 @@ static void bl2_advertise_dram_size(uint32_t product)
#endif
break
;
case
R
CA
R_PRODUCT_M3N
:
case
P
RR_PRODUCT_M3N
:
/* 2GB(1GBx2) */
dram_config
[
1
]
=
0x80000000ULL
;
break
;
case
R
CA
R_PRODUCT_V3M
:
case
P
RR_PRODUCT_V3M
:
/* 1GB(512MBx2) */
dram_config
[
1
]
=
0x40000000ULL
;
break
;
case
R
CA
R_PRODUCT_E3
:
case
P
RR_PRODUCT_E3
:
#if (RCAR_DRAM_DDR3L_MEMCONF == 0)
/* 1GB(512MBx2) */
dram_config
[
1
]
=
0x40000000ULL
;
...
...
@@ -629,7 +629,7 @@ static void bl2_advertise_dram_size(uint32_t product)
#endif
/* RCAR_DRAM_DDR3L_MEMCONF == 0 */
break
;
case
R
CA
R_PRODUCT_D3
:
case
P
RR_PRODUCT_D3
:
/* 512MB */
dram_config
[
1
]
=
0x20000000ULL
;
break
;
...
...
@@ -716,26 +716,26 @@ void bl2_el3_early_platform_setup(u_register_t arg1, u_register_t arg2,
version_of_renesas
);
reg
=
mmio_read_32
(
RCAR_PRR
);
product_cut
=
reg
&
(
R
CA
R_PRODUCT_MASK
|
R
CA
R_CUT_MASK
);
product
=
reg
&
R
CA
R_PRODUCT_MASK
;
product_cut
=
reg
&
(
P
RR_PRODUCT_MASK
|
P
RR_CUT_MASK
);
product
=
reg
&
P
RR_PRODUCT_MASK
;
switch
(
product
)
{
case
R
CA
R_PRODUCT_H3
:
case
P
RR_PRODUCT_H3
:
str
=
product_h3
;
break
;
case
R
CA
R_PRODUCT_M3
:
case
P
RR_PRODUCT_M3
:
str
=
product_m3
;
break
;
case
R
CA
R_PRODUCT_M3N
:
case
P
RR_PRODUCT_M3N
:
str
=
product_m3n
;
break
;
case
R
CA
R_PRODUCT_V3M
:
case
P
RR_PRODUCT_V3M
:
str
=
product_v3m
;
break
;
case
R
CA
R_PRODUCT_E3
:
case
P
RR_PRODUCT_E3
:
str
=
product_e3
;
break
;
case
R
CA
R_PRODUCT_D3
:
case
P
RR_PRODUCT_D3
:
str
=
product_d3
;
break
;
default:
...
...
@@ -743,9 +743,9 @@ void bl2_el3_early_platform_setup(u_register_t arg1, u_register_t arg2,
break
;
}
if
((
R
CA
R_PRODUCT_M3
==
product
)
&&
(
RCAR_CUT_VER
20
==
(
reg
&
RCAR_MAJOR_MASK
)))
{
if
(
RCAR_M3_CUT_VER11
==
(
reg
&
R
CA
R_CUT_MASK
))
{
if
((
P
RR_PRODUCT_M3
==
product
)
&&
(
PRR_PRODUCT_
20
==
(
reg
&
RCAR_MAJOR_MASK
)))
{
if
(
RCAR_M3_CUT_VER11
==
(
reg
&
P
RR_CUT_MASK
))
{
/* M3 Ver.1.1 or Ver.1.2 */
NOTICE
(
"BL2: PRR is R-Car %s Ver.1.1 / Ver.1.2
\n
"
,
str
);
...
...
@@ -761,7 +761,7 @@ void bl2_el3_early_platform_setup(u_register_t arg1, u_register_t arg2,
NOTICE
(
"BL2: PRR is R-Car %s Ver.%d.%d
\n
"
,
str
,
major
,
minor
);
}
if
(
product
==
R
CA
R_PRODUCT_E3
)
{
if
(
product
==
P
RR_PRODUCT_E3
)
{
reg
=
mmio_read_32
(
RCAR_MODEMR
);
sscg
=
reg
&
RCAR_SSCG_MASK
;
str
=
sscg
==
RCAR_SSCG_ENABLE
?
sscg_on
:
sscg_off
;
...
...
@@ -930,7 +930,7 @@ lcm_state:
mmio_write_32
(
CPG_CA53DBGRCR
,
DBGCPUPREN
|
mmio_read_32
(
CPG_CA53DBGRCR
));
if
(
product_cut
==
R
CA
R_PRODUCT_H3_CUT10
)
{
if
(
product_cut
==
P
RR_PRODUCT_H3_CUT10
)
{
reg
=
mmio_read_32
(
CPG_PLL2CR
);
reg
&=
~
((
uint32_t
)
1
<<
5
);
mmio_write_32
(
CPG_PLL2CR
,
reg
);
...
...
@@ -1016,7 +1016,7 @@ static void bl2_init_generic_timer(void)
/* Set frequency data in CNTFID0 */
reg_cntfid
=
pll_table
[
modemr_pll
>>
MODEMR_BOOT_PLL_SHIFT
];
reg
=
mmio_read_32
(
RCAR_PRR
)
&
(
R
CA
R_PRODUCT_MASK
|
R
CA
R_CUT_MASK
);
reg
=
mmio_read_32
(
RCAR_PRR
)
&
(
P
RR_PRODUCT_MASK
|
P
RR_CUT_MASK
);
switch
(
modemr_pll
)
{
case
MD14_MD13_TYPE_0
:
rcar_get_board_type
(
&
board_type
,
&
board_rev
);
...
...
@@ -1025,7 +1025,7 @@ static void bl2_init_generic_timer(void)
}
break
;
case
MD14_MD13_TYPE_3
:
if
(
R
CA
R_PRODUCT_H3_CUT10
==
reg
)
{
if
(
P
RR_PRODUCT_H3_CUT10
==
reg
)
{
reg_cntfid
=
reg_cntfid
>>
1U
;
}
break
;
...
...
This diff is collapsed.
Click to expand it.
plat/renesas/rcar/bl31_plat_setup.c
View file @
7cc287de
...
...
@@ -44,9 +44,9 @@ void plat_cci_init(void)
{
uint32_t
prd
;
prd
=
mmio_read_32
(
RCAR_PRR
)
&
(
R
CA
R_PRODUCT_MASK
|
R
CA
R_CUT_MASK
);
prd
=
mmio_read_32
(
RCAR_PRR
)
&
(
P
RR_PRODUCT_MASK
|
P
RR_CUT_MASK
);
if
(
R
CA
R_PRODUCT_H3_CUT10
==
prd
||
R
CA
R_PRODUCT_H3_CUT11
==
prd
)
{
if
(
P
RR_PRODUCT_H3_CUT10
==
prd
||
P
RR_PRODUCT_H3_CUT11
==
prd
)
{
cci_map
[
0U
]
=
CCI500_CLUSTER0_SL_IFACE_IX
;
cci_map
[
1U
]
=
CCI500_CLUSTER1_SL_IFACE_IX
;
}
...
...
This diff is collapsed.
Click to expand it.
plat/renesas/rcar/include/rcar_def.h
View file @
7cc287de
...
...
@@ -147,31 +147,19 @@
#define RCAR_SYSCISCR U(0xE6180008)
/* Interrupt stat clear */
/* Product register */
#define RCAR_PRR U(0xFFF00044)
#define RCAR_PRODUCT_MASK U(0x00007F00)
#define RCAR_CUT_MASK U(0x000000FF)
#define RCAR_PRODUCT_H3 U(0x00004F00)
#define RCAR_PRODUCT_M3 U(0x00005200)
#define RCAR_PRODUCT_V3M U(0x00005400)
#define RCAR_PRODUCT_M3N U(0x00005500)
#define RCAR_PRODUCT_E3 U(0x00005700)
#define RCAR_PRODUCT_D3 U(0x00005800)
#define RCAR_CUT_VER10 U(0x00000000)
#define RCAR_CUT_VER11 U(0x00000001)
/* H3/M3N/E3 Ver.1.1 */
#define RCAR_M3_CUT_VER11 U(0x00000010)
/* M3 Ver.1.1/Ver.1.2 */
#define RCAR_CUT_VER20 U(0x00000010)
#define RCAR_CUT_VER30 U(0x00000020)
#define RCAR_MAJOR_MASK U(0x000000F0)
#define RCAR_MINOR_MASK U(0x0000000F)
#define R
CA
R_PRODUCT_SHIFT U(8)
#define
P
RR_PRODUCT_SHIFT U(8)
#define RCAR_MAJOR_SHIFT U(4)
#define RCAR_MINOR_SHIFT U(0)
#define RCAR_MAJOR_OFFSET U(1)
#define RCAR_M3_MINOR_OFFSET U(2)
#define R
CA
R_PRODUCT_H3_CUT10 (R
CA
R_PRODUCT_H3 | U(0x00))
/* 1.0 */
#define R
CA
R_PRODUCT_H3_CUT11 (R
CA
R_PRODUCT_H3 | U(0x01))
/* 1.1 */
#define R
CA
R_PRODUCT_H3_CUT20 (R
CA
R_PRODUCT_H3 | U(0x10))
/* 2.0 */
#define R
CA
R_PRODUCT_M3_CUT10 (R
CA
R_PRODUCT_M3 | U(0x00))
/* 1.0 */
#define R
CA
R_PRODUCT_M3_CUT11 (R
CA
R_PRODUCT_M3 | U(0x10))
#define
P
RR_PRODUCT_H3_CUT10 (
P
RR_PRODUCT_H3 | U(0x00))
/* 1.0 */
#define
P
RR_PRODUCT_H3_CUT11 (
P
RR_PRODUCT_H3 | U(0x01))
/* 1.1 */
#define
P
RR_PRODUCT_H3_CUT20 (
P
RR_PRODUCT_H3 | U(0x10))
/* 2.0 */
#define
P
RR_PRODUCT_M3_CUT10 (
P
RR_PRODUCT_M3 | U(0x00))
/* 1.0 */
#define
P
RR_PRODUCT_M3_CUT11 (
P
RR_PRODUCT_M3 | U(0x10))
#define PRR 0xFFF00044U
#define PRR_PRODUCT_MASK 0x00007F00U
#define PRR_CUT_MASK 0x000000FFU
...
...
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