Skip to content

Commit 27d984c

Browse files
committed
Cleanups
1 parent a616d04 commit 27d984c

7 files changed

Lines changed: 131 additions & 371 deletions

File tree

arch.mk

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1001,7 +1001,11 @@ ifeq ($(TARGET),nxp_t2080)
10011001
LDFLAGS+=$(ARCH_FLAGS)
10021002
LDFLAGS+=-Wl,--hash-style=both # generate both sysv and gnu symbol hash table
10031003
LDFLAGS+=-Wl,--as-needed # remove weak functions not used
1004-
CFLAGS+=-DTEST_FLASH # enable flash erase/write/read test
1004+
# Flash erase/write/read test at WOLFBOOT_PARTITION_UPDATE_ADDRESS.
1005+
# Enable with: TEST_FLASH=1 or CFLAGS_EXTRA+=-DTEST_FLASH
1006+
ifeq ($(TEST_FLASH),1)
1007+
CFLAGS+=-DTEST_FLASH
1008+
endif
10051009
OBJS+=src/boot_ppc_mp.o # support for spin table
10061010
UPDATE_OBJS:=src/update_ram.o
10071011
OBJS+=src/fdt.o

config/examples/nxp-t2080.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,5 +56,5 @@ WOLFBOOT_DTS_UPDATE_ADDRESS?=0xE8050000
5656
# DTS Load to RAM Address
5757
WOLFBOOT_LOAD_DTS_ADDRESS?=0x200000
5858

59-
# Optional QSPI flash test (erase/write/read on update partition)
60-
#CFLAGS_EXTRA+=-DTEST_FLASH
59+
# Flash erase/write/read test at update partition address
60+
#TEST_FLASH?=1

hal/nxp_ppc.h

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -710,10 +710,19 @@ static inline void set32(volatile unsigned int *addr, unsigned int val)
710710
);
711711
}
712712

713+
/* longcall attribute for functions in .ramcode — callers in .text need
714+
* indirect calls since .ramcode VMA is ~143MB from .text VMA,
715+
* exceeding PPC bl +/-32MB range */
716+
#if defined(__WOLFBOOT) && defined(RAM_CODE) && defined(ARCH_PPC)
717+
#define LONGCALL_ATTR __attribute__((longcall))
718+
#else
719+
#define LONGCALL_ATTR
720+
#endif
721+
713722
/* C version in boot_ppc.c */
714-
extern void set_tlb(uint8_t tlb, uint8_t esel, uint32_t epn, uint32_t rpn,
715-
uint32_t urpn, uint8_t perms, uint8_t wimge, uint8_t ts, uint8_t tsize,
716-
uint8_t iprot);
723+
extern void LONGCALL_ATTR set_tlb(uint8_t tlb, uint8_t esel, uint32_t epn,
724+
uint32_t rpn, uint32_t urpn, uint8_t perms, uint8_t wimge, uint8_t ts,
725+
uint8_t tsize, uint8_t iprot);
717726
extern void disable_tlb1(uint8_t esel);
718727
extern void flush_cache(uint32_t start_addr, uint32_t size);
719728
extern void set_law(uint8_t idx, uint32_t addr_h, uint32_t addr_l,
@@ -723,12 +732,12 @@ extern void set_law(uint8_t idx, uint32_t addr_h, uint32_t addr_l,
723732
extern void uart_init(void);
724733

725734
/* from boot_ppc_start.S */
726-
extern unsigned long long get_ticks(void);
727-
extern void wait_ticks(unsigned long long);
735+
extern unsigned long long LONGCALL_ATTR get_ticks(void);
736+
extern void LONGCALL_ATTR wait_ticks(unsigned long long);
728737
extern unsigned long get_pc(void);
729738
extern void relocate_code(uint32_t *dest, uint32_t *src, uint32_t length);
730-
extern void invalidate_dcache(void);
731-
extern void invalidate_icache(void);
739+
extern void LONGCALL_ATTR invalidate_dcache(void);
740+
extern void LONGCALL_ATTR invalidate_icache(void);
732741
extern void icache_enable(void);
733742
extern void dcache_enable(void);
734743
extern void dcache_disable(void);

0 commit comments

Comments
 (0)