Skip to contentSkip to conversation

add Kendein/Micrel KS8695P CPU support

PATCH New Greg Ungerer 3 participants 10 messages May 17, 2005 – May 24, 2005

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 add Kendein/Micrel KS8695P CPU support

Hi All,

Attached is a patch that adds support to u-boot for the Kendin/Micrel KS8695P CPU. It is an ARM9 based SoC type device, used in a lot of little routers.

This patch was originally generated against u-boot 1.1.1.

I am following up this patch with a couple of more patches that add support for the OpenGear CM4008 and CM4116/CM4148 console manager boards (that use the KS8695P CPU).

Regards
Greg

-------------- next part --------------
A non-text attachment was scrubbed...
Name: u-boot.ks8695.patch.1
Type: text/x-troff-man
Size: 28518 bytes
Desc: not available
Url : http://lists.denx.de/pipermail/u-boot/attachments/20050518/7fa6245c/attachment.bin

#1 lore raw

PATCH 1/2 add Kendein/Micrel KS8695P CPU support

Quoted 6 lines · In message <[email protected]> you wrote:

Attached is a patch that adds support to u-boot for the Kendin/Micrel KS8695P CPU. It is an ARM9 based SoC type device, used in a lot of little routers.

This patch was originally generated against u-boot 1.1.1.

Sorry, but your source base is just too old, and the patch as is is not usable any more. Please note that there has been a major reorganisation to better support SoC systems like yours, too. Instead of duplicationg the same code again and again we now share the common parts.

Please rework your patch; do not create a new cpu/ directory, but instead a new SoC-specific subdirectory like those already present for at91rm9200 or s3c24x0 systems.

And please don't forget to include the required entries to the CHANGELOG, MAINTAINERS and CREDITS files.

Quoted 3 lines

I am following up this patch with a couple of more patches that add support for the OpenGear CM4008 and CM4116/CM4148 console manager boards (that use the KS8695P CPU).

Actually the order was different, but this doesn't matter: all your patches share the same problem. Please fix, and resubmit.

Best regards,

Wolfgang Denk

Signature · 4 lines
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"Why waste negative entropy on comments, when you could use the  same
entropy to create bugs instead?"                        - Steve Elias
#2 lore raw

PATCH 1/2 add Kendein/Micrel KS8695P CPU support

Hi Wolfgang,

Quoted 13 lines · Wolfgang Denk
Quoted 5 lines · In message <[email protected]> you wrote:

Attached is a patch that adds support to u-boot for the Kendin/Micrel KS8695P CPU. It is an ARM9 based SoC type device, used in a lot of little routers.

This patch was originally generated against u-boot 1.1.1.

Sorry, but your source base is just too old, and the patch as is is not usable any more. Please note that there has been a major reorganisation to better support SoC systems like yours, too. Instead of duplicationg the same code again and again we now share the common parts.

Quoted 3 lines

Please rework your patch; do not create a new cpu/ directory, but instead a new SoC-specific subdirectory like those already present for at91rm9200 or s3c24x0 systems.

Here is a reworked patch, this time against the current CVS code. How does this look?

I put it under the arm920t, though technicaly it is a 922t. Seemed to fit in nicely in any case.

Quoted 7 lines
Quoted 3 lines

I am following up this patch with a couple of more patches that add support for the OpenGear CM4008 and CM4116/CM4148 console manager boards (that use the KS8695P CPU).

Actually the order was different, but this doesn't matter: all your patches share the same problem. Please fix, and resubmit.

The first email (the ks8695 cpu support) bounced, it was larger than 40k. So I had to split it and resend. Otherwise they would have been in order :-)

Regards
Greg

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: u-boot.ks8695.patch
Url: http://lists.denx.de/pipermail/u-boot/attachments/20050520/145026a3/attachment.txt

#3 lore raw

PATCH 1/2 add Kendein/Micrel KS8695P CPU support

Dear Greg,

Quoted 3 lines · in message <[email protected]> you wrote:

Here is a reworked patch, this time against the current CVS code. How does this look?

Much better :-)

The subject ("[PATCH 1/2]") indicates that there is a second part to follow - is there? I don't see any obvious stuff missing?

* Patch by Greg Ungerer, 19 May 2005:
- add support for the KS8695P (ARM 922 based) CPU
- add support for the OpenGear CM4008, CM4116 and CM4148 boards

Checked in, thanks.

But please stick to the Coding Style:
don't add trailing white space to files
(cpu/arm920t/ks8695/lowlevel_init.S,
include/asm-arm/arch-ks8695/platform.h),
don't add trailing empty lines
(cpu/arm920t/ks8695/interrupts.c),
and don't use C++ comments
(drivers/ks8695eth.c).

And instead of

	#if 0
		printf(...);
	#endif

you could simply write

		debug (...);

which is easier to read and to enable if needed.

#4 lore raw

PATCH 1/2 add Kendein/Micrel KS8695P CPU support

Quoted 9 lines

Dear Greg,

