diff options
| -rw-r--r-- | docs/plat/hikey.rst | 25 | ||||
| -rw-r--r-- | docs/plat/hikey960.rst | 24 | ||||
| -rw-r--r-- | drivers/arm/ccn/ccn.c | 2 | ||||
| -rw-r--r-- | drivers/arm/ccn/ccn_private.h | 8 | ||||
| -rw-r--r-- | include/drivers/arm/gic_v3.h | 10 | ||||
| -rw-r--r-- | include/lib/aarch64/arch.h | 4 | ||||
| -rw-r--r-- | include/lib/utils_def.h | 2 | ||||
| -rw-r--r-- | include/lib/xlat_tables/xlat_tables_v2.h | 4 | ||||
| -rw-r--r-- | lib/xlat_tables/aarch64/xlat_tables.c | 6 | ||||
| -rw-r--r-- | lib/xlat_tables_v2/aarch64/xlat_tables_arch.c | 6 | ||||
| -rw-r--r-- | plat/arm/board/fvp/include/platform_def.h | 2 | ||||
| -rw-r--r-- | plat/nvidia/tegra/common/tegra_gic.c | 6 | ||||
| -rw-r--r-- | plat/nvidia/tegra/soc/t186/drivers/mce/ari.c | 6 | ||||
| -rw-r--r-- | plat/socionext/uniphier/platform.mk | 8 |
14 files changed, 69 insertions, 44 deletions
diff --git a/docs/plat/hikey.rst b/docs/plat/hikey.rst index e194edee..1c481044 100644 --- a/docs/plat/hikey.rst +++ b/docs/plat/hikey.rst @@ -38,6 +38,16 @@ Build Procedure - Fetch all the above repositories into local host. Make all the repositories in the same ${BUILD\_PATH}. + .. code:: shell + + git clone https://github.com/ARM-software/arm-trusted-firmware -b integration + git clone https://github.com/OP-TEE/optee_os + git clone https://github.com/96boards-hikey/edk2 -b testing/hikey960_v2.5 + git clone https://github.com/96boards-hikey/OpenPlatformPkg -b testing/hikey960_v1.3.4 + git clone https://github.com/96boards-hikey/l-loader -b testing/hikey960_v1.2 + git clone https://git.linaro.org/uefi/uefi-tools + git clone https://github.com/96boards-hikey/atf-fastboot + - Create the symbol link to OpenPlatformPkg in edk2. .. code:: shell @@ -74,20 +84,15 @@ Build Procedure cd ${EDK2_DIR} # Build UEFI & ARM Trust Firmware ${UEFI_TOOLS_DIR}/uefi-build.sh -b ${BUILD_OPTION} -a ../arm-trusted-firmware -s ../optee_os hikey - # Generate l-loader.bin - cd ${BUILD_PATH}/l-loader - ln -sf ${EDK2_OUTPUT_DIR}/FV/bl1.bin - ln -sf ${BUILD_PATH}/atf-fastboot/build/hikey/${FASTBOOT_BUILD_OPTION}/bl1.bin fastboot.bin - arm-linux-gnueabihf-gcc -c -o start.o start.S - arm-linux-gnueabihf-ld -Bstatic -Tl-loader.lds -Ttext 0xf9800800 start.o -o loader - arm-linux-gnueabihf-objcopy -O binary loader temp - python gen_loader_hikey.py -o l-loader.bin --img_loader=temp --img_bl1=bl1.bin --img_ns_bl1u=fastboot.bin -- Generate partition table for aosp. The eMMC capacity is either 4GB or 8GB. Just change "aosp-4g" to "linux-4g" for debian. +- Generate l-loader.bin and partition table for aosp. The eMMC capacity is either 8GB or 4GB. Just change "aosp-8g" to "linux-8g" for debian. .. code:: shell - PTABLE=aosp-4g SECTOR_SIZE=512 bash -x generate_ptable.sh + cd ${BUILD_PATH}/l-loader + ln -sf ${EDK2_OUTPUT_DIR}/FV/bl1.bin + ln -sf ${BUILD_PATH}/atf-fastboot/build/hikey/${FASTBOOT_BUILD_OPTION}/bl1.bin fastboot.bin + make hikey PTABLE_LST=aosp-8g Setup Console ------------- diff --git a/docs/plat/hikey960.rst b/docs/plat/hikey960.rst index cd1880e1..8524b48a 100644 --- a/docs/plat/hikey960.rst +++ b/docs/plat/hikey960.rst @@ -35,6 +35,15 @@ Build Procedure - Fetch all the above 5 repositories into local host. Make all the repositories in the same ${BUILD\_PATH}. + .. code:: shell + + git clone https://github.com/ARM-software/arm-trusted-firmware -b integration + git clone https://github.com/OP-TEE/optee_os + git clone https://github.com/96boards-hikey/edk2 -b testing/hikey960_v2.5 + git clone https://github.com/96boards-hikey/OpenPlatformPkg -b testing/hikey960_v1.3.4 + git clone https://github.com/96boards-hikey/l-loader -b testing/hikey960_v1.2 + git clone https://git.linaro.org/uefi/uefi-tools + - Create the symbol link to OpenPlatformPkg in edk2. .. code:: shell @@ -66,19 +75,17 @@ Build Procedure cd ${EDK2_DIR} # Build UEFI & ARM Trust Firmware ${UEFI_TOOLS_DIR}/uefi-build.sh -b ${BUILD_OPTION} -a ../arm-trusted-firmware -s ../optee_os hikey960 - # Generate l-loader.bin - cd ${BUILD_PATH}/l-loader - ln -sf ${EDK2_OUTPUT_DIR}/FV/bl1.bin - ln -sf ${EDK2_OUTPUT_DIR}/FV/fip.bin - ln -sf ${EDK2_OUTPUT_DIR}/FV/BL33_AP_UEFI.fd - python gen_loader_hikey960.py -o l-loader.bin --img_bl1=bl1.bin --img_ns_bl1u=BL33_AP_UEFI.fd -- Generate partition table. +- Generate l-loader.bin and partition table. *Make sure that you're using the sgdisk in the l-loader directory.* .. code:: shell - PTABLE=aosp-32g SECTOR_SIZE=4096 SGDISK=./sgdisk bash -x generate_ptable.sh + cd ${BUILD_PATH}/l-loader + ln -sf ${EDK2_OUTPUT_DIR}/FV/bl1.bin + ln -sf ${EDK2_OUTPUT_DIR}/FV/fip.bin + ln -sf ${EDK2_OUTPUT_DIR}/FV/BL33_AP_UEFI.fd + make hikey960 Setup Console ------------- @@ -129,6 +136,7 @@ Boot UEFI in recovery mode $cd tools-images-hikey960 $ln -sf ${BUILD_PATH}/l-loader/l-loader.bin + $ln -sf ${BUILD_PATH}/l-loader/fip.bin - Prepare config file. diff --git a/drivers/arm/ccn/ccn.c b/drivers/arm/ccn/ccn.c index ec264d21..afb7d9d3 100644 --- a/drivers/arm/ccn/ccn.c +++ b/drivers/arm/ccn/ccn.c @@ -236,7 +236,7 @@ static unsigned long long ccn_master_to_rn_id_map(unsigned long long master_map) node_id = ccn_plat_desc->master_to_rn_id_map[iface_id]; /* Set the bit corresponding to this node ID */ - rn_id_map |= (1UL << node_id); + rn_id_map |= (1ULL << node_id); } return rn_id_map; diff --git a/drivers/arm/ccn/ccn_private.h b/drivers/arm/ccn/ccn_private.h index f71597c1..c17c2742 100644 --- a/drivers/arm/ccn/ccn_private.h +++ b/drivers/arm/ccn/ccn_private.h @@ -134,13 +134,13 @@ typedef enum rn_types { #define HNF_SAM_CTRL_SN1_ID_SHIFT 8 #define HNF_SAM_CTRL_SN2_ID_SHIFT 16 -#define HNF_SAM_CTRL_TAB0_MASK 0x3fUL +#define HNF_SAM_CTRL_TAB0_MASK ULL(0x3f) #define HNF_SAM_CTRL_TAB0_SHIFT 48 -#define HNF_SAM_CTRL_TAB1_MASK 0x3fUL +#define HNF_SAM_CTRL_TAB1_MASK ULL(0x3f) #define HNF_SAM_CTRL_TAB1_SHIFT 56 #define HNF_SAM_CTRL_3SN_ENB_SHIFT 32 -#define HNF_SAM_CTRL_3SN_ENB_MASK 0x01UL +#define HNF_SAM_CTRL_3SN_ENB_MASK ULL(0x01) /* * Macro to create a value suitable for programming into a HNF SAM Control @@ -169,7 +169,7 @@ typedef enum rn_types { #define FOR_EACH_BIT(bit_pos, bit_map) \ for (bit_pos = __builtin_ctzll(bit_map); \ bit_map; \ - bit_map &= ~(1UL << bit_pos), \ + bit_map &= ~(1ULL << (bit_pos)), \ bit_pos = __builtin_ctzll(bit_map)) /* diff --git a/include/drivers/arm/gic_v3.h b/include/drivers/arm/gic_v3.h index ee8f26be..02f9006f 100644 --- a/include/drivers/arm/gic_v3.h +++ b/include/drivers/arm/gic_v3.h @@ -26,17 +26,17 @@ #define GICR_WAKER 0x14 /* GICR_WAKER bit definitions */ -#define WAKER_CA (1UL << 2) -#define WAKER_PS (1UL << 1) +#define WAKER_CA (U(1) << 2) +#define WAKER_PS (U(1) << 1) /* GICR_TYPER bit definitions */ #define GICR_TYPER_AFF_SHIFT 32 #define GICR_TYPER_AFF_MASK 0xffffffff -#define GICR_TYPER_LAST (1UL << 4) +#define GICR_TYPER_LAST (U(1) << 4) /* GICv3 ICC_SRE register bit definitions*/ -#define ICC_SRE_EN (1UL << 3) -#define ICC_SRE_SRE (1UL << 0) +#define ICC_SRE_EN (U(1) << 3) +#define ICC_SRE_SRE (U(1) << 0) /******************************************************************************* * GICv3 defintions diff --git a/include/lib/aarch64/arch.h b/include/lib/aarch64/arch.h index e38a5307..f85e7897 100644 --- a/include/lib/aarch64/arch.h +++ b/include/lib/aarch64/arch.h @@ -312,7 +312,7 @@ /* * TCR defintions */ -#define TCR_EL3_RES1 ((1UL << 31) | (1UL << 23)) +#define TCR_EL3_RES1 ((U(1) << 31) | (U(1) << 23)) #define TCR_EL1_IPS_SHIFT U(32) #define TCR_EL3_PS_SHIFT U(16) @@ -348,6 +348,8 @@ #define TCR_SH_OUTER_SHAREABLE (U(0x2) << 12) #define TCR_SH_INNER_SHAREABLE (U(0x3) << 12) +#define TCR_EPD1_BIT (U(1) << 23) + #define MODE_SP_SHIFT U(0x0) #define MODE_SP_MASK U(0x1) #define MODE_SP_EL0 U(0x0) diff --git a/include/lib/utils_def.h b/include/lib/utils_def.h index 26ac4409..b397e302 100644 --- a/include/lib/utils_def.h +++ b/include/lib/utils_def.h @@ -16,7 +16,7 @@ #define SIZE_FROM_LOG2_WORDS(n) (4 << (n)) -#define BIT(nr) (1UL << (nr)) +#define BIT(nr) (1ULL << (nr)) #define MIN(x, y) __extension__ ({ \ __typeof__(x) _x = (x); \ diff --git a/include/lib/xlat_tables/xlat_tables_v2.h b/include/lib/xlat_tables/xlat_tables_v2.h index 2be43296..59f0955f 100644 --- a/include/lib/xlat_tables/xlat_tables_v2.h +++ b/include/lib/xlat_tables/xlat_tables_v2.h @@ -23,12 +23,12 @@ /* Helper macro to define entries for mmap_region_t. It allows to * re-map address mappings from 'pa' to 'va' for each region. */ -#define MAP_REGION(_pa, _va, _sz, _attr) ((mmap_region_t){ \ +#define MAP_REGION(_pa, _va, _sz, _attr) { \ .base_pa = (_pa), \ .base_va = (_va), \ .size = (_sz), \ .attr = (_attr), \ - }) + } /* * Shifts and masks to access fields of an mmap_attr_t diff --git a/lib/xlat_tables/aarch64/xlat_tables.c b/lib/xlat_tables/aarch64/xlat_tables.c index 2ddf8cba..28ae1f73 100644 --- a/lib/xlat_tables/aarch64/xlat_tables.c +++ b/lib/xlat_tables/aarch64/xlat_tables.c @@ -182,7 +182,11 @@ void init_xlat_tables(void) /* Define EL1 and EL3 variants of the function enabling the MMU */ DEFINE_ENABLE_MMU_EL(1, - (tcr_ps_bits << TCR_EL1_IPS_SHIFT), + /* + * TCR_EL1.EPD1: Disable translation table walk for addresses + * that are translated using TTBR1_EL1. + */ + TCR_EPD1_BIT | (tcr_ps_bits << TCR_EL1_IPS_SHIFT), tlbivmalle1) DEFINE_ENABLE_MMU_EL(3, TCR_EL3_RES1 | (tcr_ps_bits << TCR_EL3_PS_SHIFT), diff --git a/lib/xlat_tables_v2/aarch64/xlat_tables_arch.c b/lib/xlat_tables_v2/aarch64/xlat_tables_arch.c index 097e815c..760db928 100644 --- a/lib/xlat_tables_v2/aarch64/xlat_tables_arch.c +++ b/lib/xlat_tables_v2/aarch64/xlat_tables_arch.c @@ -256,7 +256,11 @@ void enable_mmu_arch(unsigned int flags, #if IMAGE_EL == 1 assert(IS_IN_EL(1)); - tcr |= tcr_ps_bits << TCR_EL1_IPS_SHIFT; + /* + * TCR_EL1.EPD1: Disable translation table walk for addresses that are + * translated using TTBR1_EL1. + */ + tcr |= TCR_EPD1_BIT | (tcr_ps_bits << TCR_EL1_IPS_SHIFT); enable_mmu_internal_el1(flags, mair, tcr, ttbr); #elif IMAGE_EL == 3 assert(IS_IN_EL(3)); diff --git a/plat/arm/board/fvp/include/platform_def.h b/plat/arm/board/fvp/include/platform_def.h index bf038e92..e4f94259 100644 --- a/plat/arm/board/fvp/include/platform_def.h +++ b/plat/arm/board/fvp/include/platform_def.h @@ -11,7 +11,7 @@ #include <board_arm_def.h> #include <common_def.h> #include <tzc400.h> -#include <utils.h> +#include <utils_def.h> #include <v2m_def.h> #include "../fvp_def.h" diff --git a/plat/nvidia/tegra/common/tegra_gic.c b/plat/nvidia/tegra/common/tegra_gic.c index e480e772..3ace554d 100644 --- a/plat/nvidia/tegra/common/tegra_gic.c +++ b/plat/nvidia/tegra/common/tegra_gic.c @@ -237,10 +237,10 @@ static uint32_t tegra_gic_get_pending_interrupt_id(void) id = gicc_read_hppir(TEGRA_GICC_BASE) & INT_ID_MASK; - if (id < 1022UL) { + if (id < 1022U) { ret = id; - } else if (id == 1023UL) { - ret = 0xFFFFFFFFUL; /* INTR_ID_UNAVAILABLE */ + } else if (id == 1023U) { + ret = 0xFFFFFFFFU; /* INTR_ID_UNAVAILABLE */ } else { /* * Find out which non-secure interrupt it is under the assumption that diff --git a/plat/nvidia/tegra/soc/t186/drivers/mce/ari.c b/plat/nvidia/tegra/soc/t186/drivers/mce/ari.c index d34f7e28..7eb6c6c8 100644 --- a/plat/nvidia/tegra/soc/t186/drivers/mce/ari.c +++ b/plat/nvidia/tegra/soc/t186/drivers/mce/ari.c @@ -435,7 +435,7 @@ uint64_t ari_read_write_mca(uint32_t ari_base, uint64_t cmd, uint64_t *data) ret = ari_request_wait(ari_base, 0U, TEGRA_ARI_MCA, (uint32_t)mca_arg_data, - (uint32_t)(mca_arg_data >> 32UL)); + (uint32_t)(mca_arg_data >> 32U)); if (ret == 0) { resp_lo = ari_get_response_low(ari_base); resp_hi = ari_get_response_high(ari_base); @@ -450,7 +450,7 @@ uint64_t ari_read_write_mca(uint32_t ari_base, uint64_t cmd, uint64_t *data) if (data != NULL) { resp_lo = ari_get_request_low(ari_base); resp_hi = ari_get_request_high(ari_base); - *data = ((uint64_t)resp_hi << 32UL) | + *data = ((uint64_t)resp_hi << 32U) | (uint64_t)resp_lo; } } @@ -513,7 +513,7 @@ int32_t ari_read_write_uncore_perfmon(uint32_t ari_base, uint64_t req, * to the uncore perfmon registers */ val = (req_cmd == UNCORE_PERFMON_CMD_WRITE) ? - (uint32_t)*data : 0UL; + (uint32_t)*data : 0U; ret = ari_request_wait(ari_base, 0U, TEGRA_ARI_PERFMON, val, (uint32_t)req); diff --git a/plat/socionext/uniphier/platform.mk b/plat/socionext/uniphier/platform.mk index 72792f8a..e6f510e0 100644 --- a/plat/socionext/uniphier/platform.mk +++ b/plat/socionext/uniphier/platform.mk @@ -21,6 +21,9 @@ ifeq ($(NEED_BL32),yes) $(eval $(call add_define,UNIPHIER_LOAD_BL32)) endif +# Libraries +include lib/xlat_tables_v2/xlat_tables.mk + PLAT_PATH := plat/socionext/uniphier PLAT_INCLUDES := -I$(PLAT_PATH)/include @@ -37,12 +40,11 @@ IO_SOURCES := drivers/io/io_block.c \ # common sources for BL1, BL2, BL31 PLAT_BL_COMMON_SOURCES += drivers/console/aarch64/console.S \ - lib/xlat_tables_v2/aarch64/xlat_tables_arch.c \ - lib/xlat_tables_v2/xlat_tables_internal.c \ $(PLAT_PATH)/uniphier_console.S \ $(PLAT_PATH)/uniphier_helpers.S \ $(PLAT_PATH)/uniphier_soc_info.c \ - $(PLAT_PATH)/uniphier_xlat_setup.c + $(PLAT_PATH)/uniphier_xlat_setup.c \ + ${XLAT_TABLES_LIB_SRCS} BL1_SOURCES += lib/cpus/aarch64/cortex_a53.S \ lib/cpus/aarch64/cortex_a72.S \ |
