Date: Sat, 18 Nov 2006 01:26:59 -0700 (MST) From: "M. Warner Losh" <imp@bsdimp.com> To: zaitsevbros@mail.ru Cc: freebsd-arm@freebsd.org Subject: Re: At91rm9200 how to start with FreeBSD Message-ID: <20061118.012659.-1876864065.imp@bsdimp.com> In-Reply-To: <7395689.post@talk.nabble.com> References: <7380637.post@talk.nabble.com> <20061116.093638.63053940.imp@bsdimp.com> <7395689.post@talk.nabble.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <7395689.post@talk.nabble.com> Zuy <zaitsevbros@mail.ru> writes: : Thank you very much. : I was realy impressed to get such a quick and detailed answer. : : My board includes SD card and 1mb Serial DataFlash. I'm going to use : dataflash to store bootstrap tools which will load kernel from SD card. But : your board has 16 MB parallel NOR Flash and 32 MB parallel NAND Flash. : Why you do not use this flash memory for storing and runing bootstrap tools? Well, the KB9202B has the 16MB of NOR Flash. The A does not. The 32MB parallel NAND flash isn't available on the custom board that my company is building. In fact, I was told initially that I'd be lucky to get a 256kB part, and 240kB would be for an FPGA image... : You mentioned bootstrap tools such as boot0, boot0iic, boot0spi and boot2. : Where can I get them? : Boot0 and boot2 I found in /usr/src/sys/boot but there is no folder for ARM. : I use FreeBSD 6.0 (6.2 is downloading now) may be that is the reason. In -current, they can be found in /usr/src/sys/boot/arm/at91, as well as on 6.2. I believe that the 6.2 versions are less advanced. : And the last question about compilation process. As you wrote, following : sequence will give the compiled OS for arm architecture: : % setenv TARGET arm : % setenv TARGET_ARCH arm : % make buildworld : % make distribution DESTDIR=/mnt : % make installworld DESTDIR=/mnt : : But how the system will know that I need compilation for ARM9. Where it will : get drivers for basic internal peripherals of AR91RM9200? I think that I : have to prepare configuration file like I do for compiling kernel for I386, : but I cannot find it. It looks like they are in the /usr/src/sys/arm/conf. I : found there two files IQ31244 and SIMICS. Probably they are configuration : files for IQ31244 and SIMICS development boards. So I think I have to make : the same file for AT91RM9200. May be you can give me the idea where to get : such file like an example? You are correct in that you need a config file. In 6.2 and current there is a KB920X file that can be used as a basis for this support. Warner : Best regards, : Ivan Zaitsev. : : : M. Warner Losh wrote: : > : > In message: <7380637.post@talk.nabble.com> : > Zuy <zaitsevbros@mail.ru> writes: : > : How I'm soldering board based on AT91RM9200 with 16mb SDRAM and othe : > : standartpPeripherals(USB, SD, UART ...). I'm going to run FreeBSD on : > this : > : board, but unfortunately I do not know how to start. : > : I havn't found any files connected with AT91RM9200 in FreeBSD6.0 Stable : > : source files directory. : > : I found from this board that freebsd works on at91rm9200. : > : > Yes. It does. FreeBSD-current has the most up to date tested code : > for this platform. FreeBSD 6.2 will contain the tools you need to : > build it, as well as a slightly less advanced version (the freeze date : > for 6.2 was a while ago). 6.3 is likely to have even more advanced : > support. : > : > : I will deeply appreciate if someone could give me any information how to : > : start working with freebsd on this controller. May any type of tutorial : > is : > : available. : > : I also interesting in main spets I have to do to get freeBSD working on : > : at91rm9200. : > : > At this point there's no "how to" tutorial. Each of the different : > boards based on the at91rm9200 seem to have different boot processes. : > This makes it hard to write something that's generic, but I may try. : > : > Here's the broad outlines. : > : > First, your board will need to have some kind of bootstrap media. : > The atmel part supports parallel flash, iic flash, and spi flash. : > Once you have the basic bootstrap loaded, you will need to load a : > kernel and file system from somewhere. : > : > Given that your board is small, and that you have only 16MB of SDRAM, : > I'd recommend using the SD card for your main storage. If you do : > this, then all you need in your bootstrap is enough storage to load : > from the SD card, as well as storing the MAC address. The bootloader : > is responsible for progarmming the NIC's MAC address. The 'boot2' : > program allows for one to customize how things are done with it and : > load off of an SD card. It takes about 9kB of space right now. The : > Kwikbyte KB9202 board that I used has a 16kB IIC EEPROM that this : > loader will fit into. I use the upper part (last 256bytes) of the IIC : > to store the MAC address. This program should be fairly easy to : > modify and adapt to your needs. I've tried to make it as generic : > possible, but some custom work might be needed. : > : > There's some bootstrap tools called boot0, boot0iic and boot0spi that : > will load and run a program, load and burn to iic an image and load : > and burn to spi flash respectively. The AT91RM9200 goes into 'baby : > bird' mode if none of its boot images are good. This is nothing more : > than xmodem. When I bring a board up, I usually load boot0iic and : > boot2 using xmodem. It turns out to be quiet simple. Each board has : > some low-level init that is the hardest part to get right since you : > have to know the base clock frequency as well as the organization of : > the SDRAM. : > : > Once you have 'boot2' loading from some media, then you need to get it : > loading a kernel from an SD card. Today, you have to load a kernel : > linked to be loaded at a physical address (cognet sent me patches to : > allow virtual too, but my KB9202's iic eeprom is dead). There's a : > special kernel target call 'trampoline' or 'kernel.tramp' that will : > create a compressed image suitable for booting (use kernel.gz.tramp). : > : > An alternative is to use bootiic or bootspi to load a kernel image : > from somewhere and jump to it. : > : > To make the bootable SD card, I've been using some custom scripts that : > I've had laying around forever for some semi-embedded FreeBSD/i386 : > work that my company has been doing for the past 10 or so years. Most : > other people I know do some variation on: : > : > # plug in the SD card to a usb whatsit and load umass : > % fdisk -I da0 : > % disklabel -w -r da0s1 auto : > % newfs /dev/da0s1a : > % mount /dev/da0s1a /mnt : > % cd /usr/src : > % setenv TARGET arm : > % setenv TARGET_ARCH arm : > % make buildworld : > % make distribution DESTDIR=/mnt : > % make installworld DESTDIR=/mnt : > # hack /etc/rc.conf, /etc/fstab and /etc/ttys : > % umount /mnt : > : > But others have also used NanoBSD to automate things somewhat. : > Freesbie also has some basic cross compilation support. FreeBSD : > -current will give you the most support, but 6.2-release will have : > most of the basics, including the build tools. After the RELENG_6 : > branch is unfrozen, I'll be doing another merge of all the goodies : > that I've done. : > : > One caveat. The usb support is minimal at this stage. There's some : > issues that we're trying to track down that keep it from working. My : > company doesn't need usb (but that may change after the latest : > hardware review), so I've spent no energy there. : > : > Feel free to ask questions. the more people that ask, the bigger my : > collection of email on the topic gets, and the easier it will be for : > me to synthesize a tutorial. Also, if there are areas that I've been : > vague, please don't hesitate to let me know. : > : > Warner : > _______________________________________________ : > freebsd-arm@freebsd.org mailing list : > http://lists.freebsd.org/mailman/listinfo/freebsd-arm : > To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org" : > : > : : -- : View this message in context: http://www.nabble.com/At91rm9200-how-to-start-with-FreeBSD-tf2643928.html#a7395689 : Sent from the freebsd-arm mailing list archive at Nabble.com. : : _______________________________________________ : freebsd-arm@freebsd.org mailing list : http://lists.freebsd.org/mailman/listinfo/freebsd-arm : To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org" : :
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061118.012659.-1876864065.imp>