Enabling Intel SGX in BIOS - operating-system

I want to test Intel SGX technology on my Lenovo Tower S510 10L3-000JFM. I checked via https://github.com/ayeks/SGX-hardware that my CPU Intel Core i7-6700 supports SGX but BIOS does not, or may be not enabled (in BIOS). A BIOS update can fix this. However, a recent BIOS update from Lenovo in https://pcsupport.lenovo.com/us/en/products/desktops-and-all-in-ones/lenovo-s-series-all-in-ones/s510-desktop/10kw/downloads/ds112505 does not specify that explicitly as I do not want to proceed to this risky operation without being sure.
My question is: is this BIOS update supporting Intel SGX? Or not?
Any help or resources are welcomed.
Last BIOS update is on 01/09/2016 and last CPU microcode update is on 07/01/2016.

According to a Lenovo BIOS engineer, BIOS for this computer model does not support Intel SGX and there is no plan for the future.

The Linux kernel does not transparently handle the Intel SGX. An application has to be written specifically for Intel SGX to use it.
If you just want to write code for Intel SGX, you can use the SIMULATION mode provided in the SGX SDK to write code and test it out. You won't be able to use Remote Attestation (and Local attestation) as it requires access to the hardware. Apart from that, everything should work fine.

Related

Where Can i find an emulator to test my operating system for ARMv8?

I am currently writing an OS based on ARMv8 processor. I want to find an emulator that acts like the processor so I can see my OS working or not and to check my work.
I am on windows 10. are there any emulators recommended ?
I searched SO but no answer. thanks.
Looks like QEMU version 2.1+ is what you want
the latest version of upstream QEMU (2.1) now includes full ARMv8 system emulation support. This means that users can use upstream QEMU to run a full 64-bit ARMv8-A kernel and filesystem, such as a 64-bit Ubuntu cloud image. This was no small endeavour as it involved emulating a completely new instruction set, exception model, CPU implementation, and more. The implementation was verified with a custom instruction verification tool (RISU) and was heavily reviewed upstream by an engaged and incredibly supportive upstream QEMU community.
source

Booting Linux on iPhone

I tried searching and searching and can't find a reason why one can't boot Linux from iPhone. I am not asking if there are drivers available for Linux or anything like that, I am just wondering why one can't boot Linux on a standard ARM processor ?
There isn't any such thing as a "standard ARM processor". Every ARM-based SoC is a little bit different, and Apple doesn't publish any information about how their SoCs work. (They aren't even standard Cortex-A designs; the Apple A6 and later all use CPU cores which were customized by Apple.)
Additionally, all of Apple's SoCs contain a bootloader in ROM which verifies a cryptographic signature before running any software from flash memory. This makes it impossible to run an operating system which was not signed by Apple.

Enable AMD-virtualization

Before 3 weeks maybe, i faced a problem in launching WP emulator. After troubleshooting, i found that visualization option in my Laptop is not running successfully.
Laptop spec. (Acer 4253):
CPU: AMD E-350, Zacate 40nm Technology
OS: Operating System, Windows 10 Pro 64-bit
RAM: 4.00GB DDR3 # 532MHz
I have downloaded Speccy to check visualization info, since nothing relate to visualization is appear in bios settings, and i found that "Hyper-threading" is not supported!, any help?
Hyperthreading is only an Intel technology, AMD doesn't have hperthreading on any of it's processors evem the AMD FX generation.
Hyper-threading (officially called Hyper-Threading Technology or HT Technology, and abbreviated as HTT or HT) is Intel's proprietary simultaneous multithreading (SMT) implementation used to improve parallelization of computations.
For Virtualizaton, you have written it ok in the title, but you wrote visualization wrong every time... processors dont have visualization.:)
Everything on your WP configuration looks ok, you shouldn't worry what the amd parameters are because they are just fine... you have to just configure and run the program same as for any amd processor, which is probably the same with intel, programs have almost zero configuration differences between the two.

PowerPC 970 Based Macs, Why Is Hypervisor Mode Unavailable?

I recently have acquired a Apple G5 computer (PPC 970) and am interested in learning more about the PowerPC architecture (most of my systems programming knowledge comes from x86 and my own hobby kernel).
After using the computer a while and getting used to PowerPC assembly (RISC), I noticed that low level CPU virtualization is not possible on PowerPC 970 based Macs. The CPU in documentation (PowerPC 64) seems to support hypervisor mode, but it has been noted that it is not possible due to Open Firmware.
Do all operating systems which are loaded from Open Firmware on PowerPC 970 series Macs load in hypervisor mode, making "nested" virtualization impossible? If this is true, why does Open Firmware load all Operating systems in hypervisor mode? Is this in order to provide a secure layer for communication between the the Operating System and Open Firmware (using firmware for everything except ACPI and memory discovery during boot, which requires a transition into "real-mode", is unsafe in x86?).
Also if the Operating system were using hyper-calls to facilitate a secure transition to firmware based routines, wouldn't this impose a large penalty just as syscalls do?
I'm not privy to Apple's hardware designs, but I've heard that the HV mode (ie., HV=1 in the Machine State Register) was disabled, through hardware, on the CPUs used in the G5 machines.
If this is the case, then it's not up to the system firmware to enable/disable HV mode - it's simply not available.
At the time that these machines were available, other Power hardware designs had a small amount of firmware running in HV=1 mode, and only exposed HV=0 to the kernel. However, the G5 wasn't one of these.

Determine if my PC supports HW Virtualization

How, in general, does one determine if a PC supports hardware virtualization? I use VirtualPC to set up parallel test environments and I'd enjoy a bit of a speed boost.
Download this: http://www.cpuid.com/cpuz.php
Also check, http://en.wikipedia.org/wiki/X86_virtualization
Edit: Additional, I know it's for XEN but the instructions are the same for all VMs that want hardware support. http://wiki.xensource.com/xenwiki/HVM_Compatible_Processors
I can't try it from work, but I'm sure it can identify whether you've got the Intel VT or AMD-V instructions. Intel will have a "vmx" instruction and AMD will have a "svm".
On linux you can check /proc/cpuinfo, "egrep '(vmx|svm)' /proc/cpuinfo"
The first thing is to run VPC, open Options, and see if the HW virtualization option is available.
If it isn't you may still have it. Many machines have HW virtualization disabled in the BIOS. If you believe this is the case you'll need to confirm with your processor mfg that MW virtualization is supported, then find out from your BIOS mfg how to enable that feature.
#Nick what processor do you have?
Try cpu-z or SecurAble on windows or on linux, cat /proc/cpuinfo and look for the flags: vmx (Intel) or svm (AMD)
All of those will tell you if the hardware supports it, but as others said it must be enabled in the BIOS. (But checking first will avoid an unnecessary reboot...)
Try just turning the option on in VirtualPC. If it doesn't do anything (or the option isn't available), then your PC doesn't.
Try just turning the option on in VirtualPC. If it doesn't do anything (or the option isn't available), then your PC doesn't.
Some PC's require a BIOS setting to be turned on in order for this option to be enabled. I couldn't find that BIOS setting on my machine, but then again there are a lot of options to comb through. Presumably this is a CPU or motherboard chipset feature, so there must be a list of CPU's that support it.
You can take a look in the BIOS of the machine. It indicates if the machine supports hardware virtualization.
You can run programs like virtual pc even if you machine does not support HW virtualization, but if the machine supports it the program take advantage of this extensions.
Your processor does NOT support hardware-assisted virtualization, but as others have said you can still run virtualization tools.
http://www.intel.com/products/processor_number/chart/pentium_d.htm
http://en.wikipedia.org/wiki/X86_virtualization
first place I'd check