riscv-software-src / riscv-software-src/opensbi

k210 build issue with u-boot payload

Open
#207 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
1.5k
Forks
712
PR merge metrics
No merged PRs in 30d

Description

U-Boot has been built using smode defconfig for maix
opensbi build error:

$ make PLATFORM=kendryte/k210 FW_PAYLOAD=y FW_PAYLOAD_OFFSET=0x20000 FW_PAYLOAD_PATH=../u-boot/u-boot.bin 
 AS-DEP    platform/kendryte/k210/firmware/fw_payload.dep
 AS-DEP    platform/kendryte/k210/firmware/payloads/test_head.dep
 MERGE-DEP platform/kendryte/k210/firmware/payloads/test.dep
 CC-DEP    lib/utils/fdt/fdt_fixup.dep
 CC-DEP    lib/utils/fdt/fdt_helper.dep
 CC-DEP    lib/utils/fdt/fdt_domain.dep
 CC-DEP    lib/utils/ipi/fdt_ipi_clint.dep
 AS-DEP    lib/utils/reset/fdt_reset_thead_asm.dep
 CC-DEP    lib/utils/reset/fdt_reset_thead.dep
 CC-DEP    lib/utils/reset/fdt_reset.dep
 CC-DEP    lib/utils/sys/clint.dep
 CC-DEP    lib/utils/timer/fdt_timer_clint.dep
 CC-DEP    lib/sbi/sbi_trap.dep
 CC-DEP    lib/sbi/sbi_system.dep
 CC-DEP    lib/sbi/sbi_ipi.dep
 CC-DEP    lib/sbi/sbi_init.dep
 CC-DEP    lib/sbi/sbi_hsm.dep
 CC-DEP    lib/sbi/sbi_hart.dep
 CC-DEP    lib/sbi/sbi_fifo.dep
 CC-DEP    lib/sbi/sbi_emulate_csr.dep
 CC-DEP    lib/sbi/sbi_ecall_legacy.dep
 CC-DEP    lib/sbi/sbi_ecall_hsm.dep
 CC-DEP    lib/sbi/sbi_domain.dep
 CC-DEP    lib/sbi/riscv_locks.dep
 CC-DEP    lib/sbi/riscv_atomic.dep
 CC-DEP    platform/kendryte/k210/platform.dep
 CC        lib/sbi/riscv_asm.o
 CC        lib/sbi/riscv_atomic.o
 AS        lib/sbi/riscv_hardfp.o
 CC        lib/sbi/riscv_locks.o
 CC        lib/sbi/sbi_bitmap.o
 CC        lib/sbi/sbi_bitops.o
 CC        lib/sbi/sbi_console.o
 CC        lib/sbi/sbi_domain.o
 CC        lib/sbi/sbi_ecall.o
 CC        lib/sbi/sbi_ecall_base.o
 CC        lib/sbi/sbi_ecall_hsm.o
 CC        lib/sbi/sbi_ecall_legacy.o
 CC        lib/sbi/sbi_ecall_replace.o
 CC        lib/sbi/sbi_ecall_vendor.o
 CC        lib/sbi/sbi_emulate_csr.o
 CC        lib/sbi/sbi_fifo.o
 CC        lib/sbi/sbi_hart.o
 CC        lib/sbi/sbi_math.o
 AS        lib/sbi/sbi_hfence.o
 CC        lib/sbi/sbi_hsm.o
 CC        lib/sbi/sbi_illegal_insn.o
 CC        lib/sbi/sbi_init.o
 CC        lib/sbi/sbi_ipi.o
 CC        lib/sbi/sbi_misaligned_ldst.o
 CC        lib/sbi/sbi_platform.o
 CC        lib/sbi/sbi_scratch.o
 CC        lib/sbi/sbi_string.o
 CC        lib/sbi/sbi_system.o
 CC        lib/sbi/sbi_timer.o
 CC        lib/sbi/sbi_tlb.o
 CC        lib/sbi/sbi_trap.o
 CC        lib/sbi/sbi_unpriv.o
 AS        lib/sbi/sbi_expected_trap.o
 AR        lib/libsbi.a
 CC        lib/utils/timer/fdt_timer.o
 CC        lib/utils/timer/fdt_timer_clint.o
 CC        lib/utils/sys/clint.o
 CC        lib/utils/sys/htif.o
 CC        lib/utils/sys/sifive_test.o
 CC        lib/utils/serial/fdt_serial.o
 CC        lib/utils/serial/fdt_serial_htif.o
 CC        lib/utils/serial/fdt_serial_shakti.o
 CC        lib/utils/serial/fdt_serial_sifive.o
 CC        lib/utils/serial/fdt_serial_uart8250.o
 CC        lib/utils/serial/shakti-uart.o
 CC        lib/utils/serial/sifive-uart.o
 CC        lib/utils/serial/uart8250.o
 CC        lib/utils/reset/fdt_reset.o
 CC        lib/utils/reset/fdt_reset_htif.o
 CC        lib/utils/reset/fdt_reset_sifive.o
 CC        lib/utils/reset/fdt_reset_thead.o
 AS        lib/utils/reset/fdt_reset_thead_asm.o
 CC        lib/utils/libfdt/fdt.o
 CC        lib/utils/libfdt/fdt_addresses.o
 CC        lib/utils/libfdt/fdt_check.o
 CC        lib/utils/libfdt/fdt_empty_tree.o
 CC        lib/utils/libfdt/fdt_ro.o
 CC        lib/utils/libfdt/fdt_rw.o
 CC        lib/utils/libfdt/fdt_strerror.o
 CC        lib/utils/libfdt/fdt_sw.o
 CC        lib/utils/libfdt/fdt_wip.o
 CC        lib/utils/irqchip/fdt_irqchip.o
 CC        lib/utils/irqchip/fdt_irqchip_plic.o
 CC        lib/utils/irqchip/plic.o
 CC        lib/utils/ipi/fdt_ipi.o
 CC        lib/utils/ipi/fdt_ipi_clint.o
 CC        lib/utils/fdt/fdt_domain.o
 CC        lib/utils/fdt/fdt_helper.o
 CC        lib/utils/fdt/fdt_fixup.o
 AR        lib/libsbiutils.a
 CC        platform/kendryte/k210/platform.o
 CC        platform/kendryte/k210/k210.o
 AR        platform/kendryte/k210/lib/libplatsbi.a
 AS        platform/kendryte/k210/firmware/payloads/test_head.o
 CC        platform/kendryte/k210/firmware/payloads/test_main.o
 MERGE     platform/kendryte/k210/firmware/payloads/test.o
 ELF       platform/kendryte/k210/firmware/payloads/test.elf
 OBJCOPY   platform/kendryte/k210/firmware/payloads/test.bin
 AS        platform/kendryte/k210/firmware/fw_payload.o
 ELF       platform/kendryte/k210/firmware/fw_payload.elf
/build/k210/opensbi/build/platform/kendryte/k210/firmware/fw_payload.o: in function `.L0 ':
/build/k210/opensbi/firmware/fw_base.S:768:(.entry+0x688): relocation truncated to fit: R_RISCV_PCREL_HI20 against symbol `payload_bin' defined in .payload section in /build/k210/opensbi/build/platform/kendryte/k210/firmware/fw_payload.o
collect2: error: ld returned 1 exit status
make: *** [Makefile:351: /build/k210/opensbi/build/platform/kendryte/k210/firmware/fw_payload.elf] Error 1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The failure occurs at firmware/fw_base.S:768 while linking platform/kendryte/k210/firmware/fw_payload.elf. Reproduce the shown make command and inspect the payload_bin relocation in the K210 build; done means the fw_payload.elf link completes successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
build-system, embedded-iot, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.