OE Linux & board-support-package


jchludzinski
 

OE Linux uses device tree files (*.dts and *.dtsi files), so is there any need for a board-support-package?


Zoran
 

Hello J,

Please, could you be more specific?

Thank you,
Zee
_______


On Thu, May 5, 2022 at 5:42 AM jchludzinski via lists.yoctoproject.org
<jchludzinski=vivaldi.net@...> wrote:

OE Linux uses device tree files (*.dts and *.dtsi files), so is there
any need for a board-support-package?



jchludzinski
 

A board-support-package (BSP) is software that provides a layer of abstraction from the physical board specifics for the host embedded OS (e.g., VXworks).

I believe the device tree files (*.dts, *dtsi) in OE Linux provide the same function. It allows to OE kernel code to be independent of device specifics.

On 2022-05-05 01:54, Zoran Stojsavljevic wrote:
Hello J,
Please, could you be more specific?
Thank you,
Zee
_______
On Thu, May 5, 2022 at 5:42 AM jchludzinski via lists.yoctoproject.org
<jchludzinski=vivaldi.net@...> wrote:
OE Linux uses device tree files (*.dts and *.dtsi files), so is there
any need for a board-support-package?


Michael Opdenacker
 

On 5/5/22 08:39, jchludzinski via lists.yoctoproject.org wrote:
A board-support-package (BSP) is software that provides a layer of
abstraction from the physical board specifics for the host embedded OS
(e.g., VXworks).

I believe the device tree files (*.dts, *dtsi) in OE Linux provide the
same function. It allows to OE kernel code to be independent of device
specifics.

The Device Tree files are just descriptions of the hardware. In a
perfect world, you could indeed use the same mainline kernel to support
all possible devices. However, that kernel would be unnecessarily big
for your custom system. You most probably want to customize its
configuration, and may also need custom kernel drivers and patches. 
There's also the need for a bootloader compiled for your platform.

That's why we need BSPs :-)

Cheers,
Michael.

--
Michael Opdenacker, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


jchludzinski
 

OK, let's go with that.

I've watched the "Live Coding with Yocto Project #1: download and first build" youtube video. Where is the BSP built in this procedure?

On 2022-05-05 03:16, Michael Opdenacker via lists.yoctoproject.org wrote:
On 5/5/22 08:39, jchludzinski via lists.yoctoproject.org wrote:
A board-support-package (BSP) is software that provides a layer of
abstraction from the physical board specifics for the host embedded OS
(e.g., VXworks).
I believe the device tree files (*.dts, *dtsi) in OE Linux provide the
same function. It allows to OE kernel code to be independent of device
specifics.
The Device Tree files are just descriptions of the hardware. In a
perfect world, you could indeed use the same mainline kernel to support
all possible devices. However, that kernel would be unnecessarily big
for your custom system. You most probably want to customize its
configuration, and may also need custom kernel drivers and patches. 
There's also the need for a bootloader compiled for your platform.
That's why we need BSPs :-)
Cheers,
Michael.


Josef Holzmayr
 

Howdy!

Am Do., 5. Mai 2022 um 10:43 Uhr schrieb jchludzinski via
lists.yoctoproject.org
<jchludzinski=vivaldi.net@...>:

OK, let's go with that.

I've watched the "Live Coding with Yocto Project #1: download and first
build" youtube video. Where is the BSP built in this procedure?
The BSP that is implicitly used in that video is the generic QEMU one,
which comes included with poky. Technically speaking, it lives in
https://git.yoctoproject.org/poky/tree/meta/conf/machine and
https://git.yoctoproject.org/poky/tree/meta/recipes-kernel/linux/linux-yocto_5.15.bb

A BSP can be many things, and this one is a rather small one, as
booting into and running linux on QEMU doesn't need patching and all
that, so in that case it comes pretty close to the perfect world that
Michael mentioned.

Greetz,
Josef (who did that video, actually)




On 2022-05-05 03:16, Michael Opdenacker via lists.yoctoproject.org
wrote:
On 5/5/22 08:39, jchludzinski via lists.yoctoproject.org wrote:
A board-support-package (BSP) is software that provides a layer of
abstraction from the physical board specifics for the host embedded OS
(e.g., VXworks).

I believe the device tree files (*.dts, *dtsi) in OE Linux provide the
same function. It allows to OE kernel code to be independent of device
specifics.

The Device Tree files are just descriptions of the hardware. In a
perfect world, you could indeed use the same mainline kernel to support
all possible devices. However, that kernel would be unnecessarily big
for your custom system. You most probably want to customize its
configuration, and may also need custom kernel drivers and patches.
There's also the need for a bootloader compiled for your platform.

That's why we need BSPs :-)

Cheers,
Michael.




