Message ID | 1474562915-4319-1-git-send-email-wolfgit@wiedmeyer.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi, 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. On Thu, Sep 22, 2016 at 06:48:35PM +0200, Wolfgang Wiedmeyer wrote: > 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? > > Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> > --- > arch/arm/boot/dts/exynos4412-trats2.dts | 14 ++++++++++++++ > arch/arm/boot/dts/exynos4x12.dtsi | 2 +- > 2 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts > index 129e973..a38d1e3 100644 > --- a/arch/arm/boot/dts/exynos4412-trats2.dts > +++ b/arch/arm/boot/dts/exynos4412-trats2.dts > @@ -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>; 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 > + }; > +}; > diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi > index c452499..b58c14e 100644 > --- a/arch/arm/boot/dts/exynos4x12.dtsi > +++ b/arch/arm/boot/dts/exynos4x12.dtsi > @@ -179,7 +179,7 @@ > ranges; > status = "disabled"; > > - pmu@10020000 { > + pmu: pmu@10020000 { > reg = <0x10020000 0x3000>; > }; > > -- > 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 writes: > On Thu, Sep 22, 2016 at 06:48:35PM +0200, Wolfgang Wiedmeyer wrote: >> 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. >> >> Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> >> --- >> arch/arm/boot/dts/exynos4412-trats2.dts | 14 ++++++++++++++ >> arch/arm/boot/dts/exynos4x12.dtsi | 2 +- >> 2 files changed, 15 insertions(+), 1 deletion(-) >> >> diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts >> index 129e973..a38d1e3 100644 >> --- a/arch/arm/boot/dts/exynos4412-trats2.dts >> +++ b/arch/arm/boot/dts/exynos4412-trats2.dts >> @@ -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>; > > 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. > 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 :) ) 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 [2] https://code.fossencdi.org/kernel_samsung_smdk4412.git/tree/arch/arm/mach-exynos/include/mach/regs-pmu.h#n79
On Thu, Sep 22, 2016 at 08:59:03PM +0200, Wolfgang Wiedmeyer wrote: > > Krzysztof Kozlowski writes: > > > On Thu, Sep 22, 2016 at 06:48:35PM +0200, Wolfgang Wiedmeyer wrote: > >> 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. +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. > > >> > >> Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> > >> --- > >> arch/arm/boot/dts/exynos4412-trats2.dts | 14 ++++++++++++++ > >> arch/arm/boot/dts/exynos4x12.dtsi | 2 +- > >> 2 files changed, 15 insertions(+), 1 deletion(-) > >> > >> diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts > >> index 129e973..a38d1e3 100644 > >> --- a/arch/arm/boot/dts/exynos4412-trats2.dts > >> +++ b/arch/arm/boot/dts/exynos4412-trats2.dts > >> @@ -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>; > > > > 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. 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 > > > 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 :) ) > > 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 > > [2] https://code.fossencdi.org/kernel_samsung_smdk4412.git/tree/arch/arm/mach-exynos/include/mach/regs-pmu.h#n79 > > > -- > Website: https://fossencdi.org > Jabber: wolfgang@wiedmeyer.de > OpenPGP: 0F30 D1A0 2F73 F70A 6FEE 048E 5816 A24C 1075 7FC4 > Key download: https://wiedmeyer.de/keys/ww.asc
Krzysztof Kozlowski writes: > On Thu, Sep 22, 2016 at 08:59:03PM +0200, Wolfgang Wiedmeyer wrote: >> >> Krzysztof Kozlowski writes: >> >> > On Thu, Sep 22, 2016 at 06:48:35PM +0200, Wolfgang Wiedmeyer wrote: >> >> 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. > > +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 :) > 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 >> >> Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> >> >> --- >> >> arch/arm/boot/dts/exynos4412-trats2.dts | 14 ++++++++++++++ >> >> arch/arm/boot/dts/exynos4x12.dtsi | 2 +- >> >> 2 files changed, 15 insertions(+), 1 deletion(-) >> >> >> >> diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts >> >> index 129e973..a38d1e3 100644 >> >> --- a/arch/arm/boot/dts/exynos4412-trats2.dts >> >> +++ b/arch/arm/boot/dts/exynos4412-trats2.dts >> >> @@ -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>; >> > >> > 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. > > 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 > >> >> > 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 :) ) >> >> 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 >> >> [2] https://code.fossencdi.org/kernel_samsung_smdk4412.git/tree/arch/arm/mach-exynos/include/mach/regs-pmu.h#n79 >> >> >> -- >> Website: https://fossencdi.org >> Jabber: wolfgang@wiedmeyer.de >> OpenPGP: 0F30 D1A0 2F73 F70A 6FEE 048E 5816 A24C 1075 7FC4 >> Key download: https://wiedmeyer.de/keys/ww.asc
On Sat, Sep 24, 2016 at 11:04:49PM +0200, Wolfgang Wiedmeyer wrote: > > Krzysztof Kozlowski writes: > > > On Thu, Sep 22, 2016 at 08:59:03PM +0200, Wolfgang Wiedmeyer wrote: > >> > >> Krzysztof Kozlowski writes: > >> > >> > On Thu, Sep 22, 2016 at 06:48:35PM +0200, Wolfgang Wiedmeyer wrote: > >> >> 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. > > > > +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 :) 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
On Sun, Sep 25, 2016 at 09:34:45AM +0200, Krzysztof Kozlowski wrote: > On Sat, Sep 24, 2016 at 11:04:49PM +0200, Wolfgang Wiedmeyer wrote: > > > > Krzysztof Kozlowski writes: > > > > > On Thu, Sep 22, 2016 at 08:59:03PM +0200, Wolfgang Wiedmeyer wrote: > > >> > > >> Krzysztof Kozlowski writes: > > >> > > >> > On Thu, Sep 22, 2016 at 06:48:35PM +0200, Wolfgang Wiedmeyer wrote: > > >> >> 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. > > > > > > +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 :) > > 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... 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
diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts index 129e973..a38d1e3 100644 --- a/arch/arm/boot/dts/exynos4412-trats2.dts +++ b/arch/arm/boot/dts/exynos4412-trats2.dts @@ -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>; + }; +}; diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi index c452499..b58c14e 100644 --- a/arch/arm/boot/dts/exynos4x12.dtsi +++ b/arch/arm/boot/dts/exynos4x12.dtsi @@ -179,7 +179,7 @@ ranges; status = "disabled"; - pmu@10020000 { + pmu: pmu@10020000 { reg = <0x10020000 0x3000>; };
This allows to reboot the device into recovery mode and into the download mode of the bootloader. Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> --- arch/arm/boot/dts/exynos4412-trats2.dts | 14 ++++++++++++++ arch/arm/boot/dts/exynos4x12.dtsi | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-)