Let me introduce myself quickly. My name is Mark Hatley. I've talked at ELCs before, usually around the Yachto project, things like that. This one's a little bit different because I'm using the Yachto project, but it's very focused on a specific workflow, primarily heterogeneous systems and how we can use various tools to generate them using the Yachto project itself. Just as a word of note, if you download the slides off the website, I'm going to be skipping some of them just to make sure everything fits in the allotted time. So if I go fast through a couple of things, it's pretty much just background material. It's not really the meat that I'm going to skip through. So with that said, the first thing we need to do is define what is a heterogeneous system, at least in the context of this. And just going back in my past, we've got some good examples, VME, Compact PCI. You can drop in cards of various types. They all share common backplane, share some devices. But effectively, every device is kind of its own thing, just wish them shared resources. But getting a little bit more modern in the way we do things, you've got virtual machines and containers. Those are heterogeneous devices as well, because they're going to be running different operating systems. They could be running no operating system, bare metal, et cetera. So you have to put that in context here, is that that's part of what I'm talking about is the ability to generate virtual machines and containers that work together to build that heterogeneous system. Another example is something like the TIO map. You have a main Cortex processor with a DSP. And so they do not run the same instruction set. They don't use the same compilers, build systems, all the rest of that. So how do I build these things together that would be traditionally a firmware component or something built externally? And then the actual example that I'm going to show, which is the previously Xilinx, but now AMD, Zinc Ultra-Scale FPGA, it contains a Cortex A53, a Cortex R5, a microblades, a platform management unit, and then also, because it's an FPGA, somebody could implement a software-based CPU in it. And so you get a very heterogeneous environment in a single system on chip. So this is part of the reason why I think this is a good example for how to do this in a more complex world. So as I mentioned, one of the complexities is beyond just different types of processors. You run into the case where you're going to have different build systems, different compilers. You're going to be targeting different runtime environments. You have each runtime environment has a different view of the shared resources of the system. Some of these things cannot be built in the Octo project. They can only be built as binaries. How do you incorporate those things? How do you bring them in? And all of those items were part of the design of what I did on the Zinc MP. But let's first talk about the system device tree. So first off, if you're not familiar with device trees, the main thing is that a device tree is going to describe the hardware components from the view of the operating system, for instance, Linux, and how that operating system is going to talk to and manage the components. That means in a heterogeneous environment, we need to have multiple device trees, one for each operating environment. And then how do you sync those together? How do you make sure that they match your current hardware design?  You have to keep changing these things and making sure that they don't conflict. And this becomes difficult to manage long term. You can set up process and procedures around it, but it's still a manual process for the most part. Earlier today, there was a system device tree topic, which actually covers some of these things. But effectively, that's where we start to go here. Let's describe the hardware once. And again, the hardware in this case could be a virtual machine configuration. It could be my Xilinx FPGA. It could even be a VME chassis with five boards in it. It's still one hardware description, one system device tree. And it doesn't take the view of any individual operating system. It's really going to describe it all. And so somehow you have to transform that system device tree into the more traditional device trees. That's where the lobby utility comes in and the drivers for the lobby system. And so just a really quick example on the left. We've got three different CPUs with all the corresponding hardware assigned to them. We run them through some lopping and transformations. And then on the right hand side, we generate CPU specific views of the system for the individual operating systems. This can certainly be taken even further. Going into Zen configurations, VMware configurations, even container configurations where you only want certain hardware to be visible in a container. And so you can really start to limit things down from an application point of view if the applications are using system device trees. So let's skip to the Yachta project. Most people probably know the Yachta project, so I'm not going to really dig too much into this, but I just wanted to give a reminder or a refresher to folks. The main thing is the Yachta project itself is not a Linux distribution. It is a distribution builder that usually focuses on Linux. So what that really means is I can build Friartos. I can build Zephyr. I can build Linux. I can build bare metal. You name it. But I don't have to build them in the Yachta project system. All of the configurations start with a machine. This really defines your hardware capabilities. The machine itself internally defines a default tune. This describes the CPU that you're targeting, the instruction set that you're targeting. All of the components, the metadata, the instructions, your configuration are captured either in your build directory or in individual layers. And by using layers, you can share that with other users. And then inside the layers, you have recipes. These are the individual instructions used to actually generate components like Bash, or G-Lib C, or the compiler, kernel, that kind of a thing. And so when you run a build, such as BitBake Core Image Minimal, what it's going to do is it's going to load the system configuration. It's going to target the core image minimal recipe. And that core image minimal recipe has a series of dependencies on other recipes and other components in the system. And then we'll put them together, assemble them, and create an image for your system. And so again, the key configurations is you have your layers, your local.conf. Together, you get a basic configuration directory that looks like this with just two configuration files that point to the rest of the system. This is what most people are used to seeing. But if we start to talk about multi-config, and that's where we get into this hybrid, heterogeneous environment, you can actually specify multiple configurations that will work in a single build. And not only will they work in a single build, but you can have dependencies between the various components of the multi-config. And that's what starts to drive to more of a system design. And so for the main multi-config, what the general recommendation is, is that your multi-config configuration file is going to work similar to your local.conf, and you will want to specify a machine and a distro, and you also have to specify the temp directory where you're going to build the software. So three items is what most multi-config are going to have in them. But there's nothing actually in the multi-config that limits to those three items.  You can put in different parameters. You can override whatever you want. And as long as you end up building the system in those components, you're good. And so this is where I deviate a little bit from the basic instructions that you would have seen from the Yachto project, is I'm setting some different values here. But essentially, I'm still following the pattern the Yachto project designed and everything else. And so just a quick example, be a multi-config is really the only thing that gets added to your local.conf to use multi-config. And if you look on the right, there's a multi-config subdirectory underneath conf. And that's where you put your individual multi-config components. And I've got some examples here that you can look at later that just show how the dependencies work and some other things. But the key thing is there are dependencies that you're going to want to be able to use. And so now let's take a look at what I actually did. This is really the meat of the presentation. So we want to be able to go and generate a system from a system device tree and go all the way down to the image side and have a total system that I can just run one build command and actually get something to execute and run on. Without having to worry about how did I build this little piece of firmware over here? How do I build this thing? How do I configure this other thing? And so it all starts with some of the Zinc MP tools. And again, this is very specific to this environment. But some of these terms I'm going to mention because I will probably save them later on. And I just want you to know what I'm talking about. So Vivato is the software that actually does the HDL design and basically describes the tools. From Vivato, we have a hardware description that is saved in what we call an XSA file. And that's really just the hardware description itself. There is a tool called DTG++. And this is actually a device tree generator. And the plus plus part is it actually generates system device trees. And it uses the XSA file's inputs. We then have these components called embedded software or ESW components. And these are actually the bare metal components that run that platform management unit. Or maybe they run bare metal on the R5 processor to do some real-time activity or something like that. The ESW software is all based on New Lib. And New Lib needs a hardware description library. And that hardware description library is LibZill. And so we need a way to take the hardware description, compile it into LibZill, and actually make it do something reasonable. And then from that, we generate our FSBL, which is our first stage boot loader. First stage boot loader calls Uboot, which most people are familiar with. We have our PMU firmware, our platform management unit firmware. And this is actually what handles all of the underlying system behavior, including FPGA, behaviors, loading, unloading, locking regions, things like that. And all of this then, in the end, when we generate our images, anything that goes into the flash memory uses a program called Bootbin, which is a format, BIF format, that actually puts these things together and puts it in a way that the hardware can come up from power off and actually load whatever's necessary, bring the system up, and then eventually get to a standard operating system, like Linux. So everything begins with the hardware flow. We output an XSA file. Now is the part that I'm interested in, because I'm a software engineer. How do I get from that hardware description to something I can use? And this is that DTG++ file. And so when I pass in my XSA, run it through there. It parses it, pulls files out, generates components, everything else. And you end up with a directory tree similar to what you see on the right. In that tree, you've got an include directory that has a bunch of individual bindings that say, this is how I operate the clocks in the system. This is how I reset the board. This is how I talk to the GPIOs.  Those are the items that actually describe that system device tree. It all starts with systemtop.dts. And then there's two additional files, PSUNit and PSUNit.h.  PSUNit and PSUNit.h actually describe all those parameters. It's probably not human readable. It's just put this value here, put this value here, put this value here. But the fact is it's all generated by this DTG++ software in a way that then later things like the first stage loader or bootbin or one of the others can actually access it and use it. So then we get into system configuration. I want to start with that system device tree and those header files. And I want to generate my system configuration. And so we developed a tool, and this is very much proof of concept or prototype level called DT processor or device tree processor. It's able to read the system device tree, has the knowledge of what the Xilinx parts look like and how they operate and how they need to be configured and actually generates a Yachta project multi-config. And so when I run DT processor, I'm going to say my configuration directory is here. I'm going to say my system top.dts is here. And I want you to write the configuration in this other location. And so it ends up writing a local.config fragment that looks like the lower box. The main thing that here is that it's got a requirement that it brings in a generated file called Cortex-A53 Zinc-MP Linux. And that's actually what defines all of your machine capabilities. Then we have our BB multi-config that actually defines, hey, this is the whole list of everything that I generated. These are all heterogeneous targets that I'm capable of building and using as dependencies.  And so for a quick view, if you look on the right, you can kind of see the map of everything that's generated. And so if we focus on that first part, because that's really the meat of this, we end up with looking at what the processor generator is doing. And so the first thing it's going to generate into that Cortex-A53 Zinc-MP Linux basic default configuration is it's going to say, hey, here's my Linux DTB. Because I need my Linux DTB in order to run Uboot. I need it to run Linux. And Linux is the center of this design. Everything spawns off from Linux doing something. But you don't have to do that. You could actually say, maybe Zephyr is going to be the core of my design. And Linux is the multi-config or the secondary operating system. We also defined that this thing is a Zinc-MP. And because it's a Zinc-MP, we're going to use the Zinc-MP generic target. We know that all of the system on chip parameters are going to be set, but we don't know any of the machine-specific parameters. And then we just set a couple of overrides for other components in the system. And this is just really to generate or use the generated environment that we have. And so if we want to look at what it's actually doing under the hood, it's running Lopper. And as Bruce said earlier in his talk, his Lopper is capable of converting device trees from one format to another format, but it can do a whole lot more than that. And so we use it to also generate our configuration fragments. So for instance, this particular one is using to generate the Linux device tree. And all it's going to do is a Linux device tree. But we're using three different lops here. We're lopping off the A53-specific items. We're then adding the Linux domain information into it. And then we're pruning certain information that we know may have been in there and isn't necessary for our Linux configuration. And so we start with a system top. It processes it. And then the output is a DTB or binary device tree. But let's talk about some of the other things that we can do here. MicroBlaze. MicroBlaze is a completely configurable CPU core. And so that means the instruction sets, there's 12 different versions of the instruction set out there. Each version, there's variations that have multiplication or division, that have long words, short words. You name it, it's a very, very configurable CPU type. And so we actually have to be able to tell the system, not only do you have a MicroBlaze, but it's this version with these capabilities so that we can set the tool chain configuration properly. And this is where that default tune comes in that I was talking about earlier. We use it, and we load in the system top. We have a special processor, this lot MicroBlaze Yachto. And the output of that is actually the configuration that you see below, which is we add an available tune, and it starts with CPU 0. And in this case, CPU 0 is the PMU. It says, I'm on MicroBlaze. I'm version 9.2. I've got a barrel shift. I've got a pattern compare. I've got a reorder, and I don't have any math. So I'm FPU soft. And then from that, it then, the last item says, by the way, I'm also an alias myself to tune MicroBlaze. So if something says, I am a MicroBlaze PMU, it will find the correct tune, which is CPU 0. And that's just all it generates, and it makes it available to the system. So then we expand to the next level. What about bare metal configuration? I was talking before about that LibZill component. How do we generate the LibZill item so that we are getting the hardware that's available on our system, but we're not referencing hardware that we don't have enabled on our system or have never implemented, again, because it's an FPGA? How do we make sure that the size is, say, small because it's bare metal, and maybe we're resource constrained on the barrel components? And so again, we use Lopper to go through the system and transform things. And so the transformation that goes here, and this particular example is, again, processing the A53 processor. But there would be transforms for the Cortex R5, as well as for the MicroBlaze. And so we start by pulling out the A53 specific components. We then go through and process this and generate a bare metal version of the tool chain. So it's all of the A53 in this case. We don't prune it. We don't modify it or anything else, just the A53 related components. We then use Lopper a second time to go through. And we actually process that system device to say, hey, what hardware is available in the system that happens to be available on the Cortex A53? And then let's go to this embedded software component, which has a table of, these are all the pieces of software I understand. These are all the device nodes I understand. And it goes out there and it can actually do mapping for configuration data. And effectively, what ends up happening is two configuration files are generated. A distro.conf configuration file specific to that domain of the system. And in there, it will set distro features, AV buff, actually PMON, et cetera, et cetera, et cetera. And then in the actual recipes themselves, we add package configs for the libzil package that will say, oh, if AV buff is specified in the distro config, I'm also now require the AV buff component of the system, which is just a fragment of the library. And then the final libzil comes together and links together all of those fragments. So we know libzil always matches the hardware one to one.  You don't need it anymore, you don't have it in your design. You don't have to rebuild the entire system from scratch anymore. You'll regenerate these things. It'll go through and say, oh, I don't have AV buff anymore, but all of the rest of the components I still have. I only need to relink the libzil library without AV buff. And now I have an updated version of the components. So it becomes highly configurable based on the system device tree and based on the OctaProject distribution configuration. And so if we look at actually this bare metal configuration file, and again, this is the microblaze one, you will see that we point to the configuration a dt file, the one that's specific for that domain. We then point our embedded software to a specifically named machine, which is very Xilin-specific and wouldn't be the general case. We then incorporate that microblaze configuration file that describes what the CPU is. We then change the system default tune to be microblaze. And so you'll see in here that there is no setting in this that says, this is a different machine. I'm not, you won't see a machine equals something else. All of our configurations use a single machine. It's incomplete generic. And what they'll do is they'll go in and change the default tune to say, I'm still incomplete generic. I still have the same machine-wide settings. But I have a different configuration from my processor, so I will change my default tune to be microblaze. If I'm on the Cortex-R5, you'll see a default tune equals Cortex-R5. If you're on the A53, it'll be a default tune Cortex-A53. Slightly different than the way the OctaProject does it, but it actually really simplifies it when you have a single system on chip that does this. And it's well within the parameters of the OctaProject. Because the default tune is considered one of the machine settings. We then have some other things in here. And then, like I said, tempter has to be specified. Each multi-config needs its own tempter. We have a special distribution called Xilinx standalone. That's just for the bare metal components. But let's say this was Zephyr. It would be Distro's Effer, or in Linux, Distro's Linux, or FreeR Toss, or whatever. And so collectively, this overrides the default file that's Linux specific with the specific things for bare metal, in this case, or any other operating system. And so if we go back and look at originally what was generated, you can start to see on the right-hand side the actual files that were generated. And so you've got the Cortex-A53 ZincMP Linux.com file. That's your system-wide definitions, but from the view of Linux. You then have the individual DTB directory, which has all of the DTBs for all the various heterogeneous components that would be in the system. You then have your microblaze.conf, which is these are all the microblazes that are available on it because it's a dynamic processor. You then have all of your multi-config, which override your default values. And it's only the items that are overridden in there. And then an include directory specifically for those bare metal components because of the way we implemented our bare metal. It's, again, configurable from a dynamic basis. And so then we get into, OK, how does it actually work? Now that we have the system configured, we need to be able to actually do something with it. And so there's this series of overrides that say, if I'm building my first-stage bootloader, I depend on the following thing. And you'll see it doesn't depend on anything, but that's current context. If I'm doing a first-stage bootloader, I actually depend on something else, building the first-stage bootloader from the bare metal configuration. And so this is where that MC colon colon, Cortex A53, ZincMP, FSBL bare metal, FSBL firmware due deploy comes in. In other words, I have to run the due deploy from the FSBL firmware in the Cortex A53, ZincMP, FSBL bare metal configuration. That runs first. That's built the software. I don't care how it's built. It just goes and does it.  I know the component is there because my dependency has run. I'm going to copy that binary into my Linux context and package it up as a Linux package, as well as be able to use it to generate the system image. We do the same thing for the R5 version of the FSBL, as well as the PMU firmware. And so roughly speaking, it's just a very, very simple dependency. And you don't have to use it across multi-config, but you can. And so the way that it was implemented, we want to make sure that we set not only the depends. The MC depends, the deploy dura, and the image and make sure they're all over-rideable here. Because if I come in and I say, you know what? I don't want this thing running my FSBL software because I've been given it by my hardware vendor.  They say, nope, you have to use this firmware or I will not support you. I don't want to build it in this heterogeneous system. What I want to do is put it in a known directory location. And then I can say, I don't depend on anything. I don't have a multi-config dependency on anything. But my deployment dura is the magic directory that I put it in. And the name of this magic file is, and then it gives you and then you can enter the specific name and override it. And at that point, your consumer now is generic that it can build it. It can just use a binary. Or it can start you on the process of saying, hey, I don't have anything here because I've generated a error message that says, you need to provide this thing because I don't know how to build it. And so you can start to become more user-centric on this. And so then the rest of it's just the do install. How do I create a package and the deploy? How do I put it into the deploy directory so that when I create a RAM disk image or a firmware image, I can put it together? But let's say we're going to use the Octoproject to actually build it. We have to have that provider. That's the other side of that multi-config. And so the recipe there becomes pretty simple as well. The only coordination that we have to have on both sides is what is the name of this component? So that's where this image name thing comes in. And then we have a do, the standard do configure, do compile. There is no do install in this case because we're not going to create a package within the multi-config side of the world. All we have to do is actually deploy the binary that we generated into a known location. And that's what the do deploy ends up doing. So the provider becomes very, very simple here. So then you end up with a build that looks something like this. And this is a simplified view of a very complex build. And to give you an idea of how complex it can be, if I'm doing a Linux build with the FSBL, the PMU firmware, I've also got an R5 system in there. I could be building in the order of somewhere between 10 and 15,000 tasks in order to do that where the Linux side alone might only be 6,000 tasks. And so it dramatically increases the amount that you're building but it also centralizes it into one place where you can control it. So just walking through this map, I as the automated system says, I want core image minimal. I don't care how you build it. Core image minimal says I depend on all sorts of things. For instance, Linux and Bash. That depends on the tool chain components. The tool chain components depend on JLib C. It all just builds out, I get those components. At some point it's gonna say, I require FSBL. And so it'll go FSBL says, I'm configured for this multi-config. I'm gonna depend on the multi-config. I don't know how to build it, it's not Linux. Multi-config then takes up and just like the image recipe, the firmware says I need a tool chain. Great, tool chain builds. I need new lib. It's going to build new lib. New lib says I need a hardware description library. So it's gonna build libzil. Libzil says I'm configured this way. I need all of these fragments here. So I'm going to build AV buff, ACP mon, can PS, et cetera, et cetera, et cetera. Then I'm going to link those together and I'm then going to make that available as my libzil. And now I can build my FSBL firmware. It's built, passes it back to the Linux side as just a binary. Linux side packages it, it's ready to go. PMU firmware comes in completely different processor again. Same thing goes on, goes through the whole process, builds the tool chain, builds the new lib, configures the libzil. But this time it's configured from the viewpoint of the microblades. Comes back, the final system goes up, builds everything, has all the dependencies in place, part of the core image minimal, then constructs the items, puts them together, generates your firmware image, generates your disk image, puts it out, and now you have a full system build out of the end of that. So what we end up with then is a system that's capable of building heterogeneously. It's capable of building it in multiple ways. But it may not have been the best design. And as the one who designed it, there's problems with it. And so let's talk about the lessons quickly. Realistically, building a multi-config system is really handy, especially if you have a small team that's focused on, this is my system engineers. These are the ones that are capable of system software. They're the ones to put together, the ones that have to support the system together. However, it requires additional machine resources. You suddenly go from a build where you're building one tool chain with one set of user space that constructs it together, and it works on a reasonable, say, 16-core machine with eight gigs of RAM or something like that. And it's not a big deal. Now you've added a second tool chain build and a third tool chain build, and maybe a fourth tool chain build or a fifth tool chain build. And your system gets more and more complex. It takes longer to build. And so one of the problems that we did hit with this design is just the three cases that I've shown here. We over, about double the actual tasks being consumed. We're now building three tool chains. So that basically made the disk space required for the build process itself about two and a half times larger than it was just for the Linux build. The actual build time itself was considerably longer. So we went from hour, hour and a half build to about a two and a half hour build. When something goes wrong in the middle of the build, now the entire system fails. So you have to put that in context here. The counter to that though is that I can now share my multi-config build with my embedded software engineer. And if I share it with them, I can say, you don't have to run CoreImage minimal. You can directly run that FSBL firmware. You can skip all of the Linux side of things and build just this component, make sure your component works, and then as a system engineer, I'll make sure your component ends up in the Linux side the way it's supposed to. That actually shortcut quite a bit of back and forth through some of our debugging and whatever because normally what happens is we do the integration of it, something doesn't work in the integration, then I have to explain back to our firmware team how did I try to build it, how what was my environment like? Now I can actually share the environment and the exact environment I was on. So that's the good part. The downside is it requires more machine resources. The other thing that you may have noticed earlier is that the output of all of those Lopper steps was a binary device tree. Generally speaking, that's great. We want binary device trees because they're already compiled, we don't have to take additional steps to do it. However, as the firmware team is diagnosing things, as the Linux team is trying to figure out why a device tree isn't working properly because they're working on the Lopper stuff, we found a problem and that is when you compile a device tree from the source of the binary, you lose data. It's not a lot of data, but you lose a little bit of the data, a little bit of the formatting, and it can make that debugging process much more difficult. So one of the things that we're working on doing right now is the output of, at least for the Linux side of things, for Lopper is not going to be a DTB, we're actually going to do a DTS. And then during the Linux compilation, we will actually compile it, but that gives the system engineers the ability to say I need to inject a couple more device nodes into this thing or I wanna see what the source is that I started with versus the binary that came out to the end to make sure maybe there isn't a compiler error, that type of thing. So that was something unexpected that we definitely ran into. Another was, of course, using binaries from other build systems is absolutely mandatory in this system. It was part of the original design to be able to do that, but after we went about this, it turns out that the Vavado component that I was talking about actually has its own firmware build engine in it. And as somebody who's always built this stuff from source code, I didn't realize that. And so we need to add a way into the system that during the configuration of the machine and everything else, we can say, no, no, no, I don't ever want you to build the firmware component, I always want you to use the version out of Vavado or the version that my vendor gave me or whatever. And so this is more of a configuration versus an implementation detail because we did implement it to allow it, we just didn't expect that the default for some users is going to be, no, no, I always have to use binaries. The other thing is always generating configuration files can actually be very problematic.  Now make the following changes to these three lines because we're debugging something and it's very, very hard to work through. And so instead of configuring in the project, this is under the next steps, what we want to do is we actually want to start to generate these files in a more Yachto project-specific way. And so that means instead of that Cortex-A53's and CompiLinux file that's included from the local.conf, we're actually going to generate a new machine file and that machine file will be specific to that particular piece of hardware that the user's defined. And by having the machine-specific file, now all the users can just say my machine is X, Y, Z, they've given a name, they can share the layer to all the other users in their system and the only person that has to run this DT processor is effectively the system engineering team, not every developer who uses the Yachto project. Same thing goes with the multi-configs because the multi-configs can also be stored in a layer already. The device trees, again, we're generating them on the fly as part of the build configuration. Let's generate them and store them in the layers. Again, makes it easier to share the thing with everybody else. And then we get into this thing that what other things do we need to generate for this stuff to work properly? And this, again, goes back to the movingtomachine.conf. I already know we need to generate better QMU boot flags. I can run QMU through this mechanism right now, but there are certain capabilities that are not enabled properly. And then it's just workflow cleanups. A big chunk of this is that we need to be able to have a better way to not only generate the files, but also share them with other users and things like that. So there's a lot of work to do from a Xilinx AMD perspective. This is in a proof-of-concept type ability today. So we can use this, you can build a system with it, but there's problems. We're hoping that in the next year, worst case, two years, this is going to be the standard workflow and you won't need to use the current components to build the system. Everything will be system-device-tree-based. But we'll see what actually gets implemented based on bugs. And I ended a few minutes early. So if there are any questions, I'm happy to take them. Otherwise, you can see me afterwards. Yeah, so the question is how difficult is it to set up the first time for, say, a systems integration engineer? The initial design was that you could follow, say, a five or six-step process to do this and you'd just be able to do it. Anybody could do it. The reality is it's not that simple, with the way it's currently implemented. It's probably 20, 30 minutes of trying to understand what you're doing and things like that. The goal is we want to get to a point for the Xilinx processors that it really will be a four or five-step process. Get the XSA from Vlado or get the system-device-tree from Vlado, one of the two, and then build your device-tree processing script, run it, and this is really just a setup script. That's the entire point. Store those off into a layer or maybe it even generates the layer. And then now you can share that layer to everybody doing the work as opposed to everybody having to rerun this stuff over and over. Yeah, I didn't mention that, but that's one of the big advantages of the Yocto project is this is all parallelized automatically. We don't have to do anything special to say let's build all the firmwares at the same time or anything like that. Just the fact that that query image minimal depends on the FSBL and the PMU firmware means it's gonna say just go out and build those things. And as long as there's machine resources available and processing tasks available for the system, it will automatically build them. In the case where let's say I'm doing more of a Zen configuration where I've got multiple Linux systems that are building at the same time, if it turns out the compilers are identical, it's not going to build four copies of the compiler. It's gonna build the compiler once and then use that copy four times. And so there's a lot of advantages to the Yocto project around parallelization as well as reuse of components that other systems may decide not to reuse or independent systems wouldn't be able to reuse. So I think that's a good thing. Yes, let me pop back there quick. Yeah, so there are defaults to find inside the consumer and the provider, but the defaults probably won't be used. It's really the items that were generated by that configuration tool. And the idea being that we expect them to always be overridden unless you're doing Yocto project development. In other words, I'm developing the layer or recipe versus the system user. Yeah, it's designed to be overridden from the beginning, but it's designed to be overridden so that they are the same values for all the components themselves. And I think with that, I'm out of time. So thank you everybody else or everybody else. Thank you everybody for attending. If you have any other questions, come and find me afterwards. If you're online and have any questions, you should be able to find me in the Yocto project stuff. So I'm happy to answer questions. Thank you.


