Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ci #261

Closed
wants to merge 60 commits into from
Closed

Ci #261

Changes from 1 commit
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
96da27f
Started working on iPod Touch 2G
devos50 Dec 23, 2022
5d280d6
More work on iPod Touch 2G emulation
devos50 Dec 24, 2022
d106e08
Added NOR SPI peripheral
devos50 Dec 25, 2022
ee68a07
S5L8720 SPI seems to be functional
devos50 Dec 25, 2022
c7ce40a
NOR SPI seems to work
devos50 Dec 26, 2022
2bb40f5
Implemented a first version of the PKE engine
devos50 Dec 27, 2022
b9529e0
PKE engine seems to be operational
devos50 Dec 28, 2022
5fb1e11
Fixed various things
devos50 Dec 28, 2022
b52f4ff
AES engine is correctly decrypting LLB payload
devos50 Jan 7, 2023
b2d5383
Worked on LLB
devos50 Jan 8, 2023
f36b778
Fixed SPI again
devos50 Jan 8, 2023
49c58b5
Working on iBoot
devos50 Jan 13, 2023
03b479e
Hardcoded iBoot decryption keys
devos50 Jan 30, 2023
0186293
Some work on LCD/MIPI DSI
devos50 Jan 31, 2023
3e98d59
Worked on several components
devos50 Feb 7, 2023
d13b9ed
Got some of the NAND initializations working
devos50 Feb 12, 2023
3cb4e8f
Got the NAND working a bit more
devos50 Feb 12, 2023
1b255b1
Implemented missing registers
devos50 Jun 12, 2023
1300c08
Circumventing NAND
devos50 Jun 18, 2023
97e57b6
Able to load kernel, with some hacks!
devos50 Jul 1, 2023
3011345
Added workaround for device tree and several memory mappings
devos50 Jul 2, 2023
e89d8fa
Got more peripherals up and running!
devos50 Jul 3, 2023
c16e8a3
Got some more stuff running
devos50 Jul 5, 2023
94c88d8
Mikey is loading
devos50 Jul 7, 2023
fd56eb6
Got NOR up and running on both SPI0 and SPI1
devos50 Jul 7, 2023
5a756fa
Several fixes and changes
devos50 Jul 8, 2023
2c92a18
Multiple fixes for SPI
devos50 Jul 12, 2023
5e9f53b
Booting SpringBoard
devos50 Jul 27, 2023
97c5e54
Booting up until lockdownd!
devos50 Jul 27, 2023
fd542ea
Started working on SDIO
devos50 Aug 12, 2023
923144e
Update ipod_touch_fmss.c
zoe-vb Aug 10, 2023
9e0bc7a
Made some progress with the BCM4325
devos50 Aug 29, 2023
51865fe
Got a tiny bit further in the boot process
devos50 Aug 30, 2023
eefd289
Got SDIO IRQ working
devos50 Sep 1, 2023
8ff7007
More work on SDIO/BCM4325
devos50 Sep 3, 2023
6adb8f8
BCM4325 driver gets past initialization!!
devos50 Sep 4, 2023
7e6d4c7
Device is activated!
devos50 Sep 6, 2023
d9aae4f
Started working on TVOut
devos50 Sep 6, 2023
51aeda9
Worked on TVOut
devos50 Sep 8, 2023
287b4f3
LCD + Multitouch working!!
devos50 Nov 3, 2023
a914ee7
Prevent GUI grab
devos50 Nov 3, 2023
3f8c248
Home/power buttons working
devos50 Nov 4, 2023
fbd054a
Removed print statement
devos50 Nov 8, 2023
26fb529
Made paths flexible
devos50 Nov 8, 2023
52b9396
Added run instructions
devos50 Nov 8, 2023
04a18b4
Changed README.md
devos50 Nov 8, 2023
94d7dbd
Update README.md
devos50 Nov 8, 2023
19a9358
fix the configure command for apple silicon macs
breakgimme Nov 8, 2023
62cae19
Deleted workflow from IT2G branch
devos50 Nov 28, 2023
b623ef5
Different file paths on Microsoft Windows
spetterman66 Nov 23, 2023
9a16d1b
Switch position of "extern" and "G_NORETURN"
spetterman66 Nov 23, 2023
1efd4fa
Include disablement of the stack protector in the configure script
spetterman66 Nov 23, 2023
9ff5871
Check if Bootrom/NOR/NAND files exist before attempting to use
jvyden Dec 15, 2023
2cee000
Fix NAND path check
jvyden Dec 15, 2023
c592b20
Update README.md with a schematic
devos50 Dec 16, 2023
b50ce88
Update RUNNING.md
devos50 Dec 24, 2023
0d7c0f0
Update RUNNING.md
MrDiagnose Dec 24, 2023
a29e52d
Fixed for rebase on v8.2.0 branch
devos50 Dec 31, 2023
a4e3aa4
Simplified running instructions
devos50 Dec 31, 2023
9218cf8
Added Github workflow
devos50 Dec 31, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Device is activated!
  • Loading branch information
devos50 committed Dec 31, 2023
commit 7e6d4c7f010488c46a9726990b6bd6d15267a075
4 changes: 4 additions & 0 deletions hw/arm/ipod_touch_fmss.c
Original file line number Diff line number Diff line change
@@ -34,6 +34,10 @@ static void read_nand_pages(IPodTouchFMSSState *s)
const char *boot_args = "kextlog=0xfff debug=0x8 cpus=1 rd=disk0s1 serial=1 pmu-debug=0x1 io=0xffff8fff debug-usb=0xffffffff"; // if not const then overwritten
cpu_physical_memory_write(0x0ff2a584, boot_args, strlen(boot_args));

// patch iBoot - we want to inject the bluetooth MAC address which is located as sub-node of uart1 and not uart3 in the device tree...
char *chr = "arm-io/uart1/bluetooth";
cpu_physical_memory_write(0x0ff2206c, chr, strlen(chr));

int page_out_buf_ind = 0;
//dump_registers(s);
//printf("Start CMD...\n");
16 changes: 6 additions & 10 deletions hw/arm/ipod_touch_sdio.c
Original file line number Diff line number Diff line change
@@ -2,7 +2,6 @@

static void trigger_irq(void *opaque)
{
printf("ABChere\n");
IPodTouchSDIOState *s = (IPodTouchSDIOState *)opaque;
s->irq_reg = 0x2;
qemu_irq_raise(s->irq);
@@ -13,14 +12,14 @@ void sdio_exec_cmd(IPodTouchSDIOState *s)
uint32_t cmd_type = s->cmd & 0x3f;
uint32_t addr = (s->arg >> 9) & 0x1ffff;
uint32_t func = (s->arg >> 28) & 0x7;
printf("SDIO CMD: %d, ADDR: %d, FUNC: %d\n", cmd_type, addr, func);
//printf("SDIO CMD: %d, ADDR: %d, FUNC: %d\n", cmd_type, addr, func);
if(cmd_type == 0x3) {
// RCA request - ignore
}
else if(cmd_type == 0x5) {
if(addr == 0) {
// reading slot 0 - make sure there is a device here
s->resp0 = (1 << 31) /* indicate ready */ | (BCM4325_FUNCTIONS << CMD5_FUNC_OFFSET) /* number of functions */;
//s->resp0 = (1 << 31) /* indicate ready */ | (BCM4325_FUNCTIONS << CMD5_FUNC_OFFSET) /* number of functions */;
}
}
else if(cmd_type == 0x7) {
@@ -44,7 +43,7 @@ void sdio_exec_cmd(IPodTouchSDIOState *s)
s->resp0 = (1 << 6);
}
else {
printf("Loading as response reg 0x%02x 0x%02x\n", s->registers[addr], addr);
printf("SDIO: Executing cmd52 by reading from 0x%02x (value: 0x%02x)\n", addr, s->registers[addr]);
s->resp0 = s->registers[addr];
}
}
@@ -68,7 +67,6 @@ void sdio_exec_cmd(IPodTouchSDIOState *s)
g_queue_push_tail(s->rx_fifo, frame_header);

timer_mod(s->irq_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + NANOSECONDS_PER_SECOND / 50);
printf("INT SCHED\n");
}
} else {
if(func == 0x1) {
@@ -84,7 +82,6 @@ void sdio_exec_cmd(IPodTouchSDIOState *s)

if(!frame_header) {
// create an empty frame
printf("Creating empty response frame\n");
frame_header = calloc(sizeof(BCM4325FrameHeaderPacket), sizeof(uint8_t *));
}
cpu_physical_memory_write(s->baddr, frame_header, sizeof(BCM4325FrameHeaderPacket));
@@ -95,7 +92,7 @@ void sdio_exec_cmd(IPodTouchSDIOState *s)
// toggle IRQ register
s->irq_reg = 0x1;
qemu_irq_raise(s->irq);
printf("Raised IRQ\n");
//printf("Raised IRQ\n");
}
else {
hw_error("Unknown SDIO command %d", cmd_type);
@@ -104,7 +101,7 @@ void sdio_exec_cmd(IPodTouchSDIOState *s)

static void ipod_touch_sdio_write(void *opaque, hwaddr addr, uint64_t value, unsigned size)
{
printf("%s: writing 0x%08x to 0x%08x\n", __func__, value, addr);
//printf("%s: writing 0x%08x to 0x%08x\n", __func__, value, addr);

IPodTouchSDIOState *s = (struct IPodTouchSDIOState *) opaque;

@@ -129,7 +126,6 @@ static void ipod_touch_sdio_write(void *opaque, hwaddr addr, uint64_t value, uns
break;
case SDIO_IRQ:
qemu_irq_lower(s->irq);
printf("Lowered IRQ\n");
break;
case SDIO_IRQMASK:
s->irq_mask = value;
@@ -150,7 +146,7 @@ static void ipod_touch_sdio_write(void *opaque, hwaddr addr, uint64_t value, uns

static uint64_t ipod_touch_sdio_read(void *opaque, hwaddr addr, unsigned size)
{
printf("%s: offset = 0x%08x\n", __func__, addr);
//printf("%s: offset = 0x%08x\n", __func__, addr);

IPodTouchSDIOState *s = (struct IPodTouchSDIOState *) opaque;