Wednesday, August 27, 2014

What is an FPGA? https://embeddedmicro.com/tutorials/mojo/what-is-an-fpga

https://embeddedmicro.com/tutorials/mojo/what-is-an-fpga

So what exactly is an FPGA? You may have heard the term thrown around, or maybe you have no idea what I'm talking about. Either way, FPGAs (Field Programmable Gate Arrays) are amazing devices that now allow the average person to create their very own digital circuits. The cost has come down enough that you don't have to be a huge company to get your hands dirty.
You can think of an FPGA as a blank slate. By itself an FPGA does nothing. It is up to you (the designer) to create a configuration file, often called a bit file, for the FPGA. Once loaded the FPGA will behave like the digital circuit you designed!
One of the reasons FPGAs are so awesome is that unlike an ASIC (Application Specific Integrated Circuit) the circuit design is not set and you can reconfigure an FPGA as many times as you like! Creating an ASIC also costs potentially millions of dollars and takes weeks or months to create. That's not exactly hobbyist friendly.

FPGA vs Microcontroller

When I first learned about FPGAs, all I really knew about before was microcontrollers. So first it is important to understand that they are verydifferent devices. With a microcontroller, like an Arduino, the chip is already designed for you. You simply write some software, usually in C or C++, and compile it to a hex file that you load onto the microcontroller. The microcontroller stores the program in flash memory and will store it until it is erased or replaced. With microcontrollers you have control over the software.
FPGAs are different. You are the one designing the circuit. There is no processor to run software on, at least until you design one! You can configure an FPGA to be something as simple as an and gate, or something as complex as a multi-core processor. To create your design, you write some HDL (Hardware Description Language). The two most popular HDLs are Verilog and VHDL. You then synthesize your HDL into a bit file which you can use to configure the FPGA. A slight downside to FPGAs is that they store their configuration in RAM, not flash, meaning that once they lose power they lose their configuration. They must be configured every time power is applied.
That is not as bad as it seems as there are flash chips you can use that will automatically configure the stored bit file on power up. There are also some development boards which don't require a programmer at all and will configure the FPGA at startup.
With FPGAs you have control over the hardware.

The Possibilities

With a typical microprocessor, you have dedicated pins for specific features. For example there will be only two pins on some microprocessors that are used as a serial port. If you want more than one serial port, or you want to use some other pins, your only solution besides getting a different chip is to use software to emulate a serial port. That works fine except you are wasting valuable processor time with the very basic task of sending out bits. If you want to emulate more than one port then you end up using all your processor time.
With an FPGA you are able to create the actual circuit, so it is up to you to decide what pins the serial port connects to. That also means you can create as many serial ports as you want. The only limitations you really have are the number of physical I/O pins and the size of the FPGA.
Just like microcontrollers that have a set amount of memory for your program, FPGAs can only emulate a circuit so large.
One of the very interesting things about FPGAs is that while you are designing the hardware, you can design the hardware to be a processor that you then can write software for! In fact, companies that design digital circuits, like Intel or nVidia, often use FPGAs to prototype their chips before creating them.

esxi fix ACPI hang

ESXi 4 and Kernel Options

I have a Dell PowerEdge 1900 that boots to VMWare ESXi 4.1 from a USB pen drive. The only real problem I ran across was that it got stuck on loading the megaraid_sas driver on startup. This was fixed by setting kernel options to disable ACPI and power management.
The first solution:
Press SHIFT+O after the system starts booting. You should get a prompt to “Enter advanced options”. Type “noACPI nopowerManagement” and press enter, then enter again to continue booting.
This worked for me and as long as the power stayed on, everything was good. However, I need my servers to come up automatically without operator intervention.
The permanent solution(s):
Method 1: Use the vSphere Client to make changes to the kernel options
In vSphere Client, connect to your server and click on the “Configuration” tab.
Under “Software”, click on “Advanced Settings”.
A new window will open, click on “VMkernel”.
Uncheck the boxes next to both “VMkernel.Boot.ACPI” and “VMkernel.Boot.powerManagement”.
Method 2: Modify /bootbank/boot.cfg
Get to the file system
Option 1: Use a Linux Live CD to access the file system
Option 2: Once ESXi is up and running, connect to the server using SSH.
Add “ACPI=FALSE powerManagement=FALSE” to the “kernalopt=” line in “/bootbank/boot.cfg”
My boot.cfg file ended up looking like this:

