diff options
-rw-r--r-- | arch/arm/cpu/armv7/am33xx/ddr.c | 24 | ||||
-rw-r--r-- | arch/arm/mach-keystone/init.c | 2 | ||||
-rw-r--r-- | board/sandbox/README.sandbox | 3 | ||||
-rw-r--r-- | cmd/bootefi.c | 7 | ||||
-rw-r--r-- | cmd/lzmadec.c | 5 | ||||
-rw-r--r-- | cmd/misc.c | 21 | ||||
-rw-r--r-- | common/image-fit.c | 7 | ||||
-rw-r--r-- | configs/thunderx_88xx_defconfig | 1 | ||||
-rw-r--r-- | disk/part_efi.c | 10 | ||||
-rw-r--r-- | include/configs/sandbox.h | 5 | ||||
-rw-r--r-- | lib/hashtable.c | 10 | ||||
-rw-r--r-- | lib/rsa/rsa-sign.c | 6 | ||||
-rw-r--r-- | tools/dtoc/fdt_fallback.py | 6 | ||||
-rw-r--r-- | tools/image-host.c | 11 |
14 files changed, 79 insertions, 39 deletions
diff --git a/arch/arm/cpu/armv7/am33xx/ddr.c b/arch/arm/cpu/armv7/am33xx/ddr.c index 888cf1f..6acf30c 100644 --- a/arch/arm/cpu/armv7/am33xx/ddr.c +++ b/arch/arm/cpu/armv7/am33xx/ddr.c @@ -120,12 +120,15 @@ void config_sdram_emif4d5(const struct emif_regs *regs, int nr) writel(regs->sdram_config, &emif_reg[nr]->emif_sdram_config); writel(regs->sdram_config, &cstat->secure_emif_sdram_config); + + /* Wait 1ms because of L3 timeout error */ + udelay(1000); + writel(regs->ref_ctrl, &emif_reg[nr]->emif_sdram_ref_ctrl); writel(regs->ref_ctrl, &emif_reg[nr]->emif_sdram_ref_ctrl_shdw); /* Perform hardware leveling for DDR3 */ if (emif_sdram_type(regs->sdram_config) == EMIF_SDRAM_TYPE_DDR3) { - udelay(1000); writel(readl(&emif_reg[nr]->emif_ddr_ext_phy_ctrl_36) | 0x100, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_36); writel(readl(&emif_reg[nr]->emif_ddr_ext_phy_ctrl_36_shdw) | @@ -289,19 +292,14 @@ static void ext_phy_settings_hwlvl(const struct emif_regs *regs, int nr) void config_ddr_phy(const struct emif_regs *regs, int nr) { /* - * Disable initialization and refreshes for now until we - * finish programming EMIF regs. - * Also set time between rising edge of DDR_RESET to rising - * edge of DDR_CKE to > 500us per memory spec. + * Disable initialization and refreshes for now until we finish + * programming EMIF regs and set time between rising edge of + * DDR_RESET to rising edge of DDR_CKE to > 500us per memory spec. + * We currently hardcode a value based on a max expected frequency + * of 400MHz. */ -#ifndef CONFIG_AM43XX - setbits_le32(&emif_reg[nr]->emif_sdram_ref_ctrl, - EMIF_REG_INITREF_DIS_MASK); -#endif - if (regs->zq_config) - /* Set time between rising edge of DDR_RESET to rising - * edge of DDR_CKE to > 500us per memory spec. */ - writel(0x00003100, &emif_reg[nr]->emif_sdram_ref_ctrl); + writel(EMIF_REG_INITREF_DIS_MASK | 0x3100, + &emif_reg[nr]->emif_sdram_ref_ctrl); writel(regs->emif_ddr_phy_ctlr_1, &emif_reg[nr]->emif_ddr_phy_ctrl_1); diff --git a/arch/arm/mach-keystone/init.c b/arch/arm/mach-keystone/init.c index 3b6d5ef..6e5a1e1 100644 --- a/arch/arm/mach-keystone/init.c +++ b/arch/arm/mach-keystone/init.c @@ -101,9 +101,7 @@ static void msmc_k2hkle_common_setup(void) msmc_share_all_segments(KS2_MSMC_SEGMENT_C6X_0); msmc_share_all_segments(K2HKLE_MSMC_SEGMENT_ARM); msmc_share_all_segments(K2HKLE_MSMC_SEGMENT_NETCP); -#ifdef KS2_MSMC_SEGMENT_QM_PDSP msmc_share_all_segments(K2HKLE_MSMC_SEGMENT_QM_PDSP); -#endif msmc_share_all_segments(K2HKLE_MSMC_SEGMENT_PCIE0); msmc_share_all_segments(KS2_MSMC_SEGMENT_DEBUG); } diff --git a/board/sandbox/README.sandbox b/board/sandbox/README.sandbox index 9fe3bf1..ed820d3 100644 --- a/board/sandbox/README.sandbox +++ b/board/sandbox/README.sandbox @@ -44,6 +44,9 @@ Note: make sandbox_defconfig all NO_SDL=1 ./u-boot + If you are building on a 32-bit machine you may get errors from __ffs.h + about shifting more than the machine word size. Edit the config file + include/configs/sandbox.h and change CONFIG_SANDBOX_BITS_PER_LONG to 32. U-Boot will start on your computer, showing a sandbox emulation of the serial console: diff --git a/cmd/bootefi.c b/cmd/bootefi.c index 011f62c..d66892e 100644 --- a/cmd/bootefi.c +++ b/cmd/bootefi.c @@ -290,6 +290,11 @@ void efi_set_bootdev(const char *dev, const char *devnr, const char *path) /* Patch bootefi_image_path to the target file path */ memset(bootefi_image_path[0].str, 0, sizeof(bootefi_image_path[0].str)); - snprintf(devname, sizeof(devname), "%s", path); + if (strcmp(dev, "Net")) { + /* Add leading / to fs paths, because they're absolute */ + snprintf(devname, sizeof(devname), "/%s", path); + } else { + snprintf(devname, sizeof(devname), "%s", path); + } ascii2unicode(bootefi_image_path[0].str, devname); } diff --git a/cmd/lzmadec.c b/cmd/lzmadec.c index 1ad9ed6..c78df82 100644 --- a/cmd/lzmadec.c +++ b/cmd/lzmadec.c @@ -20,7 +20,7 @@ static int do_lzmadec(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { unsigned long src, dst; - unsigned long src_len = ~0UL, dst_len = ~0UL; + SizeT src_len = ~0UL, dst_len = ~0UL; int ret; switch (argc) { @@ -40,7 +40,8 @@ static int do_lzmadec(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) if (ret != SZ_OK) return 1; - printf("Uncompressed size: %ld = 0x%lX\n", src_len, src_len); + printf("Uncompressed size: %ld = %#lX\n", (ulong)src_len, + (ulong)src_len); setenv_hex("filesize", src_len); return 0; @@ -15,13 +15,31 @@ static int do_sleep(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { ulong start = get_timer(0); + ulong mdelay = 0; ulong delay; + char *frpart; if (argc != 2) return CMD_RET_USAGE; delay = simple_strtoul(argv[1], NULL, 10) * CONFIG_SYS_HZ; + frpart = strchr(argv[1], '.'); + + if (frpart) { + uint mult = CONFIG_SYS_HZ / 10; + for (frpart++; *frpart != '\0' && mult > 0; frpart++) { + if (*frpart < '0' || *frpart > '9') { + mdelay = 0; + break; + } + mdelay += (*frpart - '0') * mult; + mult /= 10; + } + } + + delay += mdelay; + while (get_timer(start) < delay) { if (ctrlc()) return (-1); @@ -36,7 +54,8 @@ U_BOOT_CMD( sleep , 2, 1, do_sleep, "delay execution for some time", "N\n" - " - delay execution for N seconds (N is _decimal_ !!!)" + " - delay execution for N seconds (N is _decimal_ and can be\n" + " fractional)" ); #ifdef CONFIG_CMD_TIMER diff --git a/common/image-fit.c b/common/image-fit.c index 6f920da..73ad34e 100644 --- a/common/image-fit.c +++ b/common/image-fit.c @@ -1684,12 +1684,13 @@ int fit_image_load(bootm_headers_t *images, ulong addr, bootstage_mark(bootstage_id + BOOTSTAGE_SUB_CHECK_ALL); type_ok = fit_image_check_type(fit, noffset, image_type) || - (image_type == IH_TYPE_KERNEL && - fit_image_check_type(fit, noffset, - IH_TYPE_KERNEL_NOLOAD)); + fit_image_check_type(fit, noffset, IH_TYPE_FIRMWARE) || + (image_type == IH_TYPE_KERNEL && + fit_image_check_type(fit, noffset, IH_TYPE_KERNEL_NOLOAD)); os_ok = image_type == IH_TYPE_FLATDT || IH_TYPE_FPGA || fit_image_check_os(fit, noffset, IH_OS_LINUX) || + fit_image_check_os(fit, noffset, IH_OS_U_BOOT) || fit_image_check_os(fit, noffset, IH_OS_OPENRTOS); /* diff --git a/configs/thunderx_88xx_defconfig b/configs/thunderx_88xx_defconfig index 4a8655f..28797f9 100644 --- a/configs/thunderx_88xx_defconfig +++ b/configs/thunderx_88xx_defconfig @@ -2,7 +2,6 @@ CONFIG_ARM=y CONFIG_TARGET_THUNDERX_88XX=y CONFIG_DM_SERIAL=y CONFIG_DEFAULT_DEVICE_TREE="thunderx-88xx" -CONFIG_SYS_EXTRA_OPTIONS="ARM64" CONFIG_BOOTDELAY=5 CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="ThunderX_88XX> " diff --git a/disk/part_efi.c b/disk/part_efi.c index 0af1e92..01f71be 100644 --- a/disk/part_efi.c +++ b/disk/part_efi.c @@ -886,9 +886,10 @@ static gpt_entry *alloc_read_gpt_entries(struct blk_desc *dev_desc, count = le32_to_cpu(pgpt_head->num_partition_entries) * le32_to_cpu(pgpt_head->sizeof_partition_entry); - debug("%s: count = %u * %u = %zu\n", __func__, + debug("%s: count = %u * %u = %lu\n", __func__, (u32) le32_to_cpu(pgpt_head->num_partition_entries), - (u32) le32_to_cpu(pgpt_head->sizeof_partition_entry), count); + (u32) le32_to_cpu(pgpt_head->sizeof_partition_entry), + (ulong)count); /* Allocate memory for PTE, remember to FREE */ if (count != 0) { @@ -897,9 +898,8 @@ static gpt_entry *alloc_read_gpt_entries(struct blk_desc *dev_desc, } if (count == 0 || pte == NULL) { - printf("%s: ERROR: Can't allocate 0x%zX " - "bytes for GPT Entries\n", - __func__, count); + printf("%s: ERROR: Can't allocate %#lX bytes for GPT Entries\n", + __func__, (ulong)count); return NULL; } diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h index 4de89f8..197d8bb 100644 --- a/include/configs/sandbox.h +++ b/include/configs/sandbox.h @@ -27,7 +27,10 @@ #define CONFIG_SYS_STDIO_DEREGISTER -/* Number of bits in a C 'long' on this architecture */ +/* + * Number of bits in a C 'long' on this architecture. Set this to 32 when + * building on a 32-bit machine. + */ #define CONFIG_SANDBOX_BITS_PER_LONG 64 #define CONFIG_LMB diff --git a/lib/hashtable.c b/lib/hashtable.c index 435e2a6..4e52b36 100644 --- a/lib/hashtable.c +++ b/lib/hashtable.c @@ -602,8 +602,8 @@ ssize_t hexport_r(struct hsearch_data *htab, const char sep, int flag, return (-1); } - debug("EXPORT table = %p, htab.size = %d, htab.filled = %d, " - "size = %zu\n", htab, htab->size, htab->filled, size); + debug("EXPORT table = %p, htab.size = %d, htab.filled = %d, size = %lu\n", + htab, htab->size, htab->filled, (ulong)size); /* * Pass 1: * search used entries, @@ -657,8 +657,8 @@ ssize_t hexport_r(struct hsearch_data *htab, const char sep, int flag, /* Check if the user supplied buffer size is sufficient */ if (size) { if (size < totlen + 1) { /* provided buffer too small */ - printf("Env export buffer too small: %zu, " - "but need %zu\n", size, totlen + 1); + printf("Env export buffer too small: %lu, but need %lu\n", + (ulong)size, (ulong)totlen + 1); __set_errno(ENOMEM); return (-1); } @@ -790,7 +790,7 @@ int himport_r(struct hsearch_data *htab, /* we allocate new space to make sure we can write to the array */ if ((data = malloc(size + 1)) == NULL) { - debug("himport_r: can't malloc %zu bytes\n", size + 1); + debug("himport_r: can't malloc %lu bytes\n", (ulong)size + 1); __set_errno(ENOMEM); return 0; } diff --git a/lib/rsa/rsa-sign.c b/lib/rsa/rsa-sign.c index d4a1a5e..c26f741 100644 --- a/lib/rsa/rsa-sign.c +++ b/lib/rsa/rsa-sign.c @@ -420,8 +420,10 @@ static int fdt_add_bignum(void *blob, int noffset, const char *prop_name, BN_rshift(num, num, 32); /* N = N/B */ } - /* We try signing with successively increasing size values, so this - * might fail several times */ + /* + * We try signing with successively increasing size values, so this + * might fail several times + */ ret = fdt_setprop(blob, noffset, prop_name, buf, size); if (ret) return -FDT_ERR_NOSPACE; diff --git a/tools/dtoc/fdt_fallback.py b/tools/dtoc/fdt_fallback.py index 14decf3..9ed11e4 100644 --- a/tools/dtoc/fdt_fallback.py +++ b/tools/dtoc/fdt_fallback.py @@ -71,6 +71,12 @@ class Prop: if type(newprop.value) == list and type(self.value) != list: self.value = newprop.value + if type(self.value) == list and len(newprop.value) > len(self.value): + val = fdt_util.GetEmpty(self.type) + while len(self.value) < len(newprop.value): + self.value.append(val) + + class Node: """A device tree node diff --git a/tools/image-host.c b/tools/image-host.c index 399ec94..1104695 100644 --- a/tools/image-host.c +++ b/tools/image-host.c @@ -238,11 +238,16 @@ static int fit_image_process_sig(const char *keydir, void *keydest, /* Get keyname again, as FDT has changed and invalidated our pointer */ info.keyname = fdt_getprop(fit, noffset, "key-name-hint", NULL); - ret = info.algo->add_verify_data(&info, keydest); + if (keydest) + ret = info.algo->add_verify_data(&info, keydest); + else + return -1; - /* Write the public key into the supplied FDT file; this might fail + /* + * Write the public key into the supplied FDT file; this might fail * several times, since we try signing with successively increasing - * size values */ + * size values + */ if (keydest && ret) return ret; |