Commit graph

97 commits

Author SHA1 Message Date
Michael Scire e5bf06254a boot: add rgltr/clkrst overrides, skel I2cBusAccessor 2020-11-14 03:37:51 -08:00
SciresM 166318ba77
sdmmc: implement driver suitable for fs + bootloader
* sdmmc: begin skeletoning sdmmc driver

* sdmmc: add most of SdHostStandardController

* sdmmc: implement most of SdmmcController

* sdmmc: Sdmmc2Controller

* sdmmc: skeleton implementation of Sdmmc1Controller

* sdmmc: complete abstract logic for Sdmmc1 power controller

* sdmmc: implement gpio handling for sdmmc1-register-control

* sdmmc: implement pinmux handling for sdmmc1-register-control

* sdmmc: fix building for arm32 and in stratosphere context

* sdmmc: implement voltage enable/set for sdmmc1-register-control

* util: move T(V)SNPrintf from kernel to util

* sdmmc: implement BaseDeviceAccessor

* sdmmc: implement MmcDeviceAccessor

* sdmmc: implement clock reset controller for register api

* sdmmc: fix bug in WaitWhileCommandInhibit, add mmc accessors

* exo: add sdmmc test program

* sdmmc: fix speed mode extension, add CheckMmcConnection for debug

* sdmmc: add DeviceDetector, gpio: implement client api

* gpio: modernize client api instead of doing it the lazy way

* sdmmc: SdCardDeviceAccessor impl

* sdmmc: update test program to read first two sectors of sd card

* sdmmc: fix vref sel

* sdmmc: finish outward-facing api (untested)

* ams: changes for libvapours including tegra register defs