kernel=b.z
kernelopt=ACPI=FALSE powerManagement=FALSE
modules=k.z --- s.z --- c.z --- oem.tgz --- license.tgz --- m.z
build=4.1.0-260247
updated=1
bootstate=0
This is something to look out for after installing VMWare ESXi updates, you might have to do it again.
-okitsfixed

install esxi 5 with low ram

how to: Installing ESXi 5.5 on less than 2GB RAM

you may know i am trying to set up an esx lab at home. i was trying to do it with nested virtualisation but it wasnt working out very well so instead i dig up an old hp 7800 desktop that i had and slid the cd in.
and it wanted 4gb or ram instead of the 2gb i had. so searching around on the internet tubes i found this article
but it didnt fit my scenario exactly so i had to edit his steps a bit
  • Boot the system from CD with the ESXi installer on it.
  • Once the installer welcome screen shows up, press alt+1 to go to the first console (login prompt)
  • Login as root, no password.
  • # cd /usr/lib/vmware/weasel/utils
  • There are a few files but the upgrade_precheck.py is of interest to us
  • Delete upgrade_precheck.pyc (compiled version)
  • Move upgrade_precheck.py to upgrade_precheck.py.old (because the file can not be edited due to some immortal flags and lack of tools to remove these flags)
  • Cp upgrade_precheck.py.old > upgrade_precheck.py
  • Edit upgrade_precheck.py and search for line that MEM_MIN_SIZE you will find (4 * 1024). Edit the number 4 to make it suitable for you. i made i to 1
  • List all processes (ps -c | grep install) and kill the installer by pid
  • now in that console run the installer with /bin/install
  • Continue as normal
and the install has completed.

esxi disable impi_si_drv

https://communities.vmware.com/thread/460763'

Waiting for loading ipmi_si_drv - disable IPMI on boot?

This question has been Answered.
juergensmdLurker

Hi,
I am using an Supermicro X8SIL (without -F), a Xeon L3426, 16GiB ECC reg., ESXi 5.5!
This board does not support IPMI, and I think there is no way to install an add-on card.
The system is booting fast til the ipmi_si_drv is loading - after 10min. wait time - the system is booting fine and works without any problems.
In the vsphere client the IPMI status is green! That's funny?
Is there any chance to minimize the wait time of the IPMI driver while booting?
Is there a modified ISO?
Is it possible to disable the IPMI driver - I does not need this feature.

Best regards,
Matthias
MKguy
Correct Answer by MKguy  on Oct 23, 2013 1:11 AM
You can uninstall the ipmi_si_drv VIB as follows:
First a test-run to make sure only this VIB is affected:
# esxcli software vib remove --dry-run --vibname ipmi-ipmi-si-drv
Removal Result
   Message: Dryrun only, host not changed. The following installers will be applied: [BootBankInstaller]
   Reboot Required: true
   VIBs Installed:
   VIBs Removed: VMware_bootbank_ipmi-ipmi-si-drv_39.1-4vmw.510.1.12.1065491
   VIBs Skipped:

Now for the actual removal:
# esxcli software vib remove --vibname ipmi-ipmi-si-drv

