| mips/nanonote/unbrick.ccp |
| 94 | 94 | if !handle: |
| 95 | 95 | std::cerr << "unable to find device\n" |
| 96 | 96 | return |
| 97 | | std::cerr << "sending stage 1\n" |
| 98 | 97 | std::ifstream file (STAGE1_FILE) |
| 99 | 98 | std::ostringstream stage1 |
| 100 | 99 | stage1 << file.rdbuf () |
| 100 | std::cerr << shevek::ostring ("sending stage 1 (size %x) @%x\n", stage1.str ().size (), STAGE1_LOAD) |
| 101 | 101 | send_file (STAGE1_LOAD, stage1.str ().size (), stage1.str ().data ()) |
| 102 | | std::cerr << "running stage 1\n" |
| 102 | std::cerr << shevek::ostring ("running stage 1 @%x\n", STAGE1_ENTRY) |
| 103 | 103 | request (VR_PROGRAM_START1, STAGE1_ENTRY) |
| 104 | 104 | usleep (100) |
| 105 | 105 | std::ostringstream stage2 |
| ... | ... | |
| 107 | 107 | file.close () |
| 108 | 108 | file.open (filename.c_str ()) |
| 109 | 109 | stage2 << file.rdbuf () |
| 110 | | std::cerr << shevek::ostring ("sending Iris (size 0x%x)\n", stage2.str ().size ()) |
| 110 | std::cerr << shevek::ostring ("sending Iris (size 0x%x) @%x\n", stage2.str ().size (), load) |
| 111 | 111 | send_file (load, stage2.str ().size (), stage2.str ().data ()) |
| 112 | 112 | std::cerr << "flushing caches\n" |
| 113 | 113 | request (VR_FLUSH_CACHES) |
| 114 | | std::cerr << "running Iris\n" |
| 114 | std::cerr << shevek::ostring ("running Iris @%x\n", entry) |
| 115 | 115 | request (VR_PROGRAM_START2, entry) |
| 116 | 116 | usb_release_interface (handle, 0) |
| 117 | 117 | usb_close (handle) |