aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/at91bootstrap/at91bootstrap-3.1.2/0039-Add-falback-images-for-SD-Card.patch
blob: 17abcda9404df040a5a98ac1226b16fd0d54e709 (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
From dccafc454105dba916c0b3e56dfaa95393242cee Mon Sep 17 00:00:00 2001
From: Ulf Samuelsson <ulf_samuelsson@telia.com>
Date: Fri, 28 Oct 2011 12:47:58 +0200
Subject: [PATCH 39/39] Add falback images for SD-Card

---
 driver/MEDSdcard.c |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/driver/MEDSdcard.c b/driver/MEDSdcard.c
index 8c6a36a..1545634 100644
--- a/driver/MEDSdcard.c
+++ b/driver/MEDSdcard.c
@@ -52,6 +52,9 @@ extern	unsigned int altboot;
 #define	IMAGE_NAME	OS_IMAGE_NAME
 #endif
 
+#define	IMAGE_FALLBACK1	CONFIG_BOARD "\\U-BOOT.BIN"
+#define	IMAGE_FALLBACK2	"U-BOOT.BIN"
+
 //------------------------------------------------------------------------------
 //         Constants
 //------------------------------------------------------------------------------
@@ -497,7 +500,6 @@ unsigned char MEDSdcard_Initialize(Media * media, unsigned char mciID)
     // Initialize the SD card driver
     if (SD_Init(sdDrv, (SdDriver *) mciDrv)) {
         dbg_log(1, "*** SD_Init: failed\n\r");
-        while (1) ;
         return 0;
     } else {
         //SD_DisplayRegisterCSD(&sdDrv);
@@ -694,8 +696,9 @@ unsigned int load_SDCard(void *dst)
     unsigned char ret;
 
     ret = MEDSdcard_Initialize(&medias[0], BOARD_SD_MCI_ID_USE);
-    if(ret) {
+    if(ret == 0) {
 	dbg_log(1, "Error while initializing SD-Card\r\n");
+        while (1) ;
     }
     memset(&fs, 0, sizeof (FATFS));     // Clear file system object
 
@@ -709,6 +712,20 @@ unsigned int load_SDCard(void *dst)
 
     if (res != FR_OK) {
 	dbg_log(1, "*** f_open, File name: [%s]: error!\n\r", IMAGE_NAME);
+#if	defined(CONFIG_FALLBACKS)
+	dbg_log(1, "*** trying:            [%s]\n\r", IMAGE_FALLBACK1);
+        res = f_open(&fileObject, IMAGE_FALLBACK1, FA_OPEN_EXISTING | FA_READ);
+    }
+
+    if (res != FR_OK) {
+	dbg_log(1, "*** f_open, File name: [%s]: error!\n\r", IMAGE_FALLBACK1);
+	dbg_log(1, "*** trying:            [%s]\n\r", IMAGE_FALLBACK2);
+        res = f_open(&fileObject, IMAGE_FALLBACK2, FA_OPEN_EXISTING | FA_READ);
+    }
+
+    if (res != FR_OK) {
+	dbg_log(1, "*** f_open, File name: [%s]: error!\n\r", IMAGE_FALLBACK2);
+#endif
         while (1) ;
     }
 
-- 
1.7.5.4