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: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
e8065f8889
commit
31488a6f6e
|
@ -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)
|
||||||
* 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)
|
||||||
# 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)
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue