Max K
6b7da2887f
package2 verification and ini1 merging fixes ( #125 )
...
* fusee: Incremet offset while reading kip1s
* fusee: Pass package2 section data along with the decrypted metadata
2018-06-04 14:04:44 -07:00
TuxSH
b2139ed182
Pass screen status and mmc struct from stage1 to 2
2018-06-04 19:17:23 +02:00
hexkyz
7e5fda86b2
Merge pull request #114 from desowin/sdmmc-errata
...
Set SDMMC controller to SDR104 as a workaround
2018-06-04 16:20:19 +01:00
langerhans
41429e9120
fusee: Add kernel hash for 4.x
2018-06-03 16:59:21 +02:00
Michael Scire
968c86578a
Fusee: Add 5.x kernel patches to allow for IPC PID mitm.
2018-06-02 20:01:44 -06:00
Michael Scire
cc69079d73
Fusee: Add mechanism for branching back at end of hook.
2018-06-02 19:11:50 -06:00
Max K
8ec3a53d73
Fix CCPLEX bringup and halt the BPMP once it's done booting. ( #118 )
2018-06-02 17:24:02 -07:00
Michael Scire
b3a7086b7e
Fusee: Add infrastructure for applying kernel patches (needed for mitm)
2018-06-02 16:06:31 -06:00
Michael Scire
1ba8a92030
Fusee: Separate kernel patching into its own file.
2018-06-02 16:06:31 -06:00
Tomasz Moń
0534e36cf8
Set SDMMC controller to SDR104 as a workaround
...
According to Tegra X1 Series Processors Silicon Errata there is possible
misalignment of received data which results in a CRC error. The issue is
present only in SDR50 mode.
2018-05-27 17:43:25 +02:00
TuxSH
c9723d7b68
Refactor fusee's makefile
2018-05-27 00:59:02 +02:00
TuxSH
d57f4c54a9
Fix mmc->allow_voltage_switching assignment in sdmmc_init
2018-05-24 17:39:36 +02:00
TuxSH
4d43a86b60
Copy latest sdmmc driver to stage2
2018-05-24 01:17:13 +02:00
TuxSH
fd77e5543e
Add debug comment for exosphère
2018-05-23 18:46:39 +02:00
TuxSH
16ad355f45
Unstub "Validate section hashes."
2018-05-23 18:45:53 +02:00
Michael Scire
c64d7904b4
Fusee: Fix se_calculate_sha256
2018-05-21 13:07:46 -06:00
TuxSH
561fa90669
Use uintX_t for the SE & copy bugfixed SE struct definition
2018-05-21 19:05:00 +02:00
TuxSH
f39622c421
Stage2: Fix bug, add more debug printfs to nxboot. The CCPLEX doesn't turn on
2018-05-21 18:42:42 +02:00
TuxSH
5920f5a4b0
Stage2: fix various bugs in package2.c
2018-05-21 18:18:12 +02:00
TuxSH
ffd0b5df6a
Fix bug in stratosphere_get_ini1, etc.
2018-05-21 17:45:05 +02:00
TuxSH
0e9a304533
stage2: package2: bypass hash checks for now
2018-05-21 17:42:10 +02:00
TuxSH
bf2c6dff25
Stage2: Add exception handlers
2018-05-21 03:50:53 +02:00
TuxSH
83d9d874e6
Fusee use CAR reboot for fatal errors
2018-05-20 23:52:09 +02:00
TuxSH
4ec7d0fc82
Remove packed when not needed
2018-05-20 22:57:25 +02:00
TuxSH
57ff5e694a
Don't check for panics in stage2
2018-05-20 22:00:11 +02:00
TuxSH
3dd6ec5f6c
wtf pmc reboot doesn't fully work -- display doesn't reinitialize
2018-05-20 16:56:15 +02:00
TuxSH
f45bc83bc4
Introduce fatal_error
2018-05-20 16:18:48 +02:00
TuxSH
ec7e0d923d
Add custom panic driver
2018-05-20 14:11:46 +02:00
TuxSH
c820375a86
Make struct tegra_pmc not packed
2018-05-20 01:40:23 +02:00
TuxSH
64cdd2e63f
Actually don't use memcpy in sdmmc
2018-05-19 03:10:06 +02:00
TuxSH
2a98e2e3b8
Sync sdmmc changes between stage1 and 2
2018-05-19 02:50:50 +02:00
TuxSH
2bc2fe1452
Use memcpy instead of raw casts in sdmmc.c
2018-05-19 01:33:07 +02:00
TuxSH
b4eeddd7e1
Revamp all the Makefiles (thanks @fincs @WinterMute)
...
... dependencies are now properly handled (e.g. header changes, etc.)
2018-05-19 01:07:27 +02:00
TuxSH
e0a5acd0ba
[stage2] Add more debugging printfs to package2.c, etc.
2018-05-18 00:24:06 +02:00
TuxSH
993db7ee95
Fix nxboot mkey rev misconception
2018-05-18 00:11:44 +02:00
TuxSH
ec6d05892c
Refactor nxboot package2 reading, work around sdmmc issue, other changes
2018-05-17 23:18:33 +02:00
TuxSH
9ed2f92cdc
[stage2] Fix some FS bugs
2018-05-17 19:53:42 +02:00
TuxSH
3dac6c9268
Fix bug in fusee: package2.c, etc.
2018-05-17 16:11:10 +02:00
TuxSH
1b07a07353
Fusee: Change package2 loading logic (untested)
2018-05-17 15:56:02 +02:00
Michael Scire
5088851de4
Fusee: fix unused var
2018-05-17 07:15:55 -06:00
Michael Scire
bb1dcb2655
Fusee: Implement BIS crypto functions.
2018-05-17 07:15:29 -06:00
TuxSH
5631b27449
Fix out-of-bounds partition r/w bugs in raw_dev.c
2018-05-17 14:39:16 +02:00
TuxSH
858b40e5fb
GPT entry LBA range is inclusive
2018-05-17 14:38:19 +02:00
TuxSH
85bfbeccc3
Fix latest commit
2018-05-17 02:07:11 +02:00
TuxSH
52d2af86b6
Fix BCT version parsing
2018-05-17 01:54:19 +02:00
TuxSH
9309b0bed5
Don't overflow devoptabs, etc.
2018-05-17 01:53:32 +02:00
TuxSH
468a063c03
Load the appropriate package1 key. The warmboot fw is now properly read.
2018-05-16 23:19:55 +02:00
TuxSH
348b2457e0
Fix key derivation regression
2018-05-16 23:04:54 +02:00
TuxSH
c71e7c8c2e
[stage2] Add "hexdump"
2018-05-16 19:59:14 +02:00
TuxSH
0d5796fa0b
Align crypto buffers to 16 bytes in key_derivation.c
2018-05-16 19:57:36 +02:00
TuxSH
ab4518b9c1
Simplify some logic in derive_nx_keydata
2018-05-16 18:41:16 +02:00
TuxSH
c0617982b8
Fix typo in decrypting all keyblobs (thanks @tslater2006 !)
2018-05-16 16:45:44 +02:00
Michael Scire
1182ea23a5
Fusee: Fix typo when decrypting keyblobs.
2018-05-16 02:39:13 -06:00
Michael Scire
fa71e9cb15
Fusee: Decrypt all keyblobs during key derivation.
2018-05-16 02:06:59 -06:00
TuxSH
f84645e91f
Simplify package1_get_encrypted_package1
2018-05-16 02:55:48 +02:00
TuxSH
34a658ce4c
Fix package1_read_and_parse_boot0
...
Key derivation is now working
2018-05-16 01:46:08 +02:00
TuxSH
db929925f3
Fix TSEC key fetching, thanks to @rajkosto
2018-05-16 00:37:07 +02:00
TuxSH
6c50723209
Fix tsec.c (thanks @rajkosto @tslater2006), fixes #106
2018-05-15 23:59:20 +02:00
TuxSH
9a86ffec68
Fix diskio.c, etc.
2018-05-15 23:54:33 +02:00
TuxSH
42fd4f73cf
Remove stray debug printf in gpt.c
2018-05-15 22:10:45 +02:00
TuxSH
60dbc7c9d7
┬┴┬┴┤( ͡° ͜ʖ├┬┴┬┴
2018-05-15 21:08:57 +02:00
Luke Street
f5ab896343
[stage2] Invert a few checks
2018-05-15 14:40:18 -04:00
TuxSH
62ebf20e25
Fix typo in nxboot.c
2018-05-15 20:24:37 +02:00
TuxSH
1288f54965
Finish writing stratosphere_get_ini1
2018-05-15 19:50:20 +02:00
TuxSH
3c0436b98f
Write more code for stratosphere_get_ini1, make it and its caller take target_firmware
2018-05-15 16:09:06 +02:00
TuxSH
4e1a368b43
Write more of stratosphere_get_ini1
2018-05-15 12:38:07 +02:00
TuxSH
af2de57fdc
Embed exosphere, thermosphere, loader, pm, sm into fusee-secondary
...
Still needs boot and boot2 to be built as proper KIPs
2018-05-15 02:45:31 +02:00
TuxSH
172a2b679c
Fix strncpy bugs in fusée, etc.
2018-05-15 01:18:05 +02:00
TuxSH
15bba0ba0c
Make loadlist empty when booting Horizon, more nxboot.c code
2018-05-14 21:17:06 +02:00
TuxSH
c2b22a6bf2
Write all the needed pk1 code and a large part of the nxboot function
2018-05-14 02:40:35 +02:00
TuxSH
17f4a17d17
[stage2] Add debug printf in main.c
2018-05-14 00:06:48 +02:00
TuxSH
bc7369b5d1
[stage2] Add dump_to_file
2018-05-14 00:03:05 +02:00
TuxSH
8df624a10d
Rename sd_utils to fs_utils, etc
2018-05-13 23:49:50 +02:00
TuxSH
a3792d94dc
[stage2] Support sector sizes up to 4K in FatFs.
...
Note: SD cards always have a sector size of 512 bytes.
2018-05-13 20:51:57 +02:00
TuxSH
9f53aa13d1
[stage2] Implement disk_status
2018-05-13 20:32:38 +02:00
TuxSH
4f50d412f5
Redesign fs_dev, raw_dev, introducing device_partition and switch_fs.
...
In theory, one could mount an encrypted FAT partition itself coming from a disk image, etc.
2018-05-13 19:53:55 +02:00
TuxSH
396a646fa3
[stage2] Add console_get_framebuffer
2018-05-12 21:39:29 +02:00
TuxSH
00f08321c7
[stage2] Accomodate raw_mmc_dev to latest sdmmc driver changes
2018-05-12 12:23:07 +02:00
TuxSH
75169790ff
stage1 -> stage2 again
2018-05-12 11:00:36 +02:00
TuxSH
f6f8065417
We actually need the pk1 key
2018-05-11 23:57:48 +02:00
TuxSH
4ada3b6195
Merge pull request #93 from encounter/fix/stage2-args
...
Fix stage2_args_t mismatch
2018-05-11 23:38:25 +02:00
TuxSH
6e43a71b5b
Fix misconception in latest commit
2018-05-11 23:12:22 +02:00
TuxSH
3ac3183c85
[stage2] Refactor key_derivation type and function declarations
2018-05-11 23:01:13 +02:00
TuxSH
eb8573093d
Move sd init into diskio.c, write code for latest commit
2018-05-11 22:24:40 +02:00
TuxSH
f8cf7adad7
Add code to register rawnand, boot0, and bcpkg2
2018-05-10 23:48:41 +02:00
TuxSH
a790760de3
raw_mmc_dev: fields should be u64
2018-05-10 23:23:14 +02:00
TuxSH
4168a33dd1
[stage2] Implement package1_parse_boot0
2018-05-10 22:53:46 +02:00
TuxSH
1dd073d8d2
[stage2] Add bct.h
2018-05-10 21:54:58 +02:00
TuxSH
ac9939b7a1
Apply sdmmc stage1 changes to stage2
2018-05-10 21:36:26 +02:00
TuxSH
5b5aa38486
[stage2] Add GPT parsing code (tested on PC)
2018-05-10 15:16:44 +02:00
TuxSH
20c225c829
[stage2] raw_mmc_dev.c: fix various bugs
2018-05-10 00:36:13 +02:00
TuxSH
3e68441040
[stage2] Make console.c manage the display, enable it only when needed
2018-05-09 22:20:14 +02:00
TuxSH
4217d7feef
[stage2] Unstub rawmmcdev_write
2018-05-09 20:52:21 +02:00
TuxSH
ff2472385f
[sdmmc] sdmmc_handle_cpu_transfer: handle unaligned buffers
2018-05-09 20:46:16 +02:00
TuxSH
b9b13e215f
Fix struct tegra_sdmmc definition
...
Definition errors were cancelling each other (for the most part)
2018-05-09 19:33:54 +02:00
TuxSH
3206583db3
[sdmmc] Fix const-correctness issue
2018-05-09 19:11:16 +02:00
TuxSH
7ad818ed93
Use latest sdmmc driver in stage2
2018-05-09 18:01:51 +02:00
TuxSH
694289de0b
Add raw_mmc_dev (untested!)
2018-05-09 17:51:13 +02:00
TuxSH
04f9920cc3
Rename g_devices to g_fsdev_devices
2018-05-09 17:26:30 +02:00
TuxSH
3fae01b08f
Rewrite condition in fsdev_seek
2018-05-09 17:10:35 +02:00
TuxSH
bf94bf48d2
Refine error in fsdev_mount_device
2018-05-09 14:16:33 +02:00
TuxSH
b2c82c75d0
Make stdout line-buffered
2018-05-09 11:49:10 +02:00
TuxSH
7560abbfbd
Fix FindDevice and RemoveDevice calls in fs_dev.c
2018-05-09 11:36:49 +02:00
Luke Street
290fb356a1
stage2: fix init malloc size for stage2_args_t
2018-05-08 23:24:27 -04:00
TuxSH
3682a56062
O_RDONLY is 0
2018-05-09 00:53:13 +02:00
TuxSH
77faa00a57
Rewrite package2.c
2018-05-09 00:19:51 +02:00
TuxSH
7df879d346
Change the allocation logic in stratosphere.c
2018-05-08 18:46:54 +02:00
TuxSH
70bb496388
Refactor stage1's and stage2's main.c files
2018-05-08 16:51:43 +02:00
TuxSH
50498e3b20
Don't deinit the display yet, for now
2018-05-08 15:44:48 +02:00
TuxSH
d43255d484
Fix bug in crt0
2018-05-08 14:56:17 +02:00
TuxSH
461e886244
Make di.c accept arbitrary FB addresses, fix flickering issues
2018-05-08 13:45:37 +02:00
TuxSH
170cd2d8c4
[stage2] Forgot to change that, too
2018-05-08 13:45:37 +02:00
TuxSH
d390ead56f
Fix faulty IRAM check in check_32bit_address_range_in_program
2018-05-08 13:45:37 +02:00
TuxSH
880f49cfa5
Fix inverted condition issue in check_32bit_address_range_loadable
2018-05-08 13:45:37 +02:00
TuxSH
e8306361f0
Rewrote crt0, init, and chainloading code
...
start.s, init.c, linker.ld and linker.specs are meant
to be re-used by user applications, should they remove the defines
from init.c and the .chainloader* sections from the linker script
2018-05-08 13:45:37 +02:00
TuxSH
699ddfc043
Simplify fsdev_set_default_device
2018-05-08 13:44:47 +02:00
TuxSH
5084f09081
Fix warning/error, etc. in fs_dev.c
2018-05-07 23:05:53 +02:00
TuxSH
25db9fcc4a
Fix fsdev_set_default_device bug
2018-05-07 14:25:01 +02:00
TuxSH
7695b5bdbd
[stage2] Fix the ordering of rules in linker script
2018-05-07 10:53:41 +02:00
Kate J. Temkin
5065a04451
fusee-secondary: don't create 3GiB output files :)
2018-05-06 21:49:42 -06:00
TuxSH
75dfcd07a9
Add chainloader (stage2) (need to edit more files)
2018-05-07 01:02:23 +02:00
TuxSH
2c07b5a2fb
Rework fs_dev mount code
2018-05-06 18:41:40 +02:00
TuxSH
a29e800661
Revert "Fix mount code in fs_dev.c"
...
This reverts commit 306555e522
.
2018-05-06 18:14:08 +02:00
TuxSH
8b418732ad
Upgrade FatFs to R0.13b
2018-05-06 18:00:22 +02:00
TuxSH
4265dc7b65
Don't pass the mmc struct around
2018-05-06 17:22:12 +02:00
TuxSH
68eec056a9
Fix const-correctness issue in sdmmc.h
2018-05-06 15:22:35 +02:00
TuxSH
1aa6b92bc4
Normalize drivers between stage1 and 2
2018-05-06 15:02:13 +02:00
TuxSH
306555e522
Fix mount code in fs_dev.c
2018-05-06 13:03:45 +02:00
TuxSH
8f5a5acb06
Fix the g_bct0 overflow issue, malloc now works
...
The linker chose the unused symbol from loader.c.
2018-05-06 11:46:48 +02:00
TuxSH
6e5d4b8fc9
Fix bss overflow error
2018-05-06 00:45:30 +02:00
TuxSH
8648cac77b
[stage2] Remove printk, introduce UTF-8 console stdio
2018-05-05 23:56:18 +02:00
TuxSH
30b9873ab3
Use the bloated string formatting functions from newlib
2018-05-05 18:35:00 +02:00
TuxSH
67b76cc8f1
Instead of passing FatFS structs around, unmount; other changes
2018-05-05 17:33:49 +02:00
TuxSH
0fca6c2296
[stage2] Add fatfs devoptab wrapper, change ffconf accordingly
2018-05-05 16:30:25 +02:00
TuxSH
e5fff14689
Move fatfs around
2018-05-05 00:11:22 +02:00
TuxSH
0d344e45af
Initialize heap, increase stack size
2018-05-04 23:56:01 +02:00
Michael Scire
4199be2460
Merge SD stuff into fusee-secondary. Switch diskio to single-sector reads temporarily
2018-05-04 11:47:05 -06:00
Max K
0807aaea2b
Fix small issues in the stage2 loader ( #78 )
...
* stage2 loader: Fix loadlist parsing breaking out of the loop too early
* stage2 loader: Use bct0 from the loader context
2018-05-03 13:08:30 -07:00
Michael Scire
ea609e68d3
Change read_sd_file semantics to return size read.
2018-04-26 04:47:22 -06:00
Rajko Stojadinovic
4e1c12a659
Fusee: Fix BisPartition enum to correctly identify partitions.
...
* BisPartition_t was missing SAFE, meaning User and System were using wrong key_source
* Normalize tabs to spaces
* Merge User and System BisPartition_t because they are the same key anyway
* Remove extra newline
2018-04-25 09:47:39 -07:00
Michael Scire
5742571153
Fusee: Fix overflow condition in SD KIP merging
2018-04-12 02:47:27 -06:00
Michael Scire
75b29e777b
Fusee: Update INI1 size after patching
2018-04-11 22:32:45 -06:00
Michael Scire
375a0b3fa8
Fusee: Actually write SD path in stratosphere_merge_inis
2018-04-11 22:10:02 -06:00
Michael Scire
0674c4b64f
Stratosphere: Add support for custom KIPs/INI in Fusee
2018-04-11 21:56:11 -06:00
Michael Scire
e5a0cb1abe
Fusee Stage 2: Flesh out Package2 patching (implement decryption, fixing of metadata)
2018-04-11 20:29:35 -06:00
Michael Scire
a0d2642bb1
Skeleton out framework for patching package2.
2018-04-11 18:19:01 -06:00
Michael Scire
3c24bfdb79
Fusee Stage2: skeleton more of the nxboot process
2018-04-10 16:37:58 -06:00
Michael Scire
9fadec60c5
Add skeleton architecture for displaying custom splash screen
2018-04-10 16:09:00 -06:00
Michael Scire
87605563d2
Restore incorrectly deleted files
2018-04-10 15:56:45 -06:00
Michael Scire
d6806517c8
Fusee Stage 2: Make references to external (stage 1) memory internal.
2018-04-09 15:44:59 -06:00
Michael Scire
a05bf5b4ce
Fusee stage 2: Fix up loader (no stage 3!). Skeleton chainload behavior.
2018-04-09 15:34:23 -06:00
Michael Scire
92ef68e84a
Turns out we actually don't need a third stage for Fusee
2018-04-09 15:12:54 -06:00
Michael Scire
953c02dfba
Update argument passing, add video resume
2018-04-08 13:51:44 -06:00
Michael Scire
82552b5a89
Implement much of the core Stage2 loader logic for Fusee
2018-04-08 05:51:57 -06:00
Michael Scire
c9909b34db
Use argc/argv in Stage 2
2018-04-08 05:13:15 -06:00
Michael Scire
39bf3cb800
Add display/printk to fusee stage2
2018-04-08 05:06:47 -06:00
Michael Scire
c758b1188a
Fix start.s in stage2 of Fusee for argc/argv
2018-04-08 05:06:04 -06:00
Michael Scire
33f76545df
Implement all core Stage 1 logic for Fusee
2018-04-07 22:51:24 -06:00
Michael Scire
18f1274587
Change fusee folder naming
2018-04-07 21:45:57 -06:00