Good morning and thank you for attending this program this year the City of Davis Human Relations Commission is honoring the Black Lives Matter movement and recognizing that the long tread from this movement to Dr. King's movement has sadly not been broken. Here to welcome us today is the honorable Mayor Dan Wolk. Mayor Wolk grew up in Davis and continues to reside here with his wife and two young children. He has been on the Davis City Council since 2011 and has been mayor for the past two years. Please join me in welcoming Mayor Wolk. Thank you man. Thank you Mandel. Thank you everyone for coming. Can y'all hear me? All right great. Well as my as Mayor Davis it's I'm proud to welcome you to our annual commemoration of the Reverend Dr. Martin Luther King Jr. one of the great events of our city. First as always I'd like to recognize some some important folks in the off in the audience and if you could hold your applause until the end that would be appreciated. First we have our Senator Lois Wolk is here. From our Davis City Council we have Rochelle Swanson, Lucas Frerichs and Vice Mayor Rob Davis. We also have Supervisor Jim Provenza and I see walking in actually we have from our Parks and Rec Commission and New Council candidate Will Arnold here just sat down with his wonderful newborn so if you could give them a round of applause I'd appreciate it. So this City Council is dedicated to promoting mutual respect, understanding and tolerance among all people as many of you know and in my time as mayor we have among other things signed on to two amicus briefs to the Supreme Court one in support of marriage equality and the other in support of President Obama's immigration policies. We recently approved a task force to address income inequality in our region and I saw Gloria Partita from the Davis Phoenix Coalition here and she will be appointed to that task force once it comes back to the City Council. We implemented a restorative justice based alternative conflict resolution program for citizen complaints against law enforcement and as many of you know we took a stand against the militarization of the police by returning the MRAP. So this this council that has done quite a bit and it's wonderful that my colleagues are here to join me in that. You know the message behind Black Lives Matter is one meant to call attention to and spark a conversation about all of the ways in which individuals are left without a voice particularly black individuals and in Davis I want everyone to have a voice and I know my colleagues and everyone here joins me in that and for all of those voices to be heard because that is what creates community. You know and I believe in Davis that we have a strong community and I believe we can be even stronger and I know you know that but that strength will only come when we communicate with one another, respect one another and speak up when we see injustice and in the words of Dr. King in the end we will remember not the words of our enemies but the silence of our friends. So thank you to the speakers who are here. Thank you to the performers and a couple of sort of groups of folks I'd really like to thank. Thank you to the Human Relations Commission and then also to the event subcommittee. I'd also like to just acknowledge city staff that are here. We have city manager Dirk Brazillor who is here. We also have assistant city manager Kelly Stackowitz. We have Kerry Dyer here and the incomparable Bob Bowen here. They have done a lot to put this together. Please give them a round of applause as well. Thank you very much and I'll pass the mic back to Mandel. Thank you. I would like to introduce Kevin Carter a few things about him. Kevin Carter is a long time activist and has participated in the Occupy Movement, the Sacramento Black Lives Matter movement as well as involved in reigniting Dr. Martin Luther King Poor People's Campaign. He is also chaplain for the California Community Grants. Kevin Carter. Good morning. I'm kind of a little surprised here. I didn't know that I would be first, but I want to first give a honor to God who is the head of my life who continue and constantly sends me a message of urgency for the concern of his people. For I am one of his people, but we are all of his people and in constituting and saying that that we come to give an honor to one that believe in the father who honored his work, diligently stood to give his life and gave what we call love on the front line. Love on the front line today is a dangerous way to live because in the end no one wins when we do not come to the things that hold of the spirit of humanities and humility and the greatest spirit that holds in each and every one of us a place that holds of righteousness and indignation. For we, the people, the purpose and the promise to come to this day to celebrate this great man's work and to continue on as the body of life and the things that hold to pursuit of happiness. Just the past Saturday, we did our first, our fifth annual Poor People's Campaign in Sacramento, California. I first in 2011 in joining the Occupy Movement adopted first the Occupy the Dream inside of that movement. And the reason why I adopted Occupy the Dream is because we are the occupation of the United States of America, the only land that has the rights and the freedoms for each individual to choose from and to empower themselves into their pursuit of happiness that makes them great. And by doing that, I wanted to illustrate the most important thing in Occupy the Dream would be occupying your vote. Your vote in which the highest courts today say that it is not a right. It's more or less of something that they would perceive to give out to the individual. But I say today that these things, when it comes to that vote, is not just to take the implements out of it and then watch a nation return back to the evils of a dark past in which we came from. But in saying that, I want to also illustrate that inside of that work in the civil rights movement that started in 1963 with Dr. King and for the social justice movement of a multiracial democracy in which we see today in the March on Washington in which I had the opportunity to go to the one in 2013 of its 50th anniversary to see and hear those speak upon the things that took place at that time. But as I was listening, I understood that those that came before us was still fighting the same struggles. Jobs, justice, equality, all of these things were still on the table and they're still on the table now. And this is the reason why I continue to do the poor people's campaign for those who are less fortunate. Those that are continuing to struggle behind the evils of imperialism and capitalism that continue to lead to militarism and materialism, these things today that hold to the haves and have nots of this society. But I must say that in enduring all of this and seeing what's happening across the country also with the essence of black lives matter. When it comes to the struggle for justice, when we look at Sandra Blyne and we look at Tamir Rice, we go back to Trayvon Martin and then we look in Chicago to see where a young man was shot over 16 times in a matter of seconds. We have to say that black lives do not matter when it comes to the justice system and our law enforcements around the country because when we see the shooting take place at a Planned Parenthood and when the police tried most of all to save this person that did the shooting. It makes us think today that do our lives matter. Does it take us back in history to Dred Scott to see if we are human or are we just the elements here for the dark past or will be retreated today as the rest of society in the struggle? But it's all up to us today to think within our conscience and be questionable, questionable about what happens when we merely see a police officer shoot not just an African American but Latino or even a white person. We have to understand one thing and that is that a bullet has no eyes and it knows no names. It only knows the conscience of the user who pulls the trigger and we must be the ones that be considerable of the use of that weapon. And when we think about the weapon of mass destruction we must know that that is the weapon of mass destruction. We as a society today have been enriched by the Second Amendment for the use in the right of a gun within this fear tactics and what we see around the nation and around the world even in San Bernardino when we see the terrorist act that has happened by ISIS. But we also should remember the words of the great Reverend Dr. Martin Luther King Jr. when we look at these things and say that we must know what our enemy is thinking. We must know what they are going through. And during my time inside of the Occupy Movement when we were monitoring and seeing the lives that were taken in Syria men women and children had become a part of this death of society. But we did not pay attention to that. So today we must understand that this is what has come back to haunt us. And see these are the warnings today in which the great Reverend Dr. Martin Luther King has warned us about when we do not pay attention to the concerns of those of the needs and the necessary of those that are less fortunate not just here in the United States of America but across the world in which we lay policy when we say freedom and democracy and the things that hold for liberty and justice for all. It has to be something that we hold embedded in our hearts that we share along the way that holds for the rights of passage for the decency and dignity within our own characters. So I'm not going to be long how long but not long because we are today in a society to where we have not long to come together to resolve these problems today. And one of the problems today in our own nation as I protest in the economic capital of the state of California that's eighth in the world economy that is our March that we do here in Sacramento California on Capitol Mall. And that March we ask for everybody to come to and be a part of because on Capitol Mall is where we're all affected where they legislate and lobby to change the course and the direction of how things work socially and economically as we live our everyday lives. And one of the things that Dr. King spoke of before his death during the social justice movement of the movement of the poor people's campaign was the gold standard of this nation and the dollar. And that's where we are today when we talk about the gross domestic product. Let us know today that we all share today in the gross domestic product of this life with all of the corporations but we should not let them draw to their evils when it comes to them receiving tax loopholes and loop and tax breaks. And then we're stuck holding the pot to pay the bill while they can take more and more of our dollars and put them overseas for their own valid interest. And I say today that these things are not just they're not just for a society today that constantly works day by day and not lead and not are able to receive the things that hold for the benefits for the labor of their love. And that's what we have to remember today as a society when it comes to the things of race. There's only one race. It's the human race. And we are the human race. We are the people the purpose and the promise. And if we are to be a nation under God. Let us be a nation under the God of the God of love and not the God of hate because that is where we are today when we look at our politicians today. Not all of our politicians but some especially when it comes to the president to be elected for the new year to come. Let us take our time and measure these things to see what they are doing for you and me and not for themselves. So I'm going to leave it at that. And I want to thank the city of Davis the mayor city council members senators and the people of Davis to continue to be constant for the liberations of our generation. And this time is where it's urgently needed to where each one reach one and each one teaches one. And we become the tent of what Dr. King said that we will become at the end of the day. The purpose the promise and the people of one nation under God with liberty and justice for all. Thank you and God bless you and God bless the United States. It was a lovely word. We get another round of applause for him. Next up we're going to have a performer local performer James Williams and a producer has lived in Davis for 10 years and is returning to the varsity stage to sing and tribute to Dr. King accompanied by a well-known string musician Ron Goldberg. They will present two songs of unity and action if I had a hammer and get together. James Williams and Ron Goldberg. Morning baby. And good morning friends and honored guests pop this mic. It's my honor to be here today to commemorate the life and legacy of the Reverend Dr. Martin Luther King Jr. I sincerely believe in the visualization as a tool for change. All that humans have created has come to us through someone's moment of clarity. The enduring message from Dr. King's iconic I have a dream speech is his envisioning a day when the concept of race no longer separates nor defines. This I feel is a call to action to first expand one's mind beyond what is to what can be and then to keep our eyes on the prize and to never be dissuaded from that vision. Each of us has a voice and a tool to this purpose. We need but have the courage to start from where we are and use what we have to bring to life all that Dr. King strived for equality, freedom and justice. If I had a hammer I'd hammer in the morning I'd hammer in the evening all over this land I'd hammer out danger I'd hammer out warning I'd hammer out love between my brothers and my sisters all over this land for my sisters and my brothers all and I got a song of justice the bell of freedom it's a song of sisters and our brothers home for sisters and I think we all of voting age have a golden ticket and it is our ballot so I hope in this year's election we will all of our choice for me the candidate of my choice is whoever shows the most love to the most people and that's what we need right now. Love is but a song we sing you can make or make the angels cry though the bird get together try to love one another right now if you hear the song I sing you will understand we hold the key right in our trim and it's at our command we get together kind of love you can sing with me oh come on people now smile and get together try to love one another right come on people now smile together try to love one another right she is a retired elementary school teacher mother of three grandmother of two and the wife of a retired university administrator Miss Jones will share stories relevant to the movement Gloria Jones I am honored to to be at any place where people are gathered to celebrate Dr. King the story I've written for this occasion is a new one for me so be patient but like with many stories sometimes you have a whole lot of fact and a little bit of fiction sometimes you have a whole lot of fiction and a little bit of fact this is a mix of the two the story I'm going to tell you is entitled the chasm and I would like for you to go back in time with me to the year of 1959 in a little town let's call it Emory Forge somewhere deep in Virginia in the Allegheny mountains and it was a time before the powerful waters of the civil rights movement would bash through the dam of legalized segregation at least on the parchment and papers of our government anyway and we're going to go into a little tiny classroom where the children are sitting at attention wrapped attention eyes focused forward hands folded smiles on their faces because it was Friday and on Friday their teacher their teacher Mrs. can you still hear me their teacher their teacher Mrs. Brown always brought them chocolate chip cookies now not just any chocolate chip cookies but her homemade chocolate chip cookies and so they were excited that's the way they ended up the Friday and add to that they had come to the chasm in their English book life just didn't get any better than that now chasm was a vocabulary word and this Brown did dearly love words chasm meant a gap or a breach or a void and since Mrs. Brown loved words so much the children tried to learn them because they loved her so she passed out the cookies and they were eating their cookies and enjoying their cookies they were in chocolate chip heaven and Mrs. Brown decided that she would go ahead and let them know what the next week would be like what they'd be working on next week and she said alright children next week we are going to be tackling the information that was torn from our English books thus creating the chasm now most of the kids were too deeply involved in chocolate chip cookies and sugar to care what she said or even be listening but there were a few who stopped and midchew wait a minute oh Mrs. Brown how come we thought that since the information was missing that we just wouldn't have to have English class next week Mrs. Brown thought about this she was thoughtful for a minute she looked at them and she said children let me ask you a question why do you think that this information is missing why do you think you have a chasm in your book hands shut up all over the classroom and mind you they're still eating so Henry answers first and he goes it's because it's probably just not important and of course he spit crumbs across three or four desks but once Henry had spoken up little Oteria sitting by the window she felt emboldened to speak up too and she didn't speak up too often but she said it's probably because it's too hard now for Oteria a lot of things were too hard but once she held her hand and got her through it she was okay Mrs. Brown listened and she considered what they were saying and she thought about it and then she tossed out another question she said kids do you think that the chasm exists when these books are in the white school across town they were silent for a few minutes and she continued she said because remember this is where we get our books only after they have used them for many years on the other side of town instead of throwing them away they become our books to study from the children were still silent she could tell that they weren't sure what they thought about this so she said okay let's take a vote those of you who believe that the chasm existed for the kids across town raise your hand hands went up and then they came down and then they went up again and then they came down and there were little discussions and she could tell that they really weren't certain what to think and so she understood that she had to explain to them the situation the children in answer to the first question there are those who do not wish you to have the full breadth of knowledge that this book has to give and so they removed this chapter and other chapters and in doing so they have committed an injustice against you in answer to the second question the children across town do not face this chasm they are generously given this information and it is required of them to learn and to know this because this was a chapter on verbs and verbs are very important the use and the use of verbs is important in any communication that you're ever going to want she said much information is taken from our books or torn out and all of that is unjust but verbs are our engine words they are our goal do be speak stand words and they matter the children listen to this they put down their cookies a lot of the chewing ceased because they understood that what she was saying to them was important and necessary for them to know and so for the next two weeks they hit verbs I mean they got into it they enjoyed it they learned all they could they became good at these things called verbs these engine words and at the end of those two weeks Miss Brown put a very special sentence on her blackboard and this is the sentence that she wrote I pledge allegiance to the flag of the United States of America and to the Republic for which it stands one nation under God indivisible with liberty and justice for all and after she put that on the board she looked at those kids and she said can anybody tell me what the engine words in there can anybody find them and little Stewie who said way in the back and didn't like English much because he preferred math and science raised up his hand and he said I see it Miss Brown I see it it's pledge it's the only engine word in there and she said oh hallelujah thank God because if Stewie got it everybody got it and she was glad because she said children you have to understand this that any time you pledge you give or vow your loyalty and obedience to an idea to a nation with the idea of liberty and justice for all anybody who slaps their hand across their heart and says that pledge is giving their loyalty to the idea of liberty and justice for all not just the few and I want you to know children that just as verbs matter so you matter just as verbs have a very special and essential place in each sentence so you have a very special and essential place in the world in your community and in this nation and in everything you do think and say you must keep that in mind and let it be known as these children grew and the years went by and they became aware of and a part of the civil rights movement they would one day read a letter from a Birmingham jail written by a man named Dr. Martin Luther King in which he says an injustice anywhere is a threat to justice everywhere and they would understand and they would be some of the people who decided to go, do, be, speak and stand for what is right thank you thank you Gloria Jones for that wonderful story I'm thankful for the pledge that everyone showing up here is making I feel the love in my heart from that please join me in welcoming Benar Sinha Pashala sorry if I messed this up for a poetry reading Dr. Martin Luther King Jr referred to India's Mahatma Gandhi as the guiding light of our technique of non-violent social change during Gandhi's movement the teenagers of freedom fighters formed a group to work as hidden messengers they called themselves the Benar Sinha or monkey army continuing in that spirit our first poem is Invictus by William Ernest Henley Invictus is Latin for undefeated and that theme of an invincible soul is repeated throughout this poem the poem reminds us of the time when we were living in the world when we were living in the world we were living in the world of this poem the poem reminds everyone that our will is unbendable no matter how insurmountable the odds we face it sustained Nelson Mandela through 30 years of imprisonment and helped to remain peaceful not bitter Invictus by William Ernest Henley Invictus by William Ernest Henley In the felt clutch of circumstance I have not winced nor cried aloud under the bludgeoning of chance my head is bloody but unbound many poems displayed the way African-Americans were treated before the civil rights movement like Dr. King we need to keep our dreams alive even if it feels at the time that they are beyond reach if we don't have the courage to dream we can never hope to move towards their fulfillment dreams by lips and ears hold past the dreams for if dreams die life is a broken mean bird that cannot fly hold past the dreams for when dreams go life is a barren field frozen with snow where the mind is without fear is a poem by Ribinthe not Tagore a multilingual poet and author from India won the Nobel Prize for Literature in 1913 it expresses Tagore's hope that the freedom this country will earn from the British rule will also set free the people for themselves and build a better tomorrow with self-respect where the mind is without fear by Ribinthe not Tagore where the mind is without fear and the head is held high where knowledge is free where the world has not been broken up into fragments by narrow domestic walls where words come out from the depth of truth where tireless striving stretches its arms towards perfection where the clearest dream of reason does not want to slip into the very dust of sin from death habit where the mind is led forward by the into the act for wiping thought and action into that freedom my father let my country awake to those young people that's our future we should give them another round of applause I now have the privilege of introducing our keynote speaker who will represent from Selma to Ferguson criminal justice is a civil right Natasha Minsker is the director of the ACLU of the California Center for Advocacy and Policy the center is responsible for advancing the ACLU's civil liberties and civil rights policy goals in the state capital and advocates on a broad range of issues including criminal justice education, freedom of expression immigrants, rights LGBT rights privacy, racial justice reproductive justice and voting rights Natasha Minsker good morning thank you very much for inviting me today it's truly an honor to be asked to speak on Martin Luther King Day and to join your community celebration and I just deeply touched to be asked to be here and thank you for that today we recommit ourselves and our community to the goal of racial justice and ending racial oppression to achieve that goal we must radically transform our criminal justice system in the last few years the black lives matter movement has brought to the national consciousness the reality of violence endured by people of color at the hands of law enforcement every day in this country thanks to the activism of thousands of people people who took to the streets and who blew up twitter and facebook with the message that black lives matters I bet all of you can bring to mind the faces and the names of african-american men and women who were unjustly killed in the past two years like Eric Gardner names like Tamir Rice names like Sandra Bland and so many more and this being Davis I bet most of you can bring to mind the numbers that show the compelling need for a change to our criminal justice system numbers like this one in four african-american men in this country will go to jail or prison a young african-american man is more likely to be imprisoned than to graduate from college numbers like this the US has 5% of the world's population and 20% of the world's prisoners I think probably all of you know we have a problem and we need to fix it knowing the names and numbers but it's not enough to know why we have a problem and what we need to do to fix it to understand how to fix it we have to understand how we got here we have to understand our history we have to understand the history of how the criminal law has been used as a tool of racial oppression in this country from the very beginning it begins in the 1600s when the criminal law was used to define and enforce the status of being a slave from the very foundation of our country the legal system was used to categorize race and to classify african-americans and africans as second class citizens and even subhuman the criminal law was different from the 1600s going forward based on race some activity was only a crime or black and all of the punishments were worse if you were black this was explicit in the law take for example in the 1600s in Virginia the law said that if an enslaved human being resisted arrest or resisted the authority of a white slave owner then it was lawful to kill that person think about that one of the first laws in our country gave the police the legal power to kill black people for resisting white oppression this had the most impact on african-americans in our country but it also impacted Native Americans and immigrants communities there's a case from the 1800s in which a court actually takes up the question of is someone who is Native American a person we have a law that says if you are detained and held in custody then a person can go to court and challenge that detention as unlawful and unconstitutional we all have that right but before the court could address whether the tension was lawful it felt the need to answer the question of whether a Native American human being is a person think about a legal system where that's not just an acceptable conversation but it's considered a necessary conversation the end of slavery did not end the narrative that african-americans and indeed all people of color are second class citizens and it didn't even end the legal structures that enforced segregation and the second class status of african-americans instead the end of slavery brought the new Jim Crow era and we saw laws that continued to explicitly divide people and explicitly make being african-american a second class status in this country and I think it's critical for people to understand that these laws of segregation these were criminal laws it was a crime to use the wrong bathroom you know I think that a lot of us when we think of Rosa Parks sitting down on that bus and going to jail and we think of Martin Luther King writing the letter from the Birmingham jail being arrested for civil disobedience I think a lot of us think it's like today when we engage in civil disobedience today we march into the streets and we refuse to move and the police order us to disperse and we are arrested because we are blocking the street that's not what was happening in the civil rights movement Rosa Parks was arrested for being a black person sitting in a place reserved for white people our criminal laws made it a crime to be black in places of white privilege think about that during this time the Jim Crow era we continued to have legally based segregation explicitly based on race but we also saw the increasing use of proxies particularly poverty as a proxy for race through things like a poll tax a poll tax is basically saying you have to pay to vote a poll tax is not explicitly based on race but it functions to exclude primarily African Americans from voting and by this time by the time of the early 20s and 30s and 40s in this country racism and racial bias has completely been baked in to our criminal justice system segregation and so by this time we don't have laws that explicitly say you can't be on a jury if you're African American but by this time the idea of an African American juror is just seen as crazy to all the people who are in the criminal justice system and so there are none with the civil rights movement of the 50s and 60s we see the dismantling of the legal basis for segregation and the faced divisions in our law go away and some of the proxies go away so the signs that say whites only come down and the poll taxes abolished but this change of the civil rights movement in the 50s and 60s has very little impact on the criminal justice system and then in the 70s we see a tough on crime mentality take hold of the American people and politics in this country and many people think it's not a coincidence that this tough on crime mentality took hold just as the legal basis of segregation was being dismantled and so through the 70s and the 80s and the 90s we see this incredible expansion of our criminal laws things that were not crimes before become criminal there actually was a time in this country where it was illegal to sell certain drugs but it wasn't a crime to possess a small amount of drugs and it wasn't a crime to use those drugs and then it became a felony so we see more behavior being defined as criminal we see longer sentences for all kinds of crimes and we see the rights of people accused of crime taken away particularly here in California as an initiative after initiative that takes away people's rights and so we see an incredible ballooning of the sheer number of people impacted by the criminal justice system the sheer number of people who are defined as criminal and who face long criminal consequences and because the racial bias has been baked in from the beginning when you increase the number you just expand exponentially those disparities and so here we are today today we have a system in which our criminal justice system operates as a massive system of control for people of color particularly African Americans and Latinos it operates as a system of control through sheer numbers of people who are literally controlled by the criminal justice system one in four African Americans right now is in jail in prison on parole or under some form of community supervision literally controlled by the criminal justice system and it operates as a system of control through the heavy police presence in communities of color a police presence that is not there to investigate crimes against people of color as the crimes in which African Americans are victims continue to be the least likely to be solved so there's a heavy police presence there to police and control and our criminal justice system operates now as an incredible system of control by limiting the life chances of people of color who have been touched by the system if you have a felony conviction in this country it is nearly impossible to get a job and if you don't have a job it's impossible to have a place to live how does this all work now because we have dismantled the explicit race based laws those aren't there so how is it that it still works that our criminal justice system continues to have disproportionate impact on communities of color particularly African Americans and Latinos it works through implicit bias it works because the effect of 200 years of enslavement and 100 years of legally being defined as second class and having your identity criminalized 300 years of legal oppression has created in all of us implicit bias as a result of all of that legal system and real oppression we now are burdened by an unconscious association between crime and race and it doesn't make us bad people it just makes us people but we have to address it because that implicit bias operates in everything we do and when you look at the criminal justice system that implicit bias operates in police in who they choose to arrest it operates in prosecutors and who they choose to charge and what kind of charges they decide to bring it operates in defense lawyers in whether they believe their client and how hard they fight for their client it operates in judges who decide whether someone goes home or stays in custody and what sentences will be imposed and the racial bias in our criminal justice system also continues because poverty continues to be a proxy for race African Americans continue to have the least financial resources in this country and African Americans are the most likely to live in deep poverty our entire criminal justice system is based on economic inequality it begins with bail if a person is arrested then they can post bail, money bail and get out and so a wealthy white person like myself if I'm arrested I will bail out I will go home I will keep my job I will be with my family I will hire an attorney and I will work with my attorney from home continuing to make money in my job and get a better outcome someone who is in jail and can't afford to pay bail stays in jail and that person loses their job loses their home sometimes loses their family and they are under enormous pressure to take a deal and get out as soon as they can and try and restore what they can of their life our entire criminal justice system is based on economic inequality from the very beginning so how does knowing all this help us fix this problem well for one it helps us understand the scale of the problem and in case I wasn't clear the scale is large the scale is big it is in fact enormous to achieve racial justice in this country we must fundamentally transform our criminal justice system it also helps us understand what kind of reforms will actually make a difference it's not enough to talk about criminal justice reform in terms of the money that will be saved by reducing sentences the money that we can invest in education instead of prison that's true and it's important and we should talk about it but it's not enough it's not enough to talk about criminal justice reform it's simply about numbers there are too many people in prison yes there are and there should be fewer but that's not enough if we actually want to fundamentally transform our criminal justice system then we have to talk about implicit bias and we have to talk about economic justice we have to address the daily indignities that people of color continue to endure at the hands of the police we have to address the structures that tip the scales of justice away from the poor now that probably sounds pretty overwhelming but it's actually not because we know what to do and knowing what to do is half the battle we know what to do all we need is the will to do it and more and more in this country people are demonstrating that we do have the will last year here in California we passed the racial and identity profiling act this was a 10 year effort 10 years California now has the strongest law in the country addressing racial profiling by police a law that is proactive and looks to community based solutions to actually end racial profiling we achieved that goal and passed that law because people took action everyone expected that bill to be vetoed by the governor but we didn't just wait for the governor to make up his mind people took action they marched on the Capitol they held a sit in at the governor's office they held a vigil in front of the governor's office for days and on the day they were going to start a hunger strike he signed the bill when people act, we move mountains and so today we commit ourselves to take action to achieve racial justice we know what to do we have the will to do it and through our collective action we will achieve the dream of racial justice in this country thank you that was a very lovely word those that could stand to give her a hand Dr. King would have been proud thanks Natasha we are going to conclude our program today with music played by the ever popular Davis freedom singers when they are done everybody is encouraged to participate in a short freedom march through downtown Davis weather permitting the march will end at the E Street Plaza where you can gather for music and community fellowship thank you in advance to the freedom singers and thanks to each of you joining us today to celebrate diversity let us all work together to end discrimination in all its forms and to live the legacy that Dr. King left us yellow freedom singers welcome for another year we're all back again wasn't that last speech fantastic it's so good to have people like that out there for us well we're the freedom singers and we thought it would be a good start off with we shall overcome if you feel like standing up to sing it let's do that yeah but don't read those words you know everything just this singing we shall overcome we shall stand together we shall live in peace we shall overcome someday we want you to really get involved because we're going to sing a trilogy three civil rights songs all pushed together and we would love it if you'd stand up and if you'd clap and go crazy when you're singing you're participating you see we're going to start with what are we going to start with we're going to start with you just catch on it's easy to sing you don't need to look at words or anything else it's going to be the key


