User avatar
abishur
Posts: 4477
Joined: Thu Jul 28, 2011 4:10 am
Location: USA
Contact: Website

Re: Windows 8 to support ARM!

Fri Sep 16, 2011 7:32 pm

honestly, I'm kinda surprised this thread keeps on going even though we keep telling y'all that it doesn't matter if Windows 8 support ARM because it still doesn't support the broadcom chip in the r-pi :P
Dear forum: Play nice ;-)

ShiftPlusOne
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6229
Joined: Fri Jul 29, 2011 5:36 pm
Location: The unfashionable end of the western spiral arm of the Galaxy

Re: Windows 8 to support ARM!

Fri Sep 16, 2011 7:37 pm

Quote from abishur on September 16, 2011, 20:32
honestly, I'm kinda surprised this thread keeps on going even though we keep telling y'all that it doesn't matter if Windows 8 support ARM because it still doesn't support the broadcom chip in the r-pi :P

It's just interesting, I guess... even if moot.

And anyway, Windows doesn't support the chip YET. But it could potentially. Especially since it will be in other devices, perhaps it will make it's way into a few Windows 8 phones or tablets.

SonofUgly
Posts: 2
Joined: Sat Sep 17, 2011 12:09 am

Re: Windows 8 to support ARM!

Sat Sep 17, 2011 1:24 am