* sdmmc: remove hwinit
2020-10-30 11:54:30 -07:00
Michael Scire cd62d83586 fusee: fix sleep/wake on 6.x 2020-09-07 10:43:35 -07:00
Michael Scire e435f56367 exo: build with -Wextra 2020-08-17 14:39:18 -07:00
Michael Scire 51b5c3d87d ams: avoid UB infinite loops 2020-08-13 17:28:29 -07:00
Michael Scire 420bc7df9b ams: update build system to add generic-fallback support 2020-08-11 11:22:56 -07:00
Michael Scire b08ccd7341 exo: fixes, now tested working on mariko hardware 2020-07-02 14:06:42 -07:00
Michael Scire 828b170aac exo: add mariko spare reg write during setup 2020-06-29 05:40:09 -07:00
Michael Scire e16b87c843 exo: implement mariko fuse driver 2020-06-29 04:40:59 -07:00
Michael Scire bf92daf055 exo: implement remaining SE changes for mariko support 2020-06-28 21:11:29 -07:00
Michael Scire 5cb9fa510e exo: implement mariko se/tzram context save 2020-06-28 20:32:45 -07:00
Michael Scire 1473adf5c4 fusee/exo: correct device key management for newer consoles (closes #1053) 2020-06-28 05:39:25 -07:00
Michael Scire c129256dd0 exo: amend pk21 restrictions 2020-06-14 22:07:45 -07:00
Michael Scire 79e4c0ef6e exo2: add security checks, full 2.0.0 support 2020-06-14 22:07:45 -07:00
Michael Scire 6780b096ca exo2: address volca review commentary 2020-06-14 22:07:45 -07:00
Michael Scire 293c213bf2 exo2: implement warmboot firmware 2020-06-14 22:07:45 -07:00
Michael Scire 6c145d76c7 exo2: implement SmcIramCopy/reboot to payload/rcm 2020-06-14 22:07:45 -07:00
Michael Scire bb6671a94a exo2: implement SmcReencryptDeviceUniqueData 2020-06-14 22:07:45 -07:00
Michael Scire 95d38a1a94 exo2: suspend fixes (sleep/wake now works on hardware) 2020-06-14 22:07:45 -07:00
Michael Scire 2fb363dcf0 exo2: implement the rest of cpu suspend (security checks TODO) 2020-06-14 22:07:45 -07:00
Michael Scire 34098f7215 exo2: add sc7fw load, skeleton rest of suspend 2020-06-14 22:07:45 -07:00
Michael Scire 0202a95832 exo2: implement the first half of SmcCpuSuspend 2020-06-14 22:07:45 -07:00
Michael Scire 068c25ce66 exo2: add a number of minor configuration fixes 2020-06-14 22:07:45 -07:00
Michael Scire 8e401f4daa exo2: implement smc cpu off 2020-06-14 22:07:45 -07:00
Michael Scire ccba70abfe exo2: implement SmcPrepareEsDeviceUniqueKey, SmcPrepareEsCommonTitleKey, SmcLoadPreparedAesKey 2020-06-14 22:07:45 -07:00
Michael Scire 91e0bbd9d7 exo2: Implement (untested) SmcDecryptDeviceUniqueData 2020-06-14 22:07:45 -07:00
Michael Scire 4fe42eb997 exo2: implement some mariko TODOs 2020-06-14 22:07:45 -07:00
Michael Scire 99e0448f30 exo2: cache soc type/hardware type for quick lookup 2020-06-14 22:07:45 -07:00
Michael Scire a0b08d0540 exo2: fix bugs in Cmac and DeviceId calculation 2020-06-14 22:07:45 -07:00
Michael Scire aa50944568 exo2: tentative (read: bugged) SmcComputeCmac, SmcGenerateSpecificAesKey, SmcGetSecureData 2020-06-14 22:07:45 -07:00
Michael Scire e0dbfc69a8 exo2: implement SmcComputeAes, SmcGetResult, SmcGetResultData 2020-06-14 22:07:45 -07:00
Michael Scire bf546d5fb3 exo2: implement SmcGenerateAesKek, SmcLoadAesKey 2020-06-14 22:07:45 -07:00
Michael Scire 6bf283ec2e exo2: implement SmcGetConfig 2020-06-14 22:07:45 -07:00
Michael Scire e3eadcd2e3 exo2: Implement SmcReadWriteRegister 2020-06-14 22:07:45 -07:00
Michael Scire 8c4c1db506 exo2: minor fixes, now completes main and receives SMCs on hw 2020-06-14 22:07:45 -07:00
Michael Scire 27843314a4 exo2: minor stack/mmu fixes, now gets to main on hw 2020-06-14 22:07:45 -07:00
Michael Scire 3d6baf96a3 exo2: implement SmcPowerCpuOn 2020-06-14 22:07:45 -07:00
Michael Scire ab703646d5 exo2: by default, map end of iram for debug 2020-06-14 22:07:45 -07:00
Michael Scire b7ff9e8fcc exo2: reorganize to save >0x300 bytes and 0x100 of stack in main 2020-06-14 22:07:45 -07:00
Michael Scire ad664daea5 exo2: implement remainder of warmboot tz code 2020-06-14 22:07:45 -07:00
Michael Scire dc6abf9f68 exo2: Implement the rest of main/return-to-el1 2020-06-14 22:07:45 -07:00
Michael Scire 87bdc46beb exo2: implement rest of main other than SetupSocProtections 2020-06-14 22:07:45 -07:00
Michael Scire f391354415 exo2: implement through package2 decryption 2020-06-14 22:07:45 -07:00
Michael Scire 9ddcbe9dc3 exo2: implement main through sync-for-pk21-load 2020-06-14 22:07:45 -07:00
Michael Scire e11fad6598 exo2: implement through boot config load/validate 2020-06-14 22:07:45 -07:00
Michael Scire cbcd1d87fb exo2: implement through end of random cache init 2020-06-14 22:07:45 -07:00
Michael Scire f66b41c027 exo2: Initial work on the exosphere rewrite.
exo2: Implement uncompressor stub and boot code up to Main().

exo2: implement some more init (uart/gic)

exo2: implement more of init

exo2: improve reg api, add keyslot flag setters

exo2: implement se aes decryption/enc

exo2: fix bugs in loader stub/mmu mappings

exo2: start skeletoning bootconfig/global context types

arch: fix makefile flags

exo2: implement through master key derivation

exo2: implement device master keygen

exo2: more init through start of SetupSocSecurity

exo2: implement pmc secure scratch management

se: implement sticky bit validation

libexosphere: fix building for arm32

libexo: fix makefile flags

libexo: support building for arm64/arm

sc7fw: skeleton binary

sc7fw: skeleton a little more

sc7fw: implement all non-dram functionality

exo2: fix DivideUp error

sc7fw: implement more dram code, fix reg library errors

sc7fw: complete sc7fw impl.

exo2: skeleton the rest of SetupSocSecurity

exo2: implement fiq interrupt handler

exo2: implement all exception handlers

exo2: skeleton the entire smc api, implement the svc invoker

exo2: implement rest of SetupSocSecurity

exo2: correct slave security errors

exo2: fix register definition

exo2: minor fixes
2020-06-14 22:07:45 -07:00