40 Oh, no, thanks for him to a yo What's good George Baross back again with another video, so I'm gonna check out tag team moves in combos Volume 7 by BDWJ forever shout out to the homie for always making the dope Wrestling Compilations man, and we appreciate all that he does for the wrestling YouTube community. This should be a good one I'm always down for some good tag team wrestling moves some combo moves. It always looks cool especially if you know depending on how it's set up it always looks like a Devastating move when you get in tag team by two wrestlers and they send you to the Gulax with something some type of special Combo, so we're gonna check this out. Appreciate all love and support you guys are shown on the channel Right into a right into a ankle lock combination, damn Oh, not bad not bad That's that's nice That's nice. Oh Oh He set him up for the cutter. He's just sitting there and there's nothing you can do just gotta wait to get hit with the cutter That's damn.  Oh my god That was nice to Oh Wait a minute not a crowd is just quiet. Those are some cool moves and ages in that.  Damn. Oh, no. No. No, not no Wait, wait. Oh my god, they formed him. They formed him That look brutal bruh That's it one two three that was nice. Oh, oh, no, this is not about to be good for my boy. Oh Oh That was cool. That was cool.  That should be a one two three victory. Damn Hickriss back on his feet full Nelson cinched in on Dark Sheik Oh You know throwing up eggs just casually throwing up exes throughout this video day Oh, they gave me some speed. Oh, you stopped it. Oh Oh, oh nice cross body Yeah, that's it What is going on here? Yo, is she she was carrying two women down that's impressively strong. Oh my god Up on the shoulders. I like how you just sit in there He was just waiting There's nowhere for him to go his his the opponent's knees is up So when he gets grabbed all that force just goes right on to that person's knees. That's that's crazy, bro About the spine Oh, oh, maybe jumps right over the top rope not the middle finger Oh, whoa, what's happening? Oh That was that should have been He missed best friends tag team wrestling moves was that oh wow Damn these two working together like a machine. Oh my god And look what he did he caught him. Oh That was nice That was nice. Yeah, I like that one. That should have been it. Yeah, I like that one to oh Up here come the super kicks. They love them some super kicks. Oh Yeah, one two how did he kick out buddy right into an ankle lock reversal The spear clothesline combo, that's what it looked like. Hold on. We got to see that again That was pretty cool the spear clothesline combo. Look at it. Fuck. Nope. Oh my god My god, I'm the guy outside the ring going crazy. Oh That's it one two Geez, bro, this was a good one. This was This was definitely a good one man gonna go ahead and give this video a like because it's BdwJ forever. He deserves a like on this particular video. This was a very good one Man cheese, bro, just Somebody's tag team combo moves man, they just be looking hella brutal And I don't even be knowing how some of these individuals kick out comment down below Let me know what was your favorite tag team Combo move you seen in this particular video, but I appreciate all of us for you guys showing on channel roads one fifty And I'm still in speed a huge wrestling champion world appreciate Jackie me


