bios: remove rescue
authorSebastien Bourdeauducq <sebastien@milkymist.org>
Tue, 28 May 2013 14:15:30 +0000 (16:15 +0200)
committerSebastien Bourdeauducq <sebastien@milkymist.org>
Tue, 28 May 2013 14:15:30 +0000 (16:15 +0200)
software/bios/Makefile
software/bios/boot-helper.S
software/bios/boot.c
software/bios/main.c

index 95d182c46ecdb9f6a63778611b0fc3222d80acad..16f2503fdd03e23eea3084e899c4fdecd20cbc88 100644 (file)
@@ -15,7 +15,6 @@ all: bios.bin
        $(M2DIR)/tools/mkmmimg $@ write
 
 bios.elf: linker.ld $(OBJECTS) libs
-bios-rescue.elf: linker-rescue.ld $(OBJECTS) libs
 
 %.elf:
        $(LD) $(LDFLAGS) -T $< -N -o $@ $(OBJECTS) \
@@ -43,6 +42,6 @@ flash: bios.bin
        m1nor bios.bin
 
 clean:
-       $(RM) $(OBJECTS) $(OBJECTS:.o=.d) bios.elf bios.bin bios-rescue.elf bios-rescue.bin .*~ *~
+       $(RM) $(OBJECTS) $(OBJECTS:.o=.d) bios.elf bios.bin .*~ *~
 
 .PHONY: all main.o clean libs flash
index da99182a692a7ef78a677364e7b71cb3848cb0b3..d668f70f0c1f535d52871e4bd540822fa1dc28fd 100644 (file)
@@ -7,4 +7,4 @@ boot_helper:
        nop
        nop
        nop
-       call r5
+       call r4
index b37f15240a648e18d251b54cf99b7379f4d8ed33..365bbb509c823006b760286abe5bc9c3102460bf 100644 (file)
 #include <net/tftp.h>
 #include "boot.h"
 
-extern int rescue;
-extern void boot_helper(unsigned int r1, unsigned int r2, unsigned int r3, unsigned int r4, unsigned int addr);
+extern void boot_helper(unsigned int r1, unsigned int r2, unsigned int r3, unsigned int addr);
 
-static void __attribute__((noreturn)) boot(unsigned int r1, unsigned int r2, unsigned int r3, unsigned int r4, unsigned int addr)
+static void __attribute__((noreturn)) boot(unsigned int r1, unsigned int r2, unsigned int r3, unsigned int addr)
 {
        printf("Executing booted program.\n");
        uart_sync();
        irq_setmask(0);
        irq_setie(0);
-       boot_helper(r1, r2, r3, r4, addr);
+       boot_helper(r1, r2, r3, addr);
        while(1);
 }
 
@@ -137,7 +136,7 @@ void serialboot(void)
                                        |((unsigned int)frame.payload[2] << 8)
                                        |((unsigned int)frame.payload[3] << 0);
                                uart_write(SFL_ACK_SUCCESS);
-                               boot(cmdline_adr, initrdstart_adr, initrdend_adr, rescue, addr);
+                               boot(cmdline_adr, initrdstart_adr, initrdend_adr, addr);
                                break;
                        }
                        case SFL_CMD_CMDLINE:
@@ -234,7 +233,7 @@ void netboot(void)
        } else
                initrdend_adr = initrdstart_adr + size;
 
-       boot(cmdline_adr, initrdstart_adr, initrdend_adr, rescue, SDRAM_BASE);
+       boot(cmdline_adr, initrdstart_adr, initrdend_adr, SDRAM_BASE);
 }
 
 void flashboot(void)
@@ -245,10 +244,7 @@ void flashboot(void)
        unsigned int got_crc;
 
        printf("Booting from flash...\n");
-       if(rescue)
-               flashbase = (unsigned int *)FLASH_OFFSET_RESCUE_APP;
-       else
-               flashbase = (unsigned int *)FLASH_OFFSET_REGULAR_APP;
+       flashbase = (unsigned int *)FLASH_OFFSET_REGULAR_APP;
        length = *flashbase++;
        crc = *flashbase++;
        if((length < 32) || (length > 4*1024*1024)) {
@@ -263,5 +259,5 @@ void flashboot(void)
                printf("CRC failed (expected %08x, got %08x)\n", crc, got_crc);
                return;
        }
-       boot(0, 0, 0, rescue, SDRAM_BASE);
+       boot(0, 0, 0, SDRAM_BASE);
 }
index 8e372a576a8e3c3ffcc8f824e30822f0dec9a6e8..4d326f43cd3589f129f577264be504238581a9ad 100644 (file)
@@ -375,7 +375,6 @@ static void do_command(char *c)
                printf("Command not found\n");
 }
 
-int rescue;
 extern unsigned int _edata;
 
 static void crcbios(void)
@@ -391,7 +390,7 @@ static void crcbios(void)
         * We also use the address of _edata to know the length
         * of our code.
         */
-       offset_bios = rescue ? FLASH_OFFSET_RESCUE_BIOS : FLASH_OFFSET_REGULAR_BIOS;
+       offset_bios = FLASH_OFFSET_REGULAR_BIOS;
        expected_crc = _edata;
        length = (unsigned int)&_edata - offset_bios;
        actual_crc = crc32((unsigned char *)offset_bios, length);
@@ -488,15 +487,9 @@ static int test_user_abort(void)
 static void boot_sequence(void)
 {
        if(test_user_abort()) {
-               if(rescue) {
-                       serialboot();
-                       netboot();
-                       flashboot();
-               } else {
-                       flashboot();
-                       serialboot();
-                       netboot();
-               }
+               flashboot();
+               serialboot();
+               netboot();
                printf("No boot medium found\n");
        }
 }
@@ -506,15 +499,11 @@ int main(int i, char **c)
        char buffer[64];
        int ddr_ok;
 
-       rescue = !((unsigned int)main > FLASH_OFFSET_REGULAR_BIOS);
-
        irq_setmask(0);
        irq_setie(1);
        uart_init();
        puts(banner);
        crcbios();
-       if(rescue)
-               printf("Rescue mode\n");
        id_print();
        ethreset();
        print_mac();