Hi, On 7 August 2016 at 10:59, Andreas Färber <afaer...@suse.de> wrote: > Am 14.07.2016 um 08:18 schrieb Alexander Graf: >>> Am 14.07.2016 um 06:48 schrieb Andreas Färber <afaer...@suse.de>: >>> >>> Hi Alex, >>> >>>> Am 05.06.2016 um 23:17 schrieb Alexander Graf: >>>> If Linux finds an EFI implementation it always uses the EFI reset handler >>>> to >>>> reboot or power down the system. >>> >>> Hm, I thought my powerdown issues on the Jetson TK1 were for lack of >>> CONFIG_AS3277_RESET - sounds like it could be due to EFI instead? >> >> It depends. IIRC the TK1 is 32bit, where you're probably using grub2 which >> is not efi Linux aware, but instead boots over the zImage protocol. In that >> case Linux doesn't know about efi runtime services. > > We've confirmed in the meantime that the Jetson TK1 issues were > unrelated to EFI and could be worked around by enabling some as3722 > kernel option. > >>>> Unfortunately we haven't implemented that one yet. In fact, while we >>>> prepared >>>> for RTS handling, we never actually implemented a single user. >>>> >>>> This is going to change today. This simple patch set enables RTS reset >>>> support >>>> for the RPi systems, allowing you to reboot and shut down the rpi if booted >>>> via EFI. >>>> >>>> It also lays the groundwork to show how to implement that functionality at >>>> all, >>>> so I expect more boards to follow. >>>> >>>> Alexander Graf (2): >>>> efi_loader: Allow boards to implement get_time and reset_system >>>> ARM: bcm283x: Implement EFI RTS reset_system >>>> >>>> arch/arm/mach-bcm283x/include/mach/wdog.h | 2 +- >>>> arch/arm/mach-bcm283x/reset.c | 59 +++++++++++++++-- >>>> cmd/bootefi.c | 4 ++ >>>> include/efi_loader.h | 18 ++++++ >>>> lib/efi_loader/efi_runtime.c | 101 >>>> ++++++++++++++++++++++++++---- >>>> 5 files changed, 166 insertions(+), 18 deletions(-) >>> >>> This all looks very non-generic and would mean that every board will >>> need to be patched individually, which is unrealistic to be tested by >>> just the two of us. >>> >>> Can't you patch the reset_cpu() declaration (common.h/sysreset.h) >>> instead of all its implementations? We might still need to patch >>> individual implementations but I don't see why any reset_cpu() >>> implementation should be in a different section than others. >> >> Hmm. There are 2 minor problems: >> >> 1) Efi also supports power off on top of reset >> 2) We would have to convert all boards at once, rather than one by one, as >> we couldn't distinguish between efi aware and unaware ones > > I don't see why we would need to convert everything at once either way. > >> >> And one major issue: >> >> All device memory pointers used by the reset functions need to be marked as >> such in the efi memory map and live relocated when entering runtime mode. So >> we need to manually touch every function either way.
I'm worried about this. It means that any code used from this run-time needs to be so marked. This could be large tracts of U-Boot. In particular, as I have mentioned a few times, I think the UEFI tables should be 'live' and not just created before booting, which means that much of driver/core needs to be in the UEFI section. Should we just adjust it so that the whole of U-Boot is in there? How big is the UEFI run-time normally? >> >> That mesns we could either make a generic, broken version. Or we just >> convert one by one for systems that we can verify it on :). I hope that I >> designed the APIs easily enough that people who are not us enable RTS >> support on other platforms too :) > > > Ping! Anyone any comments on the two open questions of uppercase vs. > lowercase and placement of attribute? I prefer lower case :-) > > 1/2 should not be affected by those discussion points and already > featured in a second series (LS2080ARDB). Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot