1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2025-04-21 12:27:27 +03:00

major cleanup of the ar531x code, improved hardware detection and support for multiple ethernet interfaces

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6307 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nbd
2007-02-16 09:23:15 +00:00
parent ee43602dd3
commit 6869d66ad6
14 changed files with 360 additions and 429 deletions

View File

@@ -106,7 +106,7 @@ int __init ar531x_find_config(char *flash_limit)
if (!bcfg)
return -ENODEV;
board_config = kmalloc(0x1000, GFP_KERNEL);
board_config = kzalloc(BOARD_CONFIG_BUFSZ, GFP_KERNEL);
memcpy(board_config, bcfg, 0x100);
/* Radio config starts 0x100 bytes after board config, regardless
@@ -116,9 +116,9 @@ int __init ar531x_find_config(char *flash_limit)
if (!rcfg)
return -ENODEV;
printk("Radio config found at offset 0x%x\n", rcfg - bcfg);
radio_config = board_config + 0x100 + ((rcfg - bcfg) & 0xfff);
rcfg_size = 0x1000 - ((rcfg - bcfg) & 0xfff);
printk("Radio config found at offset 0x%x(0x%x)\n", rcfg - bcfg, radio_config - board_config);
rcfg_size = BOARD_CONFIG_BUFSZ - ((rcfg - bcfg) & (BOARD_CONFIG_BUFSZ - 1));
memcpy(radio_config, rcfg, rcfg_size);
return 0;
@@ -143,18 +143,8 @@ void __init serial_setup(unsigned long mapbase, unsigned int uartclk)
void __init plat_mem_setup(void)
{
switch(mips_machtype) {
#ifdef CONFIG_ATHEROS_AR5312
case MACH_ATHEROS_AR5312:
ar5312_plat_setup();
break;
#endif
#ifdef CONFIG_ATHEROS_AR5315
case MACH_ATHEROS_AR5315:
ar5315_plat_setup();
break;
#endif
}
DO_AR5312(ar5312_plat_setup();)
DO_AR5315(ar5315_plat_setup();)
/* Disable data watchpoints */
write_c0_watchlo0(0);
@@ -166,10 +156,22 @@ const char *get_system_type(void)
#ifdef CONFIG_ATHEROS_AR5312
case MACH_ATHEROS_AR5312:
return "Atheros AR5312\n";
case MACH_ATHEROS_AR2312:
return "Atheros AR2312\n";
case MACH_ATHEROS_AR2313:
return "Atheros AR2313\n";
#endif
#ifdef CONFIG_ATHEROS_AR5315
case MACH_ATHEROS_AR5315:
return "Atheros AR5315\n";
case MACH_ATHEROS_AR2315:
return "Atheros AR2315\n";
case MACH_ATHEROS_AR2316:
return "Atheros AR2316\n";
case MACH_ATHEROS_AR2317:
return "Atheros AR2317\n";
case MACH_ATHEROS_AR2318:
return "Atheros AR2318\n";
#endif
}
return "Atheros (unknown)";