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