summaryrefslogtreecommitdiff
path: root/libre/uboot-pandaboard-linux-libre/0001-parabola-arm-modifications.patch
blob: 01c7ca80a52b35e78107b7606f40eb4a529244a0 (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
136
137
138
139
140
141
diff --git a/include/configs/ti_omap4_common.h b/include/configs/ti_omap4_common.h
index 1c93aab..e8b6c90 100644
--- a/include/configs/ti_omap4_common.h
+++ b/include/configs/ti_omap4_common.h
@@ -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
@@ -82,6 +81,12 @@
 #undef CONFIG_CMD_NET
 #undef CONFIG_CMD_NFS
 
+/* Parabola GNU/Linux-libre extras */
+#define CONFIG_IDENT_STRING " Parabola GNU/Linux-libre"
+#define CONFIG_SUPPORT_RAW_INITRD
+#define CONFIG_CMD_PART
+#define CONFIG_PARTITION_UUIDS
+
 /*
  * Environment setup
  */
@@ -89,32 +94,57 @@
 	DEFAULT_LINUX_BOOT_ENV \
 	"console=ttyO2,115200n8\0" \
 	"fdtfile=undefined\0" \
-	"bootpart=0:2\0" \
+	"bootpart=0:1\0" \
 	"bootdir=/boot\0" \
-	"bootfile=zImage\0" \
+	"fdtdir=/boot/dtbs/linux-libre\0" \
+	"bootfile=vmlinuz-linux-libre\0" \
+	"rdfile=initramfs-linux-libre.img\0" \
 	"usbtty=cdc_acm\0" \
 	"vram=16M\0" \
 	"mmcdev=0\0" \
-	"mmcroot=/dev/mmcblk0p2 rw\0" \
-	"mmcrootfstype=ext3 rootwait\0" \
+	"optargs=\0" \
+	"mmcroot=/dev/mmcblk0p1 rw rootwait\0" \
 	"mmcargs=setenv bootargs console=${console} " \
 		"vram=${vram} " \
-		"root=${mmcroot} " \
-		"rootfstype=${mmcrootfstype}\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 mmcargs; " \
-		"bootz ${loadaddr} - ${fdtaddr}\0" \
-	"uimageboot=echo Booting from mmc${mmcdev} ...; " \
-		"run mmcargs; " \
-		"bootm ${loadaddr}\0" \
+		"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}/uboot-pandaboard-linux-libre/uEnv.txt ...;" \
+				"if test -e ${devtype} ${bootpart} ${bootdir}/uboot-pandaboard-linux-libre/uEnv.txt; then " \
+					"load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/uboot-pandaboard-linux-libre/uEnv.txt;" \
+					"env import -t ${loadaddr} ${filesize};" \
+					"echo Loaded environment from ${bootdir}/uboot-pandaboard-linux-libre/uEnv.txt;" \
+					"echo Checking if uenvcmd is set ...;" \
+					"if test -n ${uenvcmd}; then " \
+						"echo Running uenvcmd ...;" \
+						"run uenvcmd;" \
+					"fi;" \
+				"fi;" \
+				"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; " \
@@ -127,32 +157,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
-- 
2.4.2