Merge branch 'master' of git://git.denx.de/u-boot-net
diff --git a/.travis.yml b/.travis.yml
index bb9325b..3d7fffe 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -78,6 +78,7 @@
tools/buildman/buildman -P ${BUILDMAN};
ret=$?;
if [[ $ret -ne 0 && $ret -ne 129 ]]; then
+ tools/buildman/buildman -sdeP ${BUILDMAN};
exit $ret;
fi;
fi
@@ -96,31 +97,54 @@
# we need to build by vendor due to 50min time limit for builds
# each env setting here is a dedicated build
- env:
- - BUILDMAN="arm1136"
+ - BUILDMAN="arm11"
- env:
- - BUILDMAN="arm1176"
- - env:
- - BUILDMAN="arm720t"
+ - BUILDMAN="arm7"
- env:
- BUILDMAN="arm920t"
- env:
+ - JOB="arm926ejs"
+ BUILDMAN="arm926ejs -x mx,siemens,atmel"
+ - env:
+ - BUILDMAN="arm946es"
+ - env:
- BUILDMAN="atmel -x avr32"
- env:
- BUILDMAN="avr32"
TOOLCHAIN="avr32"
- env:
- - BUILDMAN="davinci"
- - env:
- BUILDMAN="denx"
- env:
- JOB="Freescale ARM"
BUILDMAN="freescale -x powerpc,m68k"
- env:
+ - JOB="i.MX (non-Freescale)"
+ BUILDMAN="mx -x freescale"
+ - env:
+ - BUILDMAN="sun4i"
+ - env:
+ - BUILDMAN="sun5i"
+ - env:
+ - BUILDMAN="sun6i"
+ - env:
+ - BUILDMAN="sun7i"
+ - env:
+ - BUILDMAN="sun8i"
+ - env:
+ - BUILDMAN="sun9i"
+ - env:
+ - BUILDMAN="sun50i"
+ - env:
+ - JOB="Catch-all ARM"
+ BUILDMAN="arm -x arm11,arm7,arm9,aarch64,atmel,denx,freescale,kirkwood,siemens,tegra,uniphier,mx,sunxi,am33xx,omap3,omap4,omap5,pxa"
+ - env:
- BUILDMAN="sandbox x86"
TOOLCHAIN="x86_64"
- env:
- BUILDMAN="kirkwood"
- env:
+ - BUILDMAN="pxa"
+ - env:
- BUILDMAN="m68k"
TOOLCHAIN="m68k"
- env:
@@ -158,11 +182,18 @@
- env:
- BUILDMAN="tegra"
- env:
+ - JOB="am33xx"
+ BUILDMAN="am33xx -x siemens"
+ - env:
- - BUILDMAN="ti"
+ - BUILDMAN="omap3"
+ - env:
+ - BUILDMAN="omap4"
+ - env:
+ - BUILDMAN="omap5"
- env:
- BUILDMAN="uniphier"
- env:
- - BUILDMAN="aarch64 -x tegra,freescale,uniphier"
+ - BUILDMAN="aarch64 -x tegra,freescale,uniphier,sunxi"
TOOLCHAIN="aarch64"
- env:
- BUILDMAN="sh4"
diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c
index 1de1e0b..b3f3b34 100644
--- a/board/wandboard/wandboard.c
+++ b/board/wandboard/wandboard.c
@@ -189,6 +189,39 @@
return 0;
}
+static int ar8031_phy_fixup(struct phy_device *phydev)
+{
+ unsigned short val;
+
+ /* To enable AR8031 ouput a 125MHz clk from CLK_25M */
+ phy_write(phydev, MDIO_DEVAD_NONE, 0xd, 0x7);
+ phy_write(phydev, MDIO_DEVAD_NONE, 0xe, 0x8016);
+ phy_write(phydev, MDIO_DEVAD_NONE, 0xd, 0x4007);
+
+ val = phy_read(phydev, MDIO_DEVAD_NONE, 0xe);
+ val &= 0xffe3;
+ val |= 0x18;
+ phy_write(phydev, MDIO_DEVAD_NONE, 0xe, val);
+
+ /* introduce tx clock delay */
+ phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x5);
+ val = phy_read(phydev, MDIO_DEVAD_NONE, 0x1e);
+ val |= 0x0100;
+ phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, val);
+
+ return 0;
+}
+
+int board_phy_config(struct phy_device *phydev)
+{
+ ar8031_phy_fixup(phydev);
+
+ if (phydev->drv->config)
+ phydev->drv->config(phydev);
+
+ return 0;
+}
+
#if defined(CONFIG_VIDEO_IPUV3)
struct i2c_pads_info mx6q_i2c2_pad_info = {
.scl = {
diff --git a/doc/mkimage.1 b/doc/mkimage.1
index e883f07..3dcdced 100644
--- a/doc/mkimage.1
+++ b/doc/mkimage.1
@@ -138,6 +138,10 @@
creation.
.TP
+.BI "\-i [" "ramdisk_file" "]"
+Appends the ramdisk file to the FIT.
+
+.TP
.BI "\-k [" "key_directory" "]"
Specifies the directory containing keys to use for signing. This directory
should contain a private key file <name>.key for use with signing and a
diff --git a/tools/buildman/board.py b/tools/buildman/board.py
index 5d536d5..ae0e0b8 100644
--- a/tools/buildman/board.py
+++ b/tools/buildman/board.py
@@ -92,9 +92,9 @@
self.board_name = board_name
self.vendor = vendor
self.soc = soc
- self.props = [self.target, self.arch, self.cpu, self.board_name,
- self.vendor, self.soc]
self.options = options
+ self.props = [self.target, self.arch, self.cpu, self.board_name,
+ self.vendor, self.soc, self.options]
self.build_it = False
diff --git a/tools/fit_image.c b/tools/fit_image.c
index 10fd6d4..efd8a97 100644
--- a/tools/fit_image.c
+++ b/tools/fit_image.c
@@ -85,8 +85,15 @@
size = imagetool_get_filesize(params, params->datafile);
if (size < 0)
return -1;
-
total_size = size;
+
+ if (params->fit_ramdisk) {
+ size = imagetool_get_filesize(params, params->fit_ramdisk);
+ if (size < 0)
+ return -1;
+ total_size += size;
+ }
+
for (cont = params->content_head; cont; cont = cont->next) {
size = imagetool_get_filesize(params, cont->fname);
if (size < 0)
@@ -233,6 +240,20 @@
fdt_end_node(fdt);
}
+ /* And a ramdisk file if available */
+ if (params->fit_ramdisk) {
+ fdt_begin_node(fdt, FIT_RAMDISK_PROP "@1");
+
+ fdt_property_string(fdt, "type", FIT_RAMDISK_PROP);
+ fdt_property_string(fdt, "os", genimg_get_os_short_name(params->os));
+
+ ret = fdt_property_file(params, fdt, "data", params->fit_ramdisk);
+ if (ret)
+ return ret;
+
+ fdt_end_node(fdt);
+ }
+
fdt_end_node(fdt);
return 0;
@@ -272,15 +293,25 @@
snprintf(str, sizeof(str), "%s@1", typename);
fdt_property_string(fdt, typename, str);
+ if (params->fit_ramdisk)
+ fdt_property_string(fdt, FIT_RAMDISK_PROP,
+ FIT_RAMDISK_PROP "@1");
+
snprintf(str, sizeof(str), FIT_FDT_PROP "@%d", upto);
fdt_property_string(fdt, FIT_FDT_PROP, str);
fdt_end_node(fdt);
}
+
if (!upto) {
fdt_begin_node(fdt, "conf@1");
typename = genimg_get_type_short_name(params->fit_image_type);
snprintf(str, sizeof(str), "%s@1", typename);
fdt_property_string(fdt, typename, str);
+
+ if (params->fit_ramdisk)
+ fdt_property_string(fdt, FIT_RAMDISK_PROP,
+ FIT_RAMDISK_PROP "@1");
+
fdt_end_node(fdt);
}
diff --git a/tools/imagetool.h b/tools/imagetool.h
index 6c1a9d3..15c2a0c 100644
--- a/tools/imagetool.h
+++ b/tools/imagetool.h
@@ -70,6 +70,7 @@
int orig_file_size; /* Original size for file before padding */
bool auto_its; /* Automatically create the .its file */
int fit_image_type; /* Image type to put into the FIT */
+ char *fit_ramdisk; /* Ramdisk file to include */
struct content_info *content_head; /* List of files to include */
struct content_info *content_tail;
bool external_data; /* Store data outside the FIT */
diff --git a/tools/mkimage.c b/tools/mkimage.c
index 0c6dba8..49d5d1e 100644
--- a/tools/mkimage.c
+++ b/tools/mkimage.c
@@ -88,12 +88,13 @@
" -x ==> set XIP (execute in place)\n",
params.cmdname);
fprintf(stderr,
- " %s [-D dtc_options] [-f fit-image.its|-f auto|-F] [-b <dtb> [-b <dtb>]] fit-image\n"
+ " %s [-D dtc_options] [-f fit-image.its|-f auto|-F] [-b <dtb> [-b <dtb>]] [-i <ramdisk.cpio.gz>] fit-image\n"
" <dtb> file is used with -f auto, it may occur multiple times.\n",
params.cmdname);
fprintf(stderr,
" -D => set all options for device tree compiler\n"
- " -f => input filename for FIT source\n");
+ " -f => input filename for FIT source\n"
+ " -i => input filename for ramdisk file\n");
#ifdef CONFIG_FIT_SIGNATURE
fprintf(stderr,
"Signing / verified boot options: [-E] [-k keydir] [-K dtb] [ -c <comment>] [-p addr] [-r]\n"
@@ -141,7 +142,7 @@
int opt;
while ((opt = getopt(argc, argv,
- "a:A:b:c:C:d:D:e:Ef:Fk:K:ln:p:O:rR:qsT:vVx")) != -1) {
+ "a:A:b:c:C:d:D:e:Ef:Fk:i:K:ln:p:O:rR:qsT:vVx")) != -1) {
switch (opt) {
case 'a':
params.addr = strtoull(optarg, &ptr, 16);
@@ -207,6 +208,9 @@
params.type = IH_TYPE_FLATDT;
params.fflag = 1;
break;
+ case 'i':
+ params.fit_ramdisk = optarg;
+ break;
case 'k':
params.keydir = optarg;
break;