Merge branch '2020-05-06-master-imports'

- ARM Juno updates
- Assorted bugfixes
This commit is contained in:
Tom Rini 2020-05-07 09:02:28 -04:00
commit 69bf66ad8c
17 changed files with 199 additions and 90 deletions

View file

@ -1162,6 +1162,17 @@ config TARGET_VEXPRESS64_JUNO
bool "Support Versatile Express Juno Development Platform" bool "Support Versatile Express Juno Development Platform"
select ARM64 select ARM64
select PL01X_SERIAL select PL01X_SERIAL
select DM
select OF_CONTROL
select OF_BOARD
select CLK
select DM_SERIAL
select ARM_PSCI_FW
select PSCI_RESET
select DM
select BLK
select USB
select DM_USB
config TARGET_LS2080A_EMU config TARGET_LS2080A_EMU
bool "Support ls2080a_emu" bool "Support ls2080a_emu"

View file

@ -75,6 +75,15 @@ static unsigned long noncached_start;
static unsigned long noncached_end; static unsigned long noncached_end;
static unsigned long noncached_next; static unsigned long noncached_next;
void noncached_set_region(void)
{
#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
mmu_set_region_dcache_behaviour(noncached_start,
noncached_end - noncached_start,
DCACHE_OFF);
#endif
}
void noncached_init(void) void noncached_init(void)
{ {
phys_addr_t start, end; phys_addr_t start, end;
@ -91,9 +100,7 @@ void noncached_init(void)
noncached_end = end; noncached_end = end;
noncached_next = start; noncached_next = start;
#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) noncached_set_region();
mmu_set_region_dcache_behaviour(noncached_start, size, DCACHE_OFF);
#endif
} }
phys_addr_t noncached_alloc(size_t size, size_t align) phys_addr_t noncached_alloc(size_t size, size_t align)

View file

@ -9,4 +9,11 @@ config SYS_VENDOR
config SYS_CONFIG_NAME config SYS_CONFIG_NAME
default "vexpress_aemv8a" default "vexpress_aemv8a"
config JUNO_DTB_PART
string "NOR flash partition holding DTB"
default "board.dtb"
help
The ARM partition name in the NOR flash memory holding the
device tree blob to configure U-Boot.
endif endif

View file

@ -82,9 +82,64 @@ int dram_init_banksize(void)
return 0; return 0;
} }
/* #ifdef CONFIG_OF_BOARD
* Board specific reset that is system reset. #define JUNO_FLASH_SEC_SIZE (256 * 1024)
*/ static phys_addr_t find_dtb_in_nor_flash(const char *partname)
{
phys_addr_t sector = CONFIG_SYS_FLASH_BASE;
int i;
for (i = 0;
i < CONFIG_SYS_MAX_FLASH_SECT;
i++, sector += JUNO_FLASH_SEC_SIZE) {
int len = strlen(partname) + 1;
int offs;
phys_addr_t imginfo;
u32 reg;
reg = readl(sector + JUNO_FLASH_SEC_SIZE - 0x04);
/* This makes up the string "HSLFTOOF" flash footer */
if (reg != 0x464F4F54U)
continue;
reg = readl(sector + JUNO_FLASH_SEC_SIZE - 0x08);
if (reg != 0x464C5348U)
continue;
for (offs = 0; offs < 32; offs += 4, len -= 4) {
reg = readl(sector + JUNO_FLASH_SEC_SIZE - 0x30 + offs);
if (strncmp(partname + offs, (char *)&reg,
len > 4 ? 4 : len))
break;
if (len > 4)
continue;
reg = readl(sector + JUNO_FLASH_SEC_SIZE - 0x10);
imginfo = sector + JUNO_FLASH_SEC_SIZE - 0x30 - reg;
reg = readl(imginfo + 0x54);
return CONFIG_SYS_FLASH_BASE +
reg * JUNO_FLASH_SEC_SIZE;
}
}
printf("No DTB found\n");
return ~0;
}
void *board_fdt_blob_setup(void)
{
phys_addr_t fdt_rom_addr = find_dtb_in_nor_flash(CONFIG_JUNO_DTB_PART);
if (fdt_rom_addr == ~0UL)
return NULL;
return (void *)fdt_rom_addr;
}
#endif
/* Actual reset is done via PSCI. */
void reset_cpu(ulong addr) void reset_cpu(ulong addr)
{ {
} }

