js2x: Fix compile and cleanup

This moves shared symbols out from the header file and leaves only
the minimum in bmc.h.

This fixes a "while (...); {" bug spotted by the modern gcc.

This fixes cleanup as otherwise the board-js2x/Makefile's "clean" tries
cleaning "rtas" which tries cleaning all libs (not just the ones it uses)
and that in turn triggers generation of lib/libtpm/Makefile.dep which
fails due to missing ./board-js2x/include/version.h.

This fixes create_reloc_table.sh to build with newer toolchains which
otherwise fail with:

ld: cannot use executable file 'reloc_table.o' as input to a link

This adds js2x compile to the travis script to know when it breaks
again.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
This commit is contained in:
Alexey Kardashevskiy 2021-09-30 16:48:14 +10:00
parent 6903c037a6
commit 0705a5cc1d
5 changed files with 21 additions and 16 deletions

View File

@ -10,6 +10,8 @@ script:
- export PATH="/opt/at14.0/bin:$PATH"
- make -j2 qemu
- ./lib/libtpm/test.sh
- make -j2 distclean
- make -j2 js2x
jobs:
include:

View File

@ -13,17 +13,7 @@
#ifndef __BMC_H
#define __BMC_H
void (*bmc_system_reboot) (void);
void (*bmc_power_off) (void);
short (*bmc_set_flashside) (short mode);
short (*bmc_get_flashside) (void);
int (*bmc_stop_bootwatchdog) (void);
int (*bmc_set_bootwatchdog) (unsigned short);
uint32_t(*bmc_read_vpd) (uint8_t * dst, uint32_t len, uint32_t offset);
uint32_t(*bmc_write_vpd) (uint8_t * src, uint32_t len, uint32_t offset);
uint32_t(*bmc_get_blade_descr) (uint8_t * dst, uint32_t maxlen, uint32_t * len);
extern short (*bmc_set_flashside) (short mode);
extern short (*bmc_get_flashside) (void);
#endif /* __BMC_H */

View File

@ -23,6 +23,19 @@ void io_init(void);
short reg_get_flashside(void);
void rtas_init(void);
void (*bmc_system_reboot) (void);
void (*bmc_power_off) (void);
short (*bmc_set_flashside) (short mode);
short (*bmc_get_flashside) (void);
int (*bmc_stop_bootwatchdog) (void);
int (*bmc_set_bootwatchdog) (unsigned short);
uint32_t(*bmc_read_vpd) (uint8_t * dst, uint32_t len, uint32_t offset);
uint32_t(*bmc_write_vpd) (uint8_t * src, uint32_t len, uint32_t offset);
uint32_t(*bmc_get_blade_descr) (uint8_t * dst, uint32_t maxlen, uint32_t * len);
typedef struct {
uint64_t r3;
uint64_t addr;
@ -36,7 +49,7 @@ rtas_slave_loop(volatile slave_t * pIface)
{
uint64_t mask = pIface->id;
pIface->id = 0;
while (pIface->id != mask); {
while (pIface->id != mask) {
int dly = 0x1000;
while (dly--);
}

View File

@ -25,11 +25,11 @@ $(SUBDIRS):
# Rules for making clean:
clean:
@for dir in $(SUBDIRS); do \
@for dir in $(COMMON_LIBS); do \
$(MAKE) -C $$dir clean || exit 1; \
done
distclean:
@for dir in $(SUBDIRS); do \
@for dir in $(COMMON_LIBS); do \
$(MAKE) -C $$dir distclean || exit 1; \
done

View File

@ -54,7 +54,7 @@ $OBJCOPY -O binary $TMP2.o $TMP2.bin || exit -1
# Create the relocation table with gen_reloc_table:
$DIRNAME/gen_reloc_table $TMP1.bin $TMP2.bin reloc_table.bin
$LD -o reloc_table.o -bbinary reloc_table.bin -e0 || exit -1
$LD -r -o reloc_table.o -bbinary reloc_table.bin -e0 || exit -1
$OBJCOPY --rename-section .data=.reloc reloc_table.o reloc_table.o || exit -1
rm -f $TMP1.o $TMP2.o $TMP1.bin $TMP2.bin reloc_table.bin