📄 config-gta02v5-beyond.patch
字号:
This set of changes makes u-boot detect hardware revisions >= GTA02v5 at runtime instead of build time. The revision tag and the boot prompt are adjustedaccordingly.Note that new code should use gta02_revision for feature tests, not CONFIG_GTA02_REVISION !For backward-compatibility, "make gta02v6_config" is still supported (andyields exactly the same result as "make gta02v5_config".Index: u-boot/Makefile===================================================================--- u-boot.orig/Makefile+++ u-boot/Makefile@@ -2437,7 +2437,8 @@ gta02v2_config \ gta02v3_config \ gta02v4_config \-gta02v5_config: unconfig+gta02v5_config \+gta02v6_config: unconfig @sh board/neo1973/gta02/split_by_variant.sh $@ gta01_config \Index: u-boot/board/neo1973/gta02/gta02.c===================================================================--- u-boot.orig/board/neo1973/gta02/gta02.c+++ u-boot/board/neo1973/gta02/gta02.c@@ -67,6 +67,13 @@ extern unsigned char booted_from_nand; extern unsigned char booted_from_nor; extern int nobootdelay;+char __cfg_prompt[20] = "GTA02vXX # ";++/*+ * In >GTA02v5, use gta02_revision to test for features, not+ * CONFIG_GTA02_REVISION or CONFIG_ARCH_GTA02_vX !+ */+int gta02_revision; int gta02_get_pcb_revision(void); @@ -253,6 +260,37 @@ return 0; } +static void set_revision(void)+{+ int rev = gta02_get_pcb_revision();+ char buf[32];++ if (CONFIG_GTA02_REVISION < 5)+ gta02_revision = CONFIG_GTA02_REVISION;+ else {+ switch (rev) {+ case 0x000:+ gta02_revision = 5;+ break;+ case 0x001:+ gta02_revision = 6;+ break;+ default:+ printf("Unrecognized hardware revision 0x%03x. "+ "Defaulting to GTA02v6.\n", rev);+ gta02_revision = 6;+ }+ }+ sprintf(__cfg_prompt, "GTA02v%d # ", gta02_revision);++#if 1 /* remove these after checking that Andy doesn't need them anymore */+ printf("PCB rev: 0x%03X\n", rev);+ /* expose in the env so we can add to kernel commandline */+ sprintf(buf, "0x%03X", rev);+ setenv("pcb_rev", buf);+#endif+}+ int board_late_init(void) { S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();@@ -260,12 +298,8 @@ char buf[32]; int menu_vote = 0; /* <= 0: no, > 0: yes */ int seconds = 0;- int rev = gta02_get_pcb_revision(); - printf("PCB rev: 0x%03X\n", rev);- /* expose in the env so we can add to kernel commandline */- sprintf(buf, "0x%03X", rev);- setenv("pcb_rev", buf);+ set_revision(); /* Initialize the Power Management Unit with a safe register set */ pcf50633_init();@@ -378,7 +412,7 @@ u_int32_t get_board_rev(void) {- return 0x300+0x10*CONFIG_GTA02_REVISION;+ return 0x300+0x10*gta02_revision; } void neo1973_poweroff(void)@@ -546,7 +580,7 @@ /** * returns PCB revision information in b9,b8 and b2,b1,b0 * Pre-GTA02 A6 returns 0x000- * GTA02 A6 returns 0x101+ * GTA02 A6 returns 0x001 */ int gta02_get_pcb_revision(void)Index: u-boot/board/neo1973/gta02/split_by_variant.sh===================================================================--- u-boot.orig/board/neo1973/gta02/split_by_variant.sh+++ u-boot/board/neo1973/gta02/split_by_variant.sh@@ -42,19 +42,12 @@ echo "CONFIG_USB_DFU_REVISION=0x0340" > $CFGTMP ;; - gta02v5_config)+ gta02v5_config|gta02v6_config) echo "#define CONFIG_ARCH_GTA02_v5" > $CFGINC echo "#define CONFIG_GTA02_REVISION 5" >> $CFGINC echo "CONFIG_USB_DFU_REVISION=0x0350" > $CFGTMP ;; - gta02v6_config)- echo "#define CONFIG_ARCH_GTA02_v6" > $CFGINC- echo "#define CONFIG_GTA02_REVISION 6" >> $CFGINC- echo "CONFIG_USB_DFU_REVISION=0x0360" > $CFGTMP- ;;-- *) echo "$0:: Unrecognised config - using GTA02v5 config" echo "#define CONFIG_ARCH_GTA02_v5" > $CFGINC@@ -65,6 +58,7 @@ esac fi+sed 's/^/#define /;s/=/ /' <$CFGTMP >>$CFGINC # --------------------------------------------------------- # Complete the configuration # ---------------------------------------------------------Index: u-boot/include/configs/neo1973_gta02.h===================================================================--- u-boot.orig/include/configs/neo1973_gta02.h+++ u-boot/include/configs/neo1973_gta02.h@@ -127,8 +127,12 @@ #define STRINGIFY(s) DO_STRINGIFY(s) /* expand the argument */ #define DO_STRINGIFY(s) #s /* quote it */-#define CFG_PROMPT "GTA02v" STRINGIFY(CONFIG_GTA02_REVISION) " # "+#define CFG_PROMPT __cfg_prompt /* Monitor Command Prompt */+#ifndef __ASSEMBLY__+extern char __cfg_prompt[20];+#endif+ #if defined(CONFIG_ARCH_GTA02_v1) #define CONFIG_S3C2440 1 /* SAMSUNG S3C2440 SoC */ #else@@ -293,4 +297,8 @@ #define DFU_NUM_ALTERNATES 7 +#ifndef __ASSEMBLY__+extern int gta02_revision; /* use this instead of CONFIG_GTA02_REVISION */+#endif+ #endif /* __CONFIG_H */Index: u-boot/drivers/usb/usbdfu.c===================================================================--- u-boot.orig/drivers/usb/usbdfu.c+++ u-boot/drivers/usb/usbdfu.c@@ -101,7 +101,7 @@ trailer->product != CONFIG_USBD_PRODUCTID_GSERIAL)) return 0; #ifdef CONFIG_REVISION_TAG- if (trailer->revision != get_board_rev())+ if (trailer->revision != CONFIG_USB_DFU_REVISION) return 0; #endif Index: u-boot/board/neo1973/gta01/split_by_variant.sh===================================================================--- u-boot.orig/board/neo1973/gta01/split_by_variant.sh+++ u-boot/board/neo1973/gta01/split_by_variant.sh@@ -58,6 +58,7 @@ esac fi+sed 's/^/#define /;s/=/ /' <$CFGTMP >>$CFGINC # --------------------------------------------------------- # Complete the configuration # ---------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -