2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-21 11:44:01 +08:00
linux-next/arch/arm/mach-shmobile
Simon Horman f45b114991 ARM: 6617/1: mmc, Add zboot from MMC support for SuperH Mobile ARM
This allows a ROM-able zImage to be written to MMC and
for SuperH Mobile ARM to boot directly from the MMCIF
hardware block.

This is achieved by the MaskROM 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.

Cc: Magnus Damm <magnus.damm@gmail.com>

Russell, please consider merging this for 2.6.38.

This patch depends on:
* "mmc, sh: Move MMCIF_PROGRESS_* into sh_mmcif.h"
  which will be merged though Paul Mundt's rmobile sh-2.6.
  The absence of this patch will break the build if
  the (new) CONFIG_ZBOOT_ROM_MMCIF option is set.
  There are no subtle side-effects.

v2:
Addressed comments by Magnus Damm
* Fix copyright in vrl4.c
* Fix use of #define CONFIG_ZBOOT_ROM_MMCIF in mmcif-sh7372.c
* Initialise LED GPIO lines in head-ap4evb.txt instead of mmcif-sh7372.c
  as this is considered board-specific.

v3:
Addressed comments made in person by Magnus Damm
* Move mmcif_loader to be earlier in the image and
  reduce the number of blocks of boot program loaded by the MaskRom
  from 40 to 8 accordingly.
* Move LED GPIO initialisation into mmcif_progress_init
  - This leaves the partner jet script unbloated
Other
* inline mmcif_update_progress so it is a static inline in a header file

v4:
* Use htole16() and htole32() in v4rl.c to ensure
  that the output is little endian

v5:
Addressed comments by Russell King
* Simplify assembly code
* Jump to code rather than an address <- bug fix
* Use (void __iomem *) as appropriate
Roll in mackerel support
* This was previously a separate patch, only because of the order
  in which this code was developed
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-01-25 15:06:52 +00:00
..
include/mach ARM: 6617/1: mmc, Add zboot from MMC support for SuperH Mobile ARM 2011-01-25 15:06:52 +00:00
board-ag5evm.c ARM: mach-shmobile: Run-time IRQ handler for GIC 2011-01-07 10:42:56 +09:00
board-ap4evb.c Merge branch 'rmobile-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2011-01-13 10:40:00 -08:00
board-g3evm.c ARM: mach-shmobile: Run-time IRQ handler for INTCA 2011-01-07 10:42:50 +09:00
board-g4evm.c ARM: mach-shmobile: sh7377 Enable SDIO IRQs 2011-01-12 14:44:34 +09:00
board-mackerel.c ARM: mach-shmobile: Kill off unused !gpio_is_valid() case 2011-01-13 15:22:04 +09:00
clock-sh73a0.c ARM: mach-shmobile: Fix up clkdev fallout for SH73A0. 2011-01-07 11:49:49 +09:00
clock-sh7367.c
clock-sh7372.c Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2011-01-06 16:50:35 -08:00
clock-sh7377.c
clock.c
console.c
entry-gic.S ARM: mach-shmobile: update for GIC changes. 2011-01-07 12:02:11 +09:00
entry-intc.S ARM: mach-shmobile: Run-time IRQ handler for INTCA 2011-01-07 10:42:50 +09:00
headsmp.S ARM: mach-shmobile: Clean up headsmp.S 2010-12-21 00:27:41 +09:00
hotplug.c
intc-sh73a0.c ARM: mach-shmobile: update for GIC changes. 2011-01-07 12:02:11 +09:00
intc-sh7367.c ARM: mach-shmobile: sh7367 Enable SDIO IRQs 2011-01-12 14:44:25 +09:00
intc-sh7372.c ARM: mach-shmobile: sh7372 Enable SDIO IRQs 2011-01-12 14:44:19 +09:00
intc-sh7377.c ARM: mach-shmobile: sh7377 Enable SDIO IRQs 2011-01-12 14:44:34 +09:00
Kconfig Merge branch 'smp' into misc 2011-01-06 22:32:03 +00:00
localtimer.c
Makefile Merge branch 'rmobile/smp' into rmobile-latest 2011-01-07 10:51:35 +09:00
Makefile.boot
pfc-sh73a0.c ARM: mach-shmobile: sh73a0 GPIO pullup improvement 2010-12-22 16:35:50 +09:00
pfc-sh7367.c
pfc-sh7372.c
pfc-sh7377.c
platsmp.c ARM: mach-shmobile: update for SMP changes. 2011-01-07 12:03:22 +09:00
pm_runtime.c
setup-sh73a0.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 into common/serial-rework 2011-01-13 15:06:28 +09:00
setup-sh7367.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 into common/serial-rework 2011-01-13 15:06:28 +09:00
setup-sh7372.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 into common/serial-rework 2011-01-13 15:06:28 +09:00
setup-sh7377.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 into common/serial-rework 2011-01-13 15:06:28 +09:00
smp-sh73a0.c ARM: mach-shmobile: update for GIC changes. 2011-01-07 12:02:11 +09:00
timer.c