Cheap, if you ask me. They couldn't do the right thing and use SD. Instead they had to eat their own dogfood to save a few pennies, even though it tastes like crap. BTW, before anyone gets any ideas about a MSIO usb host controller, i've only found one device which actually uses MSIO, and it's a wlan adapter.adrahil wrote:Damn, sony are so lazy :)
Libertas/WLAN hacking as done in DA's MacSpoofer
-
- Posts: 86
- Joined: Thu Aug 17, 2006 3:27 am
Nah... You know Sony :) Rather than go for the most supported memory, you have to use the chance to sell your own Memory Stick Duo's ;)crazyc wrote:Cheap, if you ask me. They couldn't do the right thing and use SD. Instead they had to eat their own dogfood to save a few pennies, even though it tastes like crap.adrahil wrote:Damn, sony are so lazy :)
That Wifi stick seems interesting - so there is a chance that the memory stick could be used to connect an external device.
Cloudy
:)
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
Well, I'm now investigating how the data moves around, right now :) (I guess DMA, otherwise we're locked at 3Kb/s at the maximum) The problem is that we need to modify the marvell firmware which is included (magpie or voyager) in order to achieve G... And for this, it's needed to know more about how the chip works, etc.
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
I would be ecstatically jubiliant if you confirm you are still working on this project of Utopian scale :Dadrahil wrote:It is possible ;) But the problem is that sony have remapped some of the bits at their willing... The documentation is for the official marvell firmware. Sony only use a custom subset of it, based on some sloppy implementation. (I am talking about magpie/voyager)
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
Use it more for Development than for Gaming.
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
I personally don't believe this will be possible. There's documentation showing the RF chip supports OFDM, but nothing for the MAC. Even if it does, it's probable the firmware was written specifically for the PSP and may lack support for 802.11g.KickinAezz wrote:Any progress updates on 54g/ Magpie Voyager hacks?
**Eyes wide open w/excitement**
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
I am willing to.crazyc wrote:Like the 88w8388 described at OLPC, the 88w8381 in the fat psp has a built in ROM mapped at 0xfff00000, but it's only 32KB rather then 128KB. If anyone is interested in dumping it, I can post the details.
What is 88w388 and OLPC?
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
Use it more for Development than for Gaming.
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
I will try checking the dump myself. Could you post those details?crazyc wrote:You misunderstand, I know it works. I just want to know if anyone else is working on reverse engineering the wlan interface and chip wants to dump the builtin ROM.KickinAezz wrote:I am willing to.
I think PSP is hacked sufficiently enough. Only thing left is this.
I have previous experiencing playing with NVRAM variables in routers :D
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
Use it more for Development than for Gaming.
Actually, the AVC hasn't been figured out yet ether, but that is even harder. Anyway, if you want to know.KickinAezz wrote:I will try checking the dump myself. Could you post those details?
I think PSP is hacked sufficiently enough. Only thing left is this.
I have previous experiencing playing with NVRAM variables in routers :D
1) in psplink (1.5 kernel only) with the wlan switch off do
Code: Select all
pokew 0x88196474 0x46c06841
pokew 0x8818df48 0x46c046c0
2) switch on the wlan and do
Code: Select all
thsusp @SceWlanMac
thsusp @SceWlanHal
Code: Select all
#include <pspkernel.h>
#include <pspdebug.h>
PSP_MODULE_INFO("wlan_test", 0x1000, 1, 1);
PSP_MAIN_THREAD_ATTR(0);
/* IO_MEM_STICK_CMD = EX_SET_CMD | 0x7
* buf[0] = 0xb4 read, 0xb3 write
* buf[1] = size >> 8
* buf[2] = size
* buf[3] = address >> 24
* buf[4] = address >> 16
* buf[5] = address >> 8
* buf[6] = address
* buf[7] = 0
* address is offset + 0xc0000000 in arm address space, read only
* except 0x100 which is a special case
*/
// HW registers
#define IO_MEM_STICK_CMD *((volatile int*)(0xBD300030))
#define IO_MEM_STICK_DATA *((volatile int*)(0xBD300034))
#define IO_MEM_STICK_STATUS *((volatile int*)(0xBD300038))
#define IO_MEM_STICK_SYS *((volatile int*)(0xBD30003C))
// STATUS bit
#define MS_FIFO_RW 0x4000
#define MS_RDY 0x1000
#define MS_TIME_OUT 0x0100
#define MS_CRC_ERROR 0x0200
// MS command code
#define READ_PAGE_DATA 0x2000
#define READ_REG 0x4000
#define READ_IO_DATA 0x5000
#define GET_INT 0x7000
#define SET_RW_REG_ADRS 0x8000
#define EX_SET_CMD 0x9000
#define WRITE_IO_DATA 0xA000
#define WRITE_REG 0xB000
#define WRITE_PAGE_DATA 0xD000
#define SET_CMD 0xE000
// MS status bit
#define INT_REG_CED 0x80
#define INT_REG_ERR 0x40
#define INT_REG_BREQ 0x20
#define INT_REG_CMDNK 0x01
#define swap_binh(out, in) __asm__( "wsbh %0, %1\n" \
"rotr %0, %0, 16\n" \
:"=r"(out):"r"(in));
typedef struct {
uint16_t CmdCode;
uint16_t Size;
uint16_t SeqNum;
uint16_t Result;
uint16_t Action;
uint16_t Offset;
uint32_t Value;
} libertas_mac_reg;
static int ms_get_reg_int(void)
{
int ret, dummy, status;
IO_MEM_STICK_CMD = GET_INT | 0x1;
do{
status = IO_MEM_STICK_STATUS;
if(status & MS_TIME_OUT)
{
#if SHOW_ERR_MSG
Kprintf("err:get_reg_int timeout\n");
#endif
return -1;
}
}while(!(status & MS_FIFO_RW));
ret = IO_MEM_STICK_DATA;
dummy = IO_MEM_STICK_DATA;
do{
status = IO_MEM_STICK_STATUS;
if(status & MS_TIME_OUT)
{
#if SHOW_ERR_MSG
Kprintf("err:get_reg_int timeout\n");
#endif
return -1;
}
}while(!(status & MS_RDY));
return ret & 0xff;
}
int buf[4];
int bigbuf[(32*1024)/4];
void busy_wait(int mask)
{
int i;
while(!(IO_MEM_STICK_STATUS & mask)) sceKernelDelayThread(1000);
}
int main()
{
int count, i;
libertas_mac_reg *reg = (libertas_mac_reg *)&buf;
reg->CmdCode = 0x19;
reg->Size = sizeof(libertas_mac_reg);
reg->SeqNum = 0;
reg->Result = 0;
reg->Action = 0;
reg->Offset = 0;
reg->Value = 0xfff00000;
for(count = 0; count < ((32*1024)/4); count++)
{
printf("%d\n", count);
busy_wait(0x1000);
IO_MEM_STICK_CMD = EX_SET_CMD | 7;
busy_wait(0x4000);
IO_MEM_STICK_DATA = 0xb4 | ((sizeof(libertas_mac_reg) >> 8) << 8) | ((sizeof(libertas_mac_reg) & 0xff) << 16); //0x001000b4
busy_wait(0x4000);
IO_MEM_STICK_DATA = 0x100;
busy_wait(0x2000);
//while(!(ms_get_reg_int() & 0x20));
IO_MEM_STICK_CMD = WRITE_IO_DATA | sizeof(libertas_mac_reg);
busy_wait(0x4000);
swap_binh(IO_MEM_STICK_DATA, buf[0]); //0x19001000
busy_wait(0x4000);
swap_binh(IO_MEM_STICK_DATA, buf[1]); //0
busy_wait(0x4000);
IO_MEM_STICK_DATA = __builtin_allegrex_wsbw(buf[2]); //0
busy_wait(0x4000);
IO_MEM_STICK_DATA = __builtin_allegrex_wsbw(buf[3]); //0
busy_wait(0x2000);
while(!(ms_get_reg_int() & INT_REG_CED)) sceKernelDelayThread(1000);
IO_MEM_STICK_CMD = EX_SET_CMD | 7;
busy_wait(0x4000);
IO_MEM_STICK_DATA = 0xb3 | ((sizeof(libertas_mac_reg) >> 8) << 8) | ((sizeof(libertas_mac_reg) & 0xff) << 16); //0x001000b3
busy_wait(0x4000);
IO_MEM_STICK_DATA = 0x100;
busy_wait(0x2000);
//while(!(ms_get_reg_int() & 0x20));
IO_MEM_STICK_CMD = READ_IO_DATA | sizeof(libertas_mac_reg);
busy_wait(0x4000);
i = IO_MEM_STICK_DATA;
busy_wait(0x4000);
i = IO_MEM_STICK_DATA;
busy_wait(0x4000);
i = IO_MEM_STICK_DATA;
busy_wait(0x4000);
bigbuf[count] = __builtin_allegrex_wsbw(IO_MEM_STICK_DATA);
reg->Value+=4;
}
sceKernelSleepThread();
return 0;
}
Code: Select all
savemem 0x890DF4C 0x8000 wlan_builtin_rom
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
Will try ASAP.
Last edited by KickinAezz on Sun Feb 10, 2008 1:26 am, edited 1 time in total.
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
Use it more for Development than for Gaming.
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
The builtin rom seems to be a Plain module? No NVRAM vars or anything.
Any people could probably do/find something incredible out of this:
Prxtool disassembly Output
THERE IS NO COPYRIGHT LINE in the module, Can I post the binary here?
Any people could probably do/find something incredible out of this:
Prxtool disassembly Output
THERE IS NO COPYRIGHT LINE in the module, Can I post the binary here?
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
Use it more for Development than for Gaming.
Huh? What about "Copyright (c) 1996-2001 Express Logic Inc. * ThreadX THUMB/ARM9 Version G4.0.4.0 *". It's not a Marvell copyright but nonetheless...KickinAezz wrote:THERE IS NO COPYRIGHT LINE in the module, Can I post the binary here?
prxtool is only for psp prx's. Not only is the WLAN ROM not a prx, it's not even MIPS.Prxtool disassembly Output
BTW, the mac hardware registers strongly suggest no 802.11g support.
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
Oops I tried it from PBP which might have overwritten everything from 0x8900000.crazyc wrote:Huh? What about "Copyright (c) 1996-2001 Express Logic Inc. * ThreadX THUMB/ARM9 Version G4.0.4.0 *". It's not a Marvell copyright but nonetheless...KickinAezz wrote:THERE IS NO COPYRIGHT LINE in the module, Can I post the binary here?prxtool is only for psp prx's. Not only is the WLAN ROM not a prx, it's not even MIPS.Prxtool disassembly Output
Result: It dumped itself xD
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
Use it more for Development than for Gaming.
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
crazyc,
Could you post the makefile?
I tried 2 ways to run it.
1: as a prx. I get a blank 32k.
2: As a pbp. What I get is NOT even close to your's and I donot see any Copyright line.
I highly hope to have a chance to look at my own psp's wlan rom.
EDIT: I do it from CFW 3.90 under 1.50 kernel, could it be a problem?
Could you post the makefile?
I tried 2 ways to run it.
1: as a prx. I get a blank 32k.
2: As a pbp. What I get is NOT even close to your's and I donot see any Copyright line.
I highly hope to have a chance to look at my own psp's wlan rom.
EDIT: I do it from CFW 3.90 under 1.50 kernel, could it be a problem?
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
Use it more for Development than for Gaming.
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
Post unnoticed?KickinAezz wrote:crazyc,
Could you post the makefile?
I tried 2 ways to run it.
1: as a prx. I get a blank 32k.
2: As a pbp. What I get is NOT even close to your's and I donot see any Copyright line.
I highly hope to have a chance to look at my own psp's wlan rom.
EDIT: I do it from CFW 3.90 under 1.50 kernel, could it be a problem?
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
Use it more for Development than for Gaming.
Missed this. The instructions assumed that the bigbuf variable would be in the same place when anyone else complied it. That isn't true of course. DoKickinAezz wrote:Post unnoticed?KickinAezz wrote:crazyc,
Could you post the makefile?
I tried 2 ways to run it.
1: as a prx. I get a blank 32k.
2: As a pbp. What I get is NOT even close to your's and I donot see any Copyright line.
I highly hope to have a chance to look at my own psp's wlan rom.
EDIT: I do it from CFW 3.90 under 1.50 kernel, could it be a problem?
Code: Select all
psp-objdump -t wlan_test |grep bigbuf
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
Still no Success.crazyc wrote:Missed this. The instructions assumed that the bigbuf variable would be in the same place when anyone else complied it. That isn't true of course. Doto the unstripped binary to get the savemem address.Code: Select all
psp-objdump -t wlan_test |grep bigbuf
Steps:
1) With WLAN off, I do %prepinit which does:
Code: Select all
pokew 0x88196474 0x46c06841
pokew 0x8818df48 0x46c046c0
Code: Select all
thsusp @SceWlanMac
thsusp @SceWlanHal
4) Then I double checke the address given by printf("%p",&bigbuf); and
psp-objdump -t wlanromdump.elf |grep bigbuf
Both give me 0x891590c.
5)When I do
Code: Select all
savemem 0x891590c 0x8000 wlanrom
I tried:
1) Disabling optimization "-o0" flag
2) Trying again and again.
Any ideas?
--
Could you try the elf in the below package and see it still works for you? If it does, I have done something wrong.
http://www.sendspace.com/file/w7iqi3
-
Is your PM box full?
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
Use it more for Development than for Gaming.
DoKickinAezz wrote: Any ideas?
Code: Select all
modinfo @sceWlan_Driver
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
crazyc wrote:DoKickinAezz wrote: Any ideas?in psplink and post what it prints.Code: Select all
modinfo @sceWlan_Driver
Code: Select all
UID: 0x029B5539 Attr: 1006 - Name: sceWlan_Driver
Entry: 0x881875C8 - GP: 0x881B9CE0 - TextAddr: 0x88187500
TextSize: 0x00013C9C - DataSize: 0x00016B40 BssSize: 0x00000093
Segment 0: Addr 0x88187500 - Size 0x00013CA8
Segment 1: Addr 0x8819B1B0 - Size 0x00016B40
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
Use it more for Development than for Gaming.
Change these toKickinAezz wrote:Steps:
1) With WLAN off, I do %prepinit which does:Code: Select all
pokew 0x88196474 0x46c06841 pokew 0x8818df48 0x46c046c0
Code: Select all
pokew 0x8819B1B0+0x89C4 0x46c06841
pokew 0x8819B1B0+0x498 0x46c046c0
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
I do see the Express Logic line, but it isn't at the end of the file; it's @ offsett 0x530a [in the middle of the file], Is it normal, or did I get get the partial romcrazyc wrote:Change these toKickinAezz wrote:Steps:
1) With WLAN off, I do %prepinit which does:Code: Select all
pokew 0x88196474 0x46c06841 pokew 0x8818df48 0x46c046c0
I hoped that the kernel would load the same with all versions of 1.5 compatibility mode, but i guess not.Code: Select all
pokew 0x8819B1B0+0x89C4 0x46c06841 pokew 0x8819B1B0+0x498 0x46c046c0
You said MAC registers strongly suggest no 54g compatibility, But I donot see any plain text?
OK, I see it "Marvell 88W8300 802.11b PC Card Version 1.1" My unlucky PSP :(
--
However, there's hope for others with Marvell 88w8010 :D
The 88W8010 is an upgraded (802.11g) version of 88W8000 (which only supports 802.11b). So this chip is fine. The one in question is 88W8380. If it is based on 88W8300, then it only supports 802.11b. But if it is based on 88W8310, then it is 802.11g capable (54Mbps, about five times faster than 11Mbps of 802.11b). The 88W8310 chip also support 802.11i and 802.11e, which is AES (WPA) and QoS (quality of service). Maybe someone has more info on the 88W8380 chip. If it is based on 88W8310 (not 88W8300), then the PSP actually supports 802.11g, but not activated.
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
Use it more for Development than for Gaming.