You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/target/linux
Linus Walleij dc451a4b24 gemini: Enable flash boot on reference design type
The flash layout on the Storlink reference design for Gemini
is using 2 MB flash for the kernel, and it also insists on
overwriting the partition table with default values on every
boot. The same is true for the SQ201. This poses a problem
on recent OpenWrt firmware as the base zImage is bigger
than 2 MB.

At the same time there is a ramdisk partition of 6 MB that we
don't really need. The partition table looks like this:

Creating 7 MTD partitions on "30000000.flash":
0x000000000000-0x000000016000 : "BOOT"
0x000000120000-0x000000320000 : "Kern"
0x000000320000-0x000000920000 : "Ramdisk"
0x000000920000-0x000000f20000 : "Application"
0x000000f20000-0x000000f40000 : "VCTL"
0x000000f40000-0x000000fe0000 : "CurConf"
0x000000fe0000-0x000001000000 : "FIS directory"

On boot the "Kern" partition is copied to RAM @0x01600000
and the "Ramdisk" partition is copied to RAM @0x00800000.
Then the kernel is executed.

The idea with this patch is to extend the "Kern" partition
with the "Ramdisk" partition to get a full 8 MB to use
for the kernel. Then we put the OpenWrt JFFS2 rootfs
inside the "Application" partition.

We create a small assembly loop that we prepend to the
"Kern" image that will copy the "Kern" from 0x0160000
and the "Ramdisk" from 0x00800000 and put them in
consecutive space at 0x00400000 and execute it from
there, using "Application" as rootfs.

We generate 3 main files:
- zImage - contains the assembly bootstrap loop and
  the first part of the generated kernel image
- rd.gz - contains the second part of the generated
  kernel image
- hddapp.tgz - contains the root filesystem

On the SQ201 I flash these manually using the native boot
loader PLATO, "Y" alternative for the zImage, "R" for
the rd.gz image and "A" for hddapp.tgz.

This works fine and I can now boot to prompt on the SQ201
with nothing but flash.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
5 years ago
..
apm821xx treewide: convert WiFi caldata size and offset to hexadecimal 5 years ago
ar7 kernel: bump 4.9 to 4.9.186 5 years ago
ar71xx treewide: convert WiFi caldata size and offset to hexadecimal 5 years ago
arc770 treewide: use wpad-basic for not small flash targets 6 years ago
archs38 treewide: use wpad-basic for not small flash targets 6 years ago
armvirt armvirt: fix overlay support by updating to f2fs/ext4 based overlays 5 years ago
at91 at91: split up DEVICE_TITLE 5 years ago
ath25 ath25: split up DEVICE_TITLE 5 years ago
ath79 ath79: remove SUPPORTED_DEVICES for TP-Link Archer D50 v1 5 years ago
bcm53xx bcm53xx: split up DEVICE_TITLE 5 years ago
brcm47xx kernel: bump 4.19 to 4.19.62 5 years ago
brcm63xx brcm63xx: do not build images for 16 MiB RAM devices by default 5 years ago
brcm2708 kernel: bump 4.19 to 4.19.66 5 years ago
cns3xxx treewide: sysupgrade: don't use $ARGV in platform_do_upgrade() 5 years ago
gemini gemini: Enable flash boot on reference design type 5 years ago
generic kernel: bump 4.19 to 4.19.66 5 years ago
imx6 imx6: bump SDMA firmware to 3.5 5 years ago
ipq40xx ipq40xx: fix AVM NAND caldata extraction 5 years ago
ipq806x treewide: convert WiFi caldata size and offset to hexadecimal 5 years ago
ixp4xx kernel: bump 4.9 to 4.9.187 5 years ago
kirkwood treewide: sysupgrade: don't use $ARGV in platform_do_upgrade() 5 years ago
lantiq lantiq: unify Fritz!Box LED mappings 5 years ago
layerscape kernel: bump 4.14 to 4.14.136 5 years ago
malta malta: fix overlay support by updating to f2fs/ext4 based overlays 5 years ago
mediatek kernel: bump 4.19 to 4.19.64 5 years ago
mpc85xx treewide: convert WiFi caldata size and offset to hexadecimal 5 years ago
mvebu mvebu: sysupgrade: sdcard: fix platform_do_upgrade_sdcard 5 years ago
mxs mxs: disable unused serial drivers 5 years ago
octeon octeon: split up DEVICE_TITLE 5 years ago
octeontx kernel: Remove CONFIG_COMPAT 5 years ago
omap kernel: Deactivate CONFIG_BINFMT_MISC 5 years ago
orion orion: sysupgrade: change platform_check_image() args validation 5 years ago
oxnas oxnas: convert DEVICE_TITLE to new variables 5 years ago
pistachio treewide: sysupgrade: get rid of platform_nand_pre_upgrade() 5 years ago
ramips treewide: convert WiFi caldata size and offset to hexadecimal 5 years ago
rb532 treewide: sysupgrade: get rid of platform_nand_pre_upgrade() 5 years ago
samsung kernel: Do not set CONFIG_DEVMEM or CONFIG_DEVKMEM 5 years ago
sunxi sunxi: convert to multi-variable device title 5 years ago
tegra tegra: split up DEVICE_TITLE 5 years ago
uml kernel: Deactivate CONFIG_BINFMT_MISC 5 years ago
x86 x86: add modern network modules to Generic target 5 years ago
zynq zynq: remove kernel 4.14 support 5 years ago
Makefile