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
7cc287de
Commit
7cc287de
authored
Aug 20, 2019
by
Paul Beesley
Committed by
TrustedFirmware Code Review
Aug 20, 2019
Browse files
Merge "rcar_gen3: plat: Rename RCAR_PRODUCT_* to PRR_PRODUCT_*" into integration
parents
44f4bb24
df51d8fe
Changes
13
Hide whitespace changes
Inline
Side-by-side
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
;
...
...
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
,
...
...
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
;
...
...
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 */
}
}
...
...
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:
...
...
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
();
...
...
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
...
...
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
;
...
...
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:
...
...
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:
...
...
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
;
...
...
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
;
}
...
...
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
...
...
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