mirror of
https://github.com/LuckfoxTECH/luckfox-pico.git
synced 2026-01-19 17:59:18 +01:00
project:build.sh: Added fastboot support; custom modifications to U-Boot and kernel implemented using patches.
project:cfg:BoardConfig_IPC: Added fastboot BoardConfig file and firmware post-scripts, distinguishing between the BoardConfigs for Luckfox Pico Pro and Luckfox Pico Max. project:app: Added fastboot_client and rk_smart_door for quick boot applications; updated rkipc app to adapt to the latest media library. media:samples: Added more usage examples. media:rockit: Fixed bugs; removed support for retrieving data frames from VPSS. media:isp: Updated rkaiq library and related tools to support connection to RKISP_Tuner. sysdrv:Makefile: Added support for compiling drv_ko on Luckfox Pico Ultra W using Ubuntu; added support for custom root filesystem. sysdrv:tools:board: Updated Buildroot optional mirror sources, updated some software versions, and stored device tree files and configuration files that undergo multiple modifications for U-Boot and kernel separately. sysdrv:source:mcu: Used RISC-V MCU SDK with RT-Thread system, mainly for initializing camera AE during quick boot. sysdrv:source:uboot: Added support for fastboot; added high baud rate DDR bin for serial firmware upgrades. sysdrv:source:kernel: Upgraded to version 5.10.160; increased NPU frequency for RV1106G3; added support for fastboot. Signed-off-by: luckfox-eng29 <eng29@luckfox.com>
This commit is contained in:
@@ -3652,7 +3652,7 @@ static int bpf_get_map_info_from_fdinfo(int fd, struct bpf_map_info *info)
|
||||
int bpf_map__reuse_fd(struct bpf_map *map, int fd)
|
||||
{
|
||||
struct bpf_map_info info = {};
|
||||
__u32 len = sizeof(info);
|
||||
__u32 len = sizeof(info), name_len;
|
||||
int new_fd, err;
|
||||
char *new_name;
|
||||
|
||||
@@ -3662,7 +3662,12 @@ int bpf_map__reuse_fd(struct bpf_map *map, int fd)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
new_name = strdup(info.name);
|
||||
name_len = strlen(info.name);
|
||||
if (name_len == BPF_OBJ_NAME_LEN - 1 && strncmp(map->name, info.name, name_len) == 0)
|
||||
new_name = strdup(map->name);
|
||||
else
|
||||
new_name = strdup(info.name);
|
||||
|
||||
if (!new_name)
|
||||
return -errno;
|
||||
|
||||
@@ -5928,9 +5933,10 @@ bpf_object__relocate_core(struct bpf_object *obj, const char *targ_btf_path)
|
||||
*/
|
||||
prog = NULL;
|
||||
for (i = 0; i < obj->nr_programs; i++) {
|
||||
prog = &obj->programs[i];
|
||||
if (strcmp(prog->sec_name, sec_name) == 0)
|
||||
if (strcmp(obj->programs[i].sec_name, sec_name) == 0) {
|
||||
prog = &obj->programs[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!prog) {
|
||||
pr_warn("sec '%s': failed to find a BPF program\n", sec_name);
|
||||
@@ -5945,10 +5951,17 @@ bpf_object__relocate_core(struct bpf_object *obj, const char *targ_btf_path)
|
||||
insn_idx = rec->insn_off / BPF_INSN_SZ;
|
||||
prog = find_prog_by_sec_insn(obj, sec_idx, insn_idx);
|
||||
if (!prog) {
|
||||
pr_warn("sec '%s': failed to find program at insn #%d for CO-RE offset relocation #%d\n",
|
||||
sec_name, insn_idx, i);
|
||||
err = -EINVAL;
|
||||
goto out;
|
||||
/* When __weak subprog is "overridden" by another instance
|
||||
* of the subprog from a different object file, linker still
|
||||
* appends all the .BTF.ext info that used to belong to that
|
||||
* eliminated subprogram.
|
||||
* This is similar to what x86-64 linker does for relocations.
|
||||
* So just ignore such relocations just like we ignore
|
||||
* subprog instructions when discovering subprograms.
|
||||
*/
|
||||
pr_debug("sec '%s': skipping CO-RE relocation #%d for insn #%d belonging to eliminated weak subprogram\n",
|
||||
sec_name, i, insn_idx);
|
||||
continue;
|
||||
}
|
||||
/* no need to apply CO-RE relocation if the program is
|
||||
* not going to be loaded
|
||||
|
||||
Reference in New Issue
Block a user