aboutsummaryrefslogtreecommitdiff
path: root/en_US.ISO8859-1
diff options
context:
space:
mode:
authorMurray Stokely <murray@FreeBSD.org>2010-02-14 23:41:45 +0000
committerMurray Stokely <murray@FreeBSD.org>2010-02-14 23:41:45 +0000
commit7c09059f813b265cd7bc4db2a7c7f285062e0d7d (patch)
treeaeed4ac4285b544801942e4de7cc55c2b6813651 /en_US.ISO8859-1
parent780029edd5ca463ef6b77f0f7f5225b62b279480 (diff)
downloaddoc-7c09059f813b265cd7bc4db2a7c7f285062e0d7d.tar.gz
doc-7c09059f813b265cd7bc4db2a7c7f285062e0d7d.zip
Add captions for Warner Losh's MIPS talk at AsiaBSDCon 2009. Human
edits completed for hire through Amazon Mechanical Turk to improve YouTube machine generated transcripts. Sponsored by: FreeBSD Foundation
Notes
Notes: svn path=/head/; revision=35363
Diffstat (limited to 'en_US.ISO8859-1')
-rw-r--r--en_US.ISO8859-1/captions/2009/asiabsdcon/losh-mips.sbv2362
1 files changed, 2362 insertions, 0 deletions
diff --git a/en_US.ISO8859-1/captions/2009/asiabsdcon/losh-mips.sbv b/en_US.ISO8859-1/captions/2009/asiabsdcon/losh-mips.sbv
new file mode 100644
index 0000000000..866e1f9479
--- /dev/null
+++ b/en_US.ISO8859-1/captions/2009/asiabsdcon/losh-mips.sbv
@@ -0,0 +1,2362 @@
+0:00:00.410,0:00:02.190
+overruled
+
+0:00:02.190,0:00:07.550
+a couple of small little mistakes
+in there has been corrected as well
+
+0:00:07.550,0:00:10.869
+and that's at this location on the web
+
+0:00:10.869,0:00:17.869
+I also have this URL at the end of my talk
+
+0:00:24.699,0:00:30.339
+I'm going to start with a brief history
+of the MIPS platform
+
+0:00:30.339,0:00:32.640
+I go into this in a lot of detail
+in my paper
+
+0:00:32.640,0:00:34.960
+so I'm going to just hit
+
+
+0:00:34.960,0:00:41.960
+some of the highlights here.
+
+0:00:43.620,0:00:46.300
+interesting parts here are that there are
+
+0:00:46.300,0:00:47.560
+two implementations of MIPS
+
+0:00:47.560,0:00:52.680
+one's a thirty-two bit implementation
+one's a sixty-two bit implementation
+
+0:00:52.680,0:00:55.920
+that evolved over time
+
+0:00:55.920,0:01:01.240
+initially each of the implementations
+was cumulative
+
+0:01:01.240,0:01:06.580
+with a prior implementation
+so a MIPS VI or V processor
+
+0:01:06.580,0:01:12.860
+will implement anything MIPS IV implemented
+and
+
+0:01:12.860,0:01:15.170
+over time this was decided
+
+0:01:15.170,0:01:22.170
+that not to be such a good idea
+so the way this MIPS
+
+0:01:22.490,0:01:27.060
+ISA's that are available
+are MIPS 32 and MIPS 64
+
+0:01:27.060,0:01:27.590
+and those define
+
+0:01:27.590,0:01:30.410
+a base set in the number of options
+
+0:01:30.410,0:01:34.640
+that can be added
+
+0:01:34.640,0:01:42.640
+options for DSD processing, options for multiple instruction
+execution at the same time, SIMV sorts of things
+
+0:01:44.580,0:01:51.580
+and so that’s kind of the history on MIPS in a nutshell
+
+
+0:01:52.470,0:01:56.189
+the other interesting piece was that happened with MIPS
+
+0:01:56.189,0:01:58.490
+is the original
+
+0:01:58.490,0:02:00.180
+MIPS ISA didn't define the TLBs
+
+
+0:02:00.180,0:02:04.030
+and all that and how that was interacting
+with the CPUs
+
+0:02:04.030,0:02:05.060
+there were a number of variations
+
+0:02:05.060,0:02:10.569
+over time and when the never embedded MIPS
+
+0:02:10.569,0:02:14.539
+ISA's were created
+
+0:02:14.539,0:02:17.999
+that information was specified as well
+
+0:02:17.999,0:02:23.449
+so that it's easier to write one kernel
+that will run on each of the processors
+
+0:02:23.449,0:02:27.139
+after they got some experience with
+the different processors
+
+0:02:27.139,0:02:30.409
+they updated the spec to come up with
+
+0:02:30.409,0:02:34.480
+MIPS32r2 and MIPS64r2
+
+0:02:34.480,0:02:41.029
+these are enhancements for viewing with
+primarily with multiple issue
+
+0:02:41.029,0:02:44.109
+highly parallel processors
+
+0:02:44.109,0:02:47.189
+one the things you would have to do
+prior to that changing
+
+0:02:47.189,0:02:49.419
+the CLB you would execute
+
+0:02:49.419,0:02:53.249
+a number of no ops so that
+
+0:02:53.249,0:02:56.879
+the processor pipeline would flush
+
+0:02:56.879,0:03:03.879
+and on MIPS R4000 you would either have to say send them on
+and on MIPS R10000
+
+0:03:04.409,0:03:06.359
+some of the newer processors you don’t know
+
+0:03:06.359,0:03:07.060
+how many you had
+
+0:03:07.060,0:03:13.549
+to execute because so many things were executing in parallel
+so they created some new instructions to
+
+0:03:13.549,0:03:16.139
+help you out with that
+
+0:03:16.139,0:03:23.139
+plus a couple of other things
+for making embedding easier
+and those are the two
+
+0:03:25.469,0:03:26.809
+core ISA's that FreeBSD
+
+0:03:26.809,0:03:28.749
+primarily targets
+
+0:03:28.749,0:03:29.689
+are the embedded
+
+0:03:29.689,0:03:31.899
+MIPS APIs
+
+0:03:31.899,0:03:34.069
+the APIs sorry the ISAs
+
+0:03:34.069,0:03:36.589
+for prior MIPS chips
+
+0:03:36.589,0:03:39.969
+probably would work with FreeBSD MIPS
+
+0:03:39.969,0:03:43.459
+nobody has taken the time to make them work
+
+0:03:43.459,0:03:45.419
+the other interesting thing
+
+0:03:45.419,0:03:47.239
+back in MIPS history is
+
+0:03:47.239,0:03:48.799
+there are a number of different
+
+0:03:48.799,0:03:51.949
+ABIs
+
+0:03:51.949,0:03:57.259
+the original 32 bit ABI
+which was later remained to o32
+which was
+
+0:03:57.259,0:03:58.750
+for the R2000 and 3000
+
+0:03:58.750,0:04:00.489
+specified 32 bit registers
+
+0:04:00.489,0:04:03.909
+and a MIPS 2
+
+0:04:03.909,0:04:10.909
+ISA those replaced when SGI introduced 4000 based
+
+0:04:12.879,0:04:18.109
+machines with n32 and n64
+
+0:04:18.109,0:04:19.049
+n64 is
+
+0:04:19.049,0:04:21.349
+a fairly straight forward
+
+0:04:21.349,0:04:25.629
+64 bit ABI there's
+
+0:04:25.629,0:04:27.929
+nothing really all that weird about it
+
+0:04:27.929,0:04:32.490
+except the one weird thing for all MIPS ABIs is that
+
+0:04:32.490,0:04:33.660
+it's specified all the library code
+
+0:04:33.660,0:04:35.889
+has to be picked code even for static linking
+
+0:04:35.889,0:04:38.999
+
+
+0:04:38.999,0:04:42.520
+n32 is a weird hybrid
+
+0:04:42.520,0:04:47.669
+and I'll get into that a little bit later
+but it's
+
+0:04:47.669,0:04:48.650
+an ABI that’s designed
+
+0:04:48.650,0:04:54.179
+to allow transition from old code to new code
+
+0:04:54.179,0:05:00.930
+here in this context old code to new code
+was code written before 1995 or so
+
+0:05:00.930,0:05:06.630
+to new code which was being written since then
+with 64 bit
+
+0:05:06.630,0:05:10.829
+it has a number of interesting
+
+0:05:10.829,0:05:16.639
+idiosyncrasies
+
+0:05:16.639,0:05:19.500
+that happened when you tried to squeeze
+
+0:05:19.500,0:05:20.719
+when you tried to
+
+0:05:20.719,0:05:24.410
+fit a 32 bit ABI on a 64 bit resident
+and now
+
+0:05:24.410,0:05:31.410
+come later for some of the work that
+has done
+
+0:05:35.090,0:05:37.529
+So FreeBSD MIPS is been
+
+0:05:37.529,0:05:40.680
+around for a very long time
+it's not just been around in the previous
+
+0:05:40.680,0:05:43.449
+for along time initial ports
+
+0:05:43.449,0:05:46.339
+for FreeBSD MIPS
+
+0:05:46.339,0:05:50.249
+was in the 3.x time frame
+due to persistence
+
+0:05:50.249,0:05:52.940
+did a FreeBSD port to a
+
+0:05:52.940,0:05:56.879
+custom piece of
+
+0:05:56.879,0:06:02.160
+silicon that they had which had a MIPS core
+embedded in it and
+
+0:06:02.160,0:06:09.160
+and excuse me
+
+0:06:11.009,0:06:16.749
+and at the time they were looking for people in the FreeBSD
+community to commit this port back to the FreeBSD tree
+
+0:06:16.749,0:06:18.539
+there were a number of problems though
+
+0:06:18.539,0:06:20.300
+you couldn't just run this port
+
+0:06:20.300,0:06:21.770
+on a
+
+0:06:21.770,0:06:24.280
+particular on any given MIPS platform
+
+0:06:24.280,0:06:29.289
+you couldn't run it on a SGI MIPS
+you couldn't run it on an old deck station
+
+0:06:29.289,0:06:30.960
+it had a
+
+0:06:30.960,0:06:32.999
+high number of
+
+0:06:32.999,0:06:38.689
+tweaks in it for the custom silicon that they ran it
+
+0:06:38.689,0:06:39.889
+so interested the developer community was
+
+0:06:39.889,0:06:42.289
+ya we like a MIPS port but
+
+0:06:42.289,0:06:49.289
+we don't have any hardware to run it against
+and it would be a big effort to take the code that
+you have done and do it to
+
+0:06:51.279,0:06:54.610
+the platforms that we have access to
+
+0:06:54.610,0:06:57.369
+so
+
+0:06:57.369,0:06:59.169
+there were a lot of talks back and forth
+in this time frame
+
+0:06:59.169,0:07:01.239
+between members of the
+
+0:07:01.239,0:07:03.629
+free BSD community
+
+0:07:03.629,0:07:05.899
+and Juniper networks
+
+0:07:05.899,0:07:08.729
+and
+
+0:07:08.729,0:07:11.669
+they basically went nowhere
+
+0:07:11.669,0:07:13.030
+the fist internet bubble crashed
+
+0:07:13.030,0:07:15.429
+
+
+0:07:15.429,0:07:18.809
+so it languished
+
+0:07:18.809,0:07:19.829
+everywhere except
+
+0:07:19.829,0:07:20.930
+inside of juniper
+
+0:07:20.930,0:07:27.179
+where they kept developing it
+and improving it over the years
+so
+
+0:07:27.179,0:07:27.870
+about the same time
+
+0:07:27.870,0:07:30.500
+I became interested in getting
+
+0:07:30.500,0:07:32.300
+FreeBSD up and running on the MIPS
+
+0:07:32.300,0:07:33.979
+so I got
+
+0:07:33.979,0:07:34.539
+the basic LibC support
+
+0:07:34.539,0:07:37.429
+going and the basic tool chains
+going in the tree
+
+0:07:40.219,0:07:42.550
+with some help from David O’Brian
+
+0:07:42.550,0:07:44.859
+and
+
+0:07:44.859,0:07:47.159
+kept trying to talk up different
+
+0:07:47.159,0:07:53.499
+people to try their for people who had more time than I had
+to get interested in it
+to pick up the banner
+
+0:07:53.499,0:07:55.809
+and this was
+
+0:07:55.809,0:07:57.339
+right after the internet
+
+0:07:57.339,0:07:58.090
+bubble burst
+
+0:07:58.090,0:08:00.020
+people didn’t have a lot of spare time
+they were too busy
+
+0:08:00.020,0:08:04.449
+just surviving to do a MIPS port
+
+0:08:04.449,0:08:06.520
+so consequently the initial
+
+0:08:06.520,0:08:08.819
+work that I had done in 1999
+was removed
+
+0:08:08.819,0:08:15.819
+three years later in 2002
+when no progress had been made
+
+0:08:18.910,0:08:21.229
+a few years later
+
+0:08:21.229,0:08:26.489
+Julie Mallett started putting FreeBSD
+
+0:08:26.489,0:08:32.990
+to the SGI platform and he
+
+0:08:32.990,0:08:34.520
+got his SGI box booting into single user mode
+
+0:08:34.520,0:08:37.550
+
+
+0:08:37.550,0:08:39.380
+but his situation
+
+0:08:39.380,0:08:41.270
+changed he didn't have
+
+0:08:41.270,0:08:44.229
+the time to
+
+0:08:44.229,0:08:49.040
+take it from single use mode to
+multi user mode to make it stable
+
+0:08:49.040,0:08:51.720
+he did this work in the Perforce repository
+
+0:08:51.720,0:08:53.800
+with one of the early examples of a
+
+0:08:53.800,0:08:56.570
+large body of work that was done
+
+0:08:56.570,0:08:57.270
+outside
+
+0:08:57.270,0:08:58.620
+FreeBSD
+
+0:08:58.620,0:09:00.890
+CVS tree
+
+0:09:00.890,0:09:06.710
+but inside of Perforce so that interested parties
+can look at it and work on it
+
+0:09:06.710,0:09:07.920
+since it was
+
+0:09:07.920,0:09:13.890
+SGI boxes and at the time
+
+0:09:13.890,0:09:15.790
+people call it the SGI boxes
+it was targeting
+
+0:09:15.790,0:09:17.420
+more obsolete
+
+0:09:17.420,0:09:21.160
+part of the developers in the community
+
+0:09:21.160,0:09:26.310
+really supported this also as
+
+0:09:26.310,0:09:28.430
+Julie would admit
+
+0:09:28.430,0:09:30.700
+she took a lot of shortcuts
+
+0:09:30.700,0:09:34.670
+to get the pot up and running
+
+0:09:34.670,0:09:35.870
+that were the basis of
+
+0:09:35.870,0:09:42.870
+a lot of the stability problems that
+she found out wound out having when she
+tried to go from single user to multi user
+
+0:09:45.120,0:09:46.739
+so the important thing here though
+
+0:09:46.739,0:09:49.940
+is that all of this code existed
+
+0:09:49.940,0:09:51.320
+Perforce repository
+
+0:09:51.320,0:09:56.530
+and just kept existing out in the Perforce repository
+
+0:09:56.530,0:10:01.120
+Julie took a lot of that code from that BSD and
+
+0:10:01.120,0:10:04.020
+in an effort to make it simpler
+I think wrote portions of it
+
+0:10:04.020,0:10:06.970
+
+
+0:10:06.970,0:10:11.480
+but it also was simpler
+so there was
+
+0:10:11.480,0:10:14.210
+carefully selected pieces of code wound up in
+
+0:10:14.210,0:10:17.010
+later projects
+
+0:10:17.010,0:10:24.010
+and that was one of the value of this effort
+
+0:10:24.440,0:10:28.940
+once Julie lost interest in this she announced it
+publicly: I don't have time to do this
+
+0:10:28.940,0:10:32.050
+this is going nowhere
+
+0:10:32.050,0:10:34.490
+BSDcan
+
+0:10:34.490,0:10:35.920
+three years ago now
+
+0:10:35.920,0:10:36.940
+myself and
+
+0:10:36.940,0:10:38.130
+Peter Wemm
+
+0:10:38.130,0:10:39.280
+John Baldwin and
+
+0:10:39.280,0:10:42.580
+a few other people
+
+0:10:42.580,0:10:44.400
+Sat down and realized hey
+
+0:10:44.400,0:10:46.600
+there's a lot of people
+
+0:10:46.600,0:10:47.910
+who want FreeBSD
+
+0:10:47.910,0:10:51.710
+and FreeBSD's features to run
+
+0:10:51.710,0:10:56.660
+in embedded platform to run on
+
+0:10:56.660,0:10:57.820
+very cheap MIPS routers that
+
+0:10:57.820,0:11:02.970
+were becoming available at the time
+
+0:11:02.970,0:11:04.680
+and we decided hey
+
+0:11:04.680,0:11:06.290
+let's see if we can get
+
+0:11:06.290,0:11:10.290
+a jump start on this MIPS project
+
+0:11:10.290,0:11:11.770
+if the going generates
+
+0:11:11.770,0:11:13.210
+some excitement
+
+0:11:13.210,0:11:16.310
+may be we'll hit critical mass
+
+0:11:16.310,0:11:17.060
+and we did
+
+0:11:17.060,0:11:19.340
+a number of things
+
+0:11:19.340,0:11:21.950
+well we got the tool chain
+
+0:11:21.950,0:11:25.280
+up and running
+we got the kernel building
+
+0:11:25.280,0:11:27.120
+the MI portions
+
+0:11:27.120,0:11:29.860
+not the MD portions
+
+0:11:29.860,0:11:32.000
+unfortunately
+
+0:11:32.000,0:11:37.000
+we made a mistake on how we
+were doing this
+
+0:11:37.000,0:11:41.950
+we included a secret part of the Perforce repository
+
+0:11:41.950,0:11:44.260
+so there was no commit mails
+nobody saw what was going on
+
+0:11:44.260,0:11:48.730
+nobody knew what was happening
+
+0:11:48.730,0:11:51.060
+and the thinking at the time was
+well we'll
+
+0:11:51.060,0:11:56.690
+get it to a certain point and then announce it
+we don't want to have a public failure on our hands
+
+0:11:56.690,0:11:59.310
+so instead we had a private failure on our hands
+because
+
+0:11:59.310,0:12:01.010
+nobody knew it was there
+
+0:12:01.010,0:12:07.640
+nobody was excited about it
+we could access the code
+
+0:12:07.640,0:12:08.540
+so that was
+
+0:12:08.540,0:12:10.020
+not a good idea
+
+0:12:10.020,0:12:12.260
+you're an
+
+0:12:12.260,0:12:13.770
+open source project
+
+0:12:13.770,0:12:20.770
+you should learn from this mistake
+to make sure you do things in an open manner
+
+0:12:22.140,0:12:23.480
+so about six months after
+
+0:12:23.480,0:12:25.170
+we started this project
+
+0:12:25.170,0:12:28.100
+it was clear that it was going nowhere
+
+0:12:28.100,0:12:31.110
+about this time there were two individuals
+
+0:12:31.110,0:12:33.690
+Wojciech Koszek and
+
+0:12:33.690,0:12:33.960
+Oleksandr Tymoshenko
+
+0:12:33.960,0:12:37.570
+
+
+0:12:37.570,0:12:38.760
+approach different members of the
+
+0:12:38.760,0:12:43.050
+had approached Julie and said hey I want to take your
+old port and make it better
+
+0:12:43.050,0:12:44.100
+
+
+0:12:44.100,0:12:46.500
+
+
+0:12:46.500,0:12:49.560
+and they talked to Julie about
+
+0:12:49.560,0:12:50.550
+our new port and
+
+0:12:50.550,0:12:51.570
+she says well
+
+0:12:51.570,0:12:52.910
+there's this new port
+
+0:12:52.910,0:12:53.889
+so these two took
+
+0:12:53.889,0:12:56.100
+the best pieces of
+
+0:12:56.100,0:13:00.140
+both of these efforts
+
+0:13:00.140,0:13:02.910
+and got FreeBSD MIPS
+booting on
+
+0:13:02.910,0:13:04.250
+emulated hardware
+
+0:13:04.250,0:13:05.410
+at the end of 2006
+
+0:13:05.410,0:13:06.320
+
+
+0:13:06.320,0:13:13.320
+and then on real hardware in 2007
+on a couple of different MIPS processes
+
+0:13:15.920,0:13:18.290
+and then
+
+0:13:18.290,0:13:20.340
+things started to
+
+0:13:20.340,0:13:21.790
+languish a little bit
+
+0:13:21.790,0:13:24.190
+except for one piece
+
+
+0:13:24.190,0:13:25.990
+Cavium Networks
+
+0:13:25.990,0:13:28.380
+saw this work and took one of the
+
+0:13:28.380,0:13:30.360
+MIPS 2 snapshots
+
+0:13:30.360,0:13:31.639
+and ported it to their
+
+0:13:31.639,0:13:35.450
+Octeon series of processors
+
+0:13:35.450,0:13:39.860
+The Octeon is a multicore MIPS processor
+
+0:13:39.860,0:13:41.160
+that has a
+
+0:13:41.160,0:13:45.970
+the number of additional units in it
+
+0:13:45.970,0:13:49.370
+for dealing with networking efficiently
+
+0:13:49.370,0:13:50.970
+dealing with moving packets
+
+0:13:50.970,0:13:53.270
+scheduling work
+
+0:13:53.270,0:13:55.200
+among the multiple CPUs
+
+0:13:55.200,0:13:58.960
+it's a fairly interesting platform
+
+0:13:58.960,0:14:00.390
+also
+
+0:14:00.390,0:14:02.520
+Bruce Sampson
+
+0:14:02.520,0:14:03.600
+got it running on the
+
+0:14:03.600,0:14:05.960
+the Sentry-5
+
+0:14:05.960,0:14:06.730
+series Broadcom
+
+0:14:06.730,0:14:09.990
+parts
+
+0:14:09.990,0:14:11.860
+the Sentry-5 series
+
+0:14:11.860,0:14:15.490
+which I'll get to in a little bit
+is different than
+
+0:14:15.490,0:14:17.500
+the Linksys WRTs
+
+0:14:17.500,0:14:22.510
+It's a higher quality implementation of MIPS
+so he was able to do that
+
+0:14:22.510,0:14:25.850
+so
+
+0:14:25.850,0:14:28.460
+we were seeing some small incremental steps
+
+0:14:28.460,0:14:29.830
+this little thing is added
+
+0:14:29.830,0:14:32.930
+that little thing is added
+
+0:14:32.930,0:14:36.830
+it was still moving very slowly
+
+0:14:36.830,0:14:42.550
+it took a year and a half to get to this point
+
+0:14:42.550,0:14:44.690
+Juniper work up again
+
+0:14:44.690,0:14:47.010
+or at least decided
+
+0:14:47.010,0:14:48.470
+we need to upgrade from
+
+0:14:48.470,0:14:51.490
+our FreeBSD 4.x
+
+0:14:51.490,0:14:57.340
+to FreeBSD 6.1
+to remain competitive
+there's a number of features
+
+0:14:57.340,0:15:02.930
+in FreeBSD as it happens
+we need to have those in our product
+
+0:15:02.930,0:15:04.890
+so they upgraded
+
+0:15:04.890,0:15:05.810
+their version of FreeBSD
+
+0:15:05.810,0:15:07.400
+called JunOS
+
+0:15:07.400,0:15:09.220
+to 6.1
+
+0:15:09.220,0:15:10.680
+as part
+
+0:15:10.680,0:15:17.680
+of this effort they upgraded all of
+their MIPS ports they had several different ones
+
+0:15:18.060,0:15:20.410
+unfortunately
+
+0:15:20.410,0:15:22.180
+they weren't able just to release these ports
+because they had been written with
+
+0:15:22.180,0:15:24.630
+material that came under NDA
+
+0:15:24.630,0:15:29.580
+they weren't allowed to disclose some of the
+
+0:15:29.580,0:15:33.060
+intellectual property for the specific MIPS chips
+
+0:15:33.060,0:15:37.920
+but they recognized the value of having
+a good FreeBSD MIPS support
+
+0:15:37.920,0:15:38.929
+so they
+
+0:15:38.929,0:15:40.450
+approached me with a
+
+0:15:40.450,0:15:47.450
+sanitized port that they had done
+they ported their code to an idealized MIPS machine
+one of the ones that conformed with the
+
+
+0:15:52.300,0:15:56.770
+MIPS 64 MIPS 32 ISA
+
+0:15:56.770,0:16:01.020
+they gave this code to me in
+September of 2007
+
+0:16:01.020,0:16:03.360
+and I started reviewing it
+
+0:16:03.360,0:16:07.780
+but the review was very slow
+it was a busy time for me
+
+0:16:07.780,0:16:09.550
+I was in the process
+
+0:16:09.550,0:16:12.270
+of changing jobs
+
+0:16:12.270,0:16:15.520
+so in
+
+0:16:15.520,0:16:16.970
+November of 2007
+
+0:16:16.970,0:16:19.370
+I started working for CISCO systems
+
+0:16:19.370,0:16:22.310
+CISCO systems had spearheaded an effort
+
+0:16:22.310,0:16:24.450
+to put FreeBSD as a part of the next
+
+0:16:24.450,0:16:26.550
+generation of routers they were producing
+
+0:16:26.550,0:16:31.270
+or at least for a couple of business units
+
+0:16:31.270,0:16:34.130
+and ultimately that project was abandoned
+
+
+0:16:34.130,0:16:36.240
+but before it was abandoned
+
+0:16:36.240,0:16:40.330
+we got FreeBSD MIPS up and going
+we merged
+
+0:16:40.330,0:16:44.840
+MIPS 2 code with the Juniper code
+the Juniper code was very good
+
+0:16:44.840,0:16:48.580
+for things like PMAP and VM system
+
+0:16:48.580,0:16:55.580
+the basic nuts and bolts of the system
+from a memory process point of view
+very stable
+
+0:16:58.170,0:17:02.230
+it had one driver in it SIO
+
+0:17:02.230,0:17:03.259
+one driver
+
+0:17:03.259,0:17:04.960
+wasn't really enough to produce a viable system
+
+0:17:04.960,0:17:06.940
+so we took
+
+0:17:06.940,0:17:11.700
+all the drivers and startup code
+from the MIPS 2 effort
+
+0:17:11.700,0:17:13.920
+that had been going on
+
+0:17:13.920,0:17:20.010
+so drivers for particular SOC
+mix drivers for
+
+0:17:20.010,0:17:27.010
+switches that were in these devices and so forth
+we ported those over and
+
+0:17:27.130,0:17:33.400
+got everything booting
+and just before
+
+0:17:33.400,0:17:36.760
+BSDcan 2008
+
+0:17:36.760,0:17:38.130
+we committed all this to the
+
+0:17:38.130,0:17:38.590
+tree except
+
+0:17:38.590,0:17:44.360
+for the Cavium port
+it had similar
+
+0:17:44.360,0:17:50.510
+IP issues that we needed to resolve
+before we committed it
+
+0:17:50.510,0:17:54.410
+so today we target MIPS 32 MIPS 64
+we run
+
+0:17:54.410,0:17:59.310
+only o32 binaries we've not added the
+
+0:17:59.310,0:17:59.730
+n32 and n64 support
+
+0:17:59.730,0:18:02.220
+it runs on
+
+0:18:02.220,0:18:04.380
+about six different
+
+0:18:04.380,0:18:11.380
+SOCs different cores
+I'll get into those in a few minutes
+
+0:18:13.620,0:18:14.840
+there are some SMP support
+
+0:18:14.840,0:18:17.240
+for the different multicore chips
+
+0:18:17.240,0:18:19.740
+but its not
+
+0:18:19.740,0:18:25.990
+well tested we did not enable it
+because we could not test it to
+see if it works
+
+0:18:25.990,0:18:31.809
+beyond one early experiment we did
+
+0:18:31.809,0:18:33.519
+we've fixed a lot of stability
+
+0:18:33.519,0:18:40.519
+bugs since then we don't know if you turn
+it back on whether it'll work or not
+
+0:18:42.020,0:18:42.529
+so here’s the different
+
+0:18:42.529,0:18:43.890
+SOCs that FreeBSD MIPS
+
+0:18:43.890,0:18:49.880
+runs on today
+it runs on the
+
+0:18:49.880,0:18:51.420
+ADM5120 in
+
+0:18:51.420,0:18:56.720
+united states anyway there are number of
+
+0:18:56.720,0:19:02.670
+small routers or
+servers
+
+0:19:02.670,0:19:04.750
+wireless devices as well
+
+0:19:04.750,0:19:08.450
+that have this chip in them it's
+
+0:19:08.450,0:19:11.000
+20 or 30 or 40 dollars to purchase
+
+0:19:11.000,0:19:18.000
+a high end development board is about
+80 to 85 dollars
+
+0:19:19.860,0:19:25.320
+we also do support one of the IDT network processors
+
+0:19:25.320,0:19:28.620
+as well as the
+
+0:19:28.620,0:19:30.530
+Broadcom
+
+0:19:30.530,0:19:35.010
+5000 6000 cores the Broadcom 4000
+cores has a
+
+0:19:35.010,0:19:37.930
+number of bugs in its
+
+0:19:37.930,0:19:40.710
+pipelining so it requires
+
+0:19:40.710,0:19:41.370
+changes to
+
+0:19:41.370,0:19:44.280
+GCC and BIN utils to schedule
+
+0:19:44.280,0:19:51.280
+instructions correctly and appropriately
+unfortunately these compilers changes whenever
+
+0:19:53.250,0:19:59.440
+donated back to the SFS or the FSF for inclusion
+
+0:19:59.440,0:20:01.300
+in these projects
+
+0:20:01.300,0:20:03.890
+in a timely fashion so they are not in
+
+0:20:03.890,0:20:10.150
+the base and the patches don't exist for the
+versions of the compilers that are in FreeBSD
+
+0:20:10.150,0:20:14.600
+so if we are to support this kernel
+
+0:20:14.600,0:20:15.909
+we would need some kind of
+
+0:20:15.909,0:20:20.810
+out of tree tools
+
+0:20:20.810,0:20:25.620
+and general the project tries not
+to do that although as we move in
+
+0:20:25.620,0:20:32.620
+to the embedded environment we may be
+forced to do that more and more
+
+0:20:32.790,0:20:39.790
+so here is a rundown of the different
+pieces of the ADM5120 that supports the basics
+
+0:20:46.919,0:20:51.200
+the only thing that these boards have is
+that is significant that
+
+0:20:51.200,0:20:55.050
+isn't supported right now is USB
+nobody who has done
+
+0:20:55.050,0:20:56.390
+development has had a board
+
+0:20:56.390,0:21:03.390
+with USB on it so we don't support USB
+
+0:21:04.660,0:21:07.620
+on the IDT the NIC
+
+0:21:07.620,0:21:14.620
+and the serial console are working there’s
+
+0:21:15.700,0:21:17.450
+support for adding devices
+
+0:21:17.450,0:21:22.100
+on the PCI bus
+
+0:21:22.100,0:21:23.860
+the router board
+
+0:21:23.860,0:21:25.090
+the RB532
+
+0:21:25.090,0:21:30.090
+is one of the commercially available boards that has
+
+0:21:30.090,0:21:31.470
+this chip on it
+
+0:21:31.470,0:21:34.130
+it's not a particularly common chip
+
+0:21:34.130,0:21:35.670
+but Wojciech Koszek
+
+0:21:35.670,0:21:37.590
+had one of these laying around
+
+0:21:37.590,0:21:39.160
+and decided hey
+
+0:21:39.160,0:21:40.960
+I'll get FreeBSD working on that it's
+
+0:21:40.960,0:21:46.340
+well documented and he was able to do this
+
+0:21:46.340,0:21:51.770
+again some more details on the Broadcom platform
+
+0:21:51.770,0:21:56.760
+interesting things to note here is that
+
+0:21:56.760,0:22:03.440
+Broadcom MIPS have a relatively unique
+they have a way you could actually
+
+0:22:03.440,0:22:07.160
+enumerate all the devices that are
+into the system object
+
+0:22:07.160,0:22:11.770
+and most of the other systems that are available
+
+0:22:11.770,0:22:13.120
+you'll have
+
+0:22:13.120,0:22:16.990
+to know oh I'm on MPC8548
+
+0:22:16.990,0:22:22.190
+our PC I have this device at this address
+this device at this address and whatever
+
+0:22:22.190,0:22:23.780
+you have to compile in tables
+
+0:22:23.780,0:22:25.370
+but Broadcom products
+
+0:22:25.370,0:22:28.289
+you can go and ask
+
+0:22:28.289,0:22:35.210
+what devices are out there?
+and enumerate through them
+
+0:22:35.210,0:22:37.950
+and we support doing that
+
+0:22:37.950,0:22:41.020
+in a lot of ways it's like PCI
+where you can ask each individual device
+
+0:22:41.020,0:22:44.620
+what’s your ID and it comes back with an ID
+
+0:22:44.620,0:22:51.620
+you can use that to select the proper driver
+for each of the devices
+
+0:22:53.429,0:22:55.560
+so work is currently underway
+
+0:22:55.560,0:22:59.890
+and this is in various degrees of completion
+
+0:22:59.890,0:23:01.870
+there's some work being done to get the Broadcom
+
+0:23:01.870,0:23:04.309
+6000 series working well
+
+0:23:04.309,0:23:08.020
+
+
+0:23:08.020,0:23:08.580
+Cavium networks
+
+0:23:08.580,0:23:09.249
+has a full
+
+0:23:09.249,0:23:11.380
+Octeon port that supports
+
+0:23:11.380,0:23:12.510
+all the
+
+0:23:12.510,0:23:14.710
+members of the Octeon family
+
+0:23:14.710,0:23:15.809
+supports all the auxiliary
+
+0:23:15.809,0:23:17.250
+hardware that is on that
+
+0:23:17.250,0:23:19.610
+all the network packet
+
+0:23:19.610,0:23:26.610
+engine technology all the crypto technology
+that the MIPS
+
+0:23:26.640,0:23:28.990
+multi core MIPS products have
+
+0:23:28.990,0:23:31.820
+one problem though is
+
+0:23:31.820,0:23:34.320
+that it was taken with the old MIPS 2 snapshot
+
+0:23:34.320,0:23:40.770
+and it is against FreeBSD that’s about
+22 months old at this point
+
+0:23:40.770,0:23:44.590
+so even though the port itself is fairly good
+but it's a fairly old version of
+
+0:23:44.590,0:23:48.880
+FreeBSD so
+
+0:23:48.880,0:23:51.840
+it's a lot of work to bring it forward
+I'm working on the Audigy
+
+0:23:51.840,0:23:54.950
+Au 1xxx port
+
+0:23:54.950,0:24:00.830
+which is languishing for a lack lo time
+
+0:24:00.830,0:24:07.380
+Oleksandr Tymoshenko has gone to work with
+a couple of other people
+
+0:24:07.380,0:24:14.380
+whose name are escaping me Dan White
+
+0:24:18.880,0:24:19.410
+um-hum
+
+0:24:19.410,0:24:21.730
+yeah just look Dan on the new Atheros
+
+0:24:21.730,0:24:22.880
+AR7000 and
+
+0:24:22.880,0:24:28.530
+AR9000 parts
+so this is just a
+
+0:24:28.530,0:24:30.300
+wondering list of what I'm working on
+
+0:24:30.300,0:24:37.300
+you can read it or I can read it
+so I'll just go to the next slide
+
+0:24:44.260,0:24:46.660
+we have a pseudo console working
+
+0:24:46.660,0:24:49.040
+we have the NIC working
+
+0:24:49.040,0:24:51.920
+there's some stability issues
+
+0:24:51.920,0:24:52.769
+that Oleksandr is
+
+0:24:52.769,0:24:58.990
+looking into he's trying to figure out
+
+0:24:58.990,0:25:01.530
+what's causing the underling
+
+0:25:01.530,0:25:03.910
+stability issues
+
+0:25:03.910,0:25:07.299
+this work is being done in the
+
+0:25:07.299,0:25:10.890
+FreeBSD SV repository
+
+0:25:10.890,0:25:14.460
+although not in the naming tree
+one of the things that
+
+0:25:14.460,0:25:21.460
+the project has done is it's transition of most
+of the use of Perforce into subversion
+so there’s a project MIPS tree that this work
+is being done in if you want to
+
+0:25:26.770,0:25:31.490
+check it out and look at it for yourself
+
+0:25:31.490,0:25:34.470
+the Cavium port I talked about a little bit
+
+0:25:34.470,0:25:35.470
+it supports all 3 ABIs
+
+0:25:35.470,0:25:39.450
+but its either or it doesn't support
+
+0:25:39.450,0:25:41.429
+all 3 at the same time
+
+0:25:41.429,0:25:43.700
+you can either have an o32 system
+
+0:25:43.700,0:25:48.770
+or a n32 system or a n64 system
+
+0:25:48.770,0:25:50.410
+so that portion of the
+
+0:25:50.410,0:25:52.250
+port needs some additional work
+
+0:25:52.250,0:25:58.340
+before we can roll it into the system
+
+0:25:58.340,0:26:01.940
+one of the other interesting things is
+
+0:26:01.940,0:26:06.740
+that this port you can build entirely on a Linux system
+you don't need a FreeBSD system to host it
+
+0:26:06.740,0:26:08.830
+normally with FreeBSD
+
+0:26:08.830,0:26:10.230
+you have to build FreeBSD on FreeBSD
+
+0:26:10.230,0:26:12.620
+people have either
+
+0:26:12.620,0:26:14.520
+FreeBSD boxes or virtual machines
+
+0:26:14.520,0:26:19.670
+around to build it
+
+0:26:19.670,0:26:21.990
+and ported in network tools
+
+0:26:21.990,0:26:23.210
+like NetBSD has done
+
+0:26:23.210,0:26:30.210
+so that you can build an environment that’s
+more foreign than just FreeBSD
+
+0:26:33.410,0:26:34.980
+and the last item
+
+0:26:34.980,0:26:38.650
+Cavium has Cavium MIPS isn't like other MIPS
+
+0:26:38.650,0:26:42.330
+in some ways there are a number of extensions to the MIPS
+
+0:26:42.330,0:26:46.350
+ISAs that Cavium has done to improve performance
+
+0:26:46.350,0:26:49.610
+to get better
+
+0:26:49.610,0:26:56.520
+validation semantics than you can have from
+normal MIPS instructions so
+
+0:26:56.520,0:26:58.690
+this port also makes use of those
+
+0:26:58.690,0:27:01.980
+so that needs the special tools from Cavium
+
+0:27:01.980,0:27:04.140
+fortunately Cavium is giving
+
+0:27:04.140,0:27:07.110
+their technology pushed back into
+
+0:27:07.110,0:27:10.550
+the FSF releases
+
+0:27:10.550,0:27:11.210
+unfortunately it's being
+
+0:27:11.210,0:27:12.160
+pushed back to GPLP 3 versions
+
+0:27:12.160,0:27:14.940
+so
+
+0:27:14.940,0:27:20.480
+I'm not sure exactly how the project
+would deal with that the patches they have
+
+0:27:20.480,0:27:27.480
+will use GPLP 2 code, so those can potentially
+can come into the project
+
+0:27:34.440,0:27:36.710
+RMI has a
+
+0:27:36.710,0:27:43.710
+FreeBSD 6.1 port they are trying to
+work with the project to get into the tree
+
+0:27:44.900,0:28:01.900
+to put hardware into the project cluster so that they
+can be well supported by the project that code is not
+yet available even to the internal developers
+who are still talking and trying to make it all happen
+
+0:28:08.350,0:28:15.350
+I talked about that
+there’s a number of items that needs to be done for
+
+0:28:17.549,0:28:19.830
+the next port as it exists in Perforce sorry
+
+0:28:19.830,0:28:21.909
+as it exists in the
+
+0:28:21.909,0:28:28.909
+FreeBSD subversion tree
+
+0:28:29.460,0:28:30.680
+the first one is that we need to
+
+0:28:30.680,0:28:34.820
+get a n32 and n64 support working
+
+0:28:34.820,0:28:38.870
+along with Multilib support in the tool chain so that
+
+0:28:38.870,0:28:45.870
+we can have the ABIs co exist on the platform
+
+0:28:46.890,0:28:53.890
+we have a
+emulation working configuration with FreeBSD MIPS
+you can run FreeBSD MIPS emulation if you want to try it out or
+
+0:28:57.530,0:29:02.870
+your developing the code QEMU
+
+0:29:02.870,0:29:05.130
+is a little bit more widely deployed
+
+0:29:05.130,0:29:07.850
+and we'll like to have a configuration that works with that
+
+0:29:07.850,0:29:10.850
+right now there's a number of
+
+0:29:10.850,0:29:15.030
+problems relating to interrupts that need to be solved
+and looked at
+
+0:29:15.030,0:29:19.030
+we also need to have 64-bit PMAP support with some
+
+0:29:19.030,0:29:25.540
+rudiments of that in code right now but it's not enough
+to bring up
+
+0:29:25.540,0:29:32.540
+64-bit kernel 64-bit
+and
+
+0:29:35.630,0:29:36.260
+we need to take
+
+0:29:36.260,0:29:43.260
+the SMP code either from the Cavium port
+and make it work so that we can take
+advantage of the multicore processors
+
+0:29:45.950,0:29:48.040
+one of the nice things about the FreeBSD project
+
+0:29:48.040,0:29:49.470
+is that we've got
+
+0:29:49.470,0:29:52.750
+good scalability on Intel
+
+0:29:52.750,0:29:59.750
+and we would presume that scalability would translate to
+multicore systems in the embedded world and we would like to
+
+0:30:00.010,0:30:02.279
+take advantage of all the work that’s being done
+
+0:30:02.279,0:30:06.120
+on Intel servers or the embedded space try to capture
+some of the
+
+0:30:06.120,0:30:10.130
+embedded market, finally
+
+0:30:10.130,0:30:11.110
+we need more
+
+0:30:11.110,0:30:13.640
+we need more support from system on chips
+
+0:30:13.640,0:30:15.900
+that's going to be a
+
+0:30:15.900,0:30:19.950
+a continuing battle
+
+0:30:19.950,0:30:22.480
+new parts are released all the time
+
+0:30:22.480,0:30:28.610
+FreeBSD needs to be ported to those
+
+0:30:28.610,0:30:32.230
+and in the embedded world it's a bit different than on Intel
+
+0:30:32.230,0:30:36.010
+where everything has a standard address you have
+standard devices
+
+0:30:36.010,0:30:39.780
+in the embedded world what ever is
+convenient to the embedded designer
+
+0:30:39.780,0:30:46.780
+if they can save a little bit of money by putting something
+in a different location they will so each new
+
+0:30:47.500,0:30:54.500
+processors main chip comes out we need to take the time
+to sit down and get
+
+0:31:08.580,0:31:09.930
+FreeBSD working on that so that wraps up some of the general
+MIPS history and that kind of occurred status support
+
+0:31:09.930,0:31:10.850
+we are going to talk a little bit about some
+
+0:31:10.850,0:31:13.090
+of the items that are relatively new to
+
+0:31:13.090,0:31:20.090
+FreeBSD that would make it attractive for embedding
+or running in an embedded environment
+
+0:31:22.400,0:31:29.400
+the PowerPC and ARM architecture have a number
+of things that have been added lately
+
+0:31:30.350,0:31:37.350
+Rahul was talking about some of the prescale
+improvements for multicore
+chips and
+
+0:31:39.350,0:31:40.750
+in an earlier talk
+
+0:31:40.750,0:31:44.410
+there's some other things I'll talk about here in a second
+
+0:31:44.410,0:31:45.640
+one of the things that I just
+
+0:31:45.640,0:31:48.910
+committed to the tree is the ability to build
+
+0:31:48.910,0:31:51.970
+the system compilers
+
+0:31:51.970,0:31:56.090
+for other architectures so you can use them as a
+cross compiler
+
+0:31:56.090,0:31:58.060
+natively rather than carry inside
+
+0:31:58.060,0:31:59.230
+the FreeBSD
+
+0:31:59.230,0:32:03.820
+build system again this is similar to
+
+0:32:03.820,0:32:05.930
+a lot of the build technology that
+
+0:32:05.930,0:32:12.930
+NetBSD has done for sometime
+
+0:32:13.570,0:32:17.049
+and that is the first step towards making
+
+0:32:17.049,0:32:19.720
+ports cross buildable
+
+0:32:19.720,0:32:20.850
+right now there are
+
+0:32:20.850,0:32:27.850
+three basic classes of ports
+there are the ports that have, are really stupid
+
+0:32:27.990,0:32:31.230
+that just compiled a lot of .C programmers
+
+0:32:31.230,0:32:32.260
+those are very easy to point
+
+0:32:32.260,0:32:33.460
+and let the cross compiler
+
+0:32:33.460,0:32:38.080
+those just work
+
+0:32:38.080,0:32:40.100
+there’s a class of ports that have been written
+
+0:32:40.100,0:32:41.030
+specifically
+
+0:32:41.030,0:32:42.150
+to understand
+
+0:32:42.150,0:32:43.970
+the new naming conventions
+
+0:32:43.970,0:32:45.099
+and you tell it
+
+0:32:45.099,0:32:46.880
+I want to compile
+
+0:32:46.880,0:32:49.280
+for an ARM
+
+0:32:49.280,0:32:51.090
+FreeBSD and it knows how to find
+
+0:32:51.090,0:32:58.090
+that compiler and build for it
+some of those ports work if you pass
+
+0:33:00.020,0:33:07.020
+the right configure arguments on the command-line
+and then there’s a class of ports in the middle that
+they build tools to build the rest of the port
+and these tools need to run natively
+
+0:33:15.760,0:33:18.160
+but they don't have any support for cross building so
+
+0:33:18.160,0:33:20.610
+it uses the target compiler
+
+0:33:20.610,0:33:23.010
+the try to build the .h files
+
+0:33:23.010,0:33:24.170
+or
+
+0:33:24.170,0:33:25.080
+whatever for the program to build
+
+0:33:25.080,0:33:28.440
+the .h files or whatever they are using but when
+
+0:33:28.440,0:33:29.330
+that program goes to run you get an error
+
+0:33:29.330,0:33:30.770
+because you can't run
+
+0:33:30.770,0:33:37.010
+it on binary on an x86 machine also in the
+third class of ports are
+
+0:33:37.010,0:33:39.070
+there’s a number of ports that try to do
+cross-compilation
+
+0:33:39.070,0:33:41.050
+and got it wrong
+
+0:33:41.050,0:33:48.050
+so that
+
+0:33:49.549,0:33:55.200
+so some of the other things in FreeBSD that
+are interesting to the embedded world are
+
+0:33:55.200,0:33:56.260
+we're starting to get a number of support for
+
+0:33:56.260,0:34:01.750
+a number of different devices and technologies
+I went into some of these in my paper
+
+0:34:01.750,0:34:05.310
+I'll highlight a few of them here one of the
+
+0:34:05.310,0:34:09.649
+most important is NOR flash support in a
+
+0:34:09.649,0:34:14.149
+a lot of the low end routers switches that are
+
+0:34:14.149,0:34:17.709
+wireless access points that are available
+
+0:34:17.709,0:34:21.219
+they load off of NOR flash so having new drivers
+for that allows us
+
+0:34:21.219,0:34:28.219
+to get into that market and we can boot off of them
+we can manipulate the underlying flash
+
+0:34:31.819,0:34:35.899
+we do not yet have a flash file system,
+we really need one talk
+
+0:34:35.899,0:34:38.159
+about that a little bit more
+
+0:34:38.159,0:34:40.119
+in the embedded world pin count really really matters so
+
+0:34:40.119,0:34:45.449
+a lot of the devices are serial devices
+
+0:34:45.449,0:34:48.329
+and FreeBSD has got better
+
+0:34:48.329,0:34:52.749
+support for serial protocols
+
+0:34:52.749,0:34:54.229
+that has recently had a new
+
+0:34:54.229,0:35:00.650
+USB sack integrated into the tree
+we've had improvements to the I2c
+
+0:35:00.650,0:35:07.650
+support we've got rudiment we've got new support
+
+0:35:07.699,0:35:14.089
+for I2s for the sound devices on both embedded systems
+and coincidentally on old
+
+0:35:14.089,0:35:19.299
+Macintosh laptops
+
+0:35:19.299,0:35:20.650
+we've got support for
+
+0:35:20.650,0:35:27.149
+the SPI bus which is a synchronous bus we've permanently
+
+0:35:27.149,0:35:32.839
+flashed a couple of other specialized devices
+
+0:35:32.839,0:35:35.309
+for years FreeBSD has also booted well
+
+0:35:35.309,0:35:38.869
+with a compact flash on a x86 machine
+
+0:35:38.869,0:35:40.839
+while in the embedded space
+
+0:35:40.839,0:35:47.449
+compact flash isn’t very well favored
+because it's a 50 pin interface
+
+0:35:47.449,0:35:52.069
+but the SD cards that you find in your cameras are
+very well favored because it's a
+
+0:35:52.069,0:35:59.069
+very small footprint and also it has 9 pins
+you can implement it in I think 4 or 5 pins
+
+0:36:01.439,0:36:05.449
+which makes it fairly attractive and low cost high
+
+0:36:05.449,0:36:07.569
+storage medium and FreeBSD
+
+0:36:07.569,0:36:09.829
+has a good SD stack
+
+0:36:09.829,0:36:12.819
+we recently added support
+
+0:36:12.819,0:36:14.269
+for the high-capacity
+
+0:36:14.269,0:36:16.569
+SD cards and for MMC cards
+
+0:36:16.569,0:36:19.889
+finally a lot of the
+
+0:36:19.889,0:36:20.999
+embedded systems
+
+0:36:20.999,0:36:21.989
+are wireless
+
+0:36:21.989,0:36:27.459
+have some kind of wireless technology
+
+0:36:27.459,0:36:29.039
+and FreeBSD has a fairly good
+
+0:36:29.039,0:36:30.730
+wireless access stack
+
+0:36:30.730,0:36:35.519
+access point stack written by Sam Leffler
+
+0:36:35.519,0:36:39.889
+so I'm mentioning it here as well
+
+0:36:39.889,0:36:46.779
+there’s a number of features that
+are private or in another stacks
+
+0:36:46.779,0:36:53.779
+on PowerPC there’s a number of additional cores
+that are supported
+
+0:36:54.329,0:37:01.329
+in addition to the free scale parts which are
+the top portion the E500 is a it's called a
+core
+
+0:37:05.219,0:37:12.219
+presented this in a lot of detail so I'll just skim
+over it these are all the ones that are listed
+
+0:37:13.989,0:37:16.019
+also been instrumental in driving
+
+0:37:16.019,0:37:18.749
+some of the other
+
+0:37:18.749,0:37:21.299
+PowerPC chip-sets
+
+0:37:21.299,0:37:24.559
+the AMCC 440
+
+0:37:24.559,0:37:30.489
+support he's been working on has
+it booting single user multiuser ?
+
+0:37:30.489,0:37:33.299
+has it booting multiuser off of a USB
+
+0:37:33.299,0:37:40.299
+flash , last summer he sponsored a student
+on the E300 yeah it's the E300 and the MPC5200
+
+0:37:47.489,0:37:49.239
+to bring up the FreeBSD on
+
+0:37:49.239,0:37:54.889
+the MPC5200 which is an E300 core it has an
+
+0:37:54.889,0:37:58.669
+number of differences between the 500 core
+
+0:37:58.669,0:38:00.330
+like
+explained there’s a
+
+0:38:00.330,0:38:07.330
+number of things that are optional or different in the
+specification you need to code for
+
+0:38:08.910,0:38:14.179
+there’s been some additional floating point support
+that’s gone in and there’s some work underway for
+the G5 Mac not embedded power platform
+
+0:38:14.179,0:38:16.939
+but some additional PowerPC
+
+0:38:16.939,0:38:23.939
+infrastructure that’s going well
+
+0:38:25.379,0:38:26.599
+FreeBSD ARM
+
+0:38:26.599,0:38:33.599
+has recently gotten Marvel support for the
+
+0:38:35.599,0:38:39.140
+different members of the Orion family
+
+0:38:39.140,0:38:46.140
+there’s three families of processors Orion,
+Kirkwood, and Discovery
+
+0:38:46.400,0:38:53.400
+that are supported
+
+0:38:55.209,0:38:57.459
+managed to get into the tree
+
+0:38:57.459,0:38:59.679
+
+
+0:38:59.679,0:39:00.539
+so
+
+0:39:00.539,0:39:07.539
+this company does really work
+
+0:39:08.629,0:39:15.219
+there’s also support for Samsung devices that are in the
+open
+
+0:39:15.219,0:39:17.029
+and a couple of other boards
+
+0:39:17.029,0:39:21.279
+Sam Leffler recently added support
+
+0:39:21.279,0:39:28.279
+to the IXP 435 on Xscale boards chips
+
+0:39:30.229,0:39:31.219
+and there's some more
+
+0:39:31.219,0:39:37.929
+underway to get the Cirrus Logic family of ARM
+9 parts to get into the tree
+
+0:39:37.929,0:39:44.929
+although that work is stalled the
+team working on it ran out of time
+
+0:39:49.660,0:39:52.629
+got interested in other things
+so there’s a number of things
+
+0:39:52.629,0:39:56.029
+that the embedded world will be
+
+0:39:56.029,0:40:00.299
+very happy if FreeBSD did and
+
+0:40:00.299,0:40:02.759
+the biggest one is probably the
+
+0:40:02.759,0:40:04.479
+flash file system support
+
+0:40:04.479,0:40:05.840
+FreeBSD needs to have a flash
+
+0:40:05.840,0:40:07.380
+file system
+
+0:40:07.380,0:40:10.049
+with the number of
+
+0:40:10.049,0:40:13.919
+people talking about porting one from Linux or
+
+0:40:13.919,0:40:20.919
+using the same ARM disc structure as
+one of the Linux file systems
+no need to completely reinvent the wheel here
+
+0:40:28.069,0:40:29.819
+in addition to some of the technical
+challenges that we have we need
+
+0:40:29.819,0:40:36.819
+greater marketing and out reach and documentation
+to show people that this is possible
+and a reasonable thing to do
+
+0:40:42.199,0:40:45.199
+so that's the end of my talk
+
+0:40:45.199,0:40:46.560
+I guess it's now the time for
+
+0:40:46.560,0:40:47.629
+questions
+
+0:40:47.629,0:40:51.169
+and here are the links again
+
+0:40:51.169,0:40:52.359
+to the paper and the slides
+
+0:40:52.359,0:40:59.359
+
+
+0:40:59.779,0:41:01.520
+because that was what I put on the slides
+
+
+0:41:01.520,0:41:02.370
+
+
+0:41:02.370,0:41:04.469
+will also work equally well
+
+0:41:04.469,0:41:07.249
+there’s no slide intended
+
+0:41:07.249,0:41:09.700
+
+
+0:41:09.700,0:41:16.700
+there was talk for a while of using DesktopBSD
+to do the packeting for the embedded
+to add some nice attributes
+
+0:41:18.219,0:41:19.530
+so any
+
+0:41:19.530,0:41:26.530
+of those technologies that would enable that
+anything that works will be a reasonable thing
+are there any difficulties in
+
+0:41:39.599,0:41:41.829
+bringing up an embedded system
+
+0:41:41.829,0:41:45.259
+from one SSC to another to a third or is every
+effort
+
+0:41:45.259,0:41:46.719
+different
+
+0:41:46.719,0:41:52.579
+in terms of implementation and the problems you run into
+
+0:41:52.579,0:41:55.509
+I can answer that question yes
+
+0:41:55.509,0:41:59.569
+there are a number of things unique to each
+individual
+
+0:41:59.569,0:42:00.449
+SSC there are
+
+0:42:00.449,0:42:03.979
+quarks in the silica there are quarks in the
+
+0:42:03.979,0:42:05.089
+cores implementation of the architecture you're trying
+
+0:42:05.089,0:42:08.989
+to do
+
+0:42:08.989,0:42:11.190
+those are almost never uncommon
+
+0:42:11.190,0:42:14.299
+writing crazy things
+
+0:42:14.299,0:42:18.409
+one of the problems that we have with FreeBSD
+
+0:42:18.409,0:42:19.589
+is adding additional
+
+0:42:19.589,0:42:22.159
+buses is a big
+
+0:42:22.159,0:42:28.139
+copy and paste operation now
+takes about 200 lines to implement a new bus
+which should take about 10
+
+0:42:28.139,0:42:33.150
+so that's one thing that's in common with those
+
+0:42:33.150,0:42:36.399
+between bringing up different processes
+
+0:42:36.399,0:42:37.049
+also you tend to use the same kind of tools
+
+0:42:37.049,0:42:39.329
+the Jtag Reader
+
+0:42:39.329,0:42:40.400
+the Jtag Debugger typically
+
+0:42:40.400,0:42:43.809
+on a well resourced operation
+
+0:42:43.809,0:42:50.809
+to bring up the different processes
+the different cores when you are doing the initial core
+
+0:42:54.869,0:43:00.380
+the answer varies and people have written
+entire books on how to do that
+
+0:43:00.380,0:43:05.709
+some in common some very unique
+and will like to make the things
+
+0:43:05.709,0:43:12.709
+that are incommon and hard easier
+to the extent that we can
+
+0:43:13.259,0:43:20.019
+one of the things is that it takes a lot
+of work to bring them up
+
+0:43:20.019,0:43:23.079
+are there other questions
+
+0:43:23.079,0:43:26.130
+how about the
+
+0:43:26.130,0:43:27.169
+multicore scalability
+
+0:43:27.169,0:43:30.339
+of FreeBSD
+
+0:43:30.339,0:43:32.219
+right now we don't know
+
+0:43:32.219,0:43:36.239
+how well FreeBSD MIPS will scale
+we don't know whether
+
+0:43:36.239,0:43:43.239
+there are bottle necks in
+
+0:43:43.939,0:43:50.939
+the PMAP for example we think it would be
+fairly well once we've carried on and get to the start
+that isn't working now debugged
+
+0:43:55.599,0:43:59.929
+It'll be comparable to x86 there
+may need to be a period of tuning
+
+0:43:59.929,0:44:06.929
+because the minute we implement one of the atomic
+primitives effecting performance of the other
+potential problem is cache coherency some
+
+0:44:28.900,0:44:32.659
+MIPS processors have really good
+cache coherency for
+
+0:44:32.659,0:44:34.929
+multi-processing others push
+
+0:44:34.929,0:44:39.649
+a lot of the burden of that on to the implement
+Cavium will probably scale really
+
+0:44:39.649,0:44:46.649
+well because it is fairly coherent
+the MIPS with a fairly coherent cache policy
+and architecture
+
+0:44:52.439,0:44:59.439
+it's really the only MIPS one multi-core MIPS that I'm
+really familiar with I don't know how the others will work
+
+0:45:08.429,0:45:09.209
+any other questions ?
+OK thank you very much