Date: Mon, 04 Jun 2012 17:37:26 -0700 From: Bakul Shah <bakul@bitblocks.com> To: Torfinn Ingolfsen <torfinn.ingolfsen@getmail.no> Cc: freebsd-arm@FreeBSD.org Subject: Re: Support for Raspberry-PI Message-ID: <20120605003726.7AC04B827@mail.bitblocks.com> In-Reply-To: Your message of "Mon, 04 Jun 2012 22:51:32 %2B0200." <20120604225132.cff152c4.torfinn.ingolfsen@getmail.no> References: <CAB3Sx6f7TPkfAfsmS_SWch5kGkyxv9=43nV66ToDRQmG4vv9ug@mail.gmail.com> <4F533E46.1070105@freebsd.org> <20120603201229.3fd31c98.torfinn.ingolfsen@getmail.no> <4FCBC564.3060404@freebsd.org> <20120604172053.D4674B827@mail.bitblocks.com> <4FCCFFD8.9020800@gmail.com> <20120604185718.A7C8EB827@mail.bitblocks.com> <20120604225132.cff152c4.torfinn.ingolfsen@getmail.no>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 04 Jun 2012 22:51:32 +0200 Torfinn Ingolfsen <torfinn.ingolfsen@getmail.no> wrote: > On Mon, 04 Jun 2012 11:57:18 -0700 > Bakul Shah <bakul@bitblocks.com> wrote: > > > Because no bsd runs on the raspi as yet but linux does! There > > is no u-boot or netboot on it either. The GPU loads a file > > called kernel.bin from a FAT partition. So the idea is you > > FWIW, these are the files on said FAT partition (from the Debian 6.0.4 image > for the Pi): > root@kg-v7# ls /mnt > arm128_start.elf boot_enable_ssh.rc issue.txt loader.bin > arm192_start.elf bootcode.bin kernel.img start.elf > arm224_start.elf cmdline.txt kernel_emergency.img > > I don't know if start.elf, bootcode.bin or loader.bin is the actual "first st > age" loader. > start.elf is just a copy of one of the armXXX_start.elf files; this sets up h > ow much > memory (of the 256 MB) for the CPU and how much for the GPU. There is a Raspi forum thread on config.txt that lays out the boot sequence but not in one place and it is evolving. Basically: 1. Stage 1 boot is in the on-chip ROM. Loads stage2 in the L2 cache! 2. Stage 2 is bootcode.bin. Enables SDRAM and loads stage3 3. Stage 3 is loader.bin. Knows about elf format and load start.elf 4. start.elf loads kernel.img (+ it is the main gpu code). It reads config.txt, cmdline.txt and bcm2835.dtb If the dtb file exists, it is loaded at 0x100 & kernel @ 0x8000 Else if disable_commandline_tags is set load kernel @ 0x0 Else if load kernel @ 0x8000 and put ATAGS at 0x100 See Issue 16 in https://github.com/raspberrypi/linux/issues 5. kernel.img, is the *first* thing that runs on the ARM processor. So this is simpler -- you don't really need u-boot to load the kernel. Some sort of loader would be handy to be able to net boot or local boot one of multiple OSes but for kernel development you need not wait for that.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120605003726.7AC04B827>