Brings bootmenu and production/recovery dual-boot scheme like on
the BPi-R2, BPi-R64, E8450 and UniFi 6 LR.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Using Host/Exports doesn't work as intended, explicitly add the
required vars so that u-boot finds the required libraries when building
its tools.
Signed-off-by: Andre Heider <a.heider@gmail.com>
U-Boot 2021.10 has been released.
Rebase mediatek patches on top of new release and remove some patches
which have been merged upstream.
Tested on Bananapi BPi-R2 (mt7623), Bananapi BPi-R64 (mt7622) and
Linksys E8450 (mt7622).
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Fix BPi-R2 GPIO LEDs to indicate boot into production or recovery
firmware in DTS and define them in default environment.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
BananaPi BPi-R2 comes with HDMI and MIPI-DSI. Use dislpay facility in
Linux by add "console=tty1" boot argument.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
As the board name was changed to be identical to the device tree
compatible string (just like for other boards), also reflect that
change for U-Boot.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* use built-in default environment instead of file in bootfs
* get rid of bootfs alltogether and use uImage.FIT
* auto-detect boot device like original script did
* add support for factory button
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ! Behavior change !
Old behavior: If the Reset button is held down during power-on
do factory reset and try booting recovery from TFTP forever.
If valid recovery is received via TFTP, write it to flash and boot.
New behavior: If the Reset button is held down during power-on
do factory reset, then try TFTP *once*, then try booting on-flash
recovery, then keep trying via TFTP forever until a valid image is
received.
Only if there is no bootable recovery stored on flash, store the
downloaded recovery. Then boot it.
* Set loadaddr to 0x48000000 in order to allow booting images larger
than ~47MB (reported by Oskari Lemmelä). Setting loadaddr to
0x48000000 gives us 384MB on devices with 512MB RAM, which should be
more than enough as a maximum size for uImage.FIT to be loaded.
* Widely unify device-specific default environment in preparation to
auto-generate it from parameters.
* backport upstream commit fixing MBR/DOS partitioning
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Add support for pstore/ramoops now that DRAM content is preserved
over reboot on MT7622. On each boot, check pstore and boot to recovery
image in case there are records stored in it.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
mtd erase needs to be aligned with erase blocks. Use padded image size
for erasing the production volume.
As the environment grew above the current size of 0x1000 bytes by
introducing the new padding function, increase the env size to 0x4000.
While at it, clean up reset button function to work to more reliable on
that board.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Erase firmware ereas before writing to recovery or production partition
when updating them via the bootloader menu.
Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* check image checksums before writing to flash
* only bootmenu_0...9 are working, remove bootmenu_a entry
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Some of bpi-r64 boards have serial NAND attached to SPI bus.
Build U-Boot for booting from SPI-NAND.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
Add U-Boot build for the Ubiquiti Networks UniFi 6 LR access point.
This allows updating the bootchain to modern ARM Trusted Firmware 2.4
and U-Boot 2021.04 while keeping as much of the existing flash layout
as possible (u-boot-env, factory and eeprom partitions are retained),
gaining robust recovery vs. production dual-boot mechanism.
Add info for the Winbond W25Q512JV SPI NOR flash used in the device
and wait for GPIOs to settle after reset before checking for reset
button.
I2C connected LED controller is not supported yet.
Writing large amounts of data to SPI flash currently doesn't work due
to watchdog timeout causing reset before data write completes.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Now that sdcard.gz image contains everything needed to boot straight
into production image, no longer force booting into recovery image on
first boot by removing the logic which implemented that.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Allow selecting either SATA or PCIE functionality using uImage.FIT
configurations and device-tree overlays.
By default, PCIE1 is selected (as it has been before this change).
To select SATA instead, you can do this now:
fw_setenv bootconf config-mt7622-bananapi-bpi-r64-sata
and reboot.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Make installation to eMMC more convenient on the BPi-R64 by also
copying the production image (if valid) from SD Card to eMMC.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Instead of building all U-Boot variants by default, build only those
needed by the selected board(s).
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Import patch form Frank Wunderlich <frank-w@public-files.de> to fix
build of MediaTek AHCI SATA driver.
Enable that driver on Bananapi BPi-R64.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Copy patch added to uboot-sunxi by commit 3cc57ba462
("uboot-sunxi: add missing type __u64") also to uboot-mediatek.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* make sure USB 2.0 works (useful for UEFI-booting eg. memtest86)
* include more useful U-Boot config options on BPi-R64.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
MediaTek published their current U-Boot patchset on github:
https://github.com/mtk-openwrt/u-boot/commits/mtksoc
Import the platform patches from there (`00-mtk-*.patch`), arrange,
them nicely, drop no longer needed local patches and rebase on top of
U-Boot 2021.04-rc3.
Tested and works well on Linksys E8450 (snand-1ddr) as well as
Bananapi BPi-R64 (sdmmc-2ddr, emmc-2ddr).
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* allow MAC address from U-Boot env to be inhertied
* allow eMMC installation to succeed also without recovery present
on the SD Card.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Write everything needed for eMMC install into the gaps between
partitions on SD card. In that way, installation to eMMC only needs
the SD card, no additional files need to be loaded via TFTP any more.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Provide U-Boot variants for SD-card as well as eMMC boot, so we can
generate whole-disk images for the device.
While at it, rename 'mt7622' to 'mt7622-rfb1' to make it less confusing
now that more boards are being added.
Thanks to Frank Wunderlich (@frank-w) for making that nice SVG image
explaining the MMC boot process[1] and for providing the necessary
binary header blobs.
[1]: https://github.com/frank-w/BPI-R64-ATF
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Build U-Boot for the Linksys E8450 in order to have support for UBI.
The loader has a default environment with scripts handling the reset
button as well as fall-back to recovery firmware. If the loader comes
up without a valid environment found in UBI, it will automatically
make sure UBI is formatted and create a new environment and proceed
to load recovery firmware (either from UBI or via TFTP if recovery is
corrupted or unavailable).
If the button is held down during power-on, the yellow status LED
turns on and the bootloader environment is reset to factory defaults.
If the button is released at this point, the recovery firmware (if
existing) is loaded from UBI and booted.
If the button is continously held down even beyond the point that
the yellow LED turned on, the loader will try to load the recovery
firmware via TFTP from server 192.168.1.254, write it to UBI and
boot.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Now that my patches have been merged into upstream U-Boot, resync the
cosmetic changes and the commit IDs from the final commits.
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Ever since this package was introduced, the SDK for mt7629 failed to
build as it started failing on this package.
Fixed by porting Hauke's similar patch for uboot-sunxi to uboot-mediatek.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Instead of building in a default environment which loads our environment
from the FAT partition.... just ask U-Boot to do it.
Submitted upstream at
https://patchwork.ozlabs.org/project/uboot/list/?series=184688
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
For building full SD/eMMC images for Banana Pi R2 we'll want a u-boot
image built for that platform.
Signed-off-by: David Woodhouse <dwmw2@infradead.org>