forums.ps2dev.org Forum Index forums.ps2dev.org
Homebrew PS2, PSP & PS3 Development Discussions
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

otheros/file.bin?

 
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PS3 Development
View previous topic :: View next topic  
Author Message
lotharx



Joined: 16 Jul 2008
Posts: 24

PostPosted: Wed Jul 16, 2008 4:20 pm    Post subject: otheros/file.bin? Reply with quote

Hey can anyone make a bare loader in C++? I looked at the otheros.bld/demo.bin demos and they where riddled with bit mapping code. I was thinking maybe something that used the BIOS font to output a simple text string.

It'd probably help a lot of people who don't want to tear apart kboot when someone else already has. The rest can be figured out.
Back to top
View user's profile Send private message
mc



Joined: 12 Jan 2005
Posts: 212
Location: Linköping

PostPosted: Wed Jul 16, 2008 11:13 pm    Post subject: Reply with quote

There is no "BIOS font". A PS3 is not a PC.
_________________
Flying at a high speed
Having the courage
Getting over crisis
I rescue the people
Back to top
View user's profile Send private message
lotharx



Joined: 16 Jul 2008
Posts: 24

PostPosted: Thu Jul 17, 2008 5:04 am    Post subject: Reply with quote

mc wrote:
There is no "BIOS font". A PS3 is not a PC.


ohh..usually systems have a font for the BIOS, or at least I thought they did.

Are you allowed to share the makefile for your last otheros demo?

EDIT: Never mind I eventually figured it out. If anyone wants a script to compile it, and a hello world otheros.bld demo to build off of, just PM me.
Back to top
View user's profile Send private message
mc



Joined: 12 Jan 2005
Posts: 212
Location: Linköping

PostPosted: Fri Jul 18, 2008 9:30 pm    Post subject: Reply with quote

There isn't even a "BIOS". There is only the Hypervisor, but the services it provides are
somewhat different from those of a PC BIOS. It can setup the screen video mode for you,
it can map the hardware frame buffer into your address space, and it can copy blocks of
data from CPU memory to video memory. But it can not draw text for you, and so it
does not need any font.
_________________
Flying at a high speed
Having the courage
Getting over crisis
I rescue the people
Back to top
View user's profile Send private message
lotharx



Joined: 16 Jul 2008
Posts: 24

PostPosted: Sat Jul 19, 2008 4:34 pm    Post subject: Reply with quote

mc wrote:
There isn't even a "BIOS". There is only the Hypervisor, but the services it provides are
somewhat different from those of a PC BIOS. It can setup the screen video mode for you,
it can map the hardware frame buffer into your address space, and it can copy blocks of
data from CPU memory to video memory. But it can not draw text for you, and so it
does not need any font.


I've noticed the NAND hypervisor claim is still floating around here. Has anyone here looked at the IBM pages and QS20 docs?

IBM engineers say The CBE and it's local store per SPE are the hypervisor(The original Type I reference would reinforce that information.) The NAND holds IBM/Sony/Toshiba/Nvidia code- key point is the IBM/Sony/Toshiba jointly developed crypto library that uses the CBE root key.

I'm not going to continue to rant because the IBM site is on the tip of noses, and I have noob status here so it's getting ignored anyway.
Back to top
View user's profile Send private message
mc



Joined: 12 Jan 2005
Posts: 212
Location: Linköping

PostPosted: Sat Jul 19, 2008 8:50 pm    Post subject: Reply with quote

Um. I'm not sure what you're trying to say here.

Hypervisor is an execution state in the PPU, above both the "problem state" and
"supervisor state". It is controlled by the HV (for HyperVisor) bit in the MSR. (See
PowerPC architecture manuals) It has nothing in particular to do with NAND or
SPE local store.

When we talk about "the hypervisor", we refer to the code which is running
in hypervisor state, typically as the result of an "sc 1" instruction.
_________________
Flying at a high speed
Having the courage
Getting over crisis
I rescue the people
Back to top
View user's profile Send private message
lotharx



