e9ad412049
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>
41 lines
903 B
Diff
41 lines
903 B
Diff
--- a/board/mediatek/mt7622/mt7622_rfb.c
|
|
+++ b/board/mediatek/mt7622/mt7622_rfb.c
|
|
@@ -6,9 +6,16 @@
|
|
|
|
#include <common.h>
|
|
#include <config.h>
|
|
+#include <dm.h>
|
|
+#include <button.h>
|
|
#include <env.h>
|
|
#include <init.h>
|
|
#include <asm/global_data.h>
|
|
+#include <linux/delay.h>
|
|
+
|
|
+#ifndef CONFIG_RESET_BUTTON_LABEL
|
|
+#define CONFIG_RESET_BUTTON_LABEL "reset"
|
|
+#endif
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
@@ -20,7 +27,19 @@ int board_init(void)
|
|
|
|
int board_late_init(void)
|
|
{
|
|
- gd->env_valid = 1; //to load environment variable from persistent store
|
|
+ struct udevice *dev;
|
|
+ int ret;
|
|
+
|
|
+ ret = !!button_get_by_label(CONFIG_RESET_BUTTON_LABEL, &dev);
|
|
+
|
|
+ if (!ret) {
|
|
+#ifdef CONFIG_RESET_BUTTON_SETTLE_DELAY
|
|
+ udelay(1000 * CONFIG_RESET_BUTTON_SETTLE_DELAY);
|
|
+#endif
|
|
+ ret = !button_get_state(dev);
|
|
+ }
|
|
+
|
|
+ gd->env_valid = ret; //to load environment variable from persistent store
|
|
env_relocate();
|
|
return 0;
|
|
}
|