14:42:59 <jsmith> #startmeeting Porting Fedora to AArch 64 14:42:59 <zodbot> Meeting started Fri Aug 9 14:42:59 2013 UTC. The chair is jsmith. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:42:59 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic. 14:43:28 <jsmith> Outline of what he's going to talk about 14:43:39 <jsmith> #topic Outline 14:43:47 <jsmith> 64-bit architecture 14:43:52 <jsmith> compatibility with 32-bit 14:43:56 <jsmith> standardization 14:44:00 <jsmith> Design 101 14:44:03 <jsmith> Bootstrapping 101 14:44:18 <jsmith> #topic Pretty picture of a development platform 14:44:34 <jsmith> Jon showing an FPGA development board 14:44:56 <jsmith> and talking about bringing up hardware designs on FPGAs 14:45:47 <jsmith> If you have six of the biggest FPGA on the market (worth $50k), you can almost emulate the AArch64 processor design 14:46:27 <jsmith> It's not fast 14:46:38 <handsome_pirate> Like the aarch64 'fast' model 14:46:41 <jsmith> but you can test things before you go to a big foundry and spend millions of dollars on silicon 14:47:06 <jsmith> #topic 64-bit architecture (aarch64) 14:47:15 <jsmith> Brand new ARM architecture 14:47:33 <jsmith> AArch64 is a 64-bit Execution state 14:47:43 <jsmith> AArch32 is a 32-bit execution state 14:48:12 <jsmith> It's a RISC-like architecture 14:48:21 <jsmith> Try to simplify the instruction set 14:48:55 <jsmith> Load/Store, Register-to-register 14:49:16 <flock-ectr109> https://plus.google.com/hangouts/_/e489ec41bc9daac9531cbba9c5f26e67564b1c34 14:49:19 <flock-ectr109> its live now 14:49:25 <jsmith> ARM boards tend to be more power efficient, and less expensive 14:49:31 <jsmith> zoglesby: ^^^ link 14:49:55 <zoglesby> thanks all 14:51:24 <jsmith> (AArch32/A32 is a new name for the legacy 32-bit ARM architectures) 14:51:52 <handsome_pirate> fscking git clone at only 18% 14:52:23 <jsmith> Thumb2 is now called T32 14:52:24 <zoglesby> jsmith: flock-ectr109 camera is pointed off to the side 14:52:28 <jsmith> The old Thumb is dead 14:52:39 <jsmith> zoglesby: It's being fixed 14:52:54 <jsmith> 64-bit clean arch 14:53:03 <jsmith> Every instruction is 32-bits wide (one word per instruction) 14:53:17 <jsmith> Consistent register locations, easy decode 14:53:31 <jsmith> Dedicated 64/32-bit operations 14:53:38 <jsmith> Greater addressing mode flexibility 14:54:01 <jsmith> * 4GB L/S in two, 1MB/128MB cond|uncond jumps 14:56:59 <handsome_pirate> armv8 assembly will be awesomer 14:57:38 <jsmith> #link Google hangout at https://plus.google.com/hangouts/_/e489ec41bc9daac9531cbba9c5f26e67564b1c34 14:57:46 <jsmith> 31 general purpose registers 14:58:42 <jsmith> "The problem with the 32-bit architecture was that it was designed in a shack" 15:00:55 <jsmith> No direct access to program counter 15:01:15 <jsmith> Special SP/ZR stack pointer/zero "register" 15:01:55 <jsmith> Three profiles: 15:02:07 <jsmith> * A, R, and M 15:02:10 <handsome_pirate> Just realized g hangouts video is mirrored 15:02:34 <handsome_pirate> Don't see how to fix 15:02:37 <jsmith> handsome_pirate: Yeah, don't worry about it 15:02:44 <handsome_pirate> Don't want to mommick it since I might bork it 15:03:04 <jsmith> Floating-point -- finally standardized, without overlapping registers! 15:03:52 <jsmith> Optional crypto as well... 15:04:19 <jsmith> co-processors are gone 15:04:32 <jsmith> ... just more registers instead 15:04:38 <jsmith> hinting instructions are added 15:05:16 <jsmith> Global Interrupt Controller (handle thousands of processors) 15:05:28 <jsmith> Only four Exception Levels 15:05:59 <jsmith> EL3 is "Secure World" -- things like secure payments processing 15:06:21 <jsmith> The OS for EL3 is called the TEE -- trusted execution environment 15:06:24 <jsmith> You don't care about EL3 15:06:30 <jsmith> EL2 is the hypervisor 15:06:34 <jsmith> Kernel runs at EL1 15:06:36 <handsome_pirate> Looks like writing assembly on armv8 will be pretty nice 15:06:45 <jsmith> Userspace runs at EL0 15:07:02 <jsmith> Memory management 15:07:13 <jsmith> 64k pages, 4k pages, and something else (hand waving) 15:08:14 <jsmith> XN (Execute Never) support (similar to NX support on x86) 15:08:37 <jsmith> You can have memory locations that you can execute but not read from 15:09:06 <jsmith> #topic Compatibility with 32-bit 15:09:08 <jsmith> There is none :-) 15:09:36 <jsmith> You could run a 32-bit VM on a 64-bit hypervisor 15:09:46 <jsmith> #topic Standardization 15:10:05 <jsmith> Helping hands trying to do the right thing 15:10:14 <jsmith> UEFI 2.4 spec just came out 15:10:21 <jsmith> ACPI stuff that Jon can talk about soon 15:10:38 <jsmith> Work on standardization moving forward 15:10:48 <jsmith> #topic Architecture Design 15:10:55 <jsmith> Don't do it in a vacuum 15:11:30 <jsmith> Profile a real computer, look at actual instructions and encodings 15:11:45 <jsmith> Define how to compile code and link it together 15:11:51 <jsmith> Build software models and run test code on it 15:11:56 <jsmith> Port GNU toolchain to it 15:12:07 <jsmith> track revisions to the architecture 15:12:18 <jsmith> Port Linux kernel to the software model 15:12:32 <jsmith> Begin hardware (RTL) design in Verilog 15:12:41 <jsmith> Sytnesize RTL onto an FPGA 15:12:58 <jsmith> Ensure compliance with the AVS (ARM validation suite) 15:13:11 <jsmith> Implement RTL in silicon 15:13:27 <jsmith> Tape-out experimental|production silicon 15:14:42 <jsmith> #topic Bootstrapping 101 15:14:59 <jsmith> We did a "trial run" with ARMv7, to learn lessons that would help us in Aarch64 15:15:11 <jsmith> cross-compile minimal stage 1 15:15:29 <jsmith> Rebuild stage 1 natively to get stage 2 15:15:39 <jsmith> Stage 3 provides full deps for rpmbuild 15:15:46 <jsmith> Stage 4 provides full deps for Koji 15:16:01 <jsmith> Stage 5 is complete mass rebuild on hardware 15:17:23 <jsmith> Status: Side rebuild of Fedora 19 largely in place 15:17:31 <jsmith> Majority of the package set available 15:17:39 <jsmith> Working on plans for F20, Koji, etc. 15:17:59 <jsmith> Google for "AArch64 Quickstart" if you want to try it out on software emulation 15:18:04 <jsmith> #topic Future 15:18:11 <jsmith> Production hardware coming 15:18:19 <jsmith> Fedora will ship with support for X-Gene 15:18:29 <jsmith> * boot using UEFI, ACPI, standards 15:19:00 <jsmith> Linaro Enterprise Group (LEG) 15:19:21 <jsmith> Hyperscale Computing 15:19:28 <jsmith> Demo will happen in his next talk 15:19:36 <jsmith> #endmeeting