Thread (10 messages) 10 messages, 3 authors, 2015-02-25

Re: Nokia N900: omap aes is broken

flat view

From: Pali Rohár <hidden>
Date: 2015-02-24 17:38:50
Also in: linux-omap, lkml

On Tuesday 24 February 2015 18:25:12 Tony Lindgren wrote:
* Pali Rohár [off-list ref] [150218 16:03]:
quoted
On Wednesday 18 February 2015 22:02:30 Pali Rohár wrote:
quoted
On Wednesday 18 February 2015 13:21:03 Pali Rohár wrote:
quoted
Hello,

I tried to test OMAP AES driver on Nokia N900 with
special Nokia bootloader which enable L3 firewall for
OMAP AES HW support.

I modified arch/arm/boot/dts/omap34xx-hs.dtsi file and
commented aes line which disable aes support in DT.

Then I booted kernel and loaded omap-aes.ko module. And
I got this output in dmesg:

[    0.222930] platform 480c5000.aes: Cannot lookup
hwmod 'aes' [   27.758148] omap-aes 480c5000.aes:
_od_fail_runtime_resume: FIXME: missing hwmod/omap_dev
info [   27.765960] omap-aes 480c5000.aes:
omap_aes_probe: failed to get_sync(-19)
[   29.257690] omap-aes 480c5000.aes: initialization
failed.

So it looks like some initialization data are missing
for Nokia N900 (omap3430 device).

Can somebody look at it? I have patched 2.6.28 kernel
were omap aes support on this N900 device (with special
bootloader) is working.

Maybe some other data are missing in DT or in hwmod?
dma channels are missing in DT. I applied this patch:
diff --git a/arch/arm/boot/dts/omap3.dtsi
b/arch/arm/boot/dts/omap3.dtsi index 01b7111..473d460
100644 --- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -92,6 +92,8 @@

 			ti,hwmods = "aes";
 			reg = <0x480c5000 0x50>;
 			interrupts = <0>;

+			dmas = <&sdma 65 &sdma 66>;
+			dma-names = "tx", "rx";

 		};
 		
 		prm: prm@48306000 {
@@ -550,6 +552,8 @@

 			ti,hwmods = "sham";
 			reg = <0x480c3000 0x64>;
 			interrupts = <49>;

+			dmas = <&sdma 96>;
+			dma-names = "rx";

 		};
 		
 		smartreflex_core: smartreflex@480cb000 {
and omap-aes driver was successfully loaded. now it is in
/proc/crypto

I copied dma names and numbers from file
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
And I also needed to apply this patch:
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c index
11468ee..3281f30 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -3938,8 +3938,9 @@ int __init omap3xxx_hwmod_init(void)

 	if (r < 0)
 	
 		return r;

-	/* Register GP-only hwmod links. */
-	if (h_gp && omap_type() == OMAP2_DEVICE_TYPE_GP) {
+//	/* Register GP-only hwmod links. */
+//	if (h_gp && omap_type() == OMAP2_DEVICE_TYPE_GP) {
+	if (h_gp) {

 		r = omap_hwmod_register_links(h_gp);
 		if (r < 0)
 		
 			return r;
aes hwmod is defined in GP-only hwmod...
Doesn't this depend on the bootloader version of n900 to work?

Regards,

Tony
Ok, it looks like second patch (omap_hwmod_3xxx_data.c) needs 
that aes-enabled bootloader.

But first patch (omap3.dtsi) is needed for proper definitions. 
Otherwise omap-aes driver will never work on DT systems.

-- 
Pali Rohár
pali.rohar@gmail.com

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help