View file

@ -365,6 +365,34 @@ cleanup:
return NULL; return NULL;
} }
static void menu_display_statusline(struct menu *m)
{
struct bootmenu_entry *entry;
struct bootmenu_data *menu;
if (menu_default_choice(m, (void *)&entry) < 0)
return;
menu = entry->menu;
printf(ANSI_CURSOR_POSITION, 1, 1);
puts(ANSI_CLEAR_LINE);
printf(ANSI_CURSOR_POSITION, 2, 1);
puts(" *** U-Boot Boot Menu ***");
puts(ANSI_CLEAR_LINE_TO_END);
printf(ANSI_CURSOR_POSITION, 3, 1);
puts(ANSI_CLEAR_LINE);
/* First 3 lines are bootmenu header + 2 empty lines between entries */
printf(ANSI_CURSOR_POSITION, menu->count + 5, 1);
puts(ANSI_CLEAR_LINE);
printf(ANSI_CURSOR_POSITION, menu->count + 6, 1);
puts(" Press UP/DOWN to move, ENTER to select");
puts(ANSI_CLEAR_LINE_TO_END);
printf(ANSI_CURSOR_POSITION, menu->count + 7, 1);
puts(ANSI_CLEAR_LINE);
}
static void bootmenu_show(int delay) static void bootmenu_show(int delay)
{ {
int init = 0; int init = 0;
@ -396,8 +424,9 @@ static void bootmenu_show(int delay)
if (!bootmenu) if (!bootmenu)
return; return;
menu = menu_create(NULL, bootmenu->delay, 1, bootmenu_print_entry, menu = menu_create(NULL, bootmenu->delay, 1, menu_display_statusline,
bootmenu_choice_entry, bootmenu); bootmenu_print_entry, bootmenu_choice_entry,
bootmenu);
if (!menu) { if (!menu) {
bootmenu_destroy(bootmenu); bootmenu_destroy(bootmenu);
return; return;
@ -445,34 +474,6 @@ cleanup:
#endif #endif
} }
void menu_display_statusline(struct menu *m)
{
struct bootmenu_entry *entry;
struct bootmenu_data *menu;
if (menu_default_choice(m, (void *)&entry) < 0)
return;
menu = entry->menu;
printf(ANSI_CURSOR_POSITION, 1, 1);
puts(ANSI_CLEAR_LINE);
printf(ANSI_CURSOR_POSITION, 2, 1);
puts(" *** U-Boot Boot Menu ***");
puts(ANSI_CLEAR_LINE_TO_END);
printf(ANSI_CURSOR_POSITION, 3, 1);
puts(ANSI_CLEAR_LINE);
/* First 3 lines are bootmenu header + 2 empty lines between entries */
printf(ANSI_CURSOR_POSITION, menu->count + 5, 1);
puts(ANSI_CLEAR_LINE);
printf(ANSI_CURSOR_POSITION, menu->count + 6, 1);
puts(" Press UP/DOWN to move, ENTER to select");
puts(ANSI_CLEAR_LINE_TO_END);
printf(ANSI_CURSOR_POSITION, menu->count + 7, 1);
puts(ANSI_CLEAR_LINE);
}
#ifdef CONFIG_AUTOBOOT_MENU_SHOW #ifdef CONFIG_AUTOBOOT_MENU_SHOW
int menu_show(int bootdelay) int menu_show(int bootdelay)
{ {

View file

@ -20,6 +20,10 @@ void __weak invalidate_icache_all(void)
puts("No arch specific invalidate_icache_all available!\n"); puts("No arch specific invalidate_icache_all available!\n");
} }
__weak void noncached_set_region(void)
{
}
static int do_icache(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) static int do_icache(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{ {
switch (argc) { switch (argc) {
@ -64,6 +68,7 @@ static int do_dcache(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
break; break;
case 1: case 1:
dcache_enable(); dcache_enable();
noncached_set_region();
break; break;
case 2: case 2:
flush_dcache_all(); flush_dcache_all();

View file

@ -1237,7 +1237,7 @@ static struct menu *pxe_menu_to_menu(struct pxe_menu *cfg)
* Create a menu and add items for all the labels. * Create a menu and add items for all the labels.
*/ */
m = menu_create(cfg->title, DIV_ROUND_UP(cfg->timeout, 10), m = menu_create(cfg->title, DIV_ROUND_UP(cfg->timeout, 10),
cfg->prompt, label_print, NULL, NULL); cfg->prompt, NULL, label_print, NULL, NULL);
if (!m) if (!m)
return NULL; return NULL;

View file

@ -36,6 +36,7 @@ struct menu {
int timeout; int timeout;
char *title; char *title;
int prompt; int prompt;
void (*display_statusline)(struct menu *);
void (*item_data_print)(void *); void (*item_data_print)(void *);
char *(*item_choice)(void *); char *(*item_choice)(void *);
void *item_choice_data; void *item_choice_data;
@ -106,10 +107,6 @@ static inline void *menu_item_destroy(struct menu *m,
return NULL; return NULL;
} }
__weak void menu_display_statusline(struct menu *m)
{
}
/* /*
* Display a menu so the user can make a choice of an item. First display its * Display a menu so the user can make a choice of an item. First display its
* title, if any, and then each item in the menu. * title, if any, and then each item in the menu.
@ -120,7 +117,8 @@ static inline void menu_display(struct menu *m)
puts(m->title); puts(m->title);
putc('\n'); putc('\n');
} }
menu_display_statusline(m); if (m->display_statusline)
m->display_statusline(m);
menu_items_iter(m, menu_item_print, NULL); menu_items_iter(m, menu_item_print, NULL);
} }
@ -344,6 +342,9 @@ int menu_item_add(struct menu *m, char *item_key, void *item_data)
* timeout. If 1, the user will be prompted for input regardless of the value * timeout. If 1, the user will be prompted for input regardless of the value
* of timeout. * of timeout.
* *
* display_statusline - If not NULL, will be called to show a statusline when
* the menu is displayed.
*
* item_data_print - If not NULL, will be called for each item when the menu * item_data_print - If not NULL, will be called for each item when the menu
* is displayed, with the pointer to the item's data passed as the argument. * is displayed, with the pointer to the item's data passed as the argument.
* If NULL, each item's key will be printed instead. Since an item's key is * If NULL, each item's key will be printed instead. Since an item's key is
@ -360,6 +361,7 @@ int menu_item_add(struct menu *m, char *item_key, void *item_data)
* insufficient memory available to create the menu. * insufficient memory available to create the menu.
*/ */
struct menu *menu_create(char *title, int timeout, int prompt, struct menu *menu_create(char *title, int timeout, int prompt,
void (*display_statusline)(struct menu *),
void (*item_data_print)(void *), void (*item_data_print)(void *),
char *(*item_choice)(void *), char *(*item_choice)(void *),
void *item_choice_data) void *item_choice_data)
@ -374,6 +376,7 @@ struct menu *menu_create(char *title, int timeout, int prompt,
m->default_item = NULL; m->default_item = NULL;
m->prompt = prompt; m->prompt = prompt;
m->timeout = timeout; m->timeout = timeout;
m->display_statusline = display_statusline;
m->item_data_print = item_data_print; m->item_data_print = item_data_print;
m->item_choice = item_choice; m->item_choice = item_choice;
m->item_choice_data = item_choice_data; m->item_choice_data = item_choice_data;

View file

@ -10,6 +10,7 @@ CONFIG_DISTRO_DEFAULTS=y
CONFIG_BOOTDELAY=1 CONFIG_BOOTDELAY=1
CONFIG_USE_BOOTARGS=y CONFIG_USE_BOOTARGS=y
CONFIG_BOOTARGS="console=ttyAMA0,115200n8 root=/dev/sda2 rw rootwait earlycon=pl011,0x7ff80000 debug user_debug=31 androidboot.hardware=juno loglevel=9" CONFIG_BOOTARGS="console=ttyAMA0,115200n8 root=/dev/sda2 rw rootwait earlycon=pl011,0x7ff80000 debug user_debug=31 androidboot.hardware=juno loglevel=9"
CONFIG_OF_BOARD=y
# CONFIG_USE_BOOTCOMMAND is not set # CONFIG_USE_BOOTCOMMAND is not set
# CONFIG_DISPLAY_CPUINFO is not set # CONFIG_DISPLAY_CPUINFO is not set
# CONFIG_DISPLAY_BOARDINFO is not set # CONFIG_DISPLAY_BOARDINFO is not set
@ -26,11 +27,11 @@ CONFIG_CMD_ARMFLASH=y
CONFIG_CMD_CACHE=y CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set # CONFIG_CMD_MISC is not set
CONFIG_CMD_UBI=y CONFIG_CMD_UBI=y
CONFIG_CMD_USB=y
# CONFIG_ISO_PARTITION is not set # CONFIG_ISO_PARTITION is not set
# CONFIG_EFI_PARTITION is not set # CONFIG_EFI_PARTITION is not set
CONFIG_ENV_IS_IN_FLASH=y CONFIG_ENV_IS_IN_FLASH=y
CONFIG_ENV_ADDR=0xBFC0000 CONFIG_ENV_ADDR=0xBFC0000
CONFIG_DM=y
# CONFIG_MMC is not set # CONFIG_MMC is not set
CONFIG_MTD=y CONFIG_MTD=y
CONFIG_MTD_NOR_FLASH=y CONFIG_MTD_NOR_FLASH=y
@ -41,5 +42,7 @@ CONFIG_SYS_FLASH_CFI=y
CONFIG_SMC911X=y CONFIG_SMC911X=y
CONFIG_SMC911X_BASE=0x018000000 CONFIG_SMC911X_BASE=0x018000000
CONFIG_SMC911X_32_BIT=y CONFIG_SMC911X_32_BIT=y
CONFIG_DM_SERIAL=y CONFIG_USB_EHCI_HCD=y
CONFIG_OF_LIBFDT=y CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_GENERIC=y

View file

@ -36,6 +36,8 @@ static void l2c310_of_parse_and_init(struct udevice *dev)
if (dev_read_bool(dev, "arm,shared-override")) if (dev_read_bool(dev, "arm,shared-override"))
saved_reg |= L310_SHARED_ATT_OVERRIDE_ENABLE; saved_reg |= L310_SHARED_ATT_OVERRIDE_ENABLE;
writel(saved_reg, &regs->pl310_aux_ctrl);
saved_reg = readl(&regs->pl310_tag_latency_ctrl); saved_reg = readl(&regs->pl310_tag_latency_ctrl);
if (!dev_read_u32_array(dev, "arm,tag-latency", tag, 3)) if (!dev_read_u32_array(dev, "arm,tag-latency", tag, 3))
saved_reg |= L310_LATENCY_CTRL_RD(tag[0] - 1) | saved_reg |= L310_LATENCY_CTRL_RD(tag[0] - 1) |

View file

@ -11,7 +11,10 @@
/* Simple U-Boot driver for the PrimeCell PL010/PL011 UARTs */ /* Simple U-Boot driver for the PrimeCell PL010/PL011 UARTs */
#include <common.h> #include <common.h>
/* For get_bus_freq() */
#include <clock_legacy.h>
#include <dm.h> #include <dm.h>
#include <clk.h>
#include <errno.h> #include <errno.h>
#include <watchdog.h> #include <watchdog.h>
#include <asm/io.h> #include <asm/io.h>
@ -149,21 +152,24 @@ static int pl01x_generic_setbrg(struct pl01x_regs *regs, enum pl01x_type type,
unsigned int remainder; unsigned int remainder;
unsigned int fraction; unsigned int fraction;
/* /* Without a valid clock rate we cannot set up the baudrate. */
* Set baud rate if (clock) {
* /*
* IBRD = UART_CLK / (16 * BAUD_RATE) * Set baud rate
* FBRD = RND((64 * MOD(UART_CLK,(16 * BAUD_RATE))) *
* / (16 * BAUD_RATE)) * IBRD = UART_CLK / (16 * BAUD_RATE)
*/ * FBRD = RND((64 * MOD(UART_CLK,(16 * BAUD_RATE)))
temp = 16 * baudrate; * / (16 * BAUD_RATE))
divider = clock / temp; */
remainder = clock % temp; temp = 16 * baudrate;
temp = (8 * remainder) / baudrate; divider = clock / temp;
fraction = (temp >> 1) + (temp & 1); remainder = clock % temp;
temp = (8 * remainder) / baudrate;
fraction = (temp >> 1) + (temp & 1);
writel(divider, &regs->pl011_ibrd); writel(divider, &regs->pl011_ibrd);
writel(fraction, &regs->pl011_fbrd); writel(fraction, &regs->pl011_fbrd);
}
pl011_set_line_control(regs); pl011_set_line_control(regs);
/* Finally, enable the UART */ /* Finally, enable the UART */
@ -337,17 +343,28 @@ static const struct udevice_id pl01x_serial_id[] ={
{} {}
}; };
#ifndef CONFIG_PL011_CLOCK
#define CONFIG_PL011_CLOCK 0
#endif
int pl01x_serial_ofdata_to_platdata(struct udevice *dev) int pl01x_serial_ofdata_to_platdata(struct udevice *dev)
{ {
struct pl01x_serial_platdata *plat = dev_get_platdata(dev); struct pl01x_serial_platdata *plat = dev_get_platdata(dev);
struct clk clk;
fdt_addr_t addr; fdt_addr_t addr;
int ret;
addr = devfdt_get_addr(dev); addr = devfdt_get_addr(dev);
if (addr == FDT_ADDR_T_NONE) if (addr == FDT_ADDR_T_NONE)
return -EINVAL; return -EINVAL;
plat->base = addr; plat->base = addr;
plat->clock = dev_read_u32_default(dev, "clock", 1); plat->clock = dev_read_u32_default(dev, "clock", CONFIG_PL011_CLOCK);
ret = clk_get_by_index(dev, 0, &clk);
if (!ret) {
clk_enable(&clk);
plat->clock = clk_get_rate(&clk);
}
plat->type = dev_get_driver_data(dev); plat->type = dev_get_driver_data(dev);
plat->skip_init = dev_read_bool(dev, "skip-init"); plat->skip_init = dev_read_bool(dev, "skip-init");

View file

@ -7,12 +7,6 @@
#ifndef __VEXPRESS_AEMV8A_H #ifndef __VEXPRESS_AEMV8A_H
#define __VEXPRESS_AEMV8A_H #define __VEXPRESS_AEMV8A_H
#ifdef CONFIG_TARGET_VEXPRESS64_BASE_FVP
#ifndef CONFIG_SEMIHOSTING
#error CONFIG_TARGET_VEXPRESS64_BASE_FVP requires CONFIG_SEMIHOSTING
#endif
#endif
#define CONFIG_REMAKE_ELF #define CONFIG_REMAKE_ELF
/* Link Definitions */ /* Link Definitions */
@ -102,7 +96,7 @@
/* PL011 Serial Configuration */ /* PL011 Serial Configuration */
#ifdef CONFIG_TARGET_VEXPRESS64_JUNO #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
#define CONFIG_PL011_CLOCK 7273800 #define CONFIG_PL011_CLOCK 7372800
#else #else
#define CONFIG_PL011_CLOCK 24000000 #define CONFIG_PL011_CLOCK 24000000
#endif #endif
@ -138,35 +132,33 @@
#define CONFIG_EXTRA_ENV_SETTINGS \ #define CONFIG_EXTRA_ENV_SETTINGS \
"kernel_name=norkern\0" \ "kernel_name=norkern\0" \
"kernel_alt_name=Image\0" \ "kernel_alt_name=Image\0" \
"kernel_addr=0x80080000\0" \ "kernel_addr_r=0x80080000\0" \
"initrd_name=ramdisk.img\0" \ "ramdisk_name=ramdisk.img\0" \
"initrd_addr=0x84000000\0" \ "ramdisk_addr_r=0x88000000\0" \
"fdtfile=board.dtb\0" \ "fdtfile=board.dtb\0" \
"fdt_alt_name=juno\0" \ "fdt_alt_name=juno\0" \
"fdt_addr=0x83000000\0" \ "fdt_addr_r=0x80000000\0" \
"fdt_high=0xffffffffffffffff\0" \
"initrd_high=0xffffffffffffffff\0" \
/* Copy the kernel and FDT to DRAM memory and boot */ /* Copy the kernel and FDT to DRAM memory and boot */
#define CONFIG_BOOTCOMMAND "afs load ${kernel_name} ${kernel_addr} ; " \ #define CONFIG_BOOTCOMMAND "afs load ${kernel_name} ${kernel_addr_r} ;"\
"if test $? -eq 1; then "\ "if test $? -eq 1; then "\
" echo Loading ${kernel_alt_name} instead of "\ " echo Loading ${kernel_alt_name} instead of "\
"${kernel_name}; "\ "${kernel_name}; "\
" afs load ${kernel_alt_name} ${kernel_addr};"\ " afs load ${kernel_alt_name} ${kernel_addr_r};"\
"fi ; "\ "fi ; "\
"afs load ${fdtfile} ${fdt_addr} ; " \ "afs load ${fdtfile} ${fdt_addr_r} ;"\
"if test $? -eq 1; then "\ "if test $? -eq 1; then "\
" echo Loading ${fdt_alt_name} instead of "\ " echo Loading ${fdt_alt_name} instead of "\
"${fdtfile}; "\ "${fdtfile}; "\
" afs load ${fdt_alt_name} ${fdt_addr}; "\ " afs load ${fdt_alt_name} ${fdt_addr_r}; "\
"fi ; "\ "fi ; "\
"fdt addr ${fdt_addr}; fdt resize; " \ "fdt addr ${fdt_addr_r}; fdt resize; " \
"if afs load ${initrd_name} ${initrd_addr} ; "\ "if afs load ${ramdisk_name} ${ramdisk_addr_r} ; "\
"then "\ "then "\
" setenv initrd_param ${initrd_addr}; "\ " setenv ramdisk_param ${ramdisk_addr_r}; "\
" else setenv initrd_param -; "\ " else setenv ramdisk_param -; "\
"fi ; " \ "fi ; " \
"booti ${kernel_addr} ${initrd_param} ${fdt_addr}" "booti ${kernel_addr_r} ${ramdisk_param} ${fdt_addr_r}"
#elif CONFIG_TARGET_VEXPRESS64_BASE_FVP #elif CONFIG_TARGET_VEXPRESS64_BASE_FVP
@ -221,6 +213,11 @@
#define CONFIG_SYS_FLASH_CFI_WIDTH FLASH_CFI_32BIT #define CONFIG_SYS_FLASH_CFI_WIDTH FLASH_CFI_32BIT
#define CONFIG_SYS_MAX_FLASH_BANKS 1 #define CONFIG_SYS_MAX_FLASH_BANKS 1
#ifdef CONFIG_USB_EHCI_HCD
#define CONFIG_USB_OHCI_NEW
#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 1
#endif
#define CONFIG_SYS_FLASH_EMPTY_INFO /* flinfo indicates empty blocks */ #define CONFIG_SYS_FLASH_EMPTY_INFO /* flinfo indicates empty blocks */
#define FLASH_MAX_SECTOR_SIZE 0x00040000 #define FLASH_MAX_SECTOR_SIZE 0x00040000

View file

@ -7,7 +7,7 @@
#ifndef __EEPROM_LEGACY_H #ifndef __EEPROM_LEGACY_H
#define __EEPROM_LEGACY_H #define __EEPROM_LEGACY_H
#ifdef CONFIG_CMD_EEPROM #if defined(CONFIG_CMD_EEPROM) || defined(CONFIG_ENV_IS_IN_EEPROM)
void eeprom_init(int bus); void eeprom_init(int bus);
int eeprom_read(uint dev_addr, uint offset, uchar *buffer, uint cnt); int eeprom_read(uint dev_addr, uint offset, uchar *buffer, uint cnt);
int eeprom_write(uint dev_addr, uint offset, uchar *buffer, uint cnt); int eeprom_write(uint dev_addr, uint offset, uchar *buffer, uint cnt);
@ -17,8 +17,8 @@ int eeprom_write(uint dev_addr, uint offset, uchar *buffer, uint cnt);
* some macros here so we don't have to touch every one of those uses * some macros here so we don't have to touch every one of those uses
*/ */
#define eeprom_init(bus) #define eeprom_init(bus)
#define eeprom_read(dev_addr, offset, buffer, cnt) ((void)-ENOSYS) #define eeprom_read(dev_addr, offset, buffer, cnt) (-ENOSYS)
#define eeprom_write(dev_addr, offset, buffer, cnt) ((void)-ENOSYS) #define eeprom_write(dev_addr, offset, buffer, cnt) (-ENOSYS)
#endif #endif
#if !defined(CONFIG_ENV_EEPROM_IS_ON_I2C) && defined(CONFIG_SYS_I2C_EEPROM_ADDR) #if !defined(CONFIG_ENV_EEPROM_IS_ON_I2C) && defined(CONFIG_SYS_I2C_EEPROM_ADDR)

View file

@ -9,6 +9,7 @@
struct menu; struct menu;
struct menu *menu_create(char *title, int timeout, int prompt, struct menu *menu_create(char *title, int timeout, int prompt,
void (*display_statusline)(struct menu *),
void (*item_data_print)(void *), void (*item_data_print)(void *),
char *(*item_choice)(void *), char *(*item_choice)(void *),
void *item_choice_data); void *item_choice_data);
@ -16,7 +17,6 @@ int menu_default_set(struct menu *m, char *item_key);
int menu_get_choice(struct menu *m, void **choice); int menu_get_choice(struct menu *m, void **choice);
int menu_item_add(struct menu *m, char *item_key, void *item_data); int menu_item_add(struct menu *m, char *item_key, void *item_data);
int menu_destroy(struct menu *m); int menu_destroy(struct menu *m);
void menu_display_statusline(struct menu *m);
int menu_default_choice(struct menu *m, void **choice); int menu_default_choice(struct menu *m, void **choice);
/** /**

View file

@ -262,8 +262,8 @@ int rsa_mod_exp_sw(const uint8_t *sig, uint32_t sig_len,
if (!prop->public_exponent) if (!prop->public_exponent)
key.exponent = RSA_DEFAULT_PUBEXP; key.exponent = RSA_DEFAULT_PUBEXP;
else else
key.exponent = rsa_convert_big_endian((uint32_t *)&key.exponent,
fdt64_to_cpu(*((uint64_t *)(prop->public_exponent))); prop->public_exponent, 2);
if (!key.len || !prop->modulus || !prop->rr) { if (!key.len || !prop->modulus || !prop->rr) {
debug("%s: Missing RSA key info", __func__); debug("%s: Missing RSA key info", __func__);

View file

@ -35,7 +35,7 @@ cp ${env_obj_file_path} ${ENV_OBJ_FILE_COPY}
${OBJCOPY} -O binary -j ".rodata.default_environment" ${ENV_OBJ_FILE_COPY} ${OBJCOPY} -O binary -j ".rodata.default_environment" ${ENV_OBJ_FILE_COPY}
# Replace default '\0' with '\n' and sort entries # Replace default '\0' with '\n' and sort entries
tr '\0' '\n' < ${ENV_OBJ_FILE_COPY} | sort -u tr '\0' '\n' < ${ENV_OBJ_FILE_COPY} | sort --field-separator== -k1,1 --stable
rm ${ENV_OBJ_FILE_COPY} rm ${ENV_OBJ_FILE_COPY}

View file

@ -435,7 +435,7 @@ static int fit_extract_data(struct image_tool_params *params, const char *fname)
int image_number; int image_number;
int align_size; int align_size;
align_size = params->bl_len ? params->bl_len : 1; align_size = params->bl_len ? params->bl_len : 4;
fd = mmap_fdt(params->cmdname, fname, 0, &fdt, &sbuf, false, false); fd = mmap_fdt(params->cmdname, fname, 0, &fdt, &sbuf, false, false);
if (fd < 0) if (fd < 0)
return -EIO; return -EIO;
@ -493,6 +493,7 @@ static int fit_extract_data(struct image_tool_params *params, const char *fname)
fdt_pack(fdt); fdt_pack(fdt);
new_size = fdt_totalsize(fdt); new_size = fdt_totalsize(fdt);
new_size = ALIGN(new_size, align_size);
fdt_set_totalsize(fdt, new_size); fdt_set_totalsize(fdt, new_size);
debug("Size reduced from %x to %x\n", fit_size, fdt_totalsize(fdt)); debug("Size reduced from %x to %x\n", fit_size, fdt_totalsize(fdt));
debug("External data size %x\n", buf_ptr); debug("External data size %x\n", buf_ptr);