diff --git a/MAINTAINERS b/MAINTAINERS index e1baa42..f61404a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -465,6 +465,10 @@ Alex Züpke lart SA1100 dnp1110 SA1110 +Charles Li + + ks8695p arm920t (ks8695p) + ######################################################################### # x86 Systems: # # # diff --git a/MAKEALL b/MAKEALL index 720ab03..8a230c0 100755 --- a/MAKEALL +++ b/MAKEALL @@ -178,7 +178,8 @@ ######################################## LIST_ARM9=" \ at91rm9200dk cmc_pu2 \ ap920t ap922_XA10 ap926ejs ap946es \ - ap966 cp920t cp922_XA10 cp926ejs \ + ap966 cm4008 cm41xx ks8695p \ + cp920t cp922_XA10 cp926ejs \ cp946es cp966 lpd7a400 mp2usb \ mx1ads mx1fs2 netstar omap1510inn \ omap1610h2 omap1610inn omap730p2 sbc2410x \ diff --git a/Makefile b/Makefile index 9bf7c49..8fd7940 100644 --- a/Makefile +++ b/Makefile @@ -1736,6 +1736,9 @@ cm4008_config : unconfig cm41xx_config : unconfig @./mkconfig $(@:_config=) arm arm920t cm41xx NULL ks8695 +ks8695p_config : unconfig + @./mkconfig $(@:_config=) arm arm920t ks8695p NULL ks8695 + gth2_config : unconfig @ >include/config.h @echo "#define CONFIG_GTH2 1" >>include/config.h diff --git a/README b/README index e772c1a..7cf5d82 100644 --- a/README +++ b/README @@ -128,6 +128,7 @@ Directory Hierarchy: - arm920t Files specific to ARM 920 CPUs - at91rm9200 Files specific to Atmel AT91RM9200 CPU - imx Files specific to Freescale MC9328 i.MX CPUs + - ks8695 Files specific to Micrel KS8695X/PX/P CPUs - s3c24x0 Files specific to Samsung S3C24X0 CPUs - arm925t Files specific to ARM 925 CPUs - arm926ejs Files specific to ARM 926 CPUs @@ -312,7 +313,7 @@ The following options need to be configu CONFIG_LUBBOCK, CONFIG_OSK_OMAP5912, CONFIG_OMAP2420H4, CONFIG_PLEB2, CONFIG_SHANNON, CONFIG_P2_OMAP730, CONFIG_SMDK2400, CONFIG_SMDK2410, CONFIG_TRAB, - CONFIG_VCMA9 + CONFIG_VCMA9 CONFIG_KS8695 MicroBlaze based boards: ------------------------ diff --git a/cpu/arm920t/ks8695/lowlevel_init.S b/cpu/arm920t/ks8695/lowlevel_init.S index e9f1227..817e62b 100644 --- a/cpu/arm920t/ks8695/lowlevel_init.S +++ b/cpu/arm920t/ks8695/lowlevel_init.S @@ -92,11 +92,23 @@ #endif * ram from address 0, and flash at 32MB. */ ldr r1, =(KS8695_IO_BASE+KS8695_MEM_CTRL0) +#ifndef CONFIG_KS8695P ldr r2, =0xbfc00040 +#else + ldr r2, =LARGE_FLASH_MAP +#endif str r2, [r1] /* large flash map */ +#ifndef FLASH_LOCATED_HIGH ldr pc, =(highflash+0x02000000-0x00f00000) /* jump to high flash address */ +#else + ldr pc, =(highflash+0x03000000-0x00f00000) /* jump to high flash address */ +#endif highflash: +#ifndef CONFIG_KS8695P ldr r2, =0x8fe00040 +#else + ldr r2, =REMAPPED_FLASH_REG0 +#endif str r2, [r1] /* remap flash range */ /* @@ -106,10 +118,18 @@ highflash: * only have a 4Mb or smaller flash. */ ldr r1, =(KS8695_IO_BASE+KS8695_MEM_CTRL1) +#ifndef CONFIG_KS8695P ldr r2, =0x9fe40040 +#else + ldr r2, =REMAPPED_FLASH_REG1 +#endif str r2, [r1] /* remap flash2 region, contiguous */ ldr r1, =(KS8695_IO_BASE+KS8695_MEM_GENERAL) +#ifndef CONFIG_KS8695P ldr r2, =0x30000005 +#else + ldr r2, =MEMORY_CONFIGURATION +#endif str r2, [r1] /* enable both flash selects */ #ifdef CONFIG_CM41xx @@ -138,7 +158,11 @@ #else #endif str r2, [r1] /* configure sdram bank0 setup */ ldr r1, =(KS8695_IO_BASE+KS8695_SDRAM_CTRL1) +#ifndef CONFIG_KS8695P mov r2, #0 +#else + ldr r2, =SDRAM_BANK_REG1 +#endif str r2, [r1] /* configure sdram bank1 setup */ ldr r1, =(KS8695_IO_BASE+KS8695_SDRAM_GENERAL) @@ -198,8 +222,13 @@ #if defined(CONFIG_CM4008) || defined(CO nobutton: #endif +#ifndef FLASH_LOCATED_HIGH add lr, lr, #0x02000000 /* flash is now mapped high */ add ip, ip, #0x02000000 /* this is a hack */ +#else + add lr, lr, #0x03000000 /* flash is now mapped high */ + add ip, ip, #0x03000000 /* this is a hack */ +#endif mov pc, lr /* all done, return */ #endif /* CONFIG_SKIP_LOWLEVEL_INIT */ diff --git a/drivers/ks8695eth.c b/drivers/ks8695eth.c index b598dd7..daf6d0e 100644 --- a/drivers/ks8695eth.c +++ b/drivers/ks8695eth.c @@ -86,7 +86,7 @@ void ks8695_getmac(void) { unsigned char *fp; int i; - +#ifndef CONFIG_KS8695P /* Check if flash MAC is valid */ fp = (unsigned char *) 0x0201c000; for (i = 0; (i < 6); i++) { @@ -97,6 +97,7 @@ void ks8695_getmac(void) /* If we found a valid looking MAC address then use it */ if (i < 6) memcpy(ð_mac[0], fp, 6); +#endif } /****************************************************************************/