Atheros PB42
------------

1. Compiler Tool Chain

   Before you can compile the Linux kernel, libraries and applications to
   generate a PB42 image you must install an appropriate compiler tool
   chain. I suggest you use the mips-linux tool chain that accompanies this
   source distribution (the mips-linux-tools-XXXXXXXX.tar.gz package). To
   install this toolchain do:

   1. login as root
   2. cd /
   3. tar xvzf mips-linux-tools-XXXXXXXX.tar.gz

   This package contains binaries of the following tools:

        binutils-2.17
        gcc-3.4.4
        glibc-2.3.6

2. Building the Source

   Follow these simple steps to compile binary images ready to run on the
   Atheros PB42 board:

   1.  tar xvzf uClinux-dist-XXXXXXXX.tar.gz
   2.  cd uClinux-dist
   3.  make menuconfig

       . Choose the "Target Platform Selection" menu item
       . Select the "Vendor/Product" tab and choose "Atheros/PB42"
       . Select the "Libc version" tab and choose "uClibc"
       . "Save and Exit" this configuration

   4.  make dep
   5.  make

   That is it!  The final make step will run through and compile the Linux
   kernel, uClibc library and a sample application set. It will also package
   the result into two files ready to load onto the PB42 board, vmlinux
   and ramdisk.gz.

   The currently only support kernel is 2.6.x and only library is uClibc.
   Don't choose any of the other kernels or libraries for this platform.


3. Loading and Running

   You will need a Atheros PB42 board fitted with the RedBoot loader in
   flash. You should firstly setup RedBoot configuration with a client
   and server IP address (alternatively you can use the builtin DHCP
   support).

   Copy the binary files from uClinux-dist, images/vmlinux and
   images/ramdisk.gz to the TFTP area of the download server.

   To load and run Linux with RedBoot issue the following commands:

        load -r -b 0x80800000 ramdisk.gz
        load -b 0x80060000 vmlinux
	exec -c "console=ttyS0,115200 rd_start=0x80800000 rd_size=4M root=/dev/ram0"

   You should see the Linux boot banner, and then be presented with a
   bash shell prompt. A reasonable utility set is in place, mostly using
   the busybox tool set. By default the rc script will run a dhcp client,
   and so with a local dhcp server in place Linux will acquire an IP
   address.


4. Saving to Flash with RedBoot

   You can setup the flash memory from within RedBoot to directly load
   and run linux.

   The following procedure describes howto setup and load Linux into
   the flash:

     fis init
     load -r -v -b 0x01600000 zImage
     fis create -b 0x01600000 -l 0xb0000 zImage
     load -r -v -b 0x00800000 ramdisk.gz
     fis create -b 0x00800000 -l 0x1d0000 ramdisk

   Then create a boot script to automatically load and run:

     fconfig

        >> fis load -b 0x00800000 ramdisk
        >> fis load -b 0x01600000 zImage
        >> go 0x01600000
   
5. Customizing the Build

   Using "make menuconfig" in uClinux-dist you can customize the kernel and
   application configurations. There is a large selection of packages in
   the application configuration.

   Consult the README file at the top level of uClinux-dist for some more
   information about configuration and building.