It seems W8 can not only run on 256MB of RAM, but only 128MB: http://www.engadget.com/2011/0.....am-banana/
Now the guy who did this did say that it took ~2-3 hours for the system to boot and you can see here (http://www.acecomputer.co.uk/d.....28MB_3.jpg) that he was using a core2duo @4ghz.
I think that this shows, aside from the broadcom chip not being supported, it W8 could run on the b model fairly nicely and potentially even on the a model.

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 26685
Joined: Sat Jul 30, 2011 7:41 pm

Re: Windows 8 to support ARM!

Sat Sep 17, 2011 7:47 am

If Microsoft decide to make W8 work on the Armv6 architecture, and if Win8 can run in 256MB, and if someone spends a lot of time and money on porting the drivers to Win8, then it just might run on the Raspi.

None of the if's are anything the Raspi team can do anything about.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed.
I've been saying "Mucho" to my Spanish friend a lot more lately. It means a lot to him.

ShiftPlusOne
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6229
Joined: Fri Jul 29, 2011 5:36 pm
Location: The unfashionable end of the western spiral arm of the Galaxy

Re: Windows 8 to support ARM!

Sat Sep 17, 2011 8:13 am

Quote from jamesh on September 17, 2011, 08:47
If Microsoft decide to make W8 work on the Armv6 architecture, and if Win8 can run in 256MB, and if someone spends a lot of time and money on porting the drivers to Win8, then it just might run on the Raspi.

None of the if's are anything the Raspi team can do anything about.

I don't know if you're allowed to speak about this sort of thing, but would the drivers be possible to reverse engineer? I understand that the GPU firmware is massive and near impossible to RE, but what about the actual userspace module?

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 26685
Joined: Sat Jul 30, 2011 7:41 pm

Re: Windows 8 to support ARM!

Sat Sep 17, 2011 10:58 am

I have no idea about the user space drivers - possibly. You are right that the GPU would be practically impossible (it's a custom instructions set for starters and you would need to know that first) - and you really don't need to do it anyway - it's the userspace that would be of relevance. And it's still not decided which bits will and won't be GPL'd/OSS anyway!

Of course, if a customer comes along and wants Win8 compatibility and will pay for it, Broadcom would be doing work on this anyway for their chip line. And that isn't beyond the realms of possibility.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed.
I've been saying "Mucho" to my Spanish friend a lot more lately. It means a lot to him.

hippy
Posts: 7792
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: Windows 8 to support ARM!

Sat Sep 17, 2011 1:22 pm

Quote from abishur on September 14, 2011, 04:15
Regardless of the debate on the worthwhileness of Windows the larger issue here is that the R-Pi will not support Windows (Check the FAQs page :) ) even with an ARM version of Windows it won't be able to work with the binary blob on the GPU.

There's a lot in that FAQ and I couldn't, with a quick glance, find anything specific. Maybe someone could explain why it's just so impossible that an ARM Windows could not work with the GPU.

As I understand it (simplified); the chip resets, loads the GPU firmware from SD card, then runs a bootloader, boots Linux from elsewhere on SD card, loads drivers etc and the end result is a running Linux system.

Sometime after loading the GPU firmware that process can be aborted or stopped and any other OS could be loaded into the chip and executed. At that point one needs to be able to communicate with the GPU. I'm not sure exactly how it currently is when running Linux but it's presumably something like ...

Program -> OS -> Open Driver -> Open API + Closed GPU

or

Program -> OS -> Open Driver -> Open API + Closed Driver -> Closed GPU

What I don't understand is that this can seemingly work with Linux but is considered impossible to use with Windows, and presumably all non-Linux OS's.

If there's no Closed Driver the Open API is simply "writing to the GPU interface"; easy! Even if there is a Closed Driver then it's possibly a lot of effort but as it is ARM code it should run on any ARM system regardless of OS, but may be OS dependant in its API and any call-backs, etc but that could be overcome by adding some shim or wrapper to bridge the difference. It's also possible that the Closed Driver could be reverse engineered and replaced.

I'm not disputing the sensibilities, effort or other arguments for not using Windows on the R-Pi but "can't" seems lacking without a credible explanation as to why not.

obarthelemy
Posts: 1407
Joined: Tue Aug 09, 2011 10:53 pm

Re: Windows 8 to support ARM!

Sat Sep 17, 2011 1:49 pm

As I understand it, the "closed blob"
- is mainly GPU code (not ARM)
- is totally specific to the Videocore GPU that's inside that specific Broadcom chip
- supplies undocumented APIs to the driver
- the current Linux driver is also closed-source and undocumented, ARM code though

So
- no, there's no chance of porting the blob to other SoCs, it can only be used with a Videocore 4.
- there's no chance of changing/tweaking it either, since neither the instruction set nor the hardware are well documented anywhere (available under NDA to million-dollar customers, maybe)
- we *can* in theory use any driver to feed commands/data to the blob, but since the API and underlying hardware are undocumented for mere mortals, this would be very hard, even harder than reverse-engineering drivers for nVidia or ATI vidcards.
- at the end of the GPU initialization phase, control is transferred to the ARM, which can indeed load any OS and drivers. That helps only if drivers are indeed available though ^^

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 26685
Joined: Sat Jul 30, 2011 7:41 pm

Re: Windows 8 to support ARM!

Sat Sep 17, 2011 2:01 pm

Yes, the GPU blob is(very) videocore specific. But runs an any Videocore IV based chip - irrespective of the O/S.

There will probably be closed source Linux side libraries. This is the problem area. There will also be a GPL'l kernel driver which allows the user space libraries to talk to the Videocore.

The problem when porting to other O/S is the closed source libraries which convert stuff like OpenGL ES calls to the messages that are passed by the OSS kernel driver to the Videocore.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed.
I've been saying "Mucho" to my Spanish friend a lot more lately. It means a lot to him.

thepanoguy
Posts: 17
Joined: Mon Sep 12, 2011 1:59 pm

Re: Windows 8 to support ARM!

Sat Sep 17, 2011 2:22 pm

According to the Broadcom media release:

The BCM2835 is a cost-optimized, full HD, multimedia applications processor for advanced mobile and embedded applications that require the highest levels of multimedia performance. Designed and optimized for power efficiency, BCM2835 uses Broadcom's VideoCore® IV technology to enable applications in media playback, imaging, camcorder, streaming media, graphics and 3D gaming.

Low Power ARM1176JZ-F Applications Processor
Dual Core VideoCore IV® Multimedia Co-Processor
1080p30 Full HD HP H.264 Video Encode/Decode
Advanced Image Sensor Pipeline (ISP) for up to 20-megapixel cameras operating at up to 220 megapixels per second
Low power, high performance OpenGL-ES® 1.1/2.0 VideoCore GPU. 1 Gigapixel per second fill rate.
High performance display outputs. Simultaneous high resolution LCD and HDMI with HDCP at 1080p60

http://en.wikipedia.org/wiki/VideoCore

VideoCore products

VideoCore chips can run complete applications - they are not simply video DSP chips that require a separate processor to supply and collect data. In practice they are often used like this, as companies usually prefer to cautiously assimilate new technology rather than take a big risk in porting a large amount of application code from an existing ARM based design. The Apple video iPod is a good example of this approach.

Low-power laptops use low-power processors and graphics chips, and therefore often struggle to play video at full frame rates. It isn't desirable or practical to port Windows onto a VideoCore chip, so only the video decoding need be offloaded onto a video accelerator board (e.g. using the the BCM70015 chip).

Blu-Ray players can also use it as a low-power video accelerator.

Noting that VideoCore chips were usually used with ARM based chips, the latest chips have VideoCore and ARM processors.

The reality of life is that the target market is stand alone applications not general purpose computing. The developers of the Raspberry Pi have configured the device as a low cost teaching aid. Don’t expect the Broadcom VideoCore to be open sourced - that will be committing corporate suicide.

hippy
Posts: 7792
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: Windows 8 to support ARM!

Sat Sep 17, 2011 5:09 pm

Quote from obarthelemy on September 17, 2011, 14:49
- no, there's no chance of porting the blob to other SoCs, it can only be used with a Videocore 4.
- we *can* in theory use any driver to feed commands/data to the blob, but since the API and underlying hardware are undocumented for mere mortals, this would be very hard, even harder than reverse-engineering drivers for nVidia or ATI vidcards.

Many thanks.

I don't believe not being able to tweak the GPU will be a problem for most R-Pi users ( hence why it being closed isn't a critical problem ). It's then just a matter of working out how to talk to the GPU. Easier said than done but it's possible, and would need to be done for any non-Linux OS.

