Kaynağa Gözat

The RB513 CF driver is now a module, enable it by default for the RB1xx profile. Fix the membase of the CF driver.

SVN-Revision: 9416
Florian Fainelli 18 yıl önce
ebeveyn
işleme
2514d7f799

+ 15 - 0
package/kernel/modules/block.mk

@@ -182,3 +182,18 @@ define KernelPackage/nbd/description
 endef
 
 $(eval $(call KernelPackage,nbd))
+
+
+define KernelPackage/rb153-cf
+  SUBMENU:=$(BLOCK_MENU)
+  TITLE:=RouterBoard 153 CF Slot
+  KCONFIG:=CONFIG_BLK_DEV_CF_MIPS
+  FILES:=$(LINUX_DIR)/drivers/block/rb1xx/rb153-cf.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,30,rb153-cf)
+endef
+
+define KernelPackage/rb153-cf/description
+  Kernel module for the RouterBoard 153 CF slot
+endef
+
+$(eval $(call KernelPackage,rb153-cf))

+ 4 - 2
target/linux/adm5120/files/arch/mips/adm5120/boards/mikrotik.c

@@ -182,11 +182,13 @@ static void rb150_nand_cmd_ctrl(struct mtd_info *mtd, int cmd,
 static struct resource cf_slot0_res[] = {
         {
                 .name = "cf_membase",
+		.start = ADM5120_EXTIO0_BASE, 
+		.end = ADM5120_EXTIO0_BASE + ADM5120_MPMC_SIZE-1 ,
                 .flags = IORESOURCE_MEM
         }, {
                 .name = "cf_irq",
-                .start = INTC_IRQ_GPIO4, /* 5 */
-                .end = INTC_IRQ_GPIO4,
+                .start = ADM5120_IRQ_GPIO4, /* 5 */
+                .end = ADM5120_IRQ_GPIO4,
                 .flags = IORESOURCE_IRQ
         }
 };

+ 2 - 1
target/linux/adm5120/files/drivers/block/rb1xx/Makefile

@@ -1,2 +1,3 @@
 ## Makefile for the RB1xx CF port
-obj-y		+= bdev.o ata.o
+obj-$(CONFIG_BLK_DEV_CF_MIPS) += rb153-cf.o
+rb153-cf-objs := bdev.o ata.o

+ 1 - 0
target/linux/adm5120/files/include/asm-mips/mach-adm5120/adm5120_defs.h

@@ -30,6 +30,7 @@
 #define ADM5120_SDRAM1_BASE	0x01000000
 #define ADM5120_SRAM1_BASE	0x10000000
 #define ADM5120_NAND_BASE	ADM5120_SRAM1_BASE
+#define ADM5120_EXTIO0_BASE	0x10C00000
 #define ADM5120_MPMC_BASE	0x11000000
 #define ADM5120_USBC_BASE	0x11200000
 #define ADM5120_PCIMEM_BASE	0x11400000

+ 13 - 1
target/linux/adm5120/patches-2.6.23/120-cf.patch

@@ -7,7 +7,7 @@ Index: linux-2.6.23/drivers/block/Kconfig
  	  module will be called z2ram.
  
 +config BLK_DEV_CF_MIPS
-+	bool "CF slot of RB153 board"
++	tristate "CF slot of RB153 board"
 +	depends on MIPS_ADM5120
 +	default y
 +	help
@@ -29,3 +29,15 @@ Index: linux-2.6.23/drivers/block/Makefile
  obj-$(CONFIG_AMIGA_FLOPPY)	+= amiflop.o
  obj-$(CONFIG_PS3_DISK)		+= ps3disk.o
  obj-$(CONFIG_ATARI_FLOPPY)	+= ataflop.o
+diff --git a/fs/partitions/check.c b/fs/partitions/check.c
+index 722e12e..60af038 100644
+--- a/fs/partitions/check.c
++++ b/fs/partitions/check.c
+@@ -526,6 +526,7 @@ exit:
+                kobject_uevent(&p->kobj, KOBJ_ADD);
+        }
+ }
++EXPORT_SYMBOL(register_disk);
+
+ int rescan_partitions(struct gendisk *disk, struct block_device *bdev)
+ {

+ 1 - 1
target/linux/adm5120/router_le/config-2.6.23

@@ -10,7 +10,7 @@ CONFIG_BAYCOM_SER_FDX=m
 CONFIG_BAYCOM_SER_HDX=m
 CONFIG_BINFMT_MISC=m
 CONFIG_BITREVERSE=y
-CONFIG_BLK_DEV_CF_MIPS=y
+CONFIG_BLK_DEV_CF_MIPS=m
 CONFIG_CIFS_DEBUG2=y
 CONFIG_CIFS_EXPERIMENTAL=y
 CONFIG_CIFS_STATS2=y

+ 1 - 1
target/linux/adm5120/router_le/profiles/RB1xx.mk

@@ -7,7 +7,7 @@
 
 define Profile/RouterBoard
 	NAME:=Mikrotik RouterBoard 1xx family
-	PACKAGES:=kmod-madwifi
+	PACKAGES:=kmod-madwifi kmod-rb153-cf
 endef
 
 define Profile/RouterBoard/Description