 M'hi veig. Is working? Hello to my first talk, the first talk i du Eva. I'm a bit nervous. This talk is meant to be an explain a little bit how to do it successfully for the first time. A bit louder, ok. És a dir, és a dir, com s'ha de ser succefòl, per la primera vegada, amb la mainlínia. T'he de dir que no hi ha cap secret per fer-ho. La only thing que has de fer és començar a treballar amb la mainlínia a l'anterior fase del desenvolupament. El meu nom és Enric I'm an electronic engineer I'm a hardware and Linux enthusiast kernel contributor and I have more than 5 years of experience bringing up different kinds of boards mainly animal boards I did also the bring up of some TI boards like OMAC3, OMAC4 OMAC5 and also some from FreeScape In this talk I want to introduce what is board bring up for those that maybe don't know and then also I will explain the process involved to develop a new board from the hardware side and to the software side and I will try to explain the problems I see that sometimes in this development happens and how mainline can help us to improve this process and at the end I will try to expose some lessons learned so what's board bring up for those that don't know board bring up is the process of validating both electrically and functionality a new circuit board design including the porting of the boot firmware and the development of a board support package this process sometimes takes so long and sometimes your product never gets to the market because fails in this stage to start developing a new board the first step is make the hardware as probably you know the the first step is make the specifications but when you start to developing the hardware you need to at the first moment start with the components selection basically here you what you do is select the different components that you need to fit your requirements as a second step is you need to make a circuit design that is called the schematic normally you have an schematic page for every block of your design then you need to generate the bill of materials also call it boom this normally it's auto generated by the schematic software so it's not a problem it's a list of the different parts and the different options that you can fit then you need to make the PCB prototypes and this is a two steps process because the first time you need to to create the better printer board and next you need to solder all the components onto the board and finally there is the certification the certification depends on on the country and generally is not done at the first stage or at the first prototypes is maybe done later when you have the final product or you are close to the final product once this is done starts the work for the software engineer or the software team and the software team generally what does is do the field work programming if there is some microcontroller they also take care about the boot loader the kernel and the device drivers of course then need to define and finally the application development that fits all in your new product so what's the problem with this process so the problem with this process is that your sometimes or the hardware team produce a first prototype to the software team the software team found some errors found some errors that are hardware related so repos the back goes to the hardware team does a board spin and then you have the software testing again you found another back that is a hardware problem and you need to do another spin another spin the thing is that if you plan 2 or 3 spins of the board always you have 3 or 4 more spins so there is people here that is doing hardware or has this ever happened to you yes it's very usual to do the spins and sometimes even when you are at the end of the product it's the time that arrives the marketing team and says ok but I need to do this please it's a small change but you need to do another spin to accomplish the marketing team if this ever happened to you this is very normal this happens if not you are my hero but I think there is no heroes here and then the next question is how we can do this so what I saw in my years of experiences that the work between the hardware team and software team they not work together they work together only at the latest stage so the suggestion is introduce the software team at the earliest stage of the development what does it means this and the big question is how mainland can help us to improve this process I think that the software team must be introduced in the in the whole design process of a product from the beginning but for time I want to to talk on this two phase the component selection and the circuit design schematic and explain a little bit how the software design can help the hardware team to do better this phase in the component selection of the board the principle that you need to decide is the main processor in this step it's very important that PGA so the socket send twice the width per the height de veritat i un periphere de desqüències i et vol dir si la part de l'insul amb el lane... i si és una part de l'insul amb la part d'insul amb la part d'insul amb la part d'insul amb la part d'insul. I el lane de l'insul va patir. I el lane del lane va patir. Atenció a la part de l'insul amb l'escolta. i després hi ha l'esplèixer. Si tu escolta la segona opció, en aquest cas, tu només hi ha una frontera. També hi ha un carnal. El carnal comunica amb la FBGA. També cal programar el bitestrem de l'FBGA i això controla l'esplèixer. En aquest cas, què és la diferència? Tu... El software és el mateix. Tu has de fer dos carnal drivers, tu has de programar el microcontroller i tu has de programar l'FBGA. La diferència és que el carnal driver, en el segon cas, és probablement que tu no has de fer. Però el carnal driver, en el primer cas, tu has de fer-ho, perquè és la teva solució. En el segon cas, tu pots obrir el carnal driver de l'esplèixer i, directament, enviar-li dues vegades l'esplèixer i l'esplèixer i enviar-li a l'esplèixer. I l'esplèixer és transparent, doncs enviar-li l'esplèixer correctament a l'esplèixer. A aquest punt, he dit que hi ha diferents steps. El primer step és el design de circuit. Crec que l'esplèixer de l'esplèixer ha de ser desenvolupat en el reviu de l'esplèixer. És a dir, que l'esplèixer de l'esplèixer o part de l'esplèixer de l'esplèixer ha de tenir alguns skills d'esplèixer o pot ser el contrari. L'un de l'esplèixer de l'esplèixer ha de saber una mica o més sobre l'esplèixer i com funciona. A aquest punt, també és important que no hi hagi l'esplèixer i que no hi hagi l'esplèixer de l'esplèixer de l'esplèixer. Aquest és l'esplèixer d'esplèixer d'estel·lèrgia. Potser ja ho sabies, que a més a les tants bordes cal crear un esplèixer de l'esplèixer per especificar com l'esplèixer de l'esplèixer ha estat connectat. I això és important perquè quan ho defineu, quan ho defineu en aquest fil, pots fer unes errors que estan fent en la fase de escamatica. Unes peces, unes peces que són d'error o unes peces que no són de funcionalitat. Pots configurar el setmen de la peça o el control de pin, i tu has de posar en compte com ha d'envellir els circuits integratius. Tu has de posar en compte el envelliment dels regulators diferents de la borda, perquè és possible que, si no envellis una regulatora, la borda no ha de començar. I tu també pots dir a l'hardware team si algun pull-ups o pull-downs no són necessaris, perquè és el mateix lloc que també s'obre. Molts pull-ups i pull-downs s'han d'anar necessàriament abans de les softwares o abans de les kernels. Però després, tu pots utilitzar els internals pull-ups. Així que, què he ensenyat durant aquests anys. Així que, la primera cosa que m'ha de dir és que hi ha una regulatora que és la principal regulatora que sempre ha d'obre a l'extrem. Si no tens l'hardware, si no tens l'hardware, pots trobar solucions per intentar desenvolupar una regulatora que necessites per el teu design i pots intentar abans de l'extrem. En aquest cas, quan t'abans de l'extrem, hi ha un feedback i hi ha una comunitat hola que es reveu en els teus patges i tu coneixes que ets el seu partit per fer-ho. En tot el moment, s'ha d'acabar a la llengua al moment de desenvolupament. Reveu el descenàtic d'un punt de vista de software, sempre. Com que em diuen, pots fer-ho als prototypes. Així que, com més pecs es escaguen al procés de desenvolupament, U les respins tu n'has de fer a l'endemòria, i el més important, bueno, no el més important, però una cosa que és que no viola la ping-pong i treballa. La cosa que vull dir amb això és que he vist molt de temps que quan hi ha un problema en el seu hardware o en el seu trastorn, Hi ha sempre una batalla entre el hardware i el software que diu que no és el teu fall. No, és el teu fall i hi ha un ping-pong que no reclamarà la solució. Així que, treballem, treballem i... i intentem investigar aquest problema, allà i... i bé, això. I bé, això és allò. Hi ha algunes qüestions? Potser... Sí, sí. Fortunatament, crec que això és... això és canviant una mica i... i molts vendors intenten pujar a l'extrema més... més coses. Però, si el teu vendor no... no cares de pujar a l'extrema més coses, o es utilitza una alt... una altra BSP o una altra software, treballar a l'extrema, o treballar... Tocar a la Mainline i treballar a l'extrema és millor, perquè hi ha... una comunitat que pot ajudar-te a... a fer les coses bé i... per ajudar-te a desenvolupar el teu producte. Sí, sí, sí. Sí, sempre... sempre cal considerar si una solució és més llarga o no. Però, a vegades, el que passa és que les persones no saben que la software és... no és més llarga. A vegades, desenvolupar alguna cosa en la software també té moltes coses, doncs, sí, és... Sí, depèn de l'escala. Sí, depèn de les uniques cosses, perquè això no és una de les cosses, que és una de les cosses que es utilitza en una altra botiga. Sí, sí, sí. Sí, que ens veiem tot allà, amb unes cosses extra. Sí. Sí, sí. Sí, sí. Ok. Sí, sí. Ok. Sí, sí, sí. Ok. Ok. Ok. Ok. Ok. Ok. Ok.