rewrite of memory detection code, should be fix #1909
[openwrt/openwrt.git] / target / linux / adm5120-2.6 / files / include / asm-mips / mach-adm5120 / adm5120_info.h
index 3e0acba329b6f0e8b3028bed5e76954255c5d1b3..5c6424418a1ea06fddeeab5f6f0ea2c3b2690d09 100644 (file)
 
 #include <linux/types.h>
 
-struct adm5120_info {
-       unsigned int product_code;
-       unsigned int revision;
-       unsigned int cpu_package;
-       unsigned int nand_boot;
-       unsigned long cpu_speed;
-       unsigned int boot_loader;
-       unsigned int board_type;
-       unsigned int iface_num;         /* Number of Ethernet interfaces */
-       unsigned int has_usb;           /* USB controller presence flag */
-       u32 window_addr;                /* Flash address */
-       u32 window_size;                /* Flash size */
-};
+#define ADM5120_BOARD_NAMELEN  64
 
-#define CPU_SPEED_175          175000000
-#define CPU_SPEED_200          200000000
-#define CPU_SPEED_225          225000000
-#define CPU_SPEED_250          250000000
+struct adm5120_board {
+       char            name[ADM5120_BOARD_NAMELEN];
+       unsigned long   mach_type;
+       unsigned int    iface_num;      /* Number of Ethernet interfaces */
+       unsigned int    has_usb;        /* USB controller presence flag */
+       u32             mem_size;       /* onboard memory size */
+       u32             flash0_size;    /* Flash 0 size */
+};
 
-#define CPU_PACKAGE_PQFP       0
-#define CPU_PACKAGE_BGA                1
+extern struct adm5120_board adm5120_board;
 
+extern unsigned int adm5120_boot_loader;
 #define BOOT_LOADER_UNKNOWN    0
 #define BOOT_LOADER_CFE                1
 #define BOOT_LOADER_UBOOT      2
 #define BOOT_LOADER_MYLOADER   3
 #define BOOT_LOADER_ROUTERBOOT 4
-#define BOOT_LOADER_LAST       4       
-
-#define BOARD_TYPE_UNKNOWN     0
-#define BOARD_TYPE_WP54G_WRT   1
-#define BOARD_TYPE_WP54G       2
-#define BOARD_TYPE_WP54AG      3
-#define BOARD_TYPE_WPP54G      4
-#define BOARD_TYPE_WPP54AG     5
-#define BOARD_TYPE_NP28G       6
-#define BOARD_TYPE_NP28GHS     7
-#define BOARD_TYPE_NP27G       8
-#define BOARD_TYPE_WP54Gv1C    9
-#define BOARD_TYPE_RB_111      10
-#define BOARD_TYPE_RB_112      11
-#define BOARD_TYPE_RB_133      12
-#define BOARD_TYPE_RB_133C     13
-#define BOARD_TYPE_RB_150      14
-#define BOARD_TYPE_RB_153      15
-#define BOART_TYPE_LAST                15
-
-extern struct adm5120_info adm5120_info;
+#define BOOT_LOADER_BOOTBASE   5
+#define BOOT_LOADER_LAST       5
+
+extern unsigned int adm5120_product_code;
+extern unsigned int adm5120_revision;
+extern unsigned int adm5120_nand_boot;
+
+extern unsigned long adm5120_speed;
+#define ADM5120_SPEED_175      175000000
+#define ADM5120_SPEED_200      200000000
+#define ADM5120_SPEED_225      225000000
+#define ADM5120_SPEED_250      250000000
+
+extern unsigned int adm5120_package;
+#define ADM5120_PACKAGE_PQFP   0
+#define ADM5120_PACKAGE_BGA    1
+
+extern unsigned long adm5120_memsize;
+
 extern void adm5120_info_init(void);
 
+static inline int adm5120_package_pqfp(void)
+{
+       return (adm5120_package == ADM5120_PACKAGE_PQFP);
+}
+
+static inline int adm5120_package_bga(void)
+{
+       return (adm5120_package == ADM5120_PACKAGE_BGA);
+}
+
 static inline int adm5120_has_pci(void)
 {
-       return (adm5120_info.cpu_package == CPU_PACKAGE_BGA);
+       return (adm5120_package == ADM5120_PACKAGE_BGA);
+}
+
+static inline int adm5120_has_gmii(void)
+{
+       return (adm5120_package == ADM5120_PACKAGE_BGA);
+}
+
+static inline char *adm5120_board_name(void)
+{
+       return adm5120_board.name;
+}
+
+static inline u32 adm5120_board_memsize(void)
+{
+       return adm5120_board.mem_size;
 }
 
 #endif /* _ADM5120_INFO_H */