diff options
author | Christian Daniel <cd@maintech.de> | 2012-10-18 22:22:54 +0200 |
---|---|---|
committer | Christian Daniel <cd@maintech.de> | 2012-10-18 22:22:54 +0200 |
commit | b17fd2ca39ef6ef5b52a4e3ed6101d08ce755c51 (patch) | |
tree | 5760494a6d26f05f898d02ae19f8e6b0f52ee01b | |
parent | d79e4f8dca10542b3f53a6b8b95095bcad42bf9c (diff) |
make rum-ba reset the device after flashing
-rw-r--r-- | utils/rum-ba/src/main.c | 2 | ||||
-rw-r--r-- | utils/rum-ba/src/osmosdr.c | 5 | ||||
-rw-r--r-- | utils/rum-ba/src/osmosdr.h | 1 | ||||
-rw-r--r-- | utils/rum-ba/src/sam3u.c | 5 | ||||
-rw-r--r-- | utils/rum-ba/src/sam3u.h | 2 |
5 files changed, 15 insertions, 0 deletions
diff --git a/utils/rum-ba/src/main.c b/utils/rum-ba/src/main.c index 498accc..a350c98 100644 --- a/utils/rum-ba/src/main.c +++ b/utils/rum-ba/src/main.c @@ -99,6 +99,8 @@ int main(int argc, char* argv[]) res = osmoSDRDetect(fd); if(res >= 0) res = osmoSDRFlashMCU(fd, bin, binSize); + if(res >= 0) + osmoSDRReset(fd); serialClose(fd); } else { return printSyntax(); diff --git a/utils/rum-ba/src/osmosdr.c b/utils/rum-ba/src/osmosdr.c index 5cd4aae..0a64c98 100644 --- a/utils/rum-ba/src/osmosdr.c +++ b/utils/rum-ba/src/osmosdr.c @@ -137,3 +137,8 @@ int osmoSDRFlashFPGA(HANDLE fd, const void* algo, size_t algoSize, const void* b return 0; } + +int osmoSDRReset(HANDLE fd) +{ + return sam3uReset(fd); +} diff --git a/utils/rum-ba/src/osmosdr.h b/utils/rum-ba/src/osmosdr.h index 8abbad4..751bb86 100644 --- a/utils/rum-ba/src/osmosdr.h +++ b/utils/rum-ba/src/osmosdr.h @@ -10,5 +10,6 @@ int osmoSDRBlink(HANDLE fd); int osmoSDRRamLoad(HANDLE fd, const void* bin, size_t binSize); int osmoSDRFlashMCU(HANDLE fd, const void* bin, size_t binSize); int osmoSDRFlashFPGA(HANDLE fd, const void* algo, size_t algoSize, const void* bin, size_t binSize); +int osmoSDRReset(HANDLE fd); #endif // INCLUDE_OSMOSDR_H diff --git a/utils/rum-ba/src/sam3u.c b/utils/rum-ba/src/sam3u.c index 9d3b355..bce857b 100644 --- a/utils/rum-ba/src/sam3u.c +++ b/utils/rum-ba/src/sam3u.c @@ -306,3 +306,8 @@ error: printf(" -- ERROR\n"); return -1; } + +int sam3uReset(HANDLE fd) +{ + return sam3uWrite32(fd, 0x400e1200, 0xa500000f); +} diff --git a/utils/rum-ba/src/sam3u.h b/utils/rum-ba/src/sam3u.h index 8fd14c3..fddba29 100644 --- a/utils/rum-ba/src/sam3u.h +++ b/utils/rum-ba/src/sam3u.h @@ -17,4 +17,6 @@ int sam3uDetect(HANDLE fd, uint32_t* chipID); int sam3uReadUniqueID(HANDLE fd, int bank, uint8_t* uniqueID); int sam3uFlash(HANDLE fd, int bank, const void* bin, size_t binSize); +int sam3uReset(HANDLE fd); + #endif // INCLUDE_SAM3U_H |