Quoted 3 lines · in message <[email protected]> you wrote:

Here is a reworked patch, this time against the current CVS code. How does this look?

Much better :-)

Really? (o;

"drivers/ks8695eth.c" includes "asm/arch/platform.h" which not all boards have...especially not with the defines this driver requires...

best regards
rick

#5 lore raw

PATCH 1/2 add Kendein/Micrel KS8695P CPU support

Dear Greg,

in message <r02010500-1041-5A1EF226C91011D9BF6200039387ACB6@[10.0.1.1]>

Quoted 8 lines · Richard Klinger
Quoted 2 lines

Much better :-)

Really? (o;

"drivers/ks8695eth.c" includes "asm/arch/platform.h" which not all boards have...especially not with the defines this driver requires...

He is right: your code breaks ALL other ARM boards:

-> MAKEALL arm
Configuring for assabet board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory Configuring for dnp1110 board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory Configuring for gcplus board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory Configuring for lart board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory Configuring for shannon board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory Configuring for B2 board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory Configuring for ep7312 board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory make[1]: *** [.depend] Error 1
make: *** [drivers/libdrivers.a] Error 2
arm-linux-size: u-boot: No such file or directory
...

etc.

Didn't you run MAKEALL before submitting your patches? Grrrrghhh!

Please fix ASAP!!!

Best regards,

Wolfgang Denk

Signature · 4 lines
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The optimum committee has no members.
                                                   - Norman Augustine
#6 lore raw

PATCH 1/2 add Kendein/Micrel KS8695P CPU support

Quoted 14 lines · Wolfgang Denk

Dear Greg,

in message <r02010500-1041-5A1EF226C91011D9BF6200039387ACB6@[10.0.1.1]>

Quoted 7 lines · Richard Klinger
Quoted 1 line

Much better :-)

Really? (o;

"drivers/ks8695eth.c" includes "asm/arch/platform.h" which not all boards have...especially not with the defines this driver requires...

Quoted 5 lines

He is right: your code breaks ALL other ARM boards:

-> MAKEALL arm
Configuring for assabet board...
ks8695eth.c:27:31: asm/arch/platform.h: No such file or directory

Ok, it makes no sense (at least currently) to be compiling this driver for any configuration not based on the KS8695 CPU. So the simple fix is to define it out.

drivers/ks8695eth.c 2005-05-23 11:02:33.722028656 +1000 renamed from drivers/ks8695eth.c.org 2005-05-23 11:02:44.877332792 +1000 +5 -0
@@ -24,6 +24,11 @@
  #include <malloc.h>
  #include <net.h>
  #include <asm/io.h>
+
+/****************************************************************************/
+#ifdef CONFIG_KS8695
+/****************************************************************************/
+
  #include <asm/arch/platform.h>
 
 

/****************************************************************************/ @@ -234,3 +239,4 @@
}

/****************************************************************************/ +#endif /* CONFIG_KS8695 */

Quoted 2 lines

Didn't you run MAKEALL before submitting your patches? Grrrrghhh!

Well, I don't get clean results for it, and I haven't investiagted why yet... Can I trust it??

