From 0e1e663fc604a9b245d0b442799cbf1ad33e6630 Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Wed, 22 May 2024 11:42:17 +0800 Subject: [PATCH] add u-boot patch --- bootloader/patches/loragw/u-boot-at91-linux4sam-6.1.patch | 235 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 235 insertions(+), 0 deletions(-) diff --git a/bootloader/patches/loragw/u-boot-at91-linux4sam-6.1.patch b/bootloader/patches/loragw/u-boot-at91-linux4sam-6.1.patch new file mode 100644 index 0000000..d394a21 --- /dev/null +++ b/bootloader/patches/loragw/u-boot-at91-linux4sam-6.1.patch @@ -0,0 +1,235 @@ +diff -Nuar u-boot-at91/arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c u-boot-at91-loragw/arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c +--- u-boot-at91/arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c 2019-12-09 22:12:00.000000000 +0800 ++++ u-boot-at91-loragw/arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c 2024-05-22 11:40:07.019509486 +0800 +@@ -164,6 +164,7 @@ + #if defined(CONFIG_USB_OHCI_NEW) || defined(CONFIG_USB_EHCI) + void at91_uhp_hw_init(void) + { ++#if 0 /* comment by guowenxue 2020.12.4, PD18 conflict with Relay control board on LoRaGW V2 */ + /* Enable VBus on UHP ports */ + at91_set_pio_output(AT91_PIO_PORTD, 18, 0); /* port A */ + at91_set_pio_output(AT91_PIO_PORTD, 19, 0); /* port B */ +@@ -171,6 +172,7 @@ + /* port C is OHCI only */ + at91_set_pio_output(AT91_PIO_PORTD, 20, 0); /* port C */ + #endif ++#endif + } + #endif + +diff -Nuar u-boot-at91/board/atmel/at91sam9x5ek/at91sam9x5ek.c u-boot-at91-loragw/board/atmel/at91sam9x5ek/at91sam9x5ek.c +--- u-boot-at91/board/atmel/at91sam9x5ek/at91sam9x5ek.c 2019-12-09 22:12:00.000000000 +0800 ++++ u-boot-at91-loragw/board/atmel/at91sam9x5ek/at91sam9x5ek.c 2024-05-22 11:40:07.019509486 +0800 +@@ -263,6 +263,9 @@ + /* adress of boot parameters */ + gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100; + ++ /* PD18 is for relay and active on lowlevel, add by guowenxue 2020.12.4 */ ++ at91_set_pio_output(AT91_PIO_PORTD, 18, 1); ++ + #ifdef CONFIG_CMD_NAND + at91sam9x5ek_nand_hw_init(); + #endif +diff -Nuar u-boot-at91/common/autoboot.c u-boot-at91-loragw/common/autoboot.c +--- u-boot-at91/common/autoboot.c 2019-12-09 22:12:00.000000000 +0800 ++++ u-boot-at91-loragw/common/autoboot.c 2024-05-22 11:40:07.019509486 +0800 +@@ -161,9 +161,11 @@ + */ + if (bootdelay >= 0) { + if (tstc()) { /* we got a key press */ +- (void) getc(); /* consume input */ +- puts("\b\b\b 0"); +- abort = 1; /* don't auto boot */ ++ if(27==getc()) /* Only get ECS key will skip autoboot, add by guowenxue 2019.12.10 */ ++ { ++ puts("\b\b\b 0"); ++ abort = 1; /* don't auto boot */ ++ } + } + } + #endif +@@ -174,14 +176,12 @@ + ts = get_timer(0); + do { + if (tstc()) { /* we got a key press */ +- abort = 1; /* don't auto boot */ +- bootdelay = 0; /* no more delay */ +-# ifdef CONFIG_MENUKEY +- menukey = getc(); +-# else +- (void) getc(); /* consume input */ +-# endif +- break; ++ if(27==getc()) /* Only get ECS key will skip autoboot, add by guowenxue 2019.12.10 */ ++ { ++ abort = 1; /* don't auto boot */ ++ bootdelay = 0; /* no more delay */ ++ break; ++ } + } + udelay(10000); + } while (!abort && get_timer(ts) < 1000); +diff -Nuar u-boot-at91/common/board_r.c u-boot-at91-loragw/common/board_r.c +--- u-boot-at91/common/board_r.c 2019-12-09 22:12:00.000000000 +0800 ++++ u-boot-at91-loragw/common/board_r.c 2024-05-22 11:40:07.019509486 +0800 +@@ -427,6 +427,17 @@ + else + set_default_env(NULL); + ++ /* add by guowenxue, 2019.12.10. For auto detect rootfs type for 4K/2K nandflash */ ++ if( !getenv("nand_pagesize") ) ++ { ++ char buf[64]={'\0'}; ++ extern int g_nand_erasesize; /* defined in drivers/mtd/nand/atmel_nand.c */ ++ ++ snprintf(buf, sizeof(buf), "p%dk", g_nand_erasesize); ++ setenv("nand_pagesize", buf); ++ saveenv(); ++ } ++ + /* Initialize from environment */ + load_addr = getenv_ulong("loadaddr", 16, load_addr); + #if defined(CONFIG_SYS_EXTBDINFO) +diff -Nuar u-boot-at91/drivers/mtd/nand/atmel_nand.c u-boot-at91-loragw/drivers/mtd/nand/atmel_nand.c +--- u-boot-at91/drivers/mtd/nand/atmel_nand.c 2019-12-09 22:12:00.000000000 +0800 ++++ u-boot-at91-loragw/drivers/mtd/nand/atmel_nand.c 2024-05-22 11:40:07.019509486 +0800 +@@ -20,6 +20,8 @@ + #include <watchdog.h> + #include <linux/mtd/nand_ecc.h> + ++int g_nand_erasesize; /* add by guowenxue, 2019.12.10 */ ++ + #ifdef CONFIG_ATMEL_NAND_HWECC + + /* Register access macros */ +@@ -1519,6 +1521,7 @@ + if (!ret) + nand_register(devnum); + ++ g_nand_erasesize = mtd->writesize/1024; /* add by guowenxue, 2019.12.10 */ + return ret; + } + +diff -Nuar u-boot-at91/include/configs/at91sam9x5ek.h u-boot-at91-loragw/include/configs/at91sam9x5ek.h +--- u-boot-at91/include/configs/at91sam9x5ek.h 2019-12-09 22:12:00.000000000 +0800 ++++ u-boot-at91-loragw/include/configs/at91sam9x5ek.h 2024-05-22 11:40:07.019509486 +0800 +@@ -52,7 +52,7 @@ + #define CONFIG_ATMEL_LCD_RGB565 + #define CONFIG_SYS_CONSOLE_IS_IN_ENV + +-#define CONFIG_BOOTDELAY 3 ++#define CONFIG_BOOTDELAY 1 + + /* + * BOOTP options +@@ -98,7 +98,7 @@ + #ifdef CONFIG_CMD_SF + #define CONFIG_ATMEL_SPI + #define CONFIG_SPI_FLASH +-#define CONFIG_SPI_FLASH_ATMEL ++#define CONFIG_SPI_FLASH_WINBOND /* modify by guowenxue, 2019.12.09 */ + #define CONFIG_SF_DEFAULT_SPEED 30000000 + #endif + +@@ -182,15 +182,13 @@ + "0x22000000 0x200000 0x300000; " \ + "bootm 0x22000000" + #elif defined(CONFIG_SYS_USE_SPIFLASH) +-/* bootstrap + u-boot + env + linux in spi flash */ +-#define CONFIG_ENV_IS_IN_SPI_FLASH +-#define CONFIG_ENV_OFFSET 0x5000 +-#define CONFIG_ENV_SIZE 0x3000 +-#define CONFIG_ENV_SECT_SIZE 0x1000 +-#define CONFIG_ENV_SPI_MAX_HZ 30000000 +-#define CONFIG_BOOTCOMMAND "sf probe 0; " \ +- "sf read 0x22000000 0x100000 0x300000; " \ +- "bootm 0x22000000" ++ ++/* bootstrap + u-boot in SPI flash and env + linux in nandflash, modify by guowenxue */ ++#define CONFIG_ENV_IS_IN_NAND ++#define CONFIG_ENV_OFFSET 0xC0000 ++#define CONFIG_ENV_SIZE 0x20000 ++#define CONFIG_BOOTCOMMAND "nand read 0x22000000 0x100000 0x700000; bootm 0x22000000" ++ + #elif defined(CONFIG_SYS_USE_DATAFLASH) + /* bootstrap + u-boot + env + linux in data flash */ + #define CONFIG_ENV_IS_IN_SPI_FLASH +@@ -220,12 +218,35 @@ + #else + #define CONFIG_BOOTARGS \ + "console=ttyS0,115200 earlyprintk " \ +- "mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro," \ +- "256k(env),256k(env_redundant),256k(spare)," \ +- "512k(dtb),6M(kernel)ro,-(rootfs) " \ +- "rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs rw" ++ "rootfstype=ubifs ubi.mtd=2 root=ubi0:rootfs rw" + #endif + ++/* Add by guowenxue, 2019.12.9 */ ++#define CONFIG_FIT 1 ++#define CONFIG_ENV_OVERWRITE 1 ++#define CONFIG_ETHADDR 42:96:ab:be:a7:5d ++#define CONFIG_IPADDR 192.168.2.196 ++#define CONFIG_SERVERIP 192.168.2.2 ++ ++#define CONFIG_BOARDNAME "LoRaGW" ++#define CONFIG_TFTPBOOT "tftp 0x22000000 linuxrom-${boardname}.itb && bootm 0x22000000" ++ ++#define CONFIG_BBL "sf probe && tftp 0x22000000 bootstrap-${boardname}.bin && " \ ++ "tftp 0x23000000 u-boot-${boardname}.bin && " \ ++ "sf erase 0 A0000 && sf write 0x22000000 0 3000 && sf write 0x23000000 8000 80000" ++ ++#define CONFIG_BKR "tftp 0x22000000 linuxrom-${boardname}.itb && nand erase 0x100000 0x700000; " \ ++ "nand write 0x22000000 0x100000 ${filesize}" ++ ++#define CONFIG_BFS "tftp 0x21000000 rootfs-${boardname}.ubi-${nand_pagesize} && nand erase 800000 6400000; " \ ++ "nand write 0x21000000 800000 ${filesize}" ++ ++#define CONFIG_BSYS "run bkr; run bfs" ++#define CONFIG_CLRAPPS "nand erase d000000 13000000" ++#define CONFIG_CLRENV "nand erase 0 100000" ++#define CONFIG_DBGRUN "run bfs; run tb" ++/* add end */ ++ + #define CONFIG_BAUDRATE 115200 + + #define CONFIG_SYS_PROMPT "U-Boot> " +diff -Nuar u-boot-at91/include/env_default.h u-boot-at91-loragw/include/env_default.h +--- u-boot-at91/include/env_default.h 2019-12-09 22:12:00.000000000 +0800 ++++ u-boot-at91-loragw/include/env_default.h 2024-05-22 11:40:07.019509486 +0800 +@@ -76,6 +76,35 @@ + #ifdef CONFIG_SERVERIP + "serverip=" __stringify(CONFIG_SERVERIP) "\0" + #endif ++/* add by guowenxue, 2019.08.22 */ ++#ifdef CONFIG_BOARDNAME ++ "boardname=" CONFIG_BOARDNAME "\0" ++#endif ++#ifdef CONFIG_TFTPBOOT ++ "tb=" CONFIG_TFTPBOOT "\0" ++#endif ++#ifdef CONFIG_BBL ++ "bbl=" CONFIG_BBL "\0" ++#endif ++#ifdef CONFIG_BKR ++ "bkr=" CONFIG_BKR "\0" ++#endif ++#ifdef CONFIG_BFS ++ "bfs=" CONFIG_BFS "\0" ++#endif ++#ifdef CONFIG_BSYS ++ "bsys=" CONFIG_BSYS "\0" ++#endif ++#ifdef CONFIG_CLRAPPS ++ "clrapps=" CONFIG_CLRAPPS "\0" ++#endif ++#ifdef CONFIG_CLRENV ++ "clrenv=" CONFIG_CLRENV "\0" ++#endif ++#ifdef CONFIG_DBGRUN ++ "dbg=" CONFIG_DBGRUN "\0" ++#endif ++/* add end */ + #ifdef CONFIG_SYS_AUTOLOAD + "autoload=" CONFIG_SYS_AUTOLOAD "\0" + #endif -- Gitblit v1.9.1