Raspberry I2C IPMB Interface with device tree for IPMI debugging - raspberry-pi

I try to debug and test a BMC over the I2C interface of an raspberry(4).
So I simply want to send IPMI commands over IPMB to a microcontroller for debugging.
I write the code for a BMC and there a great tool for testing the communication would be also great.
My idea was to use ipmitool which actually needs a IPMI/IPMB interface to communicate.
I tried to build a new Linux kernel with the needed modules but couldn't get a usable device under/dev/.
Now I've seen on the Kernel page that I'd need to load a devicetree with the IPMB interface over the I2C bus. Can someone tell me how to create a dts file for the I2C hardware?
But at all an other solution for debugging would also be helpfull.
Thanks!

Related

How are BSP and U-Boot different for an embedded dev board?

I am new to embedded world and trying to understand the difference between a BSP (Board Support Package) and U-Boot utility. My understanding is that both of them reside on ROM area of the target board. When the board's power is turned ON then first the processor control goes to U-Boot that initializes the board peripherals as well provide boot parameters for the OS to boot-up.
When the OS is launched it needs the BSP to communicate to the board's peripherals.
Is this correct understanding or am I missing something here?
Das U-Boot is a bootloader. It is a piece of software which runs when you turn on the processor. It's job is to load the main software and get it ready to start.
A board support package is all the software that you need to run software on one particular board which is different from what you would need to run on a different board.
A BSP might include a boot loader and that boot loader might be u-boot. If the processor on the board does not need a bootloader or it is pre-programmed in ROM then the BSP might not include a boot loader.
The BSP will also include various other things such as header files or a device tree to tell you which peripherals are connected to which ports and pins, and maybe drivers for those peripherals.

How do I develop an UEFI application using the network packages?

I see GNU EFI is a tool chain to compile applications, but it doesn't seem to come with many libraries.
Tianocore EDK2 comes with a lot of code, with modules and drivers that I'm still figuring out. By default, it builds a full firmware image that I use as a BIOS.
What I need to do is, develop a network-capable application that will query a server for boot instructions, and then prepare the next steps. The idea is to control the boot process from the management server, so the client should be able to follow the instructions to boot from TFTP, or from local storage, or update local storage etc.
You have two main options for writing UEFI network applications.
Managed Network Protocol has the firmware trying to autoconfigure your network and download files as appropriate via TFTP/PXE or HTTPS.
Simple Network Protocol gives you raw access to a packet interface if you want to handle things yourself.

How to emulate BACnet communication protocol on raspberry pi stacks

I am currently working on my senior design project. I have made the stack of raspberry pi's. I am just wondering on how to create a BACnet stack where each raspberry pi device is a unique device, with a unique device ID. Additionally, we plan to use a cisco switch to connect with other raspberry pi stacks. I understand that there is a bacpypes module, which is amazing but it is mainly for dealing with a bacnet device. In my scenario, I need to create a stack of raspberry pi's emulating the BACnet communication protocol.
It would be really helpful
Quickest way:
Compile Steve Karg's BACnet stack by following this: "How to build a FOSS BACnet Server based on Steve Karg’s SourceForge project" on the BITS blog.
Run the BACnet SErver sample executable on each of your Pis:
cd /demo/server
./bacserv
May I suggest trying BAC0, a python implementation of BACnet.
BAC0 is a high level wrapper around bacpypes. And when launched, becomes a BACnet device on any network.
https://github.com/ChristianTremblay/BAC0
https://bac0.readthedocs.io/en/latest/

Bacnet on Raspberry Pi

Currently I am working on simulation of SCADA system using bacnet protocol for network communication with my Raspberrry Pi for my final year project.
Current status: Raspberry Pi 2 able to run openplc (act like PLC)
done installing ScadaBR (act like SCADA system)
Current issue: How would I implement bacnet protocol for data link to make connection between both Raspberry Pi and my workstation?
I tried to research on bacnet stack protocol, implement some opensource but there is no luck. But I using the demo of youtube video (http://www.youtube.com/watch?v=0TJIrnAPsw4).
It making raspberry pi act as a bacnet server. the code is working perfectly. How can I find a bacnet protocol (client version) running on my Raspberry Pi.
here are some question I unable to source:
Which bacnet stack able to control the bacnet communication between PLC (Raspberry Pi) and ScadaBR?
How Raspberry Pi (openPLC preinstalled) communicate with ScadaBR?
use which bacnet stack to implement both workstation.
The BACpypes library is written Python and runs on a variety of platforms, if you still have some time before the end of the term for your final project, contact me (the author) and maybe we can make something work. I see that your question is tagged with Java, but maybe you have other options.

My Internet interferes with external device

I am interfacing with some external hardware (can't disclose much details on hardware) and I am using Ethernet cable to talk to external hardware boards. I have windows 7 on my machine. In between the external hardware and my PC, I have a small ethernet hub that communicates with multiple circuit boards of my external hardware.
Also, in order to get internet connection on my PC, I am using a USB2Ethernet adapter which provides me the internet connectivity.
The problem I am having is that whenever PC is connected to internet, certain test that I run on the external hardware do not work. If I dicsonnect the internet cable, then my external hardware works fine and I can do my testing.
I have disabled the USB2Ethernet through device manager and (I get no internet) and tried to run the test and my hardware doesnt work.
Has anyone encounter a problem like this and if so, what would be an ideal solution? Any help would be greately appreciated.
Please feel free to contact for any other information related to the problem if I haven't explained it well.