VxWorks porting(DM8168) - vxworks

I have Spectrum Digital evaluation board (evm816x).
I have the problem, when i'm trying to port vxWorks 6.9 to the TMS320DM8168(davinci).
I load u-boot to NAND, it starts, all okey. Then, I load vxWorks image with xds510 usb emulator. All okey, vxWorks works good. Then, i'm trying to start vxWorks from u-boot, its crashing through initialization process.
After a few experiments I came to conclusion that vxWorks start only after CPU reset.
What prevents loading vxWorks in CPU?
Thank you.

Generally VxWorks 6.x BSPs are not designed to work with U-Boot. You may encounter random crash using the U-Boot go/bootelf/bootvx command after loading the VxWorks kernel. The reasons behind this might be different, for example it might be due to disagreement with the physical memory address configured in U-Boot, or inconsistent cache/MMU state.
The latest VxWorks 7 supports U-Boot as the bootloader by default on ARM and PPC targets.
Patches are now in the mainstream of the U-Boot Git repo since U-Boot v2014.01 relesae.

There may be bootable and loadable vxworks images. You are probably run loadable image. That is the default option to build vxworks in workbench. That image expects some initialization to be done by bootloader (which is bootable vxworks that runs the "boottask", which in turn loads the vxworks image).
In short, try to build bootable/romable vxworks image and to load it. Otherwise load the bootloader (bootrom) image which will load your loadable vxworks image.

Related

Is STM32f429 discovery board fully supported on qemu?

I'm trying to emulate STM32F429I discovery board using qemu & eclipse IDE. I got the blinky example running with the led turning on and off on the graphics screen but I have tried an example to run the on-board screen and it doesn't seem to be running, Is it supported? Also, many drivers fail when simulated with qemu (sdram, rcc, ...) How can I know exactly what peripherals that are fully supported?
Here's the part of documentation about the board, What is meant by "FP not emulated" anyway?

install vxworks on vortex 86d

I wonder by any chance is there a way to install vxworks on vdx86d(vdx6354)? I searched a lot on the net and did not find NO to this question, but no manual or help could be find by me. anybody did this before and know how to do it?
VxWorks certainly runs on PC architecture x86 targets; there is probably already a suitable 80486 BSP that will suit this board. You can search for a suitable BSP here. There is only one BSP explicitly listed for 486 targetted at VxWorks 5.4/Tornado 2.0 - so it is as antique as 486 architecture itself. VxWorks 6.9 however has a single unified BSP for x86 which will no doubt work with your board.
VxWorks is not "installed" as such in the same way as a GPOS such as Linux or Windows; rather you link your application with the VxWorks libraries to create an application image that runs directly on boot. How the bootstrap process works varies between architectures and hardware implementation, but as a generic PC architecture board, booting a VxWorks application on your board will be the same as any other PC target. As such what you need to look for are directions on booting VxWorks on PC architecture rather then being specific about your actual board.
On PC architecture you can boot from mass-storage, or from a network server. Booting via a network connection is the normal method during debug/development. A great deal of the information available is for older versions of VxWorks. However it seems that it is possible to boot VxWorks via a VxWorks specific bootstrap, or from a generic PC bootloader such a s U-Boot.
Ultimately Wind River Support is probably a good starting point.

OpenCl: Minimal configuration to work with AMD GPU

Suppose we have AMD GPU (for example Radeon HD 7970) and minimal linux system without X and etc.
What should be installed and what should be launched and how it should be launched to have proper OpenCL environment? In best case it should be headless environment.
Requirements to environment:
GPU visible by OpenCL programs (clinfo for example)
It is possible to monitor temperature and set fan speed (for example using aticonfig).
P.S. Simple install Xserver, catalyst and run X :0 won't work properly. See X server with fglrx driver won't responce after exactly 49 accesses to X server
UPD When you use AMD GPU on linux, OpenCL applications don't see AMD GPU if Xserver isn't launched.
I had similar problem, asked a question and had succeed solving it by myself.
For R9 290 cards and newer i assume you have:
Built kernel 4.14 or later, with amdgpu driver support. There is option in linux kernel config under Graphics Support.
All nesesary firmware .bin blobs are incorporated. To do so easily you may edit buildroot/package/linux-firmware/* contents for buildroot, and manually add BR2_PACKAGE_LINUX_FIRMWARE_AMDGPU option by yourself, along with BR2_PACKAGE_LINUX_FIRMWARE_RADEON (use it as a template). Actually we should post that update to their git.
When booting you should see appropriate dmesg messages about amdgpu initializing, per each adapter. And screen mode should be switched. If you still see large console text and no videomode switch occured during init then you have problem in kernel/firmware, you should fix that out first.
To answer second question, controlling fan speeds/temperatures is achieved via powerplay filesystem, eg /sys/class/drm/.. like this:
cd sys/class/drm/card0/device/hwmon/hwmon0
echo 1 > pwm1_enable
cat pwm1_max > pwm1
You may dig a bit deeper and find powertune parameters nearby, in device folder.
But instead of using /sys/class/drm/card0/device/pp_dpm_sclk i highly recommend flashing that values directly in cards' bios. Set with required frequencies/voltages, as it is more reliable, stable and api independent - you either init it, or not :)
PS. Also put away 7970, buy something a bit newer. I dont know if it is still supported in the latest drivers, we havent such an old card by hands right now. I tested 290, 390, 480, 580 cards series. (for R9 270, miner fails to build cl code). For older cards better to use some older software <=16.40 and maybe a bit older kernel <=4.13

Can I use a vxWorks boot loader to load a vxWorks image of a different version

I've got a board with an old VxWorks 6.5 boot loader loading an image over ftp. If I put a new image on ftp built for VxWroks 6.7 (or higher) should that work. My tests so far seem to indicate no. However, I don't yet trust that my new kernel's are good.
EDIT:
To troubleshoot I built a VxWorks 6.7 boot loader and made a new boot floppy. The first problem I have is that my VxWorks image is crashing somewhere in the board support package (BSP). I've not gotten to the part where I tweak the configuration to load it with a 6.5 boot loader. It looks like I'll be troubleshooting the BSP that came with the board for a while.
I know that a 6.5 Bootloader works just fine with a 6.7 VxWorks image.
However, you have to make sure that the settings for the vxWorks image match the settings for the bootloader. The main ones being:
RAM settings: RAM_HIGH/RAM_LOW, etc...
sysPhysMemTop(),
BOOTLINE address
Matching RAM configuration is important if you use the ED&R framework.

How to create bootable GUI programs?

*"for Retro computing purposes only"*
Some programs are directly bootable and have a nice GUI
e.g. Acronis OS Selector and Disk Director (screenshot)
How can they run wihtout underlying OS? Can this be acheived by using a minimal Linux distribution?
goal: the program should run such that it appears independent of the os (e.g you dont have to launch it from the os cmd or desktop)
also the OS should not have increase the size of the program a bit too much
Also I wonder if Qt GUI's can run like this...
I suspect that Acronis OS Selector and Disk Director uses their own version of Windows 7.
Yes, you can produce a program that has it's own operating system. You could use a bootable Linux distribution.
Knoppix, to pick one example, is a bootable Linux distribution.
The story behind a comprehensive GUI + bootable program is somewhat like this:
Develop the program in a linux GUI toolkit
On boot, load a linux kernel (without any desktop environment)
Hand over the control to the program GUI
more info: Bootable Qt-Linux Application