jchludzinski
 

OK, let me try this:

With other embedded OS's, the hardware specifics that are in the BSP are in the device trees in Linux. I assume the BSP's for OE Linux are rather simple?

On 2022-05-05 04:47, Josef Holzmayr wrote:
Howdy!
Am Do., 5. Mai 2022 um 10:43 Uhr schrieb jchludzinski via
lists.yoctoproject.org
<jchludzinski=vivaldi.net@...>:
OK, let's go with that.
I've watched the "Live Coding with Yocto Project #1: download and first
build" youtube video. Where is the BSP built in this procedure?
The BSP that is implicitly used in that video is the generic QEMU one,
which comes included with poky. Technically speaking, it lives in
https://git.yoctoproject.org/poky/tree/meta/conf/machine and
https://git.yoctoproject.org/poky/tree/meta/recipes-kernel/linux/linux-yocto_5.15.bb
A BSP can be many things, and this one is a rather small one, as
booting into and running linux on QEMU doesn't need patching and all
that, so in that case it comes pretty close to the perfect world that
Michael mentioned.
Greetz,
Josef (who did that video, actually)

On 2022-05-05 03:16, Michael Opdenacker via lists.yoctoproject.org
wrote:
On 5/5/22 08:39, jchludzinski via lists.yoctoproject.org wrote:
A board-support-package (BSP) is software that provides a layer of
abstraction from the physical board specifics for the host embedded OS
(e.g., VXworks).

I believe the device tree files (*.dts, *dtsi) in OE Linux provide the
same function. It allows to OE kernel code to be independent of device
specifics.

The Device Tree files are just descriptions of the hardware. In a
perfect world, you could indeed use the same mainline kernel to support
all possible devices. However, that kernel would be unnecessarily big
for your custom system. You most probably want to customize its
configuration, and may also need custom kernel drivers and patches.
There's also the need for a bootloader compiled for your platform.

That's why we need BSPs :-)

Cheers,
Michael.



csimmonds
 

BSP is not a well defined term in embedded Linux. Back in the day, Montavista tried to popularise the term LSP, meaning Linux Support Package but it never caught on. These days, BSP generally means all the things you need to run a basic system. So that's bootloader, device tree, kernel config, kernel patches (if any), and firmware blobs. It can also include user space config such as video codecs, opengl libraries, and systemd units to start the respective daemons.

SoC and SoM vendors often overload their OE BSPs with irrelevant demo apps as well. Constant bugbear of system integrators.

HTH,
Chris


On 5 May 2022 10:51:39 BST, "jchludzinski via lists.yoctoproject.org" <jchludzinski=vivaldi.net@...> wrote:
OK, let me try this:

With other embedded OS's, the hardware specifics that are in the BSP are in the device trees in Linux. I assume the BSP's for OE Linux are rather simple?



On 2022-05-05 04:47, Josef Holzmayr wrote:
Howdy!

Am Do., 5. Mai 2022 um 10:43 Uhr schrieb jchludzinski via
lists.yoctoproject.org
<jchludzinski=vivaldi.net@...>:

OK, let's go with that.

I've watched the "Live Coding with Yocto Project #1: download and first
build" youtube video. Where is the BSP built in this procedure?

The BSP that is implicitly used in that video is the generic QEMU one,
which comes included with poky. Technically speaking, it lives in
https://git.yoctoproject.org/poky/tree/meta/conf/machine and
https://git.yoctoproject.org/poky/tree/meta/recipes-kernel/linux/linux-yocto_5.15.bb

A BSP can be many things, and this one is a rather small one, as
booting into and running linux on QEMU doesn't need patching and all
that, so in that case it comes pretty close to the perfect world that
Michael mentioned.

Greetz,
Josef (who did that video, actually)




On 2022-05-05 03:16, Michael Opdenacker via lists.yoctoproject.org
wrote:
On 5/5/22 08:39, jchludzinski via lists.yoctoproject.org wrote:
A board-support-package (BSP) is software that provides a layer of
abstraction from the physical board specifics for the host embedded OS
(e.g., VXworks).

I believe the device tree files (*.dts, *dtsi) in OE Linux provide the
same function. It allows to OE kernel code to be independent of device
specifics.


The Device Tree files are just descriptions of the hardware. In a
perfect world, you could indeed use the same mainline kernel to support
all possible devices. However, that kernel would be unnecessarily big
for your custom system. You most probably want to customize its
configuration, and may also need custom kernel drivers and patches.
There's also the need for a bootloader compiled for your platform.

That's why we need BSPs :-)

Cheers,
Michael.










Alexander Kanavin
 

Demo apps is the least of the worst. They also add benchmarks, make
tweaks to components that are in distribution (rather than hardware
support) scope, and even go ahead and define their own distributions,
and then make it impossible or very difficult to separate the distro
from the BSP. Oh, and all of this on top of yocto from 2014.

