ARM: dts: exynos: Add reboot reason support for Trats2
Subsystems (2)
PATCH 1/1 ARM: dts: exynos: Add reboot reason support for Trats2
This allows to reboot the device into recovery mode and into the download mode of the bootloader.
--- arch/arm/boot/dts/exynos4412-trats2.dts | 14 ++++++++++++++ arch/arm/boot/dts/exynos4x12.dtsi | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-)
arch/arm/boot/dts/exynos4412-trats2.dts +14 -0
@@ -1294,3 +1294,17 @@ vtmu-supply = <&ldo10_reg>; status = "okay"; }; + +&pmu { + compatible = "syscon", "simple-mfd"; + + reboot-mode { + compatible = "syscon-reboot-mode"; + offset = <0x80c>; + + mode-normal = <0x12345670>; + mode-bootloader = <0x12345671>; + mode-download = <0x12345671>; + mode-recovery = <0x12345674>; + }; +};
arch/arm/boot/dts/exynos4x12.dtsi +1 -1
@@ -179,7 +179,7 @@ ranges; status = "disabled"; - pmu at 10020000 { + pmu: pmu at 10020000 { reg = <0x10020000 0x3000>; };
Signature · 3 lines
Website: https://fossencdi.org OpenPGP: 0F30 D1A0 2F73 F70A 6FEE 048E 5816 A24C 1075 7FC4 Key download: https://wiedmeyer.de/keys/ww.asc
Krzysztof Kozlowski
maintainerHi,
Thanks for the patch, it is nice that someone did this! When I saw the syscon reboot mode driver, I though about such feature but never had time or will to implement it. Great job!
Few comments below.
Quoted 2 lines · Wolfgang Wiedmeyer
This allows to reboot the device into recovery mode and into the download mode of the bootloader.
Which bootloader? Probably UBoot... or Samsung stock one? Could you put that information here?
Quoted 17 lines
Signed-off-by Wolfgang Wiedmeyer <[email protected]>--- arch/arm/boot/dts/exynos4412-trats2.dts | 14 ++++++++++++++ arch/arm/boot/dts/exynos4x12.dtsi | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-)arch/arm/boot/dts/exynos4412-trats2.dts +2
-0@@ -1294,3 +1294,17 @@ vtmu-supply = <&ldo10_reg>; status = "okay"; }; + +&pmu {
arch/arm/boot/dts/exynos4412-trats2.dts line 1308
Quoted 10 lines
arch/arm/boot/dts/exynos4412-trats2.dts +10
-0+ compatible = "syscon", "simple-mfd"; + + reboot-mode { + compatible = "syscon-reboot-mode"; + offset = <0x80c>; + + mode-normal = <0x12345670>; + mode-bootloader = <0x12345671>; + mode-download = <0x12345671>; + mode-recovery = <0x12345674>;
Hmmm, how did you get these values? Are they already supported?
It would be nice to document them:
1. In Documentation/arm/Samsung/Bootloader-interface.txt
2. In header. I hate such magic numbers... you could add new header next to existing rockchip one:
include/dt-bindings/soc/samsung,boot-mode.h
(and update maintainers entry :) )
Best regards,
Krzysztof
Quoted 20 lines
arch/arm/boot/dts/exynos4412-trats2.dts +2
-0+ }; +};arch/arm/boot/dts/exynos4x12.dtsi +1
-1@@ -179,7 +179,7 @@ ranges; status = "disabled"; - pmu at 10020000 { + pmu: pmu at 10020000 { reg = <0x10020000 0x3000>; };Signature · 3 lines
Website: https://fossencdi.org OpenPGP: 0F30 D1A0 2F73 F70A 6FEE 048E 5816 A24C 1075 7FC4 Key download: https://wiedmeyer.de/keys/ww.asc
Quoted 6 lines · Krzysztof Kozlowski
Quoted 2 lines · Wolfgang Wiedmeyer
This allows to reboot the device into recovery mode and into the download mode of the bootloader.
Which bootloader? Probably UBoot... or Samsung stock one? Could you put that information here?
I'm only working with the stock one. I was under the impression that the stock bootloader cannot be replaced on a i9300 because there's a signature check. Is UBoot loaded after the stock one on Trats2 or how does this work? I didn't find information on that.
Quoted 21 lines
Quoted 21 lines
Signed-off-by Wolfgang Wiedmeyer <[email protected]>--- arch/arm/boot/dts/exynos4412-trats2.dts | 14 ++++++++++++++ arch/arm/boot/dts/exynos4x12.dtsi | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-)arch/arm/boot/dts/exynos4412-trats2.dts +6
-0@@ -1294,3 +1294,17 @@ vtmu-supply = <&ldo10_reg>; status = "okay"; }; + +&pmu { + compatible = "syscon", "simple-mfd"; + + reboot-mode { + compatible = "syscon-reboot-mode";
Quoted 8 lines
arch/arm/boot/dts/exynos4412-trats2.dts line 1308
Quoted 6 lines
arch/arm/boot/dts/exynos4412-trats2.dts +6
-0+ offset = <0x80c>; + + mode-normal = <0x12345670>; + mode-bootloader = <0x12345671>; + mode-download = <0x12345671>; + mode-recovery = <0x12345674>;Hmmm, how did you get these values? Are they already supported?
I only have the vendor source drop as documentation. The magic mode values [1] and the offset [2] can be found there.
Quoted 6 lines
It would be nice to document them:
1. InDocumentation/arm/Samsung/Bootloader-interface.txt
2. In header. I hate such magic numbers... you could add new header next to existing rockchip one:
include/dt-bindings/soc/samsung,boot-mode.h
(and update maintainers entry :) )
Thanks for the review! I will do the documentation and update the commit message.
Best regards,
Wolfgang
[1] https://code.fossencdi.org/kernel_samsung_smdk4412.git/tree/arch/arm/mach-exynos/sec-reboot.c#n65
Signature · 11 lines
Website: https://fossencdi.org Jabber: wolfgang at wiedmeyer.de OpenPGP: 0F30 D1A0 2F73 F70A 6FEE 048E 5816 A24C 1075 7FC4 Key download: https://wiedmeyer.de/keys/ww.asc -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 818 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160922/257562f9/attachment.sig>
Krzysztof Kozlowski
maintainerQuoted 7 lines · Wolfgang Wiedmeyer
Quoted 4 lines · Krzysztof Kozlowski
Quoted 2 lines · Wolfgang Wiedmeyer
This allows to reboot the device into recovery mode and into the download mode of the bootloader.
Quoted 7 lines
Quoted 2 lines
Which bootloader? Probably UBoot... or Samsung stock one? Could you put that information here?
I'm only working with the stock one. I was under the impression that the stock bootloader cannot be replaced on a i9300 because there's a signature check. Is UBoot loaded after the stock one on Trats2 or how does this work? I didn't find information on that.
+CC Marek,
Trats2 is working with U-Boot. Just U-Boot. However I never converted S3 into Trats2 on my own. I always used targets prepared to be "Trats2" type.
Of course kernel is independent to bootloader but in that case you want to use a specific interface between kernel and specific bootloader type/version. In that case - this should be U-Boot, I think.
Quoted 31 lines
Quoted 22 lines
Quoted 22 lines
Signed-off-by Wolfgang Wiedmeyer <[email protected]>--- arch/arm/boot/dts/exynos4412-trats2.dts | 14 ++++++++++++++ arch/arm/boot/dts/exynos4x12.dtsi | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-)arch/arm/boot/dts/exynos4412-trats2.dts +6
-0@@ -1294,3 +1294,17 @@ vtmu-supply = <&ldo10_reg>; status = "okay"; }; + +&pmu { + compatible = "syscon", "simple-mfd"; + + reboot-mode { + compatible = "syscon-reboot-mode";Quoted 8 lines
arch/arm/boot/dts/exynos4412-trats2.dts line 1308
Quoted 6 lines
arch/arm/boot/dts/exynos4412-trats2.dts +6
-0+ offset = <0x80c>; + + mode-normal = <0x12345670>; + mode-bootloader = <0x12345671>; + mode-download = <0x12345671>; + mode-recovery = <0x12345674>;Hmmm, how did you get these values? Are they already supported?
Quoted 2 lines
I only have the vendor source drop as documentation. The magic mode values [1] and the offset [2] can be found there.
It would be useful to mention that in commit msg (just the source)... however as I wrote above, these values should be for U-Boot, not the stock one.
Best regards,
Krzysztof
Quoted 24 lines
Quoted 7 lines
It would be nice to document them:
1. InDocumentation/arm/Samsung/Bootloader-interface.txt
2. In header. I hate such magic numbers... you could add new header next to existing rockchip one:
include/dt-bindings/soc/samsung,boot-mode.h
(and update maintainers entry :) )Thanks for the review! I will do the documentation and update the commit message.
Best regards,
Wolfgang[1] https://code.fossencdi.org/kernel_samsung_smdk4412.git/tree/arch/arm/mach-exynos/sec-reboot.c#n65
Signature · 4 lines
Website: https://fossencdi.org Jabber: wolfgang at wiedmeyer.de OpenPGP: 0F30 D1A0 2F73 F70A 6FEE 048E 5816 A24C 1075 7FC4 Key download: https://wiedmeyer.de/keys/ww.asc
Quoted 16 lines · Krzysztof Kozlowski
Quoted 7 lines · Wolfgang Wiedmeyer
Quoted 4 lines · Krzysztof Kozlowski
Quoted 2 lines · Wolfgang Wiedmeyer
This allows to reboot the device into recovery mode and into the download mode of the bootloader.
Quoted 7 lines
Quoted 2 lines
Which bootloader? Probably UBoot... or Samsung stock one? Could you put that information here?
I'm only working with the stock one. I was under the impression that the stock bootloader cannot be replaced on a i9300 because there's a signature check. Is UBoot loaded after the stock one on Trats2 or how does this work? I didn't find information on that.
Quoted 5 lines
+CC Marek,
Trats2 is working with U-Boot. Just U-Boot. However I never converted S3 into Trats2 on my own. I always used targets prepared to be "Trats2" type.
It would be awesome to be able to run U-Boot on i9300. Is there a way to test this by not risking to brick the device, e.g. by booting from the SD card? Then I could send an updated version of the patch that is compatible with U-Boot :)
Quoted 3 lines
Of course kernel is independent to bootloader but in that case you want to use a specific interface between kernel and specific bootloader type/version. In that case - this should be U-Boot, I think.
I absolutely understand that. Having the patch in mainline doesn't make much sense if it's not compatible with U-Boot.
Best regards,
Wolfgang
Quoted 63 lines
Quoted 29 lines
Quoted 20 lines
Quoted 20 lines
Signed-off-by Wolfgang Wiedmeyer <[email protected]>--- arch/arm/boot/dts/exynos4412-trats2.dts | 14 ++++++++++++++ arch/arm/boot/dts/exynos4x12.dtsi | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-)arch/arm/boot/dts/exynos4412-trats2.dts +6
-0@@ -1294,3 +1294,17 @@ vtmu-supply = <&ldo10_reg>; status = "okay"; }; + +&pmu { + compatible = "syscon", "simple-mfd"; + + reboot-mode { + compatible = "syscon-reboot-mode";Quoted 8 lines
arch/arm/boot/dts/exynos4412-trats2.dts line 1308
Quoted 6 lines
arch/arm/boot/dts/exynos4412-trats2.dts +6
-0+ offset = <0x80c>; + + mode-normal = <0x12345670>; + mode-bootloader = <0x12345671>; + mode-download = <0x12345671>; + mode-recovery = <0x12345674>;Hmmm, how did you get these values? Are they already supported?
Quoted 2 lines
I only have the vendor source drop as documentation. The magic mode values [1] and the offset [2] can be found there.
It would be useful to mention that in commit msg (just the source)... however as I wrote above, these values should be for U-Boot, not the stock one.
Best regards,
KrzysztofQuoted 24 lines
Quoted 7 lines
It would be nice to document them:
1. InDocumentation/arm/Samsung/Bootloader-interface.txt
2. In header. I hate such magic numbers... you could add new header next to existing rockchip one:
include/dt-bindings/soc/samsung,boot-mode.h
(and update maintainers entry :) )Thanks for the review! I will do the documentation and update the commit message.
Best regards,
Wolfgang[1] https://code.fossencdi.org/kernel_samsung_smdk4412.git/tree/arch/arm/mach-exynos/sec-reboot.c#n65
Signature · 4 lines
Website: https://fossencdi.org Jabber: wolfgang at wiedmeyer.de OpenPGP: 0F30 D1A0 2F73 F70A 6FEE 048E 5816 A24C 1075 7FC4 Key download: https://wiedmeyer.de/keys/ww.asc
Signature · 11 lines
Website: https://fossencdi.org Jabber: wolfgang at wiedmeyer.de OpenPGP: 0F30 D1A0 2F73 F70A 6FEE 048E 5816 A24C 1075 7FC4 Key download: https://wiedmeyer.de/keys/ww.asc -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 818 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160924/58a07749/attachment.sig>
Krzysztof Kozlowski
maintainerQuoted 21 lines · Wolfgang Wiedmeyer
Quoted 18 lines · Krzysztof Kozlowski
Quoted 7 lines · Wolfgang Wiedmeyer
Quoted 4 lines · Krzysztof Kozlowski
Quoted 2 lines · Wolfgang Wiedmeyer
This allows to reboot the device into recovery mode and into the download mode of the bootloader.
Quoted 7 lines
Quoted 2 lines
Which bootloader? Probably UBoot... or Samsung stock one? Could you put that information here?
I'm only working with the stock one. I was under the impression that the stock bootloader cannot be replaced on a i9300 because there's a signature check. Is UBoot loaded after the stock one on Trats2 or how does this work? I didn't find information on that.
+CC Marek,
Quoted 8 lines
Quoted 3 lines
Trats2 is working with U-Boot. Just U-Boot. However I never converted S3 into Trats2 on my own. I always used targets prepared to be "Trats2" type.
It would be awesome to be able to run U-Boot on i9300. Is there a way to test this by not risking to brick the device, e.g. by booting from the SD card? Then I could send an updated version of the patch that is compatible with U-Boot :)
I don't think the stock bootloader supports chaining another bootloader from SD card. There is a way of booting from SD card by shortening a resistor but it is an emergency rescue procedure to overwrite existing bootloader with data from SD card (to restore device). This thread might be interesting:
http://forum.xda-developers.com/showpost.php?p=47234165&postcount=220
https://smyl.es/samsung-galaxy-iii-s3-gt-i9300-jtag-leaked-document-how-to-repair-soft-bricked-galaxy-s3/
On xda-developers you might find more data about this (including the procedure for emergency restore from SD card). Somehow people flash and unbrick their devices when playing with CyanogenMod...
Best regards,
Krzysztof
Krzysztof Kozlowski
maintainerQuoted 39 lines · Krzysztof Kozlowski
Quoted 21 lines · Wolfgang Wiedmeyer
Quoted 18 lines · Krzysztof Kozlowski
Quoted 7 lines · Wolfgang Wiedmeyer
Quoted 4 lines · Krzysztof Kozlowski
Quoted 2 lines · Wolfgang Wiedmeyer
This allows to reboot the device into recovery mode and into the download mode of the bootloader.
Quoted 7 lines
Quoted 2 lines
Which bootloader? Probably UBoot... or Samsung stock one? Could you put that information here?
I'm only working with the stock one. I was under the impression that the stock bootloader cannot be replaced on a i9300 because there's a signature check. Is UBoot loaded after the stock one on Trats2 or how does this work? I didn't find information on that.
+CC Marek,
Quoted 8 lines
Quoted 3 lines
Trats2 is working with U-Boot. Just U-Boot. However I never converted S3 into Trats2 on my own. I always used targets prepared to be "Trats2" type.
It would be awesome to be able to run U-Boot on i9300. Is there a way to test this by not risking to brick the device, e.g. by booting from the SD card? Then I could send an updated version of the patch that is compatible with U-Boot :)
I don't think the stock bootloader supports chaining another bootloader from SD card. There is a way of booting from SD card by shortening a resistor but it is an emergency rescue procedure to overwrite existing bootloader with data from SD card (to restore device). This thread might be interesting:
http://forum.xda-developers.com/showpost.php?p=47234165&postcount=220
https://smyl.es/samsung-galaxy-iii-s3-gt-i9300-jtag-leaked-document-how-to-repair-soft-bricked-galaxy-s3/
Quoted 3 lines
On xda-developers you might find more data about this (including the procedure for emergency restore from SD card). Somehow people flash and unbrick their devices when playing with CyanogenMod...
Hi Wolfgang,
Few more info from my side. It is (rather) not possible to just flash GT-I9300 with U-Boot. It still requires S-Boot as a primary bootloader (probably different than the stock one). I think such binary S-Boot was published along with Tizen images for Trats2 (called RD-PQ). These images however started to disappear from download.tizen.org. You can still find some, e.g.:
http://download.tizen.org/releases/system/Tizen_RD-PQ_System_20130716_1.tar
(better download it soon :) ) This 'tar' should be uploaded through Lthor (also from tizen.org) however it might require appropriate Partition Information Table (PIT).
On Tizen Wiki you might find some guides for flashing/upgrading-PIT on Trats2.
However, please be careful, as all of these steps (and linked binary) are targeted to existing RD-PQ/Trats2 boards. They are not intended as a way of converting GT-I9300 into Trats2. The conversion might work but... it might not.
Before playing with it, I think it would be wise to have the emergency recovery procedure (with SD card) ready.
Best regards,
Krzysztof