Mat M
1de6b336bb
all: Make file-scope variables internally linked where applicable ( #57 )
...
Narrows the scope of visible symbols to where they're actually used. Also
makes it easier to see true globals in source files
(ones used from multiple translation units)
2018-02-26 00:42:21 -08:00
Mat M
c94cfe4898
lock: Use stdatomic.h ( #56 )
...
Provides the same assembly output while using the standardized interface
e.g.
0000000000000000 <set_priv_smc_in_progress>:
0: 90000000 adrp x0, 0 <set_priv_smc_in_progress>
4: 91000000 add x0, x0, #0x0
8: 52800022 mov w2, #0x1 // #1
c: d503201f nop
10: 085ffc01 ldaxrb w1, [x0]
14: 08037c02 stxrb w3, w2, [x0]
18: 35ffffc3 cbnz w3, 10 <set_priv_smc_in_progress+0x10>
1c: 72001c3f tst w1, #0xff
20: 54ffff81 b.ne 10 <set_priv_smc_in_progress+0x10> // b.any
24: d65f03c0 ret
2018-02-25 22:59:48 -08:00
Mat M
461105a501
fuse: simplify checks in fuse_get_reserved_odm and fuse_get_spare_bit ( #54 )
...
A separate variable isn't particularly necessary here, and given that the type
is unsigned, we only need to test the upper bound.
This also resolves two -Wtype-limits warnings
2018-02-25 21:23:31 -08:00
Mat M
fff3912c81
mc: Remove dead code in get_carveout_by_id ( #52 )
2018-02-25 21:13:07 -08:00
Mat M
991d4f1355
se: Remove memset in se_perform_aes_block_operation ( #53 )
...
We can just initialize the array to be zeroed out. This is safer and less error-prone,
since the initializer is now associated with the variable directly, making it
impossible to put code relying on the zeroed out state before it (unlike with memset).
2018-02-25 21:12:49 -08:00
TuxSH
4d3f1f6ae8
Remove built files that somehow got here
2018-02-25 22:36:32 +01:00
TuxSH
969b781a68
Failed attempt to fix loops not being unrolled, other fixes.
2018-02-25 21:41:16 +01:00
TuxSH
ed5f43ef39
Update .gitignore
2018-02-25 20:03:30 +01:00
TuxSH
b0ea9c1a0b
Move source files to src/, add Makefile, fix all build and linkage errors, etc.
2018-02-25 20:00:50 +01:00
TuxSH
4c7aa566f0
Fix user page mmu mapping and naming scheme
2018-02-25 15:12:49 +01:00
TuxSH
ab38217720
Fix mmu descriptor mistakes
2018-02-25 14:37:44 +01:00
Michael Scire
c46a3cc794
Map userpage in at appropriate address (TODO: Invalidate TLB)
2018-02-25 01:31:45 -08:00
Michael Scire
78c8fe36fe
Fix read64le
2018-02-25 01:26:40 -08:00
Michael Scire
82b4c6763d
Implement getters for fuse values, fill out smcGetConfig
2018-02-25 01:21:52 -08:00
TuxSH
b0079e404d
Clear pk2ldr in coldboot_main
2018-02-25 03:54:28 +01:00
TuxSH
a00e68e94a
Write a significant chunk of coldboot init...
...
...merge start.cold.s and start.warm.s, other changes, etc.
2018-02-25 03:34:15 +01:00
TuxSH
be67169390
Merge pull request #50 from lioncash/error
...
memory_map: Fix most compilation issues
2018-02-25 00:14:50 +01:00
Mat M
a081c93094
bootconfig/configitem: Fix includes and identifiers ( #49 )
2018-02-24 12:46:57 -08:00
Lioncash
a34813bcf4
memory_map: Fix most compilation issues
2018-02-24 15:38:48 -05:00
Mike H
f6008d947d
More previously unknown fuses
2018-02-24 18:48:11 +00:00
Mike H
3929ba77e6
Adding FUSE_RESERVED_SW
2018-02-24 18:34:49 +00:00
hexkyz
e2d45878c3
Preliminary Exosphere FUSE driver
2018-02-24 18:15:47 +00:00
TuxSH
cc4f6f7f84
Introduce memory_map.h
2018-02-24 17:22:55 +01:00
Michael Scire
ed5850ebbf
Implement se_trigger_interrupt, fix up some configitems
2018-02-24 07:25:38 -08:00
Michael Scire
e8b1e0b965
Implement exception vectors.
2018-02-24 07:06:29 -08:00
Michael Scire
422cd14aac
Implement driver for the GIC-400.
2018-02-24 05:33:16 -08:00
Michael Scire
c94fe287cb
Exosphere I2C Driver.
2018-02-24 04:27:34 -08:00
Michael Scire
672d76cb31
Fix I2C success mask
2018-02-24 04:27:34 -08:00
Mat M
56f5b56235
smc_user: Correct cache_flush to flush_dcache_range ( #48 )
...
cache_flush is a non-existent function
2018-02-23 20:38:21 -08:00
Mat M
44a2b7a344
smc_user: Add missing gcm.h include ( #47 )
...
Resolves an implicit declaration warning for gcm_decrypt_key
2018-02-23 16:09:55 -08:00
Mat M
e3897bb731
se: Add missing string.h include ( #46 )
...
Resolves implicit declaration warnings for memcpy and memset
2018-02-23 16:09:44 -08:00
Mat M
34d8a859ab
timers: Fix identifier name in wait's spin-lock ( #45 )
...
Also resolves implicit definition warnings for wait by including the necessary header where applicable
2018-02-23 16:09:34 -08:00
Michael Scire
dbf2eb7ed1
Clean up BPMPFW I2C prototypes.
...
Prototypes for internal functions shouldn't be in shared headers.
2018-02-23 12:07:02 -08:00
TuxSH
0a0a1b088d
Merge pull request #43 from lioncash/prototype
...
i2c: Fix -Wmissing-prototypes warnings
2018-02-23 19:18:46 +01:00
TuxSH
b3f8908ece
Merge pull request #44 from lioncash/mmu
...
mmu: Remove phys_addr parameter from mmu_unmap_range
2018-02-23 19:18:06 +01:00
Lioncash
b4229f0fa8
mmu: Remove phys_addr parameter from mmu_unmap_range
...
It's unused
2018-02-23 09:25:21 -05:00
Lioncash
296b43744c
i2c: Fix -Wmissing-prototypes warnings
2018-02-23 09:19:32 -05:00
TuxSH
8e4a5bf32b
Merge pull request #17 from lioncash/include
...
Add missing string.h includes
2018-02-23 14:51:27 +01:00
TuxSH
dd3498a356
Merge pull request #27 from lioncash/param
...
mmu: Fix compilation issues
2018-02-23 14:50:54 +01:00
Mat M
9dfa6e2732
start.cold/warm: Correct MSR instructions ( #42 )
...
The second operand needs to be an immediate
2018-02-23 05:46:06 -08:00
Mat M
7b1fa3a8f0
start.cold/warm.s: Correct DSB instruction instances ( #41 )
...
DSB requires that the barrier option be specified
2018-02-23 05:42:55 -08:00
Merry
85df3dcb7e
mc: fix invalid range comparison ( #37 )
2018-02-23 05:42:47 -08:00
Mat M
615216edeb
smc_api: Fix compilation issues ( #40 )
...
* smc_api: Add missing includes
MASTERKEY_REVISION_400_CURRENT, seal_titlekey, PMC_BASE and the randomcache functions aren't visible without them
* smc_api: Add missing parameter name to smc_get_result
* smc_api: Fix buffer being passed to se_get_exp_mod_output in smc_unwrap_rsa_oaep_wrapped_titlekey_get_result
wrapped_titlekey doesn't exist
* smc_api: Correct device physical address accesses in smc_read_write_register
2018-02-23 05:41:26 -08:00
Merry
e29123cac3
randomcache: Typo in randomcache_refill ( #38 )
...
g_random_cache_low > high_plus_one didn't update g_random_cache_high.
2018-02-23 05:40:47 -08:00
Mat M
0ec1ceca1f
sealedkeys: Fix compilation issues ( #39 )
...
* sealedkeys: Remove non-existent variable in condition in seal_titlekey
* sealedkeys: call unseal_key_internal in unseal_key instead of seal_key_internal
2018-02-23 05:40:38 -08:00
TuxSH
91d1b047c4
Fix bpmpfw/Makefile, other changes.
2018-02-23 13:56:23 +01:00
Lioncash
705802d749
mmu: Fix call to non-existent mmu_unmap_page_range function in mmio_unmap_all_devices
2018-02-23 07:32:23 -05:00
Lioncash
d2f12c5900
mmu: Remove extraneous argument to mmu_unmap in mmu_unmap_range
2018-02-23 07:30:48 -05:00
Michael Scire
90f792b1cc
Remove Makefile copy/paste leftovers for bpmpfw
2018-02-23 04:15:14 -08:00
Michael Scire
5370c7b150
Implement LP0-Entry BPMP Firmware
2018-02-23 04:13:18 -08:00