New method for determining active partition
This commit is contained in:
parent
406fb7ea44
commit
cc48b88713
|
@ -158,7 +158,7 @@ GENERIC_RESOURCE
|
||||||
);
|
);
|
||||||
|
|
||||||
static size_t
|
static size_t
|
||||||
get_callers_part
|
get_active_part
|
||||||
( const char *name
|
( const char *name
|
||||||
, const char *uri
|
, const char *uri
|
||||||
, const char *query
|
, const char *query
|
||||||
|
@ -166,16 +166,16 @@ get_callers_part
|
||||||
, size_t bsize
|
, size_t bsize
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return snprintf (buf, bsize, "%ld", bootloader_get_callers_part ());
|
return snprintf (buf, bsize, "%ld", bootloader_get_active_part ());
|
||||||
}
|
}
|
||||||
|
|
||||||
GENERIC_RESOURCE
|
GENERIC_RESOURCE
|
||||||
( callers_part
|
( active_part
|
||||||
, Currently booted partition
|
, Currently active partition
|
||||||
, count
|
, count
|
||||||
, 0
|
, 0
|
||||||
, NULL
|
, NULL
|
||||||
, get_callers_part
|
, get_active_part
|
||||||
);
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -202,9 +202,8 @@ get_part_start
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
int idx = get_query_partition (query);
|
int idx = get_query_partition (query);
|
||||||
printf ("part: %d", idx);
|
|
||||||
if (idx < 0) {
|
if (idx < 0) {
|
||||||
return snprintf (buf, bsize, "Invalid: %s", query);
|
return snprintf (buf, bsize, "Invalid: \"%s\" use part=N query", query);
|
||||||
}
|
}
|
||||||
return snprintf (buf, bsize, "%ld", bootloader_get_part_start (idx));
|
return snprintf (buf, bsize, "%ld", bootloader_get_part_start (idx));
|
||||||
}
|
}
|
||||||
|
@ -224,7 +223,6 @@ set_part_ok
|
||||||
{
|
{
|
||||||
uint32_t tmp = strtoul (s, NULL, 10);
|
uint32_t tmp = strtoul (s, NULL, 10);
|
||||||
int idx = get_query_partition (query);
|
int idx = get_query_partition (query);
|
||||||
printf ("part: %d", idx);
|
|
||||||
if (idx < 0) {
|
if (idx < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,6 @@ extern resource_t res_part_count;
|
||||||
extern resource_t res_part_size;
|
extern resource_t res_part_size;
|
||||||
extern resource_t res_boot_default;
|
extern resource_t res_boot_default;
|
||||||
extern resource_t res_boot_next;
|
extern resource_t res_boot_next;
|
||||||
extern resource_t res_callers_part;
|
extern resource_t res_active_part;
|
||||||
extern resource_t res_part_start;
|
extern resource_t res_part_start;
|
||||||
extern resource_t res_part_ok;
|
extern resource_t res_part_ok;
|
||||||
|
|
|
@ -24,7 +24,7 @@ void setup (void)
|
||||||
rest_activate_resource (&res_part_size, (char *)"part_size");
|
rest_activate_resource (&res_part_size, (char *)"part_size");
|
||||||
rest_activate_resource (&res_boot_default, (char *)"boot_default");
|
rest_activate_resource (&res_boot_default, (char *)"boot_default");
|
||||||
rest_activate_resource (&res_boot_next, (char *)"boot_next");
|
rest_activate_resource (&res_boot_next, (char *)"boot_next");
|
||||||
rest_activate_resource (&res_callers_part, (char *)"callers_part");
|
rest_activate_resource (&res_active_part, (char *)"active_part");
|
||||||
rest_activate_resource (&res_part_start, (char *)"part_start");
|
rest_activate_resource (&res_part_start, (char *)"part_start");
|
||||||
rest_activate_resource (&res_part_ok, (char *)"part_ok");
|
rest_activate_resource (&res_part_ok, (char *)"part_ok");
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,7 +91,7 @@ BOOTLOADER_SET_BOOT_NEXT=0x0003ffa0
|
||||||
BOOTLOADER_BACKUP_IRQ_TABLE=0x0003ffa4
|
BOOTLOADER_BACKUP_IRQ_TABLE=0x0003ffa4
|
||||||
BOOTLOADER_GET_BOOT_DEFAULT=0x0003ffa8
|
BOOTLOADER_GET_BOOT_DEFAULT=0x0003ffa8
|
||||||
BOOTLOADER_GET_BOOT_NEXT=0x0003ffac
|
BOOTLOADER_GET_BOOT_NEXT=0x0003ffac
|
||||||
BOOTLOADER_GET_CALLERS_PART=0x0003ffb0
|
BOOTLOADER_GET_ACTIVE_PART=0x0003ffb0
|
||||||
BOOTLOADER_PARTITION=0
|
BOOTLOADER_PARTITION=0
|
||||||
|
|
||||||
TEXT_SECTION_LENGTH=0x1ef00
|
TEXT_SECTION_LENGTH=0x1ef00
|
||||||
|
@ -122,7 +122,7 @@ LDFLAGS += -Wl,--defsym,bootloader_get_mac=$(BOOTLOADER_GET_MAC) \
|
||||||
-Wl,--defsym,_bootloader_backup_irq_table=$(BOOTLOADER_BACKUP_IRQ_TABLE) \
|
-Wl,--defsym,_bootloader_backup_irq_table=$(BOOTLOADER_BACKUP_IRQ_TABLE) \
|
||||||
-Wl,--defsym,bootloader_get_boot_default=$(BOOTLOADER_GET_BOOT_DEFAULT) \
|
-Wl,--defsym,bootloader_get_boot_default=$(BOOTLOADER_GET_BOOT_DEFAULT) \
|
||||||
-Wl,--defsym,bootloader_get_boot_next=$(BOOTLOADER_GET_BOOT_NEXT) \
|
-Wl,--defsym,bootloader_get_boot_next=$(BOOTLOADER_GET_BOOT_NEXT) \
|
||||||
-Wl,--defsym,bootloader_get_callers_part=$(BOOTLOADER_GET_CALLERS_PART) \
|
-Wl,--defsym,bootloader_get_active_part=$(BOOTLOADER_GET_ACTIVE_PART) \
|
||||||
-Wl,--defsym,__TEXT_SECTION_OFFSET__=$(TEXT_SECTION_START) \
|
-Wl,--defsym,__TEXT_SECTION_OFFSET__=$(TEXT_SECTION_START) \
|
||||||
-T $(THISPLATFORM)/custom-avr6.xm
|
-T $(THISPLATFORM)/custom-avr6.xm
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ extern uint32_t bootloader_get_part_size (void);
|
||||||
extern uint32_t bootloader_get_part_start (uint32_t part_index);
|
extern uint32_t bootloader_get_part_start (uint32_t part_index);
|
||||||
extern uint32_t bootloader_get_boot_default (void);
|
extern uint32_t bootloader_get_boot_default (void);
|
||||||
extern uint32_t bootloader_get_boot_next (void);
|
extern uint32_t bootloader_get_boot_next (void);
|
||||||
extern uint32_t bootloader_get_callers_part (void);
|
extern uint32_t bootloader_get_active_part (void);
|
||||||
|
|
||||||
/* These write to flash and need to turn off interrupts before start */
|
/* These write to flash and need to turn off interrupts before start */
|
||||||
extern void _bootloader_set_part_ok (uint32_t part_index);
|
extern void _bootloader_set_part_ok (uint32_t part_index);
|
||||||
|
|
Loading…
Reference in a new issue