From: Greg Kroah-Hartman Date: Tue, 7 Feb 2017 18:38:33 +0000 (+0100) Subject: another 3.18 patch X-Git-Tag: v3.18.48~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cca3fca97f4bf7520188c0fcc30347182858dda0;p=thirdparty%2Fkernel%2Fstable-queue.git another 3.18 patch --- diff --git a/queue-3.18/documentation-remove-zboot-mmc-sdhi-utility-and-docs.patch b/queue-3.18/documentation-remove-zboot-mmc-sdhi-utility-and-docs.patch new file mode 100644 index 00000000000..2c6735f94e8 --- /dev/null +++ b/queue-3.18/documentation-remove-zboot-mmc-sdhi-utility-and-docs.patch @@ -0,0 +1,303 @@ +From c6535e1e0361157ea073b57b626d0611b7c4c7a0 Mon Sep 17 00:00:00 2001 +From: Magnus Damm +Date: Mon, 26 Jan 2015 15:19:51 +0900 +Subject: Documentation: Remove ZBOOT MMC/SDHI utility and docs + +From: Magnus Damm + +commit c6535e1e0361157ea073b57b626d0611b7c4c7a0 upstream. + +Remove ZBOOT MMC/SDHI Documentation for sh7372 together +wit the vrl4 utility. Without sh7372 and Mackerel support +these files are no longer useful. + +Signed-off-by: Magnus Damm +Acked-by: Laurent Pinchart +Acked-by: Geert Uytterhoeven +Signed-off-by: Simon Horman +[removes a build warning in 3.18, and as this chip never was made, it is + safe to remove the documentation here. The code was removed in 4.1. + - gregkh] +Signed-off-by: Greg Kroah-Hartman + +--- + Documentation/Makefile | 2 + Documentation/arm/Makefile | 1 + Documentation/arm/SH-Mobile/Makefile | 7 + Documentation/arm/SH-Mobile/vrl4.c | 170 ------------------------ + Documentation/arm/SH-Mobile/zboot-rom-mmcif.txt | 29 ---- + Documentation/arm/SH-Mobile/zboot-rom-sdhi.txt | 42 ----- + 6 files changed, 1 insertion(+), 250 deletions(-) + +--- a/Documentation/Makefile ++++ b/Documentation/Makefile +@@ -1,4 +1,4 @@ +-subdir-y := accounting arm auxdisplay blackfin connector \ ++subdir-y := accounting auxdisplay blackfin connector \ + filesystems filesystems ia64 laptops mic misc-devices \ + networking pcmcia prctl ptp spi timers vDSO video4linux \ + watchdog +--- a/Documentation/arm/Makefile ++++ /dev/null +@@ -1 +0,0 @@ +-subdir-y := SH-Mobile +--- a/Documentation/arm/SH-Mobile/Makefile ++++ /dev/null +@@ -1,7 +0,0 @@ +-# List of programs to build +-hostprogs-y := vrl4 +- +-# Tell kbuild to always build the programs +-always := $(hostprogs-y) +- +-HOSTCFLAGS_vrl4.o += -I$(objtree)/usr/include -I$(srctree)/tools/include +--- a/Documentation/arm/SH-Mobile/vrl4.c ++++ /dev/null +@@ -1,170 +0,0 @@ +-/* +- * vrl4 format generator +- * +- * Copyright (C) 2010 Simon Horman +- * +- * This file is subject to the terms and conditions of the GNU General Public +- * License. See the file "COPYING" in the main directory of this archive +- * for more details. +- */ +- +-/* +- * usage: vrl4 < zImage > out +- * dd if=out of=/dev/sdx bs=512 seek=1 # Write the image to sector 1 +- * +- * Reads a zImage from stdin and writes a vrl4 image to stdout. +- * In practice this means writing a padded vrl4 header to stdout followed +- * by the zImage. +- * +- * The padding places the zImage at ALIGN bytes into the output. +- * The vrl4 uses ALIGN + START_BASE as the start_address. +- * This is where the mask ROM will jump to after verifying the header. +- * +- * The header sets copy_size to min(sizeof(zImage), MAX_BOOT_PROG_LEN) + ALIGN. +- * That is, the mask ROM will load the padded header (ALIGN bytes) +- * And then MAX_BOOT_PROG_LEN bytes of the image, or the entire image, +- * whichever is smaller. +- * +- * The zImage is not modified in any way. +- */ +- +-#define _BSD_SOURCE +-#include +-#include +-#include +-#include +-#include +-#include +- +-struct hdr { +- uint32_t magic1; +- uint32_t reserved1; +- uint32_t magic2; +- uint32_t reserved2; +- uint16_t copy_size; +- uint16_t boot_options; +- uint32_t reserved3; +- uint32_t start_address; +- uint32_t reserved4; +- uint32_t reserved5; +- char reserved6[308]; +-}; +- +-#define DECLARE_HDR(h) \ +- struct hdr (h) = { \ +- .magic1 = htole32(0xea000000), \ +- .reserved1 = htole32(0x56), \ +- .magic2 = htole32(0xe59ff008), \ +- .reserved3 = htole16(0x1) } +- +-/* Align to 512 bytes, the MMCIF sector size */ +-#define ALIGN_BITS 9 +-#define ALIGN (1 << ALIGN_BITS) +- +-#define START_BASE 0xe55b0000 +- +-/* +- * With an alignment of 512 the header uses the first sector. +- * There is a 128 sector (64kbyte) limit on the data loaded by the mask ROM. +- * So there are 127 sectors left for the boot programme. But in practice +- * Only a small portion of a zImage is needed, 16 sectors should be more +- * than enough. +- * +- * Note that this sets how much of the zImage is copied by the mask ROM. +- * The entire zImage is present after the header and is loaded +- * by the code in the boot program (which is the first portion of the zImage). +- */ +-#define MAX_BOOT_PROG_LEN (16 * 512) +- +-#define ROUND_UP(x) ((x + ALIGN - 1) & ~(ALIGN - 1)) +- +-static ssize_t do_read(int fd, void *buf, size_t count) +-{ +- size_t offset = 0; +- ssize_t l; +- +- while (offset < count) { +- l = read(fd, buf + offset, count - offset); +- if (!l) +- break; +- if (l < 0) { +- if (errno == EAGAIN || errno == EWOULDBLOCK) +- continue; +- perror("read"); +- return -1; +- } +- offset += l; +- } +- +- return offset; +-} +- +-static ssize_t do_write(int fd, const void *buf, size_t count) +-{ +- size_t offset = 0; +- ssize_t l; +- +- while (offset < count) { +- l = write(fd, buf + offset, count - offset); +- if (l < 0) { +- if (errno == EAGAIN || errno == EWOULDBLOCK) +- continue; +- perror("write"); +- return -1; +- } +- offset += l; +- } +- +- return offset; +-} +- +-static ssize_t write_zero(int fd, size_t len) +-{ +- size_t i = len; +- +- while (i--) { +- const char x = 0; +- if (do_write(fd, &x, 1) < 0) +- return -1; +- } +- +- return len; +-} +- +-int main(void) +-{ +- DECLARE_HDR(hdr); +- char boot_program[MAX_BOOT_PROG_LEN]; +- size_t aligned_hdr_len, alligned_prog_len; +- ssize_t prog_len; +- +- prog_len = do_read(0, boot_program, sizeof(boot_program)); +- if (prog_len <= 0) +- return -1; +- +- aligned_hdr_len = ROUND_UP(sizeof(hdr)); +- hdr.start_address = htole32(START_BASE + aligned_hdr_len); +- alligned_prog_len = ROUND_UP(prog_len); +- hdr.copy_size = htole16(aligned_hdr_len + alligned_prog_len); +- +- if (do_write(1, &hdr, sizeof(hdr)) < 0) +- return -1; +- if (write_zero(1, aligned_hdr_len - sizeof(hdr)) < 0) +- return -1; +- +- if (do_write(1, boot_program, prog_len) < 0) +- return 1; +- +- /* Write out the rest of the kernel */ +- while (1) { +- prog_len = do_read(0, boot_program, sizeof(boot_program)); +- if (prog_len < 0) +- return 1; +- if (prog_len == 0) +- break; +- if (do_write(1, boot_program, prog_len) < 0) +- return 1; +- } +- +- return 0; +-} +--- a/Documentation/arm/SH-Mobile/zboot-rom-mmcif.txt ++++ /dev/null +@@ -1,29 +0,0 @@ +-ROM-able zImage boot from MMC +------------------------------ +- +-An ROM-able zImage compiled with ZBOOT_ROM_MMCIF may be written to MMC and +-SuperH Mobile ARM will to boot directly from the MMCIF hardware block. +- +-This is achieved by the mask ROM loading the first portion of the image into +-MERAM and then jumping to it. This portion contains loader code which +-copies the entire image to SDRAM and jumps to it. From there the zImage +-boot code proceeds as normal, uncompressing the image into its final +-location and then jumping to it. +- +-This code has been tested on an AP4EB board using the developer 1A eMMC +-boot mode which is configured using the following jumper settings. +-The board used for testing required a patched mask ROM in order for +-this mode to function. +- +- 8 7 6 5 4 3 2 1 +- x|x|x|x|x| |x| +-S4 -+-+-+-+-+-+-+- +- | | | | |x| |x on +- +-The zImage must be written to the MMC card at sector 1 (512 bytes) in +-vrl4 format. A utility vrl4 is supplied to accomplish this. +- +-e.g. +- vrl4 < zImage | dd of=/dev/sdX bs=512 seek=1 +- +-A dual-voltage MMC 4.0 card was used for testing. +--- a/Documentation/arm/SH-Mobile/zboot-rom-sdhi.txt ++++ /dev/null +@@ -1,42 +0,0 @@ +-ROM-able zImage boot from eSD +------------------------------ +- +-An ROM-able zImage compiled with ZBOOT_ROM_SDHI may be written to eSD and +-SuperH Mobile ARM will to boot directly from the SDHI hardware block. +- +-This is achieved by the mask ROM loading the first portion of the image into +-MERAM and then jumping to it. This portion contains loader code which +-copies the entire image to SDRAM and jumps to it. From there the zImage +-boot code proceeds as normal, uncompressing the image into its final +-location and then jumping to it. +- +-This code has been tested on an mackerel board using the developer 1A eSD +-boot mode which is configured using the following jumper settings. +- +- 8 7 6 5 4 3 2 1 +- x|x|x|x| |x|x| +-S4 -+-+-+-+-+-+-+- +- | | | |x| | |x on +- +-The eSD card needs to be present in SDHI slot 1 (CN7). +-As such S1 and S33 also need to be configured as per +-the notes in arch/arm/mach-shmobile/board-mackerel.c. +- +-A partial zImage must be written to physical partition #1 (boot) +-of the eSD at sector 0 in vrl4 format. A utility vrl4 is supplied to +-accomplish this. +- +-e.g. +- vrl4 < zImage | dd of=/dev/sdX bs=512 count=17 +- +-A full copy of _the same_ zImage should be written to physical partition #1 +-(boot) of the eSD at sector 0. This should _not_ be in vrl4 format. +- +- vrl4 < zImage | dd of=/dev/sdX bs=512 +- +-Note: The commands above assume that the physical partition has been +-switched. No such facility currently exists in the Linux Kernel. +- +-Physical partitions are described in the eSD specification. At the time of +-writing they are not the same as partitions that are typically configured +-using fdisk and visible through /proc/partitions