So with that said, we're going to be looking today at the parable of the mustard seed. And that particular parable is found here in Mark chapter 4. It's also mentioned in the Gospel of Matthew in chapter 13, but we're looking at it here in Mark chapter 4. We'll look at verses 30 through 34. And as the way I normally teach, I'm going to give to you a reminder for those of you who are new to us, perhaps weren't with us last week, for those viewers who are watching and haven't been with us through our study. I'll give you a reminder of some of the things that are taking place. And then we'll move into this particular parable. Again, the parable of the mustard seed found in Mark chapter 4 verses 30 through 34. So let's begin reading here in Mark 4 at verse 30. I'll read to verse 34 and we'll get into our study. Mark chapter 4 verse 30. And he said, to what shall we liken the kingdom of God? Or with what parable shall we picture it? It is like a mustard seed which, when it is sown on the ground, is smaller than all the seeds on earth. But when it is sown, it grows up and becomes greater than all herbs and shoots out large branches so that the birds of the air may nest under its shade. And with many such parables, he spoke the word to them as they were able to hear it. But without a parable, he did not speak to them. And when they were alone, he explained all things to his disciples. And so as mentioned, I'll give you a little bit of a background so we can have a context in which we can view this particular parable. We know that Jesus has given a series of parables that relate to the purpose as well as the growth of the church. The first parable that we looked at is the parable of the soils, and it revealed that there are reasons that people reject the gospel. Even when they see remarkable changes in those they know, those who have encountered Christ and have come to faith in Him, even when they see remarkable changes, they still refuse to believe in Christ. They may say various things. They may say, well, I don't believe in God, or I'm not convinced that there is a God. Well, it's common today for people to think that all religions lead to the same end. For some, there is no reason to believe that there's only one faith that is true. It's common to hear it said that all religions reveal at least one aspect of what God is like, and they confidently will say, not a single religion can explain or reveal all there is about Him. That particular thought was captured in a poem by an American poet by the name of John Godfrey Saxe. Perhaps you may have had to study him in literature if you've gone to college and all of that. John Godfrey Saxe. In 1872, he wrote the poem, The Blind Men and the Elephant. In the poem, he wrote of six blind men who encountered an elephant and tried to describe it. One blind man ran into its side and thought it was like a wall. A second blind man felt the tusk and thought it was like a spear. Another grabbed the trunk, thought it was like a snake. The fifth blind man touched the ear, said it was like a fan. And finally, the sixth seized the tail and thought it was very much like a rope. And so the poem ends in this way. And so these men of Indus Dan disputed loud and long, each in his own opinion exceeding stiff and strong, though each was partly in the right and all were in the wrong. So often in theological wars, the disputants, I think, tread on in utter ignorance of what each other mean and talk at length about the elephant not one of them has seen. And so that was a poem from an agnostic and that's how many self-professing agnostics speak. Why make a big deal about something you can't really know for sure? This is where Christians disagree because God has revealed himself to us in Jesus Christ and Jesus is the one who revealed to us his father. In John 1.18, John writes, No one has ever seen God but the one and only Son who is himself God and is in closest relationship with the father has made him known. You see, because people reject the gospel, Jesus gave his men insight into why this happens. It happens because the soil of a person's heart is not always receptive to the word of God. So we went on to say that some would receive the word, even though others had rejected it, some would receive the word and that it would bear fruit in their lives. These are those who would be saved and each would produce according to his own faith as well as capacity. So part of the fruit of their salvation is that they're going to become witnesses and that again was illustrated by the parable of the lamp that was placed on a lamp stand. In that parable, he made it clear that they were to bring light to those who were in darkness and their purpose was to bring light, the light of the gospel to a sin-darkened world. So the parable of the lamp stand revealed man's responsibility of giving the gospel out. The message would be a light shining into men's darkness and it would result in salvation to those who received it. You see, that's what the knowledge of God is intended to do, to give you light. In Psalm 1828 it says, You will light my lamp, the Lord my God will enlighten my darkness. So as lamp stands were to shine forth the light of the gospel of Christ and that's done when we let our light shine before men. In Romans 10, 13 through 15, Paul said, Everyone who calls on the name of the Lord will be saved. Well, how then will they call on him in whom they haven't believed? And how are they to believe in him of whom they have never heard? And how are they to hear without someone preaching? And how are they to preach unless they are sent? As it is written, how beautiful are the feet of those who preach the good news. And so we shine a light by proclaiming the message of Jesus Christ who is God in the flesh. We don't put that message under a basket, we let it shine. It's like that whole song that we used to sing, This little light of mine, I'm going to let it shine. So those who believe the message will be blessed, but those who refuse will be judged. That's why we are careful with what we hear Mark 424 and how we hear Luke 8 verse 18. We're to carefully hear the word of truth and we're to mix that word that we receive with faith. James 1 21 says, Therefore putting away all filthiness and overflowing of wickedness, receive with humility the implanted word which is able to save your souls. So we've seen that the purpose of the church is to scatter God's seed by sharing the gospel. And in the end our part is to faithfully sow the seed. But it's the Lord who is going to save the one who receives it. Verse 28 told us that the earth yields crops by itself. It's the farmer's responsibility to sow the seed that is God who produces the increase. The sower doesn't take the credit for conversions because it's God who saves. 1 Corinthians 3 7, neither the one who plants nor the one who waters is anything but only God who makes things grow. I think today sometimes we need to remember that simple truth because sometimes we have people hitting us up for finances and all to continue to support what they do. And in fact, their sores of the seed, God is the one who produces the growth. We ought to be investing more in prayer for their ministry. And if we feel that it's part of what we should support, we should. But I as a pastor should never be asking people to support the things that God has placed on my heart. That is something that you guys ought to be responding to saying, I see the same thing. We need to support this because God's in the middle of it. So as we look at the parable, the parable of the seed growing in secret, that emphasized God producing salvation. So this next and last parable in the Gospel of Mark gives us insight into the growth of the church over time. So verse 30 says, to what shall we liken the kingdom of God? Now it must have been difficult for the disciples to grasp what Jesus was saying to them. On one hand, they're able to track with him concerning some of the basic things. They most likely understood him when he spoke of people's responses to the message. They'd already seen some respond with antagonism, others superficially. They also saw how some would come around for a while and kind of fade away, just disappear. That happens even to this day. There are people who hear the word and they're antagonistic. There are others who might respond kind of quickly, superficially. There are others who come around, hang around, even sometimes serve in the church they attend. And then one day you notice that they're gone and people begin to say, where'd they go? That happens to this day. When Jesus spoke of being a light, that was also something they could understand because in the Old Testament book of Isaiah chapter 42 verse 6, it reads, I am the Lord. I've called you in righteousness. I will take you by the hand and keep you. I will give you as a covenant for the people a light for the nations. So they'd heard that term before that Israel was to be a light to the nations. Isaiah 49 verse 6, the second portion of that verse, I will make you as a light for the nations that my salvation may reach to the end of the earth. They've heard these things before and so when Jesus is speaking concerning to be a lamp on a lamp stand, they understand the concept. When he said, be careful what you hear, they would understand what that meant. This was a call for them to be spiritually discerning. In Jeremiah, the prophet, it says in Jeremiah 23.16, this is what the Lord Almighty says, do not listen to what the prophets are prophesying to you. They fill you with false hopes. They speak visions from their own minds, not from the mouth of the Lord. So they'd been warned by their prophets to be careful what they're hearing, not to just take it all in. Spurgeon once said discernment is not a matter of simply telling the difference between right and wrong. Rather, it is telling the difference between right and almost right. That's discernment. When he spoke of the work of God and salvation, they would have understood. Isaiah 12 verse 2, behold, God is my salvation. I will trust and not be afraid, for the Lord God is my strength and my song, and he has become my salvation. So they understood much of what he was saying. But in spite of that, this way of life and ministry was pretty much new to them. The thought of a group of people following Christ that extended to the future is new. They would learn that God's plan of salvation was going to extend not just to the people of Israel, but it was going to actually reach out to the gentiles, those whom Paul refers to and says they know not God. And they came to understand that, and they're going to over time. And so Jesus is beginning to share this with them, because at that time, the idea of including the Gentiles into the promises of God was very much a mystery to them. Paul would later in the book of Ephesians make it clear when he said in chapter 3, verses 1 through 6, how the mystery had now been revealed that Gentiles would be partakers of his promise in Christ through the gospel. The Jews did not know that. The Jews were separate people. The Gentiles were those without God. And the idea of including Gentiles into the promises of God in the Old Testament was concealed. It was a mystery in the New Testament. Jesus was saying that this is something that's going to affect the entire world. So what is going to be the product of all our efforts? What is going to happen? Well what's going to happen is we're going to have insight into the future of the church on earth. Now some people believe that this parable speaks of the amazing growth of the church over history. The small seed's incredible growth is viewed as the spread of Christianity over time. The birds nesting under and in the branches are seen as people at home in the church. One commentator said, great results develop from small beginnings. Well the amazing growth of the church over time is the witness of history. The fact is Jesus began his work with a small number of followers. Think of that. I mean when you read in Luke chapter 10, Luke chapter 10 verse 1 tells us that he had 70 disciples that he sent out to do some work on his behalf. Mark 3, 14 tells us that he had appointed 12 apostles. Now these are very few in the midst of such a great number. But these very few people were intended to take this message into the future and compared to the population of the entire Roman Empire or to those living in Israel at that time. Even to the multitudes listening to him for selfish reasons, Jesus's genuine followers were very small in number. Remember 11 of his 12 men came from the north. One came from a place called Karyot, Judas Iscariot. A lot of times we think Judas, the first name is Karyot, the last name, no it's Judas Iscariot. Judas the man of Karyot. Karyot was a city just 30 miles south of the city of Jerusalem. Judas the man from the town of Karyot. So 11 were from the Galilee, but one was from the south. 11 came from the north, one from the south. They were ordinary fishermen, small business owners, including a tax collector. None were famous in Israel and outside of their village were relatively unknown. None were recognized as theologians. None were famous for their preaching skills. And when Jesus called them, none of them had traveled very far outside of Israel. As a matter of fact, the furthest would be southern Lebanon because in chapter 7 they go to Tyre and Sidon. For them, the thought that Jesus's mission would become worldwide, that would have been unheard of. To prepare them for the future, he begins to impart vision to them. He says to them in Matthew 9, 37 and 38, he says, the harvest is plentiful. The workers are few. Ask the Lord of the harvest, therefore, to send out workers into His harvest. In John 4, verse 35, do you not say there are still four months and then comes the harvest? Behold, I say, to you lift up your eyes, look at the fields. They're already white for harvest. So Jesus was giving to them vision for the future. That's what He does. There have been times when I have, on many occasions, sat down with a particular group of my men and I'll share these kinds of things. You need to look to the fields they are white for harvest. Don't get caught up thinking that all that's here is all there is. There's so much out there that we need to do. There are so many things that God has called us to do on His behalf. You have to see that the fields are white for harvest. And Jesus did that. Then when the Lord God was speaking to Abram and told him that He was going to be the father of many nations and all of that, and He was sharing concerning what He planned to do with this one man and his wife, Sarah, in the future, it was beyond Him. So He says, if you can count the grains of sand or you can count the stars, so shall be your descendants. He was giving to them a visual so that they would understand. He would understand that God's work is bigger than His imagination. What He intends to do is greater than He can even ask or think. And so that's what Christ is doing, right? He's speaking to a group of men and you think about it. They were not eloquent preachers. They were not world travelers. They were not deep theologians. They were businessmen, fishermen, tax collectors. That's what they were. And yet they're going to take this message to the world. Well, after His death and resurrection, Jesus prepared them for worldwide ministry. In Mark 16, verse 15, we'll see that in about two years we'll be there. In Mark 16, 15, it says, go into all the world and preach the gospel to every creature, into all the world. Not just from the south to the north or the east to the west, but the whole world. Go into the world, preach the gospel to everyone. In Acts 1, verse 8, you shall receive power when the Holy Spirit has come upon you. You shall be witnesses to Me in Jerusalem and in all Judea and Samaria and to the end of the earth. Now notice in Acts chapter 1, verse 8, you shall be witnesses to Me. That's a very important point I didn't touch on for service. I'll say it quickly second. He didn't say you're going to go out and do witnessing.  When the Holy Spirit comes upon you, you will be transformed. You will be empowered. There are quite a number of people, we'll see this in a moment, who profess themselves to be Christians who haven't got the Holy Spirit within them. They're not born again. They haven't received the power from on high, the Holy Spirit, which gives answer to part of the reason why life for them can be so difficult. They're constantly doing one thing after another, seeking for something that they profess or already have. When you have Christ, you've got everything you need, and when the Holy Spirit is working in your life, He leads you in a new direction and He empowers you as He gives you perception of what He has for you. So it's not that you're going to be doing witnessing. Yes, you are. You're going to do the work of evangelists. Yes, you're going to share, but you're going to be witnesses, which means in your neighborhood, which means in your family, which means when you're on the job side or in the school, you're going to be my witness there.  And so it's worldwide. He said, you're going to be going to the ends of the whole earth. And so for many, this would explain the parable of the mustard seed. They believe that it speaks concerning the growth of the church worldwide. Now notice, I'm going to touch on something before I develop this a little further. Notice verse 31, when he says again, it is like a mustard seed, which when it is sewn on the ground is smaller than all the seeds on earth. Okay, I want you to see that because I want to point something out. You see, some say that the mustard seed is not the smallest of all seeds on earth. They will say the wild orchid seed is much smaller than a mustard seed. Therefore, Jesus was wrong. And the Bible is in error. You may have heard that before. If you go to a college, you may hear it. If you're in the Bible is literature or class like that. I've taken classes like that and they want to point out the errors. Well, see, Jesus said that the mustard seed is the smallest on earth and yet the orchid seed is smaller. Therefore, Jesus, and I heard it say, Jesus was, you know, he's kind of limited to his environment. He was from Israel and in Israel, that was the smallest seed like Jesus was ignorant. And they'll say it like that. But let me point something out. Jesus was speaking to a group of people who were familiar with mustard seeds. Why would he say orchid seeds? But that's something that they would have been able to understand quickly. He's speaking of mustard seeds. But seeds on the earth, and he says it here again, look at verse 31, the last portion, smaller than all the seeds on the earth. Seeds on the earth can be translated, seeds that are on the ground, seeds that are on the soil. He would have been using, again, the illustration because it's something that they could understand. Now the use of the mustard seed was common in Israel to refer to something that small. In Matthew 17, verse 20, Jesus spoke of having faith as a mustard seed to illustrate genuine faith. A small seed can produce wonderful results. Well in this parable, Jesus says that this small seed grows, according to Matthew 13, 32, into a tree. Now in Mark chapter 4, verse 32, it says that it shoots out large branches with birds nesting under it. Notice that. But in Matthew 12, 32, the same parable, it says that the birds nest in it. So what you have is birds nesting under it and birds nesting in it. So when you consider this, the growth of the church of the centuries has been amazing. The Christian gospel has gone out over the face of the earth. It's reached multitudes. By the power of the Spirit, courageous preachers comb the world to make disciples. The Book of Acts records a remarkable spread of the gospel from Jerusalem. And ultimately Paul heard the gospel was saved and immediately began preaching. Acts 9, verse 20 says immediately he preached the Christ in the synagogues that he's the Son of God. Paul's life mission was to share the gospel with all who would hear. He began traveling throughout the world. He began preaching the gospel everywhere he went. Romans 15, verses 20 and 21, he said, I've made it my aim to preach the gospel, not where Christ was named, lest I should build on another man's foundation. But as it is written to whom he was not announced, they shall see. And those who have not heard shall understand. By the year 53 AD the gospel had been preached in various places. Acts chapter 17, verse 6 says, these who have turned the world upside down have come here too. So the gospel was going out and spreading like wildfire. It spread from Jerusalem and went into Europe, eventually touching multitudes. And over the years entire nations were touched by the gospel. And even today at this moment we're reaching a number of nations online. We have 30 plus countries right now watching us as I'm sharing this with you. The gospel goes forth. There's no doubt about it. There are people who are watching online and continues going forth. Many continue to find faith in Jesus Christ. And so some will say this parable speaks of something with small beginnings ending up in reaching multitudes. Revelation 7, 9 and 10 says, after these things I look, behold, a great multitude which no one can number of all nations, tribes, peoples and tongues standing before the throne and before the Lamb, clothed with white robes with palm branches in their hands, crying out with a loud voice saying, salvation belongs to our God who sits on the throne and to the Lamb, multitudes from every nation tongues confessing Jesus Christ. And so they say this particular parable will speak of the amazing growth of the church from something small to something large, the kingdom of God spreading throughout the world and it continues doing so. Again they think of this as being the spread of the gospel. But the question remains, is this what Jesus is talking about? Is he saying that the church will outgrow its insignificant beginnings and become massive? Is the church destined to surpass in glory and size man's kingdoms on earth? Which brings us to the second interpretation of the parable. It could be speaking of the church growing numerically large but filled with unbelievers. Now how can we arrive at that interpretation? Notice verse 32, Jesus said, the mustard plant shoots out large branches, birds nest under it. Again Matthew 1332, when it is grown it is greater than the herbs and becomes a tree so that the birds of the air come and nest in its branches. So when Jesus speaks of birds nesting under its shade, it refers to it as a place of comfort. In Matthew when he said they nest in its branches, it speaks of making a home. So this could speak of the church over time becoming infected with evil, why? Because in the parable of the soils, birds represented Satan. Look at verse 4 here in chapter 4, how it says, it happened as he sowed, that some seed fell by the wayside and the birds of the air came and devoured it. Again notice verse 15 in the same chapter. These are the ones by the wayside where the word is sown. When they hear Satan comes immediately and takes away the word that was sown in their hearts. The birds represent Satan. Numerically the group of those professing to be Christian can be large but spiritually it has lost its purity because it's infiltrated with evil. Now this is where Christians can become confused. They think that numeric growth means that God is moving which isn't necessarily true. Here's something for you to remember, not all growth is good growth. Not all growth is good growth. I can't tell you over the years how people say, well that's a booming church, there's so many people there, something good must be happening there. Well I hope so, of course I hope so. Yes, may the gospel be going out producing people who love and follow Jesus, of course that's our desire, but that's not always true. I remember hearing a story of somebody, a true story of somebody who decided, a guy who decided to work out and as he was working out he started to do a lot of bench pressing and as he was doing his bench pressing his chest began to expand, he started to build up his upper body, doing all of this benching and everything, his legs still looked real skinny but the top was huge. But anyway, he was so built and wanted to show off his chest and all that he began to wear these wife beaders, what do you call those, those little t-shirts, what do you call them wife beaders, but anyway that's not nice, I know it's not, but that's what we used to call them, what do you call them, I don't know, tank tops, should have said tank tops, we'll let it wife beater, tank tops, shouldn't have said that, but whatever. But he would, he was wearing the tank tops, showing off, oh here's the thing, he didn't know it, because his chest was so swollen he didn't know it, he had developed tumors in his chest, it was cancerous and all this what he thought was muscle was actually swollen with infection and his whole chest was covered with cancer, not all growth is good growth and sometimes we think that because oh there's so many showing up at this place or that or so many whatever that it's good, not necessarily, not necessarily, it depends on what is being presented there is the truth of the gospel being presented are people being equipped for works of service are they sharing their faith with other people these things all matter and so not all growth is good growth the real question here and I want to I want to spend some time looking at this with you is how could people who aren't Christian ever become comfortable in a church service how could that happen now it isn't that non-christians are not welcome to attend a church service of course they are in first Corinthians 14 23 Paul speaks of unbelievers coming into a church service and he went on to say in chapter 14 verse 24 first Corinthians he said if all prophesy and an unbeliever or an uninformed person comes in he's convinced by all he is convicted by all so when he says if I'll prophesy the word prophesy can mean revealing the mind of God that's what prophecy or prophesying is it's revealing the mind of God so when God's mind is revealed through the clear exposition of Scripture or the clear presentation of his word ministered by the people the conviction of the Holy Spirit causes unbelievers to be converted as the Spirit convicts them you see one of the purposes of church gatherings is for the equipment of the saints and as the church is taught it is to go forth and share with others so when an unbeliever is in church service it would be normal for them to become uncomfortable sometimes in this fellowship actually sometimes quite often there are those who have never really confessed their sins to the Lord they've never come to a faith in Christ and and they hear things that are being said and and they can become uncomfortable with that and get upset and believe that they're being pointed out and and all of that it's because they're convicted there's a difference between condemnation where that person walks out saying they hate me there that's not a loving church they've condemned me no condemnation comes from yourself and it comes from Satan that's how condemnation comes conviction comes to the Holy Spirit when the Holy Spirit convicts a person of sin righteousness and judgment that's because God intends to awaken us to who we are without him that we can come to faith in him and be forgiven of our sins condemnation is different than conviction and so those who don't know the Lord are more than welcome to be amongst the church but somebody may look and say oh the church is filled with people yes but the church building is filled with people but not every person in that building is a Christian there are those that Paul would refer to and say they're not believers they're just amongst you now when an unbeliever is in service the normal thing is to become uncomfortable but in 1st Corinthians 1425 Paul said the desired result would be that they would fall down on their face worship God and report that God is truly among you so it's not the purpose of the church to attempt to look and sound like the world it's our purpose to by the way we are it's our purpose to reveal God to those who don't know him now Jesus gave another parable that will help us to see this it was the parable of the wheat and tears it's found in Matthew I'll read it to you in Matthew 13 24 and 25 Matthew said another parable he put forth to them saying the kingdom of heaven is like a man who sowed good seed in his field but while men slept his enemy came and sowed tears among the wheat and went his way wheat and tears tears is also called Darnell they look the same until they're fully mature they look the same and so they were wheat and tears and as they were growing they look the same but when they came to full maturity it was obvious that they were they were Darnell they were they were tears and so as Jesus was speaking he gave an interpretation in verse 36 through 39 of Matthew 13 and Jesus sent the multitude away and went into the house and his disciples call came to him saying explain to us the parable of the tears of the field so we answered and said to them he who sows the good seed is the son of man the field is the world the good seeds are the sons of the kingdom but the tears are the sons of the wicked one the enemy who sowed them is the devil and so there are tears amongst the wheat now how could unbelievers ever infiltrate the church becoming comfortable when I was in the military we had to pull something called guard duty there are military vets listening here right now and online you remember guard we had to pull guard you had to stay awake and you had to guard the perimeter that's what you did if somebody was to approach you were to call out and ask him who goes there and all of that there were protocols certain things and I remember a friend of mine sharing with me how in Vietnam that one of the guys on guard duty fell asleep and when he fell asleep the enemy infiltrated came in and left him alive and killed all of his friends left the guard on alive and killed all of his friends so when he awakened because he fell asleep on guard duty everybody was dead except for him and he carries that in his heart to this day because he had fallen asleep on guard you never fall asleep on guard duty you're not protecting just yourself you're protecting others you're appointed to do that you're appointed to keep watch beyond the alert to be aware of the enemy and call the warning that's what you're there to do and I might I might sound dramatic when I say this but it's true and if it means you give up your life for the others you do that that's what you're trained to do that's what soldiers do you lay your life down for your friends right well in the church guess what some people fell asleep the guards God had placed over the church in many places are asleep even right now how can the enemy enter in the guards fall asleep God has appointed pastors in a way to be the one who calls out the warning we are to equip saints with the word of God to develop discernment within them how can unbelievers infiltrate the guards go to sleep you see the Bible is no longer respected as the true revelation of God there was a time in our history and not that long ago when you could speak even to an unbeliever someone who doesn't have a faith in Christ but if you said to them do you believe the Bible is God's word they would have said yeah I mean why do you think they would use the Bible I do solemnly swear to tell truth the whole truth and nothing of the truth what so help me God why did they use a Bible because a Bible was an evidence that there is a truth so you tell the truth now listen to this you tell the whole truth and nothing but the truth why did they use those three phrases the truth the whole truth nothing but the truth because you can shade the truth you can hide the truth or give a portion of the truth no you tell the truth the whole truth and you don't add to it nothing but the truth and so when you would put your hand on a Bible as a witness and you would say I do solemnly swear to do this the Bible was the evidence that there is a truth but not today not today the Bible today is regarded as just a book a book amongst other books it doesn't have any more validity or authority to any other book and that's how people have been fighting speaking in that way for so long but historically the church regarded God's word for what it is the truth in 1st Thessalonians 2 13 Paul said it like this for this reason we also thank God without ceasing because when you receive the word of God which you heard from us you welcomed it not as a word of men but as it is in truth the word of God which also effectively works in you who believe you see many pastors and teachers have stopped teaching the full counsel of God I remember one TV preacher in particular who said I don't teach the Bible because people don't believe it so he would teach his own books in the book of Amos in chapter 8 verses 11 and 12 in the Old Testament behold the days come says the Lord God that I will send a famine in the land not a famine of bread nor a thirst for water but of hearing the words of the Lord and they shall wander from sea to sea from north even to the east they shall run to to and fro to seek the word of the Lord and shall not find it well because there's no genuine Bible teaching in many places truth will no longer be tolerated by those who are part of the study Bible studies therefore become boring because people are thirsting for entertainment they want to feel good about themselves when they walk out in a lot of churches if you don't say what they want to hear they don't come back the next week I'll find a place that tells me how good I really am well in Isaiah 30 verses 9 and 10 this is a rebellious people lying children children who will not hear the law of the Lord who say to the seers do not see to the prophets do not prophesy to us write things speak to us smooth things prophesy deceits tell us what we want to hear what our ears are itching to hear and so how does this happen how can the church be filled with unbelievers who are actually comfortable there while the false teachers infiltrate they introduce error under the cloak of truth this has been going on since the early days of the church in 2nd Peter 2 verses 1 and 2 there were also false prophets among the people even as there will be false teachers among you who will secretly bring in destructive heresies even denying the Lord who bought them and bring on themselves swift destruction many will follow their destructive ways because of whom the way of truth will be bad last thing how do you think the antichrist is going to be received through deception the church has a large field to it but in fact not every person saved so the church is well attended but it's not truly converted in 1st Timothy 4 1 and 2 the spirit clearly says that in later times some will abandon the faith and follow deceiving spirits and things taught by demons such teachings come through hypocritical liars whose consciences have been seared as with a hot iron whose consciences are seared when it speaks of consciences being seared as with a hot iron during that day slaves would be branded you would have a brand and that marked you and he's saying their consciences are branded as slaves to sin because they don't want to know the truth that sets them free so the church may appear large but it is unholy and filled with disobedience and unbelief now I probably should say this I said it in the first service I'll say it again here when I first got saved and I had my ups and downs and I finally got solid and I said no I'm gonna I'm gonna be solid with the Lord I'm gonna follow Christ with all of my heart to the best my ability and after that I still had failures I confess but I just had this this intensity and so I was in in school and it's a non-Christian college and and there was a young woman who was next to me this is before I had met and married Marie and she wasn't anybody I was interested in in any way but she told me in class that she was a Christian and and but she would say things or do things and made me question you know not judging her but made me question whether she knew what a Christian actually is and so I didn't realize I was doing this but one day she said to me she said how come you treat me like I'm not a Christian I told you I'm a Christian how come you treat me like I'm not one and I looked at her I didn't realize I was doing that but I thought about it and I thought in my mind because I don't think you are one so what so what it is with me and I might share this with you you may be a first time here here and think man he sure is self-righteous you don't know me that well I'm worse than you think so with that what happened is I thought if you're going to be a believer then live for Jesus I thought if you're going to talk about him then live for him why because the things you say are drowned out by the things you do and even a child is known whether he's good or bad by the way that he lives and so your life is going to show what you really believe and so very early in my life I don't care what you say I do care to a degree of course it helps to explain who you are I also watch the way that you live because if you told me you were a Christian I wasn't expecting you to walk on water I was just expecting you to live as a good person and so if you said something profane to me or said you'd been doing something this weekend that I knew was wrong and you should too after a while I begin to wonder do you really know the Lord how can you make excuses for the behavior because Jesus said were to flee these things and yet you seem to be embracing them and that's how I think and I don't mean that as a judge I'm just trying to collate information so I know how to relate to you that's all well when I'm teaching sometimes you may be sitting there squirming saying this guy is so judgmental there is a difference between condemnation and conviction understand the difference conviction maybe is the Holy Spirit saying to you this is for you this is something to listen now I I've given studies on marriage and family enough times to see the wife hitting the husband when I'm talking to husbands and you'll see him looking in the sky I didn't come for this today you know but I always get back to the women I tell them you know next week we'll talk to you then they don't show up but the thing is and I want to say this briefly but quick in a way that makes them sense to you never feel pleased that I'm condemning you I am not when I'm trying to do is explain what Jesus is speaking about and then filtering it through my own heart that's what I do so it's not a condemnation and yet people can feel that because I really do believe in these last days that people will begin to to turn away from the truth and be turned to fables so in the last days the church may appear large but it's unholy it's filled with disobedience and unbelief here's the thing the temptation to use our own efforts to clean up the church can come upon us so what happens is we establish man-made regulations and intending to force people to be holy but that's really what is called legalism you see you can't always judge someone by appearance because some wheat matures slowly it takes time for it to begin to bud and blossom and a new believer shouldn't be expected to live as an older believer so we give mercy and grace and love to those who are new in the faith we don't get all uptight and mean to them I I had a roommate that I let him to faith in a Bible study and and he was an alcoholic at the age of 23 he was an alcoholic confirmed I mean he would bring cases of beer and drink them within a couple days this guy was an alcoholic at an early age and but he came to a Bible study we're roommates and I let him to faith in Christ and then you know he one day he walks up to me and he said David I have to tell you something I said what he says you know he says I know that you're smelling my breath to see if you can smell the alcohol I said really and and I thought you know he's right he's right I looked at him and said your breath stinks no I said here's a mint no I said I said you're right his name was Steve you're right Steve he said you loved me more before I was a Christian than you loved me now as one I've never forgotten that and I told him Steve I hated you before and I hate you now no I didn't say that I said you are right forgive me I said Steve my problem is is I just want to see you grow and I'm watching you too closely and I'm not giving you grace and for that I'm sorry I'm so sorry so you can do that some wheat grows slower but it grows because it's sweet so we don't go running around judging people you know we're not going to be those people who do that and so you have two interpretations of this one says all the church is going to grow magnificently there are some very well known great teachers who believe that there are others like myself because I take to the second the second interpretation now the church is filled with evil because the word is no longer being taught the conviction of the spirit is not there there are many claiming to be Christian but ultimately they're going to be the ones who say did we not prophesy in your name did we not do many works in your name and Jesus will say I never knew you depart from the workers of iniquity no you only thought you were saved but you never really were that's the greatest deception when you speak of deception what is the greatest self deception when you are convinced you are something that you really aren't that's why the Holy Spirit awakens us to who we really are and then finally with many such parables verse 33 he spoke the word to them as they were able to hear it that a parable he didn't speak to them and when they were alone he explained all things to his disciples so he continued teaching continued giving deeper insights and he continued ministering so that they would have the knowledge of the depths of the things of God and when we read the word of God he continues explaining all things to you.


