Message ID | 1466529769-2674-2-git-send-email-srinivas.kandagatla@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue 21 Jun 10:22 PDT 2016, Srinivas Kandagatla wrote: [..] > diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dts b/arch/arm64/boot/dts/qcom/apq8096-db820c.dts [..] > + > +/ { > + model = "Qualcomm Technologies, Inc. DB820c"; > + compatible = "qcom,apq8096-sbc"; I'm still not buying the concept of this being the one and only single-board-computer. If this compatible fully and exclusively identifies this particular board then dtbTool should be updated to follow the product name "qcom,apq8096-db820c". If on the other hand this identifies a class of single-board-computers, then the compatible should list both "qcom,apq8096-dtb820c" and "qcom,apq8096-sbc". Further more, the ePAPR defines this property as: "Specifies a list of platform architectures with which this platform is compatible. This property can be used by operating systems in selecting platform specific code." So I think we should follow the common pattern of having the least significant entry being "qcom,apq8096". > +}; Regards, Bjorn
On 22/06/16 05:49, Bjorn Andersson wrote: > On Tue 21 Jun 10:22 PDT 2016, Srinivas Kandagatla wrote: > > [..] >> diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dts b/arch/arm64/boot/dts/qcom/apq8096-db820c.dts > [..] >> + >> +/ { >> + model = "Qualcomm Technologies, Inc. DB820c"; >> + compatible = "qcom,apq8096-sbc"; > > I'm still not buying the concept of this being the one and only > single-board-computer. > +1 AFAIK, The problem is the dtbTool. dtbTool has predefined all the platform names along with its platform ID's [1] for auto generating board-id, pmic-id and soc-id. dtbTool checks the compatible strings along with soc name with its static list, it would fail if it did not find a matching combination of soc,platform compatible. Either we have to cope up with this and have a compatbile strings which keep dtbTool happy or Keep patching dtbtool to be more flexible. There is another problem with dtbTool, We can not use dtbTool with new boards from other vendors with own board names, like SD600 or IFC6410 and so.. IMO, we should patch dtbTool to make it more flexible to cope up with situations like this. > If this compatible fully and exclusively identifies this particular > board then dtbTool should be updated to follow the product name > "qcom,apq8096-db820c". If on the other hand this identifies a class of > single-board-computers, then the compatible should list both > "qcom,apq8096-dtb820c" and "qcom,apq8096-sbc". Am not sure this would actually work when we have two boards with same sbc platform ID. Which one would the bootloader pick? and on what basis? > > > > Further more, the ePAPR defines this property as: > "Specifies a list of platform architectures with which this platform is > compatible. This property can be used by operating systems in selecting > platform specific code." > > So I think we should follow the common pattern of having the least > significant entry being "qcom,apq8096". I agree. Thanks, srini [1] https://source.codeaurora.org/quic/kernel/skales/tree/dtbTool#n83 > >> +}; > > Regards, > Bjorn >
On Tue, Jun 21, 2016 at 06:22:42PM +0100, Srinivas Kandagatla wrote: > + chosen { > + stdout-path = "serial0"; > + }; Please add the configuration (e.g. make this "serial0:115200n8"), as per Documentation/devicetree/bindings/chosen.txt, so that we're not relying on implicit defaults. Otherwise this looks ok. Thanks, Mark.
On Wed 22 Jun 01:52 PDT 2016, Srinivas Kandagatla wrote: > > > On 22/06/16 05:49, Bjorn Andersson wrote: > >On Tue 21 Jun 10:22 PDT 2016, Srinivas Kandagatla wrote: > > > >[..] > >>diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dts b/arch/arm64/boot/dts/qcom/apq8096-db820c.dts > >[..] > >>+ > >>+/ { > >>+ model = "Qualcomm Technologies, Inc. DB820c"; > >>+ compatible = "qcom,apq8096-sbc"; > > > >I'm still not buying the concept of this being the one and only > >single-board-computer. > > > +1 > > AFAIK, The problem is the dtbTool. dtbTool has predefined all the platform > names along with its platform ID's [1] for auto generating board-id, pmic-id > and soc-id. dtbTool checks the compatible strings along with soc name with > its static list, it would fail if it did not find a matching combination of > soc,platform compatible. > > Either we have to cope up with this and have a compatbile strings which keep > dtbTool happy > or > Keep patching dtbtool to be more flexible. dtbTool is unfortunately broken if it can't handle unknown compatibles. > > There is another problem with dtbTool, We can not use dtbTool with new > boards from other vendors with own board names, like SD600 or IFC6410 and > so.. > Which means that everyone will, just like in Android-land, ship their products with the one-and-only-supported qcom,apq8096-sbc. If at least dtbTool would skip (and potentially warn about) unknown entries vendors could add their specific name and then have the sbc compatible, allowing for compatibility while dtbTool is updated. > > IMO, we should patch dtbTool to make it more flexible to cope up with > situations like this. > > >If this compatible fully and exclusively identifies this particular > >board then dtbTool should be updated to follow the product name > >"qcom,apq8096-db820c". If on the other hand this identifies a class of > >single-board-computers, then the compatible should list both > >"qcom,apq8096-dtb820c" and "qcom,apq8096-sbc". > > Am not sure this would actually work when we have two boards with same sbc > platform ID. Which one would the bootloader pick? and on what basis? > In Android land you don't have this problem, you know which zImage and which set of dtbs you should put into your boot.img. So based on above problem (requirement to update dtbTool) and the lack of need companies will continue to ship their products as "mtp" or "sbc". Regards, Bjorn
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index fa1f661..5dd05de 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -1,5 +1,6 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.dtb msm8916-mtp.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb +dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb always := $(dtb-y) subdir-y := $(dts-dirs) diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dts b/arch/arm64/boot/dts/qcom/apq8096-db820c.dts new file mode 100644 index 0000000..c1d8919 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dts @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "apq8096-db820c.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. DB820c"; + compatible = "qcom,apq8096-sbc"; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi new file mode 100644 index 0000000..01916a5 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8996.dtsi" + +/ { + aliases { + serial0 = &blsp2_uart1; + }; + + chosen { + stdout-path = "serial0"; + }; + + soc { + serial@75b0000 { + label = "LS-UART1"; + status = "okay"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&blsp2_uart1_2pins_default>; + pinctrl-1 = <&blsp2_uart1_2pins_sleep>; + }; + }; +};
This patch adds apq8096 db820c basic support with serial port. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> --- arch/arm64/boot/dts/qcom/Makefile | 1 + arch/arm64/boot/dts/qcom/apq8096-db820c.dts | 21 +++++++++++++++++ arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 34 ++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/apq8096-db820c.dts create mode 100644 arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi