replacing the bios with a custom piece of bareboard firmware

Start a work log and update it occasionally with your projects progress
Post Reply
legacy
Curious PSXDEV User
Curious PSXDEV User
Posts: 25
Joined: Sep 04, 2013

replacing the bios with a custom piece of bareboard firmware

Post by legacy » September 5th, 2013, 8:45 pm

why ? because i'd like to have a MIPS board to toy with, directly in assembly and C, without having to fight with the magic of what SONY has put inside her Mask Rom.

I'd like to have only the SIO support and nothing else except the PAD.

I have desoldered the PSOne bios and wire soldered all the bios pinout to a DIP socket in where to put a an Eprom Emulator, which is an equipment i can use to run my code.

The question is what do you suggest to put into this bareboard piece of firmware in order to initialize the hardware in a so called "early bootstrap" ?


This topic is useful for SIO (C code inside)

This site is providing useful toolchain and BSP code (C code inside)
Last edited by legacy on September 6th, 2013, 1:04 am, edited 4 times in total.

legacy
Curious PSXDEV User
Curious PSXDEV User
Posts: 25
Joined: Sep 04, 2013

Post by legacy » September 5th, 2013, 8:48 pm

About the PAD ... it may be it is similar to SPI, it is not clear to me how it works, but it may be it could be used to attach an SPI-ethernet board to be used with UDP/IP in order to have a faster upload/download.

This topic is about CPU-SIO-PAD

legacy
Curious PSXDEV User
Curious PSXDEV User
Posts: 25
Joined: Sep 04, 2013

Post by legacy » September 6th, 2013, 12:09 am

i could look for the Yamon (1) source code in order to write an extremely easy and essential earlyboot ? what do you think ?


(1) it is the firmware used in Atlas and Malta boards, developed by MIPS inc
I've got an Atlas board, it is MIPS32-r2, while PSX is MIPS-R3K ...

legacy
Curious PSXDEV User
Curious PSXDEV User
Posts: 25
Joined: Sep 04, 2013

Post by legacy » September 8th, 2013, 7:07 am

OK, today i desoldered an other playstation bios, i am pretty ready for the eprom emulator

could someone suggest me a bit of early boot assembler ? just the first things the R3000 should do in order to be pretty initialized.

User avatar
Shadow
Verified
Admin / PSXDEV
Admin / PSXDEV
Posts: 2670
Joined: Dec 31, 2012
PlayStation Model: H2000/5502
Discord: Shadow^PSXDEV

Post by Shadow » September 8th, 2013, 1:45 pm

Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.

PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.

legacy
Curious PSXDEV User
Curious PSXDEV User
Posts: 25
Joined: Sep 04, 2013

Post by legacy » September 8th, 2013, 8:41 pm

Thanks, i am also studying yaboot, pretty sources for R3000, too
Everything You Have Always Wanted to Know about the Playstation
But Were Afraid to Ask.

[...]

The R3000A is configured for litle-endian byte order and defines a word as 32-bits, a half-word, as 16-bits, and a byte as 8-bits.

The Status register contains all the major status bits ...
status.RE Reverse Endianness. The R3000A allows the system to determine the byte ordering convention for the Kernel mode, and the default setting for user mode, at reset time. If this bit is cleared, the endianness
defined at reset is used for the current user task. If this bit is set, then the user task will operate with the opposite byte ordering convention from that determined at reset. This bit has no effect on kernel mode.
Well, about Sony R3000, it is little endian, is it possible to set it as big endian ? I mean, really possible ? Never tested ? Just because if it is possible i can use the same toolchain i am using for Atlas board (MIPS32-rev2, configured as bigendian)
This bit has no effect on kernel mode.
i think it is not correct, from what i read in the handbook, if you set the RE you change the whole Endianness, in both kernel and userland.

User avatar
TriMesh
Verified
PSX Aptitude
PSX Aptitude
Posts: 225
Joined: Dec 20, 2013
PlayStation Model: DTL-H1202
Location: Hong Kong

Post by TriMesh » December 31st, 2013, 3:32 am

legacy wrote:i think it is not correct, from what i read in the handbook, if you set the RE you change the whole Endianness, in both kernel and userland.
I don't know how the PSX handles it, but on the embedded MIPS CPUs I've used in the past, the RE bit only applies to user mode.

If you wanted to change the default endianness of the system, you had to move a jumper on the evaluation board and reflash the boot PROM. The endian select was one of the CPU mode bits, which were (on that specific CPU) programmed by driving certain high-order data bus bits either high or low while reset was active.

I don't think there is anything similar on the PSX CPU.

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests