Skip to content

Commit

Permalink
Changes the modem firmware download process to work on the SGS device…
Browse files Browse the repository at this point in the history
…s, fixed the GPIO mapping.

Use the right GPIO to tell the BP it should turn on. The SGS BP Bootloader won't tell us
that is has booted properly. We miss the magic value MODEM_MSG_SBL_DONE.
So we wait some time an then continue booting the BP.

The firmware is send from userspace in libsec-ril.so what is loaded by the rild.
It reads the firmware from /dev/mtd/mtd5ro and passes it to the modem. It is tested with
JPM modem from GT-I9000. Userspace won't notice that the radio interface is there until you lock the phone
and unlock it. Looks like a little phone state polling problem.
  • Loading branch information
coolya committed Dec 22, 2010
1 parent 1cd8330 commit b7cb06b
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 0 deletions.
4 changes: 4 additions & 0 deletions arch/arm/mach-s5pv210/include/mach/gpio-herring.h
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,11 @@

#define GPIO_GPH10 S5PV210_GPH1(0)

#ifdef CONFIG_GALAXYS
#define GPIO_PDA_ACTIVE S5PV210_MP03(3)
#else
#define GPIO_PDA_ACTIVE S5PV210_GPH1(1)
#endif

#define GPIO_GPH12 S5PV210_GPH1(2)
#define GPIO_nINT_ONEDRAM_AP S5PV210_GPH1(3)
Expand Down
9 changes: 9 additions & 0 deletions drivers/misc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -463,6 +463,15 @@ source "drivers/misc/iwmc3200top/Kconfig"
config SAMSUNG_MODEMCTL
bool "Samsung Modem Control/IO Driver"

config MODEM_HAS_CRAPPY_BOOTLOADER
bool "Samsung Modem Control/IO Driver Bootloader is crap"
depends on SAMSUNG_MODEMCTL
help
If you use the Samsung Modem Control driver on the older
SGS devices the bootloader won't tell you that it finished
loading. This is a workaround for that, it only waits some
time and tries to to continue.

config PN544
bool "NXP PN544 NFC Controller Driver"
default n
Expand Down
14 changes: 14 additions & 0 deletions drivers/misc/samsung_modemctl/modem_ctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
*
* Copyright (C) 2010 Google, Inc.
* Copyright (C) 2010 Samsung Electronics.
* Copyright (C) 2010 Kolja Dummann (k.dummann@gmail.com)
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
Expand Down Expand Up @@ -292,10 +293,23 @@ static int modem_start(struct modemctl *mc, int ramdump)
return -EINVAL;
}

#ifdef CONFIG_MODEM_HAS_CRAPPY_BOOTLOADER

/* we do this as the BP bootloader from the SGS is a little bit
crapy it does not send the magic data MODEM_MSG_SBL_DONE when
it has finished loading. so we wait some amount of time */

pr_info("[MODEM] we have a crappy bootloader an wait for it");

//waiting 1500 ms should be enough, maybe we can decrease this but unsure
msleep(1500);

#else
if (readl(mc->mmio + OFF_MBOX_BP) != MODEM_MSG_SBL_DONE) {
pr_err("[MODEM] bootloader not ready\n");
return -EIO;
}
#endif

if (mmio_sem(mc) != 1) {
pr_err("[MODEM] we do not own the semaphore\n");
Expand Down

0 comments on commit b7cb06b

Please sign in to comment.