lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <71fb0ff289e84c55bd92ecd96bc9aa76@svr-chch-ex1.atlnz.lc>
Date:   Thu, 4 Apr 2019 01:50:20 +0000
From:   Chris Packham <Chris.Packham@...iedtelesis.co.nz>
To:     "pantelis.antoniou@...sulko.com" <pantelis.antoniou@...sulko.com>,
        "frowand.list@...il.com" <frowand.list@...il.com>,
        "robh+dt@...nel.org" <robh+dt@...nel.org>
CC:     "devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        Hamish Martin <Hamish.Martin@...iedtelesis.co.nz>
Subject: Using device tree overlays in Linux

Hi,

I'm implementing support for some modular Linux based systems using 
device tree overlays. The code is working but it seems a little more 
fiddly that than it should be so I'm wondering if I'm doing it right.

An example of what I'm doing is


arch/arm/boot/dts/Makefile:
DTC_FLAGS_myboard += -@

drivers/foo/Makefile:
obj-y += myplugin.dtb.o
obj-y += mydriver.o

drivers/foo/myplugin.dts:
/dts-v1/;
/plugin/;
/{
	fragment@0 {
		target = <&i2c0>;
		__overlay__ {
			gpio@74 {
				compatible = "nxp,pca9539";
				reg = <0x74>
			};
		};
	};
};

drivers/foo/mydriver.c:
extern uint8_t __dtb_myplugin_begin[];
extern uint8_t __dtb_myplugin_end[];

int mydriver_probe(struct platform_device *pdev)
{
	u32 size = __dtb_myplugin_end - __dtb_myplugin_begin;
	int overlay_id;
	int ret;
	
	ret = of_overlay_fdt_apply(__dtb_myplugin_begin,
				   size, &overlay_id);
	return ret;
}


The first issue is that I need to add -@ to the DTC_FLAGS for my board 
dtb. I kind of understand that I only need -@ if my overlay targets 
something symbolic so I might not need it but I was surprised that there 
wasn't a Kconfig option that makes this happen automatically.

externing things in C files makes checkpatch.pl complain. I see the 
of/unittests.c and rcar_du_of.c hide this with a macro. I was again 
surprised that there wasn't a common macro to declare these.


Powered by blists - more mailing lists