Joined: 16 Jul 2008
Posts: 24

PostPosted: Sun Jul 20, 2008 7:21 am    Post subject: Reply with quote

mc wrote:
Um. I'm not sure what you're trying to say here.

Hypervisor is an execution state in the PPU, above both the "problem state" and
"supervisor state". It is controlled by the HV (for HyperVisor) bit in the MSR. (See
PowerPC architecture manuals) It has nothing in particular to do with NAND or
SPE local store.

When we talk about "the hypervisor", we refer to the code which is running
in hypervisor state, typically as the result of an "sc 1" instruction.


I know what you're talking about now. On the IBM pages they mention a bit field(MSR equivalent?) though that holds a lock state for each SPE. I guess that works post PPU state layout for the extra security.

Still doesn't explain how secure boot works though. Supposedly the first piece of code loaded from NAND at power up has a check sum that is within the CBE to prevent tampering and create a secure processing model. Only thing I see being logical is the code self modifies with the encryption library using the SHA1 functionality at load time. That would mean the bases of the security model was just obfuscated code in NAND.

I'm going to go read up on old Mac security. Also I might try to modify the code I have so far to display stack regions from within it's own store.

Also I seen in the Linux kernel everything is "lvl1" and on IBM somewhere I seen reference to a "lvl2" and others I think. That would indicate lvl1/otheros is running in a NAND based VM wouldn't it?
Back to top
View user's profile Send private message
mc



Joined: 12 Jan 2005
Posts: 212
Location: Linköping

PostPosted: Sun Jul 20, 2008 7:49 am    Post subject: Reply with quote

The "lock" on SPEs is called "isolation mode", and is unrelated to the hypervisor state.

I don't understand why you are bringing in "secure boot" into this. otheros.bld is
loaded into the virtualized machine which is seen from the supervisor and problem
states. At that time, the real system is already "booted", in the sense that all the
hypervisor code is already loaded (from NAND or whatever) and active. Presumably
the system SPE already has whatever code it needs, and is running in isolation
mode, at this time as well, but I haven't checked.

Since otheros.bld is running in a virtualized machine, you will not find anything in the
memory except the contents of otheros.bld itself, so trying to find someone elses
stacks is a waste of time.
_________________
Flying at a high speed
Having the courage
Getting over crisis
I rescue the people
Back to top
View user's profile Send private message
IronPeter



Joined: 06 Aug 2007
Posts: 207

PostPosted: Mon Jul 21, 2008 4:11 am    Post subject: Reply with quote

This page
http://www.ps3news.com/tag/bootup
says how the boot proccess looks like.


Quote:

The SCC (Super Companion Chip), made by Toshiba gets the PS3 started up. It reads asecure_loader from flash, and loads it into SPE in isolation mode. The Flash reading is interesting, as the data on the flash chips are interleaved, so the SCC merges them, among other things.

asecure_loader is then decrypted and ran, and it brings up lv1ldr. The keys for self decryption (among other things) are most likely accessible at this time.

lv1ldr is then decrypted and ran, and verifies the integrity of lv1.self , decrypts and runs it.

lv1.self is most likely our base code, also known as the Hypervisor. The Hypervisor then calls lv2ldr.

lv2ldr is ran, and it runs lv2_kernel.self
Back to top
View user's profile Send private message Send e-mail Visit poster's website
mc



Joined: 12 Jan 2005
Posts: 212
Location: Linköping

PostPosted: Tue Jul 22, 2008 12:17 am    Post subject: Reply with quote

It also says that lv2_kernel.self is the GameOS, so presumably it is not loaded at all when
the system is configured for OtherOS operation, but only the lv1 stuff. And that would
be why the Linux code only contains lv1 calls; there is no lv2 loaded to call.
_________________
Flying at a high speed
Having the courage
Getting over crisis
I rescue the people
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PS3 Development All times are GMT + 10 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group