Merge branch 'dt/dtbo-rename' into dt/next
This commit is contained in:
commit
26c9134a37
|
@ -1,38 +1,38 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
obj-y += testcases.dtb.o
|
obj-y += testcases.dtbo.o
|
||||||
|
|
||||||
obj-$(CONFIG_OF_OVERLAY) += overlay.dtb.o \
|
obj-$(CONFIG_OF_OVERLAY) += overlay.dtbo.o \
|
||||||
overlay_0.dtb.o \
|
overlay_0.dtbo.o \
|
||||||
overlay_1.dtb.o \
|
overlay_1.dtbo.o \
|
||||||
overlay_2.dtb.o \
|
overlay_2.dtbo.o \
|
||||||
overlay_3.dtb.o \
|
overlay_3.dtbo.o \
|
||||||
overlay_4.dtb.o \
|
overlay_4.dtbo.o \
|
||||||
overlay_5.dtb.o \
|
overlay_5.dtbo.o \
|
||||||
overlay_6.dtb.o \
|
overlay_6.dtbo.o \
|
||||||
overlay_7.dtb.o \
|
overlay_7.dtbo.o \
|
||||||
overlay_8.dtb.o \
|
overlay_8.dtbo.o \
|
||||||
overlay_9.dtb.o \
|
overlay_9.dtbo.o \
|
||||||
overlay_10.dtb.o \
|
overlay_10.dtbo.o \
|
||||||
overlay_11.dtb.o \
|
overlay_11.dtbo.o \
|
||||||
overlay_12.dtb.o \
|
overlay_12.dtbo.o \
|
||||||
overlay_13.dtb.o \
|
overlay_13.dtbo.o \
|
||||||
overlay_15.dtb.o \
|
overlay_15.dtbo.o \
|
||||||
overlay_16.dtb.o \
|
overlay_16.dtbo.o \
|
||||||
overlay_17.dtb.o \
|
overlay_17.dtbo.o \
|
||||||
overlay_18.dtb.o \
|
overlay_18.dtbo.o \
|
||||||
overlay_19.dtb.o \
|
overlay_19.dtbo.o \
|
||||||
overlay_20.dtb.o \
|
overlay_20.dtbo.o \
|
||||||
overlay_bad_add_dup_node.dtb.o \
|
overlay_bad_add_dup_node.dtbo.o \
|
||||||
overlay_bad_add_dup_prop.dtb.o \
|
overlay_bad_add_dup_prop.dtbo.o \
|
||||||
overlay_bad_phandle.dtb.o \
|
overlay_bad_phandle.dtbo.o \
|
||||||
overlay_bad_symbol.dtb.o \
|
overlay_bad_symbol.dtbo.o \
|
||||||
overlay_base.dtb.o \
|
overlay_base.dtbo.o \
|
||||||
overlay_gpio_01.dtb.o \
|
overlay_gpio_01.dtbo.o \
|
||||||
overlay_gpio_02a.dtb.o \
|
overlay_gpio_02a.dtbo.o \
|
||||||
overlay_gpio_02b.dtb.o \
|
overlay_gpio_02b.dtbo.o \
|
||||||
overlay_gpio_03.dtb.o \
|
overlay_gpio_03.dtbo.o \
|
||||||
overlay_gpio_04a.dtb.o \
|
overlay_gpio_04a.dtbo.o \
|
||||||
overlay_gpio_04b.dtb.o
|
overlay_gpio_04b.dtbo.o
|
||||||
|
|
||||||
# enable creation of __symbols__ node
|
# enable creation of __symbols__ node
|
||||||
DTC_FLAGS_overlay += -@
|
DTC_FLAGS_overlay += -@
|
||||||
|
|
|
@ -1423,12 +1423,12 @@ static int __init unittest_data_add(void)
|
||||||
void *unittest_data_align;
|
void *unittest_data_align;
|
||||||
struct device_node *unittest_data_node = NULL, *np;
|
struct device_node *unittest_data_node = NULL, *np;
|
||||||
/*
|
/*
|
||||||
* __dtb_testcases_begin[] and __dtb_testcases_end[] are magically
|
* __dtbo_testcases_begin[] and __dtbo_testcases_end[] are magically
|
||||||
* created by cmd_dt_S_dtb in scripts/Makefile.lib
|
* created by cmd_dt_S_dtbo in scripts/Makefile.lib
|
||||||
*/
|
*/
|
||||||
extern uint8_t __dtb_testcases_begin[];
|
extern uint8_t __dtbo_testcases_begin[];
|
||||||
extern uint8_t __dtb_testcases_end[];
|
extern uint8_t __dtbo_testcases_end[];
|
||||||
const int size = __dtb_testcases_end - __dtb_testcases_begin;
|
const int size = __dtbo_testcases_end - __dtbo_testcases_begin;
|
||||||
int rc;
|
int rc;
|
||||||
void *ret;
|
void *ret;
|
||||||
|
|
||||||
|
@ -1443,7 +1443,7 @@ static int __init unittest_data_add(void)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
unittest_data_align = PTR_ALIGN(unittest_data, FDT_ALIGN_SIZE);
|
unittest_data_align = PTR_ALIGN(unittest_data, FDT_ALIGN_SIZE);
|
||||||
memcpy(unittest_data_align, __dtb_testcases_begin, size);
|
memcpy(unittest_data_align, __dtbo_testcases_begin, size);
|
||||||
|
|
||||||
ret = of_fdt_unflatten_tree(unittest_data_align, NULL, &unittest_data_node);
|
ret = of_fdt_unflatten_tree(unittest_data_align, NULL, &unittest_data_node);
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
|
@ -3003,24 +3003,24 @@ static inline void __init of_unittest_overlay(void) { }
|
||||||
#ifdef CONFIG_OF_OVERLAY
|
#ifdef CONFIG_OF_OVERLAY
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* __dtb_ot_begin[] and __dtb_ot_end[] are created by cmd_dt_S_dtb
|
* __dtbo_##overlay_name##_begin[] and __dtbo_##overlay_name##_end[] are
|
||||||
* in scripts/Makefile.lib
|
* created by cmd_dt_S_dtbo in scripts/Makefile.lib
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define OVERLAY_INFO_EXTERN(name) \
|
#define OVERLAY_INFO_EXTERN(overlay_name) \
|
||||||
extern uint8_t __dtb_##name##_begin[]; \
|
extern uint8_t __dtbo_##overlay_name##_begin[]; \
|
||||||
extern uint8_t __dtb_##name##_end[]
|
extern uint8_t __dtbo_##overlay_name##_end[]
|
||||||
|
|
||||||
#define OVERLAY_INFO(overlay_name, expected) \
|
#define OVERLAY_INFO(overlay_name, expected) \
|
||||||
{ .dtb_begin = __dtb_##overlay_name##_begin, \
|
{ .dtbo_begin = __dtbo_##overlay_name##_begin, \
|
||||||
.dtb_end = __dtb_##overlay_name##_end, \
|
.dtbo_end = __dtbo_##overlay_name##_end, \
|
||||||
.expected_result = expected, \
|
.expected_result = expected, \
|
||||||
.name = #overlay_name, \
|
.name = #overlay_name, \
|
||||||
}
|
}
|
||||||
|
|
||||||
struct overlay_info {
|
struct overlay_info {
|
||||||
uint8_t *dtb_begin;
|
uint8_t *dtbo_begin;
|
||||||
uint8_t *dtb_end;
|
uint8_t *dtbo_end;
|
||||||
int expected_result;
|
int expected_result;
|
||||||
int ovcs_id;
|
int ovcs_id;
|
||||||
char *name;
|
char *name;
|
||||||
|
@ -3094,7 +3094,7 @@ static struct overlay_info overlays[] = {
|
||||||
OVERLAY_INFO(overlay_bad_phandle, -EINVAL),
|
OVERLAY_INFO(overlay_bad_phandle, -EINVAL),
|
||||||
OVERLAY_INFO(overlay_bad_symbol, -EINVAL),
|
OVERLAY_INFO(overlay_bad_symbol, -EINVAL),
|
||||||
/* end marker */
|
/* end marker */
|
||||||
{.dtb_begin = NULL, .dtb_end = NULL, .expected_result = 0, .name = NULL}
|
{.dtbo_begin = NULL, .dtbo_end = NULL, .expected_result = 0, .name = NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct device_node *overlay_base_root;
|
static struct device_node *overlay_base_root;
|
||||||
|
@ -3151,13 +3151,13 @@ void __init unittest_unflatten_overlay_base(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
data_size = info->dtb_end - info->dtb_begin;
|
data_size = info->dtbo_end - info->dtbo_begin;
|
||||||
if (!data_size) {
|
if (!data_size) {
|
||||||
pr_err("No dtb 'overlay_base' to attach\n");
|
pr_err("No dtb 'overlay_base' to attach\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
size = fdt_totalsize(info->dtb_begin);
|
size = fdt_totalsize(info->dtbo_begin);
|
||||||
if (size != data_size) {
|
if (size != data_size) {
|
||||||
pr_err("dtb 'overlay_base' header totalsize != actual size");
|
pr_err("dtb 'overlay_base' header totalsize != actual size");
|
||||||
return;
|
return;
|
||||||
|
@ -3169,7 +3169,7 @@ void __init unittest_unflatten_overlay_base(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(new_fdt, info->dtb_begin, size);
|
memcpy(new_fdt, info->dtbo_begin, size);
|
||||||
|
|
||||||
__unflatten_device_tree(new_fdt, NULL, &overlay_base_root,
|
__unflatten_device_tree(new_fdt, NULL, &overlay_base_root,
|
||||||
dt_alloc_memory, true);
|
dt_alloc_memory, true);
|
||||||
|
@ -3204,11 +3204,11 @@ static int __init overlay_data_apply(const char *overlay_name, int *ovcs_id)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
size = info->dtb_end - info->dtb_begin;
|
size = info->dtbo_end - info->dtbo_begin;
|
||||||
if (!size)
|
if (!size)
|
||||||
pr_err("no overlay data for %s\n", overlay_name);
|
pr_err("no overlay data for %s\n", overlay_name);
|
||||||
|
|
||||||
ret = of_overlay_fdt_apply(info->dtb_begin, size, &info->ovcs_id);
|
ret = of_overlay_fdt_apply(info->dtbo_begin, size, &info->ovcs_id);
|
||||||
if (ovcs_id)
|
if (ovcs_id)
|
||||||
*ovcs_id = info->ovcs_id;
|
*ovcs_id = info->ovcs_id;
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
|
|
@ -48,13 +48,13 @@ For Raspbian users only
|
||||||
=======================
|
=======================
|
||||||
Since Raspbian supports device tree overlays, you may use an overlay instead
|
Since Raspbian supports device tree overlays, you may use an overlay instead
|
||||||
of editing your boards device tree.
|
of editing your boards device tree.
|
||||||
To use the overlay, you need to compile the file pi433-overlay.dts which can
|
To use the overlay, you need to compile the file pi433-overlay.dtso which can
|
||||||
be found alongside this documentation.
|
be found alongside this documentation.
|
||||||
The file needs to be compiled - either manually or by integration in your kernel
|
The file needs to be compiled - either manually or by integration in your kernel
|
||||||
source tree. For a manual compile, you may use a command line like the following:
|
source tree. For a manual compile, you may use a command line like the following:
|
||||||
'linux/scripts/dtc/dtc -@ -I dts -O dtb -o pi433.dtbo pi433-overlay.dts'
|
'linux/scripts/dtc/dtc -@ -I dts -O dtb -o pi433.dtbo pi433-overlay.dtso'
|
||||||
|
|
||||||
For compiling inside of the kernel tree, you need to copy pi433-overlay.dts to
|
For compiling inside of the kernel tree, you need to copy pi433-overlay.dtso to
|
||||||
arch/arm/boot/dts/overlays and you need to add the file to the list of files
|
arch/arm/boot/dts/overlays and you need to add the file to the list of files
|
||||||
in the Makefile over there. Execute 'make dtbs' in kernel tree root to make the
|
in the Makefile over there. Execute 'make dtbs' in kernel tree root to make the
|
||||||
kernel make files compile the device tree overlay for you.
|
kernel make files compile the device tree overlay for you.
|
||||||
|
|
|
@ -362,7 +362,7 @@ DTC_FLAGS += $(DTC_FLAGS_$(basetarget))
|
||||||
DTC_FLAGS += $(if $(filter $(patsubst $(obj)/%,%,$@), $(base-dtb-y)), -@)
|
DTC_FLAGS += $(if $(filter $(patsubst $(obj)/%,%,$@), $(base-dtb-y)), -@)
|
||||||
|
|
||||||
# Generate an assembly file to wrap the output of the device tree compiler
|
# Generate an assembly file to wrap the output of the device tree compiler
|
||||||
quiet_cmd_dt_S_dtb= DTB $@
|
quiet_cmd_dt_S_dtb= DTBS $@
|
||||||
cmd_dt_S_dtb= \
|
cmd_dt_S_dtb= \
|
||||||
{ \
|
{ \
|
||||||
echo '\#include <asm-generic/vmlinux.lds.h>'; \
|
echo '\#include <asm-generic/vmlinux.lds.h>'; \
|
||||||
|
@ -379,6 +379,24 @@ cmd_dt_S_dtb= \
|
||||||
$(obj)/%.dtb.S: $(obj)/%.dtb FORCE
|
$(obj)/%.dtb.S: $(obj)/%.dtb FORCE
|
||||||
$(call if_changed,dt_S_dtb)
|
$(call if_changed,dt_S_dtb)
|
||||||
|
|
||||||
|
# Generate an assembly file to wrap the output of the device tree compiler
|
||||||
|
quiet_cmd_dt_S_dtbo= DTBOS $@
|
||||||
|
cmd_dt_S_dtbo= \
|
||||||
|
{ \
|
||||||
|
echo '\#include <asm-generic/vmlinux.lds.h>'; \
|
||||||
|
echo '.section .dtb.init.rodata,"a"'; \
|
||||||
|
echo '.balign STRUCT_ALIGNMENT'; \
|
||||||
|
echo '.global __dtbo_$(subst -,_,$(*F))_begin'; \
|
||||||
|
echo '__dtbo_$(subst -,_,$(*F))_begin:'; \
|
||||||
|
echo '.incbin "$<" '; \
|
||||||
|
echo '__dtbo_$(subst -,_,$(*F))_end:'; \
|
||||||
|
echo '.global __dtbo_$(subst -,_,$(*F))_end'; \
|
||||||
|
echo '.balign STRUCT_ALIGNMENT'; \
|
||||||
|
} > $@
|
||||||
|
|
||||||
|
$(obj)/%.dtbo.S: $(obj)/%.dtbo FORCE
|
||||||
|
$(call if_changed,dt_S_dtbo)
|
||||||
|
|
||||||
quiet_cmd_dtc = DTC $@
|
quiet_cmd_dtc = DTC $@
|
||||||
cmd_dtc = $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
|
cmd_dtc = $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
|
||||||
$(DTC) -o $@ -b 0 \
|
$(DTC) -o $@ -b 0 \
|
||||||
|
@ -412,6 +430,9 @@ $(obj)/%.dtb: $(src)/%.dts $(DTC) $(DT_TMP_SCHEMA) FORCE
|
||||||
$(obj)/%.dtbo: $(src)/%.dts $(DTC) FORCE
|
$(obj)/%.dtbo: $(src)/%.dts $(DTC) FORCE
|
||||||
$(call if_changed_dep,dtc)
|
$(call if_changed_dep,dtc)
|
||||||
|
|
||||||
|
$(obj)/%.dtbo: $(src)/%.dtso $(DTC) FORCE
|
||||||
|
$(call if_changed_dep,dtc)
|
||||||
|
|
||||||
dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp)
|
dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp)
|
||||||
|
|
||||||
# Bzip2
|
# Bzip2
|
||||||
|
|
Loading…
Reference in New Issue