Welcome, Guest. Please login or register.

Author Topic: HELP : 2 MB Kickstart refuse to start...  (Read 2008 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline olsen

Re: HELP : 2 MB Kickstart refuse to start...
« on: February 15, 2016, 05:31:35 PM »
Quote from: Cosmos;804054
Where is my mistake ?

Any ideas ?


Thanks,
Did you verify that all the components which you put into ROM are actually designed to run out of read-only memory? I'm not entirely sure that workbench.library V45 will run properly in this context. The same goes for icon.library.

Also worth checking is the order in which the components are initialized by exec (in "exec/resident.i", the "RT_PRI" field), as well as if the flags in the Resident structure are set up properly for the task (the "RT_FLAGS" field).

If you can build a 2 MByte ROM image in memory, perform the same kind of ROM tag scan which the exec cold start code does, can you verify that all components are found, have the proper priorities and the appropriate flags set?

As for the memory ranges you are using I believe that these will work correctly with the CD32 exec.
 

Offline olsen

Re: HELP : 2 MB Kickstart refuse to start...
« Reply #1 on: February 16, 2016, 12:39:36 PM »
Quote from: Cosmos;804062
All libraries are romable, and used since a very long time into $E0 and/or $F8 : the issue is elsewhere...

Maybe the four 512 KB blocs are in a incorrect order ?
The order should not matter. If I remember correctly, the exec coldstart code scans a list of memory spaces for resident tags, i.e. what's defined in "exec/resident.i" and each of these goes into a list, sorted by priority. This means that no matter in which memory space a resident tag is found, the priority defines when it is initialized.

Once the resident tag list is assembled, first the components which precede expansion.library are initialized (that's usually just exec.library, if I remember correctly), then the rest are initialized one after another until eventually something tickles dos.library, kicking off the user-visible part of the system boot process.

The CD32 ROM checks the following areas for resident tags, in this specific order:

0x00F80000 - 0x00FFFFFE (512K Kickstart ROM)
0x00E00000 - 0x00E7FFFE (CD32 ROM)
0x00A80000 - 0x00B7FFFE (CD32 FMV ROM)
0x00F00000 - 0x00F7FFFE (diagnostic cartridge)

Note that only the CD32-specific Kickstart ROM looks into the CD32 ROM and FMV ROM address spaces. The desktop Kickstart ROM only checks the Kickstart ROM space and the diagnostic cartridge areas.
 

Offline olsen

Re: HELP : 2 MB Kickstart refuse to start...
« Reply #2 on: February 16, 2016, 12:57:15 PM »
Quote from: Cosmos;804117
I understand what you write !

My main problem is : the exec don't start with my rom build !

Zero, nada, quedalle, nein, no, nothing at power on...
So, can you pinpoint where it gets stuck, exactly? You already have an 1 MByte ROM image in working order. What could you put into the FMV ROM space that is as simple as it could be and still show if that ROM is being used? Could you create a resident tag that calls kprintf(), etc. or toggles the LED?

If decoding of the FMV ROM space is wonky then exec shouldn't be able to find a proper resident tag in the first place. If accessing the FMV ROM space itself bombs then you should be able to test for that by removing the FMV ROM area from the exec scan list (it's very close to the beginning of the Kickstart ROM) and check what happens. Either remove it or make the space shorter that is being scanned. The original FMV ROM was supposed to be rather short in the first place, so scanning the entire ROM space is probably not necessary, maybe it wasn't even ever tested.