Nokia N900: omap aes is broken
Subsystems (6)
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?
Signature · 2 lines
Pali Rohár [email protected]
Quoted 19 lines · On Wednesday 18 February 2015 13:21:03 Pali Rohár wrote:
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.dtsifile 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.
Quoted 8 lines
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:
arch/arm/boot/dts/omap3.dtsi +4 -0
@@ -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
Signature · 2 lines
Pali Rohár [email protected]
Quoted 55 lines · On Wednesday 18 February 2015 22:02:30 Pali Rohár wrote:
Quoted 19 lines · On Wednesday 18 February 2015 13:21:03 Pali Rohár wrote:
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.dtsifile 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.Quoted 8 lines
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:
(quoted diff) +0
-0
b/arch/arm/boot/dts/omap3.dtsiindex 01b7111..473d460 100644arch/arm/boot/dts/omap3.dtsi +4
-0@@ -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 {
Quoted 5 lines
and omap-aes driver was successfully loaded. now it is in
/proc/cryptoI copied dma names and numbers from file
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
And I also needed to apply this patch:
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +3 -2
@@ -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...
Signature · 2 lines
Pali Rohár [email protected]
Tony Lindgren
maintainerQuoted 81 lines · Pali Rohár
Quoted 55 lines · On Wednesday 18 February 2015 22:02:30 Pali Rohár wrote:
Quoted 19 lines · On Wednesday 18 February 2015 13:21:03 Pali Rohár wrote:
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.dtsifile 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.Quoted 8 lines
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:
(quoted diff) +0
-0
b/arch/arm/boot/dts/omap3.dtsiindex 01b7111..473d460 100644arch/arm/boot/dts/omap3.dtsi +4
-0@@ -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 {Quoted 5 lines
and omap-aes driver was successfully loaded. now it is in
/proc/cryptoI copied dma names and numbers from file
arch/arm/mach-omap2/omap_hwmod_3xxx_data.cAnd I also needed to apply this patch:
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +3
-2@@ -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;
Quoted 1 line
aes hwmod is defined in GP-only hwmod...
Doesn't this depend on the bootloader version of n900 to work?
Regards,
Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 94 lines · On Tuesday 24 February 2015 18:25:12 Tony Lindgren wrote:
Quoted 93 lines · Pali Rohár
Quoted 62 lines · On Wednesday 18 February 2015 22:02:30 Pali Rohár wrote:
Quoted 20 lines · On Wednesday 18 February 2015 13:21:03 Pali Rohár wrote:
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.dtsifile 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 lookuphwmod '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 toget_sync(-19)[ 29.257690] omap-aes 480c5000.aes: initializationfailed.
Quoted 8 lines
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:
(quoted diff) +0
-0
b/arch/arm/boot/dts/omap3.dtsiindex 01b7111..473d460 100644 ---a/arch/arm/boot/dts/omap3.dtsi
+++b/arch/arm/boot/dts/omap3.dtsi(quoted diff) +2
-0@@ -92,6 +92,8 @@ ti,hwmods = "aes"; reg = <0x480c5000 0x50>; interrupts = <0>; + dmas = <&sdma 65 &sdma 66>; + dma-names = "tx", "rx";(quoted diff) +2
-0}; prm: prm@48306000 {@@ -550,6 +552,8 @@ ti,hwmods = "sham"; reg = <0x480c3000 0x64>; interrupts = <49>; + dmas = <&sdma 96>; + dma-names = "rx";(quoted diff) +0
-0}; smartreflex_core: smartreflex@480cb000 {Quoted 5 lines
and omap-aes driver was successfully loaded. now it is in
/proc/cryptoI copied dma names and numbers from file
arch/arm/mach-omap2/omap_hwmod_3xxx_data.cAnd I also needed to apply this patch:
(quoted diff) +0
-0
b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.cindex 11468ee..3281f30 100644arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +3
-2@@ -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) {arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +0
-0r =omap_hwmod_register_links (h_gp);if (r <0 )return r;
Quoted 7 lines
Quoted 1 line
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.
Signature · 2 lines
Pali Rohár [email protected]
Tony Lindgren
maintainerQuoted 25 lines · Pali Rohár
Quoted 24 lines · On Tuesday 24 February 2015 18:25:12 Tony Lindgren wrote:
Quoted 19 lines · Pali Rohár
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +3
-2@@ -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) {arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +0
-0r =omap_hwmod_register_links (h_gp);if (r <0 )return r;Quoted 1 line
aes hwmod is defined in GP-only hwmod...
Doesn't this depend on the bootloader version of n900 to work?
Quoted 6 lines
Quoted 3 lines
Regards,
Tony
Ok, it looks like second patch (
omap_hwmod_3xxx_data.c) needs that aes-enabled bootloader.
OK we need some runtime detection somehow for what's enabled..
Quoted 2 lines
But first patch (
omap3.dtsi) is needed for proper definitions. Otherwise omap-aes driver will never work on DT systems.
Yeah that one makes sense to me, I guess you'll do a proper fix for that one.
Regards,
Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 28 lines · On Tuesday 24 February 2015 18:37:34 Tony Lindgren wrote:
Quoted 27 lines · Pali Rohár
Quoted 26 lines · On Tuesday 24 February 2015 18:25:12 Tony Lindgren wrote:
Quoted 20 lines · Pali Rohár
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +3
-2@@ -3938,8 +3938,9 @@ int __initomap3xxx_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) {arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +0
-0r =omap_hwmod_register_links (h_gp);if (r <0 )return r;Quoted 1 line
aes hwmod is defined in GP-only hwmod...
Doesn't this depend on the bootloader version of n900 to work?
Quoted 9 lines
Quoted 6 lines
Quoted 3 lines
Regards,
Tony
Ok, it looks like second patch (
omap_hwmod_3xxx_data.c) needs that aes-enabled bootloader.OK we need some runtime detection somehow for what's enabled..
What about checking DT if omap-aes is disabled or not?
Quoted 10 lines
Quoted 3 lines
But first patch (
omap3.dtsi) is needed for proper definitions. Otherwise omap-aes driver will never work on DT systems.Yeah that one makes sense to me, I guess you'll do a proper fix for that one.
Regards,
Tony
Yes, I will send patches via correct git format-patch.
Signature · 2 lines
Pali Rohár [email protected]
Tony Lindgren
maintainerQuoted 33 lines · Pali Rohár
Quoted 32 lines · On Tuesday 24 February 2015 18:37:34 Tony Lindgren wrote:
Quoted 31 lines · Pali Rohár
Quoted 29 lines · On Tuesday 24 February 2015 18:25:12 Tony Lindgren wrote:
Quoted 20 lines · Pali Rohár
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +3
-2@@ -3938,8 +3938,9 @@ int __initomap3xxx_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) {arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +0
-0r =omap_hwmod_register_links (h_gp);if (r <0 )return r;Quoted 1 line
aes hwmod is defined in GP-only hwmod...
Doesn't this depend on the bootloader version of n900 to work?
Regards,
Tony
Quoted 7 lines
Quoted 5 lines
Quoted 2 lines
Ok, it looks like second patch (
omap_hwmod_3xxx_data.c) needs that aes-enabled bootloader.OK we need some runtime detection somehow for what's enabled..
What about checking DT if omap-aes is disabled or not?
In general that's not a good solution as marking something with status = "disabled" means the device is completely ignored and we will never have the struct device entry created for it and we can never idle it.
But in this case however, it may be the right thing to do if the secure mode is using that device.
Regards,
Tony
Quoted 33 lines · Tony Lindgren
Quoted 25 lines · Pali Rohár
Quoted 24 lines · On Tuesday 24 February 2015 18:25:12 Tony Lindgren wrote:
Quoted 19 lines · Pali Rohár
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +3
-2@@ -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) {arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +0
-0r =omap_hwmod_register_links (h_gp);if (r <0 )return r;Quoted 1 line
aes hwmod is defined in GP-only hwmod...
Doesn't this depend on the bootloader version of n900 to work?
Quoted 6 lines
Quoted 3 lines
Regards,
Tony
Ok, it looks like second patch (
omap_hwmod_3xxx_data.c) needs that aes-enabled bootloader.
Quoted 7 lines
OK we need some runtime detection somehow for what's enabled..
Quoted 2 lines
But first patch (
omap3.dtsi) is needed for proper definitions. Otherwise omap-aes driver will never work on DT systems.Yeah that one makes sense to me, I guess you'll do a proper fix for that one.
If this depends on bootloader... would command line parameter be right solution here?
Pavel
Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Quoted 43 lines · On Wednesday 25 February 2015 10:50:00 Pavel Machek wrote:
Quoted 42 lines · Tony Lindgren
Quoted 27 lines · Pali Rohár
Quoted 26 lines · On Tuesday 24 February 2015 18:25:12 Tony Lindgren wrote:
Quoted 20 lines · Pali Rohár
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +3
-2@@ -3938,8 +3938,9 @@ int __initomap3xxx_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) {arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +0
-0r =omap_hwmod_register_links (h_gp);if (r <0 )return r;Quoted 1 line
aes hwmod is defined in GP-only hwmod...
Doesn't this depend on the bootloader version of n900 to work?
Quoted 6 lines
Quoted 3 lines
Regards,
Tony
Ok, it looks like second patch (
omap_hwmod_3xxx_data.c) needs that aes-enabled bootloader.OK we need some runtime detection somehow for what's enabled..
Quoted 3 lines
But first patch (
omap3.dtsi) is needed for proper definitions. Otherwise omap-aes driver will never work on DT systems.
Quoted 6 lines
Quoted 2 lines
Yeah that one makes sense to me, I guess you'll do a proper fix for that one.
If this depends on bootloader... would command line parameter
be right solution here?
Pavel
Problem is that we need to disable AES in:
* DT file
* hwmod source code
* ... and maybe on other places too ...
So I think it make sense to check if AES is disabled in DT and add this check to other parts of kernel source code where needed.
Signature · 2 lines
Pali Rohár [email protected]