***************** How to build driver into kernel from partial source *****************

This how-to document is used to help user build Promise FastTrak/NAPA/Shasta Seriel 
driver into kernel step by step, I will take FT4100 as a example.

Note: KENNEL_SRC_DIR is the root directory of your kernel source tree location.

Step 1. unpack ft4100_partialb32.tgz and cp ft4100_partial directory to proper location, 
then make proper symbol links.
	
		tar -zxvf ft4100_partialb32.tgz
		cp -rf ft4100_partial KENNEL_SRC_DIR/drivers/scsi
		cd KERNEL_SRC_DIR/drivers/scsi/ft4100_partial
For Kernel 2.6
		ln -s Makefiel_buidin2.6 Makefile

	For 32bit Kernel	
		ln -s ftlib.o.32 ftlib.o
	For 64bit kernel
		ln -s ftlib.o.64 ftlib.o	
For Kernel 2.4	
		ln -s Makefile_buidin2.4 Makefile	

	For 32bit Kernel	
		ln -s ftlib.obj.32 ftlib.obj
	For 64bit kernel
		ln -s ftlib.obj.64 ftlib.obj	

Step 2. set some related macros to header files

	File napa_cfg.h (if you build driver in 2.4 kernel, you need not
modify this file )
		Add  #define _LINUXDRIVER
	
        File cfg_linux.h: 

	Take AMD64 platform as a example:

		you need unmark following two lines to the head of file:

			#define _AMD64B
			#define _64BPLATFORM   	


Step 3. Modified Kconfig/Config.in file in KERNEL_SRC_DIR/drivers/scsi 
	
	Add below section under "SCSI low-level drivers" menu
	
	For kernel 2.6, modify Kconfig file


		config SCSI_PROMISE_FT4100
		tristate "Promise FT4100 Seriel SATA-RAID support"
		depends on PCI && SCSI
		help
	  	This driver supports the Promise FT4100 series SATA-RAID cards.

	  	<http://www.promise.com>

	For kernel 2.4, modify Config.In file
		
		if [ "$CONFIG_PCI" = "y" ]; then
   			dep_tristate 'Promise SX4100 SATA-RAID support' CONFIG_SCSI_PROMISE_FT4100 $CONFIG_SCSI
		fi

Step 4. Modified Makefile in the same location as Kconfig/Config.In

	Add one line to Makefile:

	For kernel 2.6, add following line:

		obj-$(CONFIG_SCSI_PROMISE_FT4100)	+= ft4100_partial/

	For kernel 2.4, add following lines:
	
		subdir-$(CONFIG_SCSI_PROMISE_FT4100)	+= ft4100_partial
		ifeq ($(CONFIG_SCSI_PROMISE_FT4100),y)
  			obj-$(CONFIG_SCSI_PROMISE_FT4100)	+= ft4100_partial/FastTrak.o
		endif

Step 5. Enter KERNEL_SRC_DIR, build kernel with FastTrak driver build in.

		cd KERNEL_SRC_DIR
		make menuconfig  (you need config scsi/scsi disk/FT4100 support as build-in 
				  state (*) in config menu, then save your configuration)

		make / make bzImage

************************************************************************************************* 



	
