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
0a15eb9c
Unverified
Commit
0a15eb9c
authored
Jul 05, 2018
by
Dimitris Papastamos
Committed by
GitHub
Jul 05, 2018
Browse files
Merge pull request #1465 from Andre-ARM/allwinner/h6-support
allwinner: Add H6 SoC support
parents
5775b9e7
0d0380c2
Changes
6
Hide whitespace changes
Inline
Side-by-side
docs/plat/allwinner.rst
View file @
0a15eb9c
...
...
@@ -22,12 +22,18 @@ bl31.bin can be either copied (or sym-linked) into U-Boot's root directory,
or the environment variable BL31 must contain the binary's path.
See the respective `U-Boot documentation`_ for more details.
To build:
To build
for machines with an A64 or H5 SoC
:
::
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_a64 DEBUG=1 bl31
To build for machines with an H6 SoC:
::
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_h6 DEBUG=1 bl31
.. _U-Boot documentation: http://git.denx.de/?p=u-boot.git;f=board/sunxi/README.sunxi64;hb=HEAD
Trusted OS dispatcher
...
...
maintainers.rst
View file @
0a15eb9c
...
...
@@ -171,6 +171,7 @@ Xilinx platform port
.. _rockchip-linux: https://github.com/rockchip-linux
.. _shawnguo2: https://github.com/shawnguo2
.. _sivadur: https://github.com/sivadur
.. _smaeul: https://github.com/smaeul
.. _soby-mathew: https://github.com/soby-mathew
.. _TonyXie06: https://github.com/TonyXie06
.. _vwadekar: https://github.com/vwadekar
plat/allwinner/common/sunxi_bl31_setup.c
View file @
0a15eb9c
...
...
@@ -74,6 +74,9 @@ void bl31_platform_setup(void)
case
0x1718
:
soc_name
=
"H5"
;
break
;
case
0x1728
:
soc_name
=
"H6"
;
break
;
default:
soc_name
=
"unknown"
;
break
;
...
...
plat/allwinner/sun50i_h6/include/sunxi_cpucfg.h
0 → 100644
View file @
0a15eb9c
/*
* Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef __SUNXI_CPUCFG_H__
#define __SUNXI_CPUCFG_H__
#include <sunxi_mmap.h>
/* c = cluster, n = core */
#define SUNXI_CPUCFG_CLS_CTRL_REG0(c) (SUNXI_CPUCFG_BASE + 0x0010 + (c) * 0x10)
#define SUNXI_CPUCFG_CLS_CTRL_REG1(c) (SUNXI_CPUCFG_BASE + 0x0014 + (c) * 0x10)
#define SUNXI_CPUCFG_CACHE_CFG_REG (SUNXI_CPUCFG_BASE + 0x0024)
#define SUNXI_CPUCFG_DBG_REG0 (SUNXI_CPUCFG_BASE + 0x00c0)
#define SUNXI_CPUCFG_RST_CTRL_REG(c) (SUNXI_CPUCFG_BASE + 0x0000 + (c) * 4)
#define SUNXI_CPUCFG_RVBAR_LO_REG(n) (SUNXI_CPUCFG_BASE + 0x0040 + (n) * 8)
#define SUNXI_CPUCFG_RVBAR_HI_REG(n) (SUNXI_CPUCFG_BASE + 0x0044 + (n) * 8)
#define SUNXI_POWERON_RST_REG(c) (SUNXI_R_CPUCFG_BASE + 0x0040 + (c) * 4)
#define SUNXI_POWEROFF_GATING_REG(c) (SUNXI_R_CPUCFG_BASE + 0x0044 + (c) * 4)
#define SUNXI_CPU_POWER_CLAMP_REG(c, n) (SUNXI_R_CPUCFG_BASE + 0x0050 + \
(c) * 0x10 + (n) * 4)
#endif
/* __SUNXI_CPUCFG_H__ */
plat/allwinner/sun50i_h6/include/sunxi_mmap.h
0 → 100644
View file @
0a15eb9c
/*
* Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef __SUNXI_MMAP_H__
#define __SUNXI_MMAP_H__
/* Memory regions */
#define SUNXI_ROM_BASE 0x00000000
#define SUNXI_ROM_SIZE 0x00010000
#define SUNXI_SRAM_BASE 0x00020000
#define SUNXI_SRAM_SIZE 0x00098000
#define SUNXI_SRAM_A1_BASE 0x00020000
#define SUNXI_SRAM_A1_SIZE 0x00008000
#define SUNXI_SRAM_A2_BASE 0x00104000
#define SUNXI_SRAM_A2_SIZE 0x00014000
#define SUNXI_SRAM_C_BASE 0x00028000
#define SUNXI_SRAM_C_SIZE 0x0001e000
#define SUNXI_DEV_BASE 0x01000000
#define SUNXI_DEV_SIZE 0x09000000
#define SUNXI_DRAM_BASE 0x40000000
#define SUNXI_DRAM_SIZE 0xc0000000
/* Memory-mapped devices */
#define SUNXI_SYSCON_BASE 0x03000000
#define SUNXI_CPUCFG_BASE 0x09010000
#define SUNXI_SID_BASE 0x03006000
#define SUNXI_DMA_BASE 0x03002000
#define SUNXI_MSGBOX_BASE 0x03003000
#define SUNXI_CCU_BASE 0x03010000
#define SUNXI_CCU_SEC_SWITCH_REG (SUNXI_CCU_BASE + 0xf00)
#define SUNXI_PIO_BASE 0x030b0000
#define SUNXI_TIMER_BASE 0x03009000
#define SUNXI_WDOG_BASE 0x030090a0
#define SUNXI_THS_BASE 0x05070400
#define SUNXI_UART0_BASE 0x05000000
#define SUNXI_UART1_BASE 0x05000400
#define SUNXI_UART2_BASE 0x05000800
#define SUNXI_UART3_BASE 0x05000c00
#define SUNXI_I2C0_BASE 0x05002000
#define SUNXI_I2C1_BASE 0x05002400
#define SUNXI_I2C2_BASE 0x05002800
#define SUNXI_I2C3_BASE 0x05002c00
#define SUNXI_SPI0_BASE 0x05010000
#define SUNXI_SPI1_BASE 0x05011000
#define SUNXI_SCU_BASE 0x03020000
#define SUNXI_GICD_BASE 0x03021000
#define SUNXI_GICC_BASE 0x03022000
#define SUNXI_R_TIMER_BASE 0x07020000
#define SUNXI_R_INTC_BASE 0x07021000
#define SUNXI_R_WDOG_BASE 0x07020400
#define SUNXI_R_PRCM_BASE 0x07010000
#define SUNXI_R_TWD_BASE 0x07020800
#define SUNXI_R_CPUCFG_BASE 0x07000400
#define SUNXI_R_I2C_BASE 0x07081400
#define SUNXI_R_UART_BASE 0x07080000
#define SUNXI_R_PIO_BASE 0x07022000
#endif
/* __SUNXI_MMAP_H__ */
plat/allwinner/sun50i_h6/platform.mk
0 → 100644
View file @
0a15eb9c
#
# Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
include
lib/xlat_tables_v2/xlat_tables.mk
AW_PLAT
:=
plat/allwinner
PLAT_INCLUDES
:=
-Iinclude
/plat/arm/common
\
-Iinclude
/plat/arm/common/aarch64
\
-I
${AW_PLAT}
/common/include
\
-I
${AW_PLAT}
/
${PLAT}
/include
PLAT_BL_COMMON_SOURCES
:=
drivers/console/
${ARCH}
/console.S
\
drivers/ti/uart/
${ARCH}
/16550_console.S
\
${XLAT_TABLES_LIB_SRCS}
\
${AW_PLAT}
/common/plat_helpers.S
\
${AW_PLAT}
/common/sunxi_common.c
BL31_SOURCES
+=
drivers/arm/gic/common/gic_common.c
\
drivers/arm/gic/v2/gicv2_helpers.c
\
drivers/arm/gic/v2/gicv2_main.c
\
drivers/delay_timer/delay_timer.c
\
drivers/delay_timer/generic_delay_timer.c
\
lib/cpus/
${ARCH}
/cortex_a53.S
\
plat/common/plat_gicv2.c
\
plat/common/plat_psci_common.c
\
${AW_PLAT}
/common/sunxi_bl31_setup.c
\
${AW_PLAT}
/common/sunxi_cpu_ops.c
\
${AW_PLAT}
/common/sunxi_pm.c
\
${AW_PLAT}
/common/sunxi_security.c
\
${AW_PLAT}
/common/sunxi_topology.c
# The bootloader is guaranteed to only run on CPU 0 by the boot ROM.
COLD_BOOT_SINGLE_CPU
:=
1
# Enable workarounds for Cortex-A53 errata. Allwinner uses at least r0p4.
ERRATA_A53_835769
:=
1
ERRATA_A53_843419
:=
1
ERRATA_A53_855873
:=
1
# Disable the PSCI platform compatibility layer.
ENABLE_PLAT_COMPAT
:=
0
MULTI_CONSOLE_API
:=
1
# Prohibit using deprecated interfaces. We rely on this for this platform.
ERROR_DEPRECATED
:=
1
# The reset vector can be changed for each CPU.
PROGRAMMABLE_RESET_ADDRESS
:=
1
# Allow mapping read-only data as execute-never.
SEPARATE_CODE_AND_RODATA
:=
1
# BL31 gets loaded alongside BL33 (U-Boot) by U-Boot's SPL
RESET_TO_BL31
:=
1
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