So I'd like to thank everybody for turning up right after lunch, hopefully don't fall asleep. And if you haven't had a chance, try the food cart here. They are absolutely fantastic. There's a whole cluster of them and there's not just the one cluster close to here, but there's a couple of other spots around the city that have just some fantastic food that you're never going to get in most other places in the US. It's a really good ethnic variety and a good combination of different things to try. So thumbs up to the food carts in Portland. So I'm Jeremy McNichol. I'm from Red Hat and I decided to take on the large task of trying to get the Nexus 5X and 6P mainline. So here's a brief overview of who am I. So if you recognize me and you were ever at an Ottawa Linux symposium, I grew up in Ottawa and I pretty much went to most of the OLSs in Ottawa. I was a repeat offender and a regular attendee of the local Linux community in Ottawa. So if you've been to Ottawa and attended an OLS, you probably recognize me. These are some of the toys that keep me sane beyond playing with bits and bytes. I love being outside. I love bikes and riding bikes. I recently went to, maybe a year ago, two years ago I went to Europe and while I was there I went to Amsterdam. It was absolute bike heaven. So this is, on the left that's my trike that I used to ride in Ottawa. I only had a cycling season of four months. Whereas now I'm in California and I get 12 months a year, which is just great. And on the right hand side that's the Brompton I purchased when I was in Amsterdam. And as I was purchasing it, I took a picture of it. It folds up into that suitcase and I can travel with it anywhere. I recently went to Japan and took it with me and traveled everywhere on bike. It was just awesome. I have it with me here. I did some riding this morning. And there's my bike at the top, my Brompton on top with a picture of it, the Golden Gate Bridge in the background. I live a couple of blocks from the Golden Gate Bridge right now. So that's a little bit about myself and what makes me tick. So why do I take on this effort? To people here, I think it's really obvious. The answer to people here because I know you guys get it is why not? There's no mainline support for it and the really simple answer is why not? Let's just do it. It's fun. I enjoy it. It's interesting. It's challenging. It's stuff that just keeps me... It's better than watching TV or playing video games. It's more intellectually stimulating than watching TV. But you can do both at the same time. That's the sort of attitude that I have towards this. It almost feels like a hobby more than work. And when it feels like that, it doesn't really... It's not tedious. It's not difficult to motivate yourself because you're not being forced to do it. So that's why I didn't mind taking it on. When I took it on, it was the current latest generation phone. And I thought it would be a lot of fun because I know at some point Google's going to drop support for it. And at that point, when they drop support for it, there are people in the community here that are going to want to keep playing with it. For example, the XDA community continues to hack on these phones long after they've been dropped by the mainline people or by Google or by whoever else that's pushing these phones. As well, I thought it would be useful to do the flagship phones so that other vendors would hopefully get inspired to follow suit and say, okay, look, this phone is mainlined. Maybe we should try to put in the effort to mainline our phones as well. So it's sort of like saying, okay, look, here's the cookie cutter example of how you can go about getting your phone mainlined and the types of things you have to concern yourself with. Maybe other vendors can follow suit and follow the path. That's maybe inspire them to do the right thing instead of just putting their code somewhere to follow the letter of the GPL, actually trying to get it into the main kernel and running. There's no other reason for me motivation-wise other than it's fun. I work for the platform enablement team at Red Hat. Our job descriptions are kind of like we do whatever. We don't really have a set job description. So my job is typically supporting a rel. So that's our bread and butter. That's where we make our money. But my boss has said to me, okay, I want you to support rel, but I want you to find things in the community that you find interesting that you want to work on. So I took this on. I thought this would be a lot of fun. And it's been very challenging and it's quite interesting. I'm learning a lot about phones. I had a fair background in the embedded world and the power PC world. And then jumping into the phone world was a, I guess some people would say a rude awakening or an absolute eye-opening experience that how the phone world does things compared to the simplistic power PC world is very, very different. I was quite, it was definitely eye-opening. I just decided to jump in wholeheartedly and very naive kind of view, go for it, let's see what happens. And I'll tell you the story about what happened. So here are the specs. I decided to actually include a slide when I post these with the specs for the phone themselves so that if you want to look at it, I just took it from XDA arena and I grabbed the 5X as well. It's pretty small, but I made it small on purpose so I could fit everything in. So if you can't read it, I'm sorry, later on you'll be able to pull it up. The specs are pretty straightforward. They're all on the web, publicly available, nothing hidden. I've got a list at the end of my presentation with links and references and I've included these links and references with that so you can just pull it up and look at it there or just Google it. Exactly. Same thing here is the specs, what it came with at the time and things like that, the dimensions, so much memory to add to the storage. Before I begin, there's some terminology, there's some marketing terminology and then the terminology that the common engineers, normal folks tend to use. I'm probably going to use 8992, which is on the 5X. The marketing term is Snapdragon 808, so just bear with me. I'm going to constantly use 8992 versus 8994. That's why I put, I can't seem to remember the marketing terms. I stick to the more technical terms. It's easier to remember for me. And then the other term you're going to want to get used to is downstream. So downstream is anything that's not in kernel.org, be it MSM310, the one that's published on Google or published on Kotorora, I consider that downstream. And those are the terms that I'm going to use throughout this just so that you're familiar with it. And the integration branch is something that the linear folks who are doing a fantastic job at mainlining things, they have something called an integration branch. And that's also a term, and I've got a link to it at the end of my presentation. They use the term integration branch where they put all the different pieces that people are working on into one common spot so people can work as a team in Lunero on these sorts of things. So where did this all start? The last ELC in San Diego that I attended, I think there was other ELCs or other conferences. The one that I went to was in San Diego and I was kind of poking around at the idea of trying to get the Nexus 5X mainline because I was looking at it and I said, okay, maybe I'll go take a look and see if the phone is working with the latest and greatest kernel. Sure enough, it wasn't there. I saw different bits and pieces about things that were working and weren't working. I was like, okay, what is this? Maybe it'll actually just work. So I went and bought the phone and I turned up to the conference. It was like a week before the conference. Turned up to the conference and ran into a bunch of people from Ottawa that I knew that were working for Lunero or other people that different companies from Ottawa that I'd already knew and talked to them and said, hey, I've got this phone. I'd like to try to get it to work on mainline.  Yeah, why not? It'd be great fun. So they're like, okay, so how do I get serial console? As an embedded person, the first thing out of my mind is I need serial and that was the first challenge. Because of the great people there and the great people within the community, it was a matter of me talking to these people and saying, you know, okay, I want to actually try to get this phone working. I mean, I said, well, how hard could it be? You've got downstream support. You've got a kernel that's already published by Qualcomm or Google. I mean, it's 310 based. It was at the time it was 4, 3 or 4, 4. I said, oh, it's pretty small delta. It can't be that bad. I mean, nothing's really changed. I mean, how hard can it be? It's just do a diff and you're off to the races. And then I ran into other Steven Boyd's presentation on the MSM fork and it was like 1.5 million lines of code. Okay, that's when I sort of reality set in. I'm like, this may be a little bit more challenging than I originally anticipated. So I said, you know what, why not? This is, I'm a glutton for punishment. So let's just do this and have fun. So I actually decided to go at it whole hog and have fun and see what would happen. So I talked to the people at the conference.  Where do I even start? So people were just so helpful and considerate and kind, typical of the Linux community. And it's something I can't emphasize enough that regardless of the fact that people are in all these different companies and every other company has got, you know, they're all differing opinions about how to do things at the upper levels. But the people that attend these things and the Linux people within these companies all have the same sort of mentality of helpfulness, willing to offer advice, even if you don't want it, you know, reach out to people whenever somebody asks for help. I mean, this is typical of the community that I was used to in Ottawa. And I'm seeing it continuing on, you know, obviously it's not perfect, but it's actually a very good thing to see and to be part of. And that's what, one of the reasons why I wanted to do this. I thought it'd be fun to give back to do something that, you know, there was no support for it's fun. Let's just get it working. The typical Linux mentality of why not? And at that embedded conference in San Diego, at the end of the day that I was asking about building a debug cable, I was able to walk away that night I drove to Fry's. There's a Fry's in San Diego. I literally drove to Fry's that night and bought the board that the Linairo folks suggested that they use for a lot of their targets for their lab. And it was simply one of these boards that you get for like, I don't know what you call it, Arduino or those BeagleBone Blacks. And it's just an FTDI chipset with 3.3 volts and 5 volts switchable. And you just had to, I just had to buy a cable with the ear jack that plugs into the phones. Let me grab the two phones here. So here's the two phones.  I just got a phone. I got a charging cable. How do I get to the real console?  And that person was like, this is what you need. Here's the equipment that you need, you know, cut the wire here, split it. These are the colors that go here, here and here. And literally that night, every time I travel, I carry duct tape and, you know, toenail clippers. And literally that's the picture of that night when I got back after the conference. I cut the wire, stripped it and attached it to the board that I bought at Fry's in San Diego. And I had a fully functioning debug cable within five or six hours of asking how to get it to work. So that's a true testament to, you know, duct tape and the helpfulness of the community. So that's a picture of, yeah, you can get it working without all kinds of fancy soldering and electronics and all this fun stuff. Just, you know, it's the way real work happens. And then the, while I was there, I was talking to different people and they said, okay, you know, once you get up and running, you're going to have various problems that are things that at the time things weren't mainline. So Steven Boyd, there he is right there, was kind enough to put me in touch with a guy in Germany by the name of Bastian Kosher. And he had done the global clock support or the baseline support for clocks, which was common for, allowed, was common between the 5X and the 6P or the 8992 and the 8994. So I contacted him. And while I was, you know, contacting different people and contacting the guy in Germany and trying to get the information from him and get his patches, I started looking at the delta between 310 and whatever mainline was to see, just a diff to see what I could do and see if it was possible and think through possible scenarios. And I thought, okay, I could try to do the whole phone at once, which is kind of foolish. I've been in this industry long enough and I've done enough embedded work that trying to do the whole phone in one fell swoop would just be almost impossible. So I thought, okay, what would be the best way to approach this so that it's the least amount of work to get people going who would possibly want to help. And I thought, okay, the easiest thing would be one CPU running off an NDRD with serial or debug serial. So that's the way that I approached it. I thought that is the least amount of work to allow things to happen in parallel and get that mainline, getting that mainline. Once that's mainline, then people can start adding pieces and can start looking at other stuff in parallel. And that's the whole idea. If you try to do the whole thing yourself, it'll take you six months, you'll have to rebase, things will change so much, whereas if you get some initial work in mainline, your stuff is going to get carried forward and anybody that changes an API or an ABI or whatever you want to call it has to make sure that your stuff continues to work. And that's sort of the agreement, the unwritten agreement within the community, that if you make a sweeping change, you've got to verify that everything is working or at least contact the person, somebody that has the hardware that can test it for you to make sure you haven't broken anything. So this is why I wanted to get it in early and often. One, people will change it for you and maintain it for you. Two, it's going to allow other people to get going and to help out as much as possible. And that was kind of my goal. So I put together a quick list of what's working. Instead of saying this is what I need help with or this is what's remaining, I thought why don't I just make a quick list of what I know is currently functioning as of two nights ago, three nights ago and where things stand. You'll look at, so we have one CPU going on both phones. I tested it and it's fully functioning. So I got both phones fully functioning at this point. I can test both of them now. I've got an IDRD or RAM disk, whatever you want to call it. I've got debug serial through the debug port. That should be here somewhere. I didn't bring it with me. I forgot the debug cable back in the hotel. I've got onboard storage going. I sent out some onboard SDHCI and MMC patches. I'm not sure if they've been picked up. I have to loop back and see. I know the clock work for that was merged. But the actual DT or device tree changes, I'm not sure where they stand. If they haven't been merged at this point, I'll loop back around in a couple of days and do a resend of the latest version of the DT changes to get some more eyes on them for review. The pin control stuff from the Lanero folks, I did maybe 85% of it myself. Then the Lanero folks, I think they had already started it or they had something which was close. They were able to, I believe it was Michael Scott, send something out and it got merged. The pin control stuff is fully functioning now. After I sent out the MMC or SDHCI stuff, I was discussing different ideas with people of plumbers and I looked at the various things that were working or were not. I wasn't sure what was the next piece I wanted to tackle and I had some discussions. I thought that instead of me standing around and talking to you guys and just saying, this is where it's at, this is what we've done, here's a few things, I would like to have sort of an open discussion or brainstorming session with you guys for the different pieces that we could potentially, notice how I said we, I don't want it to be me, I'd like you guys to help, so we could potentially tackle next or some of the pieces that would give us the most bang for our buck. Yes, all the patches have been submitted, SDHCI or the onboard storage, I don't know if it's been mainline but literally, as you can see here, it's in 410 RC1 and got picked up. And if you want to use, all you need is a debug cable and do an INIT RD. You can take a look at the end of my presentation, I've included a list of references and as part of those references I've got my lead into my initial changes had a bunch of details on the compiler I used, the branch and things like that. So it's just a matter of getting a cross compiler going from linear or for whatever you want and compile it up and then load it onto your phone. It's pretty straightforward, it's actually working. That is one commit, it didn't go into one big chunk, it went in through device tree, through DT bindings, through, what else, some config changes and then the actual device tree changes themselves. But it's all been mainlined and the clocks are there as well, the clocks went through the clock tree. So I just want to give full credit and thumbs up to Bastion Koshar. He did a, hopefully I didn't mispronounce his name, he did a fantastic job in getting the global clocks working. If it wasn't for him I think I would have been scratching my head a lot longer and he really pulled it together and he did a great job. I was quite impressed with his effort in getting the clocks, being able to pull the clocks together and working. It's a true testament to geographically diverse people talking and working together for a common interest was actually quite nice to see. Here's an example of what was needed for the yellow. I highlighted the yellow on purpose. It's there to show you that the string that I highlighted, if you look it's all the same string. It's blsp1 underscore ur1 underscore apps underscore clock underscore source. If you're forward porting anything at all, please try to keep the names similar because it's going to make people's lives when you're grepping two trees a little bit easier and it's going to make, from my perspective, grepping trees and looking at an older kernel versus a newer kernel trying to understand what was done before versus now, for example, on the MSM8996, trying to look at the older kernels comparing it to what's there now, keep the names the same to make people's lives easier or at least as close as possible so you get some kind of clue as to what this variable or what this thing does or is. That was the one problem I had. This is an example of what was done on the left is mainline and that is what he used as a reference, the 8916 because it was in the 310 kernel at the time and there's the mainline version. You can see it's fairly similar but there's enough differences that you're sort of like, okay it's not quite the same but it's similar enough that you can kind of guess. But there's other problems, there's other little subtleties and some of the names aren't quite similar and some of the clocks aren't quite similar so that's where you start getting tripped up. It is the other issue that we had and the other issue that he wanted me to bring up to make sure people are aware of is the lack of documentation. There's nothing out there produced by the vendors to give to the public so when I first set out I wanted to go and find the documentation for this before I started and I couldn't find it anywhere. I knew people in Qualcomm who had the ability to provide the documentation to us and even on an NDA they still wouldn't provide it to us. It's unfortunate, I'm not going to judge either way that's not why I'm here, I'm just trying to let people know that having the documentation would be a nice thing but it's not essential. If the code is published you can use the code as a reference it makes life a little bit more difficult but it is doable so I don't care either way. Ideally documentation and having it available freely in opening and being able to sign an NDA would be even better but using downstream code is fine. That way when somebody reviews your code and says hey you haven't done it quite correctly well that's how downstream did it, sorry. Unless somebody from Qualcomm or Kotorora or Lanero can explain to me why it was done like that before that's what you're going to get so that's what happens. It just benefits everybody if somebody can explain it or if the documentation available but to Qualcomm and Kotorora and Lanero's credit they've been fantastic at providing not documentation but answers on IRC and through email and they've been very cooperative and collaborative from the different people I've worked with. I've got nothing but praise for them as a company to work with and collaborate with as well as the people at Lanero. This is an example. It kind of looks close but it's so slight. It's different enough that it's not something you want to tackle after a couple of years.  Here's another example of the downstream version versus the mainline version of... That actually should be on the left. It should be 96. That's a typo. I'll fix that before I post it. As you can see... Actually, no, it's not. This is the version that I'm looking at because I'm looking at PCI and I'm trying to figure out because one of the things I'm thinking about tackling next is Bluetooth and PCI is one of them and I'm trying to figure out what PCI clocks and what branches do I need and I know that the 8992 clocks are fairly similar I think they're fairly similar to the 8996. I'm trying to find some breadcrumbs in the current version of the 8996 that I can use to understand the 8992 version in the downstream. These are the kind of things that you can brace yourself for when you're looking. You have to guess and maybe hope that some of the breadcrumbs of what's there match up what you can find and see if you can connect the dots. Here's a quick sampling of the files that are available in downstream. On the top is downstream. On the bottom is mainline. Mainline, there's not that many clocks. We'll get the clock people to add a few more but that's just my hopefulness and wishful thinking and then the top window is what's there for the downstream stuff and you'll see that there's a lot of them and there's a lot of various clocks and a lot of different things that you try to match them up and try to piece it together and it can be kind of difficult. I was using 310 as a reference but somebody from Lanaro pointed out that there was actually a 318 version which matched up with the 89.96. Now I've been using that and it's been kind of helpful. I couldn't find it before but it took some click here, click there, click there, go to quarter or click there, click there, do this, click there. Oh, there it is, sweet. So then once I finally found, somebody showed me where to find it, I was able to find the 89.96 stuff and match that up. Some of the things that I've learned along the way, some of the things I'd like to pass on to you guys that I think to be useful if you wanted to tackle something like this is try to get things sent upstream as fast as possible.  The faster you get it to some kind of mailing list for review, the faster other people can pick off patches and try them for you. So that's one of the things that I've been doing actually. I've been looking at some of the stuff that the narrow folks have been doing or the quarter or and I'm like, oh, off a mailing list. I'm like, oh, let me try that patch. That could be useful for me. I'll go and grab it, put it in my tree and either make a change to my code and it'll turn out something that actually works and then I can add my tested by or I can offer some suggestions to them or like the pin control, I found some errors in some initial versions of the pin control that I had done myself without documentation pointing out that, yes, you missed two or three little things here and they were able to update it. So be active, get involved, try to see what's there and try to keep an eye on the mailing list and also jump on to IRC periodically because that's where a lot of the stuff gets resolved or a lot of the questions get answered. The people on IRC, the MSM IRC mailing list, it's at the end of the presentation. Fantastic and answering questions. I encourage you to join, ask them questions, be active. Even if you don't have a phone or you're not interested in forward reporting, get in and look at some of the patches, ask questions, get involved, introduce people that want to be part of this into that. There's thousands of ways that you can get involved as a contributor to the community, not just by submitting code, but reviewing code, maybe putting together some instructions, looking for typos, spelling mistakes, just eyeballing things. I can think of thousands of things that you can do as an individual. So some of the things, so somebody asked me at one point when I was at Plumbers, what's the end goal or what's the final thing that I want to see happen with this? I'm not necessarily interested in seeing this thing fully mainline or working 100% mainline. The thing that I think would be more important to me or what I'd rather see and be more rewarding is that somebody from the community or somebody not necessarily from the community, somebody that's new to Linux, that wants to try kernel hacking or wants to consider going down the path of working on the Linux kernel, maybe has a phone like this and says, okay, I'm going to go and build this debug cable following the instructions.  It would encourage them to consider the path of going down the kernel hacking or the kernel development path. That to me would be a far more rewarding and be far more interesting to me to see somebody do something like that versus getting the whole phone working because it's just a phone, it's just a device, but having people inspire somebody or motivate somebody to actually get involved in this community that's never been part of it before, I think that's far, far more rewarding as a person. Maybe 10 years ago I would have said, yeah, we can cure world hunger, we'll get the whole thing working. I'm a lot more realistic now. I've been around, I know full well that sometimes your rose-colored glasses aren't necessarily as rosy as you think they are and sometimes you can't necessarily get everything going, but I would love to see people new at the community get involved and actually be part of it. That to me would be a lot more rewarding than seeing the phone fully functioning. Some of the things that I'm kind of summarizing that some of the things that I see is everybody's sort of hell bent on getting their name on X number of lines of code changed in the kernel. I am just as happy seeing my name on reviewed by or tested by or I helped with whatever or provide feedback to people or being able to be a number two in somebody's patch that they've put in a lot of effort into. That to me says, you know, taking a step back and actually being the guy on the side providing support to somebody else is very valuable because when I was going through this, I was like at V4 or V5 and I was getting frustrated and believe it or not there were people who never knew were paying attention to these, I would have dreamed they were paying attention to these patches and the mailing list and they actually sent me an email directly and said, it's great to see that you're working on this, keep going, I see that you're getting, it looks like you're getting frustrated. Continue on cheerleader rah rah rah toward a mentality. That's just as valuable as submitting code into the kernel in my opinion. The guy that's been sort of beaten on trying to get the stuff done is frustrated and having somebody motivate them or giving them that inspiration is very valuable. So consider that as a contribution as well. A lot of people that I talk to or their mentality is okay, it's big and scary, it's ugly, it's not. People are very supportive, they're willing to help. My experience in doing this was actually very positive and I was like, please, give it a whirl, try it.  So at this point I was going to kind of bring what I wanted to do was brainstorm, we've got 15 minutes left. I want to brainstorm with you guys ideas and reasoning behind the next subsystem that hopefully we as a community could tackle, but I guess it will be me, if you guys could ideally try to help, it would be fantastic. So the reason why I did the initial one CPU and NRD was because, and get it mainline as fast as possible so other people can get involved. Now I'm thinking, okay, I've got the onboard storage working, the patch has been out there, they have it mainline or not, I'm not sure if they got picked up, I'll loop back around and get them, let's pretend that they're fully functioning and they are mainline. So what's left? What are some of the subsystems that we could tackle next? And it would be the screen, okay? So if somebody, having the screen there, yeah, that's all fine and dandy, but how do you type, what do you use to type? USB, I was thinking at plumbers, USB would be a good candidate, Wi-Fi, IDC, spy, I'm just reaming off different subsystems. Can anybody think of a different, a subsystem that would be, I guess we have to need a microphone, or speak loud and I'll repeat it so that the recordings can capture it. Go ahead. Yeah, I leave mine connected to my computer the whole time. I don't actually, okay, to be honest, I don't consider this a phone, I just use it as an embedded board. So if I take it to a coffee shop, it's not a bare board and it doesn't look that bad. To me, it's just an embedded target. There's no difference between a bare board and this phone. It has serial, I have CPU, I treat it like an embedded target as an embedded guy. I can just leave it on a table and it looks like it's being charged. So you're right, battery charging, so maybe the narrow folks could start tackling that. I wanted to, I was thinking more in terms of a subsystem, oh, I turned it on somehow, a subsystem that would allow people to build off of the stuff that's already there, maybe not having a debug cable. Maybe if they wanted, I was thinking maybe Bluetooth would be the next one or USB. I'm not sure what state USB is currently in mainline or if it's close enough because you could, if USB was close enough that we could maybe use that, get that working and you could actually log in to the device and work like that and then you could use crash dump and then what would be the, what would be a common sense order of things that could be tackled. I'm thinking Bluetooth, USB, Wi-Fi so you can get maybe, you could log into the device with maybe a drop bare. I'm trying, okay, so I'm trying to do everything using an NRD and that has proved to be very difficult. I've run into problems with it. I can't seem to get a RAM disk bigger than 2.1 megs for some reason. I've moved the RAM disk around in memory in different places. I've tried all the different combinations. When you do a make boot image, I just can't seem for the life of me to get anything more than two megs working. So if anybody here knows how to get a large, the reason being is I don't want to wipe out what's on the phone. I want to keep it intact so I can go back and look at what was done in 3.10 so I can get, because I don't have documentation, I need 3.10 to be functioning. So I need a fully functioning phone so I can poke at Bluetooth or poke at PCI, print stuff out in the serial console so I can see what's going on. That again is something that I encourage you to, it's a great skill to learn is that figure out the subsystem you want to tackle and then try to track down old code because you can learn a lot about different subsystems by forward porting it. So if you want to learn something on PCI, forward port PCI, you can track down the code and the old code and then you can put all kinds of prints all over the place and then try to get the new stuff working. That's an amazing way to learn how this stuff works. I would definitely encourage everybody to try something like this. It's an unbelievable, great learning experience. So I decided to tackle Bluetooth because I thought all right, USB at a time when I was thinking about it may not have been all that stable, may not have been quite there yet or mature so I thought Bluetooth, I'll tackle that. So here's the logic behind Bluetooth and the path that I took and the way that I did it. Hopefully some of the tips and the way that I'm doing it will be beneficial to others and you can maybe learn something from it and I would like to learn something from you guys for me to me as well. So if you look at it, the first thing I did was I went to the teardown site. There's a place in Ottawa where I'm from, it's actually Canada, ChipWorks who does reverse engineering of products to describe what's in each of these different ones. So I went to the teardown site, I went to ChipWorks and I found what was actually on the phone for Bluetooth. The 5X and 6P apparently have different Wi-Fi modules but this phone has the QCA 6174 and that's the device itself. And it also, putting breadcrumbs in the older kernels it also actually has using TTY HS0 as its way of communicating. So it goes through PCI, this chip is on a PCI bus and the Bluetooth software, the Bluetooth Android Bluetooth stack talks to it through TTY HS0. Then I looked at different things on the web to try to figure out, okay, how does this all fit together? I don't really know much about Bluetooth so I decided to go and poke around and try to understand these things. So I found some stuff on the different Kotorora in different places for Lib Bluetooth and I found that there's different reset commands. You got to hit it with a GPIO to turn on Bluetooth, you got to send the reset command and then all the data starts flowing when you get through the serial console after you do this initial stuff. So these are some breadcrumbs that I'm able to actually get some logic and try to understand the different things. So here's kind of the thing after poking around and looking around here's the things that I think I need. I'm sure there's gonna be a lot more. I'm sure I'm gonna trip over all kinds of different things that I never anticipated. But this is kind of the logic behind the start. Poking around, kind of looking at downstream the basic flow. So here's what I think I'm gonna need. PCIe clocks. The PHY clocks as well. I'd like to thank another linearo person for pointing me at their PCIe enablement for the MSM 8996. It gave me some clues as to some of the things I'm gonna need to get going. So again, another thumbs up to the and kudos to the linearo folks. So I'm gonna need to get the PHY working. I'm gonna need to get, again, the PCIe. There's the chip. And after beating around Google, I found that the QCA6174 is supported by the Athros 10K chip. I don't know much about the code. I'm still kind of trying to figure it out. What I think I'm gonna do is I'm gonna try and use the back ports. I'm gonna try and get the Athros chip working on the the 10K code. I'm gonna try and get it working on the 310 kernel using the back ports. I mean, as an experiment to see if that works. If that works, and that tells me that the code is actually functioning. And I can use the mainline version of that. So I found that the back port people have support for the Athros, the latest and greatest Athros 10K driver working on 310 using the back ports project. So that's something that I'm gonna actually look at and try to understand the code to verify that it's actually functioning. I know I need to get RPM, SMD communication working. That's another thing. It sort of works. There's some gotchas here and there that I need to iron out and discuss with Bjorn. I don't know if he's here. I'll track him down.  I haven't quite figured out those pieces yet. I'm thinking the easiest way at this point would be to use blues instead of the Android bionic because it seems like there's more information about blues. So this is where I'm trying to get. I'm trying to use I'm trying to avoid modifying the onboard storage as much as possible. Or because I can't get an NRD running, I'm trying to figure out, okay, is there a partition on the phone that I can use to put the stuff that I need on there because there's like 45 partitions or something like that. So I would like to maybe put a RAM disk on there and then maybe do a charoute once I boot from a RAM disk charoute into one of the partitions and go from there because I kind of want to leave the phone alone. So that's where if anybody has any suggestions or any follow up with me, I would very much appreciate it. Send me an email, come and talk to me afterwards and raise your hand and offer suggestions. So I'm here to solicit help. Anybody that wants to participate, anybody that wants to help, I have debug cables that the Google folks are kind enough to give me. They've made them. They didn't have the duct tape versions. They did it more professionally looking but I prefer duct tape. That's just my way of doing things. That's the way I roll. There's so much things to be done. If you have a phone it's no longer the latest and greatest so you can sacrifice it. Maybe if you want to play with it, let me know. I've got some debug cables I can give to people. I made a couple. I've given one or two away. I've got a bunch at home. I was going to bring them with me to give them out here but I forgot them at home unfortunately. I'll mail them to you. I don't mind spending three or four dollars mailing them to people and hopefully people will be willing to help out. So here's a few things that I can think up at the top of my head that I know need some help or some work. The RAM disk, I need help with that immediately so that I can continue my work or point me to a partition that I can explode a RAM disk to so I can charude into as I said earlier. Anybody who wants to take on a subsystem please do so. Don't look at me as owning this thing completely myself. That's not something I'm doing. I did the initial heavy lifting. Now it's up to you guys to help out. Hopefully you guys can find ways to help out and be part of this just because it was one serial and it sounds like one CPU serial and an NRD. Oh no, that's not very much. Oh yes it is. It's a lot more work than you think. When there's nothing coming out of the console you have no idea what's going on. At least now you have a console and some serial debug so you've got some ways of finding out what's going on. You can always use KGB over serial but depends on your view of KGB and let's not go down that road. You can help me investigate various subsystems explain some of the different aspects of Android that I may not be familiar with because I'm coming from the embedded systems background and roll my own NRD. I haven't really had a chance. I tried building Android the full AOSP and it took I think half a day and I gave up. I just kept building and it was just too long. I said I can't do my own NRD in like 25 minutes. I don't want to wait half a day for this thing to build. So I gave up on that. If you have any interest in playing with the kernel or getting involved please come and talk to me. I would like to work with you. I would love to see as I said I would love to see somebody who's never tackled this before express an interest and get involved and learn and turn it into a potential career. That to me would be more rewarding than seeing the whole phone functioning. That speaks volumes for the community and that's just my opinion. I guess maybe as I get older I kind of see more of the getting people involved rather than changing the world. It's more seeing people learning and growing than necessarily getting everything functioning and changing the world. Documentation is also an area that people could help out with. A wiki updates some wikis or point me to some wikis that I could add things to that I've tripped over or I've seen or there would be a value. Here's my list of references and links and I mentioned of Steven Boyd's presentation on YouTube link and the debug cable I put together the link there as well as Google has published the Gerber files and all the like the actual schematics for it so if anybody knows how to build anything like that or is willing to do that come and talk to me because it would be really cool if we could do a run of a hundred of them or 200 of them or 300 of them and for a cheap price and then maybe we could get a company that's got some money to build them and then we could give them out to people in the community as a community donation or something like that that was something I was discussing with the linear folks a while ago doing a run of two or three hundred finding a company to pay for them and then handing them out to people that are interested in volunteering. That's pretty much all I wanted to discuss any questions or comments or suggestions I've got two minutes left I can repeat it I don't think it's a microphone I'll just repeat what your question is so that people recording at home so anybody have any questions or comments or suggestions anybody willing to volunteer question here they're low hanging fruit I agree they're low hanging fruit but what would it buy us a touch okay I can see peripherals okay but I gotta figure out what the peripherals are I don't have any documentation I gotta figure out what peripherals are hanging off of I2C first touch okay so there's a lot of things that I don't know that I'm just trying to figure out as I go along so I'm not gonna pretend that I actually know how this works I just look at it and say okay this looks like an interesting thing maybe I'll go learn this and that's what I find fun and interesting and motivating and that's one of the reasons why I did it is there any other comments or questions anybody way back there that I can't see anybody you have to come spy I2C sensors what would the sensors give us what would it buy us I'm thinking like bluetooth so people can log in and start developing but what would be the motivation for doing I2C spy and sensors what would be the motivation low hanging fruit okay so that other people can pick off different peripherals you can't access the sensors I can repeat it because it's not I didn't catch all of it okay mainline IMU code so after this come and talk to me and I'll give you my card and send me some more details I'd be great that's something that I'd like to see I don't know enough about it I'd have to start learning something so any other questions I literally am out of time we started two minutes late but that's fine anybody else any other questions concerns anybody want a free cable for volunteering to help anybody anybody come on you'll take one okay come and talk to me so see me outside I'll stand outside obviously I'm pretty easy to find with my orange shirt so come and see me outside after this so the next people can get in and we can discuss things further thank you very much and thanks for attending I appreciate everybody's time