That's where the 'vendor from hell' moniker comes from.

Alex

On Thu, 5 May 2022 at 12:22, csimmonds <chris@...> wrote:

BSP is not a well defined term in embedded Linux. Back in the day, Montavista tried to popularise the term LSP, meaning Linux Support Package but it never caught on. These days, BSP generally means all the things you need to run a basic system. So that's bootloader, device tree, kernel config, kernel patches (if any), and firmware blobs. It can also include user space config such as video codecs, opengl libraries, and systemd units to start the respective daemons.

SoC and SoM vendors often overload their OE BSPs with irrelevant demo apps as well. Constant bugbear of system integrators.

HTH,
Chris

On 5 May 2022 10:51:39 BST, "jchludzinski via lists.yoctoproject.org" <jchludzinski=vivaldi.net@...> wrote:

OK, let me try this:

With other embedded OS's, the hardware specifics that are in the BSP are in the device trees in Linux. I assume the BSP's for OE Linux are rather simple?



On 2022-05-05 04:47, Josef Holzmayr wrote:

Howdy!

Am Do., 5. Mai 2022 um 10:43 Uhr schrieb jchludzinski via
lists.yoctoproject.org
<jchludzinski=vivaldi.net@...>:


OK, let's go with that.

I've watched the "Live Coding with Yocto Project #1: download and first
build" youtube video. Where is the BSP built in this procedure?

The BSP that is implicitly used in that video is the generic QEMU one,
which comes included with poky. Technically speaking, it lives in
https://git.yoctoproject.org/poky/tree/meta/conf/machine and
https://git.yoctoproject.org/poky/tree/meta/recipes-kernel/linux/linux-yocto_5.15.bb

A BSP can be many things, and this one is a rather small one, as
booting into and running linux on QEMU doesn't need patching and all
that, so in that case it comes pretty close to the perfect world that
Michael mentioned.

Greetz,
Josef (who did that video, actually)




On 2022-05-05 03:16, Michael Opdenacker via lists.yoctoproject.org
wrote:

On 5/5/22 08:39, jchludzinski via lists.yoctoproject.org wrote:

A board-support-package (BSP) is software that provides a layer of
abstraction from the physical board specifics for the host embedded OS
(e.g., VXworks).

I believe the device tree files (*.dts, *dtsi) in OE Linux provide the
same function. It allows to OE kernel code to be independent of device
specifics.


The Device Tree files are just descriptions of the hardware. In a
perfect world, you could indeed use the same mainline kernel to support
all possible devices. However, that kernel would be unnecessarily big
for your custom system. You most probably want to customize its
configuration, and may also need custom kernel drivers and patches.
There's also the need for a bootloader compiled for your platform.

That's why we need BSPs :-)

Cheers,
Michael.






Ross Burton
 

On 5 May 2022, at 04:42, jchludzinski via lists.yoctoproject.org <jchludzinski=vivaldi.net@...> wrote:

OE Linux uses device tree files (*.dts and *.dtsi files), so is there any need for a board-support-package?
In the glorious future, they will be much smaller.

Note how meta-arm has generic Intel BSPs, and thanks to recent standardisation in Arm (SystemReady, etc) there’s a generic-arm64 machine in meta-arm too.

Of course, reality and theory rarely agree, and in the embedded/iot space there is a much greater need for customisation, so I don’t expect to see “BSPs” disappearing shortly.

Ross
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


Alexander Kanavin
 

On Fri, 6 May 2022 at 13:55, Ross Burton <ross.burton@...> wrote:
OE Linux uses device tree files (*.dts and *.dtsi files), so is there any need for a board-support-package?
In the glorious future, they will be much smaller.

Note how meta-arm has generic Intel BSPs, and thanks to recent standardisation in Arm (SystemReady, etc) there’s a generic-arm64 machine in meta-arm too.

Of course, reality and theory rarely agree, and in the embedded/iot space there is a much greater need for customisation, so I don’t expect to see “BSPs” disappearing shortly.
There's an even more glorious and even more distant future, where all
hardware supports virtio, and there is no need for custom vendor
drivers at all. Also, everyone would be using risc-v by then.

Alex


Zoran
 

This is very interesting... How do some people, or system IT
"designers", or System guys, perceive the term: "Board Support
Package"???

Funny, isn't it? Or, at least, pejorative!?

Zee
_______

On Thu, May 5, 2022 at 5:42 AM jchludzinski via lists.yoctoproject.org
<jchludzinski=vivaldi.net@...> wrote:

OE Linux uses device tree files (*.dts and *.dtsi files), so is there
any need for a board-support-package?