Let's hope some of those who breakfast at Milliways are attracted to the R-Pi :-)

thepanoguy
Posts: 17
Joined: Mon Sep 12, 2011 1:59 pm

Re: Windows 8 to support ARM!

Sun Sep 18, 2011 5:40 am

The production of professional and consumer video, be it analogue or digital, was never designed to rely on computer processing. The whole path of digital video can be recorded and played by dedicated video electronics that don’t use any microprocessor in the video signal path. That is why digital video consumer goods are relatively cheap to purchase.

General purpose computers do not contain video electronics. The CPU and GPU are software programmed to mimic dedicated video electronics. That is why you need powerful commuter grunt to replicate the playing ability of a cheap self contained $50 portable LCD DVD player.

If people read the BCM2835 technical specifications carefully they will notice that the BCM2835 does not contain a GPU; therefore any endeavour to decode the BCM2835 GPU will be futile.

The BCM2835 contains two ARM cores. The primary ARM core is the open source operating system core. The secondary ARM core is hardware connected to a digital video hardware decoder manufactured compliant to international professional digital video production and video standards. The only job of the second ARM core is to detect and switch the digital video to the various regional digital standards and offload any graphics intensive activity required to a dedicated GPU board.

If a person insists on running Windows; all that is required is to find the Linux system calls to the video drivers in the Linux open source code and write a Windows driver telling the second ARM core to switch to the required video driver.

DON’T say it cannot be done, because Linux programmers have already done it.

http://dxr3.sourceforge.net/

The project was a Windows driver to Linux using the existing Windows driver in Linux. The opposite can also work; using a Linux driver in Windows.

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 26685
Joined: Sat Jul 30, 2011 7:41 pm

Re: Windows 8 to support ARM!

Sun Sep 18, 2011 7:38 am

Quote from thepanoguy on September 18, 2011, 06:40
The production of professional and consumer video, be it analogue or digital, was never designed to rely on computer processing. The whole path of digital video can be recorded and played by dedicated video electronics that don’t use any microprocessor in the video signal path. That is why digital video consumer goods are relatively cheap to purchase.

General purpose computers do not contain video electronics. The CPU and GPU are software programmed to mimic dedicated video electronics. That is why you need powerful commuter grunt to replicate the playing ability of a cheap self contained $50 portable LCD DVD player.

If people read the BCM2835 technical specifications carefully they will notice that the BCM2835 does not contain a GPU; therefore any endeavour to decode the BCM2835 GPU will be futile.

The BCM2835 contains two ARM cores. The primary ARM core is the open source operating system core. The secondary ARM core is hardware connected to a digital video hardware decoder manufactured compliant to international professional digital video production and video standards. The only job of the second ARM core is to detect and switch the digital video to the various regional digital standards and offload any graphics intensive activity required to a dedicated GPU board.

If a person insists on running Windows; all that is required is to find the Linux system calls to the video drivers in the Linux open source code and write a Windows driver telling the second ARM core to switch to the required video driver.

DON’T say it cannot be done, because Linux programmers have already done it.

http://dxr3.sourceforge.net/

The project was a Windows driver to Linux using the existing Windows driver in Linux. The opposite can also work; using a Linux driver in Windows.


The BCM2835 contains a VideoCoreIV GPU - this is not Arm based - it's has a custom twin vector core with a large number of dedicated hardware blocks for the various GPU functions (Camera ISP, H264 encode/decode, 3D graphics processors etc).

This particular chip is used in the Roku2 media player, and the Videocore in other guises has been used in Apple, Samsung, Nokia and other mobile space devices.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed.
I've been saying "Mucho" to my Spanish friend a lot more lately. It means a lot to him.

thepanoguy
Posts: 17
Joined: Mon Sep 12, 2011 1:59 pm

Re: Windows 8 to support ARM!

Sun Sep 18, 2011 10:58 am

http://en.wikipedia.org/wiki/VideoCore

The following specifications are posted:

BCM2835;
Video Core 4;
Second Core: ARM1176 (700 MHz);
Max display: 1080p
Raspberry Pi prototype.

If the above information posted on Wikipedia is wrong; then someone with the correct information should upgrade the above information.

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 26685
Joined: Sat Jul 30, 2011 7:41 pm

Re: Windows 8 to support ARM!

Sun Sep 18, 2011 1:07 pm

No, that's correct, the 2835 is a Videocore IV with a second (well, second isn't quite correct as the Videocore itself is a multiple core device although it looks like that to an outside observer) CPU that is an Arm core (Not a second Arm core). The Videocore itself is not and does not contain an Arm core.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed.
I've been saying "Mucho" to my Spanish friend a lot more lately. It means a lot to him.

obarthelemy
Posts: 1407
Joined: Tue Aug 09, 2011 10:53 pm

Re: Windows 8 to support ARM!

Sun Sep 18, 2011 1:24 pm

maybe it should be reworded to make it clearer:
BCM2835 SoC;
GPU: Video Core 4;
CPU: ARM1176 (700 MHz);

obarthelemy
Posts: 1407
Joined: Tue Aug 09, 2011 10:53 pm

Re: Windows 8 to support ARM!

Sun Sep 18, 2011 1:27 pm

oups, sorry, failed to go see the original page. Hard to change... "2nd Core" to "accompanying CPU" maybe ? The page's text is quite clear though.

User avatar
Lob0426
Posts: 2198
Joined: Fri Aug 05, 2011 4:30 pm
Location: Susanville CA.
Contact: Website

Re: Windows 8 to support ARM!

Sun Sep 18, 2011 4:39 pm

Kind of funny: this thread just will not go away will it. Seems to me there are some people that just are determined to find a way to get windows 8 or CE onto the RasPi!
512MB version 2.0 as WordPress Server
Motorola Lapdock with Pi2B
Modded Rev 1.0 with pin headers at USB

http://rich1.dyndns.tv/
(RS)Allied ships old stock to reward its Customers for long wait!

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 26685
Joined: Sat Jul 30, 2011 7:41 pm

Re: Windows 8 to support ARM!

Sun Sep 18, 2011 5:12 pm

Actually Windows CE would probably work if you spent time on the BSP. I just think Win8, if it could be made to work, would be diabolically slow.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed.
I've been saying "Mucho" to my Spanish friend a lot more lately. It means a lot to him.

mukhtar
Posts: 21
Joined: Tue Sep 13, 2011 11:21 pm

Re: Windows 8 to support ARM!

Sun Sep 18, 2011 11:36 pm

Quote from jamesh on September 18, 2011, 18:12
Actually Windows CE would probably work if you spent time on the BSP. I just think Win8, if it could be made to work, would be diabolically slow.

Just getting it to run is a very nice thing , for future (better equipped) versions of the pi would be better at running it..and tbh i think it would be more of a bragging right on our part , i could see "Runs on Linux , and Windows" on the homepage..

MDC
Posts: 167
Joined: Thu Jul 28, 2011 6:27 pm

Re: Windows 8 to support ARM!

Sun Sep 18, 2011 11:48 pm

Quote from Lob0426 on September 18, 2011, 17:39
Kind of funny: this thread just will not go away will it. Seems to me there are some people that just are determined to find a way to get windows 8 or CE onto the RasPi!

I wonder if microsoft has infiltrated the forum and is trying to get everyone to use it's operating system. :P.

thepanoguy
Posts: 17
Joined: Mon Sep 12, 2011 1:59 pm

Re: Windows 8 to support ARM!

Mon Sep 19, 2011 12:37 am

I am a hardware guy not a programmer. Using Windows 7 or 8 on the Raspberry Pi is like using a sledgehammer to crack open a peanut.

http://en.wikipedia.org/wiki/D.....oadcasting

Professional digital video recording and playback equipment are designed and manufactured to international professional broadcast standards. The two main standards are DVB Europe and ATSC North America. The digital video chain from the recording through to the end viewing can be accomplished without any microprocessor in the chain.

A $100 self contained LCD DVD player contains no microprocessor yet to accomplish the same playing and viewing task on a computer requires serious CPU and GPU processing power. Why; for one simple reason; standard computers do no contain any hardware digital video processing chips. The CPU and GPU is software programmed to mimic the function of hardware digital video processing chips.

Understanding that simple concept is the reason that chips like the Sigma SMP8655 and Broadcom 2835 can accomplish the same task with relatively low CPU overheads.

http://en.wikipedia.org/wiki/WD_TV_Live

The Sigma SMP8655 contains similar functional features to the Broadcom 2835. I own a WDTV Live. I downloaded the WDTV Live GPL source code and taken a look at the file structure and drivers. What it tells me about the Broadcom 2835 is that the ARM CPU handles data and the video is passed through and handled by a number of dedicated digital video hardware devices that processes the relevant digital video.

http://dxr3.sourceforge.net/
http://dxr3.sourceforge.net/howto.html

My original post was asking the question why write Windows drivers for the Broadcom 2835 when all a programmer has to do is extract the existing Broadcom 2835 video drivers and pass through the video.

thepanoguy
Posts: 17
Joined: Mon Sep 12, 2011 1:59 pm

Re: Windows 8 to support ARM!

Mon Sep 19, 2011 12:45 am

If Microsoft has taken a serious interest in this project, expect the Raspberry Pi to sell a million production units with a Windows factory install and we each pay an extra $25 MS tax.

sightlight
Posts: 64
Joined: Wed Aug 10, 2011 8:02 pm

Re: Windows 8 to support ARM!

Mon Sep 19, 2011 1:16 am

Is Windows 8 gets to be ported for the Pi. How could we make it Legal? Buying an official W8 DVD(Package)?

stuporhero
Posts: 125
Joined: Fri Aug 19, 2011 2:02 pm

Re: Windows 8 to support ARM!

Mon Sep 19, 2011 7:18 am

I think I'm going to put a dampener on this guys (sorry!)

The ARM1156 runs on the ARMv6 instruction set. All newer processors (i.e. Cortex) run ARMv7. As the Cortex processors are the ones with the power to run Windows 8, I expect the Win8 platform to run on the ARMv7 instruction set, therefore it will probably be incompatible with the RasPi.

NB: I could be wrong, until Microsoft release minimum requirements we'll never know for sure.

Return to “General discussion”