Building on ARMv8
Timothy Baldwin (184) 242 posts |
Can anyone confirm that RISC OS builds successfully on ARMv8 hardware? (not using my Linux port) The build system contains many programs that are statically linked with a version of Unixlib that contains unguarded SWP instructions, which I would expect to cause it to fail. On the other hand I would have expected someone would have fixed it if it was broken. |
dave_j (3231) 50 posts |
Does this help, https://www.riscosopen.org/forum/forums/5/topics/8985 A suitable bunzip2 is here |
Ronald May (387) 407 posts |
I don’t have a RPI3 but after reading the PatchSWP details, it looks like there will be a branch in RISC OS software, as the newly installed instructions are not compatible with Arm < V8. I guess the same thing exists for VPF/neon. ISTR that ROOL uses faster hardware for building ROMS. If the Linux Port project becomes a viable alternative to compatibility issues, The Tinker board from ASUS appears very capable. There is no SATA, but a true GBit ethernet port. Not as portable as a chromebook but with a NAS and plenty of memory could be fine for at home. The features like serial with cts etc, and 192/24bit audio, maybe even the 4K HDMI give quite a good performance/price ratio. |
Jeffrey Lee (213) 6048 posts |
“A branch in RISC OS software” – Yes, a branch instruction ;-) The preferred way of dealing with the SWP removal is for software to have two sets of its atomic routines, one set which uses SWP and one which uses the newer LDREX/STREX instructions. Then on startup it can check with OS_PlatformFeatures 0 to see which it should use, and store a flag in workspace or some pointers to the appropriate routines. The LDREX/STREX instructions actually started appearing in ARMv6, and should generally be used in preference to SWP, we just haven’t had much of a reason to update code to use them until now.
VFP is relatively easy to support on old machines – we can create a version of VFPSupport which provides a full software emulation of the instruction set. NEON is harder. It makes use of instructions in the NV condition code space, so you wouldn’t be able to emulate it on anything before ARMv5 (ARMv4?) simply because the older CPUs treated NV instructions as no-ops. But you probably wouldn’t want to emulate NEON anyway, the overhead of the emulation would make it far slower than even a trivial ARM version of the equivalent code.
Yes, the Linux port runs the RISC OS programs directly on the CPU, so it will be subject to all the same compatibility issues that we currently have to deal with. |
Ronald May (387) 407 posts |
VFP is relatively easy to support on old machines – we can create a version of VFPSupport which provides a full software emulation of the instruction set. That sounds promising, at least all programs can be built with VFP then. NEON technology can accelerate multimedia and signal processing algorithms such as video encode/decode, 2D/3D graphics, gaming, audio and speech processing, image processing, telephony, and sound synthesis Apparently the media group, I guess there will be little reason to support old hardware for these tasks, though audio and image processing in moderation is stillviable. Hopefully there will be a configure switch —without-neon but it gets back to what you are saying about software writers creating the two options. |
Chris Gransden (337) 1207 posts |
As mentioned in another topic. It does on the RPi 3 but only after patching, Library.GNU.diff Library.Misc.decgen.decgen needed rebuilding. !PatchSWP didn’t find any SWP instructions. These also need patching. Library.Unix.Sed |
Tristan M. (2946) 1039 posts |
My Orange Pi PC2 can do most of that, possibly all. Curious about the audio aspect I found the datasheet. 8 to 192KHz, and 8 to 32 bit resolution. For what it is it’s very cheap but comes along with a lot of “if’s and but’s”. |
Ronald May (387) 407 posts |
My Orange Pi PC2 can do most of that, possibly all. Sorry the home website uses javascript to just navigate to another page, so could only read the general info. |
Tristan M. (2946) 1039 posts |
Ronald, that’s not my point. Besides you didn’t mention WiFi. It wasn’t on my list of desired features so I went for a model without WiFi. The Tinker Board looks like a nice bit of kit, and has a RockChip SoC which is a plus. I couldn’t find info on a release price though. I paid roughly between AUD$10 and AUD$25 for the Orange Pis I have. They work well and serve my purposes. They are well constructed but support for the SoC is the big issue. |
Ronald May (387) 407 posts |
support for the SoC is the big issue I dont think the Tinker Board would be any better in that respect. Linux is acting as the HAL.How well does that work with RISC OS and the graphics/Mali etc? |
dave_j (3231) 50 posts |
decgen is squeezed, xpand first, the SWPs are then revealed. |
Rob Andrews (112) 164 posts |
I tried the latest source and replaced the rebuilt files in GNU and UNIX but still failed building the debugger module at the decgen.encoding.ARM8_AArch32 section |
Rob Andrews (112) 164 posts |
update managed to build my first rom on Pi3 today downloaded the changed files in GNU,UNIX, Misc downloaded current source for BCM2835Dev replaced Update |