Skip to content
Snippets Groups Projects
Commit 31488a6f authored by Mike Frysinger's avatar Mike Frysinger
Browse files

Blackfin: bootldr: use common defines


Now that the common bootrom.h sets up defines for us, switch to them
rather than our own local set.

Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent e8065f88
No related branches found
No related tags found
No related merge requests found
...@@ -24,7 +24,7 @@ static bool ldr_valid_signature(uint8_t *data) ...@@ -24,7 +24,7 @@ static bool ldr_valid_signature(uint8_t *data)
#if defined(__ADSPBF561__) #if defined(__ADSPBF561__)
/* BF56x has a 4 byte global header */ /* BF56x has a 4 byte global header */
if (data[3] == 0xA0) if (data[3] == (GFLAG_56X_SIGN_MAGIC << (GFLAG_56X_SIGN_SHIFT - 24)))
return true; return true;
#elif defined(__ADSPBF531__) || defined(__ADSPBF532__) || defined(__ADSPBF533__) || \ #elif defined(__ADSPBF531__) || defined(__ADSPBF532__) || defined(__ADSPBF533__) || \
...@@ -53,11 +53,6 @@ static bool ldr_valid_signature(uint8_t *data) ...@@ -53,11 +53,6 @@ static bool ldr_valid_signature(uint8_t *data)
* LDRs from random memory addresses. So whenever possible, use that. In * LDRs from random memory addresses. So whenever possible, use that. In
* the older cases (BF53x/BF561), parse the LDR format ourselves. * the older cases (BF53x/BF561), parse the LDR format ourselves.
*/ */
#define ZEROFILL 0x0001
#define RESVECT 0x0002
#define INIT 0x0008
#define IGNORE 0x0010
#define FINAL 0x8000
static void ldr_load(uint8_t *base_addr) static void ldr_load(uint8_t *base_addr)
{ {
#if defined(__ADSPBF531__) || defined(__ADSPBF532__) || defined(__ADSPBF533__) || \ #if defined(__ADSPBF531__) || defined(__ADSPBF532__) || defined(__ADSPBF533__) || \
...@@ -76,7 +71,7 @@ static void ldr_load(uint8_t *base_addr) ...@@ -76,7 +71,7 @@ static void ldr_load(uint8_t *base_addr)
# endif # endif
memmove(&flags, base_addr + 8, sizeof(flags)); memmove(&flags, base_addr + 8, sizeof(flags));
bfin_write_EVT1(flags & RESVECT ? 0xFFA00000 : 0xFFA08000); bfin_write_EVT1(flags & BFLAG_53X_RESVECT ? 0xFFA00000 : 0xFFA08000);
do { do {
/* block header may not be aligned */ /* block header may not be aligned */
...@@ -85,24 +80,24 @@ static void ldr_load(uint8_t *base_addr) ...@@ -85,24 +80,24 @@ static void ldr_load(uint8_t *base_addr)
memmove(&flags, base_addr+8, sizeof(flags)); memmove(&flags, base_addr+8, sizeof(flags));
base_addr += sizeof(addr) + sizeof(count) + sizeof(flags); base_addr += sizeof(addr) + sizeof(count) + sizeof(flags);
printf("loading to 0x%08x (0x%x bytes) flags: 0x%04x\n", printf("loading to 0x%08x (%#x bytes) flags: 0x%04x\n",
addr, count, flags); addr, count, flags);
if (!(flags & IGNORE)) { if (!(flags & BFLAG_53X_IGNORE)) {
if (flags & ZEROFILL) if (flags & BFLAG_53X_ZEROFILL)
memset((void *)addr, 0x00, count); memset((void *)addr, 0x00, count);
else else
memcpy((void *)addr, base_addr, count); memcpy((void *)addr, base_addr, count);
if (flags & INIT) { if (flags & BFLAG_53X_INIT) {
void (*init)(void) = (void *)addr; void (*init)(void) = (void *)addr;
init(); init();
} }
} }
if (!(flags & ZEROFILL)) if (!(flags & BFLAG_53X_ZEROFILL))
base_addr += count; base_addr += count;
} while (!(flags & FINAL)); } while (!(flags & BFLAG_53X_FINAL));
#endif #endif
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment