mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
Merge branch 'master' of git://git.denx.de/u-boot-uniphier
This commit is contained in:
commit
73a555d12a
24 changed files with 206 additions and 107 deletions
|
@ -1223,6 +1223,7 @@ config ARCH_UNIPHIER
|
|||
select DM_RESET
|
||||
select DM_SERIAL
|
||||
select DM_USB
|
||||
select OF_BOARD_SETUP
|
||||
select OF_CONTROL
|
||||
select OF_LIBFDT
|
||||
select PINCTRL
|
||||
|
@ -1233,6 +1234,7 @@ config ARCH_UNIPHIER
|
|||
select SPL_OF_CONTROL if SPL
|
||||
select SPL_PINCTRL if SPL
|
||||
select SUPPORT_SPL
|
||||
imply DISTRO_DEFAULTS
|
||||
imply FAT_WRITE
|
||||
help
|
||||
Support for UniPhier SoC family developed by Socionext Inc.
|
||||
|
|
|
@ -68,7 +68,6 @@ config ARCH_UNIPHIER_LD11
|
|||
config ARCH_UNIPHIER_LD20
|
||||
bool "Enable UniPhier LD20 SoC support"
|
||||
depends on ARCH_UNIPHIER_V8_MULTI
|
||||
select OF_BOARD_SETUP
|
||||
default y
|
||||
|
||||
config ARCH_UNIPHIER_PXS3
|
||||
|
|
|
@ -21,6 +21,7 @@ endif
|
|||
obj-$(CONFIG_MICRO_SUPPORT_CARD) += sbc/ micro-support-card.o
|
||||
obj-y += pinctrl-glue.o
|
||||
obj-$(CONFIG_MMC) += mmc-first-dev.o
|
||||
obj-y += fdt-fixup.o
|
||||
|
||||
endif
|
||||
|
||||
|
|
|
@ -66,20 +66,20 @@ int board_late_init(void)
|
|||
switch (uniphier_boot_device_raw()) {
|
||||
case BOOT_DEVICE_MMC1:
|
||||
printf("eMMC Boot");
|
||||
env_set("bootmode", "emmcboot");
|
||||
env_set("bootcmd", "run bootcmd_mmc0; run distro_bootcmd");
|
||||
break;
|
||||
case BOOT_DEVICE_NAND:
|
||||
printf("NAND Boot");
|
||||
env_set("bootmode", "nandboot");
|
||||
env_set("bootcmd", "run bootcmd_ubifs0; run distro_bootcmd");
|
||||
nand_denali_wp_disable();
|
||||
break;
|
||||
case BOOT_DEVICE_NOR:
|
||||
printf("NOR Boot");
|
||||
env_set("bootmode", "norboot");
|
||||
env_set("bootcmd", "run tftpboot; run distro_bootcmd");
|
||||
break;
|
||||
case BOOT_DEVICE_USB:
|
||||
printf("USB Boot");
|
||||
env_set("bootmode", "usbboot");
|
||||
env_set("bootcmd", "run bootcmd_usb0; run distro_bootcmd");
|
||||
break;
|
||||
default:
|
||||
printf("Unknown");
|
||||
|
|
|
@ -6,8 +6,6 @@
|
|||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <fdt_support.h>
|
||||
#include <fdtdec.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/printk.h>
|
||||
|
@ -264,36 +262,3 @@ int dram_init_banksize(void)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OF_BOARD_SETUP
|
||||
/*
|
||||
* The DRAM PHY requires 64 byte scratch area in each DRAM channel
|
||||
* for its dynamic PHY training feature.
|
||||
*/
|
||||
int ft_board_setup(void *fdt, bd_t *bd)
|
||||
{
|
||||
unsigned long rsv_addr;
|
||||
const unsigned long rsv_size = 64;
|
||||
int i, ret;
|
||||
|
||||
if (uniphier_get_soc_id() != UNIPHIER_LD20_ID)
|
||||
return 0;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(gd->bd->bi_dram); i++) {
|
||||
if (!gd->bd->bi_dram[i].size)
|
||||
continue;
|
||||
|
||||
rsv_addr = gd->bd->bi_dram[i].start + gd->bd->bi_dram[i].size;
|
||||
rsv_addr -= rsv_size;
|
||||
|
||||
ret = fdt_add_mem_rsv(fdt, rsv_addr, rsv_size);
|
||||
if (ret)
|
||||
return -ENOSPC;
|
||||
|
||||
pr_notice(" Reserved memory region for DRAM PHY training: addr=%lx size=%lx\n",
|
||||
rsv_addr, rsv_size);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
64
arch/arm/mach-uniphier/fdt-fixup.c
Normal file
64
arch/arm/mach-uniphier/fdt-fixup.c
Normal file
|
@ -0,0 +1,64 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2016-2018 Socionext Inc.
|
||||
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <fdt_support.h>
|
||||
#include <fdtdec.h>
|
||||
#include <jffs2/load_kernel.h>
|
||||
#include <mtd_node.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/printk.h>
|
||||
|
||||
#include "soc-info.h"
|
||||
|
||||
/*
|
||||
* The DRAM PHY requires 64 byte scratch area in each DRAM channel
|
||||
* for its dynamic PHY training feature.
|
||||
*/
|
||||
static int uniphier_ld20_fdt_mem_rsv(void *fdt, bd_t *bd)
|
||||
{
|
||||
unsigned long rsv_addr;
|
||||
const unsigned long rsv_size = 64;
|
||||
int i, ret;
|
||||
|
||||
if (!IS_ENABLED(CONFIG_ARCH_UNIPHIER_LD20) ||
|
||||
uniphier_get_soc_id() != UNIPHIER_LD20_ID)
|
||||
return 0;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(bd->bi_dram); i++) {
|
||||
if (!bd->bi_dram[i].size)
|
||||
continue;
|
||||
|
||||
rsv_addr = bd->bi_dram[i].start + bd->bi_dram[i].size;
|
||||
rsv_addr -= rsv_size;
|
||||
|
||||
ret = fdt_add_mem_rsv(fdt, rsv_addr, rsv_size);
|
||||
if (ret)
|
||||
return -ENOSPC;
|
||||
|
||||
pr_notice(" Reserved memory region for DRAM PHY training: addr=%lx size=%lx\n",
|
||||
rsv_addr, rsv_size);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ft_board_setup(void *fdt, bd_t *bd)
|
||||
{
|
||||
static const struct node_info nodes[] = {
|
||||
{ "socionext,uniphier-denali-nand-v5a", MTD_DEV_TYPE_NAND },
|
||||
{ "socionext,uniphier-denali-nand-v5b", MTD_DEV_TYPE_NAND },
|
||||
};
|
||||
int ret;
|
||||
|
||||
fdt_fixup_mtdparts(fdt, nodes, ARRAY_SIZE(nodes));
|
||||
|
||||
ret = uniphier_ld20_fdt_mem_rsv(fdt, bd);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -205,7 +205,7 @@ u32 get_board_rev(void)
|
|||
*/
|
||||
int ft_board_setup(void *blob, bd_t *bd)
|
||||
{
|
||||
struct node_info nodes[] = {
|
||||
static const struct node_info nodes[] = {
|
||||
{ "physmap-flash.0", MTD_DEV_TYPE_NOR, }, /* NOR flash */
|
||||
{ "mxc_nand", MTD_DEV_TYPE_NAND, }, /* NAND flash */
|
||||
};
|
||||
|
|
|
@ -519,7 +519,7 @@ int cm_fx6_setup_ecspi(void) { return 0; }
|
|||
#ifdef CONFIG_OF_BOARD_SETUP
|
||||
#define USDHC3_PATH "/soc/aips-bus@02100000/usdhc@02198000/"
|
||||
|
||||
struct node_info nodes[] = {
|
||||
static const struct node_info nodes[] = {
|
||||
/*
|
||||
* Both entries target the same flash chip. The st,m25p compatible
|
||||
* is used in the vendor device trees, while upstream uses (the
|
||||
|
|
|
@ -53,7 +53,7 @@ int checkboard(void)
|
|||
|
||||
#if defined(CONFIG_OF_BOARD_SETUP)
|
||||
#ifdef CONFIG_FDT_FIXUP_PARTITIONS
|
||||
struct node_info nodes[] = {
|
||||
static const struct node_info nodes[] = {
|
||||
{ "fsl,ifc-nand", MTD_DEV_TYPE_NAND, },
|
||||
};
|
||||
#endif
|
||||
|
|
|
@ -357,7 +357,7 @@ void fdt_del_node_compat(void *blob, const char *compatible)
|
|||
|
||||
#if defined(CONFIG_OF_BOARD_SETUP)
|
||||
#ifdef CONFIG_FDT_FIXUP_PARTITIONS
|
||||
struct node_info nodes[] = {
|
||||
static const struct node_info nodes[] = {
|
||||
{ "cfi-flash", MTD_DEV_TYPE_NOR, },
|
||||
{ "fsl,ifc-nand", MTD_DEV_TYPE_NAND, },
|
||||
};
|
||||
|
|
|
@ -1114,7 +1114,7 @@ int ft_board_setup(void *blob, bd_t *bd)
|
|||
{
|
||||
struct ventana_board_info *info = &ventana_info;
|
||||
struct ventana_eeprom_config *cfg;
|
||||
struct node_info nodes[] = {
|
||||
static const struct node_info nodes[] = {
|
||||
{ "sst,w25q256", MTD_DEV_TYPE_NOR, }, /* SPI flash */
|
||||
{ "fsl,imx6q-gpmi-nand", MTD_DEV_TYPE_NAND, }, /* NAND flash */
|
||||
};
|
||||
|
|
|
@ -211,7 +211,7 @@ int board_late_init(void)
|
|||
int ft_board_setup(void *blob, bd_t *bd)
|
||||
{
|
||||
#ifdef CONFIG_FDT_FIXUP_PARTITIONS
|
||||
static struct node_info nodes[] = {
|
||||
static const struct node_info nodes[] = {
|
||||
{ "ti,omap2-nand", MTD_DEV_TYPE_NAND, },
|
||||
};
|
||||
|
||||
|
|
|
@ -157,7 +157,7 @@ static int ft_enable_by_compatible(void *blob, char *compat, int enable)
|
|||
int ft_board_setup(void *blob, bd_t *bd)
|
||||
{
|
||||
#ifdef CONFIG_FDT_FIXUP_PARTITIONS
|
||||
static struct node_info nodes[] = {
|
||||
static const struct node_info nodes[] = {
|
||||
{ "ti,omap2-nand", MTD_DEV_TYPE_NAND, },
|
||||
{ "ti,omap2-onenand", MTD_DEV_TYPE_ONENAND, },
|
||||
};
|
||||
|
|
|
@ -389,7 +389,7 @@ int checkboard(void)
|
|||
int ft_board_setup(void *blob, bd_t *bd)
|
||||
{
|
||||
#if defined(CONFIG_FDT_FIXUP_PARTITIONS)
|
||||
static struct node_info nodes[] = {
|
||||
static const struct node_info nodes[] = {
|
||||
{ "fsl,imx7d-gpmi-nand", MTD_DEV_TYPE_NAND, }, /* NAND flash */
|
||||
{ "fsl,imx6q-gpmi-nand", MTD_DEV_TYPE_NAND, },
|
||||
};
|
||||
|
|
|
@ -580,7 +580,7 @@ int ft_board_setup(void *blob, bd_t *bd)
|
|||
{
|
||||
int ret = 0;
|
||||
#ifdef CONFIG_FDT_FIXUP_PARTITIONS
|
||||
static struct node_info nodes[] = {
|
||||
static const struct node_info nodes[] = {
|
||||
{ "fsl,vf610-nfc", MTD_DEV_TYPE_NAND, }, /* NAND flash */
|
||||
};
|
||||
|
||||
|
|
|
@ -893,9 +893,9 @@ err_prop:
|
|||
*
|
||||
* fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes));
|
||||
*/
|
||||
void fdt_fixup_mtdparts(void *blob, void *node_info, int node_info_size)
|
||||
void fdt_fixup_mtdparts(void *blob, const struct node_info *node_info,
|
||||
int node_info_size)
|
||||
{
|
||||
struct node_info *ni = node_info;
|
||||
struct mtd_device *dev;
|
||||
int i, idx;
|
||||
int noff;
|
||||
|
@ -905,12 +905,13 @@ void fdt_fixup_mtdparts(void *blob, void *node_info, int node_info_size)
|
|||
|
||||
for (i = 0; i < node_info_size; i++) {
|
||||
idx = 0;
|
||||
noff = fdt_node_offset_by_compatible(blob, -1, ni[i].compat);
|
||||
noff = fdt_node_offset_by_compatible(blob, -1,
|
||||
node_info[i].compat);
|
||||
while (noff != -FDT_ERR_NOTFOUND) {
|
||||
debug("%s: %s, mtd dev type %d\n",
|
||||
fdt_get_name(blob, noff, 0),
|
||||
ni[i].compat, ni[i].type);
|
||||
dev = device_find(ni[i].type, idx++);
|
||||
node_info[i].compat, node_info[i].type);
|
||||
dev = device_find(node_info[i].type, idx++);
|
||||
if (dev) {
|
||||
if (fdt_node_set_part_info(blob, noff, dev))
|
||||
return; /* return on error */
|
||||
|
@ -918,7 +919,7 @@ void fdt_fixup_mtdparts(void *blob, void *node_info, int node_info_size)
|
|||
|
||||
/* Jump to next flash node */
|
||||
noff = fdt_node_offset_by_compatible(blob, noff,
|
||||
ni[i].compat);
|
||||
node_info[i].compat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,6 +31,9 @@ CONFIG_CMD_TIME=y
|
|||
# CONFIG_CMD_MISC is not set
|
||||
CONFIG_CMD_FAT=y
|
||||
CONFIG_CMD_FS_GENERIC=y
|
||||
CONFIG_CMD_MTDPARTS=y
|
||||
CONFIG_MTDIDS_DEFAULT="nand0=uniphier-nand.0"
|
||||
CONFIG_MTDPARTS_DEFAULT="mtdparts=uniphier-nand.0:1m(firmware),-(UBI)"
|
||||
# CONFIG_SPL_DOS_PARTITION is not set
|
||||
# CONFIG_SPL_EFI_PARTITION is not set
|
||||
CONFIG_NET_RANDOM_ETHADDR=y
|
||||
|
@ -39,7 +42,7 @@ CONFIG_MISC=y
|
|||
CONFIG_I2C_EEPROM=y
|
||||
CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS=10
|
||||
CONFIG_MMC_UNIPHIER=y
|
||||
CONFIG_MTD_DEVICE=y
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
CONFIG_NAND=y
|
||||
CONFIG_NAND_DENALI_DT=y
|
||||
CONFIG_NAND_DENALI_SPARE_AREA_SKIP_BYTES=8
|
||||
|
@ -53,3 +56,4 @@ CONFIG_USB_EHCI_HCD=y
|
|||
CONFIG_USB_EHCI_GENERIC=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_PANIC_HANG=y
|
||||
CONFIG_FDT_FIXUP_PARTITIONS=y
|
||||
|
|
|
@ -30,6 +30,9 @@ CONFIG_CMD_TIME=y
|
|||
# CONFIG_CMD_MISC is not set
|
||||
CONFIG_CMD_FAT=y
|
||||
CONFIG_CMD_FS_GENERIC=y
|
||||
CONFIG_CMD_MTDPARTS=y
|
||||
CONFIG_MTDIDS_DEFAULT="nand0=uniphier-nand.0"
|
||||
CONFIG_MTDPARTS_DEFAULT="mtdparts=uniphier-nand.0:1m(firmware),-(UBI)"
|
||||
# CONFIG_SPL_DOS_PARTITION is not set
|
||||
# CONFIG_SPL_EFI_PARTITION is not set
|
||||
CONFIG_NET_RANDOM_ETHADDR=y
|
||||
|
@ -38,7 +41,7 @@ CONFIG_MISC=y
|
|||
CONFIG_I2C_EEPROM=y
|
||||
CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS=10
|
||||
CONFIG_MMC_UNIPHIER=y
|
||||
CONFIG_MTD_DEVICE=y
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
CONFIG_NAND=y
|
||||
CONFIG_NAND_DENALI_DT=y
|
||||
CONFIG_NAND_DENALI_SPARE_AREA_SKIP_BYTES=8
|
||||
|
@ -54,3 +57,4 @@ CONFIG_USB_DWC3=y
|
|||
CONFIG_USB_DWC3_UNIPHIER=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_PANIC_HANG=y
|
||||
CONFIG_FDT_FIXUP_PARTITIONS=y
|
||||
|
|
|
@ -26,6 +26,9 @@ CONFIG_CMD_TIME=y
|
|||
# CONFIG_CMD_MISC is not set
|
||||
CONFIG_CMD_FAT=y
|
||||
CONFIG_CMD_FS_GENERIC=y
|
||||
CONFIG_MTDIDS_DEFAULT="nand0=uniphier-nand.0"
|
||||
CONFIG_MTDPARTS_DEFAULT="mtdparts=uniphier-nand.0:1m(firmware),-(UBI)"
|
||||
CONFIG_CMD_UBI=y
|
||||
CONFIG_NET_RANDOM_ETHADDR=y
|
||||
CONFIG_GPIO_UNIPHIER=y
|
||||
CONFIG_MISC=y
|
||||
|
@ -36,7 +39,6 @@ CONFIG_MMC_UNIPHIER=y
|
|||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_SDMA=y
|
||||
CONFIG_MMC_SDHCI_CADENCE=y
|
||||
CONFIG_MTD_DEVICE=y
|
||||
CONFIG_NAND=y
|
||||
CONFIG_NAND_DENALI_DT=y
|
||||
CONFIG_NAND_DENALI_SPARE_AREA_SKIP_BYTES=8
|
||||
|
@ -54,3 +56,4 @@ CONFIG_USB_DWC3=y
|
|||
CONFIG_USB_DWC3_UNIPHIER=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_PANIC_HANG=y
|
||||
CONFIG_FDT_FIXUP_PARTITIONS=y
|
||||
|
|
|
@ -332,6 +332,61 @@ for kernel, DTB, and Init ramdisk.
|
|||
If they are not displayed, the Verified Boot is not working.
|
||||
|
||||
|
||||
Deployment for Distro Boot
|
||||
--------------------------
|
||||
|
||||
UniPhier SoC family boot the kernel in a generic manner as described in
|
||||
doc/README.distro .
|
||||
|
||||
To boot the kernel, you need to deploy necesssary components to a file
|
||||
system on one of your block devices (eMMC, NAND, USB drive, etc.).
|
||||
|
||||
The components depend on the kernel image format.
|
||||
|
||||
[1] Bare images
|
||||
|
||||
- kernel
|
||||
- init ramdisk
|
||||
- device tree blob
|
||||
- boot configuration file (extlinux.conf)
|
||||
|
||||
Here is an exmple of the configuration file.
|
||||
|
||||
-------------------->8--------------------
|
||||
menu title UniPhier Boot Options.
|
||||
|
||||
timeout 50
|
||||
default UniPhier
|
||||
|
||||
label UniPhier
|
||||
kernel ../Image
|
||||
initrd ../rootfs.cpio.gz
|
||||
fdtdir ..
|
||||
-------------------->8--------------------
|
||||
|
||||
Then, write 'Image', 'rootfs.cpio.gz', 'uniphier-ld20-ref.dtb' (DTB depends on
|
||||
your board), and 'extlinux/extlinux.conf' to the file system.
|
||||
|
||||
[2] FIT
|
||||
|
||||
- FIT blob
|
||||
- boot configuration file (extlinux.conf)
|
||||
|
||||
-------------------->8--------------------
|
||||
menu title UniPhier Boot Options.
|
||||
|
||||
timeout 50
|
||||
default UniPhier
|
||||
|
||||
label UniPhier
|
||||
kernel ../fitImage
|
||||
-------------------->8--------------------
|
||||
|
||||
Since the init ramdisk and DTB are contained in the FIT blob,
|
||||
you do not need to describe them in the configuration file.
|
||||
Write 'fitImage' and 'extlinux/extlinux.conf' to the file system.
|
||||
|
||||
|
||||
UniPhier specific commands
|
||||
--------------------------
|
||||
|
||||
|
|
|
@ -1270,7 +1270,7 @@ int denali_init(struct denali_nand_info *denali)
|
|||
denali->dma_avail = 1;
|
||||
|
||||
if (denali->dma_avail) {
|
||||
chip->buf_align = 16;
|
||||
chip->buf_align = ARCH_DMA_MINALIGN;
|
||||
if (denali->caps & DENALI_CAP_DMA_64BIT)
|
||||
denali->setup_dma = denali_setup_dma64;
|
||||
else
|
||||
|
|
|
@ -10,6 +10,35 @@
|
|||
#ifndef __CONFIG_UNIPHIER_COMMON_H__
|
||||
#define __CONFIG_UNIPHIER_COMMON_H__
|
||||
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
#include <config_distro_bootcmd.h>
|
||||
|
||||
#ifdef CONFIG_CMD_MMC
|
||||
#define BOOT_TARGET_DEVICE_MMC(func) func(MMC, mmc, 0) func(MMC, mmc, 1)
|
||||
#else
|
||||
#define BOOT_TARGET_DEVICE_MMC(func)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CMD_UBIFS
|
||||
#define BOOT_TARGET_DEVICE_UBIFS(func) func(UBIFS, ubifs, 0)
|
||||
#else
|
||||
#define BOOT_TARGET_DEVICE_UBIFS(func)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CMD_USB
|
||||
#define BOOT_TARGET_DEVICE_USB(func) func(USB, usb, 0)
|
||||
#else
|
||||
#define BOOT_TARGET_DEVICE_USB(func)
|
||||
#endif
|
||||
|
||||
#define BOOT_TARGET_DEVICES(func) \
|
||||
BOOT_TARGET_DEVICE_MMC(func) \
|
||||
BOOT_TARGET_DEVICE_UBIFS(func) \
|
||||
BOOT_TARGET_DEVICE_USB(func)
|
||||
#else
|
||||
#define BOOTENV
|
||||
#endif
|
||||
|
||||
#define CONFIG_ARMV7_PSCI_1_0
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
|
@ -98,8 +127,6 @@
|
|||
"third_image=u-boot.bin\0"
|
||||
#endif
|
||||
|
||||
#define CONFIG_BOOTCOMMAND "run $bootmode"
|
||||
|
||||
#define CONFIG_ROOTPATH "/nfs/root/path"
|
||||
#define CONFIG_NFSBOOTCOMMAND \
|
||||
"setenv bootargs $bootargs root=/dev/nfs rw " \
|
||||
|
@ -110,64 +137,31 @@
|
|||
#ifdef CONFIG_FIT
|
||||
#define CONFIG_BOOTFILE "fitImage"
|
||||
#define LINUXBOOT_ENV_SETTINGS \
|
||||
"fit_addr=0x00100000\0" \
|
||||
"fit_addr_r=0x85100000\0" \
|
||||
"fit_size=0x00f00000\0" \
|
||||
"norboot=setexpr fit_addr $nor_base + $fit_addr &&" \
|
||||
"bootm $fit_addr\0" \
|
||||
"nandboot=nand read $fit_addr_r $fit_addr $fit_size &&" \
|
||||
"bootm $fit_addr_r\0" \
|
||||
"tftpboot=tftpboot $fit_addr_r $bootfile &&" \
|
||||
"bootm $fit_addr_r\0" \
|
||||
"kernel_addr_r=0x85100000\0" \
|
||||
"tftpboot=tftpboot $kernel_addr_r $bootfile &&" \
|
||||
"bootm $kernel_addr_r\0" \
|
||||
"__nfsboot=run tftpboot\0"
|
||||
#else
|
||||
#ifdef CONFIG_ARM64
|
||||
#define CONFIG_BOOTFILE "Image.gz"
|
||||
#define CONFIG_BOOTFILE "Image"
|
||||
#define LINUXBOOT_CMD "booti"
|
||||
#define KERNEL_ADDR_LOAD "kernel_addr_load=0x85200000\0"
|
||||
#define KERNEL_ADDR_R "kernel_addr_r=0x82080000\0"
|
||||
#else
|
||||
#define CONFIG_BOOTFILE "zImage"
|
||||
#define LINUXBOOT_CMD "bootz"
|
||||
#define KERNEL_ADDR_LOAD "kernel_addr_load=0x80208000\0"
|
||||
#define KERNEL_ADDR_R "kernel_addr_r=0x80208000\0"
|
||||
#endif
|
||||
#define LINUXBOOT_ENV_SETTINGS \
|
||||
"fdt_addr=0x00100000\0" \
|
||||
"fdt_addr_r=0x85100000\0" \
|
||||
"fdt_size=0x00008000\0" \
|
||||
"kernel_addr=0x00200000\0" \
|
||||
KERNEL_ADDR_LOAD \
|
||||
KERNEL_ADDR_R \
|
||||
"kernel_size=0x00e00000\0" \
|
||||
"ramdisk_addr=0x01000000\0" \
|
||||
"ramdisk_addr_r=0x86000000\0" \
|
||||
"ramdisk_size=0x00800000\0" \
|
||||
"ramdisk_file=rootfs.cpio.uboot\0" \
|
||||
"ramdisk_file=rootfs.cpio.gz\0" \
|
||||
"boot_common=setexpr bootm_low $kernel_addr_r '&' fe000000 && " \
|
||||
"if test $kernel_addr_load = $kernel_addr_r; then " \
|
||||
"true; " \
|
||||
"else " \
|
||||
"unzip $kernel_addr_load $kernel_addr_r; " \
|
||||
"fi && " \
|
||||
LINUXBOOT_CMD " $kernel_addr_r $ramdisk_addr_r $fdt_addr_r\0" \
|
||||
"norboot=setexpr kernel_addr_nor $nor_base + $kernel_addr && " \
|
||||
"setexpr kernel_size_div4 $kernel_size / 4 && " \
|
||||
"cp $kernel_addr_nor $kernel_addr_load $kernel_size_div4 && " \
|
||||
"setexpr ramdisk_addr_nor $nor_base + $ramdisk_addr && " \
|
||||
"setexpr ramdisk_size_div4 $ramdisk_size / 4 && " \
|
||||
"cp $ramdisk_addr_nor $ramdisk_addr_r $ramdisk_size_div4 && " \
|
||||
"setexpr fdt_addr_nor $nor_base + $fdt_addr && " \
|
||||
"setexpr fdt_size_div4 $fdt_size / 4 && " \
|
||||
"cp $fdt_addr_nor $fdt_addr_r $fdt_size_div4 && " \
|
||||
"run boot_common\0" \
|
||||
"nandboot=nand read $kernel_addr_load $kernel_addr $kernel_size && " \
|
||||
"nand read $ramdisk_addr_r $ramdisk_addr $ramdisk_size &&" \
|
||||
"nand read $fdt_addr_r $fdt_addr $fdt_size &&" \
|
||||
"run boot_common\0" \
|
||||
"tftpboot=tftpboot $kernel_addr_load $bootfile && " \
|
||||
"tftpboot $ramdisk_addr_r $ramdisk_file &&" \
|
||||
"tftpboot=tftpboot $kernel_addr_r $bootfile && " \
|
||||
"tftpboot $fdt_addr_r $fdtfile &&" \
|
||||
"tftpboot $ramdisk_addr_r $ramdisk_file &&" \
|
||||
"setenv ramdisk_addr_r $ramdisk_addr_r:$filesize &&" \
|
||||
"run boot_common\0" \
|
||||
"__nfsboot=tftpboot $kernel_addr_load $bootfile && " \
|
||||
"tftpboot $fdt_addr_r $fdtfile &&" \
|
||||
|
@ -178,6 +172,7 @@
|
|||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"netdev=eth0\0" \
|
||||
"initrd_high=0xffffffffffffffff\0" \
|
||||
"scriptaddr=0x85000000\0" \
|
||||
"nor_base=0x42000000\0" \
|
||||
"sramupdate=setexpr tmp_addr $nor_base + 0x50000 &&" \
|
||||
"tftpboot $tmp_addr $second_image && " \
|
||||
|
@ -201,7 +196,8 @@
|
|||
"tftpboot $third_image && " \
|
||||
"usb write $loadaddr 100 f00\0" \
|
||||
BOOT_IMAGES \
|
||||
LINUXBOOT_ENV_SETTINGS
|
||||
LINUXBOOT_ENV_SETTINGS \
|
||||
BOOTENV
|
||||
|
||||
#define CONFIG_SYS_BOOTMAPSZ 0x20000000
|
||||
|
||||
|
|
|
@ -205,11 +205,16 @@ int fdt_increase_size(void *fdt, int add_len);
|
|||
|
||||
int fdt_fixup_nor_flash_size(void *blob);
|
||||
|
||||
struct node_info;
|
||||
#if defined(CONFIG_FDT_FIXUP_PARTITIONS)
|
||||
void fdt_fixup_mtdparts(void *fdt, void *node_info, int node_info_size);
|
||||
void fdt_fixup_mtdparts(void *fdt, const struct node_info *node_info,
|
||||
int node_info_size);
|
||||
#else
|
||||
static inline void fdt_fixup_mtdparts(void *fdt, void *node_info,
|
||||
int node_info_size) {}
|
||||
static inline void fdt_fixup_mtdparts(void *fdt,
|
||||
const struct node_info *node_info,
|
||||
int node_info_size)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
void fdt_del_node_and_alias(void *blob, const char *alias);
|
||||
|
|
|
@ -743,7 +743,7 @@ int conf_write(const char *name)
|
|||
struct menu *menu;
|
||||
const char *basename;
|
||||
const char *str;
|
||||
char dirname[PATH_MAX+1], tmpname[PATH_MAX+1], newname[PATH_MAX+1];
|
||||
char dirname[PATH_MAX+1], tmpname[PATH_MAX+22], newname[PATH_MAX+8];
|
||||
char *env;
|
||||
|
||||
dirname[0] = 0;
|
||||
|
|
Loading…
Reference in a new issue