altoslib: When flashing hardware, pull USB data from device if needed
[fw/altos] / altoslib / AltosSelfFlash.java
index 20839ce41a3ef912a8fea022bdc041caadde40c6..70a5ced5e8db0ffc551946e0740813fc4824cc2d 100644 (file)
@@ -45,7 +45,6 @@ public class AltosSelfFlash extends AltosProgrammer {
                int b;
                byte[]  data = new byte[len];
 
-               System.out.printf("read_memory %x %d\n", addr, len);
                for (int offset = 0; offset < len; offset += 0x100) {
                        link.printf("R %x\n", addr + offset);
                        byte[]  reply = link.get_binary_reply(5000, 0x100);
@@ -161,7 +160,8 @@ public class AltosSelfFlash extends AltosProgrammer {
                        long base = AltosRomconfig.fetch_base(image);
                        long bounds = AltosRomconfig.fetch_bounds(image);
 
-                       System.out.printf("rom base %x bounds %x\n", base, bounds);
+                       if (link.debug)
+                               System.out.printf("rom base %x bounds %x\n", base, bounds);
                        return read_hexfile(base, (int) (bounds - base));
                } catch (AltosNoSymbol ns) {
                        return null;
@@ -184,9 +184,13 @@ public class AltosSelfFlash extends AltosProgrammer {
                rom_config = romconfig;
        }
 
-       public AltosRomconfig target_romconfig() throws InterruptedException {
+       public AltosRomconfig target_romconfig(AltosUsbId usb_id, String usb_product) throws InterruptedException {
                if (!check_rom_config())
                        return null;
+               if (rom_config.usb_id == null)
+                       rom_config.usb_id = usb_id;
+               if (rom_config.usb_product == null)
+                       rom_config.usb_product = usb_product;
                return rom_config;
        }