summaryrefslogtreecommitdiff
path: root/libre/uboot4extlinux-omap4_panda/0001-parabola-arm-modifications.patch
blob: 09aee7ce0eb8a66f63a9ce6a9d1ab5ad7f303c99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
diff -Nur u-boot-2016.01.orig/include/configs/ti_omap4_common.h u-boot-2016.01/include/configs/ti_omap4_common.h
--- u-boot-2016.01.orig/include/configs/ti_omap4_common.h	2016-01-12 11:06:54.000000000 -0300
+++ u-boot-2016.01/include/configs/ti_omap4_common.h	2016-02-24 23:19:09.761629260 -0300
@@ -46,7 +46,6 @@
  * the timings to use or use pre-determined timings (based on using the
  * dynamic method.  Default to the static timing infomation.
  */
-#define CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
 #ifndef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
 #define CONFIG_SYS_AUTOMATIC_SDRAM_DETECTION
 #define CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
@@ -79,33 +78,74 @@
 #define CONFIG_USB_TTY			1
 #define CONFIG_SYS_CONSOLE_IS_IN_ENV	1
 
+/* Parabola GNU/Linux-libre extras */
+#define CONFIG_IDENT_STRING " Parabola GNU/Linux-libre"
+
+/* Enable Extlinux boot support */
+#define CONFIG_CMD_PXE
+#define CONFIG_MENU
+#define BOOT_TARGET_DEVICES(func)
+#include <config_distro_bootcmd.h>
+
 /*
  * Environment setup
  */
 #define CONFIG_EXTRA_ENV_SETTINGS \
+	BOOTENV \
 	DEFAULT_LINUX_BOOT_ENV \
 	DEFAULT_MMC_TI_ARGS \
 	"console=ttyO2,115200n8\0" \
 	"fdtfile=undefined\0" \
 	"bootpart=0:2\0" \
 	"bootdir=/boot\0" \
+	"fdtdir=/boot/dtbs\0" \
 	"bootfile=zImage\0" \
+	"rdfile=initramfs-linux.img\0" \
 	"usbtty=cdc_acm\0" \
 	"vram=16M\0" \
-	"loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr\0" \
-	"bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
-		"source ${loadaddr}\0" \
-	"loadbootenv=load mmc ${mmcdev} ${loadaddr} uEnv.txt\0" \
-	"importbootenv=echo Importing environment from mmc${mmcdev} ...; " \
-		"env import -t ${loadaddr} ${filesize}\0" \
-	"loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
-	"loaduimage=load mmc ${mmcdev} ${loadaddr} uImage\0" \
-	"mmcboot=echo Booting from mmc${mmcdev} ...; " \
-		"run args_mmc; " \
-		"bootz ${loadaddr} - ${fdtaddr}\0" \
-	"uimageboot=echo Booting from mmc${mmcdev} ...; " \
-		"run args_mmc; " \
-		"bootm ${loadaddr}\0" \
+	"optargs=\0" \
+	"mmcargs=setenv bootargs console=${console} " \
+		"vram=${vram} " \
+		"root=${root} " \
+		"${optargs}\0" \
+	"loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
+	"loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}\0" \
+	"loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${devtype} ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}\0" \
+	"mmcboot=usb start;" \
+		"for devtype in mmc usb; do " \
+			"setenv devnum 0;" \
+			"while ${devtype} dev ${devnum}; do " \
+				"echo ${devtype} found on device ${devnum};" \
+				"setenv bootpart ${devnum}:1;" \
+				"part uuid ${devtype} ${bootpart} uuid;" \
+				"setenv root PARTUUID=${uuid} rw rootwait;" \
+				"echo Checking for: ${bootdir}/uEnv.txt ...;" \
+				"if test -e ${devtype} ${bootpart} ${bootdir}/uEnv.txt; then " \
+					"load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/uEnv.txt;" \
+					"env import -t ${loadaddr} ${filesize};" \
+					"echo Loaded environment from ${bootdir}/uEnv.txt;" \
+					"echo Checking if uenvcmd is set ...;" \
+					"if test -n ${uenvcmd}; then " \
+						"echo Running uenvcmd ...;" \
+						"run uenvcmd;" \
+					"fi;" \
+				"fi;" \
+				"run scan_dev_for_boot;" \
+				"if run loadimage; then " \
+					"run mmcargs;" \
+					"if run loadfdt; then " \
+						"if run loadrd; then " \
+							"bootz ${loadaddr} ${rdaddr}:${filesize} ${fdtaddr};" \
+						"else " \
+							"bootz ${loadaddr} - ${fdtaddr};" \
+						"fi;" \
+					"fi;" \
+				"else " \
+					"echo No kernel found;" \
+				"fi;" \
+				"setexpr devnum ${devnum} + 1;" \
+			"done;" \
+		"done;\0" \
 	"findfdt="\
 		"if test $board_name = sdp4430; then " \
 			"setenv fdtfile omap4-sdp.dtb; fi; " \
@@ -118,32 +158,11 @@
 		"if test $board_name = duovero; then " \
 			"setenv fdtfile omap4-duovero-parlor.dtb; fi;" \
 		"if test $fdtfile = undefined; then " \
-			"echo WARNING: Could not determine device tree to use; fi; \0" \
-	"loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \
+			"echo WARNING: Could not determine device tree to use; fi; \0"
 
 #define CONFIG_BOOTCOMMAND \
 	"run findfdt; " \
-	"mmc dev ${mmcdev}; if mmc rescan; then " \
-		"echo SD/MMC found on device ${mmcdev};" \
-		"if run loadbootscript; then " \
-			"run bootscript; " \
-		"else " \
-			"if run loadbootenv; then " \
-				"run importbootenv; " \
-			"fi;" \
-			"if test -n ${uenvcmd}; then " \
-				"echo Running uenvcmd ...;" \
-				"run uenvcmd;" \
-			"fi;" \
-		"fi;" \
-		"if run loadimage; then " \
-			"run loadfdt;" \
-			"run mmcboot; " \
-		"fi; " \
-		"if run loaduimage; then " \
-			"run uimageboot;" \
-		"fi; " \
-	"fi"
+	"run mmcboot"
 
 /*
  * Defines for SPL