Hi friends, welcome back to my channel and welcome if you're new here. Happy Saturday. It is Saturday, so that means it is grocery haul day. And I had to do some shopping. I actually went to three stores this week. I went to Trader Joe's friend buyer and I also made a big haul at Costco. My bi-weekly, monthly, whatever it ends up being, that's what I picked up from my local Costco. So I have quite the haul for you this week. I'm also going to share with you what I am doing for meal prep as well as what's on my menu for the week for dinners. So let's jump right into this week's My WW Grocery haul. I'm around from my given disaster Speed away from the holy mine So my first stop was Trader Joe's, mainly again for some produce, but I did find a couple new fun things. So let's jump into Trader Joe's. First I picked up this blue hyacinth from a woman owned company. It's in this cute little glass vase and it's going to flower to be one of these beautiful hyacinths. It was $2.99 at Trader Joe's. And I thought that it would just bring a little color into my life while I'm stuck at home. And I thought it was really cute. It'd be a great gift for Mother's Day or Easter. And then I'm always picking these up because I love them. These are the Trader Joe's organic milk chocolate caramel eggs. I love these. They're individually wrapped. So portion control is super easy and they are two smart, I'm sorry, three smart points per chocolate egg. Oh, they're so delicious. I picked up another bag of that. Also some instant coffee. I'm gonna try that whipped coffee that's all over TikTok. I don't have TikTok, but I actually saw it on YouTube where you whip it with instant coffee. So we shall see. I'm probably gonna do that on Sunday. So you'll see that in my what I eat in a video next week. So I grabbed some instant coffee from Trader Joe's. I also picked up some more of the Applegate Smoked Turkey Breasts. It's the best price at Trader Joe's. It's about $1.50 less than anywhere else. This is zero points on both blue and purple. It's organic. It's delicious. I love it. And then another thing of the Trader Joe's organic feta because we've been using feta a lot on salads. And I plan on making some more salads this next week. Also some unsweetened applesauce. They have organic for a really good price at Trader Joe's. I actually need this for a couple of recipes. And everything else is produce. Starting with this freaking ginormous papaya. When I got up to the checkout, he says that's the biggest papaya I've ever seen. So I'm really excited about that. I've really been enjoying papaya as a fruit. So I picked that up. I needed both a lemon and a green Granny Smith apple for a recipe. I also needed some baby spinach for a recipe. And then I grabbed this organic baby lettuce mix so that I can make some salads this next week. Asparagus, of course. I like their organic asparagus and it's super affordable. Also some organic tomatoes on the vine. I did need some tomatoes for recipes. Bananas, I need this for a recipe. And then I also wanted to have these so I can get these really, really ripe to make smoothies.   Those are my favorite to roast up in the air fryer or the oven. So that is everything. That I picked up for the week at Trader Joe's. Next up is Costco. It's been a couple of weeks and I needed a few things for the house. I decided to show you guys everything I picked up because you always say show us everything even if it's not food. So the only thing missing is a case of Coors Light. My husband's already put that away. So let's take a look at Costco's grocery haul for the week. I grabbed these shoes. So I bought a pair of these last year at Costco. And I really like them. They have kind of a tennis shoe sole but they're a sandal. They're really, really comfortable.  They're awesome. And they're on sale right now for $10. So I couldn't pass them up. They look pretty similar to the ones I got last year but 10 bucks. I told my husband you can't pass up sandals for $10. Also I needed to restock my fabric softener so I went ahead and grabbed some bounce. We have some organic butternut squash. I need this for a recipe and this is honestly one of my favorite things to just roast up. It's so delicious and it's such a great price at Costco. Also organic blueberries. I decided to do blueberries and papaya for fruits for the week. So I picked those up. Best price again for organic right now out of season at Costco. Some more eggs. We've been loving these Wilcox Omega three eggs. These are so good. And it's only $6 for two dozen which is generally what I pay for one dozen at the grocery store. Also I found these. These are the Sofantino's Paleo Organic Basil and Chicken Cracked Pepper Sausages. Don't these look so good? These are only four points. And I thought with the weather being as beautiful as it is right now we could grill these up on the grill. You could mix this in with pasta or veggies. So I grabbed those. I thought might as well get them while I see them at Costco. Also some frozen fruit. I found this organic, a pear-ficked peach blend. So it has pear, peaches, pineapples and blueberries. I don't like the blackberries in my smoothies because the seeds are always left behind and I just don't like that. So I picked this one up. I thought this would be a good blend for smoothies. Restocked my minced garlic because apparently we love this with two people in our house. We went through this in just a few months. So apparently we really like our garlic. So I grabbed that less than five bucks at Costco. Restocked my vitamins. This time I picked up the calcium because they were on sale. My husband loves ketchup, clearly. I do not eat ketchup. And if I do, I prefer the Primal Kitchen, no sugar added. But these were like $9 for three of them at Costco. So I went ahead and grabbed them for him. Also a killer price is the Kirkland Organic Raw Honey. It's both organic and raw and you get three bears for 10.99. That is such a fantastic price. So I had to pick that up. Grabbed another one of my chosen foods mails just to have in the pantry. My husband really likes this mayonnaise. So I've been making all of his sandwiches with it as well. And we no longer buy any other mayo. So I picked that up. And last but not least, heartburn meds. Gotta have them. So that's everything from Costco. So let's jump into my last stop which was my local Fred Meyer or Kroger store. Here is my haul from Fred Meyer. I'm gonna show you everything for my family. My husband and myself. Some of it obviously I don't eat but I wanted to share it with you guys because we all eat different things. So I wanted to give you the points on some of the other snack type of things that I pick up for my husband. So let's take a look at Fred Meyer. So I picked up some sponges so that I can wash my dishes. Also some canned food. I have some garbanzo beans for a recipe. And also some of the simple truth organic lentils for a recipe. Also I needed poppy seeds. And I was going to get these in the bulk section while there is nothing in the bulk section right now. So I had to pay $4 for what I need of poppy seeds. But that's okay. We'll have it on hand for other recipes. Also I needed some almond extract. So I just grabbed this Kroger brand imitation almond flavoring. Picked up another bag of the Kali Power. New chick on the block. We love these. My husband even likes these. So we've been putting these on salads. If you aren't part of my website, definitely go over and join over on my website. I have a couple of really good salad recipes that I use this crunchy chicken on. So check out my website for sure. And we have been loving this. Also grabbed a little ham. This is an uncured ham. We got this so that we can have ham on Easter. Just even though we're not having Easter, we decided to do a traditional Easter dinner and go ahead and have ham. Also some stew meat. And of course I can't find any red meat that's organic other than one store in my town. And just with everything going on, I didn't want to go to more stores than necessary. So I went ahead and picked up some stew meat and they had zero ground turkey that was organic. So I just picked up some Kroger 99%. There's a recipe that I add zucchini to the turkey burger and it makes it nice and moist. So I figured, since I can't buy organic, let's go with 99%. So it's zero points. Couple of yogurts. I've just grabbed some too good. They didn't really have much for yogurt. I was looking for more of a full fat. But I thought these would be good just to have on hand. So I have a coconut and a vanilla. I did find though the Maple Hill Organic 100% grass fed whole milk unsweetened Greek yogurt. You guys, this is almost $7. That's so crazy to me. You can buy non-fat for a lot cheaper, but I only eat the full fat. So $7 it is. So I grabbed that. I like this in smoothies, smoothie bowls, in my quinoa bowls. Just really like to have some full fat yogurt. Also picked up kombucha. I wanted to have this tomorrow just to have it. So I grabbed a gingerberry kombucha. Four pack of cut green beans. These are for the two furry critters in my family. They get green beans when we have dinner in place of table scraps. So I just picked up four cans. Also for my husband, he loves these little bags of the circus animals. You guys have seen me haul these before. These are great if you have kids. They're great for a lunch. They're individually wrapped. So it makes it easy and portion controlled. So I grabbed those.   Here we are with regular ago buttermilk waffles. Some bread for my husband. I grabbed the sweet Hawaiian because he's actually having ham sandwiches. And I thought this would be really good to have kind of a sweeter bread with the ham. Speaking of ham, I grabbed a pound of the private selection black forest ham. And that's for my husband's lunches. I have a spaghetti squash here. That's for a recipe. Some frozen carrots for a recipe. And then I also grabbed the little bites party. You know my husband loves these as well. So those are for his lunch. And everything else is some produce. So I have some organic green onions for a recipe. Some organic collard greens. I'd actually never bought collard greens. So I really didn't even know what I was looking for. So these are the organic collards. I also grabbed organic golden beets. Look at these suckers. These are huge. And I need beets for a recipe. And you guys, these are so affordable. I paid over $3 for little tiny ones at my health food store. And it was $3 for this big bunch of organics at Fred Meyer. So that is a fantastic deal. So that's everything that I picked up at Fred Meyer. Oh, I think I got some paper plates too. But that is everything for the week. So let's jump into this week's meal plan, meal prep. And let's go through that Cariel meal planner. Guys, I forgot to show you these. I picked these up also at Costco. They were in a bag that I missed. Oh my gosh, hello. So I grabbed another bag of the Inno Foods coconut clusters. You guys know that I absolutely love these. I eat about a half of a serving at a time because they are a little bit higher in points. But oh my gosh, I love these so much. They are literally made with really, really good ingredients. And then look what I found. Organic crispy coconut rolls. Now these are not the same as the ones I used to buy. So I don't know what the points are. I have a feeling they might be a little bit higher but I'm here for the coconut rolls. So I grabbed these two things too while I was at Costco. Here's this week's menu plan. We have the week of April 11th through April 17th. So starting today, Saturday, we go out to dinner. We've been trying to support a local restaurant by doing some sort of takeout or pickup while we're under quarantine. So we're gonna do that. Tomorrow I'm making asparagus quinoa salad with feta. I'm really excited about this. I think I may pair this with chicken. My husband is not the biggest fan of quinoa so I'm hoping that he'll eat this. Let's hope. And then Monday is going to be leftovers. Tuesday I'm going to be doing spaghetti squash meatball casserole. This sounds so good. Again, I can't wait for this. On Wednesday I'm going to be doing lentil salad with beets.  Now my husband doesn't like beets either. So again, I'm hoping he'll eat this. We'll probably pair this with some sort of chicken or maybe those sausages I picked up at Costco. Thursday's leftover night and Friday I'm gonna be doing an instant pot beef stew. That's what I picked up the beef chunks for. And then on the back of the weekly menu is where I plan out my meal prep. So for breakfast this week I'm going to be doing baked oatmeal cups. These sound so good. A clean eating delicious breakfast. Lunch is going to be turkey meatballs with onions and apples. I'm really excited for this. I've been wanting meatballs again. You guys know I love meatballs. And I thought this was a little different with onions and apples for a snack. And this I'm really excited about. I'm gonna be making lemon poppy seed bread. So you guys have to stay tuned for this on Monday. This recipe is so low points. You're not even gonna believe it. And then I'm gonna make some crock-pot marinara. So I'll probably show you guys that as well in case you haven't seen me make the Skinny-ish dish crock-pot marinara. So that is what is on the plan for meal prep. These are my dinners for the upcoming week. So now let's do a quick walk through the Cariel meal planner. So this is the Cariel. This is one of the brand new covers that was released in 2020. You guys, I love my Cariel so much. You know that. This is the second one that I purchased. This is basically what this looks like. It has several tabs and resources for you starting with the resources tab. This is where you can jot down your favorite meal planning blogs, recipe sites. Make sure you put Jen's www.journey.com right there because that is my recipe website. Next up is the inventory tab. This is where you can inventory your freezer so you can write down the item and the date that that item was frozen. You can also do your pantry, the item and the expiration date, and your spices. So again, I wrote my spices that I don't use very often. I wrote the expiration date so that I could at a glance know what I need to throw out and buy new up in my spice cabinet. So I really like the inventory section. And then there's the yellow tab which is the meal plans. That's the tab that we were just under. So let me go to the current month here and I'll show you guys kind of what I do. So there is a month at a glance so I write down all of my dinners for the entire month. That way the night before I can take a look, make sure I have the ingredients number one and two that I pull out anything out of my freezer like meat that needs to come out of the freezer for that night's dinner. I also always include a couple of extra recipes in case one of my leftover nights there isn't any leftover. So I always have some backup recipes as well. And then each week you have a weekly menu. You'll jot down, you can do all your meals, breakfast, lunch, dinner and snacks for the entire week. There is a detachable grocery list. You'll notice that every week this is this current week mine's missing because that is my grocery list that I take with me to the grocery store. So it's really easy. Everything is in one area for you, easy to plan and stay on track. Then there's the gatherings tab. Now this looks extremely similar to the meal planning tab because this is for you to plan events. So Easter, Fourth of July, birthday parties, you can write down all of the food including what you need for your kids and supplies. And then again, a detachable grocery list for you to take to the store. Last tab is the notes tab. And of course, those are just some really pretty note pages for you to take some notes. And then in the very back is a two-sided kind of like a peachy from, remember those? Remember those from school? Like a peachy folder. And I always just put my recipes for the week in there and that way they're right on hand when I go to make the dinner. So that is my Carrie Elmeel planner you guys. If you need some help planning and staying on track, making sure you have what you need on hand, highly recommend. I do have 10% off. I will put that here on the screen. You actually have to click the link in the description box and then at checkout enter my code. But you do have to go through my link down below in order to get the discount. But highly, highly recommend. Thank you for joining me on another weekly my WW grocery haul. Hoo, we did some shopping my friends. We did some shopping. But I am stocked up for the week. I have some excellent recipes coming out that I'm super excited about. Make sure that you do head over and take a look at my website. Again, I'll put that here on the screen for you. Click that description box as well so that you can head over to my website, join my Facebook group and see all the links and discount codes to some of my favorite things. They're all right below this video in the description box. If you're new to my channel, welcome. I'd love it if you'd stick around. Make sure you hit that little subscribe button and that bell just so you're notified whenever a new video is posted. You don't wanna miss out. Give this one a big thumbs up if you love grocery hauls and leave your comments down below. Let me know what you're most excited about for this week's meal plan. You guys will see meal prep up on Monday as always. I hope you have a wonderful rest of your weekend and I'll see you in my next video. Bye guys.