Configuring for assabet board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.o) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.o)
make: *** [u-boot] Error 1
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for dnp1110 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for gcplus board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for lart board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for shannon board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for B2 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for ep7312 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for evb4510 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for impa7 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for modnet50 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for at91rm9200dk board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o)
make: *** [u-boot] Error 1
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for cmc_pu2 board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o)
make: *** [u-boot] Error 1
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for integratorcp board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for integratorap board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for lpd7a400 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for mx1ads board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for mx1fs2 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for omap1510inn board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.o) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.o)
make: *** [u-boot] Error 1
./MAKEALL: line 243: ppc_8xx-size: command not found
... configured for CS3 boot
Configuring for omap1610h2 board...
./MAKEALL: line 243: ppc_8xx-size: command not found
... configured for CS3 boot
Configuring for omap1610inn board...
./MAKEALL: line 243: ppc_8xx-size: command not found
... configured for CS3 boot
Configuring for omap730p2 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for scb9328 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for smdk2400 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for smdk2410 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for trab board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivsi3.o) uses hardware FP, whereas trab_fkt uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivsi3.o)
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_umodsi3.o) uses hardware FP, whereas trab_fkt uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_umodsi3.o)
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_dvmd_lnx.o) uses hardware FP, whereas trab_fkt uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_dvmd_lnx.o)
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivdi3.o) uses hardware FP, whereas trab_fkt uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivdi3.o)
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_clz.o) uses hardware FP, whereas trab_fkt uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_clz.o) make[1]: *** [trab_fkt.srec] Error 1
make: *** [board/trab/libtrab.a] Error 2
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for VCMA9 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for versatile board...
./MAKEALL: line 243: ppc_8xx-size: command not found
... boot from upper flash bank
Configuring for voiceblue board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivsi3.o) uses hardware FP, whereas eeprom uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivsi3.o)
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_umodsi3.o) uses hardware FP, whereas eeprom uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_umodsi3.o)
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_dvmd_lnx.o) uses hardware FP, whereas eeprom uses software FP
Success: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_dvmd_lnx.o) make[1]: *** [eeprom.srec] Error 1
make: *** [board/voiceblue/libvoiceblue.a] Error 2 ./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for omap2420h4 board...
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o) uses FPA instructions, whereas u-boot does not
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_divsi3.o)
make: *** [u-boot] Error 1
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for adsvix board...
pcmcia.c:39:2: warning: #warning "Board will only supply 5V, wait for next HW spin for selectable power"
cmd_pcmcia.c: In function `pcmcia_on':
cmd_pcmcia.c:343: warning: operation on `i' may be undefined cmd_pcmcia.c: At top level:
cmd_pcmcia.c:305: warning: hardware_disable' defined but not used cmd_pcmcia.c:300: warning: hardware_enable' defined but not used cmd_pcmcia.c:310: warning: `voltage_set' defined but not used
arm-linux-ld: ERROR:
/usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.o) uses hardware FP, whereas u-boot uses software FP
File in wrong format: failed to merge target specific data of file /usr/local/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.o)
make: *** [u-boot] Error 1
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for cerf250 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for cradle board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for csb226 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for innokom board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for lubbock board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for wepep250 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for xaeniax board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for xm250 board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for xsengine board...
./MAKEALL: line 243: ppc_8xx-size: command not found Configuring for ixdp425 board...
pci_indirect.c: In function `indirect_read_config_byte':
pci_indirect.c:94: warning: passing arg 1 of `in_8' from incompatible pointer type
pci_indirect.c: In function `indirect_read_config_word':
pci_indirect.c:95: warning: passing arg 1 of `in_le16' from incompatible pointer type
pci_indirect.c: In function `indirect_write_config_byte':
pci_indirect.c:102: warning: passing arg 1 of `out_8' from incompatible pointer type
pci_indirect.c: In function `indirect_write_config_word':
pci_indirect.c:103: warning: passing arg 1 of `out_le16' from incompatible pointer type
./MAKEALL: line 243: ppc_8xx-size: command not found

Regards
Greg

#7 lore raw

PATCH 1/2 add Kendein/Micrel KS8695P CPU support

Quoted 4 lines · In message <[email protected]> you wrote:

Ok, it makes no sense (at least currently) to be compiling this driver for any configuration not based on the KS8695 CPU. So the simple fix is to define it out.

Atually I think it makes sense to compile the driver only for those boards that enable it, as ther ecould be even KS8695 based boards that don't need / want to use this driver.

Fixed that wat. Thanks.

Best regards,

Wolfgang Denk

Signature · 6 lines
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
He had been eight years upon a project for extracting sunbeams out of
cucumbers, which were to be put in vials hermetically sealed, and let
out to warm the air in raw inclement summers.        - Jonathan Swift
              _Gulliver's Travels_ ``A Voyage to Laputa, etc.'' ch. 5
#8 lore raw

PATCH 1/2 add Kendein/Micrel KS8695P CPU support

Hi Wolfgang,

Quoted 7 lines · Wolfgang Denk
Quoted 3 lines · In message <[email protected]> you wrote:

Ok, it makes no sense (at least currently) to be compiling this driver for any configuration not based on the KS8695 CPU. So the simple fix is to define it out.

Quoted 5 lines

Atually I think it makes sense to compile the driver only for those boards that enable it, as ther ecould be even KS8695 based boards that don't need / want to use this driver.

Fixed that wat. Thanks.

Yes, that is true.

BTW, we could split out the defines specific to the ethernet driver from that arch-ks8695/platform.h if that made sense. As it is currently that platform.h is a direct copy of that file from the Linux support for this device. It would be sorta nice if we can keep it that way, no doubt it will get updated over time as KS release new parts in this family (they have 3 in this CPU family currently).

Regards
Greg

#9 lore raw

PATCH 1/2 add Kendein/Micrel KS8695P CPU support

In reply to Wolfgang Denk

Hi Wolfgang,

Quoted 2 lines · Wolfgang Denk

The subject ("[PATCH 1/2]") indicates that there is a second part to follow - is there? I don't see any obvious stuff missing?

No, that was all the CPU support. I just reply'ed to the first email. The new patch was a bit smaller, and fitted all in that one email.

Quoted 8 lines

But please stick to the Coding Style:
don't add trailing white space to files
(cpu/arm920t/ks8695/lowlevel_init.S,
include/asm-arm/arch-ks8695/platform.h),
don't add trailing empty lines
(cpu/arm920t/ks8695/interrupts.c),
and don't use C++ comments
(drivers/ks8695eth.c).

Sure thing. Old habits :-)

Regards
Greg

------------------------------------------------------------------------

Greg Ungerer  --  Chief Software Dude       EMAIL:     gerg at snapgear.com
SnapGear -- a CyberGuard Company            PHONE:       +61 7 3435 2888
825 Stanley St,                             FAX:         +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com