Then reboot the host.
You might have to put the host into maintenance mode before removing the VIB as well.
Helpful Answer by juergensmd 
  • Correct Answer1. Re: Waiting for loading ipmi_si_drv - disable IPMI on boot?
    MKguyMaster
    You can uninstall the ipmi_si_drv VIB as follows:
    First a test-run to make sure only this VIB is affected:
    # esxcli software vib remove --dry-run --vibname ipmi-ipmi-si-drv
    Removal Result
       Message: Dryrun only, host not changed. The following installers will be applied: [BootBankInstaller]
       Reboot Required: true
       VIBs Installed:
       VIBs Removed: VMware_bootbank_ipmi-ipmi-si-drv_39.1-4vmw.510.1.12.1065491
       VIBs Skipped:

    Now for the actual removal:
    # esxcli software vib remove --vibname ipmi-ipmi-si-drv

    Then reboot the host.
    You might have to put the host into maintenance mode before removing the VIB as well.
  • Helpful Answer2. Re: Waiting for loading ipmi_si_drv - disable IPMI on boot?
    juergensmdLurker
    Thank you very much,
    I will try this tonight.

    For putting in maintenance mode:
    Alt + F1, root access
    # vim-cmd hostsvc/maintenance_mode_enter
    then I will follow with your explanation above.

    That would be nice, I spent a lot of time last night....

    Best regards,
    Matthias


  • 3. Re: Waiting for loading ipmi_si_drv - disable IPMI on boot?
    juergensmdLurker
    Hi,
    I have to say: Thank you very, very much!!!
    One minute, and all was done! Reboot was quick, ESXi 5.5 was ready in three minutes and working fine!

    Thanks a lot!

    Best regards,
    Matthias
  • 4. Re: Waiting for loading ipmi_si_drv - disable IPMI on boot?
    abrehmcLurker
    You can add the ASUS KCMA-D8 motherboard to that list.
    I just upgraded to 5.5, and it still hangs (allthough it was slated to be fixed in 5.5).
    It WILL continue after 20 minutes or so, but it is still unacceptable to remove the entire Intelligent Platform Management Interface to fix this.
    That module should time out quicker and auto disable the functions with a warning.

    This problem has been here as long as I can remember - maybe it's time to get it fixed?
  • 5. Re: Waiting for loading ipmi_si_drv - disable IPMI on boot?
    joshuatownsendEnthusiast vExpert
    Add my home lab Dell C6100 (XS23-TY3) with L5639 to the list with ESXi 5.5 - I waited 24 hours and the boot process remained stuck at loading impi_si_drv...  Reinstall and remove the IPMI VIB....  bummer.
  • 6. Re: Waiting for loading ipmi_si_drv - disable IPMI on boot?
    samueltowleLurker
    Joshua,

    I just encounter the same thing on our C6100.
    Node 3 had a mauve screen of death.  Then would not boot past ipmi_si_drv.
    I tried setting the IPMI to "Shared" in the BIOS on your C6100 and it booted normally.

    HTH

    Sam
  • 7. Re: Waiting for loading ipmi_si_drv - disable IPMI on boot?
    codycookLurker
    Ran into about the same but Supermicro X8SIE and 32 GB RAM. We also experience the same issue with a long delay on ipmi_si_drv  which was not present in 5.0 or 5.1.  We attempted to remove the ipmi_si_drv from install but did not like it. We do not have IPMI options in the BIOS menu, therefore it makes it impossible to toggle anything related to IPMI. Try pressing Shift + O and append noipmiEnabled to the boot args. Once booted, connect with vSphere and add uncheck VMkernel.Boot.ipmiEnabled.
  • 8. Re: Waiting for loading ipmi_si_drv - disable IPMI on boot?
    MidusNovice vExpert
    My experience was different. It hung if set to "shared", setting it back to "dedicated" solved the issue for me.

    I'm on BIOS 1.71, ESM 1.33 and FCB 1.20v2

    Message was edited by: Kenneth Chan (midus)

    Update 17th April 2014:

    Hmmm... on ESXi build 1623387 if "Set BMC NIC" is set to "dedicated" it will hang. Set it to "Shared" as recommended. BTW did try disabling the IPMI .vib (uncheck, set to false for VMkernel.Boot.ipmiEnabled). However, doing so all extended hardware monitoring, fan speeds or temperature, etc, will no longer be visible.