Linux - Embedded & Single-board computerThis forum is for the discussion of Linux on both embedded devices and single-board computers (such as the Raspberry Pi, BeagleBoard and PandaBoard). Discussions involving Arduino, plug computers and other micro-controller like devices are also welcome.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Currently i'm working on arm-linux(embedded system).
The process of my booting up is that initially i have got a bootloader(u-boot) which initializes kernel and then kernel takes care of rest. But can anyone please tell me a more regarding the basics:
1) What happens when initially the board is powered on or reset(beginning from cpu)?
2)bootloader initializes kernel, but who initializes bootloader? I mean something should be there which is activated by default on being powered up or reset, which in turn must be starting bootloader? (this is what i think)
I have tried to search in google regarding this, but everywhere i get the results directly beginning from uboot, but who starts uboot, that i haven't found upto now.
Can anyone please help me regarding these basics?
If possible, please provide me with the links where i can get these details both from hardware and software point of view.
I'm not 100% sure, but I believe that the CPU initiates the boot loader by jumping to (reading) a pre-determined address (usually in flash memory, but could be EEPROM etc.) and then using it as an offset knows where to find the boot loader which then mimics a bios and sets up buffers, irq's etc. After this it then loads the OS and jumps to the start address where it loaded the OS.
With a standard PC (i386 et.al.) the bios performs the action, and also initialises any buffers, irq's etc. I'm not sure if the bios initiates the CPU, or the CPU initiates the bios in the same way the embeded chip does.
(edit)
Actually, thinking further, I believe the CPU jumps to the address of the bios and starts executing the code from there.
(/edit)
Last edited by JonathanWilson; 12-29-2010 at 01:26 PM.
I'm not 100% sure, but I believe that the CPU initiates the boot loader by jumping to (reading) a pre-determined address (usually in flash memory, but could be EEPROM etc.) and then using it as an offset knows where to find the boot loader which then mimics a bios and sets up buffers, irq's etc. After this it then loads the OS and jumps to the start address where it loaded the OS.
With a standard PC (i386 et.al.) the bios performs the action, and also initialises any buffers, irq's etc. I'm not sure if the bios initiates the CPU, or the CPU initiates the bios in the same way the embeded chip does.
(edit)
Actually, thinking further, I believe the CPU jumps to the address of the bios and starts executing the code from there.
(/edit)
Thanks for your reply, but i want a sure shot answer as i'm stuck off in this case. What you have replied that i also think, it happens for sure, but then in some websites i have read that initially there is a x-loader which is begun by cpu on being powered up. This x-loader in turn initialises uboot and so on. Well, i'm really confused as to what happens where?
The wiki http://en.wikipedia.org/wiki/Booting about half way down mentions omap... basically in ROM embeded on the processor there is an initial bootloader (bootstrap code) that can be used when there is no other boot loader, such as a brand new machine with the flash NAND empty. This allows very minimal control through JTAG and/or serial to allow the loading of say Uboot onto the NAND and I believe it can also load an OS from other suitable media such as nand or MMC, however it works as a command line interface so the instructions must be entered every time manually unless the processor boot code sees another bootloader at the given memory location.
i donno ,whether this clarify your querry
First loader in the flash is loaded ,then it loads u-boot->it loads kernel(zipped kernel into unzipped form)->initrd.
i donno ,whether this clarify your querry
First loader in the flash is loaded ,then it loads u-boot->it loads kernel(zipped kernel into unzipped form)->initrd.
Thanks a lot appilu. But it would be great if you can explain it in details. If you know any links where these things are mentioned in details, then please do tell me. Or rather if you have any documentation, then this is my mail i.d- cooo.sattu.oool@gmail.com
thanks a lot appilu and cnxsoft.
Appilu, the link that you have provided has really provided a great deal of details regarding booting. Now i have got a fare enough idea of what happens during the boot process.
I wanted one more help regarding the embedded linux.
Do you have any idea regarding the database connectivity from an embedded linux? To be precise, we have a mssql or mysql server in a remote p.c and we need to connect it from an arm-embedded-linux system. For that we require this ODBC and free TDS drivers installed on my board. We have tried a lot of options from net but still not able to connect. Can you help regarding this? It's actually urgent and the biggest problem with the embedded thing is that no setups are available and we require source codes which we can cross-compile for our board. If you all can help regarding this, that would really be great.
I used SQLite and Berkeley DB on embedded systems, but I suppose it's not possible in your case.
MySQL can also be used in Embedded Systems, uclinux release has a version of mysql.
Download http://www.uclinux.org/pub/uClinux/d...101026.tar.bz2.
The code is in user/mysql directory but I never used it.
I used SQLite and Berkeley DB on embedded systems, but I suppose it's not possible in your case.
MySQL can also be used in Embedded Systems, uclinux release has a version of mysql.
Download http://www.uclinux.org/pub/uClinux/d...101026.tar.bz2.
The code is in user/mysql directory but I never used it.
o.k, i will go through the website. But why i can't use SQLite and berkeley DB in my system? is it not meant for arm-embedded?
o.k, i will go through the website. But why i can't use SQLite and berkeley DB in my system? is it not meant for arm-embedded?
I understood that your server was running MySQL. So if you use SQLite or Berkeley DB in your system, you would have to change the server as well to use SQLite or Berkeley DB.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.